26 Commits

Author SHA1 Message Date
a2138e3d8d treewide: remove gnome
Some checks failed
Check flake / build-amd64-linux (push) Failing after 31s
2026-01-11 21:53:16 +00:00
6b8d1373c4 flake.lock: Update
Flake lock file updates:

• Updated input 'flake-parts':
    'github:hercules-ci/flake-parts/250481aafeb741edfe23d29195671c19b36b6dca?narHash=sha256-feveD98mQpptwrAEggBQKJTYbvwwglSbOv53uCfH9PY%3D' (2026-01-05)
  → 'github:hercules-ci/flake-parts/80daad04eddbbf5a4d883996a73f3f542fa437ac?narHash=sha256-PVvu7OqHBGWN16zSi6tEmPwwHQ4rLPU9Plvs8/1TUBY%3D' (2026-01-11)
• Removed input 'hyprland'
• Removed input 'hyprland/aquamarine'
• Removed input 'hyprland/aquamarine/hyprutils'
• Removed input 'hyprland/aquamarine/hyprwayland-scanner'
• Removed input 'hyprland/aquamarine/nixpkgs'
• Removed input 'hyprland/aquamarine/systems'
• Removed input 'hyprland/hyprcursor'
• Removed input 'hyprland/hyprcursor/hyprlang'
• Removed input 'hyprland/hyprcursor/nixpkgs'
• Removed input 'hyprland/hyprcursor/systems'
• Removed input 'hyprland/hyprgraphics'
• Removed input 'hyprland/hyprgraphics/hyprutils'
• Removed input 'hyprland/hyprgraphics/nixpkgs'
• Removed input 'hyprland/hyprgraphics/systems'
• Removed input 'hyprland/hyprland-guiutils'
• Removed input 'hyprland/hyprland-guiutils/aquamarine'
• Removed input 'hyprland/hyprland-guiutils/hyprgraphics'
• Removed input 'hyprland/hyprland-guiutils/hyprlang'
• Removed input 'hyprland/hyprland-guiutils/hyprtoolkit'
• Removed input 'hyprland/hyprland-guiutils/hyprtoolkit/aquamarine'
• Removed input 'hyprland/hyprland-guiutils/hyprtoolkit/hyprgraphics'
• Removed input 'hyprland/hyprland-guiutils/hyprtoolkit/hyprlang'
• Removed input 'hyprland/hyprland-guiutils/hyprtoolkit/hyprutils'
• Removed input 'hyprland/hyprland-guiutils/hyprtoolkit/hyprwayland-scanner'
• Removed input 'hyprland/hyprland-guiutils/hyprtoolkit/nixpkgs'
• Removed input 'hyprland/hyprland-guiutils/hyprtoolkit/systems'
• Removed input 'hyprland/hyprland-guiutils/hyprutils'
• Removed input 'hyprland/hyprland-guiutils/hyprwayland-scanner'
• Removed input 'hyprland/hyprland-guiutils/nixpkgs'
• Removed input 'hyprland/hyprland-guiutils/systems'
• Removed input 'hyprland/hyprland-protocols'
• Removed input 'hyprland/hyprland-protocols/nixpkgs'
• Removed input 'hyprland/hyprland-protocols/systems'
• Removed input 'hyprland/hyprlang'
• Removed input 'hyprland/hyprlang/hyprutils'
• Removed input 'hyprland/hyprlang/nixpkgs'
• Removed input 'hyprland/hyprlang/systems'
• Removed input 'hyprland/hyprutils'
• Removed input 'hyprland/hyprutils/nixpkgs'
• Removed input 'hyprland/hyprutils/systems'
• Removed input 'hyprland/hyprwayland-scanner'
• Removed input 'hyprland/hyprwayland-scanner/nixpkgs'
• Removed input 'hyprland/hyprwayland-scanner/systems'
• Removed input 'hyprland/hyprwire'
• Removed input 'hyprland/hyprwire/hyprutils'
• Removed input 'hyprland/hyprwire/nixpkgs'
• Removed input 'hyprland/hyprwire/systems'
• Removed input 'hyprland/nixpkgs'
• Removed input 'hyprland/pre-commit-hooks'
• Removed input 'hyprland/pre-commit-hooks/flake-compat'
• Removed input 'hyprland/pre-commit-hooks/gitignore'
• Removed input 'hyprland/pre-commit-hooks/gitignore/nixpkgs'
• Removed input 'hyprland/pre-commit-hooks/nixpkgs'
• Removed input 'hyprland/systems'
• Removed input 'hyprland/xdph'
• Removed input 'hyprland/xdph/hyprland-protocols'
• Removed input 'hyprland/xdph/hyprlang'
• Removed input 'hyprland/xdph/hyprutils'
• Removed input 'hyprland/xdph/hyprwayland-scanner'
• Removed input 'hyprland/xdph/nixpkgs'
• Removed input 'hyprland/xdph/systems'
• Removed input 'hyprland-plugins'
• Removed input 'hyprland-plugins/hyprland'
• Removed input 'hyprland-plugins/nixpkgs'
• Removed input 'hyprland-plugins/systems'
• Updated input 'niri':
    'github:sodiboo/niri-flake/95cbdad2ebce328c7b3fca09d9129e02d318b075?narHash=sha256-%2BRmYWQUHSSSF%2B/bVR2U/K7y6Z97fH4vvVW73IDouTFg%3D' (2026-01-10)
  → 'github:sodiboo/niri-flake/c65d3c7adfe488122c2c9b7ececb1d7fc893dc5b?narHash=sha256-iR54iiyM4UtQCfAZVsI/BRwIrDUO1oNeiA1h/Jp%2Bnro%3D' (2026-01-11)
• Updated input 'niri/niri-unstable':
    'github:YaLTeR/niri/a6baef7b68fcb60dfc57a9fc04e983cfd8a028ac?narHash=sha256-4thwWvKFEAFNtolJNN3i9wQ78jMI5VmejiLtjv3vNdc%3D' (2026-01-10)
  → 'github:YaLTeR/niri/e9d888cd52f8a783b07e0d6c0ec9a341a81031ca?narHash=sha256-1gtx2la5f8RphvN%2BBUZuZjiGh25WdO0Hf9%2BkJKIu3rA%3D' (2026-01-11)
• Updated input 'niri/nixpkgs-stable':
    'github:NixOS/nixpkgs/d351d0653aeb7877273920cd3e823994e7579b0b?narHash=sha256-r4GVX%2BFToWVE2My8VVZH4V0pTIpnu2ZE8/Z4uxGEMBE%3D' (2026-01-07)
  → 'github:NixOS/nixpkgs/d03088749a110d52a4739348f39a63f84bb0be14?narHash=sha256-50aDK%2B8eLvsLK39TzQhKNq50/HcXyP4hyxOYoPoVxjo%3D' (2026-01-10)
• Updated input 'niri/xwayland-satellite-unstable':
    'github:Supreeeme/xwayland-satellite/bc47ef59501556fc2584155ddef76493752dd727?narHash=sha256-V8%2BDrPOp940J6icERAaGuDQTKyEyZzFuRw363XwDKXg%3D' (2026-01-09)
  → 'github:Supreeeme/xwayland-satellite/72245e108f3b03c3c4474d2de9de2d1830849603?narHash=sha256-HlLo9zH4ULRXlmlIK948cHmdVhxyHgTHxGaoCRlW4k8%3D' (2026-01-11)
• Updated input 'nix-topology':
    'github:oddlama/nix-topology/924a60a75e17b8c405c5cf0c721449f6441b9967?narHash=sha256-VfU/4wlBPcyAfqftIyw5Yk9GPYVwMowRZcvnPBn%2BOwk%3D' (2026-01-09)
  → 'github:oddlama/nix-topology/4367a2093c5ff74fc478466aebf41d47ce0cacb4?narHash=sha256-pH5wkcNOiXy4MBjDTe6A1gml%2B7m%2BULC3lYMBPMqdS1w%3D' (2026-01-10)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/d351d0653aeb7877273920cd3e823994e7579b0b?narHash=sha256-r4GVX%2BFToWVE2My8VVZH4V0pTIpnu2ZE8/Z4uxGEMBE%3D' (2026-01-07)
  → 'github:NixOS/nixpkgs/d03088749a110d52a4739348f39a63f84bb0be14?narHash=sha256-50aDK%2B8eLvsLK39TzQhKNq50/HcXyP4hyxOYoPoVxjo%3D' (2026-01-10)
• Updated input 'nixpkgs-unstable':
    'github:NixOS/nixpkgs/3497aa5c9457a9d88d71fa93a4a8368816fbeeba?narHash=sha256-dhhvQY67aboBk8b0/u0XB6vwHdgbROZT3fJAjyNh5Ww%3D' (2026-01-08)
  → 'github:NixOS/nixpkgs/ffbc9f8cbaacfb331b6017d5a5abb21a492c9a38?narHash=sha256-1Sm77VfZh3mU0F5OqKABNLWxOuDeHIlcFjsXeeiPazs%3D' (2026-01-11)
• Updated input 'noctalia':
    'github:noctalia-dev/noctalia-shell/10bd2aa303be259fe39c7f95433bb4a12657ad72?narHash=sha256-vbhRHMcRrKzJ8cppwCQL1Hjk0wqDorDTAG894paemiM%3D' (2026-01-10)
  → 'github:noctalia-dev/noctalia-shell/62798d5c57fde04be310561c1e9e2ab5181e2081?narHash=sha256-oUmbaJuAdRwr97ySDaI6Sb/HrVmKVGZiqkvj66w5EN4%3D' (2026-01-11)
• Updated input 'treefmt-nix':
    'github:numtide/treefmt-nix/0c445aa21b01fd1d4bb58927f7b268568af87b20?narHash=sha256-b2gJDJfi%2BTbA7Hu2sKip%2B1mWqya0GJaWrrXQjpbOVTU%3D' (2026-01-10)
  → 'github:numtide/treefmt-nix/e96d59dff5c0d7fddb9d113ba108f03c3ef99eca?narHash=sha256-67vyT1%2BxClLldnumAzCTBvU0jLZ1YBcf4vANRWP3%2BAk%3D' (2026-01-11)
2026-01-11 21:50:01 +00:00
7845ecd2dd treewide: remove hyprland 2026-01-11 21:49:17 +00:00
47676ade11 atlas: replace gnome with niri 2026-01-11 21:44:20 +00:00
19d322f406 hosts/hypnos: rebuild
Some checks failed
Check flake / build-amd64-linux (push) Failing after 1m10s
2026-01-11 21:42:55 +00:00
55961c5618 users/jordan: format access-tokens
Some checks failed
Check flake / build-amd64-linux (push) Failing after 41s
2026-01-10 19:16:38 +00:00
c95ab6f0e7 users/jordan: add access-token for nix
Some checks failed
Check flake / build-amd64-linux (push) Failing after 13s
2026-01-10 19:05:19 +00:00
45d3148255 hosts/common: refactor
Some checks failed
Check flake / build-amd64-linux (push) Failing after 1m3s
2026-01-10 18:53:28 +00:00
1908f83f3b users/jordan: add zen-browser to odyssey
Some checks failed
Check flake / build-amd64-linux (push) Failing after 1m2s
2026-01-10 17:49:12 +00:00
1e605c6e58 users/jordan: update niri keybinds
Some checks failed
Check flake / build-amd64-linux (push) Failing after 1m2s
2026-01-10 15:24:41 +00:00
6204900633 treewide: add noctalia shell 2026-01-10 14:51:14 +00:00
c7b20a031c users/jordan: add mpv to odyssey 2026-01-10 14:38:52 +00:00
816eb25479 treewide: fix evaluation warnings
Some checks failed
Check flake / build-amd64-linux (push) Failing after 1m3s
2026-01-10 14:27:26 +00:00
c182c633cc flake.lock: Update
Some checks failed
Check flake / build-amd64-linux (push) Failing after 1m18s
Flake lock file updates:

• Updated input 'hyprland':
    'github:hyprwm/Hyprland/5b1b79c29c5e0ea974b2a9da5d122dd0f3bedca6?narHash=sha256-zpQr4jkAoARBI22dFDnRekUagdRt6Mfc%2BThpSSHm90s%3D' (2026-01-08)
  → 'github:hyprwm/Hyprland/81e7498ec27156ee97aabba6fe4993412d98d1ab?narHash=sha256-/E66%2BtcVBnvJcOFL/CjnjBfKew6A2e%2B28EZrcRHioBw%3D' (2026-01-09)
• Updated input 'niri':
    'github:sodiboo/niri-flake/28e3e179cb997a26ffa30238f9ac700744b03a65?narHash=sha256-GSHlkIV/X8oOS15fCwdH1v1HhnYDY/beK9SCgAR0loA%3D' (2026-01-09)
  → 'github:sodiboo/niri-flake/95cbdad2ebce328c7b3fca09d9129e02d318b075?narHash=sha256-%2BRmYWQUHSSSF%2B/bVR2U/K7y6Z97fH4vvVW73IDouTFg%3D' (2026-01-10)
• Updated input 'niri/niri-unstable':
    'github:YaLTeR/niri/10df9f4717cbd4efd20ae796eb6b0aa400127bdc?narHash=sha256-qS4tdG2iUQwSld9dTH1gk8GcIOrRi9umMgPv8MGDIA0%3D' (2026-01-07)
  → 'github:YaLTeR/niri/a6baef7b68fcb60dfc57a9fc04e983cfd8a028ac?narHash=sha256-4thwWvKFEAFNtolJNN3i9wQ78jMI5VmejiLtjv3vNdc%3D' (2026-01-10)
