Workspaces were pinned one-per-monitor, so switching only ever moved one screen. The virtual-desktops plugin replaces them with vdesks that span every monitor, and SUPER+1..5 now switches all screens together. Hyprland plugins are ABI-locked to the compositor, so the input's nixpkgs follows ours to compile against the hyprland we actually run. cycleworkspaces stays off: upstream says it breaks above 2 monitors, and pc has 3. The session had also been dying several times a day, which looked like a Hyprland crash and was not one. There was no swap at all, and a nixos-rebuild forks ~60 nix evaluators; stacked on a browser and a few editor sessions that exhausted all 15G, leaving page cache squeezed to 40M while 13G sat in anon and nothing was reclaimable. The kernel then OOM-killed 1Password (highest oom_score_adj), and because every GUI app shares the wayland-wm@hyprland.service cgroup, systemd's default OOMPolicy=stop tore down the whole unit -- compositor included, with uwsm's Restart=no meaning nothing came back. Two independent fixes: zram swap (50% of RAM, zstd) with vm.swappiness raised to 180, so the kernel compresses anon pages instead of evicting cache, which raises the ceiling; and OOMPolicy=continue, so that hitting it costs one app instead of the desktop. zram rather than a swapfile because root is compress=zstd, and a btrfs swapfile needs its own nodatacow, uncompressed subvolume. Also lands the pending work in this tree: hyprshot replaces grimblast for screenshots (it reads HYPRSHOT_DIR, not XDG_SCREENSHOTS_DIR, so shots were landing loose in ~/Pictures), hyprlock at boot so login lands on the lock screen and unlocks the keyring, the battery popup moves to SUPER+R, and SUPER+W/E open floating wifi and bluetooth panels. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
171 lines
4.4 KiB
JSON
171 lines
4.4 KiB
JSON
{
|
|
"nodes": {
|
|
"apple-silicon": {
|
|
"inputs": {
|
|
"flake-compat": "flake-compat",
|
|
"nixpkgs": [
|
|
"nixpkgs"
|
|
]
|
|
},
|
|
"locked": {
|
|
"lastModified": 1785426242,
|
|
"narHash": "sha256-QHAP8KsJQmI+dpNS/wfWAtEBQ0Zby+B0Ty+qZIO/U2w=",
|
|
"owner": "nix-community",
|
|
"repo": "nixos-apple-silicon",
|
|
"rev": "66d8dd2c27f99bd5420c99938b60695aac1785c4",
|
|
"type": "github"
|
|
},
|
|
"original": {
|
|
"owner": "nix-community",
|
|
"repo": "nixos-apple-silicon",
|
|
"type": "github"
|
|
}
|
|
},
|
|
"firefox-addons": {
|
|
"inputs": {
|
|
"nixpkgs": [
|
|
"nixpkgs"
|
|
]
|
|
},
|
|
"locked": {
|
|
"dir": "pkgs/firefox-addons",
|
|
"lastModified": 1786334532,
|
|
"narHash": "sha256-C/efnaEGK18irNAyDM7JtNG6QhMNewTTp/JZNdyStWs=",
|
|
"owner": "rycee",
|
|
"repo": "nur-expressions",
|
|
"rev": "89326e8b272f25875f3dbebe3ec2b510016f57e0",
|
|
"type": "gitlab"
|
|
},
|
|
"original": {
|
|
"dir": "pkgs/firefox-addons",
|
|
"owner": "rycee",
|
|
"repo": "nur-expressions",
|
|
"type": "gitlab"
|
|
}
|
|
},
|
|
"flake-compat": {
|
|
"locked": {
|
|
"lastModified": 1761640442,
|
|
"narHash": "sha256-AtrEP6Jmdvrqiv4x2xa5mrtaIp3OEe8uBYCDZDS+hu8=",
|
|
"owner": "nix-community",
|
|
"repo": "flake-compat",
|
|
"rev": "4a56054d8ffc173222d09dad23adf4ba946c8884",
|
|
"type": "github"
|
|
},
|
|
"original": {
|
|
"owner": "nix-community",
|
|
"repo": "flake-compat",
|
|
"type": "github"
|
|
}
|
|
},
|
|
"home-manager": {
|
|
"inputs": {
|
|
"nixpkgs": [
|
|
"nixpkgs"
|
|
]
|
|
},
|
|
"locked": {
|
|
"lastModified": 1786356609,
|
|
"narHash": "sha256-ou8fYz5w9yhXC8YbvvExybFIa19MyW5G/8dEPqa90hM=",
|
|
"owner": "nix-community",
|
|
"repo": "home-manager",
|
|
"rev": "c30c7955cec30d664a9baced6bc0112e263d4647",
|
|
"type": "github"
|
|
},
|
|
"original": {
|
|
"owner": "nix-community",
|
|
"repo": "home-manager",
|
|
"type": "github"
|
|
}
|
|
},
|
|
"hyprland-virtual-desktops": {
|
|
"inputs": {
|
|
"nixpkgs": [
|
|
"nixpkgs"
|
|
]
|
|
},
|
|
"locked": {
|
|
"lastModified": 1790338297,
|
|
"narHash": "sha256-iJP+CyrS/fw/dqysRN9GtVB8GlJZcja4rkjBeJsXFsg=",
|
|
"owner": "levnikmyskin",
|
|
"repo": "hyprland-virtual-desktops",
|
|
"rev": "74b88ee5209c4dcea74eedc4646e185b02a8f946",
|
|
"type": "github"
|
|
},
|
|
"original": {
|
|
"owner": "levnikmyskin",
|
|
"repo": "hyprland-virtual-desktops",
|
|
"type": "github"
|
|
}
|
|
},
|
|
"linear-tui-src": {
|
|
"flake": false,
|
|
"locked": {
|
|
"lastModified": 1790503843,
|
|
"narHash": "sha256-FS0w8a53N+XN0tnxUzpu4FNG0rYVycv/ZlnB7bPgd+I=",
|
|
"owner": "k1-c",
|
|
"repo": "linear-tui",
|
|
"rev": "fa79ffed365c2deff1916022abe8652989682216",
|
|
"type": "github"
|
|
},
|
|
"original": {
|
|
"owner": "k1-c",
|
|
"ref": "v0.13.0",
|
|
"repo": "linear-tui",
|
|
"type": "github"
|
|
}
|
|
},
|
|
"nixpkgs": {
|
|
"locked": {
|
|
"lastModified": 1786106723,
|
|
"narHash": "sha256-zDSUbpoeo/9ZmD2+wXnzxoo1+uhL8vxc0b8yuYMKYq0=",
|
|
"owner": "NixOS",
|
|
"repo": "nixpkgs",
|
|
"rev": "f13ff45afd1bb73e640eaa08a7066dbed07e3238",
|
|
"type": "github"
|
|
},
|
|
"original": {
|
|
"owner": "NixOS",
|
|
"ref": "nixos-unstable",
|
|
"repo": "nixpkgs",
|
|
"type": "github"
|
|
}
|
|
},
|
|
"root": {
|
|
"inputs": {
|
|
"apple-silicon": "apple-silicon",
|
|
"firefox-addons": "firefox-addons",
|
|
"home-manager": "home-manager",
|
|
"hyprland-virtual-desktops": "hyprland-virtual-desktops",
|
|
"linear-tui-src": "linear-tui-src",
|
|
"nixpkgs": "nixpkgs",
|
|
"zen-browser": "zen-browser"
|
|
}
|
|
},
|
|
"zen-browser": {
|
|
"inputs": {
|
|
"home-manager": [
|
|
"home-manager"
|
|
],
|
|
"nixpkgs": [
|
|
"nixpkgs"
|
|
]
|
|
},
|
|
"locked": {
|
|
"lastModified": 1786347712,
|
|
"narHash": "sha256-yH+jWXH2TVd5h3J5KoZiE8/4O4HqoggfB0zl9uVj39w=",
|
|
"owner": "0xc000022070",
|
|
"repo": "zen-browser-flake",
|
|
"rev": "945efbc704b7f8c1731a922aabbc5d95edc9eb74",
|
|
"type": "github"
|
|
},
|
|
"original": {
|
|
"owner": "0xc000022070",
|
|
"repo": "zen-browser-flake",
|
|
"type": "github"
|
|
}
|
|
}
|
|
},
|
|
"root": "root",
|
|
"version": 7
|
|
}
|