110 Commits

Author SHA1 Message Date
db6049f8ef Wallpapers 2023-12-11 23:33:26 +00:00
cad9ab738d flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/b4372c4924d9182034066c823df76d6eaf1f4ec4' (2023-12-07)
  → 'github:NixOS/nixpkgs/781e2a9797ecf0f146e81425c822dca69fe4a348' (2023-12-10)
2023-12-11 18:32:45 +00:00
88c3e1305c Format hosts hardware-configuration.nix 2023-12-11 18:31:55 +00:00
3f8c817418 Remove custom lib usage 2023-12-10 23:53:54 +00:00
0d015ac418 Refactor sound card config 2023-12-10 19:45:31 +00:00
8380969c95 Remove FC from Studio 1824c channel map 2023-12-10 18:44:42 +00:00
9c97905bb6 flake.lock: Update
Flake lock file updates:

• Updated input 'firefox-gnome-theme':
    'github:rafaelmardojai/firefox-gnome-theme/ec9421f82d922b7293ffd45a47f7abdee80038c6' (2023-11-30)
  → 'github:rafaelmardojai/firefox-gnome-theme/d2e6cfdd63651ae8168e5905d94138f406580dd6' (2023-12-09)
• Updated input 'home-manager':
    'github:nix-community/home-manager/aeb2232d7a32530d3448318790534d196bf9427a' (2023-11-24)
  → 'github:nix-community/home-manager/6761b8188b860f374b457eddfdb05c82eef9752f' (2023-12-10)
2023-12-10 11:17:41 +00:00
f6b9fb1429 Fix formatting 2023-12-08 22:38:26 +00:00
7e591ee7d5 Add GNOME rounded window corner extension 2023-12-08 21:06:58 +00:00
8ddc5c9269 Enable Wayland for vscode, add config 2023-12-08 21:06:23 +00:00
91103dc0e7 Enable vscode on odyssey 2023-12-08 20:50:48 +00:00
1c2ca078c8 Add vscode extensions 2023-12-08 20:50:27 +00:00
f98d1d546f Update mutter triple buffering overlay 2023-12-08 13:28:21 +00:00
55cf784f56 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/5de0b32be6e85dc1a9404c75131316e4ffbc634c' (2023-12-01)
  → 'github:NixOS/nixpkgs/b4372c4924d9182034066c823df76d6eaf1f4ec4' (2023-12-07)
• Updated input 'thunderbird-gnome-theme':
    'github:rafaelmardojai/thunderbird-gnome-theme/a899ca12204d19f4834fbd092aa5bb05dc4bd127' (2023-11-06)
  → 'github:rafaelmardojai/thunderbird-gnome-theme/966e9dd54bd2ce9d36d51cd6af8c3bac7a764a68' (2023-12-06)
2023-12-08 13:20:31 +00:00
5c591c0a06 90 day log retention 2023-12-03 22:40:25 +00:00
1aab626f17 Setup backups on odyssey 2023-12-03 22:25:13 +00:00
bbf835d127 Add secrets with agenix 2023-12-03 21:59:44 +00:00
16a1e0dd7f flake.lock: Update
Flake lock file updates:

• Updated input 'firefox-gnome-theme':
    'github:rafaelmardojai/firefox-gnome-theme/538698cc08dc031facc7983ded3f1d76e658e702' (2023-11-30)
  → 'github:rafaelmardojai/firefox-gnome-theme/ec9421f82d922b7293ffd45a47f7abdee80038c6' (2023-11-30)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/50aa30a13c4ab5e7ba282da460a3e3d44e9d0eb3' (2023-11-29)
  → 'github:NixOS/nixpkgs/5de0b32be6e85dc1a9404c75131316e4ffbc634c' (2023-12-01)
2023-12-02 00:17:15 +00:00
c8d0c08ada Move fragments and mission-center to user 2023-11-30 22:48:18 +00:00
6cd398b9f7 Remove BlackBox terminal 2023-11-30 22:20:04 +00:00
9af6782311 Revert "Use open source NVIDIA driver"
This reverts commit 65a55e1695.
2023-11-30 22:05:13 +00:00
65a55e1695 Use open source NVIDIA driver 2023-11-30 22:01:44 +00:00
ecef5d13a7 Add mission-center 2023-11-30 22:01:35 +00:00
9794d5eb0c Disable unused extensions 2023-11-30 22:01:17 +00:00
8562ccd5fc flake.lock: Update
Flake lock file updates:

• Updated input 'firefox-gnome-theme':
    'github:rafaelmardojai/firefox-gnome-theme/1208b24818388416e5376967b8e89a1b13d1bf31' (2023-11-22)
  → 'github:rafaelmardojai/firefox-gnome-theme/538698cc08dc031facc7983ded3f1d76e658e702' (2023-11-30)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/7c4c20509c4363195841faa6c911777a134acdf3' (2023-11-28)
  → 'github:NixOS/nixpkgs/50aa30a13c4ab5e7ba282da460a3e3d44e9d0eb3' (2023-11-29)
2023-11-30 16:22:25 +00:00
b3ef72d975 Upgrade to NixOS 23.11 2023-11-29 22:58:57 +00:00
cf40b4d4d3 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/1216a5ba22a93a4a3a3bfdb4bff0f4727c576fcc' (2023-11-24)
  → 'github:NixOS/nixpkgs/5b528f99f73c4fad127118a8c1126b5e003b01a9' (2023-11-27)
2023-11-29 20:05:42 +00:00
f64ed2bb24 Enable rounded corners in Firefox 2023-11-26 19:21:43 +00:00
f9b577f559 flake.lock: Update
Flake lock file updates:

• Updated input 'firefox-gnome-theme':
    'github:rafaelmardojai/firefox-gnome-theme/5e796d330d3765798d32b361638b048fda1a1450' (2023-11-21)
  → 'github:rafaelmardojai/firefox-gnome-theme/1208b24818388416e5376967b8e89a1b13d1bf31' (2023-11-22)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/0c5678df521e1407884205fe3ce3cf1d7df297db' (2023-11-19)
  → 'github:NixOS/nixpkgs/1216a5ba22a93a4a3a3bfdb4bff0f4727c576fcc' (2023-11-24)
• Removed input 'sops-nix'
• Removed input 'sops-nix/nixpkgs'
• Removed input 'sops-nix/nixpkgs-stable'
2023-11-25 12:37:56 +00:00
b3882912ec flake.lock: Update
Flake lock file updates:

• Updated input 'firefox-gnome-theme':
    'github:rafaelmardojai/firefox-gnome-theme/1c32013cdbe17406de496cdf5f6899b84c4bbfed' (2023-11-10)
  → 'github:rafaelmardojai/firefox-gnome-theme/5e796d330d3765798d32b361638b048fda1a1450' (2023-11-21)
2023-11-21 20:13:35 +00:00
d78db40991 Weekly garbage collection 2023-11-20 14:53:36 +00:00
07362a0c81 flake.lock: Update
Flake lock file updates:

• Updated input 'home-manager':
    'github:nix-community/home-manager/04bac349d585c9df38d78e0285b780a140dc74a4' (2023-11-12)
  → 'github:nix-community/home-manager/28535c3a34d79071f2ccb68671971ce0c0984d7e' (2023-11-19)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/9fb122519e9cd465d532f736a98c1e1eb541ef6f' (2023-11-16)
  → 'github:NixOS/nixpkgs/0c5678df521e1407884205fe3ce3cf1d7df297db' (2023-11-19)
2023-11-20 10:06:26 +00:00
7865add65e Use default lock shortcut 2023-11-19 21:19:06 +00:00
9471a92387 Disable PaperWM 2023-11-19 21:17:59 +00:00
a4f0cabeda Add fragments app 2023-11-19 09:52:27 +00:00
f581772723 Add pano extension 2023-11-19 09:48:50 +00:00
357c3e8c10 Enable lxd on odyssey 2023-11-17 22:39:57 +00:00
e113a6b280 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/d4b5a67bbe9ef750bd2fdffd4cad400dd5553af8' (2023-11-14)
  → 'github:NixOS/nixpkgs/9fb122519e9cd465d532f736a98c1e1eb541ef6f' (2023-11-16)
2023-11-17 17:30:29 +00:00
920df723ae flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/da4024d0ead5d7820f6bd15147d3fe2a0c0cec73' (2023-11-10)
  → 'github:NixOS/nixpkgs/d4b5a67bbe9ef750bd2fdffd4cad400dd5553af8' (2023-11-14)
2023-11-16 21:19:06 +00:00
ba2dd42e3e flake.lock: Update
Flake lock file updates:

• Updated input 'home-manager':
    'github:nix-community/home-manager/07682fff75d41f18327a871088d20af2710d4744' (2023-09-19)
  → 'github:nix-community/home-manager/04bac349d585c9df38d78e0285b780a140dc74a4' (2023-11-12)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/41de143fda10e33be0f47eab2bfe08a50f234267' (2023-11-06)
  → 'github:NixOS/nixpkgs/da4024d0ead5d7820f6bd15147d3fe2a0c0cec73' (2023-11-10)
2023-11-13 10:44:00 +00:00
7ac7d21476 Patch snd_usb_audio and add 1824c PipeWire config 2023-11-12 23:13:23 +00:00
bef12cd228 Remap lock screen shortcut 2023-11-11 16:24:04 +00:00
6536bb12d1 Correct PaperWM extension UUID 2023-11-11 12:32:54 +00:00
972af5d5e5 Disable conflicting extensions 2023-11-10 21:31:45 +00:00
92c6b765cf Configure PaperWM 2023-11-10 20:09:56 +00:00
7e81e16301 Add Fly-Pie extension 2023-11-10 19:27:21 +00:00
44cc7406f6 Add PaperWM extension 2023-11-10 18:47:35 +00:00
9cc4470502 flake.lock: Update
Flake lock file updates:

• Updated input 'firefox-gnome-theme':
    'github:rafaelmardojai/firefox-gnome-theme/3cb70833903a560ac22f49d278e7ce955bf8395e' (2023-10-26)
  → 'github:rafaelmardojai/firefox-gnome-theme/1c32013cdbe17406de496cdf5f6899b84c4bbfed' (2023-11-10)
2023-11-10 18:44:19 +00:00
2df8227ef9 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/aeefe2054617cae501809b82b44a8e8f7be7cc4b' (2023-11-05)
  → 'github:NixOS/nixpkgs/41de143fda10e33be0f47eab2bfe08a50f234267' (2023-11-06)
• Updated input 'thunderbird-gnome-theme':
    'github:rafaelmardojai/thunderbird-gnome-theme/99620f1353689c9ac0a3fc389306faf2b9137fa8' (2023-09-23)
  → 'github:rafaelmardojai/thunderbird-gnome-theme/a899ca12204d19f4834fbd092aa5bb05dc4bd127' (2023-11-06)
2023-11-08 20:55:56 +00:00
2c66879af9 Enable flatpak in GNOME 2023-11-05 20:03:01 +00:00
20004881bc flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/1a3c95e3b23b3cdb26750621c08cc2f1560cb883' (2023-10-27)
  → 'github:NixOS/nixpkgs/aeefe2054617cae501809b82b44a8e8f7be7cc4b' (2023-11-05)
2023-11-05 20:00:11 +00:00
3d88f00fea Enable aarch64 emulation on odyssey 2023-10-29 20:47:17 +00:00
9df97fe586 Enable blender on odyssey 2023-10-29 20:46:39 +00:00
64e9c594a4 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/60b9db998f71ea49e1a9c41824d09aa274be1344' (2023-10-26)
  → 'github:NixOS/nixpkgs/1a3c95e3b23b3cdb26750621c08cc2f1560cb883' (2023-10-27)
2023-10-29 19:57:45 +00:00
caf0883698 flake.lock: Update
Flake lock file updates:

• Updated input 'firefox-gnome-theme':
    'github:rafaelmardojai/firefox-gnome-theme/21b40dad22414c3e955293b17f791c1a8d00bd53' (2023-10-05)
  → 'github:rafaelmardojai/firefox-gnome-theme/3cb70833903a560ac22f49d278e7ce955bf8395e' (2023-10-26)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/5550a85a087c04ddcace7f892b0bdc9d8bb080c8' (2023-10-21)
  → 'github:NixOS/nixpkgs/60b9db998f71ea49e1a9c41824d09aa274be1344' (2023-10-26)
2023-10-27 19:31:38 +01:00
9bba2532aa flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/80c1aab725151632ddc2a20caeb914e76dd0673c' (2023-10-18)
  → 'github:NixOS/nixpkgs/5550a85a087c04ddcace7f892b0bdc9d8bb080c8' (2023-10-21)
2023-10-23 17:41:15 +01:00
74c4d3ebc7 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/898cb2064b6e98b8c5499f37e81adbdf2925f7c5' (2023-10-13)
  → 'github:NixOS/nixpkgs/80c1aab725151632ddc2a20caeb914e76dd0673c' (2023-10-18)
2023-10-20 17:20:38 +01:00
aa51563f3c flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/bd1cde45c77891214131cbbea5b1203e485a9d51' (2023-10-11)
  → 'github:NixOS/nixpkgs/898cb2064b6e98b8c5499f37e81adbdf2925f7c5' (2023-10-13)
