From 2c23d0249cce7412a230154c5cca780b852ad28b Mon Sep 17 00:00:00 2001 From: Lucas <43530291+LuckShiba@users.noreply.github.com> Date: Fri, 5 Dec 2025 18:11:18 -0300 Subject: [PATCH] nix: match upstream package format (#918) --- distro/nix/common.nix | 4 +-- distro/nix/greeter.nix | 2 +- distro/nix/home.nix | 4 +-- distro/nix/nixos.nix | 6 ++-- flake.nix | 75 +++++++++++++++++++++++------------------- 5 files changed, 49 insertions(+), 42 deletions(-) diff --git a/distro/nix/common.nix b/distro/nix/common.nix index b3adec20..69d06792 100644 --- a/distro/nix/common.nix +++ b/distro/nix/common.nix @@ -7,7 +7,7 @@ }: let cfg = config.programs.dankMaterialShell; in { - qmlPath = "${dmsPkgs.dankMaterialShell}/etc/xdg/quickshell/dms"; + qmlPath = "${dmsPkgs.dms-shell}/share/quickshell/dms"; packages = [ @@ -19,7 +19,7 @@ in { pkgs.libsForQt5.qt5ct pkgs.kdePackages.qt6ct - dmsPkgs.dmsCli + dmsPkgs.dms-shell ] ++ lib.optional cfg.enableSystemMonitoring dmsPkgs.dgop ++ lib.optionals cfg.enableClipboard [pkgs.cliphist pkgs.wl-clipboard] diff --git a/distro/nix/greeter.nix b/distro/nix/greeter.nix index a982146d..8531683a 100644 --- a/distro/nix/greeter.nix +++ b/distro/nix/greeter.nix @@ -20,7 +20,7 @@ "--command" cfg.compositor.name "-p" - "${dmsPkgs.dankMaterialShell}/etc/xdg/quickshell/dms" + "${dmsPkgs.dms-shell}/share/quickshell/dms" ] ++ lib.optionals (cfg.compositor.customConfig != "") [ "-C" diff --git a/distro/nix/home.nix b/distro/nix/home.nix index 4c760328..32004d52 100644 --- a/distro/nix/home.nix +++ b/distro/nix/home.nix @@ -66,7 +66,7 @@ in { }; Service = { - ExecStart = lib.getExe dmsPkgs.dmsCli + " run --session"; + ExecStart = lib.getExe dmsPkgs.dms-shell + " run --session"; Restart = "on-failure"; }; @@ -89,6 +89,6 @@ in { } ]; - home.packages = common.packages ++ [dmsPkgs.dankMaterialShell]; + home.packages = common.packages; }; } diff --git a/distro/nix/nixos.nix b/distro/nix/nixos.nix index 9019dd48..8326202e 100644 --- a/distro/nix/nixos.nix +++ b/distro/nix/nixos.nix @@ -14,7 +14,7 @@ in { config = lib.mkIf cfg.enable { - environment.etc."xdg/quickshell/dms".source = "${dmsPkgs.dankMaterialShell}/etc/xdg/quickshell/dms"; + environment.etc."xdg/quickshell/dms".source = "${dmsPkgs.dms-shell}/share/quickshell/dms"; systemd.user.services.dms = lib.mkIf cfg.systemd.enable { description = "DankMaterialShell"; @@ -26,11 +26,11 @@ in { restartTriggers = lib.optional cfg.systemd.restartIfChanged common.qmlPath; serviceConfig = { - ExecStart = lib.getExe dmsPkgs.dmsCli + " run --session"; + ExecStart = lib.getExe dmsPkgs.dms-shell + " run --session"; Restart = "on-failure"; }; }; - environment.systemPackages = [cfg.quickshell.package dmsPkgs.dankMaterialShell] ++ common.packages; + environment.systemPackages = [cfg.quickshell.package] ++ common.packages; }; } diff --git a/flake.nix b/flake.nix index 864ed295..e101a13a 100644 --- a/flake.nix +++ b/flake.nix @@ -20,7 +20,7 @@ system: fn system nixpkgs.legacyPackages.${system} ); buildDmsPkgs = pkgs: { - inherit (self.packages.${pkgs.stdenv.hostPlatform.system}) dmsCli dankMaterialShell; + dms-shell = self.packages.${pkgs.stdenv.hostPlatform.system}.default; dgop = dgop.packages.${pkgs.stdenv.hostPlatform.system}.dgop; }; mkModuleWithDmsPkgs = path: args @ {pkgs, ...}: { @@ -46,10 +46,11 @@ + "_" + (self.shortRev or "dirty"); in { - dmsCli = pkgs.buildGoModule (finalAttrs: { + dms-shell = pkgs.buildGoModule (let + rootSrc = ./.; + in { inherit version; - - pname = "dmsCli"; + pname = "dms-shell"; src = ./core; vendorHash = "sha256-2PCqiW4frxME8IlmwWH5ktznhd/G1bah5Ae4dp0HPTQ="; @@ -58,50 +59,56 @@ ldflags = [ "-s" "-w" - "-X main.Version=${finalAttrs.version}" + "-X main.Version=${version}" ]; - nativeBuildInputs = [pkgs.installShellFiles]; + nativeBuildInputs = [ + pkgs.installShellFiles + pkgs.makeWrapper + ]; postInstall = '' + mkdir -p $out/share/quickshell/dms + cp -r ${rootSrc}/quickshell/. $out/share/quickshell/dms/ + + chmod u+w $out/share/quickshell/dms/VERSION + echo "${version}" > $out/share/quickshell/dms/VERSION + + # Install desktop file and icon + install -D ${rootSrc}/assets/dms-open.desktop \ + $out/share/applications/dms-open.desktop + install -D ${rootSrc}/core/assets/danklogo.svg \ + $out/share/hicolor/scalable/apps/danklogo.svg + + wrapProgram $out/bin/dms --add-flags "-c $out/share/quickshell/dms" + + install -Dm644 ${rootSrc}/assets/systemd/dms.service \ + $out/lib/systemd/user/dms.service + + substituteInPlace $out/lib/systemd/user/dms.service \ + --replace-fail /usr/bin/dms $out/bin/dms \ + --replace-fail /usr/bin/pkill ${pkgs.procps}/bin/pkill + + substituteInPlace $out/share/quickshell/dms/Modules/Greetd/assets/dms-greeter \ + --replace-fail /bin/bash ${pkgs.bashInteractive}/bin/bash + installShellCompletion --cmd dms \ --bash <($out/bin/dms completion bash) \ - --fish <($out/bin/dms completion fish ) \ + --fish <($out/bin/dms completion fish) \ --zsh <($out/bin/dms completion zsh) ''; meta = { - description = "DankMaterialShell Command Line Interface"; - homepage = "https://github.com/AvengeMedia/danklinux"; - mainProgram = "dms"; + description = "Desktop shell for wayland compositors built with Quickshell & GO"; + homepage = "https://danklinux.com"; + changelog = "https://github.com/AvengeMedia/DankMaterialShell/releases/tag/v${version}"; license = pkgs.lib.licenses.mit; - platforms = pkgs.lib.platforms.unix; + mainProgram = "dms"; + platforms = pkgs.lib.platforms.linux; }; }); - dankMaterialShell = pkgs.stdenvNoCC.mkDerivation { - inherit version; - - pname = "dankMaterialShell"; - src = ./quickshell; - installPhase = '' - mkdir -p $out/etc/xdg/quickshell - cp -r ./ $out/etc/xdg/quickshell/dms - - # Create DMS Version file - echo "${version}" > $out/etc/xdg/quickshell/dms/VERSION - - # Install desktop file - mkdir -p $out/share/applications - cp ${./assets/dms-open.desktop} $out/share/applications/dms-open.desktop - - # Install icon - mkdir -p $out/share/icons/hicolor/scalable/apps - cp ${./core/assets/danklogo.svg} $out/share/icons/hicolor/scalable/apps/danklogo.svg - ''; - }; - - default = self.packages.${system}.dmsCli; + default = self.packages.${system}.dms-shell; } );