From 178ad2ac8a074b05cb6aaa422bcb23b7d33486f5 Mon Sep 17 00:00:00 2001 From: wer-zen Date: Tue, 26 Aug 2025 12:12:53 +0200 Subject: [PATCH] flake.nix update --- README.md | 9 ++++++- flake.nix | 74 +++++++++++++++++++++++++++++++++++++++---------------- 2 files changed, 61 insertions(+), 22 deletions(-) diff --git a/README.md b/README.md index 1901027..48939b5 100644 --- a/README.md +++ b/README.md @@ -87,14 +87,21 @@ If you want to use the ArchUpdater Widget, make sure you have any polkit agent i ### Installation +#### For Arch ```bash # Install Quickshell yay -S quickshell-git - # Download and install Noctalia (latest release) mkdir -p ~/.config/quickshell && curl -sL https://github.com/noctalia-dev/noctalia-shell/releases/latest/download/noctalia-latest.tar.gz | tar -xz --strip-components=1 -C ~/.config/quickshell ``` + +#### For Nix + +```bash +nix run github:noctalia-dev/noctalia-shell +``` + ### Usage ```bash diff --git a/flake.nix b/flake.nix index 7025c70..16e04e3 100644 --- a/flake.nix +++ b/flake.nix @@ -1,5 +1,5 @@ { - description = "Desktop shell for Caelestia dots"; + description = "Noctalia shell - a Wayland desktop shell built with Quickshell"; inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; @@ -11,25 +11,57 @@ }; }; - outputs = { - self, - nixpkgs, - systems, - ... - } @ inputs: let - eachSystem = nixpkgs.lib.genAttrs (import systems); - in { - formatter = eachSystem (pkgs: pkgs.alejandra); + outputs = { self, nixpkgs, systems, quickshell, ... }: + let + eachSystem = nixpkgs.lib.genAttrs (import systems); + in { + formatter = eachSystem (pkgs: pkgs.alejandra); - packages = eachSystem (system: rec { - noctalia-shell = nixpkgs.legacyPackages.${system}.callPackage ./nix { - rev = self.rev or self.dirtyRev; - quickshell = inputs.quickshell.packages.${system}.default.override { - withX11 = false; - withI3 = false; - }; - }; - default = noctalia-shell; - }); - }; + packages = eachSystem (system: + let + pkgs = nixpkgs.legacyPackages.${system}; + qs = quickshell.packages.${system}.default.override { + withX11 = false; + withI3 = false; + }; + + runtimeDeps = with pkgs; [ + bash bluez brightnessctl cava cliphist coreutils ddcutil file + findutils gpu-screen-recorder libnotify matugen networkmanager + swww wl-clipboard + ]; + fontconfig = pkgs.makeFontsConf { + fontDirectories = [ pkgs.material-symbols pkgs.roboto pkgs.inter-nerdfont ]; + }; + in + pkgs.stdenv.mkDerivation { + pname = "noctalia-shell"; + version = self.rev or self.dirtyRev or "dirty"; + src = ./.; + + nativeBuildInputs = [ pkgs.gcc pkgs.makeWrapper pkgs.qt6.wrapQtAppsHook ]; + buildInputs = [ qs pkgs.xkeyboard-config pkgs.qt6.qtbase ]; + propagatedBuildInputs = runtimeDeps; + + installPhase = '' + mkdir -p $out/share/noctalia-shell + cp -r ./* $out/share/noctalia-shell + + makeWrapper ${qs}/bin/qs $out/bin/noctalia-shell \ + --prefix PATH : "${pkgs.lib.makeBinPath runtimeDeps}" \ + --set FONTCONFIG_FILE "${fontconfig}" \ + --add-flags "-p $out/share/noctalia-shell" + ''; + + meta = { + description = "A sleek and minimal desktop shell thoughtfully crafted for Wayland, built with Quickshell."; + homepage = "https://github.com/noctalia-dev/noctalia-shell"; + license = pkgs.lib.licenses.mit; + mainProgram = "noctalia-shell"; + }; + } + ); + + defaultPackage = eachSystem (system: self.packages.${system}.default); + }; }