2023-10-16 17:30:57 +01:00
8cadcd8edb flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/5a237aecb57296f67276ac9ab296a41c23981f56' (2023-10-07)
  → 'github:NixOS/nixpkgs/bd1cde45c77891214131cbbea5b1203e485a9d51' (2023-10-11)
2023-10-14 09:43:32 +01:00
77e0a83c04 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/8a4c17493e5c39769f79117937c79e1c88de6729' (2023-10-03)
  → 'github:NixOS/nixpkgs/5a237aecb57296f67276ac9ab296a41c23981f56' (2023-10-07)
2023-10-09 19:25:19 +01:00
8c2959be2b Add vitals GNOME extension 2023-10-07 15:50:18 +01:00
6933ed941e flake.lock: Update
Flake lock file updates:

• Updated input 'firefox-gnome-theme':
    'github:rafaelmardojai/firefox-gnome-theme/ecac4b99d490e57af2c0d5ffa89b5923ca838a35' (2023-10-01)
  → 'github:rafaelmardojai/firefox-gnome-theme/21b40dad22414c3e955293b17f791c1a8d00bd53' (2023-10-05)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/32dcb45f66c0487e92db8303a798ebc548cadedc' (2023-09-30)
  → 'github:NixOS/nixpkgs/8a4c17493e5c39769f79117937c79e1c88de6729' (2023-10-03)
2023-10-06 09:24:22 +01:00
fc440c6059 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/5cfafa12d57374f48bcc36fda3274ada276cf69e' (2023-09-27)
  → 'github:NixOS/nixpkgs/32dcb45f66c0487e92db8303a798ebc548cadedc' (2023-09-30)
2023-10-01 21:17:09 +01:00
f2c1acb36c flake.lock: Update
Flake lock file updates:

• Updated input 'firefox-gnome-theme':
    'github:rafaelmardojai/firefox-gnome-theme/5f531cf8aacfedd42ad43b4d891284ae326c6989' (2023-09-28)
  → 'github:rafaelmardojai/firefox-gnome-theme/ecac4b99d490e57af2c0d5ffa89b5923ca838a35' (2023-10-01)
2023-10-01 09:36:29 +01:00
51330323b0 Fix thunderbird-gnome-theme install path 2023-09-30 12:11:25 +01:00
02a7b985bd flake.lock: Update
Flake lock file updates:

• Updated input 'firefox-gnome-theme':
    'github:rafaelmardojai/firefox-gnome-theme/d3dc7cd5ac84807146e88c668e5ac83bc6b62554' (2023-09-24)
  → 'github:rafaelmardojai/firefox-gnome-theme/5f531cf8aacfedd42ad43b4d891284ae326c6989' (2023-09-28)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/261abe8a44a7e8392598d038d2e01f7b33cf26d0' (2023-09-24)
  → 'github:NixOS/nixpkgs/5cfafa12d57374f48bcc36fda3274ada276cf69e' (2023-09-27)
2023-09-29 09:04:48 +01:00
298bce40af flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/e9b4b56e5a20ac322c0c01ccab7ec697ab076ea0' (2023-09-22)
  → 'github:NixOS/nixpkgs/261abe8a44a7e8392598d038d2e01f7b33cf26d0' (2023-09-24)
2023-09-25 19:31:39 +01:00
3ae30840a6 flake.lock: Update
Flake lock file updates:

• Updated input 'firefox-gnome-theme':
    'github:rafaelmardojai/firefox-gnome-theme/6514f65331a98d3ea571edb1fa74cb39aaac1459' (2023-09-14)
  → 'github:rafaelmardojai/firefox-gnome-theme/d3dc7cd5ac84807146e88c668e5ac83bc6b62554' (2023-09-24)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/55ac2a9d2024f15c56adf20da505b29659911da8' (2023-09-21)
  → 'github:NixOS/nixpkgs/e9b4b56e5a20ac322c0c01ccab7ec697ab076ea0' (2023-09-22)
• Updated input 'thunderbird-gnome-theme':
    'github:rafaelmardojai/thunderbird-gnome-theme/3df2e63b4818cf78b4bd8408763638b907df372b' (2023-09-05)
  → 'github:rafaelmardojai/thunderbird-gnome-theme/99620f1353689c9ac0a3fc389306faf2b9137fa8' (2023-09-23)
2023-09-24 09:34:17 +01:00
2d62fedc98 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/5d017a8822e0907fb96f7700a319f9fe2434de02' (2023-09-17)
  → 'github:NixOS/nixpkgs/55ac2a9d2024f15c56adf20da505b29659911da8' (2023-09-21)
2023-09-23 11:50:28 +01:00
cb8c53049a flake.lock: Update
Flake lock file updates:

• Updated input 'home-manager':
    'github:nix-community/home-manager/9787dffff5d315c9593d3f9fb0f9bf2097e1b57b' (2023-09-11)
  → 'github:nix-community/home-manager/07682fff75d41f18327a871088d20af2710d4744' (2023-09-19)
2023-09-21 20:21:40 +01:00
255b103d63 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/360a7d31c30abefdc490d203f80e3221b7a24af2' (2023-09-15)
  → 'github:NixOS/nixpkgs/5d017a8822e0907fb96f7700a319f9fe2434de02' (2023-09-17)
2023-09-17 18:43:32 +01:00
8d9ba597cd flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/e5f018cf150e29aac26c61dac0790ea023c46b24' (2023-09-12)
  → 'github:NixOS/nixpkgs/360a7d31c30abefdc490d203f80e3221b7a24af2' (2023-09-15)
2023-09-16 11:17:38 +01:00
04df77ad75 flake.lock: Update
Flake lock file updates:

• Updated input 'firefox-gnome-theme':
    'github:rafaelmardojai/firefox-gnome-theme/bbb301ee6224698622c9a5a6b975691841caf13b' (2023-09-13)
  → 'github:rafaelmardojai/firefox-gnome-theme/6514f65331a98d3ea571edb1fa74cb39aaac1459' (2023-09-14)
2023-09-15 10:03:07 +01:00
f8407c9ecf flake.lock: Update
Flake lock file updates:

• Updated input 'firefox-gnome-theme':
    'github:rafaelmardojai/firefox-gnome-theme/67cc89691b17bc09f110efa7fd6011c19d763597' (2023-09-04)
  → 'github:rafaelmardojai/firefox-gnome-theme/bbb301ee6224698622c9a5a6b975691841caf13b' (2023-09-13)
• Updated input 'home-manager':
    'github:nix-community/home-manager/5bac4a1c06cd77cf8fc35a658ccb035a6c50cd2c' (2023-08-28)
  → 'github:nix-community/home-manager/9787dffff5d315c9593d3f9fb0f9bf2097e1b57b' (2023-09-11)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/4c8cf44c5b9481a4f093f1df3b8b7ba997a7c760' (2023-09-10)
  → 'github:NixOS/nixpkgs/e5f018cf150e29aac26c61dac0790ea023c46b24' (2023-09-12)
2023-09-14 18:56:32 +01:00
b092b0708b flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/4f77ea639305f1de0a14d9d41eef83313360638c' (2023-09-07)
  → 'github:NixOS/nixpkgs/4c8cf44c5b9481a4f093f1df3b8b7ba997a7c760' (2023-09-10)
2023-09-10 18:11:05 +01:00
107c472d22 Add thunderbird to atlas 2023-09-09 15:57:37 +01:00
56c1758bf7 Add search-light GNOME extension 2023-09-09 15:57:24 +01:00
82bdf02971 Add thunderbird module 2023-09-09 15:50:33 +01:00
2b31f03f53 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/da5adce0ffaff10f6d0fee72a02a5ed9d01b52fc' (2023-09-03)
  → 'github:NixOS/nixpkgs/4f77ea639305f1de0a14d9d41eef83313360638c' (2023-09-07)
2023-09-08 08:28:43 +01:00
b8b7f9073b flake.lock: Update
Flake lock file updates:

• Updated input 'firefox-gnome-theme':
    'github:rafaelmardojai/firefox-gnome-theme/46d7c03085688fddfc40698bd11dcc11f21ac857' (2023-09-01)
  → 'github:rafaelmardojai/firefox-gnome-theme/67cc89691b17bc09f110efa7fd6011c19d763597' (2023-09-04)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/841889913dfd06a70ffb39f603e29e46f45f0c1a' (2023-08-30)
  → 'github:NixOS/nixpkgs/da5adce0ffaff10f6d0fee72a02a5ed9d01b52fc' (2023-09-03)
2023-09-04 22:55:32 +01:00
7f98d285dd flake.lock: Update
Flake lock file updates:

• Updated input 'firefox-gnome-theme':
    'github:rafaelmardojai/firefox-gnome-theme/08884fb6be1c74a81f5e0a35a81c3f219e109028' (2023-08-04)
  → 'github:rafaelmardojai/firefox-gnome-theme/46d7c03085688fddfc40698bd11dcc11f21ac857' (2023-09-01)
• Updated input 'home-manager':
    'github:nix-community/home-manager/7f351e2993ed170dd9b8521a9e41f4d91d9b9c5d' (2023-08-13)
  → 'github:nix-community/home-manager/5bac4a1c06cd77cf8fc35a658ccb035a6c50cd2c' (2023-08-28)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/720e61ed8de116eec48d6baea1d54469b536b985' (2023-08-13)
  → 'github:NixOS/nixpkgs/841889913dfd06a70ffb39f603e29e46f45f0c1a' (2023-08-30)
2023-09-02 17:44:49 +01:00
c68f4bd950 flake.lock: Update
Flake lock file updates:

• Updated input 'home-manager':
    'github:nix-community/home-manager/07c347bb50994691d7b0095f45ebd8838cf6bc38' (2023-06-27)
  → 'github:nix-community/home-manager/7f351e2993ed170dd9b8521a9e41f4d91d9b9c5d' (2023-08-13)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/3fe694c4156b84dac12627685c7ae592a71e2206' (2023-08-12)
  → 'github:NixOS/nixpkgs/720e61ed8de116eec48d6baea1d54469b536b985' (2023-08-13)
2023-08-14 23:16:15 +01:00
33891bf81d flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/9034b46dc4c7596a87ab837bb8a07ef2d887e8c7' (2023-08-09)
  → 'github:NixOS/nixpkgs/3fe694c4156b84dac12627685c7ae592a71e2206' (2023-08-12)
2023-08-13 18:01:22 +01:00
3de016bb58 Bump mutter triple buffering overlay 2023-08-11 18:20:34 +01:00
dbda03a278 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/61676e4dcfeeb058f255294bcb08ea7f3bc3ce56' (2023-08-06)
  → 'github:NixOS/nixpkgs/9034b46dc4c7596a87ab837bb8a07ef2d887e8c7' (2023-08-09)
2023-08-11 18:04:10 +01:00
ce392291cb flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/9652a97d9738d3e65cf33c0bc24429e495a7868f' (2023-08-04)
  → 'github:NixOS/nixpkgs/61676e4dcfeeb058f255294bcb08ea7f3bc3ce56' (2023-08-06)
2023-08-07 10:04:43 +01:00
02d9681e31 flake.lock: Update
Flake lock file updates:

• Updated input 'firefox-gnome-theme':
    'github:rafaelmardojai/firefox-gnome-theme/6c4190fbbf320569cc546a73efd25380d92fdd91' (2023-07-18)
  → 'github:rafaelmardojai/firefox-gnome-theme/08884fb6be1c74a81f5e0a35a81c3f219e109028' (2023-08-04)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/9462344318b376e157c94fa60c20a25b913b2381' (2023-07-27)
  → 'github:NixOS/nixpkgs/9652a97d9738d3e65cf33c0bc24429e495a7868f' (2023-08-04)
2023-08-05 21:36:38 +01:00
3550060051 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/f3fbbc36b4e179a5985b9ab12624e9dfe7989341' (2023-07-26)
  → 'github:NixOS/nixpkgs/9462344318b376e157c94fa60c20a25b913b2381' (2023-07-27)
2023-07-28 20:42:40 +01:00
92b7bd183f flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/ac1acba43b2f9db073943ff5ed883ce7e8a40a2c' (2023-07-23)
  → 'github:NixOS/nixpkgs/f3fbbc36b4e179a5985b9ab12624e9dfe7989341' (2023-07-26)
2023-07-27 19:31:41 +01:00
4c603fd35f Make BlackBox default terminal 2023-07-25 17:03:37 +01:00
9ae734df15 Add BlackBox terminal 2023-07-25 17:01:24 +01:00
c63fe1491c flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/6da4bc6cb07cba1b8e53d139cbf1d2fb8061d967' (2023-07-21)
  → 'github:NixOS/nixpkgs/ac1acba43b2f9db073943ff5ed883ce7e8a40a2c' (2023-07-23)
2023-07-25 16:53:37 +01:00
89f89569ad Add libreoffice module 2023-07-22 21:24:52 +01:00
8815dc84f4 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/fa793b06f56896b7d1909e4b69977c7bf842b2f0' (2023-07-20)
  → 'github:NixOS/nixpkgs/6da4bc6cb07cba1b8e53d139cbf1d2fb8061d967' (2023-07-21)
