diff --git a/flake.lock b/flake.lock index c9d0c62..032efdc 100644 --- a/flake.lock +++ b/flake.lock @@ -213,6 +213,24 @@ "type": "github" } }, + "driftwm": { + "inputs": { + "nixpkgs": "nixpkgs_4" + }, + "locked": { + "lastModified": 1776424715, + "narHash": "sha256-jryEkSU9NUBAa7pDeEB1IBqpNQPnM4gyLPbpyTjXNd8=", + "owner": "malbiruk", + "repo": "driftwm", + "rev": "b13d651392bdb1e1496e98baaeb35e2a4d30295c", + "type": "github" + }, + "original": { + "owner": "malbiruk", + "repo": "driftwm", + "type": "github" + } + }, "firefox-gnome-theme": { "flake": false, "locked": { @@ -534,7 +552,7 @@ "inputs": { "flake-compat": "flake-compat_2", "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs_4", + "nixpkgs": "nixpkgs_5", "zig": "zig", "zon2nix": "zon2nix" }, @@ -573,7 +591,7 @@ }, "hexecute": { "inputs": { - "nixpkgs": "nixpkgs_6" + "nixpkgs": "nixpkgs_7" }, "locked": { "lastModified": 1765826167, @@ -661,7 +679,7 @@ }, "kimi-cli": { "inputs": { - "nixpkgs": "nixpkgs_7", + "nixpkgs": "nixpkgs_8", "pyproject-build-systems": "pyproject-build-systems", "pyproject-nix": "pyproject-nix", "systems": "systems_3", @@ -703,7 +721,7 @@ "mangowc": { "inputs": { "flake-parts": "flake-parts_2", - "nixpkgs": "nixpkgs_8", + "nixpkgs": "nixpkgs_9", "scenefx": "scenefx" }, "locked": { @@ -722,7 +740,7 @@ }, "nh": { "inputs": { - "nixpkgs": "nixpkgs_9" + "nixpkgs": "nixpkgs_10" }, "locked": { "lastModified": 1771418104, @@ -764,7 +782,7 @@ "niri-unstable": [ "niri-unstable" ], - "nixpkgs": "nixpkgs_10", + "nixpkgs": "nixpkgs_11", "nixpkgs-stable": "nixpkgs-stable", "xwayland-satellite-stable": "xwayland-satellite-stable", "xwayland-satellite-unstable": "xwayland-satellite-unstable" @@ -841,7 +859,7 @@ "nixGL": { "inputs": { "flake-utils": "flake-utils_2", - "nixpkgs": "nixpkgs_11" + "nixpkgs": "nixpkgs_12" }, "locked": { "lastModified": 1762090880, @@ -1021,7 +1039,7 @@ "inputs": { "flake-compat": "flake-compat_4", "lib-aggregate": "lib-aggregate", - "nixpkgs": "nixpkgs_13" + "nixpkgs": "nixpkgs_14" }, "locked": { "lastModified": 1764210015, @@ -1038,6 +1056,22 @@ } }, "nixpkgs_10": { + "locked": { + "lastModified": 1769318308, + "narHash": "sha256-Mjx6p96Pkefks3+aA+72lu1xVehb6mv2yTUUqmSet6Q=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "1cd347bf3355fce6c64ab37d3967b4a2cb4b878c", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-25.11", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_11": { "locked": { "lastModified": 1771369470, "narHash": "sha256-0NBlEBKkN3lufyvFegY4TYv5mCNHbi5OmBDrzihbBMQ=", @@ -1053,7 +1087,7 @@ "type": "github" } }, - "nixpkgs_11": { + "nixpkgs_12": { "locked": { "lastModified": 1746378225, "narHash": "sha256-OeRSuL8PUjIfL3Q0fTbNJD/fmv1R+K2JAOqWJd3Oceg=", @@ -1068,7 +1102,7 @@ "type": "github" } }, - "nixpkgs_12": { + "nixpkgs_13": { "locked": { "lastModified": 1774595715, "narHash": "sha256-8za7tFAK1nO2lqzLHYMPu+gmrBG9nN8UgvwOGMmOJfA=", @@ -1084,7 +1118,7 @@ "type": "github" } }, - "nixpkgs_13": { + "nixpkgs_14": { "locked": { "lastModified": 1763966396, "narHash": "sha256-6eeL1YPcY1MV3DDStIDIdy/zZCDKgHdkCmsrLJFiZf0=", @@ -1100,7 +1134,7 @@ "type": "github" } }, - "nixpkgs_14": { + "nixpkgs_15": { "locked": { "lastModified": 1771574726, "narHash": "sha256-D1PA3xQv/s4W3lnR9yJFSld8UOLr0a/cBWMQMXS+1Qg=", @@ -1116,7 +1150,7 @@ "type": "github" } }, - "nixpkgs_15": { + "nixpkgs_16": { "locked": { "lastModified": 1773821835, "narHash": "sha256-TJ3lSQtW0E2JrznGVm8hOQGVpXjJyXY2guAxku2O9A4=", @@ -1132,7 +1166,7 @@ "type": "github" } }, - "nixpkgs_16": { + "nixpkgs_17": { "locked": { "lastModified": 1761236834, "narHash": "sha256-+pthv6hrL5VLW2UqPdISGuLiUZ6SnAXdd2DdUE+fV2Q=", @@ -1148,7 +1182,7 @@ "type": "github" } }, - "nixpkgs_17": { + "nixpkgs_18": { "locked": { "lastModified": 1774709303, "narHash": "sha256-D3Q07BbIA2KnTcSXIqqu9P586uWxN74zNoCH3h2ESHg=", @@ -1197,6 +1231,22 @@ } }, "nixpkgs_4": { + "locked": { + "lastModified": 1776169885, + "narHash": "sha256-l/iNYDZ4bGOAFQY2q8y5OAfBBtrDAaPuRQqWaFHVRXM=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "4bd9165a9165d7b5e33ae57f3eecbcb28fb231c9", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_5": { "locked": { "lastModified": 315532800, "narHash": "sha256-sV6pJNzFkiPc6j9Bi9JuHBnWdVhtKB/mHgVmMPvDFlk=", @@ -1209,7 +1259,7 @@ "url": "https://channels.nixos.org/nixpkgs-unstable/nixexprs.tar.xz" } }, - "nixpkgs_5": { + "nixpkgs_6": { "locked": { "lastModified": 1758360447, "narHash": "sha256-XDY3A83bclygHDtesRoaRTafUd80Q30D/Daf9KSG6bs=", @@ -1222,7 +1272,7 @@ "url": "https://channels.nixos.org/nixos-unstable/nixexprs.tar.xz" } }, - "nixpkgs_6": { + "nixpkgs_7": { "locked": { "lastModified": 1759831965, "narHash": "sha256-vgPm2xjOmKdZ0xKA6yLXPJpjOtQPHfaZDRtH+47XEBo=", @@ -1238,7 +1288,7 @@ "type": "github" } }, - "nixpkgs_7": { + "nixpkgs_8": { "locked": { "lastModified": 1766532406, "narHash": "sha256-acLU/ag9VEoKkzOD202QASX25nG1eArXg5A0mHjKgxM=", @@ -1254,7 +1304,7 @@ "type": "github" } }, - "nixpkgs_8": { + "nixpkgs_9": { "locked": { "lastModified": 1750386251, "narHash": "sha256-1ovgdmuDYVo5OUC5NzdF+V4zx2uT8RtsgZahxidBTyw=", @@ -1270,26 +1320,10 @@ "type": "github" } }, - "nixpkgs_9": { - "locked": { - "lastModified": 1769318308, - "narHash": "sha256-Mjx6p96Pkefks3+aA+72lu1xVehb6mv2yTUUqmSet6Q=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "1cd347bf3355fce6c64ab37d3967b4a2cb4b878c", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-25.11", - "repo": "nixpkgs", - "type": "github" - } - }, "nixvim": { "inputs": { "flake-parts": "flake-parts_4", - "nixpkgs": "nixpkgs_14", + "nixpkgs": "nixpkgs_15", "nuschtosSearch": "nuschtosSearch", "systems": "systems_7" }, @@ -1355,7 +1389,7 @@ "nur": { "inputs": { "flake-parts": "flake-parts_5", - "nixpkgs": "nixpkgs_15" + "nixpkgs": "nixpkgs_16" }, "locked": { "lastModified": 1774246799, @@ -1517,6 +1551,7 @@ "awww": "awww", "caelestia-shell": "caelestia-shell", "dank-material-shell": "dank-material-shell", + "driftwm": "driftwm", "flake-parts": "flake-parts", "ghostty": "ghostty", "hexecute": "hexecute", @@ -1530,7 +1565,7 @@ "nix-matlab": "nix-matlab", "nixGL": "nixGL", "nixd": "nixd", - "nixpkgs": "nixpkgs_12", + "nixpkgs": "nixpkgs_13", "nixpkgs-new-libinput": "nixpkgs-new-libinput", "nixpkgs-r": "nixpkgs-r", "nixpkgs-stable": "nixpkgs-stable_2", @@ -1917,7 +1952,7 @@ }, "treefmt-nix_3": { "inputs": { - "nixpkgs": "nixpkgs_16" + "nixpkgs": "nixpkgs_17" }, "locked": { "lastModified": 1762938485, @@ -1962,7 +1997,7 @@ "inputs": { "crane": "crane", "flake-utils": "flake-utils_5", - "nixpkgs": "nixpkgs_17", + "nixpkgs": "nixpkgs_18", "rust-overlay": "rust-overlay_2" }, "locked": { @@ -2043,7 +2078,7 @@ }, "zon2nix": { "inputs": { - "nixpkgs": "nixpkgs_5" + "nixpkgs": "nixpkgs_6" }, "locked": { "lastModified": 1758405547, diff --git a/flake.nix b/flake.nix index 5d08244..0d530e0 100644 --- a/flake.nix +++ b/flake.nix @@ -57,6 +57,7 @@ flake-parts.url = "github:hercules-ci/flake-parts"; niri-unstable = { url = "github:JustinSpedding/niri/up-down-keybinds"; + # url = "github:Atan-D-RP4/niri/feat/layer-anims"; flake = false; }; niri = { @@ -107,5 +108,6 @@ awww.url = "git+https://codeberg.org/LGFae/awww"; # waydeeper.url = "git+file:///home/eden/Repos/waydeeper-rust"; waydeeper.url = "github:EdenQwQ/waydeeper"; + driftwm.url = "github:malbiruk/driftwm"; }; } diff --git a/home/programs/desktop/default.nix b/home/programs/desktop/default.nix index ffaa8b0..919f3ce 100644 --- a/home/programs/desktop/default.nix +++ b/home/programs/desktop/default.nix @@ -12,15 +12,41 @@ # ./scroll # ./mango ]; - home.packages = with pkgs; [ - awww - swaybg - kanshi - wlsunset - xwayland-satellite - wmname - inputs.hexecute.packages.${pkgs.stdenv.hostPlatform.system}.default - ]; + home.packages = + with pkgs; + let + system = pkgs.stdenv.hostPlatform.system; + newLibinput = inputs.nixpkgs-new-libinput.legacyPackages.${system}.libinput; + driftwm-fixed = inputs.driftwm.packages.${system}.default.overrideAttrs (oldAttrs: { + buildInputs = (builtins.filter (p: (p.pname or "") != "libinput") oldAttrs.buildInputs) ++ [ + newLibinput + ]; + postFixup = '' + patchelf --add-rpath "${ + pkgs.lib.makeLibraryPath ( + (builtins.filter (p: (p.pname or "") != "libinput") oldAttrs.buildInputs) ++ [ newLibinput ] + ) + }" $out/bin/driftwm + ''; + cargoDeps = pkgs.rustPlatform.importCargoLock { + lockFile = "${inputs.driftwm}/Cargo.lock"; + outputHashes = { + "smithay-drm-extras-0.1.0" = "sha256-6iTLezGeSnefQbCoZHsXayinjFvrsC7ezW88tlZx9Y0="; + }; + }; + }); + in + [ + awww + swaybg + kanshi + wlsunset + xwayland-satellite + wmname + inputs.hexecute.packages.${system}.default + driftwm-fixed + halley + ]; home.file."scripts" = { source = ./scripts; recursive = true; diff --git a/os/programs/default.nix b/os/programs/default.nix index b396094..7d1ba15 100644 --- a/os/programs/default.nix +++ b/os/programs/default.nix @@ -1,3 +1,4 @@ +{ inputs, pkgs, ... }: { imports = [ ./basic.nix @@ -8,4 +9,16 @@ ./tuigreet.nix # ./cosmic.nix ]; + + services.displayManager.sessionPackages = [ + pkgs.halley + (inputs.driftwm.packages.${pkgs.system}.default.overrideAttrs (oldAttrs: { + cargoDeps = pkgs.rustPlatform.importCargoLock { + lockFile = "${inputs.driftwm}/Cargo.lock"; + outputHashes = { + "smithay-drm-extras-0.1.0" = "sha256-6iTLezGeSnefQbCoZHsXayinjFvrsC7ezW88tlZx9Y0="; + }; + }; + })) + ]; } diff --git a/pkgs/default.nix b/pkgs/default.nix index 3c74176..1f09982 100644 --- a/pkgs/default.nix +++ b/pkgs/default.nix @@ -7,4 +7,5 @@ wallpapers = pkgs.callPackage ./wallpapers.nix { }; maple-mono-variable = pkgs.callPackage ./maple-mono-variable.nix { }; hachiyo-cursors = pkgs.callPackage ./hachiyo-cursors.nix { }; + halley = pkgs.callPackage ./halley.nix { }; } diff --git a/pkgs/halley.nix b/pkgs/halley.nix index d9bbe43..6660b03 100644 --- a/pkgs/halley.nix +++ b/pkgs/halley.nix @@ -21,11 +21,11 @@ rustPlatform.buildRustPackage { src = fetchFromGitHub { owner = "saltnpepper97"; repo = "halley"; - rev = "v0.1.0"; - hash = "sha256-c7cf1305a3f45338d4e55f27979df2a179a2c503c4218124513c5bf2ec877124"; + rev = "92ab43f71abf359456ca4f9da96c5b146e98b165"; + hash = "sha256-3OEY0OdQvMfSNhzvw+lXkTBmyzT+ZiPZhWBXS87wTuo="; }; - cargoHash = lib.fakeSha256; + cargoHash = "sha256-Ze03sLTAWuxd6sghvsyghgwF9PjHcH5lIc99fwMdwp0="; nativeBuildInputs = [ pkg-config @@ -58,6 +58,34 @@ rustPlatform.buildRustPackage { ); }; + postInstall = '' + install -Dm644 packaging/xdg-desktop-portal/halley-portals.conf $out/share/xdg-desktop-portal/halley-portals.conf + cat > $out/bin/halley-session <<'EOF' + #!/bin/sh + systemctl --user import-environment + if hash dbus-update-activation-environment 2>/dev/null; then + dbus-update-activation-environment --all + fi + systemctl --user start graphical-session-pre.target + systemctl --user start graphical-session.target + halley + systemctl --user stop graphical-session.target + systemctl --user stop graphical-session-pre.target + systemctl --user unset-environment WAYLAND_DISPLAY DISPLAY + EOF + chmod +x $out/bin/halley-session + mkdir -p $out/share/wayland-sessions + cat > $out/share/wayland-sessions/halley.desktop <