Compare commits

...

25 Commits

Author SHA1 Message Date
17d11bd8ae
home-manager/programs/sesh: remove
Some checks failed
Check flake outputs / check-outputs (push) Has been cancelled
Publish every Git push to master to FlakeHub / flakehub-publish (push) Has been cancelled
Build devcontainers / build-devcontainers (push) Has been cancelled
Cache outputs / build-custom-packages (push) Has been cancelled
Build personalized bootstrap ISO / build-iso (x86_64-linux) (push) Has been cancelled
Build project site / build (push) Has been cancelled
Build project site / deploy (push) Has been cancelled
Update flake inputs / update (push) Has been cancelled
Update Firefox addons / update-firefox-addons (push) Has been cancelled
Available from upstream and has things that I want anyways.
2025-04-15 17:09:42 +08:00
e04471a15c
wrapperManagerPackages/archive-setup: fix yt-dlp-video settings 2025-04-15 12:24:27 +08:00
a5aeb823f3
nixos/workflows/a-happy-gnome: add module option to configure static workspaces 2025-04-15 12:23:44 +08:00
2c066787ef
flake.lock: update inputs
Flake lock file updates:

• Updated input 'disko':
    'github:nix-community/disko/329d3d7e8bc63dd30c39e14e6076db590a6eabe6?narHash=sha256-ViE7NoFWytYO2uJONTAX35eGsvTYXNHjWALeHAg8OQY%3D' (2025-04-02)
  → 'github:nix-community/disko/76c0a6dba345490508f36c1aa3c7ba5b6b460989?narHash=sha256-I2oILRiJ6G%2BBOSjY%2B0dGrTPe080L3pbKpc%2BgCV3Nmyk%3D' (2025-04-08)
• Updated input 'emacs-overlay':
    'github:nix-community/emacs-overlay/2ebddbabd7428499640618e6f6942542e5c13185?narHash=sha256-n7BFgSkr2qSACsJGwGKWURZp3WYetuIqTT8nx11UbkI%3D' (2025-04-08)
  → 'github:nix-community/emacs-overlay/d601c3de7e1932384a43585408a398ddccf3e1c6?narHash=sha256-ZphiIohrkf7bG5eKzQHhZqrpyiygbqdBrId6UgAHWOY%3D' (2025-04-15)
• Updated input 'emacs-overlay/nixpkgs-stable':
    'github:NixOS/nixpkgs/a880f49904d68b5e53338d1e8c7bf80f59903928?narHash=sha256-o4FjFOUmjSRMK7dn0TFdAT0RRWUWD%2BWsspPHa%2BqEQT8%3D' (2025-04-06)
  → 'github:NixOS/nixpkgs/26d499fc9f1d567283d5d56fcf367edd815dba1d?narHash=sha256-FHlSkNqFmPxPJvy%2B6fNLaNeWnF1lZSgqVCl/eWaJRc4%3D' (2025-04-12)
• Updated input 'helix-editor':
    'github:helix-editor/helix/a79979462395a1804e59b97732481b15874187a7?narHash=sha256-myqZAeqe10SKyS1m1Npz7Wr02zc0fbmBV6LfKoJ49FI%3D' (2025-04-08)
  → 'github:helix-editor/helix/340934db92aea902a61b9f79b9e6f4bd15111044?narHash=sha256-pqiSmtbquoBM3cVHELcXHl8CLT8moXVkwbtc5xd5Br0%3D' (2025-04-11)
• Updated input 'home-manager-unstable':
    'github:nix-community/home-manager/a4d8020820a85b47f842eae76ad083b0ec2a886a?narHash=sha256-9a4V1wQXS8hXZtc7mRtz0qINkGW%2BC99aDrmXY6oYBFg%3D' (2025-04-07)
  → 'github:nix-community/home-manager/d5cdf55bd9f19a3debd55b6cb5d38f7831426265?narHash=sha256-a6QGaZMDM1miK8VWzAITsEPOdmLk%2BxTPyJSTjVs3WhI%3D' (2025-04-14)
• Updated input 'neovim-nightly-overlay':
    'github:nix-community/neovim-nightly-overlay/f7f5a474c38e3e41827b067f741e12ecbbe5cf18?narHash=sha256-b0b/qxiqf2G2/UrmcyP9aYr0Ni5NpdCY6GEF8KgnmCU%3D' (2025-04-07)
  → 'github:nix-community/neovim-nightly-overlay/0d7c64d83bf26019292db406f1bfc62fb5f2bc3f?narHash=sha256-633XUO9ScY38cZUpgwLo5FylImxDYZvErh54CAfQSsc%3D' (2025-04-15)
• Updated input 'neovim-nightly-overlay/hercules-ci-effects':
    'github:hercules-ci/hercules-ci-effects/524637ef84c177661690b924bf64a1ce18072a2c?narHash=sha256-I6fG1zrfdLFcp/imGZElig0BJO3YU0QEXLgvwWoOpJ8%3D' (2025-03-15)
  → 'github:hercules-ci/hercules-ci-effects/6eaa505af87705041ef2cf5534f5fc8fe88e94c2?narHash=sha256-PWcxJN2MoWCGC73KI93di2njqrashftWJ6w/fWTvdCM%3D' (2025-04-14)
• Updated input 'neovim-nightly-overlay/neovim-src':
    'github:neovim/neovim/2d11b981bfbb7816d88a69b43b758f3a3f515b96?narHash=sha256-Dl6kHmsN6AZBWEgEbQGpKYy%2Bqvg%2BoPbBrK/CFQsWmZM%3D' (2025-04-06)
  → 'github:neovim/neovim/3341ab07764e9cda95e89880da579ea3ebb7f9b7?narHash=sha256-N/1NGAhjLg68kJJpdcccMbOkHZy0YY0HKnhs6TDDWU0%3D' (2025-04-14)
• Updated input 'nix-index-database':
    'github:nix-community/nix-index-database/a36f6a7148aec2c77d78e4466215cceb2f5f4bfb?narHash=sha256-4j4JPwr0TXHH4ZyorXN5yIcmqIQr0WYacsuPA4ktONo%3D' (2025-04-06)
  → 'github:nix-community/nix-index-database/4fc9ea78c962904f4ea11046f3db37c62e8a02fd?narHash=sha256-RLBSWQfTL0v%2B7uyskC5kP6slLK1jvIuhaAh8QvB75m4%3D' (2025-04-13)
• Updated input 'nixos-hardware':
    'github:NixOS/nixos-hardware/de6fc5551121c59c01e2a3d45b277a6d05077bc4?narHash=sha256-b/exDDQSLmENZZgbAEI3qi9yHkuXAXCPbormD8CSJXo%3D' (2025-03-31)
  → 'github:NixOS/nixos-hardware/9a049b4a421076d27fee3eec664a18b2066824cb?narHash=sha256-fbWE4Xpw6eH0Q6in%2BymNuDwTkqmFmtxcQEmtRuKDTTk%3D' (2025-04-14)
• Updated input 'nixos-stable':
    'github:NixOS/nixpkgs/a880f49904d68b5e53338d1e8c7bf80f59903928?narHash=sha256-o4FjFOUmjSRMK7dn0TFdAT0RRWUWD%2BWsspPHa%2BqEQT8%3D' (2025-04-06)
  → 'github:NixOS/nixpkgs/26d499fc9f1d567283d5d56fcf367edd815dba1d?narHash=sha256-FHlSkNqFmPxPJvy%2B6fNLaNeWnF1lZSgqVCl/eWaJRc4%3D' (2025-04-12)
• Updated input 'nixos-unstable':
    'github:NixOS/nixpkgs/063dece00c5a77e4a0ea24e5e5a5bd75232806f8?narHash=sha256-nEo1t3Q0F%2B0jQ36HJfbJtiRU4OI%2B/0jX/iITURKe3EE%3D' (2025-04-06)
  → 'github:NixOS/nixpkgs/2631b0b7abcea6e640ce31cd78ea58910d31e650?narHash=sha256-LWqduOgLHCFxiTNYi3Uj5Lgz0SR%2BXhw3kr/3Xd0GPTM%3D' (2025-04-12)
• Updated input 'nixos-unstable-small':
    'github:NixOS/nixpkgs/48382072d09ce1c72f2a6f716afaecd643226542?narHash=sha256-Xrcdw5arr01TL1pxvtyQGPBCMg8Budp7ejOG5H9u7cE%3D' (2025-04-07)
  → 'github:NixOS/nixpkgs/a6165272f0074877f7c0c45fe6eba86d1e18e80d?narHash=sha256-gswCvHOZvcHtY/5fIWYlz/VxMAIUQ6XFRZB/rxlH3OA%3D' (2025-04-14)
• Updated input 'nixos-wsl':
    'github:nix-community/NixOS-WSL/394c77f61ac76399290bfc2ef9d47b1fba31b215?narHash=sha256-0z%2B5AMacL2Eqo92fAd0eCWeKVecWrxPJwd5/BIfcdJ8%3D' (2025-03-28)
  → 'github:nix-community/NixOS-WSL/60b4904a1390ac4c89e93d95f6ed928975e525ed?narHash=sha256-/X9XVEl0EiyisNbF5srrxXRSVoRqdwExuqyspYqqEjQ%3D' (2025-04-10)
• Updated input 'nixpkgs-unstable':
    'github:NixOS/nixpkgs/74a40410369a1c35ee09b8a1abee6f4acbedc059?narHash=sha256-UgFYn8sGv9B8PoFpUfCa43CjMZBl1x/ShQhRDHBFQdI%3D' (2025-04-06)
  → 'github:NixOS/nixpkgs/18dd725c29603f582cf1900e0d25f9f1063dbf11?narHash=sha256-awS2zRgF4uTwrOKwwiJcByDzDOdo3Q1rPZbiHQg/N38%3D' (2025-04-13)
• Updated input 'nixvim-unstable':
    'github:nix-community/nixvim/cc8918663a711a10cd45650e7bb4c933c5ec4ad7?narHash=sha256-etbUDe2Httgl6oI14M1nTV39%2B478dJ0UyLJKx/DtZi8%3D' (2025-04-07)
  → 'github:nix-community/nixvim/ee9655637cbf898415e09c399bc504180e246d42?narHash=sha256-gtfLmGx/N%2BBzIck9sGLIfzETxocYjVKo4gmSeH6zfaY%3D' (2025-04-14)
• Updated input 'nur':
    'github:nix-community/NUR/392ebec73ad39dc13c0232f62a6d8225e03ed069?narHash=sha256-nQP5LLvYNECEYDVkVfynoewc1UtQl4M2XzamdPyn3K8%3D' (2025-04-07)
  → 'github:nix-community/NUR/2fbf8d8ecbec6578df27f45ae6f726190433aa2b?narHash=sha256-HilYogQo2HBCXHfhAr/J96BN2QgbxkHebH%2BIYt/tZ98%3D' (2025-04-15)