2023-07-22 21:23:00 +01:00
e34fc167ff flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/08700de174bc6235043cb4263b643b721d936bdb' (2023-07-18)
  → 'github:NixOS/nixpkgs/fa793b06f56896b7d1909e4b69977c7bf842b2f0' (2023-07-20)
2023-07-21 15:04:39 +01:00
e4a8a406e9 flake.lock: Update
Flake lock file updates:

• Updated input 'firefox-gnome-theme':
    'github:rafaelmardojai/firefox-gnome-theme/a78d6f51783b844264181708e6a5201893d03be6' (2023-07-16)
  → 'github:rafaelmardojai/firefox-gnome-theme/6c4190fbbf320569cc546a73efd25380d92fdd91' (2023-07-18)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/f64b9738da8e86195766147e9752c67fccee006c' (2023-07-16)
  → 'github:NixOS/nixpkgs/08700de174bc6235043cb4263b643b721d936bdb' (2023-07-18)
2023-07-19 22:28:44 +01:00
702a0181ff flake.lock: Update
Flake lock file updates:

• Updated input 'firefox-gnome-theme':
    'github:rafaelmardojai/firefox-gnome-theme/d1edc1d0722ea3685bb3482c0e8dc17df884613a' (2023-07-16)
  → 'github:rafaelmardojai/firefox-gnome-theme/a78d6f51783b844264181708e6a5201893d03be6' (2023-07-16)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/af8279f65fe71ce5a448408034a8c06e2b4b2c66' (2023-07-15)
  → 'github:NixOS/nixpkgs/f64b9738da8e86195766147e9752c67fccee006c' (2023-07-16)
2023-07-17 17:04:48 +01:00
13884eadf7 flake.lock: Update
Flake lock file updates:

• Updated input 'firefox-gnome-theme':
    'github:rafaelmardojai/firefox-gnome-theme/2139a1abf834468498ab08675b4e067583c7717a' (2023-07-14)
  → 'github:rafaelmardojai/firefox-gnome-theme/d1edc1d0722ea3685bb3482c0e8dc17df884613a' (2023-07-16)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/9fdfaeb7b96f05e869f838c73cde8d98c640c649' (2023-07-14)
  → 'github:NixOS/nixpkgs/af8279f65fe71ce5a448408034a8c06e2b4b2c66' (2023-07-15)
2023-07-16 17:54:07 +01:00
74ee5abe6f flake.lock: Update
Flake lock file updates:

• Updated input 'firefox-gnome-theme':
    'github:rafaelmardojai/firefox-gnome-theme/606947127b7b53bcdfdb07ac3bb14eeb9416eb28' (2023-07-13)
  → 'github:rafaelmardojai/firefox-gnome-theme/2139a1abf834468498ab08675b4e067583c7717a' (2023-07-14)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/fcc147b1e9358a8386b2c4368bd928e1f63a7df2' (2023-07-13)
  → 'github:NixOS/nixpkgs/9fdfaeb7b96f05e869f838c73cde8d98c640c649' (2023-07-14)
2023-07-15 16:35:07 +01:00
80ccd7f48f flake.lock: Update
Flake lock file updates:

• Updated input 'firefox-gnome-theme':
    'github:rafaelmardojai/firefox-gnome-theme/917837b8ad4e18ec51c2b96dbd60abfb2bd5b300' (2023-07-12)
  → 'github:rafaelmardojai/firefox-gnome-theme/606947127b7b53bcdfdb07ac3bb14eeb9416eb28' (2023-07-13)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/98da3dd0de6660d4abed7bb74e748694bd803413' (2023-07-12)
  → 'github:NixOS/nixpkgs/fcc147b1e9358a8386b2c4368bd928e1f63a7df2' (2023-07-13)
2023-07-14 11:21:35 +01:00
ec767eda61 flake.lock: Update
Flake lock file updates:

• Updated input 'firefox-gnome-theme':
    'github:rafaelmardojai/firefox-gnome-theme/da55c80d1dd0914cc9ffae2de60d35a758868e8b' (2023-07-09)
  → 'github:rafaelmardojai/firefox-gnome-theme/917837b8ad4e18ec51c2b96dbd60abfb2bd5b300' (2023-07-12)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/8df7a67abaf8aefc8a2839e0b48f92fdcf69a38b' (2023-07-09)
  → 'github:NixOS/nixpkgs/98da3dd0de6660d4abed7bb74e748694bd803413' (2023-07-12)
2023-07-13 12:22:45 +01:00
80e7a6f3cb flake.lock: Update
Flake lock file updates:

• Updated input 'firefox-gnome-theme':
    'github:rafaelmardojai/firefox-gnome-theme/c2466b9363d040b32d29e6cd87d9021cdab0f768' (2023-06-30)
  → 'github:rafaelmardojai/firefox-gnome-theme/da55c80d1dd0914cc9ffae2de60d35a758868e8b' (2023-07-09)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/510d721ce097150ae3b80f84b04b13b039186571' (2023-07-09)
  → 'github:NixOS/nixpkgs/8df7a67abaf8aefc8a2839e0b48f92fdcf69a38b' (2023-07-09)
2023-07-10 20:06:34 +01:00
2a3f0ed46c flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/d8bb6c681cf86265fdcf3cc3119f757bbb085835' (2023-07-07)
  → 'github:NixOS/nixpkgs/510d721ce097150ae3b80f84b04b13b039186571' (2023-07-09)
2023-07-09 15:59:35 +01:00
b0b9bb8735 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/e11142026e2cef35ea52c9205703823df225c947' (2023-07-05)
  → 'github:NixOS/nixpkgs/d8bb6c681cf86265fdcf3cc3119f757bbb085835' (2023-07-07)
2023-07-08 11:33:05 +01:00
71d1993e70 Bump GNOME triple buffering overlay 2023-07-06 21:33:27 +01:00
45d98ab2fa flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/0de86059128947b2438995450f2c2ca08cc783d5' (2023-07-01)
  → 'github:NixOS/nixpkgs/e11142026e2cef35ea52c9205703823df225c947' (2023-07-05)
2023-07-06 21:23:51 +01:00
51ae97fe19 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/b72aa95f7f096382bff3aea5f8fde645bca07422' (2023-06-30)
  → 'github:NixOS/nixpkgs/0de86059128947b2438995450f2c2ca08cc783d5' (2023-07-01)
2023-07-03 18:12:49 +01:00
5c4969f1a2 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/9790f3242da2152d5aa1976e3e4b8b414f4dd206' (2023-06-27)
  → 'github:NixOS/nixpkgs/b72aa95f7f096382bff3aea5f8fde645bca07422' (2023-06-30)
2023-07-02 19:00:23 +01:00
be2e56a7eb flake.lock: Update
Flake lock file updates:

• Updated input 'firefox-gnome-theme':
    'github:rafaelmardojai/firefox-gnome-theme/83b5b96b0ff5f30543b4e6137e268bcf9933c328' (2023-06-11)
  → 'github:rafaelmardojai/firefox-gnome-theme/c2466b9363d040b32d29e6cd87d9021cdab0f768' (2023-06-30)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/35130d4b4f0b8c50ed2aceb909a538c66c91d4a0' (2023-06-25)
  → 'github:NixOS/nixpkgs/9790f3242da2152d5aa1976e3e4b8b414f4dd206' (2023-06-27)
2023-06-30 17:43:59 +01:00
b268b98806 flake.lock: Update
Flake lock file updates:

• Updated input 'home-manager':
    'github:nix-community/home-manager/6ca1e16eb3016c94b7ac16699e1d4158bd4e39a4' (2023-06-24)
  → 'github:nix-community/home-manager/07c347bb50994691d7b0095f45ebd8838cf6bc38' (2023-06-27)
2023-06-27 16:06:45 +01:00
55 changed files with 934 additions and 625 deletions

View File

@ -7,7 +7,7 @@ System and user configuration for NixOS-based systems.
| **Shell:** | zsh | | **Shell:** | zsh |
| **DE:** | GNOME | | **DE:** | GNOME |
| **Theme:** | adwaita | | **Theme:** | adwaita |
| **Terminal:** | gnome-console | | **Terminal:** | Console |
## Quick start ## Quick start
1. Copy SSH keypair and `known_hosts` to `~/.ssh` 1. Copy SSH keypair and `known_hosts` to `~/.ssh`

141
flake.lock generated
View File

@ -1,13 +1,55 @@
{ {
"nodes": { "nodes": {
"agenix": {
"inputs": {
"darwin": "darwin",
"home-manager": "home-manager",
"nixpkgs": "nixpkgs"
},
"locked": {
"lastModified": 1701216516,
"narHash": "sha256-jKSeJn+7hZ1dZdiH1L+NWUGT2i/BGomKAJ54B9kT06Q=",
"owner": "ryantm",
"repo": "agenix",
"rev": "13ac9ac6d68b9a0896e3d43a082947233189e247",
"type": "github"
},
"original": {
"owner": "ryantm",
"repo": "agenix",
"type": "github"
}
},
"darwin": {
"inputs": {
"nixpkgs": [
"agenix",
"nixpkgs"
]
},
"locked": {
"lastModified": 1673295039,
"narHash": "sha256-AsdYgE8/GPwcelGgrntlijMg4t3hLFJFCRF3tL5WVjA=",
"owner": "lnl7",
"repo": "nix-darwin",
"rev": "87b9d090ad39b25b2400029c64825fc2a8868943",
"type": "github"
},
"original": {
"owner": "lnl7",
"ref": "master",
"repo": "nix-darwin",
"type": "github"
}
},
"firefox-gnome-theme": { "firefox-gnome-theme": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1686524487, "lastModified": 1702138393,
"narHash": "sha256-o53fws/jwhLfxiYfTyYpKSGi61d5LHzGgSCkt3DNGRI=", "narHash": "sha256-2jRm1yzX+gKpSCtdpYt1olIgWVEkJnS7FeK00o9X1ko=",
"owner": "rafaelmardojai", "owner": "rafaelmardojai",
"repo": "firefox-gnome-theme", "repo": "firefox-gnome-theme",
"rev": "83b5b96b0ff5f30543b4e6137e268bcf9933c328", "rev": "d2e6cfdd63651ae8168e5905d94138f406580dd6",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -19,44 +61,117 @@
"home-manager": { "home-manager": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
"agenix",
"nixpkgs" "nixpkgs"
] ]
}, },
"locked": { "locked": {
"lastModified": 1687647567, "lastModified": 1682203081,
"narHash": "sha256-Ua90LZYJO7/7KW/KK/AqijhIekd+wxPwbVKXuBYzJeQ=", "narHash": "sha256-kRL4ejWDhi0zph/FpebFYhzqlOBrk0Pl3dzGEKSAlEw=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "6ca1e16eb3016c94b7ac16699e1d4158bd4e39a4", "rev": "32d3e39c491e2f91152c84f8ad8b003420eab0a1",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nix-community", "owner": "nix-community",
"ref": "release-23.05", "repo": "home-manager",
"type": "github"
}
},
"home-manager_2": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1702195709,
"narHash": "sha256-+zRjWkm5rKqQ57PuLZ3JF3xi3vPMiOJzItb1m/43Cq4=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "6761b8188b860f374b457eddfdb05c82eef9752f",
"type": "github"
},
"original": {
"owner": "nix-community",
"ref": "release-23.11",
"repo": "home-manager", "repo": "home-manager",
"type": "github" "type": "github"
} }
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1687729501, "lastModified": 1677676435,
"narHash": "sha256-mTLkMePoHUWvTCf3NuKbeYEea/tsikSIKBWwb9OfRr4=", "narHash": "sha256-6FxdcmQr5JeZqsQvfinIMr0XcTyTuR7EXX0H3ANShpQ=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "35130d4b4f0b8c50ed2aceb909a538c66c91d4a0", "rev": "a08d6979dd7c82c4cef0dcc6ac45ab16051c1169",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1702233072,
"narHash": "sha256-H5G2wgbim2Ku6G6w+NSaQaauv6B6DlPhY9fMvArKqRo=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "781e2a9797ecf0f146e81425c822dca69fe4a348",
"type": "github" "type": "github"
}, },
"original": { "original": {
"id": "nixpkgs", "id": "nixpkgs",
"ref": "nixos-23.05", "ref": "nixos-23.11",
"type": "indirect" "type": "indirect"
} }
}, },
"root": { "root": {
"inputs": { "inputs": {
"agenix": "agenix",
"firefox-gnome-theme": "firefox-gnome-theme", "firefox-gnome-theme": "firefox-gnome-theme",
"home-manager": "home-manager", "home-manager": "home-manager_2",
"nixpkgs": "nixpkgs" "nixpkgs": "nixpkgs_2",
"thunderbird-gnome-theme": "thunderbird-gnome-theme",
"wallpapers": "wallpapers"
}
},
"thunderbird-gnome-theme": {
"flake": false,
"locked": {
"lastModified": 1701889124,
"narHash": "sha256-K+6oh7+J6RDBFkxphY/pzf0B+q5+IY54ZMKZrFSKXlc=",
"owner": "rafaelmardojai",
"repo": "thunderbird-gnome-theme",
"rev": "966e9dd54bd2ce9d36d51cd6af8c3bac7a764a68",
"type": "github"
},
"original": {
"owner": "rafaelmardojai",
"repo": "thunderbird-gnome-theme",
"type": "github"
}
},
"wallpapers": {
"flake": false,
"locked": {
"lastModified": 1702336410,
"narHash": "sha256-DyC9Ro5tj3X0P2M24gZdpTkFGuZEy9JXrFLUav/b5H0=",
"ref": "refs/heads/master",
"rev": "dd78ed7242af54c33e8304feee322a71da575abd",
"shallow": true,
"type": "git",
"url": "ssh://git@git.vimium.com/jordan/wallpapers.git"
},
"original": {
"shallow": true,
"type": "git",
"url": "ssh://git@git.vimium.com/jordan/wallpapers.git"
} }
} }
}, },

