Nix #2

Merged
DashieTM merged 23 commits from nix into main 2024-04-22 20:38:46 +02:00
16 changed files with 3357 additions and 37 deletions
Showing only changes of commit 4cfd212947 - Show all commits

View file

@ -7,20 +7,25 @@
glib glib
gtk4 gtk4
gtk3 gtk3
libadwaita
gtk-layer-shell gtk-layer-shell
gtk4-layer-shell gtk4-layer-shell
direnv direnv
dconf dconf
gsettings-desktop-schemas gsettings-desktop-schemas
gnome.nixos-gsettings-overrides gnome.nixos-gsettings-overrides
gnome.adwaita-icon-theme
bibata-cursors bibata-cursors
xorg.xkbutils xorg.xkbutils
libxkbcommon libxkbcommon
gnome-icon-theme
icon-library icon-library
gnome.adwaita-icon-theme
hicolor-icon-theme
morewaita-icon-theme
kdePackages.breeze-icons
]; ];
gtk.iconCache.enable = false;
fonts.packages = with pkgs; [ fonts.packages = with pkgs; [
cantarell-fonts cantarell-fonts
]; ];

View file

@ -43,4 +43,5 @@
wallpaper = HDMI-A-1,/home/dashie/Pictures/backgrounds/shinobu_1200.jpg wallpaper = HDMI-A-1,/home/dashie/Pictures/backgrounds/shinobu_1200.jpg
splash = true splash = true
''; '';
programs.hyprland.extra_autostart= [ "streamdeck -n" ];
} }

View file

@ -1,6 +1,6 @@
{ {
programs.streamdeck-ui = { #programs.streamdeck-ui = {
enable = true; # enable = true;
autoStart = true; # optional # autoStart = false; # optional
}; #};
} }

View file

@ -7,7 +7,15 @@
''; '';
type = lib.types.lines; type = lib.types.lines;
description = '' description = ''
Extra settings for foo. hyprpaper
'';
};
extra_autostart = lib.mkOption {
default = [ ];
example = [ "your application" ];
type = lib.types.listOf lib.types.str;
description = ''
Extra exec_once.
''; '';
}; };
}; };

View file