• Updated input 'nur/nixpkgs':
    'github:nixos/nixpkgs/063dece00c5a77e4a0ea24e5e5a5bd75232806f8?narHash=sha256-nEo1t3Q0F%2B0jQ36HJfbJtiRU4OI%2B/0jX/iITURKe3EE%3D' (2025-04-06)
  → 'github:nixos/nixpkgs/2631b0b7abcea6e640ce31cd78ea58910d31e650?narHash=sha256-LWqduOgLHCFxiTNYi3Uj5Lgz0SR%2BXhw3kr/3Xd0GPTM%3D' (2025-04-12)
• Updated input 'sops-nix':
    'github:Mic92/sops-nix/04eb34c6c5be9298e0628ef6532acad4fadbfa21?narHash=sha256-ZB6q4xnSWm1eIKjpH195NJ7rlOzQ84BWSCoc002gdLI%3D' (2025-04-07)
  → 'github:Mic92/sops-nix/61154300d945f0b147b30d24ddcafa159148026a?narHash=sha256-pXyanHLUzLNd3MX9vsWG%2B6Z2hTU8niyphWstYEP3/GU%3D' (2025-04-14)
2025-04-15 11:45:40 +08:00
6216164512
pkgs/fastn: 0.4.99 -> 0.4.100 2025-04-14 09:38:00 +08:00
fbd5bf0a88
users/foo-dogsquared/programs/dconf: update "A happy GNOME"-exclusive settings 2025-04-14 09:37:17 +08:00
4e3eb7e6b7
nixos/workflows/a-happy-gnome: set Nix-representable PaperWM workspaces
Also, the module has been restructured with a dedicated PaperWM
namespace option.
2025-04-14 09:03:06 +08:00
b60d801b62
lib: add top-level exports from trivial subset 2025-04-13 15:18:15 +08:00
c09faac74f
treewide: replace builtins.map usage to lib.map 2025-04-13 15:15:55 +08:00
6fd69b1005
users/foo-dogsquared/programs/dconf: add "A happy GNOME"-specific settings 2025-04-13 14:31:05 +08:00
cb93a8b1b1
nixos/workflows/a-happy-gnome: add winprops module option for PaperWM 2025-04-13 14:29:59 +08:00
9d2a73e949
nixos/workflows/a-happy-gnome: update settings and required applications list 2025-04-12 13:45:28 +08:00
abd09c55f5
users/foo-dogsquared: add archive-setup as wrapper-manager-fds packages 2025-04-10 19:34:22 +08:00
2336f1fd40
flake-parts/setups/wrapper-manager: fix specialArgs passing to wider-scope configs 2025-04-09 21:56:34 +08:00
603fbeec3f
templates/fds-private-config: init 2025-04-09 21:53:27 +08:00
fdfebf6389
users/foo-dogsquared: add minor update to setup
* Update Python to 3.13.
* Add Epiphany-specific settings.
* Update wrapper executable names.
* Add Debian Codesearch to default homepage links.
2025-04-09 21:45:47 +08:00
93ef34b094
nixos/workflows/a-happy-gnome: add applications and Epiphany-specific default settings 2025-04-09 21:43:40 +08:00
8fd6acecd3
users/foo-dogsquared/dotfiles: add Neovide for Neovim subconfig 2025-04-09 21:42:48 +08:00
c769471d65
users/foo-dogsquared/programs/browsers: update Firefox config 2025-04-09 21:42:03 +08:00
247faec155
flake.lock: update inputs
Flake lock file updates:

• Updated input 'disko':
    'github:nix-community/disko/0d8c6ad4a43906d14abd5c60e0ffe7b587b213de?narHash=sha256-VT65AE2syHVj6v/DGB496bqBnu1PXrrzwlw07/Zpllc%3D' (2025-03-12)
  → 'github:nix-community/disko/329d3d7e8bc63dd30c39e14e6076db590a6eabe6?narHash=sha256-ViE7NoFWytYO2uJONTAX35eGsvTYXNHjWALeHAg8OQY%3D' (2025-04-02)
• Updated input 'emacs-overlay':
    'github:nix-community/emacs-overlay/808ae0382b035600bc8829918bfe5ea1fa63dab4?narHash=sha256-xszUn7/EjXpq43LO9Qgn7je%2B2Z8qOfpYDGLoEjo25No%3D' (2025-03-21)
  → 'github:nix-community/emacs-overlay/2ebddbabd7428499640618e6f6942542e5c13185?narHash=sha256-n7BFgSkr2qSACsJGwGKWURZp3WYetuIqTT8nx11UbkI%3D' (2025-04-08)
• Updated input 'emacs-overlay/nixpkgs-stable':
    'github:NixOS/nixpkgs/b75693fb46bfaf09e662d09ec076c5a162efa9f6?narHash=sha256-GheQGRNYAhHsvPxWVOhAmg9lZKkis22UPbEHlmZMthg%3D' (2025-03-19)
  → 'github:NixOS/nixpkgs/a880f49904d68b5e53338d1e8c7bf80f59903928?narHash=sha256-o4FjFOUmjSRMK7dn0TFdAT0RRWUWD%2BWsspPHa%2BqEQT8%3D' (2025-04-06)
• Updated input 'flake-parts':
    'github:hercules-ci/flake-parts/f4330d22f1c5d2ba72d3d22df5597d123fdb60a9?narHash=sha256-%2Bu2UunDA4Cl5Fci3m7S643HzKmIDAe%2BfiXrLqYsR2fs%3D' (2025-03-07)
  → 'github:hercules-ci/flake-parts/c621e8422220273271f52058f618c94e405bb0f5?narHash=sha256-hIshGgKZCgWh6AYJpJmRgFdR3WUbkY04o82X05xqQiY%3D' (2025-04-01)
• Updated input 'flake-parts/nixpkgs-lib':
    'github:nix-community/nixpkgs.lib/147dee35aab2193b174e4c0868bd80ead5ce755c?narHash=sha256-oiwv/ZK/2FhGxrCkQkB83i7GnWXPPLzoqFHpDD3uYpk%3D' (2025-03-02)
  → 'github:nix-community/nixpkgs.lib/e4822aea2a6d1cdd36653c134cacfd64c97ff4fa?narHash=sha256-b1EdN3cULCqtorQ4QeWgLMrd5ZGOjLSLemfa00heasc%3D' (2025-03-30)
• Updated input 'helix-editor':
    'github:helix-editor/helix/1dee64f7ec304c607afeb7da8db305e6de1d064c?narHash=sha256-q135kPFx%2BBFfeAn838QfYo0pIJNYK0UFYdNa77EQMuM%3D' (2025-03-21)
  → 'github:helix-editor/helix/a79979462395a1804e59b97732481b15874187a7?narHash=sha256-myqZAeqe10SKyS1m1Npz7Wr02zc0fbmBV6LfKoJ49FI%3D' (2025-04-08)
• Updated input 'home-manager-unstable':
    'github:nix-community/home-manager/da0181819479ddc034a3db9a77ed21ea3bcc0668?narHash=sha256-vQQTIl4%2Bslrcu7ftVKNBql9ngBdY0dcYGujdT7zIVp0%3D' (2025-03-20)
  → 'github:nix-community/home-manager/a4d8020820a85b47f842eae76ad083b0ec2a886a?narHash=sha256-9a4V1wQXS8hXZtc7mRtz0qINkGW%2BC99aDrmXY6oYBFg%3D' (2025-04-07)
• Updated input 'neovim-nightly-overlay':
    'github:nix-community/neovim-nightly-overlay/e20681475b223c163d83c811a7fc4edf28b32c98?narHash=sha256-1CQvUAtfVQtbn2n3UhxeEz9WF0WPc/bhMQknDPgpySM%3D' (2025-03-21)
  → 'github:nix-community/neovim-nightly-overlay/f7f5a474c38e3e41827b067f741e12ecbbe5cf18?narHash=sha256-b0b/qxiqf2G2/UrmcyP9aYr0Ni5NpdCY6GEF8KgnmCU%3D' (2025-04-07)
• Updated input 'neovim-nightly-overlay/flake-parts':
    'github:hercules-ci/flake-parts/f4330d22f1c5d2ba72d3d22df5597d123fdb60a9?narHash=sha256-%2Bu2UunDA4Cl5Fci3m7S643HzKmIDAe%2BfiXrLqYsR2fs%3D' (2025-03-07)
  → 'github:hercules-ci/flake-parts/c621e8422220273271f52058f618c94e405bb0f5?narHash=sha256-hIshGgKZCgWh6AYJpJmRgFdR3WUbkY04o82X05xqQiY%3D' (2025-04-01)
• Updated input 'neovim-nightly-overlay/git-hooks':
    'github:cachix/git-hooks.nix/ea26a82dda75bee6783baca6894040c8e6599728?narHash=sha256-QmF0proyjXI9YyZO9GZmc7/uEu5KVwCtcdLsKSoxPAI%3D' (2025-03-18)
  → 'github:cachix/git-hooks.nix/dcf5072734cb576d2b0c59b2ac44f5050b5eac82?narHash=sha256-DwOTp7nvfi8mRfuL1escHDXabVXFGT1VlPD1JHrtrco%3D' (2025-03-22)
• Updated input 'neovim-nightly-overlay/neovim-src':
    'github:neovim/neovim/175c09bd660d0cea62288e74cea925a9b15bee55?narHash=sha256-MLlU8s/lVKHfYcl9g8Q4nOl3BVWc627fVII58qtL9d8%3D' (2025-03-19)
  → 'github:neovim/neovim/2d11b981bfbb7816d88a69b43b758f3a3f515b96?narHash=sha256-Dl6kHmsN6AZBWEgEbQGpKYy%2Bqvg%2BoPbBrK/CFQsWmZM%3D' (2025-04-06)
• Updated input 'neovim-nightly-overlay/treefmt-nix':
    'github:numtide/treefmt-nix/adc195eef5da3606891cedf80c0d9ce2d3190808?narHash=sha256-XRE8hL4vKIQyVMDXykFh4ceo3KSpuJF3ts8GKwh5bIU%3D' (2025-03-19)
  → 'github:numtide/treefmt-nix/815e4121d6a5d504c0f96e5be2dd7f871e4fd99d?narHash=sha256-uhjnlaVTWo5iD3LXics1rp9gaKgDRQj6660%2BgbUU3cE%3D' (2025-04-04)