• Updated input 'nix-topology':
    'github:oddlama/nix-topology/c02ed65766ba5153f38bb43e43a60fe5a1fff7d2?narHash=sha256-ofVU9FpGR8mLtI6UDnRSbpvXZBB%2B2xWUw3x8OcAYSNE%3D' (2026-01-09)
  → 'github:oddlama/nix-topology/924a60a75e17b8c405c5cf0c721449f6441b9967?narHash=sha256-VfU/4wlBPcyAfqftIyw5Yk9GPYVwMowRZcvnPBn%2BOwk%3D' (2026-01-09)
• Removed input 'nix-topology/devshell'
• Removed input 'nix-topology/devshell/nixpkgs'
• Added input 'nix-topology/flake-parts':
    'github:hercules-ci/flake-parts/a34fae9c08a15ad73f295041fec82323541400a9?narHash=sha256-XswHlK/Qtjasvhd1nOa1e8MgZ8GS//jBoTqWtrS1Giw%3D' (2025-12-15)
• Added input 'nix-topology/flake-parts/nixpkgs-lib':
    'github:nix-community/nixpkgs.lib/2075416fcb47225d9b68ac469a5c4801a9c4dd85?narHash=sha256-k00uTP4JNfmejrCLJOwdObYC9jHRrr/5M/a/8L2EIdo%3D' (2025-12-14)
• Removed input 'nix-topology/flake-utils'
• Removed input 'nix-topology/flake-utils/systems'
• Removed input 'nix-topology/pre-commit-hooks'
• Updated input 'nixpkgs-unstable':
    'github:NixOS/nixpkgs/5912c1772a44e31bf1c63c0390b90501e5026886?narHash=sha256-Mj3d3PfwltLmukFal5i3fFt27L6NiKXdBezC1EBuZs4%3D' (2026-01-07)
  → 'github:NixOS/nixpkgs/3497aa5c9457a9d88d71fa93a4a8368816fbeeba?narHash=sha256-dhhvQY67aboBk8b0/u0XB6vwHdgbROZT3fJAjyNh5Ww%3D' (2026-01-08)
• Updated input 'treefmt-nix':
    'github:numtide/treefmt-nix/778a1d691f1ef45dd68c661715c5bf8cbf131c80?narHash=sha256-QfX6g3Wj2vQe7oBJEbTf0npvC6sJoDbF9hb2%2BgM5tf8%3D' (2026-01-07)
  → 'github:numtide/treefmt-nix/0c445aa21b01fd1d4bb58927f7b268568af87b20?narHash=sha256-b2gJDJfi%2BTbA7Hu2sKip%2B1mWqya0GJaWrrXQjpbOVTU%3D' (2026-01-10)
2026-01-10 14:07:55 +00:00
092ba79bf6 users/jordan: add ssh-agent and defaults 2026-01-10 14:06:44 +00:00
40dec61850 users/jordan: disable persistence by default
Some checks failed
Check flake / build-amd64-linux (push) Failing after 1m2s
2026-01-10 00:29:33 +00:00
b5cfedec59 users/jordan: update niri xkb config 2026-01-10 00:28:57 +00:00
7545f7618d treewide: use configured zfs package
Some checks failed
Check flake / build-amd64-linux (push) Failing after 1m1s
2026-01-09 22:53:38 +00:00
fdbfd9cfe9 hosts/artemis: fix upgrade
Some checks failed
Check flake / build-amd64-linux (push) Failing after 1m5s
2026-01-09 22:27:18 +00:00
c89dcd1f2d flake.lock: Update
Some checks failed
Check flake / build-amd64-linux (push) Failing after 26s
Flake lock file updates:

• Updated input 'flake-parts':
    'github:hercules-ci/flake-parts/a34fae9c08a15ad73f295041fec82323541400a9?narHash=sha256-XswHlK/Qtjasvhd1nOa1e8MgZ8GS//jBoTqWtrS1Giw%3D' (2025-12-15)
  → 'github:hercules-ci/flake-parts/250481aafeb741edfe23d29195671c19b36b6dca?narHash=sha256-feveD98mQpptwrAEggBQKJTYbvwwglSbOv53uCfH9PY%3D' (2026-01-05)
• Updated input 'home-manager':
    'github:nix-community/home-manager/d49d2543f02dbd789ed032188c84570d929223cb?narHash=sha256-YmaYMduV5ko8zURUT1VLGDbVC1L/bxHS0NsiPoZ6bBM%3D' (2026-01-01)
  → 'github:nix-community/home-manager/82fb7dedaad83e5e279127a38ef410bcfac6d77c?narHash=sha256-MOU5YdVu4DVwuT5ztXgQpPuRRBjSjUGIdUzOQr9iQOY%3D' (2026-01-08)
• Updated input 'hyprland':
    'github:hyprwm/Hyprland/583c4074a5d4229f841d9e470ab427339773b592?narHash=sha256-Vkl6ta0Jaim6MvbNKfhb5GR/FtW3NyMRXyioBH1rcC0%3D' (2026-01-03)
  → 'github:hyprwm/Hyprland/5b1b79c29c5e0ea974b2a9da5d122dd0f3bedca6?narHash=sha256-zpQr4jkAoARBI22dFDnRekUagdRt6Mfc%2BThpSSHm90s%3D' (2026-01-08)
• Updated input 'hyprland-plugins':
    'github:hyprwm/hyprland-plugins/a084d66d7d1334b89a07d0022fa12049141cb119?narHash=sha256-KLybElvKmWkCJBVgEesy7OueJsmDhksfbDFJ3UltPlk%3D' (2026-01-03)
  → 'github:hyprwm/hyprland-plugins/fef398ed5e4faf59bc43b915e46a75cfe8b16697?narHash=sha256-jObY8O7OI%2B91hoE137APsDxm0235/Yx%2BHhFIip187zM%3D' (2026-01-06)
• Updated input 'impermanence':
    'github:nix-community/impermanence/4b3e914cdf97a5b536a889e939fb2fd2b043a170?narHash=sha256-LJggUHbpyeDvNagTUrdhe/pRVp4pnS6wVKALS782gRI%3D' (2025-01-25)
  → 'github:nix-community/impermanence/82e5bc4508cab9e8d5a136626276eb5bbce5e9c5?narHash=sha256-iyrn9AcPZCoyxX4OT8eMkBsjG7SRUQXXS/V1JzxS7rA%3D' (2026-01-07)
• Added input 'impermanence/home-manager':
    'github:nix-community/home-manager/7419250703fd5eb50e99bdfb07a86671939103ea?narHash=sha256-pQQnbxWpY3IiZqgelXHIe/OAE/Yv4NSQq7fch7M6nXQ%3D' (2025-05-23)
• Added input 'impermanence/home-manager/nixpkgs':
    follows 'impermanence/nixpkgs'
• Added input 'impermanence/nixpkgs':
    'github:nixos/nixpkgs/063f43f2dbdef86376cc29ad646c45c46e93234c?narHash=sha256-6m1Y3/4pVw1RWTsrkAK2VMYSzG4MMIj7sqUy7o8th1o%3D' (2025-05-23)
• Updated input 'niri':
    'github:sodiboo/niri-flake/ba6ea712dc2da0b01c6a8d02dd9e86973663e4de?narHash=sha256-OShXLsMyF9hxmiID1p4QF%2BekqreViHM9105ej05S2uI%3D' (2026-01-02)
  → 'github:sodiboo/niri-flake/28e3e179cb997a26ffa30238f9ac700744b03a65?narHash=sha256-GSHlkIV/X8oOS15fCwdH1v1HhnYDY/beK9SCgAR0loA%3D' (2026-01-09)
• Updated input 'niri/niri-unstable':
    'github:YaLTeR/niri/cf0b4bc0ca93ab5c18b562ada1d8609b67b3c4e3?narHash=sha256-aTj88rDBdhmzaGXoFPOsHjXYM2OjNttixsGftT/X0dI%3D' (2025-12-31)
  → 'github:YaLTeR/niri/10df9f4717cbd4efd20ae796eb6b0aa400127bdc?narHash=sha256-qS4tdG2iUQwSld9dTH1gk8GcIOrRi9umMgPv8MGDIA0%3D' (2026-01-07)
• Updated input 'niri/nixpkgs-stable':
    'github:NixOS/nixpkgs/64049ca74d63e971b627b5f3178d95642e61cedd?narHash=sha256-yA/CuWyqm%2BAQo2ivGy6PlYrjZBQm7jfbe461%2B4HF2fo%3D' (2026-01-02)
  → 'github:NixOS/nixpkgs/d351d0653aeb7877273920cd3e823994e7579b0b?narHash=sha256-r4GVX%2BFToWVE2My8VVZH4V0pTIpnu2ZE8/Z4uxGEMBE%3D' (2026-01-07)
• Updated input 'niri/xwayland-satellite-unstable':
    'github:Supreeeme/xwayland-satellite/0dde7ca1d3a8e8c5082533d76084e2aa02bef70e?narHash=sha256-9Kv4gWagx/u4RfZJzBMAoagW9ava5waxd%2BXoTkzqF7E%3D' (2025-12-22)
  → 'github:Supreeeme/xwayland-satellite/bc47ef59501556fc2584155ddef76493752dd727?narHash=sha256-V8%2BDrPOp940J6icERAaGuDQTKyEyZzFuRw363XwDKXg%3D' (2026-01-09)
• Updated input 'nix-topology':
    'github:oddlama/nix-topology/0c052d902678b592b957eac2c250e4030fe70ebc?narHash=sha256-O/7ZAy0OczYEy7zl%2BEegeekvRqb3JPh0btyBKtRvbVw%3D' (2025-12-31)
  → 'github:oddlama/nix-topology/c02ed65766ba5153f38bb43e43a60fe5a1fff7d2?narHash=sha256-ofVU9FpGR8mLtI6UDnRSbpvXZBB%2B2xWUw3x8OcAYSNE%3D' (2026-01-09)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/64049ca74d63e971b627b5f3178d95642e61cedd?narHash=sha256-yA/CuWyqm%2BAQo2ivGy6PlYrjZBQm7jfbe461%2B4HF2fo%3D' (2026-01-02)
  → 'github:NixOS/nixpkgs/d351d0653aeb7877273920cd3e823994e7579b0b?narHash=sha256-r4GVX%2BFToWVE2My8VVZH4V0pTIpnu2ZE8/Z4uxGEMBE%3D' (2026-01-07)
• Updated input 'nixpkgs-unstable':
    'github:NixOS/nixpkgs/fb7944c166a3b630f177938e478f0378e64ce108?narHash=sha256-EgE0pxsrW9jp9YFMkHL9JMXxcqi/OoumPJYwf%2BOkucw%3D' (2026-01-02)
  → 'github:NixOS/nixpkgs/5912c1772a44e31bf1c63c0390b90501e5026886?narHash=sha256-Mj3d3PfwltLmukFal5i3fFt27L6NiKXdBezC1EBuZs4%3D' (2026-01-07)
• Updated input 'treefmt-nix':
    'github:numtide/treefmt-nix/d56486eb9493ad9c4777c65932618e9c2d0468fc?narHash=sha256-MpffQxHxmjVKMiQd0Tg2IM/bSjjdQAM%2BNDcX6yxj7rE%3D' (2026-01-03)
  → 'github:numtide/treefmt-nix/778a1d691f1ef45dd68c661715c5bf8cbf131c80?narHash=sha256-QfX6g3Wj2vQe7oBJEbTf0npvC6sJoDbF9hb2%2BgM5tf8%3D' (2026-01-07)
2026-01-09 12:32:25 +00:00
323d57a481 treewide: add niri
Some checks failed
Check flake / build-amd64-linux (push) Has been cancelled
2026-01-09 12:31:33 +00:00
36384f1305 flake.lock: Update
Some checks failed
Check flake / build-amd64-linux (push) Failing after 21s
Flake lock file updates:

• Added input 'niri':
    'github:sodiboo/niri-flake/ba6ea712dc2da0b01c6a8d02dd9e86973663e4de?narHash=sha256-OShXLsMyF9hxmiID1p4QF%2BekqreViHM9105ej05S2uI%3D' (2026-01-02)
• Added input 'niri/niri-stable':
    'github:YaLTeR/niri/01be0e65f4eb91a9cd624ac0b76aaeab765c7294?narHash=sha256-RLD89dfjN0RVO86C/Mot0T7aduCygPGaYbog566F0Qo%3D' (2025-08-30)
• Added input 'niri/niri-unstable':
    'github:YaLTeR/niri/cf0b4bc0ca93ab5c18b562ada1d8609b67b3c4e3?narHash=sha256-aTj88rDBdhmzaGXoFPOsHjXYM2OjNttixsGftT/X0dI%3D' (2025-12-31)
• Added input 'niri/nixpkgs':
    follows 'nixpkgs'
• Added input 'niri/nixpkgs-stable':
    'github:NixOS/nixpkgs/64049ca74d63e971b627b5f3178d95642e61cedd?narHash=sha256-yA/CuWyqm%2BAQo2ivGy6PlYrjZBQm7jfbe461%2B4HF2fo%3D' (2026-01-02)
• Added input 'niri/xwayland-satellite-stable':
    'github:Supreeeme/xwayland-satellite/388d291e82ffbc73be18169d39470f340707edaa?narHash=sha256-m%2B9tUfsmBeF2Gn4HWa6vSITZ4Gz1eA1F5Kh62B0N4oE%3D' (2025-08-18)
• Added input 'niri/xwayland-satellite-unstable':
    'github:Supreeeme/xwayland-satellite/0dde7ca1d3a8e8c5082533d76084e2aa02bef70e?narHash=sha256-9Kv4gWagx/u4RfZJzBMAoagW9ava5waxd%2BXoTkzqF7E%3D' (2025-12-22)
2026-01-04 00:49:43 +00:00
229d7c339a flake.lock: Update
Some checks failed
Check flake / build-amd64-linux (push) Failing after 21s
Flake lock file updates:

• Updated input 'hyprland':
    'github:hyprwm/Hyprland/ee67278038b5b6597172b2a3ee9d57f6ad0eafc7?narHash=sha256-mQTek8IQ9uxaRxEI16iRtKkJ%2BRVq1QWHpleS5ICy%2Blc%3D' (2026-01-02)
  → 'github:hyprwm/Hyprland/583c4074a5d4229f841d9e470ab427339773b592?narHash=sha256-Vkl6ta0Jaim6MvbNKfhb5GR/FtW3NyMRXyioBH1rcC0%3D' (2026-01-03)
• Updated input 'hyprland/aquamarine':
    'github:hyprwm/aquamarine/d83c97f8f5c0aae553c1489c7d9eff3eadcadace?narHash=sha256-%2Bhn8v9jkkLP9m%2Bo0Nm5SiEq10W0iWDSotH2XfjU45fA%3D' (2025-12-16)
  → 'github:hyprwm/aquamarine/b8a0c5ba5a9fbd2c660be7dd98bdde0ff3798556?narHash=sha256-sMdk6QkMDhIOnvULXKUM8WW8iyi551SWw2i6KQHbrrU%3D' (2025-12-29)
• Updated input 'hyprland/hyprgraphics':
    'github:hyprwm/hyprgraphics/8f1bec691b2d198c60cccabca7a94add2df4ed1a?narHash=sha256-JnET78yl5RvpGuDQy3rCycOCkiKoLr5DN1fPhRNNMco%3D' (2025-11-21)
  → 'github:hyprwm/hyprgraphics/4af02a3925b454deb1c36603843da528b67ded6c?narHash=sha256-MRD%2BJr2bY11MzNDfenENhiK6pvN%2BnHygxdHoHbZ1HtE%3D' (2025-12-28)
• Updated input 'hyprland/hyprland-guiutils':
    'github:hyprwm/hyprland-guiutils/e50ae912813bdfa8372d62daf454f48d6df02297?narHash=sha256-CCGohW5EBIRy4B7vTyBMqPgsNcaNenVad/wszfddET0%3D' (2025-12-13)
  → 'github:hyprwm/hyprland-guiutils/c2e906261142f5dd1ee0bfc44abba23e2754c660?narHash=sha256-R2HgtVS1G3KSIKAQ77aOZ%2BQ0HituOmPgXW9nBNkpp3Q%3D' (2025-12-29)
• Updated input 'hyprland/hyprutils':
    'github:hyprwm/hyprutils/5ac060bfcf2f12b3a6381156ebbc13826a05b09f?narHash=sha256-roINUGikWRqqgKrD4iotKbGj3ZKJl3hjMz5l/SyKrHw%3D' (2025-12-19)
  → 'github:hyprwm/hyprutils/51a4f93ce8572e7b12b7284eb9e6e8ebf16b4be9?narHash=sha256-1%2Bp4Kw8HdtMoFSmJtfdwjxM4bPxDK9yg27SlvUMpzWA%3D' (2025-12-20)
• Updated input 'hyprland/hyprwire':
    'github:hyprwm/hyprwire/1079777525b30a947c8d657fac158e00ae85de9d?narHash=sha256-26qPwrd3od%2BxoYVywSB7hC2cz9ivN46VPLlrsXyGxvE%3D' (2025-12-20)
  → 'github:hyprwm/hyprwire/d5e7d6b49fe780353c1cf9a1cf39fa8970bd9d11?narHash=sha256-RGOeG%2BwQHeJ6BKcsSB8r0ZU77g9mDvoQzoTKj2dFHwA%3D' (2026-01-03)
• Updated input 'hyprland/nixpkgs':
    'github:NixOS/nixpkgs/c6245e83d836d0433170a16eb185cefe0572f8b8?narHash=sha256-G/WVghka6c4bAzMhTwT2vjLccg/awmHkdKSd2JrycLc%3D' (2025-12-18)
  → 'github:NixOS/nixpkgs/fb7944c166a3b630f177938e478f0378e64ce108?narHash=sha256-EgE0pxsrW9jp9YFMkHL9JMXxcqi/OoumPJYwf%2BOkucw%3D' (2026-01-02)
• Updated input 'hyprland/pre-commit-hooks':
    'github:cachix/git-hooks.nix/b68b780b69702a090c8bb1b973bab13756cc7a27?narHash=sha256-t3T/xm8zstHRLx%2BpIHxVpQTiySbKqcQbK%2Br%2B01XVKc0%3D' (2025-12-16)
  → 'github:cachix/git-hooks.nix/f0927703b7b1c8d97511c4116eb9b4ec6645a0fa?narHash=sha256-6MkqajPICgugsuZ92OMoQcgSHnD6sJHwk8AxvMcIgTE%3D' (2026-01-01)
• Updated input 'hyprland/pre-commit-hooks/flake-compat':
    'github:edolstra/flake-compat/f387cd2afec9419c8ee37694406ca490c3f34ee5?narHash=sha256-XKUZz9zewJNUj46b4AJdiRZJAvSZ0Dqj2BNfXvFlJC4%3D' (2025-10-27)
  → 'github:NixOS/flake-compat/5edf11c44bc78a0d334f6334cdaf7d60d732daab?narHash=sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns%3D' (2025-12-29)
• Updated input 'hyprland-plugins':
    'github:hyprwm/hyprland-plugins/7f94d2c09fe64be4dd7000bc8a950afe3f1232f3?narHash=sha256-IJg%2BGWTDT5MLhsZOkWkqy6f5KUm%2BTmJhmT%2Bj0EhZDRc%3D' (2026-01-02)
  → 'github:hyprwm/hyprland-plugins/a084d66d7d1334b89a07d0022fa12049141cb119?narHash=sha256-KLybElvKmWkCJBVgEesy7OueJsmDhksfbDFJ3UltPlk%3D' (2026-01-03)
• Updated input 'nixpkgs-unstable':
    'github:NixOS/nixpkgs/cad22e7d996aea55ecab064e84834289143e44a0?narHash=sha256-5vKw92l1GyTnjoLzEagJy5V5mDFck72LiQWZSOnSicw%3D' (2025-12-30)
  → 'github:NixOS/nixpkgs/fb7944c166a3b630f177938e478f0378e64ce108?narHash=sha256-EgE0pxsrW9jp9YFMkHL9JMXxcqi/OoumPJYwf%2BOkucw%3D' (2026-01-02)
• Updated input 'nixvim':
    'github:nix-community/nixvim/cae79c48e93bd61e478dfc12456bf68b1ce66074?narHash=sha256-gtLBwhgjERca1UCzGkFplD5epIVRiNkePHVVtyFr73g%3D' (2025-12-27)
  → 'github:nix-community/nixvim/983751b66f255bbea1adc185364e9e7b73f82358?narHash=sha256-U1fHsZBnFrUil731NHD9Sg5HoiG%2BeSHau8OFuClhwW0%3D' (2026-01-03)
• Updated input 'treefmt-nix':
    'github:numtide/treefmt-nix/dec15f37015ac2e774c84d0952d57fcdf169b54d?narHash=sha256-yOt/FTB7oSEKQH9EZMFMeuldK1HGpQs2eAzdS9hNS/o%3D' (2025-12-30)
  → 'github:numtide/treefmt-nix/d56486eb9493ad9c4777c65932618e9c2d0468fc?narHash=sha256-MpffQxHxmjVKMiQd0Tg2IM/bSjjdQAM%2BNDcX6yxj7rE%3D' (2026-01-03)
2026-01-04 00:08:27 +00:00
70932b934c flake.lock: Update
Some checks failed
Check flake / build-amd64-linux (push) Failing after 2m3s
Flake lock file updates:

• Updated input 'hyprland':
    'github:hyprwm/Hyprland/31d3181e1ee91e338fb4fb8207d64b8d689310fc?narHash=sha256-kr8ThYlgv/cvwbYnqy/EAoYtAi3W5XMlmrXtF1YnUmo%3D' (2026-01-01)
  → 'github:hyprwm/Hyprland/ee67278038b5b6597172b2a3ee9d57f6ad0eafc7?narHash=sha256-mQTek8IQ9uxaRxEI16iRtKkJ%2BRVq1QWHpleS5ICy%2Blc%3D' (2026-01-02)
• Updated input 'hyprland-plugins':
    'github:hyprwm/hyprland-plugins/7a8521112361997d071fd1fef06d6becc7e53240?narHash=sha256-HsdfmPf5291Y3yXScMoj53P/9SS1DK3KgbprBuR8A4k%3D' (2026-01-01)
  → 'github:hyprwm/hyprland-plugins/7f94d2c09fe64be4dd7000bc8a950afe3f1232f3?narHash=sha256-IJg%2BGWTDT5MLhsZOkWkqy6f5KUm%2BTmJhmT%2Bj0EhZDRc%3D' (2026-01-02)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/89dbf01df72eb5ebe3b24a86334b12c27d68016a?narHash=sha256-tzYsEzXEVa7op1LTnrLSiPGrcCY6948iD0EcNLWcmzo%3D' (2025-12-29)
  → 'github:NixOS/nixpkgs/64049ca74d63e971b627b5f3178d95642e61cedd?narHash=sha256-yA/CuWyqm%2BAQo2ivGy6PlYrjZBQm7jfbe461%2B4HF2fo%3D' (2026-01-02)
2026-01-02 23:01:45 +00:00
eba8b853c2 flake.lock: Update
Some checks failed
Check flake / build-amd64-linux (push) Failing after 1m3s
Flake lock file updates:

• Updated input 'home-manager':
    'github:nix-community/home-manager/e298a148013c980e3c8c0ac075295fab5074d643?narHash=sha256-VvZeAKyB3vhyHStSO8ACKzWRKNQPmVWktjfuSVdvtUA%3D' (2025-12-28)
  → 'github:nix-community/home-manager/d49d2543f02dbd789ed032188c84570d929223cb?narHash=sha256-YmaYMduV5ko8zURUT1VLGDbVC1L/bxHS0NsiPoZ6bBM%3D' (2026-01-01)
• Updated input 'hyprland':
    'github:hyprwm/Hyprland/6a055fc747a5a899b97f9b4c1d1a52229a805b1e?narHash=sha256-mGk%2Bmk/miObjivy%2B6qMqQm%2BJyl8R7t6B/1SaiBkUUyY%3D' (2025-12-28)
  → 'github:hyprwm/Hyprland/31d3181e1ee91e338fb4fb8207d64b8d689310fc?narHash=sha256-kr8ThYlgv/cvwbYnqy/EAoYtAi3W5XMlmrXtF1YnUmo%3D' (2026-01-01)
• Updated input 'hyprland-plugins':
    'github:hyprwm/hyprland-plugins/3e29d68d5a830c542643a52d4be726661eaa85e7?narHash=sha256-0EoL8X%2BsYexDBusF9XyY2WoGKRqnARA%2Bvfh/3uAi/j0%3D' (2025-12-20)
  → 'github:hyprwm/hyprland-plugins/7a8521112361997d071fd1fef06d6becc7e53240?narHash=sha256-HsdfmPf5291Y3yXScMoj53P/9SS1DK3KgbprBuR8A4k%3D' (2026-01-01)
• Updated input 'nix-topology':
    'github:oddlama/nix-topology/0ed73e5a1b65eb8ed388d070ebe8dedb9182f466?narHash=sha256-qVpQxyvdByeDfb%2Bd%2BjhbyNna2Ie%2Bw85iHpt4Qu0rv/E%3D' (2025-12-17)
  → 'github:oddlama/nix-topology/0c052d902678b592b957eac2c250e4030fe70ebc?narHash=sha256-O/7ZAy0OczYEy7zl%2BEegeekvRqb3JPh0btyBKtRvbVw%3D' (2025-12-31)
• Updated input 'nix-topology/devshell':
    'github:numtide/devshell/dd6b80932022cea34a019e2bb32f6fa9e494dfef?narHash=sha256-xRJ2nPOXb//u1jaBnDP56M7v5ldavjbtR6lfGqSvcKg%3D' (2024-10-07)
  → 'github:numtide/devshell/17ed8d9744ebe70424659b0ef74ad6d41fc87071?narHash=sha256-M7SZyPZiqZUR/EiiBJnmyUbOi5oE/03tCeFrTiUZchI%3D' (2025-11-24)
• Updated input 'nix-topology/flake-utils':
    'github:numtide/flake-utils/c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a?narHash=sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ%3D' (2024-09-17)
  → 'github:numtide/flake-utils/11707dc2f618dd54ca8739b309ec4fc024de578b?narHash=sha256-l0KFg5HjrsfsO/JpG%2Br7fRrqm12kzFHyUHqHCVpMMbI%3D' (2024-11-13)
• Updated input 'nixos-hardware':
    'github:NixOS/nixos-hardware/c5db9569ac9cc70929c268ac461f4003e3e5ca80?narHash=sha256-UXVtN77D7pzKmzOotFTStgZBqpOcf8cO95FcupWp4Zo%3D' (2025-12-24)
  → 'github:NixOS/nixos-hardware/40b1a28dce561bea34858287fbb23052c3ee63fe?narHash=sha256-ljDBUDpD1Cg5n3mJI81Hz5qeZAwCGxon4kQW3Ho3%2B6Q%3D' (2025-12-31)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/9ef261221d1e72399f2036786498d78c38185c46?narHash=sha256-P6RVkrM9JLCW6xBjSwHfgTOQ1JwBUma5xe5LI8xAPC0%3D' (2025-12-28)
  → 'github:NixOS/nixpkgs/89dbf01df72eb5ebe3b24a86334b12c27d68016a?narHash=sha256-tzYsEzXEVa7op1LTnrLSiPGrcCY6948iD0EcNLWcmzo%3D' (2025-12-29)
• Updated input 'nixpkgs-unstable':
    'github:NixOS/nixpkgs/c0b0e0fddf73fd517c3471e546c0df87a42d53f4?narHash=sha256-coBu0ONtFzlwwVBzmjacUQwj3G%2BlybcZ1oeNSQkgC0M%3D' (2025-12-28)
  → 'github:NixOS/nixpkgs/cad22e7d996aea55ecab064e84834289143e44a0?narHash=sha256-5vKw92l1GyTnjoLzEagJy5V5mDFck72LiQWZSOnSicw%3D' (2025-12-30)