@ -22,7 +22,10 @@ rustPlatform.buildRustPackage rec {
cargoHash = "sha256-nxLXT9SVorsgj7qzwX8Ipx8SDvyTYMAcpepTg62QL7o="; cargoHash = "sha256-nxLXT9SVorsgj7qzwX8Ipx8SDvyTYMAcpepTg62QL7o=";
nativeBuildInputs = with pkgs;[ pkg-config ]; nativeBuildInputs = with pkgs;[
pkg-config
wrapGAppsHook4
];
buildInputs = with pkgs;[ buildInputs = with pkgs;[
gtk4 gtk4

View file

@ -22,7 +22,11 @@ rustPlatform.buildRustPackage rec {
cargoHash = "sha256-seFHiBht0vc+iqQw5bd22qVvdhCMqDthWuth3NTm8OY="; cargoHash = "sha256-seFHiBht0vc+iqQw5bd22qVvdhCMqDthWuth3NTm8OY=";
nativeBuildInputs = with pkgs;[ pkg-config glib ]; nativeBuildInputs = with pkgs;[
pkg-config
glib
wrapGAppsHook4
];
buildInputs = with pkgs;[ buildInputs = with pkgs;[
dbus dbus
@ -31,16 +35,6 @@ rustPlatform.buildRustPackage rec {
libadwaita libadwaita
]; ];
#postInstall = ''
# install -D --mode=444 $src/misc/ncspot.desktop $out/share/applications/${pname}.desktop
# install -D --mode=444 $src/images/logo.svg $out/share/icons/hicolor/scalable/apps/${pname}.png
#'';
#passthru = {
# updateScript = nix-update-script { };
# tests.version = testers.testVersion { package = oxinoti; };
#};
meta = with lib; { meta = with lib; {
description = "A work in progress notification daemon made with rust and gtk."; description = "A work in progress notification daemon made with rust and gtk.";
homepage = "https://github.com/DashieTM/OxiDash"; homepage = "https://github.com/DashieTM/OxiDash";

View file

@ -22,7 +22,10 @@ rustPlatform.buildRustPackage rec {
cargoHash = "sha256-jIdev6K5MQ8jASDo1KWU89rSLd9UhI2MhTT4l7pP+tA="; cargoHash = "sha256-jIdev6K5MQ8jASDo1KWU89rSLd9UhI2MhTT4l7pP+tA=";
nativeBuildInputs = with pkgs;[ pkg-config ]; nativeBuildInputs = with pkgs;[
pkg-config
wrapGAppsHook4
];
buildInputs = with pkgs;[ buildInputs = with pkgs;[
dbus dbus
@ -30,16 +33,6 @@ rustPlatform.buildRustPackage rec {
gtk-layer-shell gtk-layer-shell
]; ];
#postInstall = ''
# install -D --mode=444 $src/misc/ncspot.desktop $out/share/applications/${pname}.desktop
# install -D --mode=444 $src/images/logo.svg $out/share/icons/hicolor/scalable/apps/${pname}.png
#'';
#passthru = {
# updateScript = nix-update-script { };
# tests.version = testers.testVersion { package = oxinoti; };
#};
meta = with lib; { meta = with lib; {
description = "A work in progress notification daemon made with rust and gtk."; description = "A work in progress notification daemon made with rust and gtk.";
homepage = "https://github.com/DashieTM/OxiNoti"; homepage = "https://github.com/DashieTM/OxiNoti";

View file

@ -22,7 +22,10 @@ rustPlatform.buildRustPackage rec {
cargoHash = "sha256-RXaL5y0hohP9VJ7IJCEfdJjyxwY2l555xSwRa9ZiNKc="; cargoHash = "sha256-RXaL5y0hohP9VJ7IJCEfdJjyxwY2l555xSwRa9ZiNKc=";
nativeBuildInputs = with pkgs;[ pkg-config ]; nativeBuildInputs = with pkgs;[
pkg-config
wrapGAppsHook4
];
buildInputs = with pkgs;[ buildInputs = with pkgs;[
dbus dbus

View file

@ -22,7 +22,11 @@ rustPlatform.buildRustPackage rec {
cargoHash = "sha256-UeoBSHwMGfhkgRT7kmelcG3/omtB03Wh4IZrTy3yf3Y="; cargoHash = "sha256-UeoBSHwMGfhkgRT7kmelcG3/omtB03Wh4IZrTy3yf3Y=";
nativeBuildInputs = with pkgs;[ pkg-config glib ]; nativeBuildInputs = with pkgs;[
pkg-config
glib
wrapGAppsHook4
];
buildInputs = with pkgs;[ buildInputs = with pkgs;[
gtk4 gtk4

106
nix/override/streamdeck.nix Normal file
View file

@ -0,0 +1,106 @@
{ lib
, pkgs
, python3Packages
, fetchFromGitHub
, writeText
, makeDesktopItem
}:
python3Packages.buildPythonApplication rec {
pname = "streamdeck-ui";
version = "4.1.2";
src = fetchFromGitHub {
repo = "streamdeck-linux-gui";
owner = "streamdeck-linux-gui";
rev = "v${version}";
sha256 = "sha256-CSsFPGnKVQUCND6YOA9kfO41KS85C57YL9LcrWlQRKo=";
};
patches = [
# nixpkgs has a newer pillow version
./streamdeck_path.patch
];
desktopItems =
let
common = {
name = "streamdeck-ui";
desktopName = "Stream Deck UI";
icon = "streamdeck-ui";
exec = "streamdeck";
comment = "UI for the Elgato Stream Deck";
categories = [ "Utility" ];
};
in
builtins.map makeDesktopItem [
common
(common // {
name = "${common.name}-noui";
exec = "${common.exec} --no-ui";
noDisplay = true;
})
];
postInstall =
let
udevRules = ''
SUBSYSTEM=="usb", ATTRS{idVendor}=="0fd9", TAG+="uaccess"
'';
in
''
mkdir -p $out/lib/systemd/user
substitute scripts/streamdeck.service $out/lib/systemd/user/streamdeck.service \
--replace '<path to streamdeck>' $out/bin/streamdeck
mkdir -p "$out/etc/udev/rules.d"
cp ${writeText "70-streamdeck.rules" udevRules} $out/etc/udev/rules.d/70-streamdeck.rules
mkdir -p "$out/share/pixmaps"
cp streamdeck_ui/logo.png $out/share/pixmaps/streamdeck-ui.png
'';
dontWrapQtApps = true;
dontWrapGApps = true;
makeWrapperArgs = [ "\${qtWrapperArgs[@]}" "\${gappsWrapperArgs[@]}" ];
format = "pyproject";
nativeBuildInputs = [
pkgs.python3Packages.poetry-core
pkgs.copyDesktopItems
pkgs.qt6.wrapQtAppsHook
pkgs.wrapGAppsHook
];
propagatedBuildInputs = with pkgs.python3Packages; [
importlib-metadata
setuptools
filetype
cairosvg
pillow
pynput
pyside6
streamdeck
xlib
] ++ lib.optionals stdenv.isLinux [
pkgs.qt6.qtwayland
];
nativeCheckInputs = [
pkgs.xvfb-run
pkgs.python3Packages.pytest
];
# checkPhase = ''
# xvfb-run pytest tests
# '';
meta = with lib; {
description = "Linux compatible UI for the Elgato Stream Deck";
homepage = "https://streamdeck-linux-gui.github.io/streamdeck-linux-gui/";
license = licenses.mit;
mainProgram = "streamdeck";
maintainers = with maintainers; [ majiir ];
};
}

View file

@ -0,0 +1,13 @@
diff --git a/pyproject.toml b/pyproject.toml
index 54a8c19..f107170 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -18,7 +18,7 @@ pillow = "10.2.0"
pyside6 = "^6.4.2"
CairoSVG = "^2.5.2"
filetype = "^1.0.10"
-importlib-metadata = "^6.8.0"
+importlib-metadata = "^7.0.0"
evdev = "^1.6.1"
[tool.poetry.group.docs.dependencies]

View file

@ -23,5 +23,6 @@
unzip unzip
pkg-config pkg-config
sqlite sqlite
plantuml
]; ];
} }

View file

@ -35,7 +35,6 @@ in
adw-gtk3 adw-gtk3
qt5ct qt5ct
qt6ct qt6ct
libadwaita
gnutar gnutar
fishPlugins.tide fishPlugins.tide
nix-index nix-index
@ -44,6 +43,8 @@ in
nh nh
amberol amberol
satty satty
pulseaudio
playerctl
(callPackage (callPackage
../override/ncspot.nix ../override/ncspot.nix
{ }) { })
@ -62,6 +63,9 @@ in
(callPackage (callPackage
../override/oxishut.nix ../override/oxishut.nix
{ }) { })
(callPackage
../override/streamdeck.nix
{ })
]; ];
home.username = "dashie"; home.username = "dashie";
@ -88,6 +92,7 @@ in
gtk-theme = "adw-gtk3"; gtk-theme = "adw-gtk3";
cursor-theme = "Bibata-Modern-Classic"; cursor-theme = "Bibata-Modern-Classic";
cursor-size = 24; cursor-size = 24;
icon-theme = "MoreWaita";
}; };
}; };

View file

@ -1,5 +1,6 @@
{ pkgs { pkgs
, inputs , inputs
, config
, ... , ...
}: }:
{ {
@ -240,7 +241,7 @@
#"/usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1" #"/usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1"
"nextcloud --background" "nextcloud --background"
"oxinoti" "oxinoti"
]; ] ++ config.programs.hyprland.extra_autostart;
plugin = { plugin = {
hyprspace = { hyprspace = {

View file

@ -1,8 +1,7 @@
#!/bin/bash
ncspot() { ncspot() {
echo "$1" notify-send "$1"
echo "$2" notify-send "$2"
NUM=$(pactl list clients short | rg "ncspot" | awk -F 'PipeWire' ' { print $1 } ' | tr -d ' \t\n') NUM=$(pactl list clients short | rg "ncspot" | awk -F 'PipeWire' ' { print $1 } ' | tr -d ' \t\n')
CHANGE=$(pactl list sink-inputs short | rg "$NUM" | awk -F ' ' ' { print $1 }' | tr -d ' \t\n') CHANGE=$(pactl list sink-inputs short | rg "$NUM" | awk -F ' ' ' { print $1 }' | tr -d ' \t\n')
pactl set-sink-input-volume "$CHANGE" "$1" pactl set-sink-input-volume "$CHANGE" "$1"

3184
streamdeck_ui_export.json Normal file

File diff suppressed because it is too large Load diff