fix: Use wrapGAppsHook4 to actually get icons in the applications

This commit is contained in:
DashieTM 2024-04-19 17:50:12 +02:00
parent 57cacdb1c9
commit 4cfd212947
16 changed files with 3357 additions and 37 deletions

View file

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

View file

@ -22,7 +22,11 @@ rustPlatform.buildRustPackage rec {
cargoHash = "sha256-seFHiBht0vc+iqQw5bd22qVvdhCMqDthWuth3NTm8OY=";
nativeBuildInputs = with pkgs;[ pkg-config glib ];
nativeBuildInputs = with pkgs;[
pkg-config
glib
wrapGAppsHook4
];
buildInputs = with pkgs;[
dbus
@ -31,16 +35,6 @@ rustPlatform.buildRustPackage rec {
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; {
description = "A work in progress notification daemon made with rust and gtk.";
homepage = "https://github.com/DashieTM/OxiDash";

View file

@ -22,7 +22,10 @@ rustPlatform.buildRustPackage rec {
cargoHash = "sha256-jIdev6K5MQ8jASDo1KWU89rSLd9UhI2MhTT4l7pP+tA=";
nativeBuildInputs = with pkgs;[ pkg-config ];
nativeBuildInputs = with pkgs;[
pkg-config
wrapGAppsHook4
];
buildInputs = with pkgs;[
dbus
@ -30,16 +33,6 @@ rustPlatform.buildRustPackage rec {
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; {
description = "A work in progress notification daemon made with rust and gtk.";
homepage = "https://github.com/DashieTM/OxiNoti";

View file

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

View file

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