add halley

This commit is contained in:
EdenQwQ 2026-04-24 12:07:42 +08:00
parent 544e96a21d
commit 65a37d47af
6 changed files with 158 additions and 53 deletions

117
flake.lock generated
View file

@ -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,

View file

@ -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";
};
}

View file

@ -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;

View file

@ -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=";
};
};
}))
];
}

View file

@ -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 { };
}

View file

@ -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 <<EOF
[Desktop Entry]
Name=Halley
Comment=Spatial Wayland compositor built around infinite workspace navigation
Exec=halley-session
Type=Application
EOF
'';
passthru.providedSessions = [ "halley" ];
meta = with lib; {
description = "Spatial Wayland compositor built around infinite workspace navigation";
homepage = "https://github.com/saltnpepper97/halley";