• Updated input 'nix-index-database':
    'github:nix-community/nix-index-database/2cfb4e1ca32f59dd2811d7a6dd5d4d1225f0955c?narHash=sha256-pDNzMoR6m1ZSJToZQ6XDTLVSdzIzmFl1b8Pc3f7iV6Y%3D' (2025-03-17)
  → 'github:nix-community/nix-index-database/a36f6a7148aec2c77d78e4466215cceb2f5f4bfb?narHash=sha256-4j4JPwr0TXHH4ZyorXN5yIcmqIQr0WYacsuPA4ktONo%3D' (2025-04-06)
• Updated input 'nixos-generators':
    'github:nix-community/nixos-generators/83900d5154d840dfae1e0367c5290f59b9dccf03?narHash=sha256-pLRjj0jTL1TloB0ptEwVF51IJJX8a17dSxg%2BgqiWb30%3D' (2025-03-17)
  → 'github:nix-community/nixos-generators/42ee229088490e3777ed7d1162cb9e9d8c3dbb11?narHash=sha256-QaMEhcnscfF2MqB7flZr%2BsLJMMYZPnvqO4NYf9B4G38%3D' (2025-03-21)
• Updated input 'nixos-hardware':
    'github:NixOS/nixos-hardware/daaae13dff0ecc692509a1332ff9003d9952d7a9?narHash=sha256-VFMgJkp/COvkt5dnkZB4D2szVdmF6DGm5ZdVvTUy61c%3D' (2025-03-19)
  → 'github:NixOS/nixos-hardware/de6fc5551121c59c01e2a3d45b277a6d05077bc4?narHash=sha256-b/exDDQSLmENZZgbAEI3qi9yHkuXAXCPbormD8CSJXo%3D' (2025-03-31)
• Updated input 'nixos-stable':
    'github:NixOS/nixpkgs/bdb91860de2f719b57eef819b5617762f7120c70?narHash=sha256-s1KLDALEeqy%2BttrvqV3jx9mBZEvmthQErTVOAzbjHZs%3D' (2025-04-03)
  → 'github:NixOS/nixpkgs/a880f49904d68b5e53338d1e8c7bf80f59903928?narHash=sha256-o4FjFOUmjSRMK7dn0TFdAT0RRWUWD%2BWsspPHa%2BqEQT8%3D' (2025-04-06)
• Updated input 'nixos-unstable':
    'github:NixOS/nixpkgs/a84ebe20c6bc2ecbcfb000a50776219f48d134cc?narHash=sha256-mNqIplmEohk5jRkqYqG19GA8MbQ/D4gQSK0Mu4LvfRQ%3D' (2025-03-19)
  → 'github:NixOS/nixpkgs/063dece00c5a77e4a0ea24e5e5a5bd75232806f8?narHash=sha256-nEo1t3Q0F%2B0jQ36HJfbJtiRU4OI%2B/0jX/iITURKe3EE%3D' (2025-04-06)
• Updated input 'nixos-unstable-small':
    'github:NixOS/nixpkgs/b64ec1944ea40d9f3920f938e17ed39a9978c6c7?narHash=sha256-lfOAAaX68Ed7R6Iy2nbFAkGj6B8kHBp3nqZhgZjxR5c%3D' (2025-03-20)
  → 'github:NixOS/nixpkgs/48382072d09ce1c72f2a6f716afaecd643226542?narHash=sha256-Xrcdw5arr01TL1pxvtyQGPBCMg8Budp7ejOG5H9u7cE%3D' (2025-04-07)
• Updated input 'nixos-wsl':
    'github:nix-community/NixOS-WSL/96d7df91cce0d7cd30d1958fe1aefcb5f9bfced7?narHash=sha256-m7I/2UaGEFOI%2BCy0RoADBi10NZt1WD5N3q2jUwPprE4%3D' (2025-03-20)
  → 'github:nix-community/NixOS-WSL/394c77f61ac76399290bfc2ef9d47b1fba31b215?narHash=sha256-0z%2B5AMacL2Eqo92fAd0eCWeKVecWrxPJwd5/BIfcdJ8%3D' (2025-03-28)
• Updated input 'nixpkgs-unstable':
    'github:NixOS/nixpkgs/2a725d40de138714db4872dc7405d86457aa17ad?narHash=sha256-WWNNjCSzQCtATpCFEijm81NNG1xqlLMVbIzXAiZysbs%3D' (2025-03-19)
  → 'github:NixOS/nixpkgs/74a40410369a1c35ee09b8a1abee6f4acbedc059?narHash=sha256-UgFYn8sGv9B8PoFpUfCa43CjMZBl1x/ShQhRDHBFQdI%3D' (2025-04-06)
• Updated input 'nixvim-unstable':
    'github:nix-community/nixvim/d44b33a1ea1a3e584a8c93164dbe0ba2ad4f3a13?narHash=sha256-vXpu7G4aupNCPlv8kAo7Y/jocfSUwglkvNx5cR0XjBo%3D' (2025-03-20)
  → 'github:nix-community/nixvim/cc8918663a711a10cd45650e7bb4c933c5ec4ad7?narHash=sha256-etbUDe2Httgl6oI14M1nTV39%2B478dJ0UyLJKx/DtZi8%3D' (2025-04-07)
• Updated input 'nixvim-unstable/flake-parts':
    'github:hercules-ci/flake-parts/f4330d22f1c5d2ba72d3d22df5597d123fdb60a9?narHash=sha256-%2Bu2UunDA4Cl5Fci3m7S643HzKmIDAe%2BfiXrLqYsR2fs%3D' (2025-03-07)
  → 'github:hercules-ci/flake-parts/c621e8422220273271f52058f618c94e405bb0f5?narHash=sha256-hIshGgKZCgWh6AYJpJmRgFdR3WUbkY04o82X05xqQiY%3D' (2025-04-01)
• Updated input 'nixvim-unstable/nuschtosSearch':
    'github:NuschtOS/search/2974bc5fa3441a319fba943f3ca41f7dcd1a1467?narHash=sha256-sScfYKtxp3CYv5fJcHQDvQjqBL%2BtPNQqS9yf9Putd%2Bs%3D' (2025-03-13)
  → 'github:NuschtOS/search/56a49ffef2908dad1e9a8adef1f18802bc760962?narHash=sha256-LdXtHFvhEC3S64dphap1pkkzwjErbW65eH1VRerCUT0%3D' (2025-04-03)
• Updated input 'nur':
    'github:nix-community/NUR/6b5c2c6a13c89b965ed2d123b70e3e792667ed89?narHash=sha256-CZIrtAOiweXQexbHh070ddb/1HbH0ymWb7CwkVqzJRo%3D' (2025-03-21)
  → 'github:nix-community/NUR/392ebec73ad39dc13c0232f62a6d8225e03ed069?narHash=sha256-nQP5LLvYNECEYDVkVfynoewc1UtQl4M2XzamdPyn3K8%3D' (2025-04-07)
• Updated input 'nur/nixpkgs':
    'github:nixos/nixpkgs/a84ebe20c6bc2ecbcfb000a50776219f48d134cc?narHash=sha256-mNqIplmEohk5jRkqYqG19GA8MbQ/D4gQSK0Mu4LvfRQ%3D' (2025-03-19)
  → 'github:nixos/nixpkgs/063dece00c5a77e4a0ea24e5e5a5bd75232806f8?narHash=sha256-nEo1t3Q0F%2B0jQ36HJfbJtiRU4OI%2B/0jX/iITURKe3EE%3D' (2025-04-06)
• Updated input 'sops-nix':
    'github:Mic92/sops-nix/1770be8ad89e41f1ed5a60ce628dd10877cb3609?narHash=sha256-r0aq70/3bmfjTP%2BJZs4%2BXV5SgmCtk1BLU4CQPWGtA7o%3D' (2025-03-19)
  → 'github:Mic92/sops-nix/04eb34c6c5be9298e0628ef6532acad4fadbfa21?narHash=sha256-ZB6q4xnSWm1eIKjpH195NJ7rlOzQ84BWSCoc002gdLI%3D' (2025-04-07)
2025-04-08 09:36:20 +08:00
2e78edbd60
flake-parts/setups/{home-manager,wrapper-manager}: set specialArgs
Though both integrations are not complete with config-specific
specialArgs not completely possible to be inserted.
2025-04-06 16:00:30 +08:00
57b8882cb9
flake-parts/setups/wrapper-manager: replace src with branch for top-level configs 2025-04-06 15:55:21 +08:00
75bb6cac42
users/foo-dogsquared/dotfiles: add Helix dotfiles 2025-04-05 12:20:18 +08:00
5ff1a1326d
flake: move nixpkgs-stable to nixpkgs-24.11 branch 2025-04-05 12:19:27 +08:00
6588f916f3
shells/dotnet: init 2025-04-05 12:14:18 +08:00
44 changed files with 663 additions and 283 deletions

View File

@ -45,6 +45,10 @@
autoRollback = true;
magicRollback = true;
};
wrapper-manager = {
branch = "wrapper-manager-fds";
packages.archive-setup = { };
};
};
# The typical user in server environments.

View File

@ -30,5 +30,9 @@
path = ../../templates/local-ruby-nix;
description = "Local Ruby app development with ruby-nix";
};
fds-private-config = {
path = ../../templates/fds-private-config;
description = "Basic template for private Nix environment configuration that uses this flake";
};
};
}

View File