• Updated input 'pre-commit-hooks':
    'github:cachix/git-hooks.nix/b68b780b69702a090c8bb1b973bab13756cc7a27?narHash=sha256-t3T/xm8zstHRLx%2BpIHxVpQTiySbKqcQbK%2Br%2B01XVKc0%3D' (2025-12-16)
  → 'github:cachix/git-hooks.nix/f0927703b7b1c8d97511c4116eb9b4ec6645a0fa?narHash=sha256-6MkqajPICgugsuZ92OMoQcgSHnD6sJHwk8AxvMcIgTE%3D' (2026-01-01)
• Updated input 'pre-commit-hooks/flake-compat':
    'github:edolstra/flake-compat/f387cd2afec9419c8ee37694406ca490c3f34ee5?narHash=sha256-XKUZz9zewJNUj46b4AJdiRZJAvSZ0Dqj2BNfXvFlJC4%3D' (2025-10-27)
  → 'github:NixOS/flake-compat/5edf11c44bc78a0d334f6334cdaf7d60d732daab?narHash=sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns%3D' (2025-12-29)
• Updated input 'treefmt-nix':
    'github:numtide/treefmt-nix/42d96e75aa56a3f70cab7e7dc4a32868db28e8fd?narHash=sha256-%2BcqN4PJz9y0JQXfAK5J1drd0U05D5fcAGhzhfVrDlsI%3D' (2025-12-17)
  → 'github:numtide/treefmt-nix/dec15f37015ac2e774c84d0952d57fcdf169b54d?narHash=sha256-yOt/FTB7oSEKQH9EZMFMeuldK1HGpQs2eAzdS9hNS/o%3D' (2025-12-30)
2026-01-01 23:43:59 +00:00
0bb7eaa7d4 flake.lock: Update
Some checks failed
Check flake / build-amd64-linux (push) Failing after 1m41s
Flake lock file updates:

• Updated input 'home-manager':
    'github:nix-community/home-manager/0999ed8f965bbbd991437ad9c5ed3434cecbc30e?narHash=sha256-ZbnG01yA3O8Yr1vUm3%2BNQ2qk9iRhS5bloAnuXHHy7%2Bc%3D' (2025-12-24)
  → 'github:nix-community/home-manager/e298a148013c980e3c8c0ac075295fab5074d643?narHash=sha256-VvZeAKyB3vhyHStSO8ACKzWRKNQPmVWktjfuSVdvtUA%3D' (2025-12-28)
• Updated input 'hyprland':
    'github:hyprwm/Hyprland/33df518f97b930316742736ecb07dc322da4c5d3?narHash=sha256-m9VZ9cxYUl9Q9%2BROSKmYpVeyIAvz1faqNqBKZ4WamWI%3D' (2025-12-26)
  → 'github:hyprwm/Hyprland/6a055fc747a5a899b97f9b4c1d1a52229a805b1e?narHash=sha256-mGk%2Bmk/miObjivy%2B6qMqQm%2BJyl8R7t6B/1SaiBkUUyY%3D' (2025-12-28)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/f560ccec6b1116b22e6ed15f4c510997d99d5852?narHash=sha256-BASnpCLodmgiVn0M1MU2Pqyoz0aHwar/0qLkp7CjvSQ%3D' (2025-12-26)
  → 'github:NixOS/nixpkgs/9ef261221d1e72399f2036786498d78c38185c46?narHash=sha256-P6RVkrM9JLCW6xBjSwHfgTOQ1JwBUma5xe5LI8xAPC0%3D' (2025-12-28)
• Updated input 'nixpkgs-unstable':
    'github:NixOS/nixpkgs/3e2499d5539c16d0d173ba53552a4ff8547f4539?narHash=sha256-QEhk0eXgyIqTpJ/ehZKg9IKS7EtlWxF3N7DXy42zPfU%3D' (2025-12-25)
  → 'github:NixOS/nixpkgs/c0b0e0fddf73fd517c3471e546c0df87a42d53f4?narHash=sha256-coBu0ONtFzlwwVBzmjacUQwj3G%2BlybcZ1oeNSQkgC0M%3D' (2025-12-28)
• Updated input 'nixvim':
    'github:nix-community/nixvim/2d3184cd3dd31f6eb57eb4ddfe2387ebd141f1e5?narHash=sha256-JG0KvKmVyAQZ4PxKVDy7FGGUirt1lLhWwGwy9ExLCoI%3D' (2025-12-26)
  → 'github:nix-community/nixvim/cae79c48e93bd61e478dfc12456bf68b1ce66074?narHash=sha256-gtLBwhgjERca1UCzGkFplD5epIVRiNkePHVVtyFr73g%3D' (2025-12-27)
2025-12-29 13:39:28 +00:00
45 changed files with 1108 additions and 1854 deletions

View File

@@ -5,7 +5,7 @@ System and user configuration for NixOS-based systems.
| | |
|-|-|
| **Shell:** | zsh |
| **WM:** | Hyprland |
| **WM:** | Niri |
| **Theme:** | Adwaita |
| **Terminal:** | kitty |

841
flake.lock generated

File diff suppressed because it is too large Load Diff

View File

@@ -34,13 +34,6 @@
inputs.nixpkgs.follows = "nixpkgs";
};
hyprland.url = "github:hyprwm/Hyprland";
hyprland-plugins = {
url = "github:hyprwm/hyprland-plugins";
inputs.hyprland.follows = "hyprland";
};
firefox-gnome-theme = {
url = "github:rafaelmardojai/firefox-gnome-theme";
flake = false;
@@ -60,6 +53,11 @@
flake = false;
};
niri = {
url = "github:sodiboo/niri-flake";
inputs.nixpkgs.follows = "nixpkgs";
};
nixos-hardware.url = "github:NixOS/nixos-hardware";
nixos-mailserver = {
@@ -81,7 +79,11 @@
nix-topology = {
url = "github:oddlama/nix-topology";
inputs.nixpkgs.follows = "nixpkgs";
inputs.pre-commit-hooks.follows = "pre-commit-hooks";
};
noctalia = {
url = "github:noctalia-dev/noctalia-shell";
inputs.nixpkgs.follows = "nixpkgs";
};
pre-commit-hooks = {
@@ -103,6 +105,11 @@
url = "github:numtide/treefmt-nix";
inputs.nixpkgs.follows = "nixpkgs";
};
zen-browser = {
url = "github:youwen5/zen-browser-flake";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs =
@@ -136,7 +143,7 @@
perSystem =
{ pkgs, ... }:
{
formatter = pkgs.nixfmt-rfc-style;
formatter = pkgs.nixfmt;
legacyPackages = pkgs.lib.packagesFromDirectoryRecursive {
callPackage = pkgs.callPackage;
@@ -168,7 +175,7 @@
no-lambda-arg = true;
};
mdformat.enable = true;
nixfmt-rfc-style.enable = true;
nixfmt.enable = true;
shellcheck.enable = true;
};
};

View File

@@ -103,10 +103,6 @@ in
enable = true;
interfaces = [ "wlp11s0" ];
};
desktop = {
gnome.enable = lib.mkForce false;
hyprland.enable = false;
};
};
};

View File