111
flake.nix
View File

@ -1,79 +1,70 @@
{ {
description = "NixOS/Darwin system configuration"; description = "NixOS system configuration";
inputs = { inputs = {
nixpkgs.url = "nixpkgs/nixos-23.05"; nixpkgs.url = "nixpkgs/nixos-23.11";
agenix.url = "github:ryantm/agenix";
home-manager = { home-manager = {
url = "github:nix-community/home-manager/release-23.05"; url = "github:nix-community/home-manager/release-23.11";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
firefox-gnome-theme = { firefox-gnome-theme = {
url = "github:rafaelmardojai/firefox-gnome-theme"; url = "github:rafaelmardojai/firefox-gnome-theme";
flake = false; flake = false;
}; };
thunderbird-gnome-theme = {
url = "github:rafaelmardojai/thunderbird-gnome-theme";
flake = false;
};
wallpapers = {
url = "git+ssh://git@git.vimium.com/jordan/wallpapers.git?shallow=1";
flake = false;
};
}; };
outputs = inputs @ { self, nixpkgs, home-manager, ... }: outputs = inputs @ { self, nixpkgs, agenix, home-manager, ... }:
let let
inherit (lib) attrValues; nixpkgsForSystem = system: inputs.nixpkgs;
inherit (lib.my) mapModules mapModulesRec; overlays = [
agenix.overlays.default
system = "x86_64-linux"; (import ./overlays/gnome.nix)
];
mkPkgs = pkgs: extraOverlays: commonModules = [
import pkgs { agenix.nixosModules.age
inherit system; home-manager.nixosModule
./modules
];
nixosSystem = system: name:
let
nixpkgs = nixpkgsForSystem system;
lib = (import nixpkgs { inherit overlays system; }).lib;
in
inputs.nixpkgs.lib.nixosSystem {
inherit lib system;
specialArgs = { modulesPath = toString (nixpkgs + "/nixos/modules"); inherit inputs; };
baseModules = import (nixpkgs + "/nixos/modules/module-list.nix");
modules = commonModules ++ [
({ config, ... }:
{
nixpkgs.pkgs = import nixpkgs {
inherit overlays system;
config.allowUnfree = true; config.allowUnfree = true;
overlays = extraOverlays ++ (lib.attrValues self.overlays);
}; };
pkgs = mkPkgs nixpkgs []; networking.hostName = name;
nix = {
lib = nixpkgs.lib.extend (self: super: { extraOptions = "experimental-features = nix-command flakes";
my = import ./lib { };
inherit pkgs inputs; })
lib = self; ./hosts/${name}
];
}; };
});
in {
lib = lib.my;
nixosConfigurations = { nixosConfigurations = {
atlas = nixpkgs.lib.nixosSystem { atlas = nixosSystem "x86_64-linux" "atlas";
modules = [ eos = nixosSystem "x86_64-linux" "eos";
inputs.home-manager.nixosModules.home-manager helios = nixosSystem "x86_64-linux" "helios";
{ nixpkgs.overlays = [ (import ./overlays/gnome.nix) ]; } odyssey = nixosSystem "x86_64-linux" "odyssey";
(import ./modules)
./hosts/atlas
];
specialArgs = { inherit lib inputs; };
};
eos = nixpkgs.lib.nixosSystem {
modules = [
inputs.home-manager.nixosModules.home-manager
{ nixpkgs.overlays = [ (import ./overlays/gnome.nix) ]; }
(import ./modules)
./hosts/eos
];
specialArgs = { inherit lib inputs; };
};
helios = nixpkgs.lib.nixosSystem {
modules = [
inputs.home-manager.nixosModules.home-manager
{ nixpkgs.overlays = [ (import ./overlays/gnome.nix) ]; }
(import ./modules)
./hosts/helios
];
specialArgs = { inherit lib inputs; };
};
odyssey = nixpkgs.lib.nixosSystem {
modules = [
inputs.home-manager.nixosModules.home-manager
{ nixpkgs.overlays = [ (import ./overlays/gnome.nix) ]; }
(import ./modules)
./hosts/odyssey
];
specialArgs = { inherit lib inputs; };
};
};
}; };
in
{ inherit nixosConfigurations; };
} }

View File

@ -1,6 +1,5 @@
{ config, lib, pkgs, ... }: { config, lib, pkgs, ... }:
with lib.my;
{ {
imports = [ imports = [
./hardware-configuration.nix ./hardware-configuration.nix
@ -25,7 +24,10 @@ with lib.my;
modules = { modules = {
desktop = { desktop = {
apps.qbittorrent.enable = true; apps = {
qbittorrent.enable = true;
thunderbird.enable = true;
};
browsers = { browsers = {
firefox.enable = true; firefox.enable = true;
}; };
@ -33,6 +35,7 @@ with lib.my;
raster.enable = true; raster.enable = true;
vector.enable = true; vector.enable = true;
}; };
office.libreoffice.enable = true;
}; };
dev = { dev = {
node.enable = true; node.enable = true;

View File

@ -1,70 +1,66 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }: { config, lib, pkgs, modulesPath, ... }:
{ {
imports = imports = [
[ (modulesPath + "/installer/scan/not-detected.nix") (modulesPath + "/installer/scan/not-detected.nix")
]; ];
boot.initrd.availableKernelModules = [ "xhci_pci" "ehci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" ]; boot = {
boot.initrd.kernelModules = [ ]; initrd.availableKernelModules = [ "xhci_pci" "ehci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" ];
boot.initrd.supportedFilesystems = [ "zfs" ]; initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-intel" ]; initrd.supportedFilesystems = [ "zfs" ];
boot.kernelParams = [ "elevator=none" ]; kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ]; kernelParams = [ "elevator=none" ];
boot.supportedFilesystems = [ "zfs" ]; extraModulePackages = [ ];
supportedFilesystems = [ "zfs" ];
};
fileSystems."/" = fileSystems."/" = {
{ device = "rpool/system/root"; device = "rpool/system/root";
fsType = "zfs"; fsType = "zfs";
}; };
fileSystems."/home" = fileSystems."/home" = {
{ device = "rpool/user/home"; device = "rpool/user/home";
fsType = "zfs"; fsType = "zfs";
}; };
fileSystems."/nix" = fileSystems."/nix" = {
{ device = "rpool/local/nix"; device = "rpool/local/nix";
fsType = "zfs"; fsType = "zfs";
}; };
fileSystems."/tmp" = fileSystems."/tmp" = {
{ device = "rpool/local/tmp"; device = "rpool/local/tmp";
fsType = "zfs"; fsType = "zfs";
}; };
fileSystems."/var" = fileSystems."/var" = {
{ device = "rpool/system/var"; device = "rpool/system/var";
fsType = "zfs"; fsType = "zfs";
}; };
fileSystems."/var/log" = fileSystems."/var/log" = {
{ device = "rpool/system/var/log"; device = "rpool/system/var/log";
fsType = "zfs"; fsType = "zfs";
}; };
fileSystems."/var/tmp" = fileSystems."/var/tmp" = {
{ device = "rpool/system/var/tmp"; device = "rpool/system/var/tmp";
fsType = "zfs"; fsType = "zfs";
}; };
fileSystems."/boot" = fileSystems."/boot" = {
{ device = "/dev/disk/by-uuid/00B2-0384"; device = "/dev/disk/by-uuid/00B2-0384";
fsType = "vfat"; fsType = "vfat";
}; };
swapDevices = [ ]; swapDevices = [ ];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true; networking.useDHCP = lib.mkDefault true;
# networking.interfaces.enp0s25.useDHCP = lib.mkDefault true; # networking.interfaces.enp0s25.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
} }

View File

@ -1,7 +1,5 @@
{ config, lib, pkgs, ... }: { config, lib, pkgs, ... }:
with lib;
with lib.my;
{ {
time.timeZone = "Europe/London"; time.timeZone = "Europe/London";
@ -46,7 +44,8 @@ with lib.my;
neovim neovim
]; ];
nix.settings = { nix = {
settings = {
connect-timeout = 5; connect-timeout = 5;
log-lines = 25; log-lines = 25;
min-free = 128000000; min-free = 128000000;
@ -61,6 +60,12 @@ with lib.my;
"odyssey.mesh.vimium.net:ZhQhjscPWjoN4rlZwoMELznEiBnZ9O26iyGA27ibilQ=" "odyssey.mesh.vimium.net:ZhQhjscPWjoN4rlZwoMELznEiBnZ9O26iyGA27ibilQ="
]; ];
}; };
gc = {
automatic = true;
dates = "weekly";
options = "-d --delete-older-than 7d";
};
};
modules.desktop.gnome.enable = true; modules.desktop.gnome.enable = true;
modules.networking.tailscale.enable = true; modules.networking.tailscale.enable = true;

View File

@ -1,6 +1,5 @@
{ config, lib, pkgs, ... }: { config, lib, pkgs, ... }:
with lib.my;
{ {
imports = [ imports = [
./hardware-configuration.nix ./hardware-configuration.nix

View File

@ -1,71 +1,65 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }: { config, lib, pkgs, modulesPath, ... }:
{ {
imports = imports = [
[ (modulesPath + "/installer/scan/not-detected.nix") (modulesPath + "/installer/scan/not-detected.nix")
]; ];
boot.initrd.availableKernelModules = [ "ehci_pci" "ahci" "usb_storage" "sd_mod" "sdhci_pci" ]; boot = {
boot.initrd.kernelModules = [ ]; initrd.availableKernelModules = [ "ehci_pci" "ahci" "usb_storage" "sd_mod" "sdhci_pci" ];
boot.initrd.supportedFilesystems = [ "zfs" ]; initrd.kernelModules = [ ];
boot.kernelModules = [ ]; initrd.supportedFilesystems = [ "zfs" ];
boot.kernelParams = [ "elevator=none" ]; kernelModules = [ ];
boot.extraModulePackages = [ ]; kernelParams = [ "elevator=none" ];
boot.supportedFilesystems = [ "zfs" ]; extraModulePackages = [ ];
supportedFilesystems = [ "zfs" ];
};
fileSystems."/" = fileSystems."/" = {
{ device = "rpool/system/root"; device = "rpool/system/root";
fsType = "zfs"; fsType = "zfs";
}; };
fileSystems."/home" = fileSystems."/home" = {
{ device = "rpool/user/home"; device = "rpool/user/home";
fsType = "zfs"; fsType = "zfs";
}; };
fileSystems."/nix" = fileSystems."/nix" = {
{ device = "rpool/local/nix"; device = "rpool/local/nix";
fsType = "zfs"; fsType = "zfs";
}; };
fileSystems."/tmp" = fileSystems."/tmp" = {
{ device = "rpool/local/tmp"; device = "rpool/local/tmp";
fsType = "zfs"; fsType = "zfs";
}; };
fileSystems."/var" = fileSystems."/var" = {
{ device = "rpool/system/var"; device = "rpool/system/var";
fsType = "zfs"; fsType = "zfs";
}; };
fileSystems."/var/log" = fileSystems."/var/log" = {
{ device = "rpool/system/var/log"; device = "rpool/system/var/log";
fsType = "zfs"; fsType = "zfs";
}; };
fileSystems."/var/tmp" = fileSystems."/var/tmp" = {
{ device = "rpool/system/var/tmp"; device = "rpool/system/var/tmp";
fsType = "zfs"; fsType = "zfs";
}; };
fileSystems."/boot" = fileSystems."/boot" = {
{ device = "/dev/disk/by-uuid/28E6-5509"; device = "/dev/disk/by-uuid/28E6-5509";
fsType = "vfat"; fsType = "vfat";
}; };
swapDevices = [ ]; swapDevices = [ ];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true; networking.useDHCP = lib.mkDefault true;
# networking.interfaces.enp0s25.useDHCP = lib.mkDefault true;
# networking.interfaces.wlp3s0.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
} }

View File

@ -1,6 +1,5 @@
{ config, lib, pkgs, ... }: { config, lib, pkgs, ... }:
with lib.my;
{ {
imports = [ imports = [
./hardware-configuration.nix ./hardware-configuration.nix

View File

@ -1,65 +1,61 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }: { config, lib, pkgs, modulesPath, ... }:
{ {
imports = imports = [
[ (modulesPath + "/installer/scan/not-detected.nix") (modulesPath + "/installer/scan/not-detected.nix")
]; ];
boot.initrd.availableKernelModules = [ "ehci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" "sr_mod" "zfs" ]; boot = {
boot.initrd.kernelModules = [ ]; initrd.availableKernelModules = [ "ehci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" "sr_mod" "zfs" ];
boot.initrd.supportedFilesystems = [ "zfs" ]; initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-intel" ]; initrd.supportedFilesystems = [ "zfs" ];
boot.kernelParams = [ "elevator=none" ]; kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ]; kernelParams = [ "elevator=none" ];
boot.supportedFilesystems = [ "zfs" ]; extraModulePackages = [ ];
supportedFilesystems = [ "zfs" ];
};
fileSystems."/" = fileSystems."/" = {
{ device = "rpool/system/root"; device = "rpool/system/root";
fsType = "zfs"; fsType = "zfs";
}; };
fileSystems."/home" = fileSystems."/home" = {
{ device = "rpool/user/home"; device = "rpool/user/home";
fsType = "zfs"; fsType = "zfs";
}; };
fileSystems."/nix" = fileSystems."/nix" = {
{ device = "rpool/local/nix"; device = "rpool/local/nix";
fsType = "zfs"; fsType = "zfs";
}; };
fileSystems."/tmp" = fileSystems."/tmp" = {
{ device = "rpool/local/tmp"; device = "rpool/local/tmp";
fsType = "zfs"; fsType = "zfs";
}; };
fileSystems."/var/log" = fileSystems."/var/log" = {
{ device = "rpool/system/var/log"; device = "rpool/system/var/log";
fsType = "zfs"; fsType = "zfs";
}; };
fileSystems."/var/tmp" = fileSystems."/var/tmp" = {
{ device = "rpool/system/var/tmp"; device = "rpool/system/var/tmp";
fsType = "zfs"; fsType = "zfs";
}; };
fileSystems."/boot" = fileSystems."/boot" = {
{ device = "/dev/sda1"; device = "/dev/sda1";
fsType = "ext2"; fsType = "ext2";
}; };
swapDevices = [ ]; swapDevices = [ ];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true; networking.useDHCP = lib.mkDefault true;
# networking.interfaces.eno1.useDHCP = lib.mkDefault true; # networking.interfaces.eno1.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
} }

View File

@ -0,0 +1,71 @@
From daebf42bd955f6f8d971af967c675e4e339cb0b2 Mon Sep 17 00:00:00 2001
From: Jordan Holt <jordan@vimium.com>
Date: Sun, 12 Nov 2023 12:13:39 +0000
Subject: [PATCH] Update device ID for PreSonus 1824c
---
sound/usb/format.c | 4 ++--
sound/usb/mixer_quirks.c | 2 +-
sound/usb/mixer_s1810c.c | 2 +-
sound/usb/quirks.c | 4 ++--
4 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/sound/usb/format.c b/sound/usb/format.c
index ab5fed9f55b6..da50a4782414 100644
--- a/sound/usb/format.c
+++ b/sound/usb/format.c
@@ -378,8 +378,8 @@ static int parse_uac2_sample_rate_range(struct snd_usb_audio *chip,
for (rate = min; rate <= max; rate += res) {
- /* Filter out invalid rates on Presonus Studio 1810c */
- if (chip->usb_id == USB_ID(0x194f, 0x010c) &&
+ /* Filter out invalid rates on Presonus Studio 1824c */
+ if (chip->usb_id == USB_ID(0x194f, 0x010d) &&
!s1810c_valid_sample_rate(fp, rate))
goto skip_rate;
diff --git a/sound/usb/mixer_quirks.c b/sound/usb/mixer_quirks.c
index 898bc3baca7b..c3135459c38c 100644
--- a/sound/usb/mixer_quirks.c
+++ b/sound/usb/mixer_quirks.c
@@ -3445,7 +3445,7 @@ int snd_usb_mixer_apply_create_quirk(struct usb_mixer_interface *mixer)
err = snd_rme_controls_create(mixer);
break;
- case USB_ID(0x194f, 0x010c): /* Presonus Studio 1810c */
+ case USB_ID(0x194f, 0x010d): /* Presonus Studio 1824c */
err = snd_sc1810_init_mixer(mixer);
break;
case USB_ID(0x2a39, 0x3fb0): /* RME Babyface Pro FS */
diff --git a/sound/usb/mixer_s1810c.c b/sound/usb/mixer_s1810c.c
index fac4bbc6b275..5bc2e66d452c 100644
--- a/sound/usb/mixer_s1810c.c
+++ b/sound/usb/mixer_s1810c.c
@@ -552,7 +552,7 @@ int snd_sc1810_init_mixer(struct usb_mixer_interface *mixer)
return 0;
dev_info(&dev->dev,
- "Presonus Studio 1810c, device_setup: %u\n", chip->setup);
+ "Presonus Studio 1824c, device_setup: %u\n", chip->setup);
if (chip->setup == 1)
dev_info(&dev->dev, "(8out/18in @ 48kHz)\n");
else if (chip->setup == 2)
diff --git a/sound/usb/quirks.c b/sound/usb/quirks.c
index ab2b938502eb..b86832edaaa0 100644
--- a/sound/usb/quirks.c
+++ b/sound/usb/quirks.c
@@ -1551,8 +1551,8 @@ int snd_usb_apply_interface_quirk(struct snd_usb_audio *chip,
/* fasttrackpro usb: skip altsets incompatible with device_setup */
if (chip->usb_id == USB_ID(0x0763, 0x2012))
return fasttrackpro_skip_setting_quirk(chip, iface, altno);
- /* presonus studio 1810c: skip altsets incompatible with device_setup */
- if (chip->usb_id == USB_ID(0x194f, 0x010c))
+ /* presonus studio 1824c: skip altsets incompatible with device_setup */
+ if (chip->usb_id == USB_ID(0x194f, 0x010d))
return s1810c_skip_setting_quirk(chip, iface, altno);
--
2.42.0

45
hosts/odyssey/audio.nix Normal file
View File

@ -0,0 +1,45 @@
{ config, pkgs, ... }:
let
snd-usb-audio-module = pkgs.callPackage ./snd-usb-audio.nix {
kernel = config.boot.kernelPackages.kernel;
};
upmixConfig = ''
stream.properties = {
channelmix.upmix = true
channelmix.upmix-method = psd
}
'';
in {
boot.extraModulePackages = [
(snd-usb-audio-module.overrideAttrs (_: {
patches = [ ./0001-Update-device-ID-for-PreSonus-1824c.patch ];
}))
];
environment.etc = {
"pipewire/pipewire.conf.d/surround.conf".text = ''
context.modules = [
{
name = libpipewire-module-loopback
args = {
node.description = "Genelec 4.1 Surround"
capture.props = {
node.name = "Genelec_Speakers"
media.class = "Audio/Sink"
audio.position = [ FL FR SL SR LFE ]
}
playback.props = {
node.name = "playback.Genelec_Speakers"
audio.position = [ AUX0 AUX1 AUX3 AUX4 AUX5 ]
target.object = "alsa_output.usb-PreSonus_Studio_1824c_SC4E21110775-00.multichannel-output"
stream.dont-remix = true
node.passive = true
}
}
}
]
'';
"pipewire/pipewire-pulse.conf.d/40-upmix.conf".text = upmixConfig;
"pipewire/client-rt.conf.d/40-upmix.conf".text = upmixConfig;
};
}

View File

@ -1,9 +1,9 @@
{ config, lib, pkgs, ... }: { config, lib, pkgs, ... }:
with lib.my;
{ {
imports = [ imports = [
./hardware-configuration.nix ./hardware-configuration.nix
./audio.nix
../desktop.nix ../desktop.nix
]; ];
@ -16,7 +16,6 @@ with lib.my;
networking.hostName = "odyssey"; networking.hostName = "odyssey";
networking.hostId = "c5e68d78"; networking.hostId = "c5e68d78";
networking.networkmanager.enable = true; networking.networkmanager.enable = true;
nix.package = pkgs.nixFlakes; nix.package = pkgs.nixFlakes;
@ -25,11 +24,17 @@ with lib.my;
''; '';
virtualisation.libvirtd.enable = true; virtualisation.libvirtd.enable = true;
virtualisation.lxd.enable = true;
users.defaultUserShell = pkgs.zsh; users.defaultUserShell = pkgs.zsh;
system.stateVersion = "22.11"; system.stateVersion = "22.11";
services.journald.extraConfig = ''
SystemMaxUse=4G
MaxRetentionSec=90day
'';
services.nix-serve = { services.nix-serve = {
enable = true; enable = true;
secretKeyFile = "/var/cache-priv-key.pem"; secretKeyFile = "/var/cache-priv-key.pem";
@ -45,6 +50,36 @@ with lib.my;
}; };
}; };
age.secrets."odyssey_borg_passphrase" = {
file = ../../secrets/odyssey_borg_passphrase.age;
};
services.borgmatic = {
enable = true;
settings = {
location = {
source_directories = [
"/home/jordan/Documents"
];
repositories = [
"ssh://iqwu22oq@iqwu22oq.repo.borgbase.com/./repo"
];
};
storage = {
encryption_passcommand = "cat ${config.age.secrets.odyssey_borg_passphrase.path}";
ssh_command = "ssh -i /etc/ssh/ssh_host_ed25519_key";
};
retention = {
keep_daily = 7;
keep_weekly = 4;
keep_monthly = 6;
};
};
};
# Without this override, `cat` is unavailable for `encryption_passcommand`
systemd.services.borgmatic.confinement.fullUnit = true;
modules = { modules = {
desktop = { desktop = {
apps.qbittorrent.enable = true; apps.qbittorrent.enable = true;
@ -52,6 +87,7 @@ with lib.my;
firefox.enable = true; firefox.enable = true;
}; };
media.graphics = { media.graphics = {
modeling.enable = true;
raster.enable = true; raster.enable = true;
vector.enable = true; vector.enable = true;
}; };
@ -65,6 +101,7 @@ with lib.my;
}; };
editors = { editors = {
neovim.enable = true; neovim.enable = true;
vscode.enable = true;
}; };
security = { security = {
gpg.enable = true; gpg.enable = true;

View File

@ -1,69 +1,68 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }: { config, lib, pkgs, modulesPath, ... }:
{ {
imports = imports = [
[ (modulesPath + "/installer/scan/not-detected.nix") (modulesPath + "/installer/scan/not-detected.nix")
]; ];
boot.initrd.availableKernelModules = [ "xhci_pci" "ehci_pci" "nvme" "usbhid" "usb_storage" "sd_mod" ]; boot = {
boot.initrd.kernelModules = [ ]; initrd.availableKernelModules = [ "xhci_pci" "ehci_pci" "nvme" "usbhid" "usb_storage" "sd_mod" ];
boot.kernelModules = [ "kvm-intel" ]; initrd.kernelModules = [ ];
boot.extraModulePackages = [ ]; initrd.supportedFilesystems = [ "zfs" ];
boot.supportedFilesystems = [ "ntfs" ]; kernelModules = [ "kvm-intel" ];
kernelPackages = pkgs.linuxPackages;
supportedFilesystems = [ "ntfs" ];
binfmt.emulatedSystems = [ "aarch64-linux" ];
};
hardware.nvidia = { hardware = {
cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
nvidia = {
modesetting.enable = true; modesetting.enable = true;
powerManagement.enable = true; powerManagement.enable = true;
}; };
};
services.xserver.videoDrivers = [ "nvidia" ]; services.xserver.videoDrivers = [ "nvidia" ];
fileSystems."/" = fileSystems."/" = {
{ device = "rpool/system/root"; device = "rpool/system/root";
fsType = "zfs"; fsType = "zfs";
}; };
fileSystems."/home" = fileSystems."/home" = {
{ device = "rpool/user/home"; device = "rpool/user/home";
fsType = "zfs"; fsType = "zfs";
}; };
fileSystems."/var" = fileSystems."/var" = {
{ device = "rpool/system/var"; device = "rpool/system/var";
fsType = "zfs"; fsType = "zfs";
}; };
fileSystems."/tmp" = fileSystems."/tmp" = {
{ device = "rpool/local/tmp"; device = "rpool/local/tmp";
fsType = "zfs"; fsType = "zfs";
}; };
fileSystems."/var/log" = fileSystems."/var/log" = {
{ device = "rpool/system/var/log"; device = "rpool/system/var/log";
fsType = "zfs"; fsType = "zfs";
}; };
fileSystems."/var/tmp" = fileSystems."/var/tmp" = {
{ device = "rpool/system/var/tmp"; device = "rpool/system/var/tmp";
fsType = "zfs"; fsType = "zfs";
}; };
fileSystems."/boot" = fileSystems."/boot" = {
{ device = "/dev/disk/by-uuid/E63E-8E75"; device = "/dev/disk/by-uuid/E63E-8E75";
fsType = "vfat"; fsType = "vfat";
}; };
swapDevices = [ ]; swapDevices = [ ];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true; networking.useDHCP = lib.mkDefault true;
# networking.interfaces.eno1.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
} }

View File

@ -0,0 +1,36 @@
{ pkgs, lib, kernel ? pkgs.linuxPackages_latest.kernel }:
pkgs.stdenv.mkDerivation {
pname = "snd-usb-audio";
inherit (kernel) src version postPatch nativeBuildInputs;
kernel_dev = kernel.dev;
kernelVersion = kernel.modDirVersion;
modulePath = "sound/usb";
buildPhase = ''
BUILT_KERNEL=$kernel_dev/lib/modules/$kernelVersion/build
cp $BUILT_KERNEL/Module.symvers .
cp $BUILT_KERNEL/.config .
cp $kernel_dev/vmlinux .
make "-j$NIX_BUILD_CORES" modules_prepare
make "-j$NIX_BUILD_CORES" M=$modulePath modules
'';
installPhase = ''
make \
INSTALL_MOD_PATH="$out" \
XZ="xz -T$NIX_BUILD_CORES" \
M="$modulePath" \
modules_install
'';
meta = {
description = "USB Sound kernel module";
license = lib.licenses.gpl2;
};
}

View File

@ -1,7 +1,5 @@
{ config, lib, pkgs, ... }: { config, lib, pkgs, ... }:
with lib;
with lib.my;
{ {
time.timeZone = "Europe/London"; time.timeZone = "Europe/London";
@ -34,6 +32,17 @@ with lib.my;
neovim neovim
]; ];
nix = {
settings = {
auto-optimise-store = true;
};
gc = {
automatic = true;
dates = "weekly";
options = "-d --delete-older-than 7d";
};
};
modules.networking.tailscale = { modules.networking.tailscale = {
enable = true; enable = true;
restrictSSH = false; restrictSSH = false;

View File

@ -1,26 +0,0 @@
{ lib, ... }:
with builtins;
with lib;
rec {
# attrsToList
attrsToList = attrs:
mapAttrsToList (name: value: { inherit name value; }) attrs;
# mapFilterAttrs ::
# (name -> value -> bool)
# (name -> value -> { name = any; value = any; })
# attrs
mapFilterAttrs = pred: f: attrs: filterAttrs pred (mapAttrs' f attrs);
# Generate an attribute set by mapping a function over a list of values.
genAttrs' = values: f: listToAttrs (map f values);
# anyAttrs :: (name -> value -> bool) attrs
anyAttrs = pred: attrs:
any (attr: pred attr.name attr.value) (attrsToList attrs);
# countAttrs :: (name -> value -> bool) attrs
countAttrs = pred: attrs:
count (attr: pred attr.name attr.value) (attrsToList attrs);
}

View File

@ -1,19 +0,0 @@
{ inputs, lib, pkgs, ... }:
let
inherit (lib) makeExtensible attrValues foldr;
inherit (modules) mapModules;
modules = import ./modules.nix {
inherit lib;
self.attrs = import ./attrs.nix { inherit lib; self = {}; };
};
mylib = makeExtensible (self:
with self; mapModules ./.
(file: import file { inherit self lib pkgs inputs; }));
in
mylib.extend
(self: super:
foldr (a: b: a // b) {} (attrValues super))

View File

@ -1,53 +0,0 @@
{ self, lib, ... }:
let
inherit (builtins) attrValues readDir pathExists concatLists;
inherit (lib) id mapAttrsToList filterAttrs hasPrefix hasSuffix nameValuePair removeSuffix;
inherit (self.attrs) mapFilterAttrs;
in
rec {
mapModules = dir: fn:
mapFilterAttrs
(n: v:
v != null &&
!(hasPrefix "_" n))
(n: v:
let path = "${toString dir}/${n}"; in
if v == "directory" && pathExists "${path}/default.nix"
then nameValuePair n (fn path)
else if v == "regular" &&
n != "default.nix" &&
hasSuffix ".nix" n
then nameValuePair (removeSuffix ".nix" n) (fn path)
else nameValuePair "" null)
(readDir dir);
mapModules' = dir: fn:
attrValues (mapModules dir fn);
mapModulesRec = dir: fn:
mapFilterAttrs
(n: v:
v != null &&
!(hasPrefix "_" n))
(n: v:
let path = "${toString dir}/${n}"; in
if v == "directory"
then nameValuePair n (mapModulesRec path fn)
else if v == "regular" && n != "default.nix" && hasSuffix ".nix" n
then nameValuePair (removeSuffix ".nix" n) (fn path)
else nameValuePair "" null)
(readDir dir);
mapModulesRec' = dir: fn:
let
dirs =
mapAttrsToList
(k: _: "${dir}/${k}")
(filterAttrs
(n: v: v == "directory" && !(hasPrefix "_" n))
(readDir dir));
files = attrValues (mapModules dir id);
paths = files ++ concatLists (map (d: mapModulesRec' d id) dirs);
in map fn paths;
}

View File

@ -1,25 +0,0 @@
{ inputs, lib, pkgs, ... }:
with lib;
with lib.my;
let sys = "x86_64-linux";
in {
mkHost = path: attrs @ { system ? sys, ... }:
nixosSystem {
inherit system;
specialArgs = { inherit lib inputs system; };
modules = [
{
nixpkgs.pkgs = pkgs;
networking.hostName = mkDefault (removeSuffix ".nix" (baseNameOf path));
}
(filterAttrs (n: v: !elem n [ "system" ]) attrs)
../. # /default.nix
(import path)
];
};
mapHosts = dir: attrs @ { system ? system, ... }:
mapModules dir
(hostPath: mkHost hostPath attrs);
}

View File

@ -1,35 +0,0 @@
{ lib, ... }:
let
inherit (lib) mkOption types;
in
rec {
mkOpt = type: default:
mkOption { inherit type default; };
mkOpt' = type: default: description:
mkOption { inherit type default description; };
mkBoolOpt = default: mkOption {
inherit default;
type = types.bool;
example = true;
};
mkStringOpt = default: mkOption {
inherit default;
type = types.lines;
example = "";
};
mkListOfStringOpt = default: mkOption {
inherit default;
type = types.listOf types.lines;
example = [ "a" "b" "c" ];
};
mkPath = path:
if path != null
then toString path
else "";
}

View File

@ -5,6 +5,7 @@
./desktop/mimeapps.nix ./desktop/mimeapps.nix
./desktop/apps/qbittorrent.nix ./desktop/apps/qbittorrent.nix
./desktop/apps/slack.nix ./desktop/apps/slack.nix
./desktop/apps/thunderbird.nix
./desktop/apps/zoom.nix ./desktop/apps/zoom.nix
./desktop/browsers/firefox.nix ./desktop/browsers/firefox.nix
./desktop/gaming/emulators.nix ./desktop/gaming/emulators.nix
@ -12,6 +13,7 @@
./desktop/gaming/steam.nix ./desktop/gaming/steam.nix
./desktop/media/graphics.nix ./desktop/media/graphics.nix
./desktop/media/recording.nix ./desktop/media/recording.nix
./desktop/office/libreoffice.nix
./dev/cc.nix ./dev/cc.nix
./dev/java.nix ./dev/java.nix
./dev/lua.nix ./dev/lua.nix

View File

@ -1,14 +1,15 @@
{ config, lib, pkgs, ... }: { config, lib, pkgs, ... }:
with lib;
with lib.my;
let cfg = config.modules.desktop.apps.qbittorrent; let cfg = config.modules.desktop.apps.qbittorrent;
in { in {
options.modules.desktop.apps.qbittorrent = { options.modules.desktop.apps.qbittorrent = {
enable = mkBoolOpt false; enable = lib.mkOption {
default = false;
example = true;
};
}; };
config = mkIf cfg.enable { config = lib.mkIf cfg.enable {
user.packages = with pkgs; [ user.packages = with pkgs; [
qbittorrent qbittorrent
]; ];

View File

@ -1,14 +1,15 @@
{ config, lib, pkgs, ... }: { config, lib, pkgs, ... }:
with lib;
with lib.my;
let cfg = config.modules.desktop.apps.slack; let cfg = config.modules.desktop.apps.slack;
in { in {
options.modules.desktop.apps.slack = { options.modules.desktop.apps.slack = {
enable = mkBoolOpt false; enable = lib.mkOption {
default = false;
example = true;
};
}; };
config = mkIf cfg.enable { config = lib.mkIf cfg.enable {
user.packages = with pkgs; [ user.packages = with pkgs; [
slack slack
]; ];

View File

@ -0,0 +1,33 @@
{ config, lib, pkgs, inputs, ... }:
let cfg = config.modules.desktop.apps.thunderbird;
in {
options.modules.desktop.apps.thunderbird = {
enable = lib.mkOption {
default = false;
example = true;
};
};
config = lib.mkIf cfg.enable {
home.file.".thunderbird/Default/chrome/thunderbird-gnome-theme".source = inputs.thunderbird-gnome-theme;
home.programs.thunderbird = {
enable = true;
profiles.Default = {
isDefault = true;
userChrome = ''
@import "thunderbird-gnome-theme/userChrome.css";
'';
userContent = ''
@import "thunderbird-gnome-theme/userContent.css";
'';
settings = {
## GNOME theme
"toolkit.legacyUserProfileCustomizations.stylesheets" = true;
"svg.context-properties.content.enabled" = true;
};
};
};
};
}

View File

@ -1,14 +1,15 @@
{ config, lib, pkgs, ... }: { config, lib, pkgs, ... }:
with lib;
with lib.my;
let cfg = config.modules.desktop.apps.zoom; let cfg = config.modules.desktop.apps.zoom;
in { in {
options.modules.desktop.apps.zoom = { options.modules.desktop.apps.zoom = {
enable = mkBoolOpt false; enable = lib.mkOption {
default = false;
example = true;
};
}; };
config = mkIf cfg.enable { config = lib.mkIf cfg.enable {
user.packages = with pkgs; [ user.packages = with pkgs; [
zoom-us zoom-us
]; ];

View File

@ -1,14 +1,15 @@
{ config, lib, pkgs, inputs, ... }: { config, lib, pkgs, inputs, ... }:
with lib;
with lib.my;
let cfg = config.modules.desktop.browsers.firefox; let cfg = config.modules.desktop.browsers.firefox;
in { in {
options.modules.desktop.browsers.firefox = { options.modules.desktop.browsers.firefox = {
enable = mkBoolOpt false; enable = lib.mkOption {
default = false;
example = true;
};
}; };
config = mkIf cfg.enable { config = lib.mkIf cfg.enable {
home.file.".mozilla/firefox/Default/chrome/firefox-gnome-theme".source = inputs.firefox-gnome-theme; home.file.".mozilla/firefox/Default/chrome/firefox-gnome-theme".source = inputs.firefox-gnome-theme;
home.programs.firefox = { home.programs.firefox = {
@ -26,10 +27,11 @@ in {
''; '';
settings = { settings = {
## GNOME theme ## GNOME theme
"toolkit.legacyUserProfileCustomizations.stylesheets" = true; # Enable customChrome.cs "toolkit.legacyUserProfileCustomizations.stylesheets" = true; # Enable customChrome.css
"browser.uidensity" = 0; # Set UI density to normal "browser.uidensity" = 0; # Set UI density to normal
"svg.context-properties.content.enabled" = true; # Enable SVG context-propertes "svg.context-properties.content.enabled" = true; # Enable SVG context-propertes
"browser.theme.dark-private-windows" = false; # Disable private window dark theme "browser.theme.dark-private-windows" = false; # Disable private window dark theme
"widget.gtk.rounded-bottom-corners.enabled" = true; # Enable rounded bottom window corners
## Preferences ## Preferences
"browser.ctrlTab.sortByRecentlyUsed" = true; "browser.ctrlTab.sortByRecentlyUsed" = true;

View File

@ -1,32 +1,57 @@
{ config, lib, pkgs, ... }: { config, lib, pkgs, ... }:
with lib;
with lib.my;
let cfg = config.modules.desktop.gaming.emulators; let cfg = config.modules.desktop.gaming.emulators;
in { in {
options.modules.desktop.gaming.emulators = { options.modules.desktop.gaming.emulators = {
ds.enable = mkBoolOpt false; ds.enable = lib.mkOption {
gb.enable = mkBoolOpt false; default = false;
gba.enable = mkBoolOpt false; example = true;
gamecube.enable = mkBoolOpt false; };
ps2.enable = mkBoolOpt false; gb.enable = lib.mkOption {
ps3.enable = mkBoolOpt false; default = false;
psp.enable = mkBoolOpt false; example = true;
snes.enable = mkBoolOpt false; };
wii.enable = mkBoolOpt false; gba.enable = lib.mkOption {
default = false;
example = true;
};
gamecube.enable = lib.mkOption {
default = false;
example = true;
};
ps2.enable = lib.mkOption {
default = false;
example = true;
};
ps3.enable = lib.mkOption {
default = false;
example = true;
};
psp.enable = lib.mkOption {
default = false;
example = true;
};
snes.enable = lib.mkOption {
default = false;
example = true;
};
wii.enable = lib.mkOption {
default = false;
example = true;
};
}; };
config = { config = {
user.packages = with pkgs; [ user.packages = with pkgs; [
(mkIf cfg.ps2.enable pcsx2) (lib.mkIf cfg.ps2.enable pcsx2)
(mkIf cfg.ps3.enable rpcs3) (lib.mkIf cfg.ps3.enable rpcs3)
(mkIf cfg.psp.enable ppsspp) (lib.mkIf cfg.psp.enable ppsspp)
(mkIf cfg.ds.enable desmume) (lib.mkIf cfg.ds.enable desmume)
(mkIf (cfg.gba.enable || (lib.mkIf (cfg.gba.enable ||
cfg.gb.enable || cfg.gb.enable ||
cfg.snes.enable) cfg.snes.enable)
higan) higan)
(mkIf (cfg.wii.enable || (lib.mkIf (cfg.wii.enable ||
cfg.gamecube.enable) cfg.gamecube.enable)
dolphin-emu) dolphin-emu)
]; ];

View File

@ -1,14 +1,15 @@
{ config, lib, pkgs, ... }: { config, lib, pkgs, ... }:
with lib;
with lib.my;
let cfg = config.modules.desktop.gaming.lutris; let cfg = config.modules.desktop.gaming.lutris;
in { in {
options.modules.desktop.gaming.lutris = { options.modules.desktop.gaming.lutris = {
enable = mkBoolOpt false; enable = lib.mkOption {
default = false;
example = true;
};
}; };
config = mkIf cfg.enable { config = lib.mkIf cfg.enable {
user.packages = with pkgs; [ user.packages = with pkgs; [
lutris lutris
vulkan-loader vulkan-loader

View File

@ -1,14 +1,15 @@
{ config, lib, pkgs, ... }: { config, lib, pkgs, ... }:
with lib;
with lib.my;
let cfg = config.modules.desktop.gaming.steam; let cfg = config.modules.desktop.gaming.steam;
in { in {
options.modules.desktop.gaming.steam = { options.modules.desktop.gaming.steam = {
enable = mkBoolOpt false; enable = lib.mkOption {
default = false;
example = true;
};
}; };
config = mkIf cfg.enable { config = lib.mkIf cfg.enable {
programs.steam.enable = true; programs.steam.enable = true;
systemd.extraConfig = "DefaultLimitNOFILE=1048576"; systemd.extraConfig = "DefaultLimitNOFILE=1048576";

View File

@ -1,45 +1,52 @@
{ config, lib, pkgs, ... }: { config, lib, pkgs, inputs, ... }:
with lib;
with lib.my;
let cfg = config.modules.desktop.gnome; let cfg = config.modules.desktop.gnome;
in { in {
options.modules.desktop.gnome = { options.modules.desktop.gnome = {
enable = mkBoolOpt false; enable = lib.mkOption {
default = false;
example = true;
};
}; };
config = mkIf cfg.enable { config = lib.mkIf cfg.enable {
services.xserver = { services.xserver = {
enable = true; enable = true;
displayManager.gdm.enable = true; displayManager.gdm.enable = true;
desktopManager.gnome.enable = true; desktopManager.gnome.enable = true;
}; };
services.flatpak.enable = true;
programs.dconf.enable = true; programs.dconf.enable = true;
dconf.settings = { dconf.settings = {
"org/gnome/shell" = { "org/gnome/shell" = {
disable-user-extensions = false; disable-user-extensions = false;
enabled-extensions = [ enabled-extensions = [
"another-window-session-manager@gmail.com" # "another-window-session-manager@gmail.com"
"blur-my-shell@aunetx" "blur-my-shell@aunetx"
"burn-my-windows@schneegans.github.com" "burn-my-windows@schneegans.github.com"
"desktop-cube@schneegans.github.com" # "desktop-cube@schneegans.github.com"
"desktop-zoom@colin.kinlo.ch" # "desktop-zoom@colin.kinlo.ch"
"espresso@coadmunkee.github.com" "espresso@coadmunkee.github.com"
# "flypie@schneegans.github.com"
# "forge@jmmaranan.com" # "forge@jmmaranan.com"
"hue-lights@chlumskyvaclav@gmail.com" "hue-lights@chlumskyvaclav@gmail.com"
"just-perfection-desktop@just-perfection" "just-perfection-desktop@just-perfection"
# "pano@elhan.io"
# "paperwm@hedning:matrix.org"
# "search-light@icedman.github.com"
"space-bar@luchrioh" "space-bar@luchrioh"
# "smart-auto-move@khimaros.com" # "smart-auto-move@khimaros.com"
# "systemd-manager@hardpixel.eu" # "systemd-manager@hardpixel.eu"
# "tailscale-status@maxgallup.github.com" # "tailscale-status@maxgallup.github.com"
"tiling-assistant@leleat-on-github" # "tiling-assistant@leleat-on-github"
"Vitals@CoreCoding.com"
# "wsmatrix@martin.zurowietz.de" # "wsmatrix@martin.zurowietz.de"
]; ];
favorite-apps = [ favorite-apps = [
"firefox.desktop" "firefox.desktop"
"org.gnome.Nautilus.desktop" "org.gnome.Nautilus.desktop"
"org.gnome.Console.desktop"
]; ];
}; };
"org/gnome/shell/extensions/another-window-session-manager" = { "org/gnome/shell/extensions/another-window-session-manager" = {
@ -67,6 +74,9 @@ in {
"com.obsproject.Studio.desktop" "com.obsproject.Studio.desktop"
]; ];
}; };
"org/gnome/shell/extensions/paperwm" = {
use-default-background = true;
};
"org/gnome/shell/extensions/forge" = { "org/gnome/shell/extensions/forge" = {
window-gap-size = 8; window-gap-size = 8;
window-gap-hidden-on-single = false; window-gap-hidden-on-single = false;
@ -89,8 +99,8 @@ in {
window-gap = 8; window-gap = 8;
}; };
"org/gnome/desktop/background" = { "org/gnome/desktop/background" = {
picture-uri = "file://${pkgs.gnome.gnome-backgrounds}/share/backgrounds/gnome/adwaita-l.webp"; picture-uri = "file://${inputs.wallpapers}/Aqua.png";
picture-uri-dark = "file://${pkgs.gnome.gnome-backgrounds}/share/backgrounds/gnome/adwaita-d.webp"; picture-uri-dark = "file://${inputs.wallpapers}/Aqua.png";
}; };
"org/gtk/settings/file-chooser" = { "org/gtk/settings/file-chooser" = {
show-hidden = true; show-hidden = true;
@ -137,13 +147,15 @@ in {
}; };
}; };
fonts.fonts = with pkgs; [ fonts.packages = with pkgs; [
noto-fonts noto-fonts
ubuntu_font_family ubuntu_font_family
]; ];
user.packages = with pkgs; [ user.packages = with pkgs; [
celluloid celluloid
fragments
mission-center
]; ];
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
@ -160,18 +172,24 @@ in {
gnomeExtensions.desktop-cube gnomeExtensions.desktop-cube
gnomeExtensions.desktop-zoom gnomeExtensions.desktop-zoom
gnomeExtensions.espresso gnomeExtensions.espresso
gnome44Extensions."flypie@schneegans.github.com"
# gnomeExtensions.forge # gnomeExtensions.forge
# gnomeExtensions.gsnap # gnomeExtensions.gsnap
gnomeExtensions.hue-lights gnomeExtensions.hue-lights
gnomeExtensions.just-perfection gnomeExtensions.just-perfection
# gnomeExtensions.mutter-primary-gpu # gnomeExtensions.mutter-primary-gpu
gnomeExtensions.pano
gnomeExtensions.paperwm
# gnomeExtensions.pip-on-top # gnomeExtensions.pip-on-top
gnomeExtensions.rounded-window-corners
gnomeExtensions.search-light
gnomeExtensions.smart-auto-move gnomeExtensions.smart-auto-move
gnomeExtensions.space-bar gnomeExtensions.space-bar
gnomeExtensions.systemd-manager gnomeExtensions.systemd-manager
gnomeExtensions.tailscale-status gnomeExtensions.tailscale-status
gnomeExtensions.tiling-assistant gnomeExtensions.tiling-assistant
# gnomeExtensions.todotxt # gnomeExtensions.todotxt
gnomeExtensions.vitals
# gnomeExtensions.window-is-ready-remover # gnomeExtensions.window-is-ready-remover
# gnomeExtensions.worksets # gnomeExtensions.worksets
# gnomeExtensions.workspace-matrix # gnomeExtensions.workspace-matrix

View File

@ -1,21 +1,28 @@
{ config, lib, pkgs, ... }: { config, lib, pkgs, ... }:
with lib;
with lib.my;
let cfg = config.modules.desktop.media.graphics; let cfg = config.modules.desktop.media.graphics;
in { in {
options.modules.desktop.media.graphics = { options.modules.desktop.media.graphics = {
modeling.enable = mkBoolOpt false; modeling.enable = lib.mkOption {
raster.enable = mkBoolOpt false; default = false;
vector.enable = mkBoolOpt false; example = true;
};
raster.enable = lib.mkOption {
default = false;
example = true;
};
vector.enable = lib.mkOption {
default = false;
example = true;
};
}; };
config = { config = {
user.packages = with pkgs; [ user.packages = with pkgs; [
(mkIf cfg.modeling.enable blender) (lib.mkIf cfg.modeling.enable blender)
(mkIf cfg.raster.enable gimp) (lib.mkIf cfg.raster.enable gimp)
(mkIf cfg.raster.enable krita) (lib.mkIf cfg.raster.enable krita)
(mkIf cfg.vector.enable inkscape) (lib.mkIf cfg.vector.enable inkscape)
]; ];
}; };
} }

View File

@ -1,12 +1,16 @@
{ config, lib, pkgs, ... }: { config, lib, pkgs, ... }:
with lib;
with lib.my;
let cfg = config.modules.desktop.media.recording; let cfg = config.modules.desktop.media.recording;
in { in {
options.modules.desktop.media.recording = { options.modules.desktop.media.recording = {
audio.enable = mkBoolOpt false; audio.enable = lib.mkOption {
video.enable = mkBoolOpt false; default = false;
example = true;
};
video.enable = lib.mkOption {
default = false;
example = true;
};
}; };
config = { config = {

View File

@ -1,17 +1,18 @@
{ config, lib, pkgs, ... }: { config, lib, pkgs, ... }:
with lib;
with lib.my;
let let
cfg = config.modules.desktop.mimeapps; cfg = config.modules.desktop.mimeapps;
avApp = "io.github.celluloid_player.Celluloid.desktop"; avApp = "io.github.celluloid_player.Celluloid.desktop";
imageApp = "org.gnome.eog.desktop"; imageApp = "org.gnome.eog.desktop";
in { in {
options.modules.desktop.mimeapps = { options.modules.desktop.mimeapps = {
enable = mkBoolOpt false; enable = lib.mkOption {
default = false;
example = true;
};
}; };
config = mkIf cfg.enable { config = lib.mkIf cfg.enable {
xdg.mime.defaultApplications = { xdg.mime.defaultApplications = {
# Audio/video # Audio/video
"audio/x-vorbis+ogg" = avApp; "audio/x-vorbis+ogg" = avApp;

View File

@ -0,0 +1,17 @@
{ config, lib, pkgs, ... }:
let cfg = config.modules.desktop.office.libreoffice;
in {
options.modules.desktop.office.libreoffice = {
enable = lib.mkOption {
default = false;
example = true;
};
};
config = lib.mkIf cfg.enable {
user.packages = with pkgs; [
libreoffice
];
};
}

View File

@ -1,14 +1,15 @@
{ config, lib, pkgs, ... }: { config, lib, pkgs, ... }:
with lib;
with lib.my;
let cfg = config.modules.dev.cc; let cfg = config.modules.dev.cc;
in { in {
options.modules.dev.cc = { options.modules.dev.cc = {
enable = mkBoolOpt false; enable = lib.mkOption {
default = false;
example = true;
};
}; };
config = mkIf cfg.enable { config = lib.mkIf cfg.enable {
user.packages = with pkgs; [ user.packages = with pkgs; [
clang clang
gcc gcc

View File

@ -1,14 +1,15 @@
{ config, lib, pkgs, ... }: { config, lib, pkgs, ... }:
with lib;
with lib.my;
let cfg = config.modules.dev.java; let cfg = config.modules.dev.java;
in { in {
options.modules.dev.java = { options.modules.dev.java = {
enable = mkBoolOpt false; enable = lib.mkOption {
default = false;
example = true;
};
}; };
config = mkIf cfg.enable { config = lib.mkIf cfg.enable {
user.packages = with pkgs; [ user.packages = with pkgs; [
jdk jdk
]; ];

View File

@ -1,14 +1,15 @@
{ config, lib, pkgs, ... }: { config, lib, pkgs, ... }:
with lib;
with lib.my;
let cfg = config.modules.dev.lua; let cfg = config.modules.dev.lua;
in { in {
options.modules.dev.lua = { options.modules.dev.lua = {
enable = mkBoolOpt false; enable = lib.mkOption {
default = false;
example = true;
};
}; };
config = mkIf cfg.enable { config = lib.mkIf cfg.enable {
user.packages = with pkgs; [ user.packages = with pkgs; [
lua lua
]; ];

View File

@ -1,14 +1,15 @@
{ config, lib, pkgs, ... }: { config, lib, pkgs, ... }:
with lib;
with lib.my;
let cfg = config.modules.dev.node; let cfg = config.modules.dev.node;
in { in {
options.modules.dev.node = { options.modules.dev.node = {
enable = mkBoolOpt false; enable = lib.mkOption {
default = false;
example = true;
};
}; };
config = mkIf cfg.enable { config = lib.mkIf cfg.enable {
user.packages = with pkgs; [ user.packages = with pkgs; [
nodejs_latest nodejs_latest
]; ];

View File

@ -1,14 +1,15 @@
{ config, lib, pkgs, ... }: { config, lib, pkgs, ... }:
with lib;
with lib.my;
let cfg = config.modules.dev.python; let cfg = config.modules.dev.python;
in { in {
options.modules.dev.python = { options.modules.dev.python = {
enable = mkBoolOpt false; enable = lib.mkOption {
default = false;
example = true;
};
}; };
config = mkIf cfg.enable { config = lib.mkIf cfg.enable {
user.packages = with pkgs; [ user.packages = with pkgs; [
python310 python310
]; ];

View File

@ -1,14 +1,15 @@
{ config, lib, pkgs, ... }: { config, lib, pkgs, ... }:
with lib;
with lib.my;
let cfg = config.modules.dev.rust; let cfg = config.modules.dev.rust;
in { in {
options.modules.dev.rust = { options.modules.dev.rust = {
enable = mkBoolOpt false; enable = lib.mkOption {
default = false;
example = true;
};
}; };
config = mkIf cfg.enable { config = lib.mkIf cfg.enable {
user.packages = with pkgs; [ user.packages = with pkgs; [
rustc rustc
rustup rustup

View File

@ -1,14 +1,15 @@
{ config, lib, pkgs, ... }: { config, lib, pkgs, ... }:
with lib;
with lib.my;
let cfg = config.modules.dev.scala; let cfg = config.modules.dev.scala;
in { in {
options.modules.dev.scala = { options.modules.dev.scala = {
enable = mkBoolOpt false; enable = lib.mkOption {
default = false;
example = true;
};
}; };
config = mkIf cfg.enable { config = lib.mkIf cfg.enable {
user.packages = with pkgs; [ user.packages = with pkgs; [
jdk jdk
sbt sbt

View File

@ -1,14 +1,15 @@
{ config, lib, pkgs, ... }: { config, lib, pkgs, ... }:
with lib;
with lib.my;
let cfg = config.modules.dev.shell; let cfg = config.modules.dev.shell;
in { in {
options.modules.dev.shell = { options.modules.dev.shell = {
enable = mkBoolOpt false; enable = lib.mkOption {
default = false;
example = true;
};
}; };
config = mkIf cfg.enable { config = lib.mkIf cfg.enable {
user.packages = with pkgs; [ user.packages = with pkgs; [
shellcheck shellcheck
]; ];

View File

@ -1,14 +1,15 @@
{ config, lib, pkgs, ... }: { config, lib, pkgs, ... }:
with lib;
with lib.my;
let cfg = config.modules.dev.zig; let cfg = config.modules.dev.zig;
in { in {
options.modules.dev.zig = { options.modules.dev.zig = {
enable = mkBoolOpt false; enable = lib.mkOption {
default = false;
example = true;
};
}; };
config = mkIf cfg.enable { config = lib.mkIf cfg.enable {
user.packages = with pkgs; [ user.packages = with pkgs; [
zig zig
]; ];

View File

@ -1,16 +1,17 @@
{ config, lib, pkgs, ... }: { config, lib, pkgs, ... }:
with lib;
with lib.my;
let let
cfg = config.modules.editors.neovim; cfg = config.modules.editors.neovim;
dev = config.modules.dev; dev = config.modules.dev;
in { in {
options.modules.editors.neovim = { options.modules.editors.neovim = {
enable = mkBoolOpt false; enable = lib.mkOption {
default = false;
example = true;
};
}; };
config = mkIf cfg.enable { config = lib.mkIf cfg.enable {
user.packages = with pkgs; [ user.packages = with pkgs; [
(neovim.override { (neovim.override {
configure = { configure = {

View File

@ -1,16 +1,49 @@
{ config, lib, pkgs, ... }: { config, lib, pkgs, ... }:
with lib;
with lib.my;
let cfg = config.modules.editors.vscode; let cfg = config.modules.editors.vscode;
in { in {
options.modules.editors.vscode = { options.modules.editors.vscode = {
enable = mkBoolOpt false; enable = lib.mkOption {
default = false;
example = true;
};
}; };
config = mkIf cfg.enable { config = lib.mkIf cfg.enable {
environment.sessionVariables.NIXOS_OZONE_WL = "1";
home.programs.vscode = { home.programs.vscode = {
enable = true; enable = true;
extensions = with pkgs.vscode-extensions; [
asvetliakov.vscode-neovim
brettm12345.nixfmt-vscode
coolbear.systemd-unit-file
editorconfig.editorconfig
golang.go
graphql.vscode-graphql-syntax
mattn.lisp
# mkhl.direnv
ms-python.vscode-pylance
ms-vscode.cpptools
ms-vscode.hexeditor
piousdeer.adwaita-theme
# redhat.java
# sumneko.lua
];
userSettings = {
"editor.renderLineHighlight" = "none";
"extensions.experimental.affinity" = {
"asvetliakov.vscode-neovim" = 1;
};
"files.autoSave" = "off";
"window.autoDetectColorScheme" = true;
"window.commandCenter" = true;
"window.titleBarStyle" = "custom";
"workbench.iconTheme" = null;
"workbench.preferredDarkColorTheme" = "Adwaita Dark";
"workbench.preferredLightColorTheme" = "Adwaita Light";
"workbench.tree.indent" = 12;
};
}; };
}; };
} }

View File

@ -1,15 +1,19 @@
{ config, lib, pkgs, ... }: { config, lib, pkgs, ... }:
with lib;
with lib.my;
let cfg = config.modules.networking.tailscale; let cfg = config.modules.networking.tailscale;
in { in {
options.modules.networking.tailscale = { options.modules.networking.tailscale = {
enable = mkBoolOpt false; enable = lib.mkOption {
restrictSSH = mkBoolOpt true; default = false;
example = true;
};
restrictSSH = lib.mkOption {
default = true;
example = true;
};
}; };
config = mkIf cfg.enable { config = lib.mkIf cfg.enable {
services.tailscale.enable = true; services.tailscale.enable = true;
services.openssh.openFirewall = !cfg.restrictSSH; services.openssh.openFirewall = !cfg.restrictSSH;
networking.firewall = { networking.firewall = {

View File

@ -1,21 +1,20 @@
{ config, options, lib, home-manager, ... }: { config, options, lib, home-manager, ... }:
with lib; with lib;
with lib.my;
{ {
options = with types; { options = with types; {
user = mkOpt attrs { }; user = mkOption { type = attrs; default = { }; };
home = { home = {
configFile = mkOpt' attrs { } "Files to place in $XDG_CONFIG_HOME"; configFile = mkOption { type = attrs; default = { }; description = "Files to place in $XDG_CONFIG_HOME"; };
dataFile = mkOpt' attrs { } "Files to place in $XDG_DATA_HOME"; dataFile = mkOption { type = attrs; default = { }; description = "Files to place in $XDG_DATA_HOME"; };
file = mkOpt' attrs { } "Files to place directly in $HOME"; file = mkOption { type = attrs; default = { }; description = "Files to place directly in $HOME"; };
packages = mkOpt' attrs { } "User-level installed packages"; packages = mkOption { type = attrs; default = { }; description = "User-level installed packages"; };
programs = mkOpt' attrs { } "Programs managed directly from home-manager"; programs = mkOption { type = attrs; default = { }; description = "Programs managed directly from home-manager"; };
services = mkOpt' attrs { } "Services managed directly from home-manager"; services = mkOption { type = attrs; default = { }; description = "Services managed directly from home-manager"; };
}; };
dconf.settings = mkOpt' attrs { } "dconf settings to enable"; dconf.settings = mkOption { type = attrs; default = { }; description = "dconf settings to enable"; };
env = mkOption { env = mkOption {
type = attrsOf (oneOf [ str path (listOf (either str path)) ]); type = attrsOf (oneOf [ str path (listOf (either str path)) ]);
@ -36,7 +35,7 @@ with lib.my;
in { in {
inherit name; inherit name;
isNormalUser = true; isNormalUser = true;
extraGroups = [ "networkmanager" "wheel" ]; extraGroups = [ "networkmanager" "wheel" "lxd" ];
description = "Jordan Holt"; description = "Jordan Holt";
useDefaultShell = true; useDefaultShell = true;
openssh.authorizedKeys.keys = [ openssh.authorizedKeys.keys = [
@ -69,8 +68,6 @@ with lib.my;
users.users.${config.user.name} = mkAliasDefinitions options.user; users.users.${config.user.name} = mkAliasDefinitions options.user;
nixpkgs.config.allowUnfree = true;
environment.extraInit = environment.extraInit =
concatStringsSep "\n" concatStringsSep "\n"
(mapAttrsToList (n: v: "export ${n}=\"${v}\"") config.env); (mapAttrsToList (n: v: "export ${n}=\"${v}\"") config.env);

View File

@ -1,14 +1,15 @@
{ config, lib, pkgs, ... }: { config, lib, pkgs, ... }:
with lib;
with lib.my;
let cfg = config.modules.security.gpg; let cfg = config.modules.security.gpg;
in { in {
options.modules.security.gpg = { options.modules.security.gpg = {
enable = mkBoolOpt false; enable = lib.mkOption {
default = false;
example = true;
};
}; };
config = mkIf cfg.enable { config = lib.mkIf cfg.enable {
home.programs.gpg = { home.programs.gpg = {
enable = true; enable = true;
}; };

View File

@ -1,14 +1,15 @@
{ config, lib, pkgs, ... }: { config, lib, pkgs, ... }:
with lib;
with lib.my;
let cfg = config.modules.security.pass; let cfg = config.modules.security.pass;
in { in {
options.modules.security.pass = { options.modules.security.pass = {
enable = mkBoolOpt false; enable = lib.mkOption {
default = false;
example = true;
};
}; };
config = mkIf cfg.enable { config = lib.mkIf cfg.enable {
home.programs.password-store = { home.programs.password-store = {
enable = true; enable = true;
package = pkgs.pass.withExtensions (exts: [ exts.pass-otp ]); package = pkgs.pass.withExtensions (exts: [ exts.pass-otp ]);

View File

@ -1,14 +1,15 @@
{ config, lib, pkgs, ... }: { config, lib, pkgs, ... }:
with lib;
with lib.my;
let cfg = config.modules.shell.git; let cfg = config.modules.shell.git;
in { in {
options.modules.shell.git = { options.modules.shell.git = {
enable = mkBoolOpt false; enable = lib.mkOption {
default = false;
example = true;
};
}; };
config = mkIf cfg.enable { config = lib.mkIf cfg.enable {
home.programs.git = { home.programs.git = {
enable = true; enable = true;
aliases = { aliases = {

View File

@ -1,14 +1,15 @@
{ config, lib, pkgs, ... }: { config, lib, pkgs, ... }:
with lib;
with lib.my;
let cfg = config.modules.shell.zsh; let cfg = config.modules.shell.zsh;
in { in {
options.modules.shell.zsh = { options.modules.shell.zsh = {
enable = mkBoolOpt false; enable = lib.mkOption {
default = false;
example = true;
};
}; };
config = mkIf cfg.enable { config = lib.mkIf cfg.enable {
users.defaultUserShell = pkgs.zsh; users.defaultUserShell = pkgs.zsh;
programs.zsh = { programs.zsh = {

View File

@ -3,8 +3,8 @@ self: super:
gnome = super.gnome.overrideScope' (gself: gsuper: { gnome = super.gnome.overrideScope' (gself: gsuper: {
mutter = gsuper.mutter.overrideAttrs (oldAttrs: { mutter = gsuper.mutter.overrideAttrs (oldAttrs: {
src = super.fetchurl { src = super.fetchurl {
url = "https://gitlab.gnome.org/Community/Ubuntu/mutter/-/archive/triple-buffering-v4-44/mutter-triple-buffering-v4-44.tar.gz"; url = "https://gitlab.gnome.org/Community/Ubuntu/mutter/-/archive/triple-buffering-v4-45/mutter-triple-buffering-v4-45.tar.gz";
sha256 = "Xgiu1ifgPijXPq6rYfPX81Nq97jw9m/hoWTKAgC3aeI="; sha256 = "tN+zQ5brk+hc+louIipqPV/Bqft42ghKOzjZZMj5Q8A=";
}; };
}); });
}); });

10
secrets.nix Normal file
View File

@ -0,0 +1,10 @@
let
jordan = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILVHTjsyMIV4THNw6yz0OxAxGnC+41gX72UrPqTzR+OS";
users = [ jordan ];
odyssey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJre8/cjdoUnbTu0x4ClTITcq4lq+FjpEyJBbLbOlox7";
systems = [ odyssey ];
in
{
"secrets/odyssey_borg_passphrase.age".publicKeys = [ jordan odyssey ];
}

Binary file not shown.