@ -39,6 +39,7 @@ links = [
{ url = "https://github.com", text = "GitHub" },
{ url = "https://sourcegraph.com/search", text = "SourceGraph" },
{ url = "https://archive.softwareheritage.org", text = "Software Heritage" },
{ url = "https://codesearch.debian.net", text = "Debian Codesearch" },
{ subsection = true, text = "Cloud platforms" },
{ url = "https://vscode.dev", text = "Online Visual Studio Code" },

View File

@ -43,6 +43,9 @@ in {
# home-manager environment will not write to the XDG config directory.
(lib.mkIf (config.programs.neovim.enable) {
xdg.configFile.nvim.source = getDotfiles "nvim";
xdg.configFile.neovide.source = getDotfiles "neovide";
home.packages = with pkgs; [ neovide ];
programs.neovim.extraPackages = with pkgs; [
luarocks
@ -60,5 +63,9 @@ in {
home.file."${config.xdg.dataHome}/nushell/vendor/autoload".source =
getDotfiles "nu/autoload";
})
(lib.mkIf config.programs.helix.enable {
xdg.configFile.helix.source = getDotfiles "helix";
})
]);
}

View File

@ -63,13 +63,11 @@ in {
programs.firefox = {
enable = true;
package = with pkgs;
wrapFirefox firefox-unwrapped {
nativeMessagingHosts = with pkgs;
[ bukubrow tridactyl-native ]
++ lib.optional config.programs.mpv.enable pkgs.ff2mpv;
extraPolicies = {
policies = {
AppAutoUpdate = false;
DisableAppUpdate = true;
DisableMasterPasswordCreation = true;
@ -90,7 +88,6 @@ in {
SanitizeOnShutdown = { FormData = true; };
UseSystemPrintDialog = true;
};
};
profiles.personal = lib.mkMerge [
{
@ -165,10 +162,10 @@ in {
search = {
default = "Brave";
force = true;
order = [ "Brave" "Nix Packages" "Google" ];
order = [ "Brave" "Nix Packages" "google" ];
engines = {
"Brave" = {
urls = [{
urls = lib.singleton {
template = "https://search.brave.com/search";
params = [
{
@ -180,7 +177,7 @@ in {
value = "{searchTerms}";
}
];
}];
};
icon =
"${config.programs.brave.package}/share/icons/hicolor/64x64/apps/brave-browser.png";
@ -188,7 +185,7 @@ in {
};
"Nix Packages" = {
urls = [{
urls = lib.singleton {
template = "https://search.nixos.org/packages";
params = [
{
@ -200,7 +197,7 @@ in {
value = "{searchTerms}";
}
];
}];
};
icon =
"${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";

View File

@ -1,4 +1,4 @@
{ config, lib, ... }:
{ config, lib, ... }@attrs:
let
inherit (config.xdg) userDirs;
@ -8,7 +8,8 @@ in {
options.users.foo-dogsquared.programs.dconf.enable =
lib.mkEnableOption "dconf configuration";
config = lib.mkIf cfg.enable {
config = lib.mkIf cfg.enable (lib.mkMerge [
{
dconf.settings = {
# My GNOME Shell and programs configuration.
"org/gnome/shell" = {
@ -41,6 +42,180 @@ in {
userDirs.extraConfig.XDG_PROJECTS_DIR
];
};
};
"org/gnome/epiphany".homepage-url = lib.mkIf userCfg.programs.custom-homepage.enable "file://${config.xdg.dataHome}/foodogsquared/homepage/index.html";
};
}
# For everything else, pls refer to the "A happy GNOME" workflow module to
# know what workspaces has been set.
#
# Also, this config block comes with the following assumptions:
#
# * ALL workspaces has been configured with an index.
# * The preset workspace option for the workflow module has been enabled
# and exclusively configured around that.
# * The default list of applications from the workflow module.
(lib.mkIf (lib.elem "a-happy-gnome" attrs.nixosConfig.workflows.enable or []) {
dconf.settings = {
"org/gnome/shell/extensions/paperwm" = {
winprops =
let
inherit (attrs.nixosConfig.workflows.workflows.a-happy-gnome.paperwm) workspaces;
# A small convenience to make memorizing the index of a workspace
# not a thing.
wmIndexOf = name: workspaces.${name}.index.value;
# Another small convenience for making matches with Epiphany-made PWAs.
mkEpiphanyWebAppMatch = attr: attr // {
wm_class = "/org.gnome.Epiphany.WebApp_[A-Za-z0-9]+/";
};
winpropRules =
lib.optionals userCfg.setups.development.enable [
{
wm_class = "org.wezfurlong.wezterm";
preferredWidth = "100%";
spaceIndex = wmIndexOf "dev";
}
# All Epiphany-created web apps with DevDocs.
(mkEpiphanyWebAppMatch {
title = "/.*DevDocs.*/";
spaceIndex = wmIndexOf "dev";
})
(mkEpiphanyWebAppMatch {
title = "/.*GNOME DevDocs.*/";
spaceIndex = wmIndexOf "dev";
})
]
++ lib.optionals userCfg.setups.development.creative-coding.enable [
{
wm_class = "Processing";
spaceIndex = wmIndexOf "creative";
}
{
wm_class = "scide";
title = "SuperCollider IDE";
spaceIndex = wmIndexOf "creative";
}
{
wm_class = "Pure Data";
spaceIndex = wmIndexOf "creative";
}
{
wm_class = "Sonic Pi";
spaceIndex = wmIndexOf "creative";
}
]
++ lib.optionals userCfg.programs.doom-emacs.enable [{
wm_class = "Emacs";
spaceIndex = wmIndexOf "research";
}]
++ lib.optionals userCfg.setups.research.enable [
{
wm_class = "Zotero";
spaceIndex = wmIndexOf "research";
}
{
wm_class = "Kiwix";
spaceIndex = wmIndexOf "research";
}
]
++ lib.optionals config.suites.desktop.audio.enable [
{
wm_class = "Audacity";
spaceIndex = wmIndexOf "creative";
}
{
wm_class = "zrythm";
spaceIndex = wmIndexOf "creative";
}
{
wm_class = "Musescore4";
spaceIndex = wmIndexOf "creative";
}
]
++ lib.optionals config.suites.desktop.audio.pipewire.enable [
{
wm_class = "org.pipewire.Helvum";
spaceIndex = wmIndexOf "creative";
}
{
wm_class = "Carla2";
spaceIndex = wmIndexOf "creative";
}
]
++ lib.optionals config.suites.desktop.graphics.enable [
{
wm_class = "org.inkscape.Inkscape";
spaceIndex = wmIndexOf "creative";
}
{
wm_class = "GIMP";
spaceIndex = wmIndexOf "creative";
}
{
wm_class = "krita";
spaceIndex = wmIndexOf "creative";
}
{
wm_class = "Pureref";
spaceIndex = wmIndexOf "creative";
}
{
wm_class = "io.github.lainsce.Emulsion";
spaceIndex = wmIndexOf "creative";
}
(mkEpiphanyWebAppMatch {
title = "Penpot";
spaceIndex = wmIndexOf "creative";
})
]
++ lib.optionals userCfg.programs.email.thunderbird.enable [{
wm_class = "thunderbird";
preferredWidth = "100%";
spaceIndex = wmIndexOf "work";
}]
++ lib.optionals userCfg.programs.vs-code.enable [{
wm_class = "Code";
preferredWidth = "100%";
spaceIndex = wmIndexOf "dev";
}]
++ lib.optionals userCfg.programs.browsers.firefox.enable [{
wm_class = "firefox";
spaceIndex = wmIndexOf "media";
}]
++ lib.optionals userCfg.programs.browsers.brave.enable [{
wm_class = "Brave";
spaceIndex = wmIndexOf "media";
}]
++ lib.optionals userCfg.programs.browsers.google-chrome.enable [{
wm_class = "Google-chrome";
spaceIndex = wmIndexOf "media";
}]
++ lib.optionals userCfg.setups.music.spotify.enable [{
wm_class = "Spotify";
spaceIndex = wmIndexOf "media";
}];
in
lib.map lib.strings.toJSON winpropRules;
};
};
})
]);
}

View File

@ -62,7 +62,7 @@ in {
programs.python = {
enable = true;
package = pkgs.python3;
package = pkgs.python313;
modules = ps: with ps; [ jupyter ];
};

View File

@ -2,7 +2,7 @@
let userConfig = hmConfig.users.foo-dogsquared;
in {
extraPlugins = builtins.map (path:
extraPlugins = lib.map (path:
pkgs.runCommand "vim-plugin-bare" { } ''
mkdir -p "$out"
cp -r ${path}/* "$out"

View File

@ -96,6 +96,9 @@ in {
# Testing out your web app #532.
dbeaver-bin
];
# Text editors galore.
programs.helix.enable = true;
}
(lib.mkIf (!config.programs.nixvim.enable or false) {

View File

@ -25,7 +25,7 @@ in {
];
wrapper-manager.packages.music-setup = {
wrappers.yt-dlp-audio = {
wrappers.yt-dlp-music = {
arg0 = lib.getExe' pkgs.yt-dlp "yt-dlp";
prependArgs = [ "--config-location" ../../../config/yt-dlp/audio.conf ];
};

View File

@ -27,13 +27,13 @@ let
inherit name;
inherit (value) subscriptions extraArgs;
}) db);
jobsList = builtins.map (category:
jobsList = lib.map (category:
let jobExtraArgs = lib.attrByPath [ "data" "extraArgs" ] [ ] category;
in {
name = category.data.name;
value = {
extraArgs = extraArgs ++ jobExtraArgs;
urls = builtins.map (subscription: subscription.url)
urls = lib.map (subscription: subscription.url)
category.data.subscriptions;
startAt =
lib.elemAt days (lib.mod category.index (lib.length days));

View File

@ -103,7 +103,7 @@ in {
};
applySystemdAttr = secretPaths:
lib.listToAttrs
(builtins.map (path: lib.nameValuePair path systemdNetworkFileAttrs))
(lib.map (path: lib.nameValuePair path systemdNetworkFileAttrs))
secretPaths;
in applySystemdAttr [
"wireguard/private-key"

View File

@ -16,7 +16,7 @@ let
mode = "repokey-blake2";
};
extraCreateArgs = lib.concatStringsSep " "
(builtins.map (patternFile: "--patterns-from ${patternFile}") patterns);
(lib.map (patternFile: "--patterns-from ${patternFile}") patterns);
extraInitArgs = "--make-parent-dirs";
# We're emptying them since we're specifying them all through the patterns file.

View File

@ -92,13 +92,13 @@ in {
inherit name;
inherit (value) subscriptions extraArgs;
}) db);
jobsList = builtins.map (category:
jobsList = lib.map (category:
let jobExtraArgs = lib.attrByPath [ "data" "extraArgs" ] [ ] category;
in {
name = category.data.name;
value = {
extraArgs = extraArgs ++ jobExtraArgs;
urls = builtins.map (subscription: subscription.url)
urls = lib.map (subscription: subscription.url)
category.data.subscriptions;
startAt =
lib.elemAt days (lib.mod category.index (lib.length days));

View File

@ -22,10 +22,10 @@ let
};
extraCreateArgs = let
args = lib.flatten [
(builtins.map
(lib.map
(patternFile: "--patterns-from ${lib.escapeShellArg patternFile}")
patternFiles)
(builtins.map (pattern: "--pattern ${lib.escapeShellArg pattern}")
(lib.map (pattern: "--pattern ${lib.escapeShellArg pattern}")
patterns)
];
in lib.concatStringsSep " " args;

View File

@ -88,7 +88,7 @@ in {
# A set of bindings to be used for each jump direction.
bindings:
let
mappings = builtins.map (motion:
mappings = lib.map (motion:
let
inherit (motion) region jumpDirection variant;
jumpDirection' = lib.strings.toLower jumpDirection;
@ -164,7 +164,7 @@ in {
binding:
let
mappingsList = builtins.map (variant:
mappingsList = lib.map (variant:
let prefixMap' = prefixMap.${variant};
in lib.nameValuePair "${prefixMap'.key}${binding}" {
query = "@${query}.${variant}";
@ -200,7 +200,7 @@ in {
mkQueryMappings = acc: query: bindings:
let
mappings = builtins.map (motion:
mappings = lib.map (motion:
let
inherit (motion) jumpDirection variant;
jumpDirection' = lib.strings.toLower jumpDirection;

View File

@ -65,7 +65,7 @@ in {
mkEnableServerConfig = server:
lib.nameValuePair server { enable = true; };
in lib.listToAttrs (builtins.map mkEnableServerConfig servers);
in lib.listToAttrs (lib.map mkEnableServerConfig servers);
}
{

View File

@ -15,4 +15,4 @@
# Add some metadata into sidecar files or something.
--write-info-json
--write-descriptions
--write-description

View File

@ -63,7 +63,7 @@ let
sha256 = hash;
};
in if version == 3 then
builtins.mapAttrs (_: mkSource) data.pins
lib.mapAttrs (_: mkSource) data.pins
else
throw "Unsupported format version ${
toString version

164
flake.lock generated
View File

@ -50,11 +50,11 @@
]
},
"locked": {
"lastModified": 1741786315,
"narHash": "sha256-VT65AE2syHVj6v/DGB496bqBnu1PXrrzwlw07/Zpllc=",
"lastModified": 1744145203,
"narHash": "sha256-I2oILRiJ6G+BOSjY+0dGrTPe080L3pbKpc+gCV3Nmyk=",
"owner": "nix-community",
"repo": "disko",
"rev": "0d8c6ad4a43906d14abd5c60e0ffe7b587b213de",
"rev": "76c0a6dba345490508f36c1aa3c7ba5b6b460989",
"type": "github"
},
"original": {
@ -71,11 +71,11 @@
"nixpkgs-stable": "nixpkgs-stable"
},
"locked": {
"lastModified": 1742523104,
"narHash": "sha256-xszUn7/EjXpq43LO9Qgn7je+2Z8qOfpYDGLoEjo25No=",
"lastModified": 1744683403,
"narHash": "sha256-ZphiIohrkf7bG5eKzQHhZqrpyiygbqdBrId6UgAHWOY=",
"owner": "nix-community",
"repo": "emacs-overlay",
"rev": "808ae0382b035600bc8829918bfe5ea1fa63dab4",
"rev": "d601c3de7e1932384a43585408a398ddccf3e1c6",
"type": "github"
},
"original": {
@ -197,11 +197,11 @@
"nixpkgs-lib": "nixpkgs-lib"
},
"locked": {
"lastModified": 1741352980,
"narHash": "sha256-+u2UunDA4Cl5Fci3m7S643HzKmIDAe+fiXrLqYsR2fs=",
"lastModified": 1743550720,
"narHash": "sha256-hIshGgKZCgWh6AYJpJmRgFdR3WUbkY04o82X05xqQiY=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "f4330d22f1c5d2ba72d3d22df5597d123fdb60a9",
"rev": "c621e8422220273271f52058f618c94e405bb0f5",
"type": "github"
},
"original": {
@ -218,11 +218,11 @@
]
},
"locked": {
"lastModified": 1741352980,
"narHash": "sha256-+u2UunDA4Cl5Fci3m7S643HzKmIDAe+fiXrLqYsR2fs=",
"lastModified": 1743550720,
"narHash": "sha256-hIshGgKZCgWh6AYJpJmRgFdR3WUbkY04o82X05xqQiY=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "f4330d22f1c5d2ba72d3d22df5597d123fdb60a9",
"rev": "c621e8422220273271f52058f618c94e405bb0f5",
"type": "github"
},
"original": {
@ -281,11 +281,11 @@
]
},
"locked": {
"lastModified": 1741352980,
"narHash": "sha256-+u2UunDA4Cl5Fci3m7S643HzKmIDAe+fiXrLqYsR2fs=",
"lastModified": 1743550720,
"narHash": "sha256-hIshGgKZCgWh6AYJpJmRgFdR3WUbkY04o82X05xqQiY=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "f4330d22f1c5d2ba72d3d22df5597d123fdb60a9",
"rev": "c621e8422220273271f52058f618c94e405bb0f5",
"type": "github"
},
"original": {
@ -379,11 +379,11 @@
]
},
"locked": {
"lastModified": 1742300892,
"narHash": "sha256-QmF0proyjXI9YyZO9GZmc7/uEu5KVwCtcdLsKSoxPAI=",
"lastModified": 1742649964,
"narHash": "sha256-DwOTp7nvfi8mRfuL1escHDXabVXFGT1VlPD1JHrtrco=",
"owner": "cachix",
"repo": "git-hooks.nix",
"rev": "ea26a82dda75bee6783baca6894040c8e6599728",
"rev": "dcf5072734cb576d2b0c59b2ac44f5050b5eac82",
"type": "github"
},
"original": {
@ -468,11 +468,11 @@
"rust-overlay": "rust-overlay"
},
"locked": {
"lastModified": 1742522723,
"narHash": "sha256-q135kPFx+BFfeAn838QfYo0pIJNYK0UFYdNa77EQMuM=",
"lastModified": 1744385517,
"narHash": "sha256-pqiSmtbquoBM3cVHELcXHl8CLT8moXVkwbtc5xd5Br0=",
"owner": "helix-editor",
"repo": "helix",
"rev": "1dee64f7ec304c607afeb7da8db305e6de1d064c",
"rev": "340934db92aea902a61b9f79b9e6f4bd15111044",
"type": "github"
},
"original": {
@ -490,11 +490,11 @@
]
},
"locked": {
"lastModified": 1742014779,
"narHash": "sha256-I6fG1zrfdLFcp/imGZElig0BJO3YU0QEXLgvwWoOpJ8=",
"lastModified": 1744624138,
"narHash": "sha256-PWcxJN2MoWCGC73KI93di2njqrashftWJ6w/fWTvdCM=",
"owner": "hercules-ci",
"repo": "hercules-ci-effects",
"rev": "524637ef84c177661690b924bf64a1ce18072a2c",
"rev": "6eaa505af87705041ef2cf5534f5fc8fe88e94c2",
"type": "github"
},
"original": {
@ -531,11 +531,11 @@
]
},
"locked": {
"lastModified": 1742508854,
"narHash": "sha256-vQQTIl4+slrcu7ftVKNBql9ngBdY0dcYGujdT7zIVp0=",
"lastModified": 1744663884,
"narHash": "sha256-a6QGaZMDM1miK8VWzAITsEPOdmLk+xTPyJSTjVs3WhI=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "da0181819479ddc034a3db9a77ed21ea3bcc0668",
"rev": "d5cdf55bd9f19a3debd55b6cb5d38f7831426265",
"type": "github"
},
"original": {
@ -585,11 +585,11 @@
"treefmt-nix": "treefmt-nix"
},
"locked": {
"lastModified": 1742522630,
"narHash": "sha256-1CQvUAtfVQtbn2n3UhxeEz9WF0WPc/bhMQknDPgpySM=",
"lastModified": 1744675686,
"narHash": "sha256-633XUO9ScY38cZUpgwLo5FylImxDYZvErh54CAfQSsc=",
"owner": "nix-community",
"repo": "neovim-nightly-overlay",
"rev": "e20681475b223c163d83c811a7fc4edf28b32c98",
"rev": "0d7c64d83bf26019292db406f1bfc62fb5f2bc3f",
"type": "github"
},
"original": {
@ -601,11 +601,11 @@
"neovim-src": {
"flake": false,
"locked": {
"lastModified": 1742426477,
"narHash": "sha256-MLlU8s/lVKHfYcl9g8Q4nOl3BVWc627fVII58qtL9d8=",
"lastModified": 1744629547,
"narHash": "sha256-N/1NGAhjLg68kJJpdcccMbOkHZy0YY0HKnhs6TDDWU0=",
"owner": "neovim",
"repo": "neovim",
"rev": "175c09bd660d0cea62288e74cea925a9b15bee55",
"rev": "3341ab07764e9cda95e89880da579ea3ebb7f9b7",
"type": "github"
},
"original": {
@ -642,11 +642,11 @@
]
},
"locked": {
"lastModified": 1742174123,
"narHash": "sha256-pDNzMoR6m1ZSJToZQ6XDTLVSdzIzmFl1b8Pc3f7iV6Y=",
"lastModified": 1744518957,
"narHash": "sha256-RLBSWQfTL0v+7uyskC5kP6slLK1jvIuhaAh8QvB75m4=",
"owner": "nix-community",
"repo": "nix-index-database",
"rev": "2cfb4e1ca32f59dd2811d7a6dd5d4d1225f0955c",
"rev": "4fc9ea78c962904f4ea11046f3db37c62e8a02fd",
"type": "github"
},
"original": {
@ -678,11 +678,11 @@
]
},
"locked": {
"lastModified": 1742217219,
"narHash": "sha256-pLRjj0jTL1TloB0ptEwVF51IJJX8a17dSxg+gqiWb30=",
"lastModified": 1742568034,
"narHash": "sha256-QaMEhcnscfF2MqB7flZr+sLJMMYZPnvqO4NYf9B4G38=",
"owner": "nix-community",
"repo": "nixos-generators",
"rev": "83900d5154d840dfae1e0367c5290f59b9dccf03",
"rev": "42ee229088490e3777ed7d1162cb9e9d8c3dbb11",
"type": "github"
},
"original": {
@ -693,11 +693,11 @@
},
"nixos-hardware": {
"locked": {
"lastModified": 1742376361,
"narHash": "sha256-VFMgJkp/COvkt5dnkZB4D2szVdmF6DGm5ZdVvTUy61c=",
"lastModified": 1744633460,
"narHash": "sha256-fbWE4Xpw6eH0Q6in+ymNuDwTkqmFmtxcQEmtRuKDTTk=",
"owner": "NixOS",
"repo": "nixos-hardware",
"rev": "daaae13dff0ecc692509a1332ff9003d9952d7a9",
"rev": "9a049b4a421076d27fee3eec664a18b2066824cb",
"type": "github"
},
"original": {
@ -708,27 +708,27 @@
},
"nixos-stable": {
"locked": {
"lastModified": 1735563628,
"narHash": "sha256-OnSAY7XDSx7CtDoqNh8jwVwh4xNL/2HaJxGjryLWzX8=",
"lastModified": 1744440957,
"narHash": "sha256-FHlSkNqFmPxPJvy+6fNLaNeWnF1lZSgqVCl/eWaJRc4=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "b134951a4c9f3c995fd7be05f3243f8ecd65d798",
"rev": "26d499fc9f1d567283d5d56fcf367edd815dba1d",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-24.05",
"ref": "nixos-24.11",
"repo": "nixpkgs",
"type": "github"
}
},
"nixos-unstable": {
"locked": {
"lastModified": 1742422364,
"narHash": "sha256-mNqIplmEohk5jRkqYqG19GA8MbQ/D4gQSK0Mu4LvfRQ=",
"lastModified": 1744463964,
"narHash": "sha256-LWqduOgLHCFxiTNYi3Uj5Lgz0SR+Xhw3kr/3Xd0GPTM=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "a84ebe20c6bc2ecbcfb000a50776219f48d134cc",
"rev": "2631b0b7abcea6e640ce31cd78ea58910d31e650",
"type": "github"
},
"original": {
@ -740,11 +740,11 @@
},
"nixos-unstable-small": {
"locked": {
"lastModified": 1742450798,
"narHash": "sha256-lfOAAaX68Ed7R6Iy2nbFAkGj6B8kHBp3nqZhgZjxR5c=",
"lastModified": 1744646643,
"narHash": "sha256-gswCvHOZvcHtY/5fIWYlz/VxMAIUQ6XFRZB/rxlH3OA=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "b64ec1944ea40d9f3920f938e17ed39a9978c6c7",
"rev": "a6165272f0074877f7c0c45fe6eba86d1e18e80d",
"type": "github"
},
"original": {
@ -762,11 +762,11 @@
]
},
"locked": {
"lastModified": 1742481215,
"narHash": "sha256-m7I/2UaGEFOI+Cy0RoADBi10NZt1WD5N3q2jUwPprE4=",
"lastModified": 1744290088,
"narHash": "sha256-/X9XVEl0EiyisNbF5srrxXRSVoRqdwExuqyspYqqEjQ=",
"owner": "nix-community",
"repo": "NixOS-WSL",
"rev": "96d7df91cce0d7cd30d1958fe1aefcb5f9bfced7",
"rev": "60b4904a1390ac4c89e93d95f6ed928975e525ed",
"type": "github"
},
"original": {
@ -777,11 +777,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1742422364,
"narHash": "sha256-mNqIplmEohk5jRkqYqG19GA8MbQ/D4gQSK0Mu4LvfRQ=",
"lastModified": 1744463964,
"narHash": "sha256-LWqduOgLHCFxiTNYi3Uj5Lgz0SR+Xhw3kr/3Xd0GPTM=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "a84ebe20c6bc2ecbcfb000a50776219f48d134cc",
"rev": "2631b0b7abcea6e640ce31cd78ea58910d31e650",
"type": "github"
},
"original": {
@ -793,11 +793,11 @@
},
"nixpkgs-lib": {
"locked": {
"lastModified": 1740877520,
"narHash": "sha256-oiwv/ZK/2FhGxrCkQkB83i7GnWXPPLzoqFHpDD3uYpk=",
"lastModified": 1743296961,
"narHash": "sha256-b1EdN3cULCqtorQ4QeWgLMrd5ZGOjLSLemfa00heasc=",
"owner": "nix-community",
"repo": "nixpkgs.lib",
"rev": "147dee35aab2193b174e4c0868bd80ead5ce755c",
"rev": "e4822aea2a6d1cdd36653c134cacfd64c97ff4fa",
"type": "github"
},
"original": {
@ -808,11 +808,11 @@
},
"nixpkgs-stable": {
"locked": {
"lastModified": 1742388435,
"narHash": "sha256-GheQGRNYAhHsvPxWVOhAmg9lZKkis22UPbEHlmZMthg=",
"lastModified": 1744440957,
"narHash": "sha256-FHlSkNqFmPxPJvy+6fNLaNeWnF1lZSgqVCl/eWaJRc4=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "b75693fb46bfaf09e662d09ec076c5a162efa9f6",
"rev": "26d499fc9f1d567283d5d56fcf367edd815dba1d",
"type": "github"
},
"original": {
@ -824,11 +824,11 @@
},
"nixpkgs-unstable": {
"locked": {
"lastModified": 1742395137,
"narHash": "sha256-WWNNjCSzQCtATpCFEijm81NNG1xqlLMVbIzXAiZysbs=",
"lastModified": 1744536153,
"narHash": "sha256-awS2zRgF4uTwrOKwwiJcByDzDOdo3Q1rPZbiHQg/N38=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "2a725d40de138714db4872dc7405d86457aa17ad",
"rev": "18dd725c29603f582cf1900e0d25f9f1063dbf11",
"type": "github"
},
"original": {
@ -877,11 +877,11 @@
"nuschtosSearch": "nuschtosSearch"
},
"locked": {
"lastModified": 1742488644,
"narHash": "sha256-vXpu7G4aupNCPlv8kAo7Y/jocfSUwglkvNx5cR0XjBo=",
"lastModified": 1744669903,
"narHash": "sha256-gtfLmGx/N+BzIck9sGLIfzETxocYjVKo4gmSeH6zfaY=",
"owner": "nix-community",
"repo": "nixvim",
"rev": "d44b33a1ea1a3e584a8c93164dbe0ba2ad4f3a13",
"rev": "ee9655637cbf898415e09c399bc504180e246d42",
"type": "github"
},
"original": {
@ -897,11 +897,11 @@
"treefmt-nix": "treefmt-nix_3"
},
"locked": {
"lastModified": 1742529237,
"narHash": "sha256-CZIrtAOiweXQexbHh070ddb/1HbH0ymWb7CwkVqzJRo=",
"lastModified": 1744687817,
"narHash": "sha256-HilYogQo2HBCXHfhAr/J96BN2QgbxkHebH+IYt/tZ98=",
"owner": "nix-community",
"repo": "NUR",
"rev": "6b5c2c6a13c89b965ed2d123b70e3e792667ed89",
"rev": "2fbf8d8ecbec6578df27f45ae6f726190433aa2b",
"type": "github"
},
"original": {
@ -920,11 +920,11 @@
]
},
"locked": {
"lastModified": 1741886583,
"narHash": "sha256-sScfYKtxp3CYv5fJcHQDvQjqBL+tPNQqS9yf9Putd+s=",
"lastModified": 1743683223,
"narHash": "sha256-LdXtHFvhEC3S64dphap1pkkzwjErbW65eH1VRerCUT0=",
"owner": "NuschtOS",
"repo": "search",
"rev": "2974bc5fa3441a319fba943f3ca41f7dcd1a1467",
"rev": "56a49ffef2908dad1e9a8adef1f18802bc760962",
"type": "github"
},
"original": {
@ -997,11 +997,11 @@
]
},
"locked": {
"lastModified": 1742406979,
"narHash": "sha256-r0aq70/3bmfjTP+JZs4+XV5SgmCtk1BLU4CQPWGtA7o=",
"lastModified": 1744669848,
"narHash": "sha256-pXyanHLUzLNd3MX9vsWG+6Z2hTU8niyphWstYEP3/GU=",
"owner": "Mic92",
"repo": "sops-nix",
"rev": "1770be8ad89e41f1ed5a60ce628dd10877cb3609",
"rev": "61154300d945f0b147b30d24ddcafa159148026a",
"type": "github"
},
"original": {
@ -1078,11 +1078,11 @@
]
},
"locked": {
"lastModified": 1742370146,
"narHash": "sha256-XRE8hL4vKIQyVMDXykFh4ceo3KSpuJF3ts8GKwh5bIU=",
"lastModified": 1743748085,
"narHash": "sha256-uhjnlaVTWo5iD3LXics1rp9gaKgDRQj6660+gbUU3cE=",
"owner": "numtide",
"repo": "treefmt-nix",
"rev": "adc195eef5da3606891cedf80c0d9ce2d3190808",
"rev": "815e4121d6a5d504c0f96e5be2dd7f871e4fd99d",
"type": "github"
},
"original": {

View File

@ -23,7 +23,7 @@
# ...except we allow other configurations to use other nixpkgs branch so
# that may not matter anyways.
nixos-stable.url = "github:NixOS/nixpkgs/nixos-24.05";
nixos-stable.url = "github:NixOS/nixpkgs/nixos-24.11";
nixos-unstable.url = "github:NixOS/nixpkgs/nixos-unstable";
nixos-unstable-small.url = "github:NixOS/nixpkgs/nixos-unstable-small";
nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixpkgs-unstable";

View File

@ -45,7 +45,10 @@ in pkgs.lib.makeExtensible (self:
inherit (self.builders)
makeXDGMimeAssociationList makeXDGPortalConfiguration makeXDGDesktopEntry
buildHugoSite buildFDSEnv buildDconfDb buildDockerImage;
inherit (self.trivial) countAttrs filterAttrs';
inherit (self.trivial)
countAttrs filterAttrs' bitsToBytes SIPrefixExponent
metricPrefixMultiplier binaryPrefixExponent binaryPrefixMultiplier
parseBytesSizeIntoInt unitsToInt;
inherit (self.data) importYAML renderTeraTemplate renderMustacheTemplate;
inherit (self.fetchers) fetchInternetArchive fetchUgeeDriver;
inherit (self.xdg) getXdgDesktop;

View File

@ -53,7 +53,7 @@ in {
config = lib.mkIf (config.diskoConfigs != [ ]) (let
diskoConfigs =
builtins.map (name: "${partsConfig.setups.configDir}/disko/${name}")
lib.map (name: "${partsConfig.setups.configDir}/disko/${name}")
config.diskoConfigs;
in {
modules = lib.singleton {

View File

@ -283,6 +283,11 @@ in {
# setups are already done so...
home-manager.useUserPackages = lib.mkDefault true;
home-manager.useGlobalPkgs = lib.mkDefault true;
# !!! Welp, this is basically incomplete since we also have
# to consider user-specific specialArgs which is not set.
home-manager.extraSpecialArgs =
partsConfig.setups.home-manager.sharedSpecialArgs;
})
(lib.mkIf hasHomeManagerUsers ({ lib, pkgs, ... }: {
@ -358,7 +363,7 @@ in {
# A quick data structure we can pass through multiple build pipelines.
pureHomeManagerConfigs = let
generatePureConfigs = username: metadata:
lib.listToAttrs (builtins.map (system:
lib.listToAttrs (lib.map (system:
let
nixpkgs = inputs.${metadata.nixpkgs.branch};

View File

@ -283,7 +283,7 @@ in {
cfg.configs;
generatePureConfigs = hostname: metadata:
lib.listToAttrs (builtins.map (system:
lib.listToAttrs (lib.map (system:
let
nixpkgs = inputs.${metadata.nixpkgs.branch};
@ -344,7 +344,7 @@ in {
extraModules = cfg.sharedModules ++ metadata.modules;
});
images = builtins.map buildImage metadata.formats;
images = lib.map buildImage metadata.formats;
in lib.listToAttrs images;
in lib.concatMapAttrs generateImages validImages;
};

View File

@ -254,7 +254,7 @@ in {
modules = cfg.sharedModules ++ cfg.standaloneConfigModules
++ metadata.modules ++ [{ package = neovimPackage; }];
});
nixvimConfigs = builtins.map mkNixvimConfig' metadata.components;
nixvimConfigs = lib.map mkNixvimConfig' metadata.components;
in lib.listToAttrs nixvimConfigs;
in lib.concatMapAttrs generateNixvimConfigs validConfigs;
in {

View File

@ -4,21 +4,11 @@ let
partsConfig = config;
cfg = config.setups.wrapper-manager;
mkWrapperManagerPackage = { pkgs, src, modules ? [ ], specialArgs ? { }, }:
let wrapperManagerEntrypoint = import src { };
in wrapperManagerEntrypoint.lib.build { inherit pkgs modules specialArgs; };
mkWrapperManagerPackage = { pkgs, wrapperManagerBranch ? "wrapper-manager-fds", modules ? [ ], specialArgs ? { }, }:
inputs.${wrapperManagerBranch}.lib.build { inherit pkgs modules specialArgs; };
wrapperManagerIntegrationModule = { name, config, lib, ... }: {
options.wrapper-manager = {
src = lib.mkOption {
type = lib.types.path;
default = ../../../subprojects/wrapper-manager-fds;
description = ''
The path of the wrapper-manager-fds to be used to properly initialize
to the environment.
'';
};
additionalModules = lib.mkOption {
type = with lib.types; listOf deferredModule;
default = [ ];
@ -28,6 +18,15 @@ let
'';
};
branch = lib.mkOption {
type = lib.types.str;
default = "wrapper-manager-fds";
example = "wrapper-manager-fds-stable";
description = ''
Name of the flake input containing the wrapper-manager-fds dependency.
'';
};
packages = lib.mkOption {
type = with lib.types;
attrsOf (submodule {
@ -137,7 +136,15 @@ in {
({ config, lib, ... }: {
config = lib.mkIf (config.wrapper-manager.packages != { }) {
modules =
[ (import config.wrapper-manager.src { }).nixosModules.default ];
[
inputs.${config.wrapper-manager.branch}.nixosModules.default
{
# Welp, it's not complete since each package will not its
# package-specific specialArgs.
wrapper-manager.extraSpecialArgs = cfg.sharedSpecialArgs;
}
];
};
})
]);
@ -150,7 +157,15 @@ in {
({ config, lib, ... }: {
config = lib.mkIf (config.wrapper-manager.packages != { }) {
modules =
[ (import config.wrapper-manager.src { }).homeModules.default ];
[
inputs.${config.wrapper-manager.branch}.homeModules.default
{
# Welp, it's not complete since each package will not its
# package-specific specialArgs.
wrapper-manager.extraSpecialArgs = cfg.sharedSpecialArgs;
}
];
};
})
]);
@ -181,7 +196,7 @@ in {
in mkWrapperManagerPackage {
inherit pkgs;
inherit (metadata) specialArgs;
inherit (metadata.wrapper-manager) src;
wrapperManagerBranch = metadata.wrapper-manager.branch;
modules = cfg.sharedModules ++ cfg.standaloneModules
++ metadata.modules;
}) validWrapperManagerConfigs;

View File

@ -6,7 +6,6 @@
./programs/borgmatic.nix
./programs/diceware.nix
./programs/nushell.nix
./programs/sesh.nix
./programs/python.nix
./services/archivebox.nix
./services/borgbackup.nix

View File

@ -7,7 +7,7 @@ let
# `$out/share/pop-launcher`.
pluginsDir = pkgs.symlinkJoin {
name = "pop-launcher-plugins-system";
paths = builtins.map (p: "${p}/share/pop-launcher") cfg.plugins;
paths = lib.map (p: "${p}/share/pop-launcher") cfg.plugins;
};
in {
options.programs.pop-launcher = {

View File

@ -1,62 +0,0 @@
{ config, lib, pkgs, ... }:
let
cfg = config.programs.sesh;
settingsFormat = pkgs.formats.toml { };
in
{
# TODO: Add tmux integrations.
options.programs.sesh = {
enable = lib.mkEnableOption "sesh, a smart session manager";
package = lib.mkPackageOption pkgs "sesh" { };
settings = lib.mkOption {
type = settingsFormat.type;
default = { };
description = ''
Program settings to be generated at
{file}`$XDG_CONFIG_HOME/sesh/sesh.toml`.
'';
example = lib.literalExpression ''
{
default_session = {
startup_command = "nvim -c ':Telescope find_files'";
preview_command = "eza --all --git --icons --color=always {}";
};
session = [
{
name = "Downloads";
path = config.xdg.userDirs.downloads;
startup_command = "ls";
}
{
name = "tmux config";
path = "~/c/dotfiles/tmux_config";
startup_command = "nvim tmux.conf";
preview_command = "bat --color=always ~/c/dotfiles/.config/tmux/tmux.conf";
}
];
}
'';
};
};
config = lib.mkIf cfg.enable (lib.mkMerge [
{
warnings = lib.optionals (!config.programs.zoxide.enable || !config.programs.fzf.enable) ''
You haven't enabled Zoxide nor fzf which is recommended to use alongside sesh.
'';
home.packages = [ cfg.package ];
}
(lib.mkIf (cfg.settings != { }) {
xdg.configFile."sesh/sesh.toml".source =
settingsFormat.generate "sesh-user-settings" cfg.settings;
})
]);
}

View File

@ -11,3 +11,8 @@ show-hidden = true
[re/sonny/Junction]
show-app-names = true
[org/gnome/epiphany/web]
remember-passwords = true
enable-user-css = true
enable-user-js = true

View File

@ -29,6 +29,7 @@ clock-menu-position = 1
notification-banner-position = 2
ripple-box = false
window-demands-attention-focus = true
invert-calendar-column-items = true
workspace-wrap-around = false
# The lovely tool if you're a mouse handler.
@ -85,18 +86,21 @@ folder-order-position = 'start'
cycle-height-steps = [0.38195, 0.5, 0.61804, 0.75]
cycle-width-steps = [0.38195, 0.5, 0.61804, 0.75]
disable-topbar-styling = true
edge-preview-click-enable = false
horizontal-margin = 0
override-hot-corner = false
restore-workspaces-only-on-primary = true
show-focus-mode-icon = false
show-window-position-bar = false
show-workspace-indicator = false
show-workspace-indicator = true
show-open-position-icon = false
use-default-background = true
vertical-margin = 0
vertical-margin-bottom = 0
window-gap = 10
# The shortcuts are closely tied to my shell keybindings to make it easier to follow.
# The shortcuts are closely tied to my shell keybindings to make it easier to
# follow.
[org/gnome/shell/extensions/paperwm/keybindings]
new-window = ['<Super>Return']
close-window = ['<Super>q', '<Alt>F4']

View File

@ -8,7 +8,41 @@ let
[
# The application menu.
junction
# The application launcher for your one-handed keyboard handling (the
# other is in the mouse, if you're thinking something else).
kando
(makeDesktopItem {
name = "kando";
desktopName = "Kando";
destination = "/etc/xdg/autostart";
exec = "${lib.getExe kando} --gapplication-service";
icon = "kando";
genericName = "Pie Menu";
})
# Valent...ines 'tis season to share... phone data or something.
valent
];
# All of the shell extensions plus their required extensions.
shellExtensions' = cfg.shellExtensions ++ (with pkgs.gnomeExtensions; [
valent
kando-integration
paperwm
]);
workspaceSubmodule = { name, ... }: {
freeformType = with lib.types; attrsOf anything;
options = {
name = lib.mkOption {
type = lib.types.str;
default = name;
description = "The formal name of the workspace.";
example = "Software development";
};
};
};
in {
options.workflows.enable =
lib.mkOption { type = with lib.types; listOf (enum [ workflowName ]); };
@ -17,9 +51,9 @@ in {
shellExtensions = lib.mkOption {
type = with lib.types; listOf package;
description = ''
A list of GNOME Shell extensions to be included. Take note the package
should contain `passthru.extensionUuid` to be used for enabling the
extensions.
A list of extra GNOME Shell extensions to be included. Take note the
package should contain `passthru.extensionUuid` to be used for enabling
the extensions.
'';
default = with pkgs.gnomeExtensions; [
alphabetical-app-grid
@ -28,15 +62,11 @@ in {
burn-my-windows
caffeine
fly-pie
gsconnect
just-perfection
kando-integration
kimpanel
light-style
paperwm
runcat
windownavigator
valent
];
example = lib.literalExpression ''
with pkgs.gnomeExtensions; [
@ -64,16 +94,17 @@ in {
gnome-frog # Graphical OCR with Tesseract that I always wanted.
gnome-solanum # Cute little matodor timers.
dconf-editor # A saner version of Windows registry.
kando
gnome-boxes # Virtual machines, son.
mission-center # It is your duty to monitor your system.
polari # Your gateway to one of the most hidden and cobweb-ridden parts of the internet. ;)
gradience # Make it rain!
handbrake # Take a break from those custom ffmpeg conversion scripts.
shortwave # Yer' humble internet radio.
symbolic-preview # Them symbols... it's important.
gtranslator # It's not a Google translator app, I'll tell you that.
tangram # Your social media manager, probably.
ymuse # Simple MPD client.
valent # ...ines 'tis season to share... phone data or something.
ymuse # I muse with a simple MPD client.
gnome-secrets # Feel the secureness, O Keeper of Secrets.
gnome-backgrounds # Default backgrounds.
@ -85,6 +116,7 @@ in {
nautilus-annotations
nautilus-open-any-terminal
# Extra background images.
fedora-backgrounds.f38
fedora-backgrounds.f37
];
@ -111,7 +143,7 @@ in {
"app.drey.Dialect"
"com.belmoussaoui.Authenticator"
];
apply = builtins.map (x: "${x}.desktop");
apply = lib.map (x: "${x}.desktop");
};
disableNotifications = lib.mkOption {
@ -131,6 +163,69 @@ in {
"thunderbird"
];
};
paperwm = {
workspaces = lib.mkOption {
type = with lib.types; attrsOf (submodule workspaceSubmodule);
default = { };
description = ''
A set of workspaces and their properties for PaperWM.
'';
example = lib.literalExpression ''
{
media = {
name = "Media";
index = lib.gvariant.mkInt32 0;
color = "rgb(98,160,234)";
};
dev = {
name = "Software dev't";
index = lib.gvariant.mkInt32 1;
color = "#99c1f1";
};
}
'';
};
enablePresetWorkspaces = lib.mkEnableOption "preset workspace options for PaperWM" // {
default = true;
};
enableStaticWorkspace = lib.mkEnableOption "static workspaces configuration for PaperWM";
winprops = lib.mkOption {
type = let
inherit (lib.types) listOf;
settingsFormat = pkgs.formats.json { };
in with lib.types; listOf (settingsFormat.type);
description = ''
A list of default winprops settings for PaperWM.
'';
default = [ ];
example = lib.literalExpression ''
[
{
wm_class = "Firefox";
preferredWidth = "100%";
spaceIndex = 0;
}
{
wm_class = "org.wezfurlong.wezterm";
preferredWidth = "100%";
spaceIndex = 1;
}
{
wm_class = "Spotify";
title = "Spotify Premium";
spaceIndex = 0;
}
]
'';
};
};
};
config = lib.mkIf (lib.elem workflowName config.workflows.enable) {
@ -140,6 +235,39 @@ in {
desktopManager.gnome.enable = true;
};
workflows.workflows.a-happy-gnome.paperwm.workspaces =
lib.mkIf cfg.paperwm.enablePresetWorkspaces {
media = {
name = "Media";
index = lib.gvariant.mkInt32 0;
color = "#99c1f1"; # GNOME Blue 1
};
research = {
name = "Research";
index = lib.gvariant.mkInt32 1;
color = "#613583"; # GNOME Purple 5
};
creative = {
name = "Creative work";
index = lib.gvariant.mkInt32 2;
color = "#f8e45c"; # GNOME Yellow 2
};
dev = {
name = "Software dev't";
index = lib.gvariant.mkInt32 3;
color = "#1c71d8"; # GNOME Blue 4
};
work = {
name = "Work";
index = lib.gvariant.mkInt32 4;
color = "#ff7800"; # GNOME Orange 3
};
};
# All GNOME-related additional options.
services.gnome = {
core-os-services.enable = true;
@ -153,12 +281,6 @@ in {
# It makes Nix store directory read/write so no...
services.packagekit.enable = false;
# Since we're using KDE Connect, we'll have to use gsconnect.
programs.kdeconnect = {
enable = true;
package = pkgs.gnomeExtensions.gsconnect;
};
# Bring all of the dconf keyfiles in there.
programs.dconf = {
enable = true;
@ -176,14 +298,14 @@ in {
};
"org/gnome/shell" = {
enabled-extensions =
builtins.map (p: p.extensionUuid) cfg.shellExtensions;
lib.map (p: p.extensionUuid) shellExtensions';
};
}
# Disable all of the messenger's notification (only the annoying
# ones).
(lib.pipe cfg.disableNotifications [
(builtins.map (app:
(lib.map (app:
lib.nameValuePair
"org/gnome/desktop/notifications/application/${app}" {
show-banners = false;
@ -191,10 +313,40 @@ in {
lib.listToAttrs
])
(lib.mkIf (cfg.paperwm.winprops != [ ]) {
"org/gnome/shell/extensions/paperwm".winprops =
lib.map lib.strings.toJSON cfg.winprops;
})
(lib.mkIf (cfg.paperwm.workspaces != { }) (
let
mkWorkspaceConfig = name: value:
lib.nameValuePair "org/gnome/shell/extensions/paperwm/workspaces/${name}" value;
workspaces = lib.attrNames cfg.paperwm.workspaces;
in
{
"org/gnome/shell/extensions/paperwm/workspaces".list = workspaces;
}
// lib.mapAttrs' mkWorkspaceConfig cfg.paperwm.workspaces
))
(lib.mkIf cfg.paperwm.enableStaticWorkspace {
"org/gnome/mutter/dynamic-workspaces" = false;
"org/gnome/desktop/wm/preferences/num-workspaces" =
let
workspaces = lib.attrNames cfg.paperwm.workspaces;
in
lib.gvariant.mkInt32 (lib.length workspaces);
})
];
};
};
xdg.autostart.enable = true;
xdg.mime = {
enable = true;
desktops.gnome.defaultApplications = {
@ -210,7 +362,7 @@ in {
};
};
environment.systemPackages = requiredApps ++ cfg.shellExtensions
environment.systemPackages = requiredApps ++ shellExtensions'
++ cfg.extraApps;
};
}

View File

@ -158,7 +158,7 @@ in {
requiredComponents =
let
gsdComponents =
builtins.map
lib.map
(gsdc: "org.gnome.SettingsDaemon.''${gsdc}")
[
"A11ySettings"
@ -175,7 +175,7 @@ in {
systemd.targetUnit = {
requires = [ "org.gnome.Shell.target" ];
wants = builtins.map (c: "''${c}.target") (lib.lists.remove "org.gnome.Shell" sessionCfg.requiredComponents);
wants = lib.map (c: "''${c}.target") (lib.lists.remove "org.gnome.Shell" sessionCfg.requiredComponents);
};
};

View File

@ -67,7 +67,7 @@ in {
default = [ config.fullName ];
defaultText = "[ <session>.fullName ]";
apply = names:
builtins.map (name:
lib.map (name:
if (lib.elem name validDesktopNames) || (lib.hasPrefix "X-" name) then
name
else
@ -222,7 +222,7 @@ in {
systemd.targetUnit = {
overrideStrategy = lib.mkForce "asDropin";
wants = lib.mkDefault
(builtins.map (c: "${c}.target") config.requiredComponents);
(lib.map (c: "${c}.target") config.requiredComponents);
};
settings."GNOME Session" = {

View File

@ -7,7 +7,7 @@ let
# `$out/share/pop-launcher`.
pluginsDir = pkgs.symlinkJoin {
name = "pop-launcher-plugins-system";
paths = builtins.map (p: "${p}/share/pop-launcher") cfg.plugins;
paths = lib.map (p: "${p}/share/pop-launcher") cfg.plugins;
};
in {
options.programs.pop-launcher = {

View File

@ -70,7 +70,7 @@ in {
default = [ config.fullName ];
defaultText = "[ <session>.fullName ]";
apply = names:
builtins.map (name:
lib.map (name:
if (lib.elem name validDesktopNames) || (lib.hasPrefix "X-" name) then
name
else

View File

@ -110,8 +110,8 @@ in {
config.extraArgs = let inherit (config) policies;
in lib.optionals (policies.level != null)
[ "--${policies.level}=${name}" ]
++ builtins.map (rule: "--call=${name}=${rule}") policies.call
++ builtins.map (rule: "--broadcast=${name}=${rule}") policies.broadcast;
++ lib.map (rule: "--call=${name}=${rule}") policies.call
++ lib.map (rule: "--broadcast=${name}=${rule}") policies.broadcast;
};
bubblewrapModule = { config, lib, pkgs, name, ... }:

View File

@ -235,13 +235,13 @@ in {
(lib.mkIf (submoduleCfg.sharedNixPaths != [ ]) {
wraparound.bubblewrap.extraArgs =
let closurePaths = getClosurePaths submoduleCfg.sharedNixPaths;
in builtins.map (p: "--ro-bind ${p} ${p}") closurePaths;
in lib.map (p: "--ro-bind ${p} ${p}") closurePaths;
})
(lib.mkIf submoduleCfg.dbus.enable {
wraparound.bubblewrap.dbus.filter.bwrapArgs =
let closurePaths = getClosurePaths submoduleCfg.sharedNixPaths;
in builtins.map (p: "--ro-bind ${p} ${p}") closurePaths;
in lib.map (p: "--ro-bind ${p} ${p}") closurePaths;
})
]);
};

View File

@ -2,16 +2,16 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "fastn";
version = "0.4.99";
version = "0.4.100";
src = fetchFromGitHub {
owner = "fastn-stack";
repo = finalAttrs.pname;
rev = finalAttrs.version;
hash = "sha256-oomlLE0lha1b9N7CvQKsvlvcLZ8+f5aWjTWqzzgBDUk=";
hash = "sha256-4tON3VXFUs8gSRKmWk9eOwuP43DhMzchnve5ZpVpSbg=";
};
cargoHash = "sha256-6WXhxHDqlPJLBgG2VkEQgMV58s6MiAAhQkLQOPBtqpo=";
cargoHash = "sha256-HfzWaE5/j5IGz+n3EsQh8iYhKWZV1d40UKKMy2yY6D4=";
cargoBuildFeatures = [ "edition2024" ];
useFetchCargoVendor = true;

View File

@ -3,6 +3,8 @@
with pkgs; {
cloud = callPackage ./cloud.nix { };
creatives = callPackage ./creatives.nix { };
dotnet_8 = callPackage ./dotnet.nix { dotnet-sdk = dotnet-sdk_8; dotnet-runtime = dotnet-runtime_8; };
dotnet_9 = callPackage ./dotnet.nix { dotnet-sdk = dotnet-sdk_9; dotnet-runtime = dotnet-runtime_9; };
flatpak = callPackage ./flatpak.nix { };
gnu = callPackage ./gnu.nix { };
gnome = callPackage ./gnome.nix { };

10
shells/dotnet.nix Normal file
View File

@ -0,0 +1,10 @@
{ lib, dotnet-runtime, dotnet-sdk, mkShell }:
mkShell {
packages = [
dotnet-runtime
dotnet-sdk
];
inputsFrom = [ dotnet-sdk ];
}

View File

@ -0,0 +1,13 @@
{ lib, pkgs, ... }:
{
# Add all of the environment configurations here or split them up into
# individual modules, whichever you prefer.
setups.nixos.configs = { };
setups.home-manager.configs = { };
setups.wrapper-manager.configs = { };
setups.nixvim.configs = { };
}

View File

@ -0,0 +1,43 @@
{
description = "foodogsquared's private repo";
nixConfig = {
extra-substituters =
"https://nix-community.cachix.org https://foo-dogsquared.cachix.org";
extra-trusted-public-keys =
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs= foo-dogsquared.cachix.org-1:/2fmqn/gLGvCs5EDeQmqwtus02TUmGy0ZlAEXqRE70E=";
commit-lockfile-summary = "flake.lock: update inputs";
};
inputs = {
nixpkgs.follows = "nixpkgs-unstable";
nixpkgs-stable.url = "github:NixOS/nixpkgs/nixos-24.11";
nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
home-manager.follows = "home-manager-unstable";
home-manager-stable.url = "github:nix-community/home-manager/release-24.05";
home-manager-stable.inputs.nixpkgs.follows = "nixpkgs";
home-manager-unstable.url = "github:nix-community/home-manager";
home-manager-unstable.inputs.nixpkgs.follows = "nixpkgs";
# My custom modules.
fds-modules.url = "github:foo-dogsquared/nixos-config";
# Make a default.nix compatible stuff. Take note, we're giving this a
# unique suffix since there are other flake inputs that uses the same flake
# and we want our `default.nix` to refer to our version.
flake-compat-fds.url =
"https://flakehub.com/f/edolstra/flake-compat/1.tar.gz";
};
outputs = inputs:
inputs.flake-parts.lib.mkFlake { inherit inputs; } {
systems = [ "x86_64-linux" "aarch64-linux" ];
imports = [
inputs.fds-modules.flakeModules.default
inputs.fds-modules.flakeModules.baseSetupsConfig
./configs/flake-parts
];
};
};