@@ -68,8 +68,9 @@ in
"amdgpu.sched_hw_submission=4"
"audit=0"
];
kernelPackages = pkgs.linuxPackages_6_17;
kernelPackages = pkgs.linuxPackages_6_18;
supportedFilesystems = [ "ntfs" ];
zfs.package = pkgs.zfs_2_4;
};
hardware = {

View File

@@ -24,12 +24,13 @@
config.allowUnfree = true;
overlays = [
inputs.agenix.overlays.default
inputs.niri.overlays.niri
(final: prev: {
unstable = import inputs.nixpkgs-unstable {
config = {
allowUnfree = true;
};
system = final.system;
system = final.stdenv.hostPlatform.system;
};
})
(import ../overlays/default.nix)
@@ -79,9 +80,10 @@
nix = {
package = pkgs.nixVersions.stable;
extraOptions = ''
experimental-features = nix-command flakes
'';
settings.extra-experimental-features = [
"flakes"
"nix-command"
];
buildMachines = [
{
hostName = "10.0.1.235";

View File

@@ -51,7 +51,6 @@
systemd.services.NetworkManager-wait-online.enable = false;
modules = {
system.desktop.gnome.enable = true;
services.tailscale.enable = true;
};

View File

@@ -1,12 +1,8 @@
{
pkgs,
lib,
...
}:
let
inherit (lib) mkForce;
in
{
imports = [
./hardware-configuration.nix
@@ -45,10 +41,6 @@ in
repoPath = "ssh://b9cjl9hq@b9cjl9hq.repo.borgbase.com/./repo";
};
};
system.desktop = {
gnome.enable = mkForce false;
hyprland.enable = true;
};
};
system.stateVersion = "22.11";

View File

@@ -1,101 +0,0 @@
From d310ddee0fb8e7a5a8b89668c6cb8f9dc863ce94 Mon Sep 17 00:00:00 2001
From: Jordan Holt <jordan@vimium.com>
Date: Sun, 28 Apr 2024 15:59:52 +0100
Subject: [PATCH] Add apple_set_os EFI boot service
---
drivers/firmware/efi/libstub/x86-stub.c | 59 +++++++++++++++++++++++++
include/linux/efi.h | 1 +
2 files changed, 60 insertions(+)
diff --git a/drivers/firmware/efi/libstub/x86-stub.c b/drivers/firmware/efi/libstub/x86-stub.c
index d5a8182cf..be722c43a 100644
--- a/drivers/firmware/efi/libstub/x86-stub.c
+++ b/drivers/firmware/efi/libstub/x86-stub.c
@@ -449,6 +449,63 @@ static void setup_graphics(struct boot_params *boot_params)
}
}
+typedef struct {
+ u64 version;
+ void (*set_os_version) (const char *os_version);
+ void (*set_os_vendor) (const char *os_vendor);
+} apple_set_os_interface_t;
+
+static efi_status_t apple_set_os()
+{
+ apple_set_os_interface_t *set_os;
+ efi_guid_t set_os_guid = APPLE_SET_OS_PROTOCOL_GUID;
+ efi_status_t status;
+ void **handles;
+ unsigned long i, nr_handles, size = 0;
+
+ status = efi_bs_call(locate_handle, EFI_LOCATE_BY_PROTOCOL,
+ &set_os_guid, NULL, &size, handles);
+
+ if (status == EFI_BUFFER_TOO_SMALL) {
+ status = efi_bs_call(allocate_pool, EFI_LOADER_DATA,
+ size, &handles);
+
+ if (status != EFI_SUCCESS)
+ return status;
+
+ status = efi_bs_call(locate_handle, EFI_LOCATE_BY_PROTOCOL,
+ &set_os_guid, NULL, &size, handles);
+ }
+
+ if (status != EFI_SUCCESS)
+ goto free_handle;
+
+ nr_handles = size / sizeof(void *);
+ for (i = 0; i < nr_handles; i++) {
+ void *h = handles[i];
+
+ status = efi_bs_call(handle_protocol, h,
+ &set_os_guid, &set_os);
+
+ if (status != EFI_SUCCESS || !set_os)
+ continue;
+
+ if (set_os->version > 0) {
+ efi_bs_call((unsigned long)set_os->set_os_version,
+ "Mac OS X 10.9");
+ }
+
+ if (set_os->version >= 2) {
+ efi_bs_call((unsigned long)set_os->set_os_vendor,
+ "Apple Inc.");
+ }
+ }
+
+free_handle:
+ efi_bs_call(free_pool, uga_handle);
+
+ return status;
+}
static void __noreturn efi_exit(efi_handle_t handle, efi_status_t status)
{
@@ -951,6 +1008,8 @@ void __noreturn efi_stub_entry(efi_handle_t handle,
setup_unaccepted_memory();
+ apple_set_os();
+
status = exit_boot(boot_params, handle);
if (status != EFI_SUCCESS) {
efi_err("exit_boot() failed!\n");
diff --git a/include/linux/efi.h b/include/linux/efi.h
index d59b0947f..81158014f 100644
--- a/include/linux/efi.h
+++ b/include/linux/efi.h
@@ -385,6 +385,7 @@ void efi_native_runtime_setup(void);
#define EFI_MEMORY_ATTRIBUTES_TABLE_GUID EFI_GUID(0xdcfa911d, 0x26eb, 0x469f, 0xa2, 0x20, 0x38, 0xb7, 0xdc, 0x46, 0x12, 0x20)
#define EFI_CONSOLE_OUT_DEVICE_GUID EFI_GUID(0xd3b36f2c, 0xd551, 0x11d4, 0x9a, 0x46, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d)
#define APPLE_PROPERTIES_PROTOCOL_GUID EFI_GUID(0x91bd12fe, 0xf6c3, 0x44fb, 0xa5, 0xb7, 0x51, 0x22, 0xab, 0x30, 0x3a, 0xe0)
+#define APPLE_SET_OS_PROTOCOL_GUID EFI_GUID(0xc5c5da95, 0x7d5c, 0x45e6, 0xb2, 0xf1, 0x3f, 0xd5, 0x2b, 0xb1, 0x00, 0x77)
#define EFI_TCG2_PROTOCOL_GUID EFI_GUID(0x607f766c, 0x7455, 0x42be, 0x93, 0x0b, 0xe4, 0xd7, 0x6d, 0xb2, 0x72, 0x0f)
#define EFI_TCG2_FINAL_EVENTS_TABLE_GUID EFI_GUID(0x1e2ed096, 0x30e2, 0x4254, 0xbd, 0x89, 0x86, 0x3b, 0xbe, 0xf8, 0x23, 0x25)
#define EFI_LOAD_FILE_PROTOCOL_GUID EFI_GUID(0x56ec3091, 0x954c, 0x11d2, 0x8e, 0x3f, 0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b)
--
2.42.0

View File

@@ -24,16 +24,24 @@ Apple SSD SM0512F | `/dev/sda1` (EFI, 256 MiB, NixOS Boot) <br> `/dev/sda2` (ZFS
rpool/
├── local
│ ├── nix
│ └── tmp
├── system
│ ├── root
│ └── var
└── user
└── home
│ └── state
└── safe
└── persist
```
See [Graham Christensen's article](https://grahamc.com/blog/nixos-on-zfs/#datasets) for the motivation behind these datasets.
#### Impermanence
This machine uses [impermanence](https://github.com/nix-community/impermanence) and is rolled back to a clean state on each reboot.
Mountpoint | Persists across reboots? | Backed up?
--- | --- | ---
`/` | No | Yes
`/state` | Yes | No
`/persist` | Yes | Yes
### Networks
- DHCP on `10.0.1.0/24` subnet.

View File

@@ -4,50 +4,113 @@
pkgs,
...
}:
let
inherit (lib)
mkForce
;
in
{
imports = [
inputs.disko.nixosModules.disko
./hardware-configuration.nix
./disko-config.nix
../desktop.nix
../../modules/nixos/deterministic-ids.nix
../../users/jordan
];
nixpkgs = {
hostPlatform = "x86_64-linux";
config = {
nvidia.acceptLicense = true;
permittedInsecurePackages = [ "broadcom-sta-6.30.223.271-57-6.12.41" ];
permittedInsecurePackages = [ "broadcom-sta-6.30.223.271-59-6.12.63" ];
};
};
age.rekey.hostPubkey = ./ssh_host_ed25519_key.pub;
boot.loader = {
systemd-boot.enable = true;
efi.canTouchEfiVariables = true;
boot = {
loader = {
systemd-boot.enable = true;
efi.canTouchEfiVariables = true;
};
initrd.systemd = {
enable = true;
extraBin.cryptsetup = "${pkgs.cryptsetup}/bin/cryptsetup";
services."zfs-import-rpool".after = [ "cryptsetup.target" ];
};
tmp.useTmpfs = true;
};
networking.hostId = "cf791898";
console.earlySetup = true;
# nvidia 470 driver doesn't work with Wayland
services = {
xserver = {
displayManager.gdm.wayland = lib.mkForce false;
videoDrivers = [ "nvidia" ];
};
displayManager = {
defaultSession = "gnome-xorg";
systemd.network.enable = true;
systemd.network.wait-online.enable = false;
networking = {
hostId = "cf791898";
useNetworkd = true;
dhcpcd.enable = false;
firewall = {
enable = true;
allowedTCPPorts = [
22 # SSH
];
};
};
services.resolved = {
enable = true;
dnssec = "false";
fallbackDns = [
"9.9.9.9"
"2620:fe::fe"
"1.1.1.1"
"2606:4700:4700::1111"
];
llmnr = "false";
extraConfig = ''
MulticastDNS=false
'';
};
# Workaround for label rendering bug in GTK4 with nvidia 470 driver
environment.sessionVariables.GSK_RENDERER = "gl";
environment.systemPackages = [
pkgs.moonlight-qt
];
environment.persistence."/persist".enable = mkForce true;
environment.persistence."/state".enable = mkForce true;
modules = {
system.desktop.gnome.enable = mkForce false;
};
services.openssh.settings.PermitRootLogin = mkForce "prohibit-password";
users = {
users = {
root = {
openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILVHTjsyMIV4THNw6yz0OxAxGnC+41gX72UrPqTzR+OS jordan@vimium.com"
];
};
};
};
users.deterministicIds =
let
uidGid = id: {
uid = id;
gid = id;
};
in
{
systemd-oom = uidGid 999;
systemd-coredump = uidGid 998;
sshd = uidGid 997;
nscd = uidGid 996;
polkituser = uidGid 995;
rtkit = uidGid 994;
lpadmin = uidGid 993;
};
system.stateVersion = "22.11";
}

View File

@@ -8,20 +8,32 @@
content = {
type = "gpt";
partitions = {
ESP = {
efi = {
size = "256M";
type = "EF00";
type = "ef00";
content = {
type = "filesystem";
format = "vfat";
mountpoint = "/boot";
};
};
zfs = {
swap = {
size = "8G";
content = {
type = "swap";
randomEncryption = true;
};
};
rpool = {
size = "100%";
content = {
type = "zfs";
pool = "rpool";
type = "luks";
name = "rpool_ata-APPLE_SSD_SM0512F_S1K5NYBF736152";
settings.allowDiscards = true;
content = {
type = "zfs";
pool = "rpool";
};
};
};
};
@@ -35,87 +47,59 @@
ashift = "12";
};
rootFsOptions = {
canmount = "off";
mountpoint = "none";
dnodesize = "auto";
compression = "zstd";
acltype = "posix";
atime = "off";
xattr = "sa";
dnodesize = "auto";
mountpoint = "none";
canmount = "off";
devices = "off";
exec = "off";
setuid = "off";
};
postCreateHook = "zfs snapshot rpool@blank";
datasets = {
local = {
"local" = {
type = "zfs_fs";
};
"local/root" = {
type = "zfs_fs";
mountpoint = "/";
options = {
mountpoint = "none";
canmount = "noauto";
mountpoint = "/";
exec = "on";
setuid = "on";
};
postCreateHook = "zfs snapshot rpool/local/root@blank";
};
"local/nix" = {
type = "zfs_fs";
mountpoint = "/nix";
options = {
atime = "off";
mountpoint = "legacy";
canmount = "noauto";
mountpoint = "/nix";
exec = "on";
setuid = "on";
};
};
"local/tmp" = {
"local/state" = {
type = "zfs_fs";
mountpoint = "/tmp";
mountpoint = "/state";
options = {
setuid = "off";
devices = "off";
mountpoint = "legacy";
canmount = "noauto";
mountpoint = "/state";
};
};
system = {
"safe" = {
type = "zfs_fs";
mountpoint = "/";
options = {
mountpoint = "legacy";
};
};
"system/var" = {
"safe/persist" = {
type = "zfs_fs";
mountpoint = "/var";
mountpoint = "/persist";
options = {
mountpoint = "legacy";
};
};
"system/var/tmp" = {
type = "zfs_fs";
mountpoint = "/var/tmp";
options = {
devices = "off";
mountpoint = "legacy";
};
};
"system/var/log" = {
type = "zfs_fs";
mountpoint = "/var/log";
options = {
compression = "on";
acltype = "posix";
mountpoint = "legacy";
};
};
user = {
type = "zfs_fs";
options = {
mountpoint = "none";
encryption = "aes-256-gcm";
keyformat = "passphrase";
keylocation = "file:///tmp/secret.key";
};
# use this to read the key during boot
postCreateHook = ''
zfs set keylocation="prompt" "rpool/$name";
'';
};
"user/home" = {
type = "zfs_fs";
mountpoint = "/home";
options = {
setuid = "off";
devices = "off";
mountpoint = "legacy";
canmount = "noauto";
mountpoint = "/persist";
};
};
};

View File

@@ -30,7 +30,6 @@
];
extraModulePackages = [
config.boot.kernelPackages.broadcom_sta
config.boot.kernelPackages.nvidiaPackages.legacy_470
];
};
@@ -40,11 +39,6 @@
hardware = {
cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
nvidia = {
package = config.boot.kernelPackages.nvidiaPackages.legacy_470;
modesetting.enable = true;
powerManagement.enable = true;
};
graphics = {
enable = true;
extraPackages = with pkgs; [

View File

@@ -1,5 +1,4 @@
{
lib,
pkgs,
...
}:
@@ -83,6 +82,12 @@
};
};
# We actually use the home-manager module to add the actual portal config,
# but need this so relevant implementations are found
environment.pathsToLink = [
"/share/xdg-desktop-portal"
];
modules = {
hardware.presonus-studio.enable = true;
services = {
@@ -100,10 +105,6 @@
repoPath = "ssh://iqwu22oq@iqwu22oq.repo.borgbase.com/./repo";
};
};
system.desktop = {
gnome.enable = lib.mkForce false;
hyprland.enable = true;
};
};
system.stateVersion = "22.11";

View File

@@ -5,8 +5,6 @@
./services/borgmatic.nix
./services/postgresql.nix
./services/tailscale.nix
./system/desktop/gnome.nix
./system/desktop/hyprland.nix
./system/wireless.nix
];
}

View File

@@ -0,0 +1,100 @@
{
lib,
config,
...
}:
let
inherit (lib)
concatLists
flip
mapAttrsToList
mkDefault
mkIf
mkOption
types
;
cfg = config.users.deterministicIds;
in
{
options = {
users.deterministicIds = mkOption {
default = { };
description = ''
Maps a user or group name to its expected uid/gid values. If a user/group is
used on the system without specifying a uid/gid, this module will assign the
corresponding ids defined here, or show an error if the definition is missing.
'';
type = types.attrsOf (
types.submodule {
options = {
uid = mkOption {
type = types.nullOr types.int;
default = null;
description = "The uid to assign if it is missing in `users.users.<name>`.";
};
gid = mkOption {
type = types.nullOr types.int;
default = null;
description = "The gid to assign if it is missing in `users.groups.<name>`.";
};
};
}
);
};
users.users = mkOption {
type = types.attrsOf (
types.submodule (
{ name, ... }:
{
config.uid =
let
deterministicUid = cfg.${name}.uid or null;
in
mkIf (deterministicUid != null) (mkDefault deterministicUid);
}
)
);
};
users.groups = mkOption {
type = types.attrsOf (
types.submodule (
{ name, ... }:
{
config.gid =
let
deterministicGid = cfg.${name}.gid or null;
in
mkIf (deterministicGid != null) (mkDefault deterministicGid);
}
)
);
};
};
config = {
assertions =
concatLists (
flip mapAttrsToList config.users.users (
name: user: [
{
assertion = user.uid != null;
message = "non-deterministic uid detected for '${name}', please assign one via `users.deterministicIds`";
}
{
assertion = !user.autoSubUidGidRange;
message = "non-deterministic subUids/subGids detected for: ${name}";
}
]
)
)
++ flip mapAttrsToList config.users.groups (
name: group: {
assertion = group.gid != null;
message = "non-deterministic gid detected for '${name}', please assign one via `users.deterministicIds`";
}
);
};
}

View File

@@ -1,21 +1,14 @@
{
config,
pkgs,
lib,
...
}:
let
inherit (lib)
attrNames
flip
isAttrs
mapAttrs
mkIf
mkMerge
mkOption
optionals
types
;
zfsPkg = config.boot.zfs.package;
in
{
boot.zfs.forceImportRoot = false;
@@ -31,7 +24,7 @@ in
unitConfig.DefaultDependencies = "no";
serviceConfig = {
Type = "oneshot";
ExecStart = "${pkgs.zfs}/bin/zfs rollback -r rpool/local/root@blank";
ExecStart = "${zfsPkg}/bin/zfs rollback -r rpool/local/root@blank";
};
};
@@ -88,60 +81,4 @@ in
};
users.mutableUsers = !config.environment.persistence."/persist".enable;
# For each user that has a home-manager config, merge the locally defined
# persistence options that we defined above.
imports =
let
mkUserFiles = map (
x: { parentDirectory.mode = "700"; } // (if isAttrs x then x else { file = x; })
);
mkUserDirs = map (x: { mode = "700"; } // (if isAttrs x then x else { directory = x; }));
in
[
{
environment.persistence = mkMerge (
flip map (attrNames config.home-manager.users) (
user:
let
hmUserCfg = config.home-manager.users.${user};
in
flip mapAttrs hmUserCfg.home.persistence (
_: sourceCfg: {
users.${user} = {
files = mkUserFiles sourceCfg.files;
directories = mkUserDirs sourceCfg.directories;
};
}
)
)
);
}
];
home-manager.sharedModules = [
{
options.home.persistence = mkOption {
description = "Additional persistence config for the given source path";
default = { };
type = types.attrsOf (
types.submodule {
options = {
files = mkOption {
description = "Additional files to persist via NixOS impermanence.";
type = types.listOf (types.either types.attrs types.str);
default = [ ];
};
directories = mkOption {
description = "Additional directories to persist via NixOS impermanence.";
type = types.listOf (types.either types.attrs types.str);
default = [ ];
};
};
}
);
};
}
];
}

View File

@@ -1,5 +1,4 @@
{
pkgs,
lib,
config,
...
@@ -9,6 +8,7 @@ with lib;
let
cfg = config.modules.podman;
zfsPkg = config.boot.zfs.package;
in
{
options.modules.podman = {
@@ -29,7 +29,7 @@ in
dates = "weekly";
flags = [ "--all" ];
};
extraPackages = [ pkgs.zfs ];
extraPackages = [ zfsPkg ];
};
containers.storage.settings.storage = {

View File

@@ -1,79 +0,0 @@
{
config,
lib,
pkgs,
...
}:
let
cfg = config.modules.system.desktop.gnome;
in
{
options.modules.system.desktop.gnome = {
enable = lib.mkOption {
default = false;
example = true;
};
};
config = lib.mkIf cfg.enable {
services.xserver = {
enable = true;
displayManager.gdm.enable = true;
desktopManager.gnome.enable = true;
};
services.flatpak.enable = true;
services.fwupd.enable = true;
programs.dconf.enable = true;
environment.systemPackages = with pkgs.unstable; [
adw-gtk3
adwaita-fonts
libsForQt5.qtstyleplugin-kvantum
morewaita-icon-theme
nautilus-python
qadwaitadecorations
qadwaitadecorations-qt6
## Shell extensions
gnomeExtensions.appindicator
gnomeExtensions.arcmenu
gnomeExtensions.blur-my-shell
gnomeExtensions.burn-my-windows
gnomeExtensions.clipboard-indicator
gnomeExtensions.coverflow-alt-tab
gnomeExtensions.dash-to-panel
gnomeExtensions.desktop-cube
gnomeExtensions.easyScreenCast
gnomeExtensions.fly-pie
gnomeExtensions.forge
gnomeExtensions.gsconnect
gnomeExtensions.gsnap
gnomeExtensions.hide-top-bar
gnomeExtensions.just-perfection
gnomeExtensions.media-controls
gnomeExtensions.mouse-follows-focus
# gnomeExtensions.pano (disabled due to: https://github.com/NixOS/nixpkgs/issues/369438)
gnomeExtensions.paperwm
gnomeExtensions.pip-on-top
gnomeExtensions.search-light
gnomeExtensions.smart-auto-move
gnomeExtensions.space-bar
gnomeExtensions.tiling-assistant
gnomeExtensions.tiling-shell
gnomeExtensions.todotxt
gnomeExtensions.vitals
gnomeExtensions.window-is-ready-remover
gnomeExtensions.worksets
gnomeExtensions.workspace-matrix
];
environment.persistence."/persist".directories = [
"/etc/NetworkManager"
"/var/lib/AccountsService"
"/var/lib/NetworkManager"
];
};
}

View File

@@ -1,25 +0,0 @@
{
config,
lib,
...
}:
let
inherit (lib)
mkEnableOption
mkIf
;
cfg = config.modules.system.desktop.hyprland;
in
{
options.modules.system.desktop.hyprland.enable = mkEnableOption "hyprland";
config = mkIf cfg.enable {
networking.networkmanager.enable = true;
programs.hyprland = {
enable = true;
withUWSM = true;
};
};
}

View File

@@ -0,0 +1,7 @@
age-encryption.org/v1
-> ssh-ed25519 5PDipg VUUf0H5YtcvVIQGHWSRUjCCWJFC8uyifg9jb3dcKQEM
2u40LYxerTKD200Mkp/UhMFDwRQy/u74lpFa7JG783g
-> vSi-grease xC k Y9 7n3c
WC+dOm6hxAlN9zTouhlfHvZCHfJaGnqOMa5jSIw
--- 0ywtnNEFe21IGFUvzuzK0dO65YKZCymavaqHOmKB9iQ
Lš\_%£™ø%2{ÀˆSªžè eMî‡c¹8ˆÝHzÂ`zžà×<C3A0>LTJ1öð m6JE¡pñd`žÍÁMfÙâ5Äî½ü×ðKAØ<Vbù_¿ÉǬhæÖí¶o# “Ôa€ªóí¸ñ7j„„q>ùW.¤ C«ŸðÏ:Ü¿K•¸«©q]_U•–#/M=×-PÓ¦

View File

@@ -160,7 +160,7 @@ in
enable = true;
settings = {
default_session = {
command = "${pkgs.greetd.tuigreet}/bin/tuigreet --time --sessions ${desktops}/share/xsessions:${desktops}/share/wayland-sessions";
command = "${pkgs.tuigreet}/bin/tuigreet --time --sessions ${desktops}/share/xsessions:${desktops}/share/wayland-sessions";
};
};
};

View File

@@ -7,7 +7,6 @@
imports = [
./common/optional/graphical/firefox.nix
./common/optional/graphical/fonts.nix
./common/optional/graphical/hyprland
./common/optional/graphical/mimeapps.nix
];

View File

@@ -6,7 +6,7 @@
{
imports = [
./common/optional/graphical/firefox.nix
./common/optional/graphical/gnome.nix
./common/optional/graphical/niri.nix
];
home.packages = with pkgs; [

View File

@@ -17,6 +17,9 @@
email = "jordan@vimium.com";
name = "Jordan Holt";
};
rebase.autosquash = true;
push.default = "current";
pull.rebase = true;
};
ignores = [
".Trash-*"
@@ -37,10 +40,5 @@
key = "B8CFFF61F1CCF520";
signByDefault = true;
};
extraConfig = {
rebase.autosquash = true;
push.default = "current";
pull.rebase = true;
};
};
}

View File

@@ -0,0 +1,10 @@
{
...
}:
{
xsession = {
enable = true;
windowManager.awesome.enable = true;
};
}

View File

@@ -1,243 +0,0 @@
{
inputs,
lib,
pkgs,
osConfig,
...
}:
let
inherit (lib)
mkForce
;
inherit (lib.generators)
toINI
;
in
{
dconf.settings = {
"io/github/celluloid-player/celluloid" = {
draggable-video-area-enable = true;
};
"org/gnome/Console" = {
font-scale = 1.4;
use-system-font = false;
custom-font = "ComicShannsMono Nerd Font 10";
};
"org/gnome/desktop/interface" = {
color-scheme = "prefer-dark";
cursor-theme = "Adwaita";
enable-hot-corners = false;
font-name = "Adwaita Sans 11";
gtk-theme = "adw-gtk3-dark";
icon-theme = "MoreWaita";
monospace-font-name = "Adwaita Mono 11";
toolbar-style = "both-horiz";
};
"org/gnome/desktop/peripherals/touchpad" = {
tap-to-click = true;
};
"org/gnome/desktop/sound" = {
theme-name = "freedesktop";
};
"org/gnome/desktop/search-providers" = {
disabled = [ "org.gnome.Epiphany.desktop" ];
};
"org/gnome/desktop/wm/keybindings" = {
switch-group = [ "<Super>grave" ];
switch-group-backward = [ "<Shift><Super>grave" ];
};
"org/gnome/desktop/wm/preferences" = {
button-layout = "appmenu:close";
};
"org/gnome/gnome-session" = {
auto-save-session = true;
};
"org/gnome/gnome-system-monitor" = {
show-dependencies = true;
};
"org/gnome/mutter" = {
center-new-windows = true;
edge-tiling = true;
experimental-features = [ "scale-monitor-framebuffer" ];
};
"org/gnome/settings-daemon/plugins/media-keys" = {
volume-up = [
"<Shift>F12"
"XF86AudioRaiseVolume"
];
volume-down = [
"<Shift>F11"
"XF86AudioLowerVolume"
];
};
"org/gnome/shell" = {
disable-user-extensions = false;
enabled-extensions = [
"appindicatorsupport@rgcjonas.gmail.com"
# "arcmenu@arcmenu.com"
"blur-my-shell@aunetx"
"burn-my-windows@schneegans.github.com"
"clipboard-indicator@tudmotu.com"
"CoverflowAltTab@palatis.blogspot.com"
# "dash-to-panel@jderose9.github.com"
# "desktop-cube@schneegans.github.com"
# "EasyScreenCast@iacopodeenosee.gmail.com"
"espresso@coadmunkee.github.com"
"flypie@schneegans.github.com"
# "forge@jmmaranan.com"
"gsconnect@andyholmes.github.io"
# "gSnap@micahosborne"
"hidetopbar@mathieu.bidon.ca"
"just-perfection-desktop@just-perfection"
# "mediacontrols@cliffniff.github.com"
# "mousefollowsfocus@matthes.biz"
# "pano@elhan.io"
# "paperwm@hedning:matrix.org"
"pip-on-top@rafostar.github.com"
# "search-light@icedman.github.com"
# "smart-auto-move@khimaros.com"
"space-bar@luchrioh"
# "tiling-assistant@leleat-on-github"
"tilingshell@ferrarodomenico.com"
"Vitals@CoreCoding.com"
"windowIsReady_Remover@nunofarruca@gmail.com"
# "worksets@blipk.xyz"
# "wsmatrix@martin.zurowietz.de"
];
favorite-apps = [
"firefox.desktop"
"org.gnome.Nautilus.desktop"
];
};
"org/gnome/shell/extensions/blur-my-shell/panel" = {
static-blur = true;
};
"org/gnome/shell/extensions/blur-my-shell/applications" = {
blur = false;
};
"org/gnome/shell/extensions/burn-my-windows" = {
fire-close-effect = false;
glide-open-effect = true;
glide-close-effect = true;
};
"org/gnome/shell/extensions/dash-to-panel" = {
intellihide = true;
panel-positions = ''
{"0":"TOP"}
'';
trans-panel-opacity = 0.3;
trans-use-custom-opacity = true;
trans-use-dynamic-opacity = true;
};
"org/gnome/shell/extensions/espresso" = {
enable-fullscreen = true;
show-indicator = true;
show-notifications = false;
inhibit-apps = [
"com.obsproject.Studio.desktop"
];
};
"org/gnome/shell/extensions/flypie" = {
preview-on-right-side = true;
};
"org/gnome/shell/extensions/forge" = {
window-gap-size = 8;
window-gap-hidden-on-single = false;
};
"org/gnome/shell/extensions/hidetopbar" = {
mouse-sensitive = true;
mouse-sensitive-fullscreen-window = true;
enable-active-window = false;
};
"org/gnome/shell/extensions/just-perfection" = {
activities-button = false;
window-demands-attention-focus = true;
workspace-wrap-around = true;
};
"org/gnome/shell/extensions/paperwm" = {
use-default-background = true;
};
"org/gnome/shell/extensions/pip-on-top" = {
stick = true;
};
"org/gnome/shell/extensions/search-light" = {
popup-at-cursor-monitor = true;
};
"org/gnome/shell/extensions/space-bar/behavior" = {
enable-activate-workspace-shortcuts = true;
show-empty-workspaces = true;
smart-workspace-names = false;
};
"org/gnome/shell/extensions/tiling-assistant" = {
screen-top-gap = 8;
screen-right-gap = 8;
screen-bottom-gap = 8;
screen-left-gap = 8;
window-gap = 8;
};
"org/gnome/shell/extensions/tilingshell" = {
inner-gaps = 16;
outer-gaps = 8;
enable-blur-snap-assistant = true;
};
"org/gtk/settings/file-chooser" = {
show-hidden = true;
sort-directories-first = true;
};
"org/gtk/gtk4/settings/file-chooser" = {
show-hidden = true;
sort-directories-first = true;
};
};
home.sessionVariables = {
QT_STYLE_OVERRIDE = mkForce "kvantum";
QT_WAYLAND_DECORATION = mkForce "adwaita";
};
xdg.configFile = {
"Kvantum/kvantum.kvconfig".text = toINI { } {
General.theme = "KvLibadwaitaDark";
};
"Kvantum/KvLibadwaita".source = "${inputs.kvlibadwaita}/src/KvLibadwaita";
};
home.packages =
with pkgs;
[
authenticator
# bottles
# bustle
celluloid
# d-spy
# drawing
# fragments
dconf-editor
ghex
ghostty
# gnome-builder
gnome-decoder
gnome-firmware
gnome-frog
# gnome-obfuscate
gnome-podcasts
identity
# mission-center
mousam
newsflash
# schemes
shortwave
sysprof
]
++ (
if osConfig.virtualisation.podman.enable then
[
pods
]
else
[ ]
);
services.gpg-agent.pinentry.package = pkgs.pinentry-gnome3;
}

View File

@@ -1,332 +0,0 @@
{
inputs,
lib,
pkgs,
osConfig,
...
}:
let
inherit (lib)
attrValues
concatStringsSep
elem
mapAttrs
mkIf
versionOlder
;
inherit (lib.generators)
toINI
;
concatMapAttrsStringSep =
sep: f: attrs:
concatStringsSep sep (attrValues (mapAttrs f attrs));
globalVariables = {
_JAVA_AWT_WM_NONREPARENTING = "1";
GDK_BACKEND = "wayland";
MOZ_ENABLE_WAYLAND = "1";
NIXOS_OZONE_WL = "1";
QT_QPA_PLATFORM = "wayland";
QT_STYLE_OVERRIDE = "kvantum";
QT_WAYLAND_DECORATION = "adwaita";
QT_WAYLAND_DISABLE_WINDOWDECORATION = "1";
SDL_VIDEODRIVER = "wayland";
XDG_SESSION_TYPE = "wayland";
}
// (
if elem "nvidia" osConfig.services.xserver.videoDrivers then
{
GBM_BACKEND = "nvidia-drm";
GSK_RENDERER =
if versionOlder osConfig.hardware.nvidia.package.version "570" then "ngl" else "vulkan";
LIBVA_DRIVER_NAME = "nvidia";
}
else
{ }
);
hyprVariables = {
AQ_DRM_DEVICES = "/dev/dri/card0:/dev/dri/card1";
};
in
{
imports = [
./hypridle.nix
./hyprlock.nix
./hyprpaper.nix
./waybar.nix
];
wayland.windowManager.hyprland = {
enable = true;
package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
portalPackage =
inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland;
plugins = [
# pkgs.unstable.hyprlandPlugins.hyprbars
# pkgs.unstable.hyprlandPlugins.hypr-dynamic-cursors
];
settings = {
general = {
gaps_in = 0;
gaps_out = 0;
border_size = 2;
allow_tearing = false;
layout = "dwindle";
};
plugin = {
dynamic-cursors = {
enabled = false;
mode = "none";
shake = {
enabled = true;
};
};
hyprbars = {
enabled = false;
bar_height = 20;
bar_blur = true;
};
};
dwindle = {
pseudotile = true;
preserve_split = true;
};
master = {
new_status = "master";
};
misc = {
force_default_wallpaper = 0;
disable_hyprland_logo = true;
};
ecosystem = {
no_donation_nag = true;
no_update_news = true;
};
experimental = {
xx_color_management_v4 = true;
};
decoration = {
rounding = 0;
active_opacity = 1.0;
inactive_opacity = 1.0;
shadow = {
enabled = true;
range = 4;
render_power = 3;
};
blur = {
enabled = true;
size = 3;
passes = 1;
vibrancy = 0.1696;
};
};
animations = {
enabled = true;
bezier = [
"easeOutQuint,0.23,1,0.32,1"
"easeInOutCubic,0.65,0.05,0.36,1"
"linear,0,0,1,1"
"almostLinear,0.5,0.5,0.75,1.0"
"quick,0.15,0,0.1,1"
];
animation = [
"global, 1, 10, default"
"border, 1, 5.39, easeOutQuint"
"windows, 1, 4.79, easeOutQuint"
"windowsIn, 1, 4.1, easeOutQuint, popin 87%"
"windowsOut, 1, 1.49, linear, popin 87%"
"fadeIn, 1, 1.73, almostLinear"
"fadeOut, 1, 1.46, almostLinear"
"fade, 1, 3.03, quick"
"layers, 1, 3.81, easeOutQuint"
"layersIn, 1, 4, easeOutQuint, fade"
"layersOut, 1, 1.5, linear, fade"
"fadeLayersIn, 1, 1.79, almostLinear"
"fadeLayersOut, 1, 1.39, almostLinear"
"workspaces, 1, 1.94, almostLinear, fade"
"workspacesIn, 1, 1.21, almostLinear, fade"
"workspacesOut, 1, 1.94, almostLinear, fade"
];
};
monitor = [
"desc:Dell Inc. DELL U3219Q HPTP413, preferred, auto, 1, vrr, 0, bitdepth, 10, cm, hdr"
"desc:LG Electronics LG TV SSCR2, 3840x2160@60, 0x0, 1, vrr, 0, bitdepth, 10, cm, hdr"
];
input = {
kb_layout = "us";
kb_options = "caps:super";
follow_mouse = 1;
sensitivity = 0;
};
device = {
name = "mx-anywhere-3s-mouse";
sensitivity = -0.5;
};
"$terminal" = "kitty";
"$fileManager" = "thunar";
"$menu" = "anyrun";
"$mainMod" = "SUPER";
bind = [
"$mainMod, Q, exec, $terminal"
"$mainMod, C, killactive,"
"$mainMod, M, exit,"
"$mainMod, E, exec, $fileManager"
"$mainMod, V, togglefloating,"
"$mainMod, R, exec, $menu"
"$mainMod, P, pseudo, # dwindle"
"$mainMod, J, togglesplit, # dwindle"
"$mainMod, left, movefocus, l"
"$mainMod, right, movefocus, r"
"$mainMod, up, movefocus, u"
"$mainMod, down, movefocus, d"
"$mainMod, 1, workspace, 1"
"$mainMod, 2, workspace, 2"
"$mainMod, 3, workspace, 3"
"$mainMod, 4, workspace, 4"
"$mainMod, 5, workspace, 5"
"$mainMod, 6, workspace, 6"
"$mainMod, 7, workspace, 7"
"$mainMod, 8, workspace, 8"
"$mainMod, 9, workspace, 9"
"$mainMod, 0, workspace, 10"
"$mainMod SHIFT, 1, movetoworkspace, 1"
"$mainMod SHIFT, 2, movetoworkspace, 2"
"$mainMod SHIFT, 3, movetoworkspace, 3"
"$mainMod SHIFT, 4, movetoworkspace, 4"
"$mainMod SHIFT, 5, movetoworkspace, 5"
"$mainMod SHIFT, 6, movetoworkspace, 6"
"$mainMod SHIFT, 7, movetoworkspace, 7"
"$mainMod SHIFT, 8, movetoworkspace, 8"
"$mainMod SHIFT, 9, movetoworkspace, 9"
"$mainMod SHIFT, 0, movetoworkspace, 10"
"$mainMod, S, togglespecialworkspace, magic"
"$mainMod SHIFT, S, movetoworkspace, special:magic"
"$mainMod, mouse_down, workspace, e+1"
"$mainMod, mouse_up, workspace, e-1"
];
bindm = [
"$mainMod, mouse:272, movewindow"
"$mainMod, mouse:273, resizewindow"
];
bindel = [
",XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+"
",XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"
",XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
",XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"
",XF86MonBrightnessUp, exec, brightnessctl s 10%+"
",XF86MonBrightnessDown, exec, brightnessctl s 10%-"
];
bindl = [
", XF86AudioNext, exec, playerctl next"
", XF86AudioPause, exec, playerctl play-pause"
", XF86AudioPlay, exec, playerctl play-pause"
", XF86AudioPrev, exec, playerctl previous"
];
windowrulev2 = [
"suppressevent maximize, class:.*"
"nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0"
];
};
};
xdg.configFile = mkIf osConfig.programs.hyprland.withUWSM {
"Kvantum/kvantum.kvconfig".text = toINI { } {
General.theme = "KvLibadwaitaDark";
};
"Kvantum/KvLibadwaita".source = "${inputs.kvlibadwaita}/src/KvLibadwaita";
"uwsm/env".text = concatMapAttrsStringSep "\n" (
name: value: "export ${name}=${value}"
) globalVariables;
"uwsm/env-hyprland".text = concatMapAttrsStringSep "\n" (
name: value: "export ${name}=${value}"
) hyprVariables;
};
home.pointerCursor = {
enable = true;
gtk.enable = true;
name = "macOS";
package = pkgs.apple-cursor;
size = 28;
};
gtk = {
enable = true;
iconTheme = {
name = "MoreWaita";
package = pkgs.unstable.morewaita-icon-theme;
};
};
fonts.fontconfig = {
enable = true;
defaultFonts = {
sansSerif = [
"Adwaita Sans"
];
emoji = [
"Apple Color Emoji"
];
};
};
programs.kitty = {
enable = true;
settings = {
background = "#000000";
background_opacity = 0.8;
};
};
programs.neovide = {
enable = true;
package = pkgs.unstable.neovide;
settings = {
font.size = 16.0;
};
};
home.packages = with pkgs.unstable; [
anyrun
clipse
dunst
libsForQt5.qtstyleplugin-kvantum
loupe
mpv
qadwaitadecorations
qadwaitadecorations-qt6
wl-clipboard
];
services = {
flameshot.enable = true;
unclutter.enable = true;
};
services.gpg-agent.pinentry.package = pkgs.pinentry-gnome3;
}

View File

@@ -1,28 +0,0 @@
{
...
}:
{
services.hypridle = {
enable = true;
settings = {
general = {
after_sleep_cmd = "hyprctl dispatch dpms on";
ignore_dbus_inhibit = false;
lock_cmd = "hyprlock";
};
listener = [
{
timeout = 900;
on-timeout = "hyprlock";
}
{
timeout = 1200;
on-timeout = "hyprctl dispatch dpms off";
on-resume = "hyprctl dispatch dpms on";
}
];
};
};
}

View File

@@ -1,51 +0,0 @@
{
config,
lib,
...
}:
let
inherit (lib)
getExe
;
in
{
wayland.windowManager.hyprland.settings.bind = [
"$mainMod, L, exec, uwsm app -- ${getExe config.programs.hyprlock.package}"
];
programs.hyprlock = {
enable = true;
settings = {
general = {
disable_loading_bar = false;
grace = 3;
hide_cursor = true;
no_fade_in = false;
};
background = [
{
path = "screenshot";
blur_passes = 3;
blur_size = 8;
}
];
input-field = [
{
size = "200, 50";
position = "0, -80";
monitor = "";
dots_center = true;
fade_on_empty = false;
font_color = "rgb(202, 211, 245)";
inner_color = "rgb(91, 96, 120)";
outer_color = "rgb(24, 25, 38)";
outline_thickness = 5;
placeholder_text = "Password...";
shadow_passes = 2;
}
];
};
};
}

View File

@@ -1,21 +0,0 @@
{
...
}:
{
services.hyprpaper = {
enable = true;
settings = {
ipc = "on";
splash = false;
preload = [
"/home/jordan/Pictures/Aurora.png"
];
wallpaper = [
",/home/jordan/Pictures/Aurora.png"
];
};
};
}

View File

@@ -1,96 +0,0 @@
* {
font-family: sans-serif;
}
window#waybar {
background: linear-gradient(
to bottom,
rgba(118, 118, 118, 0.78) 0%,
rgba(50, 50, 50, 0.78) 50%,
rgba(0, 0, 0, 0.74) 50%,
rgba(0, 0, 0, 0.76) 100%
);
border-top: 1px solid rgba(71, 71, 71, 0.90);
border-bottom: 1px solid rgba(0, 0, 0, 0.97);
box-shadow: inset 0px 1px 0px 0px rgba(158, 158, 158, 0.90);
text-shadow: black 0px 0px 2px;
color: white;
}
#workspaces button {
margin: 2px;
background: linear-gradient(
to bottom,
rgba(255, 255, 255, 0.35) 0%,
rgba(255, 255, 255, 0.11) 50%,
rgba(255, 255, 255, 0) 50%
);
border: 1px solid rgba(0, 0, 0, 0.37);
border-radius: 4px;
box-shadow: inset 0px 1px 0px 0px rgba(255, 255, 255, 0.25);
text-shadow: black 0px 0px 2px;
color: white;
}
#workspaces button:hover {
background:
linear-gradient(
to bottom,
rgba(255, 255, 255, 0.35) 0%,
rgba(255, 255, 255, 0.17) 50%,
rgba(255, 255, 255, 0) 50%
),
radial-gradient(
ellipse 80% 80% at 50% 110%,
rgba(44, 126, 204, 1) 0%,
rgba(44, 126, 204, 0) 80%
);
}
#workspaces button.active {
background: linear-gradient(
to bottom,
rgba(0, 0, 0, 0.40) 0%,
rgba(0, 0, 0, 0.38) 50%,
rgba(0, 0, 0, 0.55) 50%
);
box-shadow: inset 0px 1px 0px 0px rgb(0, 0, 0);
}
#workspaces button.active:hover {
background:
linear-gradient(
to bottom,
rgba(0, 0, 0, 0.40) 0%,
rgba(0, 0, 0, 0.38) 50%,
rgba(0, 0, 0, 0.55) 50%
),
radial-gradient(
ellipse 80% 80% at 50% 120%,
rgba(43, 143, 189, 1) 0%,
rgba(43, 143, 189, 0) 80%
);
}
#workspaces button.urgent {
background:
linear-gradient(
to bottom,
rgba(255, 255, 255, 0.35) 0%,
rgba(255, 255, 255, 0.11) 50%,
rgba(255, 255, 255, 0) 50%
),
radial-gradient(
ellipse 80% 80% at 50% 100%,
rgba(199, 128, 14, 1) 0%,
rgba(170, 75, 12, 0) 100%
);
}
.modules-left {
margin-left: 10px;
}
.modules-right {
margin-right: 10px;
}

View File

@@ -1,53 +0,0 @@
{
...
}:
{
programs.waybar = {
enable = true;
settings = [
{
layer = "top";
position = "bottom";
height = 30;
spacing = 10;
modules-left = [
"hyprland/workspaces"
];
modules-center = [
"hyprland/window"
];
modules-right = [
"disk"
"cpu"
"memory"
"privacy"
"clock"
];
clock = {
format = "{:%I:%M %p}";
};
disk = {
format = "{free}";
path = "/";
};
privacy = {
modules = [
{
type = "screenshare";
}
{
type = "audio-in";
}
];
};
}
];
style = ./waybar.css;
systemd.enable = true;
};
}

View File

@@ -0,0 +1,325 @@
{
lib,
pkgs,
config,
inputs,
...
}:
let
inherit (lib)
getExe
;
in
{
imports = [
inputs.niri.homeModules.niri
];
services.gnome-keyring.enable = true;
xdg.portal = {
enable = true;
xdgOpenUsePortal = true;
config.niri = {
default = [
"gtk"
"gnome"
];
"org.freedesktop.impl.portal.Access" = [ "gtk" ];
"org.freedesktop.impl.portal.Notification" = [ "gtk" ];
"org.freedesktop.impl.portal.Secret" = [ "gnome-keyring" ];
"org.freedesktop.impl.portal.FileChooser" = [ "gtk" ];
"org.freedesktop.impl.portal.ScreenCast" = [ "xdg-desktop-portal-gnome" ];
"org.freedesktop.impl.portal.Screenshot" = [ "xdg-desktop-portal-gnome" ];
};
extraPortals = [
pkgs.gnome-keyring
pkgs.xdg-desktop-portal-gtk
pkgs.xdg-desktop-portal-gnome
];
};
programs.zsh.initContent = lib.mkOrder 9999 ''
if [[ -t 0 && "$(tty || true)" == /dev/tty1 && -z "$DISPLAY" && -z "$WAYLAND_DISPLAY" ]]; then
echo "Login shell detected. Starting wayland..."
niri-session
fi
'';
programs.niri = {
enable = true;
package = pkgs.niri-unstable;
settings = {
xwayland-satellite.path = getExe pkgs.xwayland-satellite-stable;
environment = {
"QT_QPA_PLATFORM" = "wayland";
"XDG_SESSION_TYPE" = "wayland";
"NIXOS_OZONE_WL" = "1";
"MOZ_ENABLE_WAYLAND" = "1";
"MOZ_WEBRENDER" = "1";
"_JAVA_AWT_WM_NONREPARENTING" = "1";
"QT_WAYLAND_DISABLE_WINDOWDECORATION" = "1";
"GDK_BACKEND" = "wayland";
"GBM_BACKEND" = "nvidia-drm";
"GSK_RENDERER" = "vulkan";
"LIBVA_DRIVER_NAME" = "nvidia";
};
input = {
keyboard = {
xkb = {
layout = "us";
options = "ctrl:nocaps";
};
repeat-delay = 235;
repeat-rate = 60;
};
touchpad = {
tap = true;
dwt = true;
dwtp = true;
natural-scroll = true;
accel-profile = "flat";
};
mouse = {
accel-speed = 0.2;
accel-profile = "flat";
};
power-key-handling.enable = false;
workspace-auto-back-and-forth = true;
};
gestures.hot-corners.enable = false;
debug.honor-xdg-activation-with-invalid-serial = true;
binds = with config.lib.niri.actions; {
"Mod+T".action = spawn "kitty";
"Mod+b".action = spawn "firefox";
"Super+Alt+L".action = spawn "systemctl suspend";
XF86AudioRaiseVolume = {
action = spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.1+";
allow-when-locked = true;
};
XF86AudioLowerVolume = {
action = spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.1-";
allow-when-locked = true;
};
XF86AudioMute = {
action = spawn "wpctl" "set-mute" "@DEFAULT_AUDIO_SINK@" "toggle";
allow-when-locked = true;
};
XF86AudioMicMute = {
action = spawn "wpctl" "set-mute" "@DEFAULT_AUDIO_SOURCE@" "toggle";
allow-when-locked = true;
};
"Mod+Q".action = close-window;
"Mod+Space".action = spawn "noctalia-shell" "ipc" "call" "launcher" "toggle";
"Mod+n".action = focus-column-left;
"Mod+left".action = focus-column-left;
"Mod+Shift+n".action = move-column-left;
"Mod+Shift+left".action = move-column-left;
"Mod+r".action = focus-window-or-workspace-down;
"Mod+down".action = focus-window-or-workspace-down;
"Mod+Shift+r".action = move-window-down;
"Mod+Shift+down".action = move-window-down;
"Mod+l".action = focus-window-or-workspace-up;
"Mod+up".action = focus-window-or-workspace-up;
"Mod+Shift+l".action = move-window-up;
"Mod+Shift+up".action = move-window-up;
"Mod+s".action = focus-column-right;
"Mod+right".action = focus-column-right;
"Mod+Shift+s".action = move-column-right;
"Mod+Shift+right".action = move-column-right;
"Mod+h".action = focus-column-first;
"Mod+Shift+h".action = consume-or-expel-window-left;
"Mod+m".action = focus-column-last;
"Mod+Shift+m".action = consume-or-expel-window-right;
"Mod+Ctrl+n".action = focus-monitor-left;
"Mod+Shift+Ctrl+n".action = move-column-to-monitor-left;
"Mod+Ctrl+r".action = focus-monitor-down;
"Mod+Shift+Ctrl+r".action = move-column-to-monitor-down;
"Mod+Ctrl+l".action = focus-monitor-up;
"Mod+Shift+Ctrl+l".action = move-column-to-monitor-up;
"Mod+Ctrl+s".action = focus-monitor-right;
"Mod+Shift+Ctrl+s".action = move-column-to-monitor-right;
"Mod+Period".action = focus-workspace-down;
"Mod+Shift+Period".action = move-column-to-workspace-down;
"Mod+Ctrl+Period".action = move-workspace-down;
"Mod+comma".action = focus-workspace-up;
"Mod+Shift+comma".action = move-column-to-workspace-up;
"Mod+Ctrl+comma".action = move-workspace-up;
"Mod+WheelScrollDown" = {
action = focus-workspace-down;
cooldown-ms = 150;
};
"Mod+WheelScrollUp" = {
action = focus-workspace-up;
cooldown-ms = 150;
};
"Mod+Ctrl+WheelScrollDown" = {
action = move-column-to-workspace-down;
cooldown-ms = 150;
};
"Mod+Ctrl+WheelScrollUp" = {
action = move-column-to-workspace-up;
cooldown-ms = 150;
};
"Mod+WheelScrollRight".action = focus-column-right;
"Mod+WheelScrollLeft".action = focus-column-left;
"Mod+Ctrl+WheelScrollRight".action = move-column-right;
"Mod+Ctrl+WheelScrollLeft".action = move-column-left;
"Mod+Shift+WheelScrollDown".action = focus-column-right;
"Mod+Shift+WheelScrollUp".action = focus-column-left;
"Mod+Ctrl+Shift+WheelScrollDown".action = move-column-right;
"Mod+Ctrl+Shift+WheelScrollUp".action = move-column-left;
"Mod+V".action = maximize-column;
"Mod+Ctrl+V".action = expand-column-to-available-width;
"Mod+return".action = fullscreen-window;
"Mod+Minus".action = set-column-width "-10%";
"Mod+Shift+0".action = set-column-width "+10%";
"Mod+F".action = toggle-window-floating;
"Mod+Ctrl+F".action = switch-focus-between-floating-and-tiling;
"Mod+y".action = toggle-column-tabbed-display;
"Print".action.screenshot = { };
"Ctrl+Print".action.screenshot-screen = {
show-pointer = false;
};
"Alt+Print".action.screenshot-window = { };
"Mod+Escape" = {
action = toggle-keyboard-shortcuts-inhibit;
allow-inhibiting = false;
};
"Mod+Ctrl+Escape".action = quit;
"Mod+Shift+P".action = power-off-monitors;
};
spawn-at-startup = [
{ command = [ "firefox" ]; }
];
prefer-no-csd = true;
hotkey-overlay = {
skip-at-startup = true;
};
layout = {
gaps = 1;
center-focused-column = "never";
empty-workspace-above-first = true;
preset-column-widths = [
{ proportion = 0.33333; }
{ proportion = 0.5; }
{ proportion = 0.66667; }
];
default-column-width = {
proportion = 0.5;
};
preset-window-heights = [
{ proportion = 0.33333; }
{ proportion = 0.5; }
{ proportion = 0.66667; }
];
focus-ring = {
enable = true;
width = 2;
active.color = "#7fc8ff";
inactive.color = "#505050";
};
border = {
enable = false;
width = 2;
active.color = "#ffc87f";
inactive.color = "#505050";
};
shadow = {
softness = 30;
spread = 5;
offset = {
x = 0;
y = 5;
};
draw-behind-window = true;
color = "#00000070";
};
tab-indicator = {
hide-when-single-tab = true;
place-within-column = true;
gap = 5;
width = 4;
length = {
total-proportion = 1.0;
};
position = "right";
gaps-between-tabs = 2;
corner-radius = 8;
active.color = "red";
inactive.color = "gray";
};
insert-hint = {
display.color = "#ffc87f80";
};
};
};
};
home.packages = [
pkgs.dconf
];
home.pointerCursor = {
enable = true;
gtk.enable = true;
name = "macOS";
package = pkgs.apple-cursor;
size = 28;
};
gtk = {
enable = true;
iconTheme = {
name = "MoreWaita";
package = pkgs.unstable.morewaita-icon-theme;
};
};
fonts.fontconfig = {
enable = true;
defaultFonts = {
sansSerif = [
"Adwaita Sans"
];
emoji = [
"Apple Color Emoji"
];
};
};
programs.kitty = {
enable = true;
settings = {
background = "#000000";
background_opacity = 0.8;
};
};
services.gpg-agent.pinentry.package = pkgs.pinentry-gnome3;
}

View File

@@ -0,0 +1,172 @@
{
inputs,
...
}:
{
imports = [
inputs.noctalia.homeModules.default
];
programs.niri.settings = {
overview.workspace-shadow.enable = false;
};
programs.noctalia-shell = {
enable = true;
systemd.enable = true;
settings = {
audio = {
cavaFrameRate = 60;
volumeOverdrive = true;
};
bar = {
density = "compact";
marginHorizontal = 0.2;
marginVertical = 0.1;
position = "bottom";
showCapsule = false;
showOutline = false;
transparent = false;
outerCorners = false;
widgets = {
center = [
{
id = "Tray";
blacklist = [ ];
colorizeIcons = false;
drawerEnabled = false;
hidePassive = false;
pinned = [ ];
}
{
id = "Workspace";
characterCount = 10;
colorizeIcons = false;
enableScrollWheel = false;
followFocusedScreen = false;
hideUnoccupied = false;
labelMode = "name";
showApplications = false;
showLabelsOnlyWhenOccupied = false;
}
];
left = [
{
id = "ControlCenter";
colorizeDistroLogo = false;
colorizeSystemIcon = "none";
customIconPath = "";
enableColorization = false;
icon = "noctalia";
useDistroLogo = true;
}
{ id = "WallpaperSelector"; }
{
id = "Spacer";
width = 20;
}
{
id = "SystemMonitor";
diskPath = "/persist";
showCpuTemp = true;
showCpuUsage = true;
showDiskUsage = true;
showGpuTemp = true;
showMemoryAsPercent = true;
showMemoryUsage = true;
showNetworkStats = true;
usePrimaryColor = false;
}
{
id = "AudioVisualizer";
colorName = "primary";
hideWhenIdle = false;
width = 200;
}
];
right = [
{
id = "MediaMini";
hideMode = "hidden";
hideWhenIdle = false;
maxWidth = 145;
scrollingMode = "hover";
showAlbumArt = false;
showArtistFirst = true;
showProgressRing = true;
showVisualizer = false;
useFixedWidth = false;
visualizerType = "linear";
}
{
id = "Spacer";
width = 20;
}
{
id = "Microphone";
displayMode = "alwaysShow";
}
{
id = "Volume";
displayMode = "alwaysShow";
}
{
id = "Brightness";
displayMode = "alwaysShow";
}
{
id = "Spacer";
width = 20;
}
{
id = "Battery";
displayMode = "alwaysShow";
showNoctaliaPerformance = false;
showPowerProfiles = false;
warningThreshold = 20;
}
{
id = "NotificationHistory";
hideWhenZero = true;
showUnreadBadge = true;
}
{
id = "Clock";
customFont = "";
formatHorizontal = "ddd dd.MM. HH:mm:ss";
formatVertical = "HH mm - dd MM";
useCustomFont = false;
usePrimaryColor = false;
}
];
};
};
colorSchemes = {
predefinedScheme = "Ayu";
};
general = {
animationSpeed = 1.5;
radiusRatio = 0.4;
shadowDirection = "center";
shadowOffsetX = 0;
shadowOffsetY = 0;
showSessionButtonsOnLockScreen = false;
};
location = {
firstDayOfWeek = 0;
name = "Manchester, UK";
};
systemMonitor = {
enableNvidiaGpu = true;
};
ui = {
fontDefault = "Adwaita Sans";
fontFixed = "Adwaita Mono";
panelBackgroundOpacity = 1;
};
notifications.enabled = true;
dock.enabled = false;
};
};
}

View File

@@ -1,6 +1,7 @@
{
lib,
pkgs,
config,
...
}:
let
@@ -19,7 +20,7 @@ in
strategy = [ "completion" ];
};
defaultKeymap = "viins";
dotDir = ".config/zsh";
dotDir = "${config.xdg.configHome}/zsh";
enableCompletion = true;
enableVteIntegration = true;

View File

@@ -5,6 +5,24 @@
{
programs.ssh = {
enable = true;
enableDefaultConfig = false;
matchBlocks."*" = {
forwardAgent = false;
addKeysToAgent = "yes";
compression = false;
serverAliveInterval = 0;
serverAliveCountMax = 3;
hashKnownHosts = false;
userKnownHostsFile = "~/.ssh/known_hosts";
controlMaster = "no";
controlPath = "~/.ssh/master-%r@%n:%p";
controlPersist = "no";
};
};
services.ssh-agent = {
enable = true;
enableZshIntegration = true;
};
home.persistence."/state".files = [

View File

@@ -15,11 +15,21 @@ in
{
age.secrets."passwords/users/jordan".file = "${inputs.secrets}/passwords/users/jordan.age";
age.secrets.open-webui-api-key = {
rekeyFile = ./secrets/open-webui-api-key.age;
owner = "jordan";
age.secrets = {
open-webui-api-key = {
rekeyFile = ./secrets/open-webui-api-key.age;
owner = "jordan";
};
nix-access-tokens = {
rekeyFile = ./secrets/nix-access-tokens.age;
};
};
# Increase rate limit with read-only token
nix.extraOptions = ''
!include ${config.age.secrets.nix-access-tokens.path}
'';
users.users.${name} = {
description = "Jordan Holt";
extraGroups = [
@@ -37,7 +47,9 @@ in
];
shell = pkgs.zsh;
uid = 1000;
};
createHome = true;
}
// lib.optionalAttrs (!config.users.mutableUsers) { autoSubUidGidRange = false; };
home-manager.users.${name} = {
imports = [
@@ -49,12 +61,14 @@ in
./common/ssh.nix
{
home.persistence."/state" = {
enable = false;
directories = [
"Downloads"
".local/state/wireplumber"
];
};
home.persistence."/persist" = {
enable = false;
directories = [
"Desktop"
"Documents"

View File

@@ -7,7 +7,7 @@
imports = [
./common/optional/graphical/firefox.nix
./common/optional/graphical/fonts.nix
./common/optional/graphical/hyprland
./common/optional/graphical/niri.nix
./common/optional/graphical/mimeapps.nix
];

View File

@@ -5,9 +5,9 @@
{
imports = [
./common/optional/graphical/awesome.nix
./common/optional/graphical/firefox.nix
./common/optional/graphical/fonts.nix
./common/optional/graphical/gnome.nix
];
home.packages = with pkgs; [

View File

@@ -1,4 +1,5 @@
{
inputs,
pkgs,
...
}:
@@ -7,28 +8,35 @@
imports = [
./common/optional/graphical/firefox.nix
./common/optional/graphical/fonts.nix
./common/optional/graphical/hyprland
./common/optional/graphical/libreoffice.nix
./common/optional/graphical/mimeapps.nix
./common/optional/graphical/niri.nix
./common/optional/graphical/noctalia.nix
./common/optional/graphical/thunderbird.nix
];
programs.nh.enable = true;
home.packages = with pkgs; [
# ardour
audacity
blender
gimp
handbrake
inkscape
# jellyfin-media-player
krita
unstable.lutris
mkvtoolnix
# obs-studio
pcsx2
qbittorrent
xemu
];
home.packages =
with pkgs;
[
# ardour
audacity
blender
gimp
handbrake
inkscape
# jellyfin-media-player
krita
unstable.lutris
mkvtoolnix
mpv
# obs-studio
pcsx2
qbittorrent
xemu
]
++ [
inputs.zen-browser.packages.${pkgs.stdenv.hostPlatform.system}.default
];
}

Binary file not shown.