Compare commits

...

531 Commits

Author SHA1 Message Date
pederbs 4b80118965 fixups 2026-06-29 15:15:00 +02:00
pederbs 6716f07adf disable nix-required-mounts on remote builders 2026-06-29 15:13:48 +02:00
pederbs ee03c10ce6 eple: 2511 -> 2605 2026-06-26 15:56:53 +02:00
pederbs 48460b2910 lkajsdlakjdlkasjd 2026-06-12 21:29:26 +02:00
pederbs 9414adda53 alskjdlakjd 2026-06-12 21:19:11 +02:00
pederbs ffef7811e1 laksjdlakjd 2026-06-08 00:34:11 +02:00
pederbs e2a0d5c72b garp: 2511->edge, ghost in the shell 2026-06-05 19:32:49 +02:00
pederbs a6b2f6aebd home.pbsds: avoid 'complete' in bashMinimal/headless 2026-06-05 16:53:18 +02:00
pederbs 0e62475587 nord: 2511 -> 2605 2026-06-05 16:39:15 +02:00
pederbs 98d1ffa8c8 nox: 2511 -> 2605 2026-05-31 02:12:56 +02:00
pederbs cbf6c81b08 laskjdlaksjd 2026-05-20 17:01:26 +02:00
pederbs 279f8d9608 aksjdalskjd 2026-05-20 16:58:48 +02:00
pederbs f918748161 simplify pkgsCuda exclusion 2026-05-20 16:47:38 +02:00
pederbs 6e1478574e a,skdjalksjdl 2026-05-20 15:54:41 +02:00
pederbs 775a2ee079 laksjdalksjd 2026-05-20 15:18:53 +02:00
pederbs 72a5ca6e5f laksjdlakjdlaksdj 2026-05-20 13:35:31 +02:00
pederbs 34f13c71a7 nixos-shell 2026-05-13 05:13:14 +02:00
pederbs a431f47da2 mprocs is fixed 2026-05-08 01:33:24 +02:00
pederbs c8060bf6f5 ljkasdjklasdljkads 2026-05-01 02:14:43 +02:00
pederbs f9c961bf4f fgit 2026-04-30 15:21:55 +02:00
pederbs 5a2927372b nvidia 580 legacy driver 2026-04-19 17:55:34 +02:00
pederbs 20968b46bc flake.lock: Update
Flake lock file updates:

• Updated input 'home-manager-2511':
    'github:nix-community/home-manager/0759e0e137305bc9d0c52c204c6d8dffe6f601a6?narHash=sha256-o8hrZrigP0JYcwnglCp8Zi8jQafWsxbDtRRPzuVwFxY%3D' (2026-03-16)
  → 'github:nix-community/home-manager/0d02ec1d0a05f88ef9e74b516842900c41f0f2fe?narHash=sha256-KY6HsebJHEe5nHOWP7ur09mb0drGxYSzE3rQxy62rJo%3D' (2026-04-05)
• Updated input 'home-manager-edge':
    'github:nix-community/home-manager/57d5560ee92a424fb71fde800acd6ed2c725dfce?narHash=sha256-%2BbRqxoFCJFO9ZTFhcCkzNXbDT3b8AEk88fyjB7Is6eo%3D' (2026-03-16)
  → 'github:nix-community/home-manager/5b56ad02dc643808b8af6d5f3ff179e2ce9593f4?narHash=sha256-Lh5Ns9DI67E%2BlSMOCGK0S%2BmFPy0mz0yOGiJTUXiR9JI%3D' (2026-04-19)
• Updated input 'nix-index-database':
    'github:Mic92/nix-index-database/8faeb68130df077450451b6734a221ba0d6cde42?narHash=sha256-mHSRNrT1rjeYBgkAlj07dW3%2B1nFEgAd8Gu6lgyfT9DU%3D' (2026-03-15)
  → 'github:Mic92/nix-index-database/3b9653a107c736222b5ae0d4036dd3b885219065?narHash=sha256-28Gqz0GDpGsBv8GtAn2dywEQRr%2BCtTDsD5J7VD6icBE%3D' (2026-04-19)
• Updated input 'nixos-hardware':
    'github:NixOS/nixos-hardware/f8e82243fd601afb9f59ad230958bd073795cbfe?narHash=sha256-qonGfS2lzCgCl59Zl63jF6dIRRpvW3AJooBGMaXjHiY%3D' (2026-03-15)
  → 'github:NixOS/nixos-hardware/c775c2772ba56e906cbeb4e0b2db19079ef11ff7?narHash=sha256-2ZBhDNZZwYkRmefK5XLOusCJHnoeKkoN95hoSGgMxWM%3D' (2026-04-06)
• Updated input 'nixpkgs-2511':
    'https://releases.nixos.org/nixos/25.11/nixos-25.11.7702.48652e9d5aea/nixexprs.tar.xz?narHash=sha256-HrGloA/j2MflqpYyyq2xeOYCQTk4eUIR7LfqXkW8bec%3D' (2026-03-16)
  → 'https://releases.nixos.org/nixos/25.11/nixos-25.11.9418.c7f47036d3df/nixexprs.tar.xz?narHash=sha256-EVobw7mrC4S2%2BTuLll6DMAX3p3VTc%2Br4UmMeFRhOvB0%3D' (2026-04-17)
• Updated input 'nixpkgs-edge':
    'https://releases.nixos.org/nixos/unstable/nixos-26.05pre963917.5b2c2d84341b/nixexprs.tar.xz?narHash=sha256-VZOCgpW2WxpWrw4ZNwgA%2B9MZ/QNTYM2iNTiBMxaTX00%3D' (2026-03-16)
  → 'https://releases.nixos.org/nixos/unstable/nixos-26.05pre980183.4bd9165a9165/nixexprs.tar.xz?narHash=sha256-Gk2T0tDDDAs319hp/ak%2BbAIUG5bPMvnNEjPV8CS86Fg%3D' (2026-04-14)
• Updated input 'sops-nix-2511':
    'github:Mic92/sops-nix/8237de83e8200d16fe0c4467b02a1c608ff28044?narHash=sha256-VCiDjE8kNs8uCAK73Ezk1r3fFuc4JepvW07YFqaN968%3D' (2026-03-16)
  → 'github:Mic92/sops-nix/d4971dd58c6627bfee52a1ad4237637c0a2fb0cd?narHash=sha256-Zm6bxLNnEOYuS/SzrAGsYuXSwk3cbkRQZY0fJnk8a5M%3D' (2026-04-13)
• Updated input 'sops-nix-edge':
    'github:Mic92/sops-nix/8237de83e8200d16fe0c4467b02a1c608ff28044?narHash=sha256-VCiDjE8kNs8uCAK73Ezk1r3fFuc4JepvW07YFqaN968%3D' (2026-03-16)
  → 'github:Mic92/sops-nix/d4971dd58c6627bfee52a1ad4237637c0a2fb0cd?narHash=sha256-Zm6bxLNnEOYuS/SzrAGsYuXSwk3cbkRQZY0fJnk8a5M%3D' (2026-04-13)
• Updated input 'system-manager-edge':
    'github:numtide/system-manager/06c040b8712e78c417824af9a4d5b35d295c429b?narHash=sha256-gAlzRG8sNJpmgmnhE/yOQP4nn0Z2DkWYDFAwH9fexEg%3D' (2026-03-17)
  → 'github:numtide/system-manager/39b3806f065ed131d7abb607ad194a63891e020a?narHash=sha256-bqjt0B5j0IBoc3IwM25srMZuZ26Jlk4uZi%2B9kTuU9ME%3D' (2026-04-14)
2026-04-19 16:55:35 +02:00
pederbs 81f05f5d72 lkajsdlkjasdlksaj 2026-04-18 23:34:43 +02:00
pederbs 3ea8a7ade9 lkjdsalkjlkjsa 2026-04-12 01:29:33 +02:00
pederbs 8e4e251ba2 kjasdkjads 2026-04-12 01:29:04 +02:00
pederbs ae9dcd5b67 crosspipe is not on 25.11 2026-03-18 02:04:58 +01:00
pederbs 63b4a12662 x-men gone wild 2026-03-18 02:04:38 +01:00
pederbs 9aeea70eb7 flake.lock: Update
Flake lock file updates:

• Updated input 'home-manager-2511':
    'github:nix-community/home-manager/a07a44a839eb036e950bf397d9b782916f8dcab3?narHash=sha256-8C%2By46xA9bxcchj9GeDPJaRUDApaA3sy2fhJr1bTbUw%3D' (2026-03-01)
  → 'github:nix-community/home-manager/0759e0e137305bc9d0c52c204c6d8dffe6f601a6?narHash=sha256-o8hrZrigP0JYcwnglCp8Zi8jQafWsxbDtRRPzuVwFxY%3D' (2026-03-16)
• Updated input 'home-manager-edge':
    'github:nix-community/home-manager/e5b1f87841810fc24772bf4389f9793702000c9b?narHash=sha256-BVVyAodLcAD8KOtR3yCStBHSE0WAH/xQWH9f0qsxbmk%3D' (2025-12-08)
  → 'github:nix-community/home-manager/57d5560ee92a424fb71fde800acd6ed2c725dfce?narHash=sha256-%2BbRqxoFCJFO9ZTFhcCkzNXbDT3b8AEk88fyjB7Is6eo%3D' (2026-03-16)
• Updated input 'nix-index-database':
    'github:Mic92/nix-index-database/82befcf7dc77c909b0f2a09f5da910ec95c5b78f?narHash=sha256-d3NBA9zEtBu2JFMnTBqWj7Tmi7R5OikoU2ycrdhQEws%3D' (2025-12-09)
  → 'github:Mic92/nix-index-database/8faeb68130df077450451b6734a221ba0d6cde42?narHash=sha256-mHSRNrT1rjeYBgkAlj07dW3%2B1nFEgAd8Gu6lgyfT9DU%3D' (2026-03-15)
• Updated input 'nixos-generators-2405':
    'github:nix-community/nixos-generators/032a1878682fafe829edfcf5fdfad635a2efe748?narHash=sha256-NHF7QWa0ZPT8hsJrvijREW3%2BnifmF2rTXgS2v0tpcEA%3D' (2025-11-27)
  → 'github:nix-community/nixos-generators/8946737ff703382fda7623b9fab071d037e897d5?narHash=sha256-nnVmNNKBi1YiBNPhKclNYDORoHkuKipoz7EtVnXO50A%3D' (2026-01-30)
• Updated input 'nixos-hardware':
    'github:NixOS/nixos-hardware/41c6b421bdc301b2624486e11905c9af7b8ec68e?narHash=sha256-qwcDBtrRvJbrrnv1lf/pREQi8t2hWZxVAyeMo7/E9sw%3D' (2026-02-24)
  → 'github:NixOS/nixos-hardware/f8e82243fd601afb9f59ad230958bd073795cbfe?narHash=sha256-qonGfS2lzCgCl59Zl63jF6dIRRpvW3AJooBGMaXjHiY%3D' (2026-03-15)
• Updated input 'nixpkgs-2511':
    'https://releases.nixos.org/nixos/25.11/nixos-25.11.6561.1267bb4920d0/nixexprs.tar.xz?narHash=sha256-8rDP2AfBFi0DI9idtlWeK73XWJScPvwgokuYkSnVY/Y%3D' (2026-02-25)
  → 'https://releases.nixos.org/nixos/25.11/nixos-25.11.7702.48652e9d5aea/nixexprs.tar.xz?narHash=sha256-HrGloA/j2MflqpYyyq2xeOYCQTk4eUIR7LfqXkW8bec%3D' (2026-03-16)
• Updated input 'nixpkgs-edge':
    'https://releases.nixos.org/nixos/unstable/nixos-26.05pre955442.dd9b079222d4/nixexprs.tar.xz?narHash=sha256-UCaQQ8zmHUocQIgCl%2B53Jj6NuwqrVKtmv7obE9r6wnw%3D' (2026-02-27)
  → 'https://releases.nixos.org/nixos/unstable/nixos-26.05pre963917.5b2c2d84341b/nixexprs.tar.xz?narHash=sha256-VZOCgpW2WxpWrw4ZNwgA%2B9MZ/QNTYM2iNTiBMxaTX00%3D' (2026-03-16)
• Updated input 'sops-nix-2305':
    'github:Mic92/sops-nix/7fd1416aba1865eddcdec5bb11339b7222c2363e?narHash=sha256-qdBzo6puTgG4G2RHG0PkADg22ZnQo1JmSVFRxrD4QM4%3D' (2025-12-08)
  → 'github:Mic92/sops-nix/8237de83e8200d16fe0c4467b02a1c608ff28044?narHash=sha256-VCiDjE8kNs8uCAK73Ezk1r3fFuc4JepvW07YFqaN968%3D' (2026-03-16)
• Updated input 'sops-nix-2311':
    'github:Mic92/sops-nix/7fd1416aba1865eddcdec5bb11339b7222c2363e?narHash=sha256-qdBzo6puTgG4G2RHG0PkADg22ZnQo1JmSVFRxrD4QM4%3D' (2025-12-08)
  → 'github:Mic92/sops-nix/8237de83e8200d16fe0c4467b02a1c608ff28044?narHash=sha256-VCiDjE8kNs8uCAK73Ezk1r3fFuc4JepvW07YFqaN968%3D' (2026-03-16)
• Updated input 'sops-nix-2405':
    'github:Mic92/sops-nix/7fd1416aba1865eddcdec5bb11339b7222c2363e?narHash=sha256-qdBzo6puTgG4G2RHG0PkADg22ZnQo1JmSVFRxrD4QM4%3D' (2025-12-08)
  → 'github:Mic92/sops-nix/8237de83e8200d16fe0c4467b02a1c608ff28044?narHash=sha256-VCiDjE8kNs8uCAK73Ezk1r3fFuc4JepvW07YFqaN968%3D' (2026-03-16)
• Updated input 'sops-nix-2411':
    'github:Mic92/sops-nix/7fd1416aba1865eddcdec5bb11339b7222c2363e?narHash=sha256-qdBzo6puTgG4G2RHG0PkADg22ZnQo1JmSVFRxrD4QM4%3D' (2025-12-08)
  → 'github:Mic92/sops-nix/8237de83e8200d16fe0c4467b02a1c608ff28044?narHash=sha256-VCiDjE8kNs8uCAK73Ezk1r3fFuc4JepvW07YFqaN968%3D' (2026-03-16)
• Updated input 'sops-nix-2505':
    'github:Mic92/sops-nix/d8be5ea4cd3bc363492ab5bc6e874ccdc5465fe4?narHash=sha256-YHykQg0h9hrlZGpMcywnaFzQ1Kn/5YNCCOSaaAl6z7Q%3D' (2026-03-01)
  → 'github:Mic92/sops-nix/8237de83e8200d16fe0c4467b02a1c608ff28044?narHash=sha256-VCiDjE8kNs8uCAK73Ezk1r3fFuc4JepvW07YFqaN968%3D' (2026-03-16)
• Updated input 'sops-nix-2511':
    'github:Mic92/sops-nix/d8be5ea4cd3bc363492ab5bc6e874ccdc5465fe4?narHash=sha256-YHykQg0h9hrlZGpMcywnaFzQ1Kn/5YNCCOSaaAl6z7Q%3D' (2026-03-01)
  → 'github:Mic92/sops-nix/8237de83e8200d16fe0c4467b02a1c608ff28044?narHash=sha256-VCiDjE8kNs8uCAK73Ezk1r3fFuc4JepvW07YFqaN968%3D' (2026-03-16)
• Updated input 'sops-nix-edge':
    'github:Mic92/sops-nix/7fd1416aba1865eddcdec5bb11339b7222c2363e?narHash=sha256-qdBzo6puTgG4G2RHG0PkADg22ZnQo1JmSVFRxrD4QM4%3D' (2025-12-08)
  → 'github:Mic92/sops-nix/8237de83e8200d16fe0c4467b02a1c608ff28044?narHash=sha256-VCiDjE8kNs8uCAK73Ezk1r3fFuc4JepvW07YFqaN968%3D' (2026-03-16)
• Updated input 'system-manager-edge':
    'github:numtide/system-manager/a0343ab10763fbbfcf8d3b69c8341c18b1b1f215?narHash=sha256-m6etiBLSMajunnbUvEI1Pc/jNu4naImalgQnctVJ1/k%3D' (2025-11-27)
  → 'github:numtide/system-manager/06c040b8712e78c417824af9a4d5b35d295c429b?narHash=sha256-gAlzRG8sNJpmgmnhE/yOQP4nn0Z2DkWYDFAwH9fexEg%3D' (2026-03-17)
• Added input 'system-manager-edge/flake-compat':
    'github:edolstra/flake-compat/5edf11c44bc78a0d334f6334cdaf7d60d732daab?narHash=sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns%3D' (2025-12-29)
• Added input 'system-manager-edge/userborn':
    'github:jfroche/userborn/55c2cd7952c207a62736a5bbd9499ea73da18d24?narHash=sha256-q2pnlX2IW0kg80GLFnwWd/GigIpkuZnyKPLhrgJql3E%3D' (2026-02-06)
• Added input 'system-manager-edge/userborn/flake-compat':
    follows 'system-manager-edge/flake-compat'
• Added input 'system-manager-edge/userborn/flake-parts':
    'github:hercules-ci/flake-parts/80daad04eddbbf5a4d883996a73f3f542fa437ac?narHash=sha256-PVvu7OqHBGWN16zSi6tEmPwwHQ4rLPU9Plvs8/1TUBY%3D' (2026-01-11)
• Added input 'system-manager-edge/userborn/flake-parts/nixpkgs-lib':
    follows 'system-manager-edge/userborn/nixpkgs'
• Added input 'system-manager-edge/userborn/nixpkgs':
    follows 'system-manager-edge/nixpkgs'
• Added input 'system-manager-edge/userborn/pre-commit-hooks-nix':
    'github:cachix/pre-commit-hooks.nix/a1ef738813b15cf8ec759bdff5761b027e3e1d23?narHash=sha256-Efs3VUPelRduf3PpfPP2ovEB4CXT7vHf8W%2Bxc49RL/U%3D' (2026-01-22)
• Added input 'system-manager-edge/userborn/pre-commit-hooks-nix/flake-compat':
    follows 'system-manager-edge/userborn/flake-compat'
• Added input 'system-manager-edge/userborn/pre-commit-hooks-nix/gitignore':
    'github:hercules-ci/gitignore.nix/637db329424fd7e46cf4185293b9cc8c88c95394?narHash=sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs%3D' (2024-02-28)
• Added input 'system-manager-edge/userborn/pre-commit-hooks-nix/gitignore/nixpkgs':
    follows 'system-manager-edge/userborn/pre-commit-hooks-nix/nixpkgs'
• Added input 'system-manager-edge/userborn/pre-commit-hooks-nix/nixpkgs':
    follows 'system-manager-edge/userborn/nixpkgs'
• Added input 'system-manager-edge/userborn/systems':
    'github:nix-systems/default/da67096a3b9bf56a91d16901293e51ba5b49a27e?narHash=sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768%3D' (2023-04-09)
2026-03-18 00:20:30 +01:00
pederbs 9244be1000 xorg no more 2026-03-17 23:57:07 +01:00
pederbs f470ab0740 wineWow slooooow 2026-03-17 23:23:31 +01:00
pederbs b90021e245 weekly 2026-03-17 23:23:12 +01:00
pederbs 51c454b252 lkajdslkajds 2026-03-17 22:00:13 +01:00
pederbs 0b84c5dd81 løasdjkladljk 2026-03-08 12:14:06 +01:00
pederbs 4a171162ac lasdjklasdjkl 2026-03-08 12:13:25 +01:00
pederbs f449492b3d dfhjlkø 2026-03-01 23:40:36 +01:00
pederbs 6f5b29c29e lkjdsadsaljdsa 2026-02-19 12:37:31 +01:00
pederbs 6d889acf93 pip 2026-02-16 14:56:13 +01:00
pederbs d0b56282a3 lkajsdlakjds 2026-02-11 00:20:11 +01:00
pederbs fae73cba53 ljsadljkasdljk 2026-02-07 19:17:02 +01:00
pederbs f96ed65c50 prep nord for gtx 1080 2026-02-07 19:17:02 +01:00
pederbs bc2398140d lkjdsalkjadslkj 2026-01-25 19:32:15 +01:00
pederbs 4d86def5ff kjdsjkasdk 2026-01-19 03:23:40 +01:00
pederbs e9d84f5633 ljasdkljasdjl 2026-01-19 03:12:51 +01:00
pederbs b307921b52 ljasdkljadsljk 2026-01-19 03:12:18 +01:00
pederbs b6a9b02b85 ljasdljkasdljk 2026-01-19 03:02:20 +01:00
pederbs c198489f59 27;5;13~ljasdasdjkl 2026-01-19 01:38:08 +01:00
pederbs 647f1754d0 ng gone 2026-01-19 01:38:07 +01:00
pederbs 978664a761 no ollama cuda thingy anymore 2026-01-19 01:35:35 +01:00
pederbs 175b8141d0 bad ghostty 2026-01-12 00:40:49 +01:00
pederbs 4da8527989 dsalkjdsalkjdsa 2025-12-16 22:45:58 +01:00
pederbs 730eba72a4 lkjdsaljdsaljdsa 2025-12-09 18:41:50 +01:00
pederbs e494270d43 lkjlkjdsa 2025-12-09 17:58:50 +01:00
pederbs 74db685c62 eple 2025-12-09 17:58:16 +01:00
pederbs 170e1808c9 lkjlkjdsalkj 2025-12-09 11:40:25 +01:00
pederbs 2cbd7a452f lkjdsalkjdsal 2025-12-09 11:34:48 +01:00
pederbs d7a98551f2 garp 2511 2025-12-09 11:34:15 +01:00
pederbs de180fb10c flake.lock: Update
Flake lock file updates:

• Updated input 'home-manager-2505':
    'github:nix-community/home-manager/f21d9167782c086a33ad53e2311854a8f13c281e?narHash=sha256-K6PEI5PYY94TVMH0mX3MbZNYFme7oNRKml/85BpRRAo%3D' (2025-09-14)
  → 'github:nix-community/home-manager/44831a7eaba4360fb81f2acc5ea6de5fde90aaa3?narHash=sha256-WHkdBlw6oyxXIra/vQPYLtqY%2B3G8dUVZM8bEXk0t8x4%3D' (2025-11-24)
• Added input 'home-manager-2511':
    'github:nix-community/home-manager/20561be440a11ec57a89715480717baf19fe6343?narHash=sha256-O8VTGey1xxiRW%2BFpb%2BPs9zU7ShmxUA1a7cMTcENCVNg%3D' (2025-12-08)
• Added input 'home-manager-2511/nixpkgs':
    follows 'nixpkgs-2511'
• Updated input 'home-manager-edge':
    'github:nix-community/home-manager/17a10049486f6698fca32097d8f52c0c895542b0?narHash=sha256-29mlXbfAJhz9cWVrPP4STvVPDVZFCfCOmaIN5lFJa%2BY%3D' (2025-09-14)
  → 'github:nix-community/home-manager/e5b1f87841810fc24772bf4389f9793702000c9b?narHash=sha256-BVVyAodLcAD8KOtR3yCStBHSE0WAH/xQWH9f0qsxbmk%3D' (2025-12-08)
• Updated input 'nix-index-database':
    'github:Mic92/nix-index-database/050a5feb5d1bb5b6e5fc04a7d3d816923a87c9ea?narHash=sha256-3HIpe3P2h1AUPYcAH9cjuX0tZOqJpX01c0iDwoUYNZ8%3D' (2025-09-14)
  → 'github:Mic92/nix-index-database/82befcf7dc77c909b0f2a09f5da910ec95c5b78f?narHash=sha256-d3NBA9zEtBu2JFMnTBqWj7Tmi7R5OikoU2ycrdhQEws%3D' (2025-12-09)
• Updated input 'nix-on-droid-edge':
    'github:nix-community/nix-on-droid/27696cac81d4444319bb9158037b0da45e213f5e?narHash=sha256-nEuGlpIT7q4c/otPu00pGhb5Y12FtQm00pH3MXOJpfw%3D' (2025-07-21)
  → 'github:nix-community/nix-on-droid/55b6449b4582a4ba3ce712543c973360a026db7d?narHash=sha256-4ZtlnCp4blhsjGnQIxAXDAj7nCJKy7tozoBRtklmwcU%3D' (2025-12-06)
• Updated input 'nix-system-graphics-edge':
    'github:soupglasses/nix-system-graphics/9c875e0c56cf2eb272b9102a4f3e24e4e31629fd?narHash=sha256-nX9dxoATDCSQgWw/iv6BngXDJEyHVYYEvHEVQ7Ig3fI%3D' (2025-01-21)
  → 'github:soupglasses/nix-system-graphics/ac37f0f3ec0cb15d63a520918433c794d01d9dac?narHash=sha256-K9JBscC7ApwCnl0wR0sVkxrKFsoDYVqXN5fOujvyBWA%3D' (2025-11-16)
• Updated input 'nixos-generators-2405':
    'github:nix-community/nixos-generators/032decf9db65efed428afd2fa39d80f7089085eb?narHash=sha256-PeSkNMvkpEvts%2B9DjFiop1iT2JuBpyknmBUs0Un0a4I%3D' (2025-07-07)
  → 'github:nix-community/nixos-generators/032a1878682fafe829edfcf5fdfad635a2efe748?narHash=sha256-NHF7QWa0ZPT8hsJrvijREW3%2BnifmF2rTXgS2v0tpcEA%3D' (2025-11-27)
• Updated input 'nixos-hardware':
    'github:NixOS/nixos-hardware/f89c620d3d6e584d98280b48f0af7be4f8506ab5?narHash=sha256-xWsxmNHwt9jV/yFJqzsNeilpH4BR8MPe44Yt0eaGAIM%3D' (2025-09-13)
  → 'github:NixOS/nixos-hardware/9154f4569b6cdfd3c595851a6ba51bfaa472d9f3?narHash=sha256-ZlJTNLUKQRANlLDomuRWLBCH5792x%2B6XUJ4YdFRjtO4%3D' (2025-11-29)
• Updated input 'nixos-nspawn':
    'github:tfc/nspawn-nixos/27fb0061fecff6664de2ee26d24d98f04956f90f?narHash=sha256-TkKTLWcYBvqQxrdOcriCVDgt/iLXoomzqg1%2BKsuF2OE%3D' (2024-10-22)
  → 'github:tfc/nspawn-nixos/f82340949c4bc931525fac3257c794b233d77736?narHash=sha256-0l0RNMoRCfuU0nQny4OiVh8zNiRwlCVIkG4tSK0WiNE%3D' (2025-11-25)
• Updated input 'nixpkgs-2411':
    'https://releases.nixos.org/nixos/24.11/nixos-24.11.719113.50ab793786d9/nixexprs.tar.xz?narHash=sha256-EjLqzTANsT%2BCbWv85OOvz6B6C/B/Oj2tS3WBQNHmNKE%3D&rev=50ab793786d9de88ee30ec4e4c24fb4236fc2674' (2025-07-01)
  → 'https://releases.nixos.org/nixos/24.11/nixos-24.11.719113.50ab793786d9/nixexprs.tar.xz?narHash=sha256-EjLqzTANsT%2BCbWv85OOvz6B6C/B/Oj2tS3WBQNHmNKE%3D' (2025-07-01)
• Updated input 'nixpkgs-2505':
    'https://releases.nixos.org/nixos/25.05/nixos-25.05.809873.9a094440e02a/nixexprs.tar.xz?narHash=sha256-mvTtxYIyANBRVxruLSUeuQOp7rV3kzygbRTfeTNY0Yk%3D&rev=9a094440e02a699be5c57453a092a8baf569bdad' (2025-09-14)
  → 'https://releases.nixos.org/nixos/25.05/nixos-25.05.813449.00d2457e2f60/nixexprs.tar.xz?narHash=sha256-Tg7LvvCBIZu3zlWj8wZBRwA3lQn97DAKqQxoCg8hUbY%3D' (2025-12-05)
• Added input 'nixpkgs-2511':
    'https://releases.nixos.org/nixos/25.11/nixos-25.11.1056.d9bc5c7dceb3/nixexprs.tar.xz?narHash=sha256-pyyfJp6Q80D0YhEuuP/qzasUZjoK3C3PrCp8BPWcDZE%3D' (2025-12-06)
• Updated input 'nixpkgs-edge':
    'https://releases.nixos.org/nixos/unstable/nixos-25.11pre861038.c23193b943c6/nixexprs.tar.xz?narHash=sha256-rmyZ6B4DtU9MwkBSEf63NU4czFoM0budKcAtlhjaGEc%3D&rev=c23193b943c6c689d70ee98ce3128239ed9e32d1' (2025-09-14)
  → 'https://releases.nixos.org/nixos/unstable/nixos-26.05pre907002.f61125a668a3/nixexprs.tar.xz?narHash=sha256-lft4/rbh1nFSjHqQatxPEq3n68%2BiH7QmT5Tqr784e0Q%3D' (2025-12-05)
• Updated input 'sops-nix-2305':
    'github:Mic92/sops-nix/ee6f91c1c11acf7957d94a130de77561ec24b8ab?narHash=sha256-TumOaykhZO8SOs/faz6GQhqkOcFLoQvESLSF1cJ4mZc%3D' (2025-09-14)
  → 'github:Mic92/sops-nix/7fd1416aba1865eddcdec5bb11339b7222c2363e?narHash=sha256-qdBzo6puTgG4G2RHG0PkADg22ZnQo1JmSVFRxrD4QM4%3D' (2025-12-08)
• Updated input 'sops-nix-2311':
    'github:Mic92/sops-nix/ee6f91c1c11acf7957d94a130de77561ec24b8ab?narHash=sha256-TumOaykhZO8SOs/faz6GQhqkOcFLoQvESLSF1cJ4mZc%3D' (2025-09-14)
  → 'github:Mic92/sops-nix/7fd1416aba1865eddcdec5bb11339b7222c2363e?narHash=sha256-qdBzo6puTgG4G2RHG0PkADg22ZnQo1JmSVFRxrD4QM4%3D' (2025-12-08)
• Updated input 'sops-nix-2405':
    'github:Mic92/sops-nix/ee6f91c1c11acf7957d94a130de77561ec24b8ab?narHash=sha256-TumOaykhZO8SOs/faz6GQhqkOcFLoQvESLSF1cJ4mZc%3D' (2025-09-14)
  → 'github:Mic92/sops-nix/7fd1416aba1865eddcdec5bb11339b7222c2363e?narHash=sha256-qdBzo6puTgG4G2RHG0PkADg22ZnQo1JmSVFRxrD4QM4%3D' (2025-12-08)
• Updated input 'sops-nix-2411':
    'github:Mic92/sops-nix/ee6f91c1c11acf7957d94a130de77561ec24b8ab?narHash=sha256-TumOaykhZO8SOs/faz6GQhqkOcFLoQvESLSF1cJ4mZc%3D' (2025-09-14)
  → 'github:Mic92/sops-nix/7fd1416aba1865eddcdec5bb11339b7222c2363e?narHash=sha256-qdBzo6puTgG4G2RHG0PkADg22ZnQo1JmSVFRxrD4QM4%3D' (2025-12-08)
• Updated input 'sops-nix-2505':
    'github:Mic92/sops-nix/ee6f91c1c11acf7957d94a130de77561ec24b8ab?narHash=sha256-TumOaykhZO8SOs/faz6GQhqkOcFLoQvESLSF1cJ4mZc%3D' (2025-09-14)
  → 'github:Mic92/sops-nix/7fd1416aba1865eddcdec5bb11339b7222c2363e?narHash=sha256-qdBzo6puTgG4G2RHG0PkADg22ZnQo1JmSVFRxrD4QM4%3D' (2025-12-08)
• Added input 'sops-nix-2511':
    'github:Mic92/sops-nix/7fd1416aba1865eddcdec5bb11339b7222c2363e?narHash=sha256-qdBzo6puTgG4G2RHG0PkADg22ZnQo1JmSVFRxrD4QM4%3D' (2025-12-08)
• Added input 'sops-nix-2511/nixpkgs':
    follows 'nixpkgs-2511'
• Updated input 'sops-nix-edge':
    'github:Mic92/sops-nix/ee6f91c1c11acf7957d94a130de77561ec24b8ab?narHash=sha256-TumOaykhZO8SOs/faz6GQhqkOcFLoQvESLSF1cJ4mZc%3D' (2025-09-14)
  → 'github:Mic92/sops-nix/7fd1416aba1865eddcdec5bb11339b7222c2363e?narHash=sha256-qdBzo6puTgG4G2RHG0PkADg22ZnQo1JmSVFRxrD4QM4%3D' (2025-12-08)
• Updated input 'system-manager-edge':
    'github:numtide/system-manager/e271eedac9a24678ca6cfc61677837422bf474e0?narHash=sha256-CjpoVwpJJ%2BDOZilPrDpZ5S3V%2BB1Y0calaHxTp2xMvGs%3D' (2025-08-27)
  → 'github:numtide/system-manager/a0343ab10763fbbfcf8d3b69c8341c18b1b1f215?narHash=sha256-m6etiBLSMajunnbUvEI1Pc/jNu4naImalgQnctVJ1/k%3D' (2025-11-27)
2025-12-09 11:32:15 +01:00
pederbs 4b449c4e2e 2511 2025-12-02 15:45:25 +01:00
pederbs 291d2e0c60 fix 2025-11-29 06:30:15 +01:00
pederbs 16bdea6a9b export per-host home-manager configurations 2025-11-29 06:15:53 +01:00
pederbs 24d6516e1b home and away 2025-11-29 05:20:22 +01:00
pederbs 2af0e99c76 lkajsdlakjsdlk 2025-11-28 11:49:08 +01:00
pederbs c4c8714f88 kajsdhakjhdaksjdh 2025-11-28 11:48:02 +01:00
pederbs 767e1e50be avoid rebuilding firefox 2025-11-26 20:56:35 +01:00
pederbs 4ed3938223 ljasdjklasdjklas 2025-11-26 03:13:47 +01:00
pederbs 2295431eeb sadasd 2025-11-23 14:49:41 +01:00
pederbs 32d47436fb laksjlaksjdalkjd 2025-11-19 21:00:10 +01:00
pederbs 78376739d5 lasdljkasdjkl 2025-11-19 20:29:40 +01:00
pederbs 3864f84fd1 laksjdlakjsdl 2025-11-19 18:43:18 +01:00
pederbs a59eaa29ac laksjdalkjsd 2025-11-19 17:58:01 +01:00
pederbs d911acd86e asdjkl 2025-11-19 17:56:45 +01:00
pederbs 1c14c69963 ljkasdkljasdljkasd 2025-11-18 23:18:27 +01:00
pederbs 0fc32960c1 jlkasdjklasdjlk 2025-11-18 21:53:03 +01:00
pederbs 4198728c33 sops 2025-11-18 21:51:56 +01:00
pederbs 8d32e1a377 breaking changes 2025-11-18 21:51:29 +01:00
pederbs 7d3f4e8afb wip: backups 2025-11-18 21:49:52 +01:00
pederbs b2e9e284b7 ljkdasjlasdklj 2025-11-14 19:06:59 +01:00
pederbs 5b8e2ff529 adsljasdlkj 2025-11-07 17:22:38 +01:00
pederbs 53f811e333 ljasdjklajkl 2025-11-07 16:59:24 +01:00
pederbs 8ac1645121 dix 2025-11-07 16:45:32 +01:00
pederbs 88ebd62867 brrr 2025-11-07 15:03:53 +01:00
pederbs 1c0740dcb1 lkasjdlakjsdlaskjd 2025-11-07 14:56:40 +01:00
pederbs d688b7d253 ljkasdljkadsjkl 2025-11-07 14:49:13 +01:00
pederbs d0eff972df ljasdjklasdljasdljk 2025-11-07 14:48:26 +01:00
pederbs 41e1915f15 ljkasdjklasdljk 2025-11-07 11:36:37 +01:00
pederbs 1657e95a5d yeet cachix 2025-11-07 11:36:23 +01:00
pederbs ab15e4b146 jklasdljkasdljk 2025-11-04 13:37:53 +01:00
pederbs 91a8032d8b aksdj 2025-11-04 13:25:25 +01:00
pederbs cd9d72210f nox 2025-11-04 13:25:05 +01:00
pederbs 62433c631d jklsdjklasdljk 2025-11-03 12:38:15 +01:00
pederbs d3aee7264b jlasdkljasdjkl 2025-11-01 03:02:15 +01:00
pederbs 4905d70abe jklasdljkdasjklasdlkj 2025-10-31 22:12:21 +01:00
pederbs 5eb6ac7018 ljkasdjklasdljk 2025-10-31 22:03:38 +01:00
pederbs 225ed648f7 mpv 2025-10-29 12:01:51 +01:00
pederbs 99f61c6d59 remote env pessimization 2025-10-29 12:01:20 +01:00
pederbs 85bb47faa7 g 2025-10-29 12:01:07 +01:00
pederbs dcf7757b69 garp 2025-10-29 12:00:57 +01:00
pederbs 37cc0104ec ljkdasjklasdjklasd 2025-09-15 02:01:31 +02:00
pederbs 090ec9afc2 flake.lock: Update
Flake lock file updates:

• Updated input 'home-manager-2505':
    'github:nix-community/home-manager/07fc025fe10487dd80f2ec694f1cd790e752d0e8' (2025-08-31)
  → 'github:nix-community/home-manager/f21d9167782c086a33ad53e2311854a8f13c281e' (2025-09-14)
• Updated input 'home-manager-edge':
    'github:nix-community/home-manager/f56bf065f9abedc7bc15e1f2454aa5c8edabaacf' (2025-09-05)
  → 'github:nix-community/home-manager/17a10049486f6698fca32097d8f52c0c895542b0' (2025-09-14)
• Updated input 'nix-index-database':
    'github:Mic92/nix-index-database/9b144dc3ef6e42b888c4190e02746aab13b0e97f' (2025-09-07)
  → 'github:Mic92/nix-index-database/050a5feb5d1bb5b6e5fc04a7d3d816923a87c9ea' (2025-09-14)
• Updated input 'nixos-hardware':
    'github:NixOS/nixos-hardware/11b2a10c7be726321bb854403fdeec391e798bf0' (2025-09-05)
  → 'github:NixOS/nixos-hardware/f89c620d3d6e584d98280b48f0af7be4f8506ab5' (2025-09-13)
• Updated input 'nixpkgs-2505':
    'https://releases.nixos.org/nixos/25.05/nixos-25.05.809451.fe83bbdde2cc/nixexprs.tar.xz?narHash=sha256-Bp4oYE%2BR51hn04h20WLUkHbWZgRj0IH3AS3QUg0r74c%3D&rev=fe83bbdde2ccdc2cb9573aa846abe8363f79a97a' (2025-09-05)
  → 'https://releases.nixos.org/nixos/25.05/nixos-25.05.809873.9a094440e02a/nixexprs.tar.xz?narHash=sha256-mvTtxYIyANBRVxruLSUeuQOp7rV3kzygbRTfeTNY0Yk%3D&rev=9a094440e02a699be5c57453a092a8baf569bdad' (2025-09-14)
• Updated input 'nixpkgs-edge':
    'https://releases.nixos.org/nixos/unstable/nixos-25.11pre856926.8eb28adfa3dc/nixexprs.tar.xz?narHash=sha256-n2RYdKMqyU5qQOyMEtkywqUTZQ0kzmlKyDtrJpoRQwY%3D&rev=8eb28adfa3dc4de28e792e3bf49fcf9007ca8ac9' (2025-09-07)
  → 'https://releases.nixos.org/nixos/unstable/nixos-25.11pre861038.c23193b943c6/nixexprs.tar.xz?narHash=sha256-rmyZ6B4DtU9MwkBSEf63NU4czFoM0budKcAtlhjaGEc%3D&rev=c23193b943c6c689d70ee98ce3128239ed9e32d1' (2025-09-14)
• Updated input 'sops-nix-2305':
    'github:Mic92/sops-nix/3223c7a92724b5d804e9988c6b447a0d09017d48' (2025-08-12)
  → 'github:Mic92/sops-nix/ee6f91c1c11acf7957d94a130de77561ec24b8ab' (2025-09-14)
• Updated input 'sops-nix-2311':
    'github:Mic92/sops-nix/3223c7a92724b5d804e9988c6b447a0d09017d48' (2025-08-12)
  → 'github:Mic92/sops-nix/ee6f91c1c11acf7957d94a130de77561ec24b8ab' (2025-09-14)
• Updated input 'sops-nix-2405':
    'github:Mic92/sops-nix/3223c7a92724b5d804e9988c6b447a0d09017d48' (2025-08-12)
  → 'github:Mic92/sops-nix/ee6f91c1c11acf7957d94a130de77561ec24b8ab' (2025-09-14)
• Updated input 'sops-nix-2411':
    'github:Mic92/sops-nix/3223c7a92724b5d804e9988c6b447a0d09017d48' (2025-08-12)
  → 'github:Mic92/sops-nix/ee6f91c1c11acf7957d94a130de77561ec24b8ab' (2025-09-14)
• Updated input 'sops-nix-2505':
    'github:Mic92/sops-nix/3223c7a92724b5d804e9988c6b447a0d09017d48' (2025-08-12)
  → 'github:Mic92/sops-nix/ee6f91c1c11acf7957d94a130de77561ec24b8ab' (2025-09-14)
• Updated input 'sops-nix-edge':
    'github:Mic92/sops-nix/3223c7a92724b5d804e9988c6b447a0d09017d48' (2025-08-12)
  → 'github:Mic92/sops-nix/ee6f91c1c11acf7957d94a130de77561ec24b8ab' (2025-09-14)
2025-09-14 18:57:13 +02:00
pederbs 9ed5f4e2a7 jasdjklaslkj 2025-09-14 18:57:01 +02:00
pederbs 8ebe356f1f ljjlkasdljk 2025-09-14 18:56:02 +02:00
pederbs 37b36afb1f khasdkasdk' 2025-09-14 18:55:46 +02:00
pederbs 5858406a13 sopp 2025-09-14 18:51:26 +02:00
pederbs 393428d30c ljkadjklasdjkl 2025-09-14 18:51:24 +02:00
pederbs 4c2dce5c20 lksdljkasdjlkasd 2025-09-14 18:46:31 +02:00
pederbs ac6f2b0fca lkjdsalkjdsal 2025-09-07 16:42:33 +02:00
pederbs fde0b929bc dsalkjdsalkjdsalkj 2025-09-07 16:02:49 +02:00
pederbs 266c767fbd lkajdslkajds 2025-09-07 16:01:53 +02:00
pederbs 4edbcb0d74 dsalkdsadsa 2025-09-07 16:00:15 +02:00
pederbs e4b69cd635 kjdsadsadsa 2025-09-07 15:58:36 +02:00
pederbs c3a607b11f dsljdsalj# 2025-09-07 15:35:34 +02:00
pederbs f302e54731 flake.lock: Update
Flake lock file updates:

• Updated input 'home-manager-2505':
    'github:nix-community/home-manager/366f00797b1efb70f2882d3da485e3c10fd3d557' (2025-06-24)
  → 'github:nix-community/home-manager/07fc025fe10487dd80f2ec694f1cd790e752d0e8' (2025-08-31)
• Updated input 'home-manager-edge':
    'github:nix-community/home-manager/df12269039dcf752600b1bcc176bacf2786ec384' (2025-07-02)
  → 'github:nix-community/home-manager/f56bf065f9abedc7bc15e1f2454aa5c8edabaacf' (2025-09-05)
• Updated input 'nix-index-database':
    'github:Mic92/nix-index-database/9c932ae632d6b5150515e5749b198c175d8565db' (2025-06-29)
  → 'github:Mic92/nix-index-database/9b144dc3ef6e42b888c4190e02746aab13b0e97f' (2025-09-07)
• Added input 'nix-on-droid-2405':
    'github:nix-community/nix-on-droid/f3d3b8294039f2f9a8fb7ea82c320f29c6b0fe25' (2024-07-07)
• Added input 'nix-on-droid-2405/home-manager':
    'github:nix-community/home-manager/4de84265d7ec7634a69ba75028696d74de9a44a7' (2024-03-03)
• Added input 'nix-on-droid-2405/home-manager/nixpkgs':
    follows 'nix-on-droid-2405/nixpkgs'
• Added input 'nix-on-droid-2405/nix-formatter-pack':
    'github:Gerschtli/nix-formatter-pack/2de39dedd79aab14c01b9e2934842051a160ffa5' (2024-01-14)
• Added input 'nix-on-droid-2405/nix-formatter-pack/nixpkgs':
    follows 'nix-on-droid-2405/nixpkgs'
• Added input 'nix-on-droid-2405/nix-formatter-pack/nmd':
    'gitlab:rycee/nmd/b75d312b4f33bd3294cd8ae5c2ca8c6da2afc169' (2022-10-19)
• Added input 'nix-on-droid-2405/nix-formatter-pack/nmt':
    'gitlab:rycee/nmt/d83601002c99b78c89ea80e5e6ba21addcfe12ae' (2022-03-23)
• Added input 'nix-on-droid-2405/nixpkgs':
    follows 'nixpkgs-2405'
• Added input 'nix-on-droid-2405/nixpkgs-docs':
    'github:NixOS/nixpkgs/9a333eaa80901efe01df07eade2c16d183761fa3' (2024-01-22)
• Added input 'nix-on-droid-2405/nixpkgs-for-bootstrap':
    'github:NixOS/nixpkgs/49ee0e94463abada1de470c9c07bfc12b36dcf40' (2024-07-06)
• Added input 'nix-on-droid-2405/nmd':
    'sourcehut:~rycee/nmd/66d9334933119c36f91a78d565c152a4fdc8d3d3' (2024-01-12)
• Added input 'nix-on-droid-2405/nmd/nixpkgs':
    follows 'nix-on-droid-2405/nixpkgs-docs'
• Added input 'nix-on-droid-2405/nmd/scss-reset':
    'github:andreymatin/scss-reset/0cf50e27a4e95e9bb5b1715eedf9c54dee1a5a91' (2021-09-12)
• Added input 'nix-on-droid-2505':
    'github:nix-community/nix-on-droid/f3d3b8294039f2f9a8fb7ea82c320f29c6b0fe25' (2024-07-07)
• Added input 'nix-on-droid-2505/home-manager':
    'github:nix-community/home-manager/4de84265d7ec7634a69ba75028696d74de9a44a7' (2024-03-03)
• Added input 'nix-on-droid-2505/home-manager/nixpkgs':
    follows 'nix-on-droid-2505/nixpkgs'
• Added input 'nix-on-droid-2505/nix-formatter-pack':
    'github:Gerschtli/nix-formatter-pack/2de39dedd79aab14c01b9e2934842051a160ffa5' (2024-01-14)
• Added input 'nix-on-droid-2505/nix-formatter-pack/nixpkgs':
    follows 'nix-on-droid-2505/nixpkgs'
• Added input 'nix-on-droid-2505/nix-formatter-pack/nmd':
    'gitlab:rycee/nmd/b75d312b4f33bd3294cd8ae5c2ca8c6da2afc169' (2022-10-19)
• Added input 'nix-on-droid-2505/nix-formatter-pack/nmt':
    'gitlab:rycee/nmt/d83601002c99b78c89ea80e5e6ba21addcfe12ae' (2022-03-23)
• Added input 'nix-on-droid-2505/nixpkgs':
    follows 'nixpkgs-2505'
• Added input 'nix-on-droid-2505/nixpkgs-docs':
    'github:NixOS/nixpkgs/9a333eaa80901efe01df07eade2c16d183761fa3' (2024-01-22)
• Added input 'nix-on-droid-2505/nixpkgs-for-bootstrap':
    'github:NixOS/nixpkgs/49ee0e94463abada1de470c9c07bfc12b36dcf40' (2024-07-06)
• Added input 'nix-on-droid-2505/nmd':
    'sourcehut:~rycee/nmd/66d9334933119c36f91a78d565c152a4fdc8d3d3' (2024-01-12)
• Added input 'nix-on-droid-2505/nmd/nixpkgs':
    follows 'nix-on-droid-2505/nixpkgs-docs'
• Added input 'nix-on-droid-2505/nmd/scss-reset':
    'github:andreymatin/scss-reset/0cf50e27a4e95e9bb5b1715eedf9c54dee1a5a91' (2021-09-12)
• Added input 'nix-on-droid-edge':
    'github:nix-community/nix-on-droid/27696cac81d4444319bb9158037b0da45e213f5e' (2025-07-21)
• Added input 'nix-on-droid-edge/home-manager':
    'github:nix-community/home-manager/4de84265d7ec7634a69ba75028696d74de9a44a7' (2024-03-03)
• Added input 'nix-on-droid-edge/home-manager/nixpkgs':
    follows 'nix-on-droid-edge/nixpkgs'
• Added input 'nix-on-droid-edge/nix-formatter-pack':
    'github:Gerschtli/nix-formatter-pack/2de39dedd79aab14c01b9e2934842051a160ffa5' (2024-01-14)
• Added input 'nix-on-droid-edge/nix-formatter-pack/nixpkgs':
    follows 'nix-on-droid-edge/nixpkgs'
• Added input 'nix-on-droid-edge/nix-formatter-pack/nmd':
    follows 'nix-on-droid-edge/nmd'
• Added input 'nix-on-droid-edge/nix-formatter-pack/nmt':
    'gitlab:rycee/nmt/d83601002c99b78c89ea80e5e6ba21addcfe12ae' (2022-03-23)
• Added input 'nix-on-droid-edge/nixpkgs':
    follows 'nixpkgs-edge'
• Added input 'nix-on-droid-edge/nixpkgs-docs':
    'github:NixOS/nixpkgs/9a333eaa80901efe01df07eade2c16d183761fa3' (2024-01-22)
• Added input 'nix-on-droid-edge/nixpkgs-for-bootstrap':
    'github:NixOS/nixpkgs/49ee0e94463abada1de470c9c07bfc12b36dcf40' (2024-07-06)
• Added input 'nix-on-droid-edge/nmd':
    'sourcehut:~rycee/nmd/66d9334933119c36f91a78d565c152a4fdc8d3d3' (2024-01-12)
• Added input 'nix-on-droid-edge/nmd/nixpkgs':
    follows 'nix-on-droid-edge/nixpkgs-docs'
• Added input 'nix-on-droid-edge/nmd/scss-reset':
    'github:andreymatin/scss-reset/0cf50e27a4e95e9bb5b1715eedf9c54dee1a5a91' (2021-09-12)
• Updated input 'nixos-generators-2405':
    'github:nix-community/nixos-generators/ee07ba0d36c38e9915c55d2ac5a8fb0f05f2afcc' (2025-05-19)
  → 'github:nix-community/nixos-generators/032decf9db65efed428afd2fa39d80f7089085eb' (2025-07-07)
• Updated input 'nixos-hardware':
    'github:NixOS/nixos-hardware/497ae1357f1ac97f1aea31a4cb74ad0d534ef41f' (2025-07-02)
  → 'github:NixOS/nixos-hardware/11b2a10c7be726321bb854403fdeec391e798bf0' (2025-09-05)
• Updated input 'nixpkgs-2505':
    'https://releases.nixos.org/nixos/25.05/nixos-25.05.805252.b43c397f6c21/nixexprs.tar.xz?narHash=sha256-iAmjAfHulye0CGJuiVWKQhVlKx0szRYJb7KrnmMsx58%3D&rev=b43c397f6c213918d6cfe6e3550abfe79b5d1c51' (2025-06-30)
  → 'https://releases.nixos.org/nixos/25.05/nixos-25.05.809451.fe83bbdde2cc/nixexprs.tar.xz?narHash=sha256-Bp4oYE%2BR51hn04h20WLUkHbWZgRj0IH3AS3QUg0r74c%3D&rev=fe83bbdde2ccdc2cb9573aa846abe8363f79a97a' (2025-09-05)
• Updated input 'nixpkgs-edge':
    'https://releases.nixos.org/nixos/unstable/nixos-25.11pre823481.3016b4b15d13/nixexprs.tar.xz?narHash=sha256-BTVn9nIjhCeWpaxOs3Wbhwum4xID4p36dbmEfLDyh9Y%3D&rev=3016b4b15d13f3089db8a41ef937b13a9e33a8df' (2025-07-01)
  → 'https://releases.nixos.org/nixos/unstable/nixos-25.11pre856926.8eb28adfa3dc/nixexprs.tar.xz?narHash=sha256-n2RYdKMqyU5qQOyMEtkywqUTZQ0kzmlKyDtrJpoRQwY%3D&rev=8eb28adfa3dc4de28e792e3bf49fcf9007ca8ac9' (2025-09-07)
• Updated input 'sops-nix-2305':
    'github:Mic92/sops-nix/77c423a03b9b2b79709ea2cb63336312e78b72e2' (2025-06-17)
  → 'github:Mic92/sops-nix/3223c7a92724b5d804e9988c6b447a0d09017d48' (2025-08-12)
• Updated input 'sops-nix-2311':
    'github:Mic92/sops-nix/77c423a03b9b2b79709ea2cb63336312e78b72e2' (2025-06-17)
  → 'github:Mic92/sops-nix/3223c7a92724b5d804e9988c6b447a0d09017d48' (2025-08-12)
• Updated input 'sops-nix-2405':
    'github:Mic92/sops-nix/77c423a03b9b2b79709ea2cb63336312e78b72e2' (2025-06-17)
  → 'github:Mic92/sops-nix/3223c7a92724b5d804e9988c6b447a0d09017d48' (2025-08-12)
• Updated input 'sops-nix-2411':
    'github:Mic92/sops-nix/77c423a03b9b2b79709ea2cb63336312e78b72e2' (2025-06-17)
  → 'github:Mic92/sops-nix/3223c7a92724b5d804e9988c6b447a0d09017d48' (2025-08-12)
• Updated input 'sops-nix-2505':
    'github:Mic92/sops-nix/77c423a03b9b2b79709ea2cb63336312e78b72e2' (2025-06-17)
  → 'github:Mic92/sops-nix/3223c7a92724b5d804e9988c6b447a0d09017d48' (2025-08-12)
• Updated input 'sops-nix-edge':
    'github:Mic92/sops-nix/77c423a03b9b2b79709ea2cb63336312e78b72e2' (2025-06-17)
  → 'github:Mic92/sops-nix/3223c7a92724b5d804e9988c6b447a0d09017d48' (2025-08-12)
• Updated input 'system-manager-edge':
    'github:numtide/system-manager/c6850451ef769fd03d0ad5474f928b916aa23775' (2025-05-26)
  → 'github:numtide/system-manager/e271eedac9a24678ca6cfc61677837422bf474e0' (2025-08-27)
2025-09-07 15:26:19 +02:00
pederbs dc1de7aa7b lkjdsalkjdsalkj 2025-09-07 15:25:56 +02:00
pederbs 210a51136e nix-on-droid 2025-09-07 15:06:59 +02:00
pederbs 10e8bcb2a2 dsalkjdsa 2025-09-07 12:00:24 +02:00
pederbs 35ec71ee0b ljdaslkjdaslkj 2025-09-01 00:24:28 +02:00
pederbs f082f725f2 dconf: add linkedin shortcut 2025-08-30 02:15:28 +02:00
pederbs a22c0b8f2b lakjsd 2025-08-10 02:39:01 +02:00
pederbs 4c1f58dbb3 ljkasdljkasdkljasdjl 2025-08-10 02:35:35 +02:00
pederbs 88c2c9d1ee ts 2025-08-10 00:47:03 +02:00
pederbs a255fed1ae ljdsalkjdsalkj 2025-08-08 16:33:27 +02:00
pederbs 5bf4c6fcb3 move ifield sftp to eple
garp broki
2025-07-30 01:18:42 +02:00
pederbs 4227dbd408 lkjlkjdsa 2025-07-22 09:55:00 +02:00
pederbs f261140ef2 lkjdsalkjdsa 2025-07-16 01:10:51 +02:00
pederbs d71b1ea339 lkjsadlkjasdlkj 2025-07-16 00:21:53 +02:00
pederbs 210f202431 hosts: use ts 2025-07-15 22:44:41 +02:00
pederbs a115b9ff90 lkjsadlkajsd 2025-07-15 22:43:24 +02:00
pederbs 9ca9d8c89a dsaldsalkjdsalkj' 2025-07-15 22:43:24 +02:00
pederbs 4b77b39bc0 lkjasd 2025-07-15 22:43:24 +02:00
pederbs 8b8369cf8a ljlkjdsa 2025-07-15 22:43:24 +02:00
pederbs 5c5c85b0c9 ljdsalkjdsalkj 2025-07-15 22:43:24 +02:00
pederbs 8bf06c4696 asasdasdasd 2025-07-15 22:43:24 +02:00
pederbs fed8af1031 ljsljasdljk 2025-07-14 14:46:07 +02:00
pederbs 1732ec7ab3 pmoto 2025-07-14 14:40:42 +02:00
pederbs e69363009e use stud 2025-07-02 17:01:11 +02:00
pederbs 7665e352ba hosts: don't proxy tailscale connections 2025-07-02 17:00:52 +02:00
pederbs 44bf6c3a1e ljaslkjadslkj 2025-07-02 14:33:17 +02:00
pederbs db16f87b9d flake.lock: Update
Flake lock file updates:

• Updated input 'home-manager-2505':
    'github:nix-community/home-manager/7aae0ee71a17b19708b93b3ed448a1a0952bf111' (2025-06-05)
  → 'github:nix-community/home-manager/366f00797b1efb70f2882d3da485e3c10fd3d557' (2025-06-24)
• Updated input 'home-manager-edge':
    'github:nix-community/home-manager/863842639722dd12ae9e37ca83bcb61a63b36f6c' (2025-06-19)
  → 'github:nix-community/home-manager/df12269039dcf752600b1bcc176bacf2786ec384' (2025-07-02)
• Updated input 'nix-index-database':
    'github:Mic92/nix-index-database/424a40050cdc5f494ec45e46462d288f08c64475' (2025-06-15)
  → 'github:Mic92/nix-index-database/9c932ae632d6b5150515e5749b198c175d8565db' (2025-06-29)
• Updated input 'nixos-hardware':
    'github:NixOS/nixos-hardware/61837d2a33ccc1582c5fabb7bf9130d39fee59ad' (2025-06-16)
  → 'github:NixOS/nixos-hardware/497ae1357f1ac97f1aea31a4cb74ad0d534ef41f' (2025-07-02)
• Updated input 'nixpkgs-2411':
    'https://releases.nixos.org/nixos/24.11/nixos-24.11.718829.ad5c70bcc5cc/nixexprs.tar.xz?narHash=sha256-PMG/b%2BroMYYopxUYIg8edHAVs4vur7DPyn%2BK4r/BQ9g%3D&rev=ad5c70bcc5cc5178205161b7a7d61a6e80f6d244' (2025-06-18)
  → 'https://releases.nixos.org/nixos/24.11/nixos-24.11.719113.50ab793786d9/nixexprs.tar.xz?narHash=sha256-EjLqzTANsT%2BCbWv85OOvz6B6C/B/Oj2tS3WBQNHmNKE%3D&rev=50ab793786d9de88ee30ec4e4c24fb4236fc2674' (2025-07-01)
• Updated input 'nixpkgs-2505':
    'https://releases.nixos.org/nixos/25.05/nixos-25.05.804329.9ba04bda9249/nixexprs.tar.xz?narHash=sha256-c%2B%2BEp%2BnDeZxZVpEWGRrGORAMv/%2BjYSv%2Bb5lJ7edOBVI%3D&rev=9ba04bda9249d5d5e5238303c9755de5a49a79c5' (2025-06-20)
  → 'https://releases.nixos.org/nixos/25.05/nixos-25.05.805252.b43c397f6c21/nixexprs.tar.xz?narHash=sha256-iAmjAfHulye0CGJuiVWKQhVlKx0szRYJb7KrnmMsx58%3D&rev=b43c397f6c213918d6cfe6e3550abfe79b5d1c51' (2025-06-30)
• Updated input 'nixpkgs-edge':
    'https://releases.nixos.org/nixos/unstable/nixos-25.11pre816272.9e83b64f727c/nixexprs.tar.xz?narHash=sha256-KCfcRCnagwT0TG2C82SHsahzL%2ByG3DugHZIlSYbwAmY%3D&rev=9e83b64f727c88a7711a2c463a7b16eedb69a84c' (2025-06-17)
  → 'https://releases.nixos.org/nixos/unstable/nixos-25.11pre823481.3016b4b15d13/nixexprs.tar.xz?narHash=sha256-BTVn9nIjhCeWpaxOs3Wbhwum4xID4p36dbmEfLDyh9Y%3D&rev=3016b4b15d13f3089db8a41ef937b13a9e33a8df' (2025-07-01)
• Updated input 'nixpkgs-test':
    'path:/home/pbsds/repos/nixpkgs/feat/warn-aliases-1749253960?lastModified=1749277456&narHash=sha256-nh9hk%2Bzad0fa/IPH2QcvW5dqVibLLQTEtQPLROAOy0o%3D' (2025-06-07)
  → 'github:NixOS/nixpkgs/3e845a75446d44973d719d982d5e9f266a34a45f' (2025-03-31)
• Removed input 'refleksjon-net'
• Removed input 'roroslyd-no'
2025-07-02 13:07:12 +02:00
pederbs a7ef34400e lksdjlkas 2025-07-01 04:23:19 +02:00
pederbs 834bff832f devenv broki? 2025-06-28 08:12:05 +02:00
pederbs 2cb4855f49 lix broki 2025-06-28 07:19:30 +02:00
pederbs 4e03d5479b eple just can't 2025-06-27 06:58:42 +02:00
pederbs 12e1ba614d nolounge 2025-06-25 01:40:38 +02:00
pederbs 2504c9c94d :( 2025-06-25 01:39:36 +02:00
pederbs 28c4049700 flake.lock: Update
Flake lock file updates:

• Updated input 'home-manager-2411':
    'github:nix-community/home-manager/dd26f75fb4ec1c731d4b1396eaf4439ce40a91c1' (2025-04-25)
  → 'github:nix-community/home-manager/d5f1f641b289553927b3801580598d200a501863' (2025-05-19)
• Updated input 'home-manager-edge':
    'github:nix-community/home-manager/5f217e5a319f6c186283b530f8c975e66c028433' (2025-04-30)
  → 'github:nix-community/home-manager/863842639722dd12ae9e37ca83bcb61a63b36f6c' (2025-06-19)
• Updated input 'nix-index-database':
    'github:Mic92/nix-index-database/13ba07d54c6ccc5af30a501df669bf3fe3dd4db8' (2025-04-30)
  → 'github:Mic92/nix-index-database/424a40050cdc5f494ec45e46462d288f08c64475' (2025-06-15)
• Updated input 'nixos-generators-2405':
    'github:nix-community/nixos-generators/42ee229088490e3777ed7d1162cb9e9d8c3dbb11' (2025-03-21)
  → 'github:nix-community/nixos-generators/ee07ba0d36c38e9915c55d2ac5a8fb0f05f2afcc' (2025-05-19)
• Updated input 'nixos-hardware':
    'github:NixOS/nixos-hardware/72081c9fbbef63765ae82bff9727ea79cc86bd5b' (2025-04-29)
  → 'github:NixOS/nixos-hardware/61837d2a33ccc1582c5fabb7bf9130d39fee59ad' (2025-06-16)
• Updated input 'nixpkgs-2411':
    'https://releases.nixos.org/nixos/24.11/nixos-24.11.717921.5d736263df90/nixexprs.tar.xz?narHash=sha256-ENc1vQNViytxvo9FN/0bIkOcyge7VDJ4umqnPCpVVbc%3D&rev=5d736263df906c5da72ab0f372427814de2f52f8' (2025-05-15)
  → 'https://releases.nixos.org/nixos/24.11/nixos-24.11.718829.ad5c70bcc5cc/nixexprs.tar.xz?narHash=sha256-PMG/b%2BroMYYopxUYIg8edHAVs4vur7DPyn%2BK4r/BQ9g%3D&rev=ad5c70bcc5cc5178205161b7a7d61a6e80f6d244' (2025-06-18)
• Updated input 'nixpkgs-edge':
    'https://releases.nixos.org/nixos/unstable/nixos-25.05pre799423.adaa24fbf467/nixexprs.tar.xz?narHash=sha256-isj7Hlm5%2BPuoyyfVWOWgv52WXaKV6QgegYr9UKjBeQ4%3D&rev=adaa24fbf46737f3f1b5497bf64bae750f82942e' (2025-05-15)
  → 'https://releases.nixos.org/nixos/unstable/nixos-25.11pre816272.9e83b64f727c/nixexprs.tar.xz?narHash=sha256-KCfcRCnagwT0TG2C82SHsahzL%2ByG3DugHZIlSYbwAmY%3D&rev=9e83b64f727c88a7711a2c463a7b16eedb69a84c' (2025-06-17)
• Updated input 'sops-nix-2305':
    'github:Mic92/sops-nix/5e3e92b16d6fdf9923425a8d4df7496b2434f39c' (2025-04-22)
  → 'github:Mic92/sops-nix/77c423a03b9b2b79709ea2cb63336312e78b72e2' (2025-06-17)
• Updated input 'sops-nix-2311':
    'github:Mic92/sops-nix/5e3e92b16d6fdf9923425a8d4df7496b2434f39c' (2025-04-22)
  → 'github:Mic92/sops-nix/77c423a03b9b2b79709ea2cb63336312e78b72e2' (2025-06-17)
• Updated input 'sops-nix-2405':
    'github:Mic92/sops-nix/5e3e92b16d6fdf9923425a8d4df7496b2434f39c' (2025-04-22)
  → 'github:Mic92/sops-nix/77c423a03b9b2b79709ea2cb63336312e78b72e2' (2025-06-17)
• Updated input 'sops-nix-2411':
    'github:Mic92/sops-nix/5e3e92b16d6fdf9923425a8d4df7496b2434f39c' (2025-04-22)
  → 'github:Mic92/sops-nix/77c423a03b9b2b79709ea2cb63336312e78b72e2' (2025-06-17)
• Updated input 'sops-nix-edge':
    'github:Mic92/sops-nix/5e3e92b16d6fdf9923425a8d4df7496b2434f39c' (2025-04-22)
  → 'github:Mic92/sops-nix/77c423a03b9b2b79709ea2cb63336312e78b72e2' (2025-06-17)
• Updated input 'system-manager-edge':
    'github:numtide/system-manager/803322102ed51f29c250d4bff2973625adc4a521' (2025-04-08)
  → 'github:numtide/system-manager/c6850451ef769fd03d0ad5474f928b916aa23775' (2025-05-26)
2025-06-20 07:09:25 +02:00
pederbs 644f40394c dasljkasdljkasd 2025-06-20 07:08:55 +02:00
pederbs 22b7b7752f flake.lock: Update
Flake lock file updates:

• Updated input 'home-manager-2411/nixpkgs':
    follows 'nixpkgs-2405'
  → follows 'nixpkgs-2411'
• Added input 'home-manager-2505':
    'github:nix-community/home-manager/7aae0ee71a17b19708b93b3ed448a1a0952bf111' (2025-06-05)
• Added input 'home-manager-2505/nixpkgs':
    follows 'nixpkgs-2505'
• Added input 'nixpkgs-2505':
    'https://releases.nixos.org/nixos/25.05/nixos-25.05.804329.9ba04bda9249/nixexprs.tar.xz?narHash=sha256-c%2B%2BEp%2BnDeZxZVpEWGRrGORAMv/%2BjYSv%2Bb5lJ7edOBVI%3D&rev=9ba04bda9249d5d5e5238303c9755de5a49a79c5' (2025-06-20)
• Updated input 'nixpkgs-test':
    'github:NixOS/nixpkgs/3e845a75446d44973d719d982d5e9f266a34a45f' (2025-03-31)
  → 'path:/home/pbsds/repos/nixpkgs/feat/warn-aliases-1749253960?lastModified=1749277456&narHash=sha256-nh9hk%2Bzad0fa/IPH2QcvW5dqVibLLQTEtQPLROAOy0o%3D' (2025-06-07)
• Updated input 'refleksjon-net':
    'git+ssh://gitea@git.pvv.ntnu.no:2222/pederbs/refleksjon.net.git?ref=refs/heads/main&rev=c1b91e369bf411e44534334595d4481cb59bd129' (2022-06-27)
  → 'c1b91e369b.tar.gz' (2022-06-27)
• Updated input 'roroslyd-no':
    'git+ssh://gitea@git.pvv.ntnu.no:2222/pederbs/roroslyd.no.git?ref=refs/heads/main&rev=fb7b0a7e70754cf368de7d7c469dabe71b2f1c78' (2022-06-26)
  → 'fb7b0a7e70.tar.gz/n6U%3D&rev=fb7b0a7e70754cf368de7d7c469dabe71b2f1c78' (2022-06-26)
• Added input 'sops-nix-2505':
    'github:Mic92/sops-nix/77c423a03b9b2b79709ea2cb63336312e78b72e2' (2025-06-17)
• Added input 'sops-nix-2505/nixpkgs':
    follows 'nixpkgs-2505'
2025-06-20 07:07:43 +02:00
pederbs b3767cc6a4 ng 2025-06-20 06:48:14 +02:00
pederbs 044ca7689e ladjks 2025-06-20 06:29:19 +02:00
pederbs 60e709431c nixpkgs-review 2025-06-20 05:44:00 +02:00
pederbs 2021a7745a nord: 2505 2025-06-19 03:03:09 +02:00
pederbs 73269b0679 ljasdjklasdjlk 2025-06-19 02:24:13 +02:00
pederbs 373a1d7966 dsalkjdsalkj 2025-06-15 08:32:00 +02:00
pederbs 8107e28102 lkjdsalkjdsalkj 2025-06-15 08:31:10 +02:00
pederbs 252794b75d lkjlkjdsalkj 2025-06-15 08:30:33 +02:00
pederbs 491e6f1199 ljdsalkjdsalkj 2025-06-15 04:21:13 +02:00
pederbs e54fe19d91 dsalkjdsalkj 2025-06-15 04:15:17 +02:00
pederbs 50d742e311 lkjsad 2025-06-15 03:40:37 +02:00
pederbs bb9868fdef lkjdsalj 2025-06-15 03:39:51 +02:00
pederbs 938b44c845 lkjdsalkjldsa 2025-06-15 03:14:07 +02:00
pederbs 433213d128 dlkjdsalkjsa 2025-06-15 03:09:23 +02:00
pederbs b746d45bdd ljdsalkjdsalkjdaj 2025-06-15 02:46:15 +02:00
pederbs fc2b83159e ljlkjdsalkj 2025-06-15 02:36:02 +02:00
pederbs 4ff1a491ca ldsalkjdsalj 2025-06-15 02:32:30 +02:00
pederbs ebf27e6fd4 vmvmvm 2025-06-15 02:27:18 +02:00
pederbs 11afe820ad dsadsa 2025-06-15 02:26:04 +02:00
pederbs 468ad3552f base 2025-06-15 02:20:07 +02:00
pederbs 3aadbea0ec ljdsalkjdsalkj 2025-06-15 02:14:37 +02:00
pederbs ef3addd00f lkjdsalkdsalkj 2025-06-15 02:06:13 +02:00
pederbs c497999c88 dsalkjdsa 2025-06-15 02:03:49 +02:00
pederbs 5634686122 ljkasdjklasdjkl 2025-06-08 16:35:45 +02:00
pederbs 6d522394c5 fx 2025-06-06 21:56:32 +02:00
pederbs 805666b66f ljasdjklasdjkl 2025-06-06 15:34:11 +02:00
pederbs 4251583d6a bolle 2505 2025-06-06 15:34:11 +02:00
pederbs 813fa17cec lkadjkladskl 2025-06-06 15:34:11 +02:00
pederbs 9cfae10856 ljksdladsjk 2025-06-06 15:34:11 +02:00
pederbs 3ee6fb2c53 dsalkja 2025-06-06 01:09:46 +02:00
pederbs cf0c19fad0 kdslkjdsalkjdsalkj 2025-06-06 01:05:52 +02:00
pederbs f74142160d ljdasjljlkasdjkl 2025-06-05 23:43:38 +02:00
pederbs 175861a813 ljdsalkjadslkj 2025-06-05 18:54:42 +02:00
pederbs f5d9d5cb56 test earlyoom 2025-06-05 16:22:48 +02:00
pederbs e6807e867f ljkdjklasdkjl 2025-05-31 07:01:56 +02:00
pederbs 8615c7f052 gitea 2025-05-25 17:05:13 +02:00
pederbs 8395a1c6de ljkasdjklasdjkl 2025-05-22 03:35:39 +02:00
pederbs b652e9b20e hosts: ccache 2025-05-22 01:21:22 +02:00
pederbs 987277b997 kladslkjdljkasd 2025-05-21 16:04:54 +02:00
pederbs 7589d3f319 lkjdsalkjdsalkj 2025-05-21 11:29:02 +02:00
pederbs a6034c6627 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs-1909':
    'github:NixOS/nixpkgs/75f4ba05c63be3f147bcc2f7bd4ba1f029cedcb1' (2020-09-24)
  → 'https://releases.nixos.org/nixos/19.09/nixos-19.09.2522.75f4ba05c63/nixexprs.tar.xz?narHash=sha256-/qPiFcqXsc%2BZeNqQL1qBl5beDWPX4vkbupPlOZ%2BA4e4%3D' (2020-09-28)
• Updated input 'nixpkgs-2003':
    'github:NixOS/nixpkgs/1db42b7fe3878f3f5f7a4f2dc210772fd080e205' (2021-05-03)
  → 'https://releases.nixos.org/nixos/20.03/nixos-20.03.3330.1db42b7fe38/nixexprs.tar.xz?narHash=sha256-y2YfrnLNS7q0PIGGvFJVsDyBDWZ/dZqmUjmFvhYY0ds%3D' (2021-05-03)
• Updated input 'nixpkgs-2009':
    'github:NixOS/nixpkgs/1c1f5649bb9c1b0d98637c8c365228f57126f361' (2021-10-27)
  → 'https://releases.nixos.org/nixos/20.09/nixos-20.09.4407.1c1f5649bb9/nixexprs.tar.xz?narHash=sha256-PBpryUqVepwPfo/G9v7TOHS83uKGWw%2B%2BQ9rNV5iiZ54%3D' (2021-10-28)
• Updated input 'nixpkgs-2105':
    'github:NixOS/nixpkgs/022caabb5f2265ad4006c1fa5b1ebe69fb0c3faf' (2022-08-07)
  → 'https://releases.nixos.org/nixos/21.05/nixos-21.05.4737.022caabb5f2/nixexprs.tar.xz?narHash=sha256-PBT5ogZDDutSsJzb443/kGtCQGqKDLh3KHZ%2BQXiOEgE%3D' (2022-08-09)
• Updated input 'nixpkgs-2111':
    'github:NixOS/nixpkgs/eabc38219184cc3e04a974fe31857d8e0eac098d' (2022-08-02)
  → 'https://releases.nixos.org/nixos/21.11/nixos-21.11.337975.eabc3821918/nixexprs.tar.xz?narHash=sha256-des9OUzC%2BIcCqisK3ReEAwfz4NGWxY1X03Mrh8//A7s%3D' (2022-08-04)
• Updated input 'nixpkgs-2205':
    'github:NixOS/nixpkgs/380be19fbd2d9079f677978361792cb25e8a3635' (2023-05-31)
  → 'https://releases.nixos.org/nixos/22.05/nixos-22.05.4694.380be19fbd2d/nixexprs.tar.xz?narHash=sha256-gosYWvsTx3bR91jmpAZ7MT9RywQmPHujSMKh8fIXXts%3D' (2023-08-01)
• Updated input 'nixpkgs-2211':
    'github:NixOS/nixpkgs/ea4c80b39be4c09702b0cb3b42eab59e2ba4f24b' (2023-07-03)
  → 'https://releases.nixos.org/nixos/22.11/nixos-22.11.4773.ea4c80b39be4/nixexprs.tar.xz?narHash=sha256-wZ8ktcD7KUPzOMSQXbbuvM2/YS5%2BsihPqnNymFQ58Mg%3D' (2023-08-02)
• Updated input 'nixpkgs-2305':
    'github:NixOS/nixpkgs/70bdadeb94ffc8806c0570eb5c2695ad29f0e421' (2024-01-03)
  → 'https://releases.nixos.org/nixos/23.05/nixos-23.05.5533.70bdadeb94ff/nixexprs.tar.xz?narHash=sha256-KIIrA2UK80N0ihowxlQUtyY%2Bkp5%2B/69O8gS13z7hr28%3D' (2024-01-07)
• Updated input 'nixpkgs-2311':
    'github:NixOS/nixpkgs/205fd4226592cc83fd4c0885a3e4c9c400efabb5' (2024-07-09)
  → 'https://releases.nixos.org/nixos/23.11/nixos-23.11.7870.205fd4226592/nixexprs.tar.xz?narHash=sha256-h3DunxVF01tidoonuEFjA6Ie8HvYITV42g/337w8d9U%3D' (2024-07-12)
• Updated input 'nixpkgs-2405':
    'github:NixOS/nixpkgs/b134951a4c9f3c995fd7be05f3243f8ecd65d798' (2024-12-30)
  → 'https://releases.nixos.org/nixos/24.05/nixos-24.05.7376.b134951a4c9f/nixexprs.tar.xz?narHash=sha256-m6KS4Y44VAxk5ZnELE2dzLbjPtKRGtsprphQC6A7Erk%3D' (2024-12-31)
• Updated input 'nixpkgs-2411':
    'github:NixOS/nixpkgs/3e362ce63e16b9572d8c2297c04f7c19ab6725a5' (2025-04-30)
  → 'https://releases.nixos.org/nixos/24.11/nixos-24.11.717921.5d736263df90/nixexprs.tar.xz?narHash=sha256-ENc1vQNViytxvo9FN/0bIkOcyge7VDJ4umqnPCpVVbc%3D&rev=5d736263df906c5da72ab0f372427814de2f52f8' (2025-05-15)
• Updated input 'nixpkgs-edge':
    'github:NixOS/nixpkgs/46e634be05ce9dc6d4db8e664515ba10b78151ae' (2025-04-29)
  → 'https://releases.nixos.org/nixos/unstable/nixos-25.05pre799423.adaa24fbf467/nixexprs.tar.xz?narHash=sha256-isj7Hlm5%2BPuoyyfVWOWgv52WXaKV6QgegYr9UKjBeQ4%3D&rev=adaa24fbf46737f3f1b5497bf64bae750f82942e' (2025-05-15)
2025-05-16 11:34:05 +02:00
pederbs 117f28ceb3 switch inputs from github to releases.nixos.org 2025-05-16 11:33:20 +02:00
pederbs aa5ea59fb4 ljdsaljdsaljdsal 2025-05-10 11:41:26 +02:00
pederbs 015124621d sccache 2025-05-05 23:05:13 +02:00
pederbs 82ec09c4fb ccache 2025-05-04 03:38:23 +02:00
pederbs c65c9c13ab ljljkajkladjkl 2025-05-03 19:59:43 +02:00
pederbs f563502239 flake.lock: Update
Flake lock file updates:

• Updated input 'home-manager-2411':
    'github:nix-community/home-manager/9d3d080aec2a35e05a15cedd281c2384767c2cfe' (2025-02-17)
  → 'github:nix-community/home-manager/dd26f75fb4ec1c731d4b1396eaf4439ce40a91c1' (2025-04-25)
• Updated input 'home-manager-edge':
    'github:nix-community/home-manager/4e12151c9e014e2449e0beca2c0e9534b96a26b4' (2025-03-14)
  → 'github:nix-community/home-manager/5f217e5a319f6c186283b530f8c975e66c028433' (2025-04-30)
• Updated input 'nix-index-database':
    'github:Mic92/nix-index-database/66537fb185462ba9b07f4e6f2d54894a1b2d04ab' (2025-03-10)
  → 'github:Mic92/nix-index-database/13ba07d54c6ccc5af30a501df669bf3fe3dd4db8' (2025-04-30)
• Updated input 'nixos-generators-2405':
    'github:nix-community/nixos-generators/507911df8c35939050ae324caccc7cf4ffb76565' (2025-03-02)
  → 'github:nix-community/nixos-generators/42ee229088490e3777ed7d1162cb9e9d8c3dbb11' (2025-03-21)
• Updated input 'nixos-hardware':
    'github:NixOS/nixos-hardware/e1f12151258b12c567f456d8248e4694e9390613' (2025-03-12)
  → 'github:NixOS/nixos-hardware/72081c9fbbef63765ae82bff9727ea79cc86bd5b' (2025-04-29)
• Updated input 'nixpkgs-2411':
    'github:NixOS/nixpkgs/b75693fb46bfaf09e662d09ec076c5a162efa9f6' (2025-03-19)
  → 'github:NixOS/nixpkgs/3e362ce63e16b9572d8c2297c04f7c19ab6725a5' (2025-04-30)
• Updated input 'nixpkgs-edge':
    'github:NixOS/nixpkgs/6607cf789e541e7873d40d3a8f7815ea92204f32' (2025-03-13)
  → 'github:NixOS/nixpkgs/46e634be05ce9dc6d4db8e664515ba10b78151ae' (2025-04-29)
• Updated input 'nixpkgs-test':
    'github:NixOS/nixpkgs/be9edf5057c7e69fde0fb4dc6742b9a699863fa8' (2025-03-20)
  → 'github:NixOS/nixpkgs/3e845a75446d44973d719d982d5e9f266a34a45f' (2025-03-31)
• Updated input 'sops-nix-2305':
    'github:Mic92/sops-nix/d016ce0365b87d848a57c12ffcfdc71da7a2b55f' (2025-03-13)
  → 'github:Mic92/sops-nix/5e3e92b16d6fdf9923425a8d4df7496b2434f39c' (2025-04-22)
• Updated input 'sops-nix-2311':
    'github:Mic92/sops-nix/d016ce0365b87d848a57c12ffcfdc71da7a2b55f' (2025-03-13)
  → 'github:Mic92/sops-nix/5e3e92b16d6fdf9923425a8d4df7496b2434f39c' (2025-04-22)
• Updated input 'sops-nix-2405':
    'github:Mic92/sops-nix/d016ce0365b87d848a57c12ffcfdc71da7a2b55f' (2025-03-13)
  → 'github:Mic92/sops-nix/5e3e92b16d6fdf9923425a8d4df7496b2434f39c' (2025-04-22)
• Updated input 'sops-nix-2411':
    'github:Mic92/sops-nix/d016ce0365b87d848a57c12ffcfdc71da7a2b55f' (2025-03-13)
  → 'github:Mic92/sops-nix/5e3e92b16d6fdf9923425a8d4df7496b2434f39c' (2025-04-22)
• Updated input 'sops-nix-edge':
    'github:Mic92/sops-nix/d016ce0365b87d848a57c12ffcfdc71da7a2b55f' (2025-03-13)
  → 'github:Mic92/sops-nix/5e3e92b16d6fdf9923425a8d4df7496b2434f39c' (2025-04-22)
• Updated input 'system-manager-edge':
    'github:numtide/system-manager/9f8f766c3b8a19c68aa43ab19c94b0641d6a5b20' (2025-03-03)
  → 'github:numtide/system-manager/803322102ed51f29c250d4bff2973625adc4a521' (2025-04-08)
2025-05-01 18:32:04 +02:00
pederbs 5da6106384 adb 2025-05-01 17:18:24 +02:00
pederbs 9101a0c426 ljksdfjklsdfjkl 2025-05-01 17:17:48 +02:00
pederbs 6d15668ec8 lksdjklads 2025-05-01 17:16:46 +02:00
pederbs 495252670b ljkasdjlasdklj 2025-05-01 16:55:19 +02:00
pederbs 8e5263b5d5 lkjasd 2025-04-23 12:14:27 +02:00
pederbs 2468624990 lkjljkdsalkj 2025-04-09 13:53:07 +02:00
pederbs 2885b83f70 lkjdsalkjdsalkj 2025-04-09 13:14:23 +02:00
pederbs 7acf91d4b4 update secrets 2025-04-09 12:37:26 +02:00
pederbs 25ffde2630 kasddask 2025-04-06 17:00:23 +02:00
pederbs c6ff8b60c8 nix-fd 2025-04-02 18:39:23 +02:00
pederbs 1f32cdd0ac lkjdsalkjsadlkjdsalkj 2025-04-02 18:38:56 +02:00
pederbs 69f7a1b439 ljdsalkjadslkjads 2025-04-01 02:15:09 +02:00
pederbs fea7171ae5 lkjsalkjdsalkjdsalkj 2025-04-01 02:13:23 +02:00
pederbs ebeaae1258 lkjdsalkjdsalkjas 2025-04-01 02:13:10 +02:00
pederbs 2f3ed7e377 ljdsalkjdaslkj 2025-04-01 02:11:38 +02:00
pederbs 6b3861126d ljkasdjklasdkljasdjkl 2025-03-29 13:37:13 +01:00
pederbs 258076e726 ljkasdljkasdljkasdjklasdljkasdljkasdjkl 2025-03-27 17:53:25 +01:00
pederbs f05db9179a dsakdsakdsak 2025-03-25 00:33:10 +01:00
pederbs 90f663f68b n 2025-03-25 00:28:12 +01:00
pederbs 07801d65b2 ne 2025-03-23 17:55:15 +01:00
pederbs 793ef6ca6f lkjadslasdlkj 2025-03-21 20:41:27 +01:00
pederbs d3b2cb7fe3 nix-search 2025-03-21 20:41:16 +01:00
pederbs 3368c8149f lru 2025-03-21 20:06:27 +01:00
pederbs 8bef723284 just 2025-03-21 19:22:53 +01:00
pederbs dcbf828bc4 ljkajkladljkasd 2025-03-21 14:01:17 +01:00
pederbs abd66da607 pdoc - fallback to "builtin" again 2025-03-21 13:53:23 +01:00
pederbs eccdf4f536 test polaris pr on nox, flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs-2411':
    'github:NixOS/nixpkgs/cdd2ef009676ac92b715ff26630164bb88fec4e0' (2025-03-13)
  → 'github:NixOS/nixpkgs/b75693fb46bfaf09e662d09ec076c5a162efa9f6' (2025-03-19)
2025-03-21 13:43:07 +01:00
pederbs f4f96e17e2 ljadlasdlkj 2025-03-21 13:37:28 +01:00
pederbs 5e2e5d1ddb lkjdsalkjdsalkjdsalkj 2025-03-20 20:48:59 +01:00
pederbs 17ee5aada8 lib 2025-03-20 17:54:16 +01:00
pederbs 01c381276b remove env go brrr 2025-03-20 15:12:55 +01:00
pederbs 433a613a33 dav 2025-03-20 14:31:46 +01:00
pederbs b95e1eb37f fhs envrc 2025-03-20 13:48:34 +01:00
pederbs bbf0624868 ldaslkjdsalkjadslkj 2025-03-20 13:33:08 +01:00
pederbs 3b9ccf61b8 specializations and remote stores
hoo boy this increases the eval times
2025-03-20 13:32:43 +01:00
pederbs da3f97b80d _module.args bad 2025-03-20 13:30:55 +01:00
pederbs efb5d45317 eval-vm: stable outPath 2025-03-20 13:28:19 +01:00
pederbs fc01d900b7 env 2025-03-20 13:27:44 +01:00
pederbs d29d7e23a4 pkgs 2025-03-20 11:29:54 +01:00
pederbs 7b2203e6b6 lkjdsalkjdsalkjad 2025-03-19 17:37:45 +01:00
pederbs 36a6779fc0 nixos-switch-to-specialization 2025-03-19 17:22:36 +01:00
pederbs 69e2622dc6 lkjdsalkjdsalkjads 2025-03-19 17:22:26 +01:00
pederbs f9e4a9df0d complete steam-run 2025-03-19 17:21:59 +01:00
pederbs 468b6d8c86 just env 2025-03-19 16:53:18 +01:00
pederbs a06f790edb ed exec 2025-03-19 16:50:37 +01:00
pederbs 39b2824204 nix-search-sh
the 'nix-search' in go has a shitty evaluator
2025-03-19 16:50:06 +01:00
pederbs d03c1c39d1 lkajslkasjd 2025-03-19 13:01:30 +01:00
pederbs 81948c3b9a lkjadslkjsadlkj 2025-03-19 13:01:22 +01:00
pederbs 5708b31d48 zed by default 2025-03-17 00:25:42 +01:00
pederbs c508e290c7 sync config 2025-03-17 00:25:30 +01:00
pederbs e0429c9081 lkajsd 2025-03-16 23:54:40 +01:00
pederbs 47a02be2cd lkjdsalkjdsalkjdsalk 2025-03-16 23:42:43 +01:00
pederbs c7ae43d81a lkdaslkjdsalkjdsalkj 2025-03-16 23:05:01 +01:00
pederbs bc6f3abd25 asd 2025-03-16 17:36:30 +01:00
pederbs db2b139f29 uv 2025-03-16 17:36:07 +01:00
pederbs a4e4ebf40f pdoc 2025-03-16 17:33:50 +01:00
pederbs 4c31b1b055 env 2025-03-16 17:33:24 +01:00
pederbs 7af3a39b2b zeddyzeddyzeddy 2025-03-16 17:00:59 +01:00
pederbs 47d983beda zzz 2025-03-16 16:30:45 +01:00
pederbs f17df30623 lkjdasljasdljk 2025-03-16 00:30:34 +01:00
pederbs ffa80ce575 laksjdlakjsd 2025-03-15 19:43:15 +01:00
pederbs aa97bcc19d flake.lock: Update
Flake lock file updates:

• Updated input 'home-manager-2411':
    'github:nix-community/home-manager/bd65bc3cde04c16755955630b344bc9e35272c56' (2025-01-08)
  → 'github:nix-community/home-manager/9d3d080aec2a35e05a15cedd281c2384767c2cfe' (2025-02-17)
• Updated input 'home-manager-edge':
    'github:nix-community/home-manager/f99c704fe3a4cf8d72b2d568ec80bc38be1a9407' (2025-02-06)
  → 'github:nix-community/home-manager/4e12151c9e014e2449e0beca2c0e9534b96a26b4' (2025-03-14)
• Updated input 'nix-index-database':
    'github:Mic92/nix-index-database/46a8f5fc9552b776bfc5c5c96ea3bede33f68f52' (2025-02-02)
  → 'github:Mic92/nix-index-database/66537fb185462ba9b07f4e6f2d54894a1b2d04ab' (2025-03-10)
• Updated input 'nixos-generators-2405':
    'github:nix-community/nixos-generators/d002ce9b6e7eb467cd1c6bb9aef9c35d191b5453' (2025-01-16)
  → 'github:nix-community/nixos-generators/507911df8c35939050ae324caccc7cf4ffb76565' (2025-03-02)
• Updated input 'nixos-hardware':
    'github:NixOS/nixos-hardware/2eccff41bab80839b1d25b303b53d339fbb07087' (2025-02-06)
  → 'github:NixOS/nixos-hardware/e1f12151258b12c567f456d8248e4694e9390613' (2025-03-12)
• Updated input 'nixpkgs-2411':
    'github:NixOS/nixpkgs/030ba1976b7c0e1a67d9716b17308ccdab5b381e' (2025-02-04)
  → 'github:NixOS/nixpkgs/cdd2ef009676ac92b715ff26630164bb88fec4e0' (2025-03-13)
• Updated input 'nixpkgs-edge':
    'github:NixOS/nixpkgs/799ba5bffed04ced7067a91798353d360788b30d' (2025-02-04)
  → 'github:NixOS/nixpkgs/6607cf789e541e7873d40d3a8f7815ea92204f32' (2025-03-13)
• Updated input 'sops-nix-2305':
    'github:Mic92/sops-nix/4c1251904d8a08c86ac6bc0d72cc09975e89aef7' (2025-01-31)
  → 'github:Mic92/sops-nix/d016ce0365b87d848a57c12ffcfdc71da7a2b55f' (2025-03-13)
• Updated input 'sops-nix-2311':
    'github:Mic92/sops-nix/4c1251904d8a08c86ac6bc0d72cc09975e89aef7' (2025-01-31)
  → 'github:Mic92/sops-nix/d016ce0365b87d848a57c12ffcfdc71da7a2b55f' (2025-03-13)
• Updated input 'sops-nix-2405':
    'github:Mic92/sops-nix/4c1251904d8a08c86ac6bc0d72cc09975e89aef7' (2025-01-31)
  → 'github:Mic92/sops-nix/d016ce0365b87d848a57c12ffcfdc71da7a2b55f' (2025-03-13)
• Updated input 'sops-nix-2411':
    'github:Mic92/sops-nix/4c1251904d8a08c86ac6bc0d72cc09975e89aef7' (2025-01-31)
  → 'github:Mic92/sops-nix/d016ce0365b87d848a57c12ffcfdc71da7a2b55f' (2025-03-13)
• Updated input 'sops-nix-edge':
    'github:Mic92/sops-nix/4c1251904d8a08c86ac6bc0d72cc09975e89aef7' (2025-01-31)
  → 'github:Mic92/sops-nix/d016ce0365b87d848a57c12ffcfdc71da7a2b55f' (2025-03-13)
• Updated input 'system-manager-edge':
    'github:numtide/system-manager/e09166d9d4eab2bf010c1589fbf4542a54b022e3' (2025-02-04)
  → 'github:numtide/system-manager/9f8f766c3b8a19c68aa43ab19c94b0641d6a5b20' (2025-03-03)
2025-03-15 19:16:27 +01:00
pederbs 493e6b8fa8 asd 2025-03-15 19:01:35 +01:00
pederbs af34850fd6 harhar 2025-03-15 18:49:06 +01:00
pederbs 3319499a91 laksjdalskdalskdj 2025-03-15 18:35:30 +01:00
pederbs c295c0982c ljkasd 2025-03-15 18:34:52 +01:00
pederbs 145d0acc83 zedr 2025-03-15 18:07:02 +01:00
pederbs bb3273687c cdtmp 2025-03-13 21:14:22 +01:00
pederbs edfbd46e2b nixd 2025-03-13 21:12:17 +01:00
pederbs 3d5b46c5b1 nsnsnsns 2025-03-13 21:11:31 +01:00
pederbs 3eb747fd14 ns 2025-03-13 20:17:56 +01:00
pederbs e9f58b8142 ns 2025-03-13 19:53:30 +01:00
pederbs 0cb15af485 cemu 2025-03-13 11:06:28 +01:00
pederbs 927b9e9bce hosts 2025-03-12 12:10:04 +01:00
pederbs 906eed69e4 fix sftp 2025-03-10 13:10:08 +01:00
pederbs a88805813b sftp 2025-03-10 12:30:10 +01:00
pederbs 0358c68402 get chromed 2025-03-10 10:30:52 +01:00
pederbs a6d56234d0 fix reports 2025-03-10 10:30:12 +01:00
pederbs 986c309eb4 ncdu 2025-03-09 17:20:59 +01:00
pederbs 0e5f2c5e3b shhhh 2025-03-09 06:51:36 +01:00
pederbs 94d773a03f shh 2025-03-09 06:51:28 +01:00
pederbs e0129f2fa9 nah 2025-03-08 20:19:53 +01:00
pederbs a41caf0daf kntu 2025-03-08 20:19:43 +01:00
pederbs b2a60e181f git-wait 2025-03-08 18:58:42 +01:00
pederbs 7c38020352 tabby tabby 2025-02-28 18:46:12 +01:00
pederbs 49bd80f0e3 lkajsdlakjsdlaksj 2025-02-28 18:45:58 +01:00
pederbs f15ecafe49 shell 2025-02-28 18:08:27 +01:00
pederbs 54f46e6aec kaslkjdsalkdsalakdsj 2025-02-27 13:58:53 +01:00
pederbs b9b4b3b59a fix 2025-02-27 13:58:35 +01:00
pederbs 511b19b9a8 way too overcomplicated! 2025-02-27 13:40:04 +01:00
pederbs 3c71eb274f oh snap! 2025-02-27 12:53:05 +01:00
pederbs 84625be167 lkjdsaljdsaljkdsalkjdsalkj 2025-02-26 03:50:55 +01:00
pederbs 3379ffe568 ts sshd 2025-02-22 13:09:59 +01:00
pederbs a58816c571 asdad 2025-02-22 12:40:48 +01:00
pederbs 5211030041 cata: show fname 2025-02-21 21:52:06 +01:00
pederbs f54c1d8649 fix destore 2025-02-21 21:51:59 +01:00
pederbs c034fdeb6f micro save cursor 2025-02-21 21:51:49 +01:00
pederbs 36921d0ab8 lkjsadlkjasldkjasd 2025-02-21 18:46:26 +01:00
pederbs dfa89ed7c2 nix cgroups 2025-02-21 18:44:24 +01:00
pederbs a46044e805 imhex, bata, mprocs 2025-02-21 17:57:38 +01:00
pederbs be839d4cc4 xh 2025-02-21 14:29:54 +01:00
pederbs 0061fccc8b stuff 2025-02-18 23:12:59 +01:00
pederbs 15f6a71125 ns 2025-02-17 09:28:56 +01:00
pederbs 388636377e asasldkjaslkdjasldkjaslkdj 2025-02-14 18:12:36 +01:00
pederbs 706913fdd5 known-hosts 2025-02-14 09:19:31 +01:00
pederbs ea4e852e17 ladslkjasdasdjklasdkasdasdkdaskasdads 2025-02-14 00:17:55 +01:00
pederbs 4300bcc5e3 asdasd 2025-02-07 00:05:22 +01:00
pederbs 814d021da2 flake.lock: Update
Flake lock file updates:

• Updated input 'home-manager-edge':
    'github:nix-community/home-manager/7e00856596891850ba5ad4c5ecd2ed74468c08c5' (2025-01-08)
  → 'github:nix-community/home-manager/f99c704fe3a4cf8d72b2d568ec80bc38be1a9407' (2025-02-06)
• Updated input 'nix-index-database':
    'github:Mic92/nix-index-database/816a6ae88774ba7e74314830546c29e134e0dffb' (2025-01-05)
  → 'github:Mic92/nix-index-database/46a8f5fc9552b776bfc5c5c96ea3bede33f68f52' (2025-02-02)
• Added input 'nix-system-graphics-edge':
    'github:soupglasses/nix-system-graphics/9c875e0c56cf2eb272b9102a4f3e24e4e31629fd' (2025-01-21)
• Added input 'nix-system-graphics-edge/nixpkgs':
    follows 'nixpkgs-edge'
• Updated input 'nixos-generators-2405':
    'github:nix-community/nixos-generators/051d1b2dda3b2e81b38d82e2b691e5c2f4d335f4' (2024-12-23)
  → 'github:nix-community/nixos-generators/d002ce9b6e7eb467cd1c6bb9aef9c35d191b5453' (2025-01-16)
• Updated input 'nixos-generators-2405/nixlib':
    'github:nix-community/nixpkgs.lib/0a31e8d833173ae63e43fd9dbff1ccf09c4f778c' (2024-12-22)
  → 'github:nix-community/nixpkgs.lib/1418bc28a52126761c02dd3d89b2d8ca0f521181' (2025-01-12)
• Updated input 'nixos-hardware':
    'github:NixOS/nixos-hardware/4f339f6be2b61662f957c2ee9eda0fa597d8a6d6' (2025-01-07)
  → 'github:NixOS/nixos-hardware/2eccff41bab80839b1d25b303b53d339fbb07087' (2025-02-06)
• Updated input 'nixpkgs-2411':
    'github:NixOS/nixpkgs/3f0a8ac25fb674611b98089ca3a5dd6480175751' (2025-01-06)
  → 'github:NixOS/nixpkgs/030ba1976b7c0e1a67d9716b17308ccdab5b381e' (2025-02-04)
• Updated input 'nixpkgs-edge':
    'github:NixOS/nixpkgs/8f3e1f807051e32d8c95cd12b9b421623850a34d' (2025-01-04)
  → 'github:NixOS/nixpkgs/799ba5bffed04ced7067a91798353d360788b30d' (2025-02-04)
• Updated input 'sops-nix-2305':
    'github:Mic92/sops-nix/c9c88f08e3ee495e888b8d7c8624a0b2519cb773' (2025-01-06)
  → 'github:Mic92/sops-nix/4c1251904d8a08c86ac6bc0d72cc09975e89aef7' (2025-01-31)
• Updated input 'sops-nix-2311':
    'github:Mic92/sops-nix/c9c88f08e3ee495e888b8d7c8624a0b2519cb773' (2025-01-06)
  → 'github:Mic92/sops-nix/4c1251904d8a08c86ac6bc0d72cc09975e89aef7' (2025-01-31)
• Updated input 'sops-nix-2405':
    'github:Mic92/sops-nix/c9c88f08e3ee495e888b8d7c8624a0b2519cb773' (2025-01-06)
  → 'github:Mic92/sops-nix/4c1251904d8a08c86ac6bc0d72cc09975e89aef7' (2025-01-31)
• Updated input 'sops-nix-2411':
    'github:Mic92/sops-nix/c9c88f08e3ee495e888b8d7c8624a0b2519cb773' (2025-01-06)
  → 'github:Mic92/sops-nix/4c1251904d8a08c86ac6bc0d72cc09975e89aef7' (2025-01-31)
• Updated input 'sops-nix-edge':
    'github:Mic92/sops-nix/c9c88f08e3ee495e888b8d7c8624a0b2519cb773' (2025-01-06)
  → 'github:Mic92/sops-nix/4c1251904d8a08c86ac6bc0d72cc09975e89aef7' (2025-01-31)
• Added input 'system-manager-edge':
    'github:numtide/system-manager/e09166d9d4eab2bf010c1589fbf4542a54b022e3' (2025-02-04)
• Added input 'system-manager-edge/nixpkgs':
    follows 'nixpkgs-edge'
2025-02-06 22:25:44 +01:00
pederbs bba87a8461 stuff 2025-02-06 22:25:13 +01:00
pederbs e9288ca1c9 furios -> furiphoneflx1 2025-02-06 21:30:01 +01:00
pederbs 6644bdc709 yeet dead caches 2025-02-06 21:15:29 +01:00
pederbs 066763d357 system-manager/furios: init
added the file by mistake in c50997477f lol
2025-02-06 13:47:04 +01:00
pederbs de96a07f71 lkjaskljasdlkj 2025-02-06 13:46:40 +01:00
pederbs a27602db8b lkasjd 2025-02-06 13:46:40 +01:00
pederbs c50997477f nfs 2025-02-06 13:13:21 +01:00
pederbs 7c4cbc5a97 ns 2025-02-06 11:19:44 +01:00
pederbs c63a83d78a clip 2025-02-06 10:24:20 +01:00
pederbs 37fc7c3bd1 asd 2025-02-06 09:58:18 +01:00
pederbs 023f521abf wiki 2025-02-06 09:57:31 +01:00
pederbs 70bfa90808 lkasjdlakjsd 2025-01-30 18:33:12 +01:00
pederbs 7fe7d093b8 ff 2025-01-30 18:32:57 +01:00
pederbs 5dc6306d3e lkasdlksjd 2025-01-30 18:31:59 +01:00
pederbs b5f3c625ba distrust 2025-01-29 11:07:34 +01:00
pederbs 0810406154 rip brumle 2025-01-29 11:07:28 +01:00
pederbs 917fca573b ghostty paste is good 2025-01-29 10:57:36 +01:00
pederbs 580e83f545 shpool 2025-01-29 10:50:03 +01:00
pederbs 350c6bce9d micro: fix 2025-01-29 10:39:20 +01:00
pederbs ef9b182254 tssh 2025-01-29 10:38:33 +01:00
pederbs 5250262df5 home: readline .inputrc 2025-01-29 10:25:21 +01:00
pederbs c9d5efc1c7 clock 2025-01-29 10:24:41 +01:00
pederbs e76ef28f54 micro: comment line 2025-01-27 09:51:27 +01:00
pederbs 48259cac39 pq 2025-01-27 09:33:31 +01:00
pederbs d27c3394e8 port colors from manjaro profile 2025-01-26 16:15:40 +01:00
pederbs 5db1d5da11 sudo destore 2025-01-26 16:15:10 +01:00
pederbs 67d34d9ee5 pimp ps1 2025-01-26 16:14:38 +01:00
pederbs 36188d39b7 add gcc to nix-ld profile
helps with pip doing sdist stuff
2025-01-26 15:56:15 +01:00
pederbs cd63719915 ghostty ram 2025-01-26 15:55:54 +01:00
pederbs 94c12e9cdb home: make bashrc.d 2025-01-26 15:55:30 +01:00
pederbs d4aad12c32 nfs 2025-01-25 03:10:56 +01:00
pederbs e3fa8f1f3a fix fda 2025-01-25 00:09:57 +01:00
pederbs 2a0b9a5eec foo 2025-01-22 12:49:16 +01:00
pederbs cbef2dbf97 fixup! atticd wip 2025-01-22 10:06:34 +01:00
pederbs 28ef202265 asd 2025-01-22 10:02:10 +01:00
pederbs 92270f099f atticd wip 2025-01-22 10:01:41 +01:00
pederbs 1739e583e3 lommel cname is gone... 2025-01-22 08:35:57 +01:00
pederbs 6dcae784e9 cuno 2025-01-22 00:18:51 +01:00
pederbs 5da6e6502c asd 2025-01-21 23:42:55 +01:00
pederbs e364359bdb eza: no icons 2025-01-21 12:41:20 +01:00
pederbs 683615a8da ptpython 2025-01-20 12:23:46 +01:00
pederbs 0cb4c954eb asd 2025-01-20 11:41:53 +01:00
pederbs a16700a873 syncthing on eple 2025-01-20 11:37:08 +01:00
pederbs 2aceb5d8ca lkdasladsljk 2025-01-16 04:01:12 +01:00
pederbs c8a56b538a nord: retroarch 2025-01-16 03:52:08 +01:00
pederbs 639c6955ba update community buidlers 2025-01-15 11:14:17 +01:00
pederbs 67f98cefab re-enable lxterminal
ghostty sometimes is unable to get a GL context
2025-01-15 08:44:14 +01:00
pederbs d137a2ae37 users.pbsds: enable pueue 2025-01-15 08:42:11 +01:00
pederbs 46fd830de0 update keys 2025-01-15 08:30:35 +01:00
pederbs 4c07288c99 boooo 2025-01-15 00:36:48 +01:00
pederbs 70af95cfea boo 2025-01-14 22:44:57 +01:00
pederbs 0f11af9e2c asdasd 2025-01-13 00:48:36 +01:00
pederbs f5b6ff56a3 asd 2025-01-13 00:46:35 +01:00
pederbs 1700ac2082 garp has shitty fns 2025-01-12 19:47:36 +01:00
pederbs 3a825f05f4 asd 2025-01-12 00:51:00 +01:00
pederbs 2adba0ed1b 100mb scrollback 2025-01-12 00:46:49 +01:00
pederbs 617b8732fe fix dyndns 2025-01-11 16:42:12 +01:00
pederbs cb47e6f04a klajsdlkajsdlkj 2025-01-11 16:23:46 +01:00
pederbs f517f13905 asdasd 2025-01-09 01:51:57 +01:00
pederbs a7729df705 fixups 2025-01-09 01:33:30 +01:00
pederbs 8d876374e1 flake.lock: Update
Flake lock file updates:

• Updated input 'home-manager-2411':
    'github:nix-community/home-manager/80b0fdf483c5d1cb75aaad909bd390d48673857f' (2024-12-16)
  → 'github:nix-community/home-manager/bd65bc3cde04c16755955630b344bc9e35272c56' (2025-01-08)
• Updated input 'home-manager-edge':
    'github:nix-community/home-manager/8264bfe3a064d704c57df91e34b795b6ac7bad9e' (2024-12-23)
  → 'github:nix-community/home-manager/7e00856596891850ba5ad4c5ecd2ed74468c08c5' (2025-01-08)
• Updated input 'nix-index-database':
    'github:Mic92/nix-index-database/d583b2d142f0428313df099f4a2dcf2a0496aa78' (2024-12-22)
  → 'github:Mic92/nix-index-database/816a6ae88774ba7e74314830546c29e134e0dffb' (2025-01-05)
• Updated input 'nix-index-database/nixpkgs':
    follows 'nixpkgs-2311'
  → follows 'nixpkgs-2411'
• Updated input 'nixos-hardware':
    'github:NixOS/nixos-hardware/def1d472c832d77885f174089b0d34854b007198' (2024-12-23)
  → 'github:NixOS/nixos-hardware/4f339f6be2b61662f957c2ee9eda0fa597d8a6d6' (2025-01-07)
• Updated input 'nixpkgs-2405':
    'github:NixOS/nixpkgs/6df924734e1b626efd70925545de844b1c25246f' (2024-12-22)
  → 'github:NixOS/nixpkgs/b134951a4c9f3c995fd7be05f3243f8ecd65d798' (2024-12-30)
• Updated input 'nixpkgs-2411':
    'github:NixOS/nixpkgs/1807c2b91223227ad5599d7067a61665c52d1295' (2024-12-22)
  → 'github:NixOS/nixpkgs/3f0a8ac25fb674611b98089ca3a5dd6480175751' (2025-01-06)
• Updated input 'nixpkgs-edge':
    'github:NixOS/nixpkgs/d70bd19e0a38ad4790d3913bf08fcbfc9eeca507' (2024-12-19)
  → 'github:NixOS/nixpkgs/8f3e1f807051e32d8c95cd12b9b421623850a34d' (2025-01-04)
• Updated input 'sops-nix-2305':
    'github:Mic92/sops-nix/ed091321f4dd88afc28b5b4456e0a15bd8374b4d' (2024-12-18)
  → 'github:Mic92/sops-nix/c9c88f08e3ee495e888b8d7c8624a0b2519cb773' (2025-01-06)
• Updated input 'sops-nix-2311':
    'github:Mic92/sops-nix/ed091321f4dd88afc28b5b4456e0a15bd8374b4d' (2024-12-18)
  → 'github:Mic92/sops-nix/c9c88f08e3ee495e888b8d7c8624a0b2519cb773' (2025-01-06)
• Updated input 'sops-nix-2405':
    'github:Mic92/sops-nix/ed091321f4dd88afc28b5b4456e0a15bd8374b4d' (2024-12-18)
  → 'github:Mic92/sops-nix/c9c88f08e3ee495e888b8d7c8624a0b2519cb773' (2025-01-06)
• Updated input 'sops-nix-2411':
    'github:Mic92/sops-nix/ed091321f4dd88afc28b5b4456e0a15bd8374b4d' (2024-12-18)
  → 'github:Mic92/sops-nix/c9c88f08e3ee495e888b8d7c8624a0b2519cb773' (2025-01-06)
• Updated input 'sops-nix-edge':
    'github:Mic92/sops-nix/ed091321f4dd88afc28b5b4456e0a15bd8374b4d' (2024-12-18)
  → 'github:Mic92/sops-nix/c9c88f08e3ee495e888b8d7c8624a0b2519cb773' (2025-01-06)
2025-01-09 00:56:22 +01:00
pederbs 9388e2a35b http/docs: fix nix, nixpkgs, nixos and linux docs 2025-01-09 00:55:47 +01:00
pederbs 6d0f430ba3 lxterminal -> ghostty 2025-01-09 00:50:11 +01:00
pederbs 25934a0e7c stuff 2025-01-08 21:08:08 +01:00
pederbs 82a40e6678 noximilien.stateVersion; 24.05 -> 24.11 2025-01-08 21:04:35 +01:00
pederbs 738b75bced noximilien: 24.05 -> 24.11 2025-01-08 19:39:09 +01:00
pederbs a249babe17 move music to Freon 2025-01-04 19:57:33 +01:00
pederbs 3b81478320 fix gnome search 2025-01-01 18:57:04 +01:00
pederbs a1a3195601 the binfmt thingy is merged 2024-12-26 01:25:50 +01:00
pederbs 7ab2501ce6 some fixes 2024-12-26 01:19:04 +01:00
pederbs 6301733ee8 migrate refleksjon and roroslyd to flake inputs 2024-12-26 01:18:33 +01:00
pederbs f143b3b5eb add lots of rules for vmVariant 2024-12-26 01:18:01 +01:00
pederbs 6a66681dec eple: 2405 -> 2411 2024-12-25 19:49:26 +01:00
pederbs f3d01ba80f nord: 2405 -> 2411 2024-12-25 19:49:05 +01:00
pederbs de1aa5a12f bolle: 24.05 -> 24.11 2024-12-24 03:13:57 +01:00
pederbs c9a89035b5 support hardware.graphics 2024-12-24 00:37:33 +01:00
pederbs 071c95f049 nox: stateversion 23.11 -> 24.05 2024-12-24 00:33:57 +01:00
pederbs ed0695b1ed asd 2024-12-23 22:40:44 +01:00
pederbs b65b237765 deprecate pkgs.gnome 2024-12-23 15:58:00 +01:00
pederbs d8d8a2594d remove pvv sops key 2024-12-23 14:41:34 +01:00
pederbs bbcb894eb0 flake.lock: Update
Flake lock file updates:

• Added input 'home-manager-2411':
    'github:nix-community/home-manager/80b0fdf483c5d1cb75aaad909bd390d48673857f' (2024-12-16)
• Added input 'home-manager-2411/nixpkgs':
    follows 'nixpkgs-2405'
• Updated input 'home-manager-edge':
    'github:nix-community/home-manager/e83414058edd339148dc142a8437edb9450574c8' (2024-10-27)
  → 'github:nix-community/home-manager/8264bfe3a064d704c57df91e34b795b6ac7bad9e' (2024-12-23)
• Updated input 'nix-index-database':
    'github:Mic92/nix-index-database/0e3a8778c2ee218eff8de6aacf3d2fa6c33b2d4f' (2024-10-27)
  → 'github:Mic92/nix-index-database/d583b2d142f0428313df099f4a2dcf2a0496aa78' (2024-12-22)
• Updated input 'nixos-generators-2405':
    'github:nix-community/nixos-generators/7c60ba4bc8d6aa2ba3e5b0f6ceb9fc07bc261565' (2024-10-21)
  → 'github:nix-community/nixos-generators/051d1b2dda3b2e81b38d82e2b691e5c2f4d335f4' (2024-12-23)
• Updated input 'nixos-generators-2405/nixlib':
    'github:nix-community/nixpkgs.lib/cce4521b6df014e79a7b7afc58c703ed683c916e' (2024-10-20)
  → 'github:nix-community/nixpkgs.lib/0a31e8d833173ae63e43fd9dbff1ccf09c4f778c' (2024-12-22)
• Updated input 'nixos-hardware':
    'github:NixOS/nixos-hardware/e8a2f6d5513fe7b7d15701b2d05404ffdc3b6dda' (2024-10-24)
  → 'github:NixOS/nixos-hardware/def1d472c832d77885f174089b0d34854b007198' (2024-12-23)
• Updated input 'nixpkgs-2405':
    'github:NixOS/nixpkgs/cd3e8833d70618c4eea8df06f95b364b016d4950' (2024-10-26)
  → 'github:NixOS/nixpkgs/6df924734e1b626efd70925545de844b1c25246f' (2024-12-22)
• Added input 'nixpkgs-2411':
    'github:NixOS/nixpkgs/1807c2b91223227ad5599d7067a61665c52d1295' (2024-12-22)
• Updated input 'nixpkgs-edge':
    'github:NixOS/nixpkgs/18536bf04cd71abd345f9579158841376fdd0c5a' (2024-10-25)
  → 'github:NixOS/nixpkgs/d70bd19e0a38ad4790d3913bf08fcbfc9eeca507' (2024-12-19)
• Updated input 'sops-nix-2305':
    'github:Mic92/sops-nix/1666d16426abe79af5c47b7c0efa82fd31bf4c56' (2024-10-27)
  → 'github:Mic92/sops-nix/ed091321f4dd88afc28b5b4456e0a15bd8374b4d' (2024-12-18)
• Removed input 'sops-nix-2305/nixpkgs-stable'
• Updated input 'sops-nix-2311':
    'github:Mic92/sops-nix/1666d16426abe79af5c47b7c0efa82fd31bf4c56' (2024-10-27)
  → 'github:Mic92/sops-nix/ed091321f4dd88afc28b5b4456e0a15bd8374b4d' (2024-12-18)
• Removed input 'sops-nix-2311/nixpkgs-stable'
• Updated input 'sops-nix-2405':
    'github:Mic92/sops-nix/1666d16426abe79af5c47b7c0efa82fd31bf4c56' (2024-10-27)
  → 'github:Mic92/sops-nix/ed091321f4dd88afc28b5b4456e0a15bd8374b4d' (2024-12-18)
• Removed input 'sops-nix-2405/nixpkgs-stable'
• Added input 'sops-nix-2411':
    'github:Mic92/sops-nix/ed091321f4dd88afc28b5b4456e0a15bd8374b4d' (2024-12-18)
• Added input 'sops-nix-2411/nixpkgs':
    follows 'nixpkgs-2411'
• Updated input 'sops-nix-edge':
    'github:Mic92/sops-nix/1666d16426abe79af5c47b7c0efa82fd31bf4c56' (2024-10-27)
  → 'github:Mic92/sops-nix/ed091321f4dd88afc28b5b4456e0a15bd8374b4d' (2024-12-18)
• Removed input 'sops-nix-edge/nixpkgs-stable'
2024-12-23 14:41:12 +01:00
pederbs 4712995d9c pinebook for gambia 2024-12-02 12:52:07 +01:00
pederbs becb50ed52 ting 2024-11-30 17:18:43 +01:00
pederbs 41a5c6bbca 2411 2024-11-30 17:15:39 +01:00
pederbs 90b4d59445 asd 2024-11-30 17:15:39 +01:00
pederbs 3c5d3c9e08 sopp: 2405 -> edge 2024-11-24 23:40:00 +01:00
pederbs 51896b9381 more proxy changes. login.pvv.ntnu.no only lets me in 50% of the time, but using "login2" may break once the cname is gone 2024-11-24 21:16:28 +01:00
pederbs b97866294c no tmate 2024-11-20 23:56:22 +01:00
pederbs ffdcb0156f binfmt 2024-11-20 23:56:22 +01:00
pederbs bc077edd64 the one true office 2024-11-20 23:56:22 +01:00
pederbs f83af96986 bjarte: 2405 -> edge 2024-11-15 06:49:28 +01:00
pederbs 1a3686fb10 rings 2024-11-15 06:07:34 +01:00
pederbs 6e9bba588a oops 2024-11-15 05:47:37 +01:00
pederbs 7f6ac346f4 things 2024-11-15 04:50:41 +01:00
pederbs 729a6bdcaf meconium kinda bad 2024-11-15 04:50:06 +01:00
pederbs af45e6919c non-open cuda on pascal 2024-11-15 04:49:48 +01:00
pederbs eac4b42dad inner/outer tailscale 2024-11-15 04:49:11 +01:00
pederbs 9dec14bc80 prnt 2024-11-02 18:42:21 +01:00
pederbs 1cc5901241 lkjadslkajdslkj 2024-10-31 16:25:35 +01:00
pederbs 9f42a1ec27 wol 2024-10-31 16:24:40 +01:00
pederbs c2806de48c flake.lock: Update
Flake lock file updates:

• Updated input 'home-manager-edge':
    'github:nix-community/home-manager/d57112db877f07387ce7104b5ac346ede556d2d7' (2024-10-12)
  → 'github:nix-community/home-manager/e83414058edd339148dc142a8437edb9450574c8' (2024-10-27)
• Updated input 'nix-index-database':
    'github:Mic92/nix-index-database/5fce10c871bab6d7d5ac9e5e7efbb3a2783f5259' (2024-10-07)
  → 'github:Mic92/nix-index-database/0e3a8778c2ee218eff8de6aacf3d2fa6c33b2d4f' (2024-10-27)
• Updated input 'nixos-generators-2405':
    'github:nix-community/nixos-generators/40c8d30c490414910fc63626ad1b67af7db40cd3' (2024-10-10)
  → 'github:nix-community/nixos-generators/7c60ba4bc8d6aa2ba3e5b0f6ceb9fc07bc261565' (2024-10-21)
• Updated input 'nixos-generators-2405/nixlib':
    'github:nix-community/nixpkgs.lib/b61309c3c1b6013d36299bc8285612865b3b9e4c' (2024-10-06)
  → 'github:nix-community/nixpkgs.lib/cce4521b6df014e79a7b7afc58c703ed683c916e' (2024-10-20)
• Updated input 'nixos-hardware':
    'github:NixOS/nixos-hardware/a8dd1b21995964b115b1e3ec639dd6ce24ab9806' (2024-10-12)
  → 'github:NixOS/nixos-hardware/e8a2f6d5513fe7b7d15701b2d05404ffdc3b6dda' (2024-10-24)
• Updated input 'nixos-nspawn':
    'github:tfc/nspawn-nixos/7fe5a42c6f9116402a68abc81410a59d18fd48c2' (2024-01-16)
  → 'github:tfc/nspawn-nixos/27fb0061fecff6664de2ee26d24d98f04956f90f' (2024-10-22)
• Updated input 'nixpkgs-2405':
    'github:NixOS/nixpkgs/c505ebf777526041d792a49d5f6dd4095ea391a7' (2024-10-11)
  → 'github:NixOS/nixpkgs/cd3e8833d70618c4eea8df06f95b364b016d4950' (2024-10-26)
• Updated input 'nixpkgs-edge':
    'github:NixOS/nixpkgs/5633bcff0c6162b9e4b5f1264264611e950c8ec7' (2024-10-09)
  → 'github:NixOS/nixpkgs/18536bf04cd71abd345f9579158841376fdd0c5a' (2024-10-25)
• Updated input 'sops-nix-2305':
    'github:Mic92/sops-nix/06535d0e3d0201e6a8080dd32dbfde339b94f01b' (2024-10-08)
  → 'github:Mic92/sops-nix/1666d16426abe79af5c47b7c0efa82fd31bf4c56' (2024-10-27)
• Updated input 'sops-nix-2311':
    'github:Mic92/sops-nix/06535d0e3d0201e6a8080dd32dbfde339b94f01b' (2024-10-08)
  → 'github:Mic92/sops-nix/1666d16426abe79af5c47b7c0efa82fd31bf4c56' (2024-10-27)
• Updated input 'sops-nix-2405':
    'github:Mic92/sops-nix/06535d0e3d0201e6a8080dd32dbfde339b94f01b' (2024-10-08)
  → 'github:Mic92/sops-nix/1666d16426abe79af5c47b7c0efa82fd31bf4c56' (2024-10-27)
• Updated input 'sops-nix-edge':
    'github:Mic92/sops-nix/06535d0e3d0201e6a8080dd32dbfde339b94f01b' (2024-10-08)
  → 'github:Mic92/sops-nix/1666d16426abe79af5c47b7c0efa82fd31bf4c56' (2024-10-27)
2024-10-30 23:19:02 +01:00
pederbs 7e3e2ac979 lkadkadkajds 2024-10-30 23:19:02 +01:00
pederbs 0b3c0cbea0 hidpi 2024-10-30 23:19:02 +01:00
pederbs d998fd13f9 nixos-unstable fixes 2024-10-30 23:18:53 +01:00
pederbs 60b890b566 domeneshop: don't set temporary ipv6
fucks you up on restart
2024-10-30 17:02:21 +01:00
pederbs 5e261ca6d6 isvegg nede 2024-10-29 23:18:08 +01:00
pederbs 728c01d1b6 give me man back 2024-10-25 00:26:53 +02:00
pederbs 38ebfa09b0 whoops 2024-10-24 23:52:38 +02:00
pederbs ae375933f3 backward compat 2024-10-24 23:51:49 +02:00
pederbs 86f1fcdeb6 lksjdlkajslkasj 2024-10-24 23:43:35 +02:00
pederbs 0236a45cf5 garp: unstable 2024-10-24 23:25:59 +02:00
pederbs 9e0b72025e fix me harders 2024-10-23 00:28:06 +02:00
pederbs 1a840b77f5 fix 2024-10-23 00:24:27 +02:00
pederbs 3b6d97e88e asgaut 2024-10-23 00:10:49 +02:00
pederbs 550249ee50 no heid 2024-10-22 19:36:09 +02:00
pederbs eb9afab2ef llaksjdalsdj 2024-10-20 23:51:00 +02:00
pederbs 8963a53693 :) 2024-10-20 22:08:51 +02:00
pederbs d0c94acc5b bl 2024-10-20 17:24:33 +02:00
pederbs a2efa883d4 mac 2024-10-20 02:52:56 +02:00
pederbs 6dd77f1154 fzf 2024-10-20 02:52:38 +02:00
pederbs a8c291abed laksjd 2024-10-20 02:25:50 +02:00
pederbs 12ac06d18c cleanup 2024-10-19 20:41:39 +02:00
pederbs 527eccd87a move desktop/base.nix to desktop/ 2024-10-19 20:40:40 +02:00
pederbs 5e8b411730 fixup 2024-10-19 18:53:16 +02:00
pederbs 3af0c8a43f move secrets to host folder 2024-10-19 18:45:45 +02:00
pederbs a1034afb0f hosts: nixos subdir
making room for darwin, system manager and nixbsd
2024-10-19 17:54:49 +02:00
pederbs 7859e8848d ts 2024-10-19 17:35:12 +02:00
pederbs 821e184120 remote go brrr 2024-10-19 04:40:57 +02:00
pederbs a612898422 vms 2024-10-19 04:05:45 +02:00
pederbs 4cc421ec43 things 2024-10-19 04:05:19 +02:00
pederbs f2452c241d fix 2024-10-18 22:05:53 +02:00
pederbs f981150018 aarch64.nixos.community 2024-10-18 21:58:48 +02:00
pederbs a4bc2a97ba heid 2024-10-18 20:50:04 +02:00
pederbs 8457b4f88b asdasd 2024-10-18 20:32:59 +02:00
pederbs ea19531b5d nixcon bby 2024-10-17 23:11:14 +02:00
pederbs 7d97c13394 :) 2024-10-17 23:05:10 +02:00
pederbs aea1b673be multi nixpkgs-review 2024-10-17 23:05:01 +02:00
pederbs d97b9bbcd7 lkajsdlakjsdlkjasd 2024-10-17 22:50:41 +02:00
pederbs 0e0b638e79 :) 2024-10-17 22:45:24 +02:00
pederbs 5a69f3246c tailscale exit nodes 2024-10-14 11:36:47 +02:00
pederbs e79ceed010 docker on garp 2024-10-13 18:41:56 +02:00
pederbs c4ceeb6435 lkajsd 2024-10-12 20:31:24 +02:00
pederbs 5d083d863f flake.lock: Update
Flake lock file updates:

• Updated input 'home-manager-2405':
    'github:nix-community/home-manager/e1391fb22e18a36f57e6999c7a9f966dc80ac073' (2024-07-03)
  → 'github:nix-community/home-manager/2f23fa308a7c067e52dfcc30a0758f47043ec176' (2024-09-22)
• Updated input 'home-manager-edge':
    'github:nix-community/home-manager/c2cd2a52e02f1dfa1c88f95abeb89298d46023be' (2024-08-23)
  → 'github:nix-community/home-manager/d57112db877f07387ce7104b5ac346ede556d2d7' (2024-10-12)
• Updated input 'nix-index-database':
    'github:Mic92/nix-index-database/e333d62b70b179da1dd78d94315e8a390f2d12e5' (2024-08-25)
  → 'github:Mic92/nix-index-database/5fce10c871bab6d7d5ac9e5e7efbb3a2783f5259' (2024-10-07)
• Updated input 'nixos-hardware':
    'github:NixOS/nixos-hardware/95c3dfe6ef2e96ddc1ccdd7194e3cda02ca9a8ef' (2024-08-28)
  → 'github:NixOS/nixos-hardware/a8dd1b21995964b115b1e3ec639dd6ce24ab9806' (2024-10-12)
• Updated input 'nixpkgs-2405':
    'github:NixOS/nixpkgs/36bae45077667aff5720e5b3f1a5458f51cf0776' (2024-08-27)
  → 'github:NixOS/nixpkgs/c505ebf777526041d792a49d5f6dd4095ea391a7' (2024-10-11)
• Updated input 'nixpkgs-edge':
    'github:NixOS/nixpkgs/d0e1602ddde669d5beb01aec49d71a51937ed7be' (2024-08-24)
  → 'github:NixOS/nixpkgs/5633bcff0c6162b9e4b5f1264264611e950c8ec7' (2024-10-09)
• Updated input 'sops-nix-2305':
    'github:Mic92/sops-nix/be0eec2d27563590194a9206f551a6f73d52fa34' (2024-08-12)
  → 'github:Mic92/sops-nix/06535d0e3d0201e6a8080dd32dbfde339b94f01b' (2024-10-08)
• Updated input 'sops-nix-2311':
    'github:Mic92/sops-nix/be0eec2d27563590194a9206f551a6f73d52fa34' (2024-08-12)
  → 'github:Mic92/sops-nix/06535d0e3d0201e6a8080dd32dbfde339b94f01b' (2024-10-08)
• Updated input 'sops-nix-2405':
    'github:Mic92/sops-nix/be0eec2d27563590194a9206f551a6f73d52fa34' (2024-08-12)
  → 'github:Mic92/sops-nix/06535d0e3d0201e6a8080dd32dbfde339b94f01b' (2024-10-08)
• Updated input 'sops-nix-edge':
    'github:Mic92/sops-nix/be0eec2d27563590194a9206f551a6f73d52fa34' (2024-08-12)
  → 'github:Mic92/sops-nix/06535d0e3d0201e6a8080dd32dbfde339b94f01b' (2024-10-08)
2024-10-12 19:13:00 +02:00
pederbs 75a4121ca2 todos 2024-10-12 19:07:41 +02:00
pederbs ba7d752f14 override cinny again 2024-10-12 19:07:16 +02:00
pederbs 1aad14b873 no more autossh 2024-10-12 19:07:02 +02:00
pederbs 68f73418cc disable hm sops 2024-10-12 16:07:48 +02:00
pederbs 6e6df72eb2 fix nixbld-remote 2024-10-12 16:07:20 +02:00
pederbs 11ae1097de nixbld-remote 2024-10-12 03:12:49 +02:00
pederbs 7d8165c1bb cleanup 2024-10-12 03:12:49 +02:00
pederbs 9206f9da29 eple: binfmt aarch64-linux 2024-10-12 03:12:49 +02:00
pederbs af3bb1cbf9 heid 2024-10-12 03:12:49 +02:00
pederbs 06ca3a547c heid 2024-10-11 14:25:16 +02:00
pederbs c602b45922 remote-builders -> known-hosts, add aliases 2024-10-11 14:24:31 +02:00
pederbs b9615589b4 ldsdfghjkl 2024-10-11 12:28:49 +02:00
pederbs 971fb5aa89 update stateVersions 2024-10-11 09:29:31 +02:00
pederbs dfd8f31f1e :) 2024-10-10 21:24:11 +02:00
pederbs 9bc3213367 just timeout 2024-10-10 21:08:00 +02:00
pederbs 6132cb3c9a tailscale 2024-10-10 21:06:31 +02:00
pederbs b6e9ed6d09 reduce clutter in search 2024-10-10 20:18:57 +02:00
pederbs 5a6149352e i'm an idiot 2024-10-10 20:12:42 +02:00
pederbs d2b9dd528e make darwin key root only 2024-10-10 19:20:20 +02:00
pederbs a4101d21dc lkjasdadslkj 2024-10-10 01:30:10 +02:00
pederbs 84fbfad9e9 things 2024-10-09 16:59:31 +02:00
pederbs 55e781a7d1 v4l2 2024-10-09 16:50:34 +02:00
pederbs 1341d9d719 pbsdspkgs 2024-10-09 16:43:52 +02:00
pederbs bd765031de fix 2024-10-09 08:58:12 +02:00
pederbs 9c492ef548 mihon 2024-10-08 15:17:22 +02:00
pederbs 8cf5d99c53 community builder 2024-10-08 15:17:08 +02:00
pederbs 7c06b78278 test papers
evince ftw
2024-10-08 15:15:46 +02:00
pederbs 6a20f1b792 waydroid 2024-10-08 15:14:55 +02:00
pederbs 620ab5b259 guigobrrr 2024-10-08 12:11:27 +02:00
pederbs 5e5b21e4cb iwd sucky sucky 2024-10-08 12:11:27 +02:00
pederbs 54b4e103ed lxterminal 2024-10-07 13:22:15 +02:00
pederbs ad0be3c1c7 mr. mime 2024-10-07 11:42:49 +02:00
pederbs 9924c88719 fix flake homeConfigurations eval 2024-10-07 11:39:30 +02:00
pederbs 28e082cd9c home: group desktop stuff 2024-10-07 11:39:06 +02:00
pederbs de26106903 binfmt 2024-10-07 11:22:08 +02:00
pederbs b27ef07caa ølaksdøalkds 2024-10-04 14:31:13 +02:00
pederbs 93bfd533bf refactor remote builders 2024-10-04 08:30:58 +02:00
pederbs 307b1d26f3 http/docs: remote with lib, remove md 2024-10-04 03:17:33 +02:00
pederbs d1d06e192f remove mkFlakeView
shitty abstractions bad
2024-10-04 03:10:38 +02:00
pederbs c78862ef0e remote nixos-hardware-2311 2024-10-04 03:00:03 +02:00
pederbs f175fb76f7 clean 2024-10-03 17:31:06 +02:00
pederbs 1321b9a7d3 move domene-shop-updater 2024-10-03 17:31:06 +02:00
pederbs b334d69bd9 tools 2024-10-02 09:17:15 +02:00
pederbs 9a573ca719 lkjasdlkajsdlkj 2024-09-29 17:31:39 +02:00
pederbs f34730bd54 ewezen 2024-09-29 16:11:07 +02:00
pederbs dd80bfa2f1 ewesticker: nord 2024-09-29 16:00:04 +02:00
pederbs 124a7f4c10 ewesticker 2024-09-29 15:58:50 +02:00
pederbs ff71886e2f lkjasdlkajdlaksjd 2024-09-27 18:14:59 +02:00
pederbs 804ca52ae8 syncthing go brrr 2024-09-27 18:07:05 +02:00
pederbs a3b3378118 syncthing: add rocm 2024-09-27 17:04:03 +02:00
pederbs 8151acc790 lkjalskdjalskjd 2024-09-27 11:13:26 +02:00
pederbs efacba3c5f format dconf 2024-09-27 09:05:39 +02:00
pederbs d2f990d335 fiix sync 2024-09-22 02:51:30 +02:00
pederbs a0aae1f281 fix sync 2024-09-22 02:14:49 +02:00
pederbs 14d832f7be zed 2024-09-22 02:14:03 +02:00
pederbs 6f02b1df41 home: force micro 2024-09-22 02:12:59 +02:00
pederbs 13354fb6bf fix webdav 2024-09-22 00:09:11 +02:00
pederbs b57cf3ae96 fix 2024-09-21 23:56:32 +02:00
pederbs 3f537af9db syncthing 2024-09-21 21:31:55 +02:00
pederbs bc5139a8d0 lkslkjasdlkajsdlakjds 2024-09-20 20:43:08 +02:00
pederbs fcbcce2149 kljasdkj<aldkjhsdlkfjahsdlfkjhadlfkjhlakjdhlkajhdflkadf hei daniel kjahsdkjhasdkjhaskjdh 2024-09-16 23:44:42 +02:00
pederbs 3f43e3c39f løkajsdlkjdlakjsd 2024-09-15 22:02:48 +02:00
pederbs d125eec709 add mprocs remote runner 2024-09-15 22:02:35 +02:00
pederbs 64dbfdc3cf asd 2024-09-15 18:32:55 +02:00
pederbs db8a54305f fix access token blocking upgrade 2024-09-14 00:30:14 +02:00
pederbs c0848aef88 auto-upgrade: future proof
untested
2024-09-13 23:02:32 +02:00
pederbs 408cbcd4a0 lkajsdlkajsldj 2024-09-13 18:25:22 +02:00
pederbs 573ca91f6e darwin aliases 2024-09-13 18:12:35 +02:00
pederbs 71f874d785 bjarte: no time zone 2024-09-13 18:12:23 +02:00
pederbs a5073929ec jump: fix syntax 2024-09-13 18:12:04 +02:00
pederbs 8931b042e6 flake.lock: Update
Flake lock file updates:

• Updated input 'home-manager-edge':
    'github:nix-community/home-manager/086f619dd991a4d355c07837448244029fc2d9ab' (2024-08-11)
  → 'github:nix-community/home-manager/c2cd2a52e02f1dfa1c88f95abeb89298d46023be' (2024-08-23)
• Updated input 'nix-index-database':
    'github:Mic92/nix-index-database/ec78079a904d7d55e81a0468d764d0fffb50ac06' (2024-08-11)
  → 'github:Mic92/nix-index-database/e333d62b70b179da1dd78d94315e8a390f2d12e5' (2024-08-25)
• Updated input 'nixos-generators-2311':
    'github:nix-community/nixos-generators/a220fc3a6e144f12f0c3dc3e4d01d44c2e6b0b85' (2024-08-12)
  → 'github:nix-community/nixos-generators/0dd0205bc3f6d602ddb62aaece5f62a8715a9e85' (2024-08-29)
• Updated input 'nixos-generators-2311/nixlib':
    'github:nix-community/nixpkgs.lib/8bebd4c74f368aacb047f0141db09ec6b339733c' (2024-08-04)
  → 'github:nix-community/nixpkgs.lib/b741d900fecd2f0c32d90f853b24be9f5f098b7d' (2024-08-25)
• Updated input 'nixos-hardware':
    'github:NixOS/nixos-hardware/c54cf53e022b0b3c1d3b8207aa0f9b194c24f0cf' (2024-08-10)
  → 'github:NixOS/nixos-hardware/95c3dfe6ef2e96ddc1ccdd7194e3cda02ca9a8ef' (2024-08-28)
• Updated input 'nixpkgs-2405':
    'github:NixOS/nixpkgs/4a92571f9207810b559c9eac203d1f4d79830073' (2024-08-13)
  → 'github:NixOS/nixpkgs/36bae45077667aff5720e5b3f1a5458f51cf0776' (2024-08-27)
• Updated input 'nixpkgs-edge':
    'github:NixOS/nixpkgs/a58bc8ad779655e790115244571758e8de055e3d' (2024-08-11)
  → 'github:NixOS/nixpkgs/d0e1602ddde669d5beb01aec49d71a51937ed7be' (2024-08-24)
2024-08-28 21:29:29 -04:00
pederbs 7ef808cdf2 known-hosts: cuda 2024-08-24 00:45:42 +02:00
pederbs 17d33ad93e ns 2024-08-22 22:31:36 +02:00
pederbs fd547a8e57 statix 2024-08-22 22:09:14 +02:00
pederbs 01e082062d aksjdlakjd 2024-08-20 03:23:38 +02:00
pederbs ab68ab2a4d asdasd 2024-08-20 03:23:14 +02:00
pederbs 9bcc71da42 lksjdlakjsdl 2024-08-18 03:16:17 +02:00
pederbs b9ff0eed86 fdølkjsdølkhsadkjfhalkjfhalkdjhflksahflakjshflkajsdhflkajhfdlkjashdflkfdølkjsdølkhsadkjfhalkjfhalkdjhflksahflakjshflkajsdhflkajhfdlkjashdflkfdølkjsdølkhsadkjfhalkjfhalkdjhflksahflakjshflkajsdhflkajhfdlkjashdflkfdølkjsdølkhsadkjfhalkjfhalkdjhflksahflakjshflkajsdhflkajhfdlkjashdflkfdølkjsdølkhsadkjfhalkjfhalkdjhflksahflakjshflkajsdhflkajhfdlkjashdflkfdølkjsdølkhsadkjfhalkjfhalkdjhflksahflakjshflkajsdhflkajhfdlkjashdflkfdølkjsdølkhsadkjfhalkjfhalkdjhflksahflakjshflkajsdhflkajhfdlkjashdflkfdølkjsdølkhsadkjfhalkjfhalkdjhflksahflakjshflkajsdhflkajhfdlkjashdflkfdølkjsdølkhsadkjfhalkjfhalkdjhflksahflakjshflkajsdhflkajhfdlkjashdflkfdølkjsdølkhsadkjfhalkjfhalkdjhflksahflakjshflkajsdhflkajhfdlkjashdflkfdølkjsdølkhsadkjfhalkjfhalkdjhflksahflakjshflkajsdhflkajhfdlkjashdflkfdølkjsdølkhsadkjfhalkjfhalkdjhflksahflakjshflkajsdhflkajhfdlkjashdflkfdølkjsdølkhsadkjfhalkjfhalkdjhflksahflakjshflkajsdhflkajhfdlkjashdflkfdølkjsdølkhsadkjfhalkjfhalkdjhflksahflakjshflkajsdhflkajhfdlkjashdflk 2024-08-16 23:46:54 +02:00
pederbs 0e37004674 eple: 2311->2405 2024-08-16 23:02:55 +02:00
pederbs 5a982e5e24 lkjlalaksjd 2024-08-16 21:05:52 +02:00
pederbs c46d2a3f36 systemwide tweaks 2024-08-16 00:42:09 +02:00
pederbs 44f140e63c justfile: selective update 2024-08-16 00:41:59 +02:00
pederbs a576db63d1 yeet gitea 2024-08-16 00:41:48 +02:00
pederbs da1c3b4c88 default.nix -> configuration.nix 2024-08-16 00:41:33 +02:00
pederbs 84d9ffe45f known-hosts: add wegonke 2024-08-16 00:01:31 +02:00
pederbs 8956514766 remoteenv 2024-08-15 20:22:11 +02:00
283 changed files with 10437 additions and 3511 deletions
+65 -20
View File
@@ -1,28 +1,73 @@
#!/usr/bin/env bash
git config --local core.hooksPath "$PWD"/.githooks
# https://direnv.net/man/direnv-stdlib.1.html
test -d .direnv || mkdir -p .direnv
now="$(date +%Y-%m-%d)"
if ! test -s .direnv/pull-date || test "$now" != "$(cat .direnv/pull-date)"; then
git reset flake.lock
git restore flake.lock
git pull --rebase --autostash
grep -q "^=======" flake.lock && { git reset flake.lock; rm flake.lock; }
nix flake update
echo "$now" > .direnv/pull-date
# for when i spawn a bunch of tabs
if command -v git-wait >/dev/null; then
git() { git-wait "$@"; }
fi
# TODO:
# git config --local core.hooksPath "$PWD"/.githooks
if ! test -f .remote.toml; then
use flake .#envrc-local
else
use flake .#envrc-remote
echo
just remote-current
just remote-list
echo
flake_shell=.#envrc
if [[ -f .remote.toml ]]; then
flake_shell+=-remotes
fi
if [[ ! -f /run/current-system/nixos-version ]]; then
flake_shell+=-fhs
fi
if rg 'TODO' -q ; then
echo "There are $(rg 'TODO' | wc -l ) 'TODO'"
# ensure (dirty) updated flake lock
# TODO: cache this on gitea? Run in background?
# now="$(date +%Y-%m-%d)" # daily
now="$(date +%Y-%m--%V)" # weekly
if [[ ! -d .direnv/tmp ]]; then
mkdir -p .direnv/tmp
elif command -v find >/dev/null; then
find .direnv/tmp/ -mindepth 1 -maxdepth 1 -type d -and ! -newermt "4 hours ago" -exec rm -rf {} \;
fi
if [[ ! -s .direnv/pull-date || "$now" != "$(cat .direnv/pull-date)" ]]; then
just pull
direnv allow # :3
# nix flake update
! declare -F update_flake >&/dev/null || ! echo >&2 "ERROR: update_flake() already declared!"
update_flake() (
set -euo pipefail
declare -a update_args=()
readarray -td $'\n' update_args <<<"$(
nix eval --file flake.nix --apply 'x: builtins.attrNames x.inputs' --json |
jq '.[]' -r |
grep -v '^nixpkgs-expensive$'
)"
# update_args+=(--output-lock-file "$tmp"/new-flake.lock)
set -x
nix flake update "${update_args[@]}" || {
nix flake update "${update_args[@]}" --option access-tokens ""
nix flake prefetch-inputs --option access-tokens ""
}
)
if command -v pueue >/dev/null && pueue status >&/dev/null; then
# update and build shell in background
echo >&2 "+ pueue add --immediate nix flake update ..."
pueue add --immediate "$(declare -f update_flake); update_flake \"\$@\"; set -x; nix print-dev-env \"$flake_shell\" >/dev/null"
else
# update while blocking
update_flake
fi
unset -f update_flake
# TODO: move to pueue job?
printf "%s\n" "$now" >.direnv/pull-date
fi
# source env
use flake "$flake_shell"
echo
just motd
echo
unset -f git
export QEMU_NET_OPTS="hostfwd=tcp::10022-:22,hostfwd=tcp::10080-:80,hostfwd=tcp::10443-:443"
+6
View File
@@ -1,7 +1,13 @@
result
results
result-*
results-*
/configuration.nix
/hardware-configuration.nix
.direnv
.remote.toml
/.pre-commit-config.yaml
_*
/logs
mprocs.log
*.qcow2
+32 -3
View File
@@ -1,5 +1,34 @@
#!/usr/bin/env bash
export HOST_SHELL="$(command -v "$SHELL")"
eval "$(nix print-dev-env .#remoteenv)"
echo Entered "$(hostname --fqdn)"
df -h /nix/store
export IS_REMOTE_ENV=1
flake_shell=.#remoteenv
if [[ ! -f /run/current-system/nixos-version ]]; then
flake_shell+=-fhs
fi
# nix() {
# if [[ "$(nix --version | cut -d. -f2)" -lt 18 ]]; then
# command nix run nixpkgs#nix -- "$@"
# else
# command nix "$@"
# fi
# }
# `test A -nt B` deferences symlinks
t1=$(stat --format=%Z flake.nix 2>/dev/null || printf 0)
t2=$(stat --format=%Z flake.lock 2>/dev/null || printf 0)
t3=$(stat --format=%Z .direnv/flake-remote-devshell-profile 2>/dev/null || printf 0)
if [[ "$t1" -gt "$t3" || "$t2" -gt "$t3" ]]; then
mkdir -p .direnv/
eval "$(nix --extra-experimental-features "nix-command flakes" print-dev-env --profile ".direnv/flake-remote-devshell-profile" "$flake_shell" --option access-tokens '')"
else
eval "$(nix --extra-experimental-features "nix-command flakes" print-dev-env ".direnv/flake-remote-devshell-profile" --option access-tokens '')"
fi
unset t1 t2 t3 flake_shell
{
echo Entered "$(hostname --fqdn)"
df -h /nix/store
echo
} >&2
+9 -2
View File
@@ -4,8 +4,15 @@ include = []
[pull]
exclude = ["*"]
include = [ ".sops.yaml" ]
include = []
[both]
exclude = [ ".remote.toml", "result", ".direnv"]
exclude = [
".remote.toml",
"result",
"results",
"result-*",
"results-*",
".direnv",
]
include = []
+29 -20
View File
@@ -1,12 +1,13 @@
# sops updatekeys <fname>
keys: # https://github.com/getsops/sops/pull/1123
user_pbsds: &user_pbsds
# just sops-pubkey-user
# test -s ~/.config/sops/age/keys.txt || ( mkdir -p ~/.config/sops/age; age-keygen -o ~/.config/sops/age/keys.txt >/dev/null ); age-keygen -y ~/.config/sops/age/keys.txt
- &user_pbsds_sopp age1hmpdk4h69wxpwqk9tkud39f66hprhehxtzhgw97r6dvr7v0mx5jscsuhkn
- &user_pbsds_nord age1wrssr4z4g6vl3fd3qme5cewchmmhm0j2xe6wf2meu4r6ycn37anse98mfs
- &user_pbsds_bjarte age1zhxul786an743u0fascv4wtc5xduu7qfy803lfs539yzhgmlq5ds2lznt5
- &user_pbsds_hm_pvv age1dws633vckj6aye9y5p0nv867v2y06j6cfeys87rsy6e8nq6dsfyqg0aksk
hosts: &hosts
# (remote-quick) just sops-pubkey-system
# ssh $(remote-host) cat /etc/ssh/ssh_host_ed25519_key.pub | ssh-to-age
- &host_sopp age1zvqjaanff7x3f2a7853sd9ylna99khw4x6qfpf6am4yupsc44phsr2vfy3
- &host_nox age1zh3nmy2a7s2v7g9t7zg56p8sjqwmvqv5s7dn2v22x5nxyl5wfdcsaf5tw7
@@ -14,13 +15,12 @@ keys: # https://github.com/getsops/sops/pull/1123
- &host_garp age14qunhxz08gmw5r8ky0ez9rjf9dj3ue9hrzz580gwwj4cms46vd7ss4rutf
- &host_eple age1fha09v5edg88ys45a0u3tpjqfyl29fsy9xaz8xxfy60zjhmas5psfdxynp
- &host_nord age19xrvt0gjl4fcfjyy62mrl9uuzrq9e0wgemtkykr07ewz7nqn9cwshngel5
- &host_brumle age1czlqpfdvey2hzgr79skxvtg4stnfawq045l5sl59j0cd9hfuqvlq83v647 # brumlebasse
- &host_bjarte age13dmsned3exqn2wwwxa465vwmdtfuktk49gpshwtu0ujp94syzq5suj0a9w
# https://github.com/getsops/sops#key-groups
creation_rules:
# global
- path_regex: secrets/default.yaml$
- path_regex: secrets/common.yaml$
key_groups:
- age:
- *user_pbsds_sopp
@@ -32,7 +32,6 @@ creation_rules:
- *host_garp
- *host_eple
- *host_nord
- *host_brumle
- *host_bjarte
# dns
- path_regex: secrets/dns.yaml$
@@ -45,7 +44,25 @@ creation_rules:
- *host_bolle
- *host_garp
- *host_eple
- *host_brumle
- path_regex: secrets/tailscale-inner.yaml$
key_groups:
- age:
- *user_pbsds_sopp
- *user_pbsds_nord
- *user_pbsds_bjarte
- *host_sopp
- *host_nox
- *host_eple
- *host_nord
- *host_bjarte
- path_regex: secrets/tailscale-outer.yaml$
key_groups:
- age:
- *user_pbsds_sopp
- *user_pbsds_nord
- *user_pbsds_bjarte
- *host_bolle
- *host_garp
# home-manager
- path_regex: secrets/user-pbsds.yaml$
key_groups:
@@ -54,7 +71,7 @@ creation_rules:
- *user_pbsds_nord
- *user_pbsds_bjarte
# sopp only
- path_regex: secrets/sopp(/[^/]+)?\.yaml$
- path_regex: hosts/nixos/sopp/secrets.yaml$
key_groups:
- age:
- *user_pbsds_sopp
@@ -62,7 +79,7 @@ creation_rules:
- *user_pbsds_bjarte
- *host_sopp
# nox only
- path_regex: secrets/noximilien(/[^/]+)?\.yaml$
- path_regex: hosts/nixos/noximilien/secrets.yaml$
key_groups:
- age:
- *user_pbsds_sopp
@@ -70,7 +87,7 @@ creation_rules:
- *user_pbsds_bjarte
- *host_nox
# bolle only
- path_regex: secrets/bolle(/[^/]+)?\.yaml$
- path_regex: hosts/nixos/bolle/secrets.yaml$
key_groups:
- age:
- *user_pbsds_sopp
@@ -78,7 +95,7 @@ creation_rules:
- *user_pbsds_bjarte
- *host_bolle
# garp only
- path_regex: secrets/garp(/[^/]+)?\.yaml$
- path_regex: hosts/nixos/garp/secrets.yaml$
key_groups:
- age:
- *user_pbsds_sopp
@@ -86,7 +103,7 @@ creation_rules:
- *user_pbsds_bjarte
- *host_garp
# eple only
- path_regex: secrets/eple(/[^/]+)?\.yaml$
- path_regex: hosts/nixos/eple/secrets.yaml$
key_groups:
- age:
- *user_pbsds_sopp
@@ -94,7 +111,7 @@ creation_rules:
- *user_pbsds_bjarte
- *host_eple
# nord only
- path_regex: secrets/nord(/[^/]+)?\.yaml$
- path_regex: hosts/nixos/nord/secrets.yaml$
key_groups:
- age:
- *user_pbsds_sopp
@@ -102,18 +119,10 @@ creation_rules:
- *user_pbsds_bjarte
- *host_nord
# bjarte only
- path_regex: secrets/bjarte(/[^/]+)?\.yaml$
- path_regex: hosts/nixos/bjarte/secrets.yaml$
key_groups:
- age:
- *user_pbsds_sopp
- *user_pbsds_nord
- *user_pbsds_bjarte
- *host_bjarte
# brumlebasse only
- path_regex: secrets/brumle(basse)?(/[^/]+)?\.yaml$
key_groups:
- age:
- *user_pbsds_sopp
- *user_pbsds_nord
- *user_pbsds_bjarte
- *host_brumle
+4
View File
@@ -0,0 +1,4 @@
// https://zed.dev/docs/configuring-zed#settings-files
{
"format_on_save": "off"
}
-101
View File
@@ -1,101 +0,0 @@
{ config, pkgs, lib, inputs, ... }:
{
imports = let ifExists = p: if builtins.pathExists p then p else {}; in [
./cachix.nix # update with `cachix use --mode nixos -d . FOOBAR`
./profiles/locale-no.nix
./profiles/upgrade-diff.nix
./profiles/lix.nix
# results of 'nixos-generate-config'
# nice to have if i just dump this flake into /etc/nixos on a clean install
(ifExists ./configuration.nix )
(ifExists ./hardware-configuration.nix )
];
nixpkgs.overlays = [ (import ./overlay.nix) ];
nixpkgs.config.permittedInsecurePackages = [
pkgs.pulsar.name
pkgs.zotero.name
pkgs.gitea.name
];
environment.systemPackages = with pkgs; [
ddrescue
gptfdisk
ms-sys
nvme-cli
parted
pciutils
smartmontools
testdisk
usbutils
] ++ lib.optionals (builtins.elem config.nixpkgs.system [ "x86_64-linux" "aarch64_linux"]) [
cage
weston
];
# TODO: selectively whitelist
nixpkgs.config.allowUnfree = true;
nixpkgs.config.allowUnfreePredicate = (pkg: true);
nixpkgs.config.nonfreeLicensing = true; # used by ffmpeg
hardware.enableRedistributableFirmware = true;
sops.secrets.nix-access-tokens.mode = "0440";
sops.secrets.nix-access-tokens.group = config.users.groups.keys.name;
nix.extraOptions = ''
!include ${config.sops.secrets.nix-access-tokens.path}
'';
nix.settings.experimental-features = [
"nix-command"
"flakes"
];
#nix.settings.allowed-users = [ "@builders" ]; # TODO: this
nix.settings.allowed-users = [ "root" "pbsds" "@wheel" ]; # default is [ "*" ]
nix.settings.trusted-users = [ "root" "pbsds" "@wheel" ];
nix.settings.keep-derivations = true; # keep .drv in store, great with nix-diff
nix.settings.auto-optimise-store = true; # deduplicate with hardlinks, expensive. Alternative: nix-store --optimise
nix.settings.max-silent-time = 3600;
#nix.settings.keep-failed = true; # fills up $TMPDIR
nix.settings.log-lines = 35;
#nix.optimize.automatic = true; # periodic optimization
nix.gc.automatic = true;
nix.gc.dates = "weekly";
nix.gc.options = lib.mkIf config.system.autoUpgrade.enable "--delete-older-than 15d";
nix.settings.min-free = 3 * 1024 * 1024 * 1024;
nix.settings.max-free = 20 * 1024 * 1024 * 1024;
services.thermald.enable = lib.mkIf (lib.all (x: x) [
(config.nixpkgs.system == "x86_64-linux")
(!config.boot.isContainer or false)
]) true;
# no acme in VM mode:
virtualisation.vmVariant = {
/* users.users.root.initialPassword = "root"; */
security.acme.defaults.server = "https://127.0.0.1";
security.acme.preliminarySelfsigned = true;
};
# System fonts
# Nice to have when X-forwading on headless machines
fonts.fontDir.enable = true; # creates /run/current-system/sw/share/X11/fonts
fonts.enableDefaultPackages = true; # dejavu, freefont, gyre, liberation, unifont, noto-fonts-emoji
fonts.packages = with pkgs; [
noto-fonts # includes Cousine
noto-fonts-cjk
noto-fonts-emoji
noto-fonts-extra
];
networking.firewall.enable = true; # default
# https://discourse.nixos.org/t/what-to-do-with-a-full-boot-partition/2049
# raise to 15 if auto upgrading
boot.loader.grub.configurationLimit = lib.mkDefault 5;
boot.loader.systemd-boot.configurationLimit = lib.mkDefault 5;
boot.loader.raspberryPi.uboot.configurationLimit = lib.mkDefault 5;
boot.loader.generic-extlinux-compatible.configurationLimit = lib.mkDefault 5;
}
-13
View File
@@ -1,13 +0,0 @@
# WARN: this file will get overwritten by $ cachix use <name>
{ pkgs, lib, ... }:
let
folder = ./cachix;
toImport = name: value: folder + ("/" + name);
filterCaches = key: value: value == "regular" && lib.hasSuffix ".nix" key;
imports = lib.mapAttrsToList toImport (lib.filterAttrs filterCaches (builtins.readDir folder));
in {
inherit imports;
nix.settings.substituters = ["https://cache.nixos.org/"];
}
-13
View File
@@ -1,13 +0,0 @@
# via https://nixos.wiki/wiki/CUDA
{
nix = {
settings = {
substituters = [
"https://cuda-maintainers.cachix.org"
];
trusted-public-keys = [
"cuda-maintainers.cachix.org-1:0dq3bujKpuEPMCX6U4WylrUDZ9JyUG0VpVZa7CNfq5E="
];
};
};
}
-13
View File
@@ -1,13 +0,0 @@
{
nix = {
settings = {
substituters = [
"https://nix-community.cachix.org"
];
trusted-public-keys = [
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
];
};
};
}
-13
View File
@@ -1,13 +0,0 @@
{
nix = {
settings = {
substituters = [
"https://nixos-rocm.cachix.org"
];
trusted-public-keys = [
"nixos-rocm.cachix.org-1:VEpsf7pRIijjd8csKjFNBGzkBqOmw8H9PRmgAq14LnE="
];
};
};
}
-13
View File
@@ -1,13 +0,0 @@
{
nix = {
settings = {
substituters = [
"https://nixpkgs-unfree.cachix.org"
];
trusted-public-keys = [
"nixpkgs-unfree.cachix.org-1:hqvoInulhbV4nJ9yJOEr+4wxhDV4xq2d1DK7S6Nj6rs="
];
};
};
}
-13
View File
@@ -1,13 +0,0 @@
{
nix = {
settings = {
substituters = [
"https://numtide.cachix.org"
];
trusted-public-keys = [
"numtide.cachix.org-1:2ps1kLBUWjxIneOy1Ik6cQjb41X0iXVXeHigGmycPPE="
];
};
};
}
Generated
+1025 -170
View File
File diff suppressed because it is too large Load Diff
+288 -277
View File
@@ -3,23 +3,39 @@
inputs = {
# https://github.com/nixos/nixpkgs
nixpkgs-test.url = "github:NixOS/nixpkgs/refs/pull/295155/head"; # for testing
nixpkgs-edge.url = "github:NixOS/nixpkgs/nixos-unstable"; # "edge" is four letters
nixpkgs-2405.url = "github:NixOS/nixpkgs/nixos-24.05";
nixpkgs-2311.url = "github:NixOS/nixpkgs/nixos-23.11";
nixpkgs-2305.url = "github:NixOS/nixpkgs/nixos-23.05";
nixpkgs-2211.url = "github:NixOS/nixpkgs/nixos-22.11"; # for old docs
nixpkgs-2205.url = "github:NixOS/nixpkgs/nixos-22.05"; # for old docs
nixpkgs-2111.url = "github:NixOS/nixpkgs/nixos-21.11"; # for old docs
nixpkgs-2105.url = "github:NixOS/nixpkgs/nixos-21.05"; # for old docs
nixpkgs-2009.url = "github:NixOS/nixpkgs/nixos-20.09"; # for old docs
nixpkgs-2003.url = "github:NixOS/nixpkgs/nixos-20.03"; # for old docs
nixpkgs-1909.url = "github:NixOS/nixpkgs/nixos-19.09"; # for old docs
nixpkgs-test.url = "github:NixOS/nixpkgs/refs/pull/379645/merge"; # for testing
nixpkgs-edge.url = "https://nixos.org/channels/nixos-unstable/nixexprs.tar.xz"; # len("edge") == 4
# remember to update ./profiles/auto-upgrade.nix
nixpkgs-2605.url = "https://nixos.org/channels/nixos-26.05/nixexprs.tar.xz";
nixpkgs-2511.url = "https://nixos.org/channels/nixos-25.11/nixexprs.tar.xz";
nixpkgs-2505.url = "https://nixos.org/channels/nixos-25.05/nixexprs.tar.xz";
nixpkgs-2411.url = "https://nixos.org/channels/nixos-24.11/nixexprs.tar.xz"; # for old docs
nixpkgs-2405.url = "https://nixos.org/channels/nixos-24.05/nixexprs.tar.xz"; # for old docs
nixpkgs-2311.url = "https://nixos.org/channels/nixos-23.11/nixexprs.tar.xz"; # for old docs
nixpkgs-2305.url = "https://nixos.org/channels/nixos-23.05/nixexprs.tar.xz"; # for old docs
nixpkgs-2211.url = "https://nixos.org/channels/nixos-22.11/nixexprs.tar.xz"; # for old docs
nixpkgs-2205.url = "https://nixos.org/channels/nixos-22.05/nixexprs.tar.xz"; # for old docs
nixpkgs-2111.url = "https://nixos.org/channels/nixos-21.11/nixexprs.tar.xz"; # for old docs
nixpkgs-2105.url = "https://nixos.org/channels/nixos-21.05/nixexprs.tar.xz"; # for old docs
nixpkgs-2009.url = "https://nixos.org/channels/nixos-20.09/nixexprs.tar.xz"; # for old docs
nixpkgs-2003.url = "https://nixos.org/channels/nixos-20.03/nixexprs.tar.xz"; # for old docs
nixpkgs-1909.url = "https://nixos.org/channels/nixos-19.09/nixexprs.tar.xz"; # for old docs
nixpkgs-1909.flake = false; # Earlier versions are not flake-pure
# expensive to bump
# nixpkgs-expensive.url = "github:NixOS/nixpkgs/nixos-unstable";
# https://github.com/nix-community/home-manager
home-manager-edge.url = "github:nix-community/home-manager/master";
home-manager-edge.inputs.nixpkgs.follows = "nixpkgs-edge";
home-manager-2605.url = "github:nix-community/home-manager/release-26.05";
home-manager-2605.inputs.nixpkgs.follows = "nixpkgs-2605";
home-manager-2511.url = "github:nix-community/home-manager/release-25.11";
home-manager-2511.inputs.nixpkgs.follows = "nixpkgs-2511";
home-manager-2505.url = "github:nix-community/home-manager/release-25.05";
home-manager-2505.inputs.nixpkgs.follows = "nixpkgs-2505";
home-manager-2411.url = "github:nix-community/home-manager/release-24.11";
home-manager-2411.inputs.nixpkgs.follows = "nixpkgs-2411";
home-manager-2405.url = "github:nix-community/home-manager/release-24.05";
home-manager-2405.inputs.nixpkgs.follows = "nixpkgs-2405";
home-manager-2311.url = "github:nix-community/home-manager/release-23.11";
@@ -27,39 +43,61 @@
home-manager-2305.url = "github:nix-community/home-manager/release-23.05";
home-manager-2305.inputs.nixpkgs.follows = "nixpkgs-2305";
nix-on-droid-edge.url = "github:nix-community/nix-on-droid/master";
nix-on-droid-edge.inputs.nixpkgs.follows = "nixpkgs-edge";
nix-on-droid-2505.url = "github:nix-community/nix-on-droid/release-24.05";
nix-on-droid-2505.inputs.nixpkgs.follows = "nixpkgs-2505";
nix-on-droid-2405.url = "github:nix-community/nix-on-droid/release-24.05";
nix-on-droid-2405.inputs.nixpkgs.follows = "nixpkgs-2405";
# https://github.com/nix-community/nix-index-database
nix-index-database.url = "github:Mic92/nix-index-database";
nix-index-database.inputs.nixpkgs.follows = "nixpkgs-2311"; # only used for .packages
nix-index-database.inputs.nixpkgs.follows = "nixpkgs-2411"; # only used for .packages
# https://github.com/NixOS/nixos-hardware
nixos-hardware.url = "github:NixOS/nixos-hardware";
nixos-hardware-2311.url = "github:NixOS/nixos-hardware/ae5c8dcc4d0182d07d75df2dc97112de822cb9d6"; # pre https://github.com/NixOS/nixos-hardware/pull/977
# https://github.com/numtide/system-manager
system-manager-edge.url = "github:numtide/system-manager";
system-manager-edge.inputs.nixpkgs.follows = "nixpkgs-edge";
# https://github.com/soupglasses/nix-system-graphics
nix-system-graphics-edge.url = "github:soupglasses/nix-system-graphics";
nix-system-graphics-edge.inputs.nixpkgs.follows = "nixpkgs-edge";
# https://github.com/tfc/nspawn-nixos
nixos-nspawn.url = "github:tfc/nspawn-nixos";
nixos-nspawn.flake = false; # we don't use it /shrug
# https://github.com/nix-community/nix-unit
/* nix-unit.url = "github:nix-community/nix-unit"; */
/* nix-unit.inputs.nixpkgs.follows = "nixpkgs-edge"; */
# https://github.com/wamserma/flake-programs-sqlite
#flake-programs-sqlite-2311.url = "github:wamserma/flake-programs-sqlite";
#flake-programs-sqlite-2311.inputs.nixpkgs.follows = "nixpkgs-2311";
# https://github.com/nix-community/nixos-generators
nixos-generators-2311.url = "github:nix-community/nixos-generators";
nixos-generators-2311.inputs.nixpkgs.follows = "nixpkgs-2311";
nixos-generators-2405.url = "github:nix-community/nixos-generators";
nixos-generators-2405.inputs.nixpkgs.follows = "nixpkgs-2405";
# https://github.com/Mic92/sops-nix
sops-nix-edge.url = "github:Mic92/sops-nix";
sops-nix-edge.inputs.nixpkgs.follows = "nixpkgs-edge";
sops-nix-edge.inputs.nixpkgs-stable.follows = "nixpkgs-2405";
sops-nix-2605.url = "github:Mic92/sops-nix";
sops-nix-2605.inputs.nixpkgs.follows = "nixpkgs-2605";
sops-nix-2511.url = "github:Mic92/sops-nix";
sops-nix-2511.inputs.nixpkgs.follows = "nixpkgs-2511";
sops-nix-2505.url = "github:Mic92/sops-nix";
sops-nix-2505.inputs.nixpkgs.follows = "nixpkgs-2505";
sops-nix-2411.url = "github:Mic92/sops-nix";
sops-nix-2411.inputs.nixpkgs.follows = "nixpkgs-2411";
sops-nix-2405.url = "github:Mic92/sops-nix";
sops-nix-2405.inputs.nixpkgs.follows = "nixpkgs-2405";
sops-nix-2405.inputs.nixpkgs-stable.follows = "nixpkgs-2405";
sops-nix-2311.url = "github:Mic92/sops-nix";
sops-nix-2311.inputs.nixpkgs.follows = "nixpkgs-2311";
sops-nix-2311.inputs.nixpkgs-stable.follows = "nixpkgs-2311";
sops-nix-2305.url = "github:Mic92/sops-nix";
sops-nix-2305.inputs.nixpkgs.follows = "nixpkgs-2305";
sops-nix-2305.inputs.nixpkgs-stable.follows = "nixpkgs-2305";
## https://github.com/h7x4/maunium-stickerpicker-nix
#maunium-stickerpicker-nix.url = "github:h7x4/maunium-stickerpicker-nix";
@@ -74,331 +112,304 @@
nix-vscode-extensions.url = "github:nix-community/nix-vscode-extensions"
#https://github.com/numtide/nixpkgs-unfree # has a cache
#https://github.com/matthewbauer/nixiosk
# https://github.com/cachix/pre-commit-hooks.nix
inputs.pre-commit-hooks.url = "github:cachix/pre-commit-hooks.nix";
inputs.pre-commit-hooks.inputs.nixpkgs.follows = "nixpkgs-edge";
inputs.pre-commit-hooks.inputs.nixpkgs-stable.follows = "nixpkgs-2311";
/**/
#pbsds-papers.url = "git+ssh://git@github.com/pbsds/papers.git";
/** /
# https://github.com/cachix/pre-commit-hooks.nix
pre-commit-hooks.url = "github:cachix/pre-commit-hooks.nix";
pre-commit-hooks.inputs.nixpkgs.follows = "nixpkgs-edge";
/**/
# #pbsds-papers.url = "git+ssh://git@github.com/pbsds/papers.git";
# roroslyd-no.url = "https://git.pvv.ntnu.no/pederbs/roroslyd.no/archive/main.tar.gz";
# roroslyd-no.flake = false;
# refleksjon-net.url = "https://git.pvv.ntnu.no/pederbs/refleksjon.net/archive/main.tar.gz";
# refleksjon-net.flake = false;
};
nixConfig.extra-substituters = [
"https://cuda-maintainers.cachix.org"
"https://nix-community.cachix.org"
"https://nixos-rocm.cachix.org"
"https://nixpkgs-unfree.cachix.org"
"https://numtide.cachix.org"
];
nixConfig.extra-trusted-public-keys = [
"cuda-maintainers.cachix.org-1:0dq3bujKpuEPMCX6U4WylrUDZ9JyUG0VpVZa7CNfq5E="
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
"nixos-rocm.cachix.org-1:VEpsf7pRIijjd8csKjFNBGzkBqOmw8H9PRmgAq14LnE="
"nixpkgs-unfree.cachix.org-1:hqvoInulhbV4nJ9yJOEr+4wxhDV4xq2d1DK7S6Nj6rs="
"numtide.cachix.org-1:2ps1kLBUWjxIneOy1Ik6cQjb41X0iXVXeHigGmycPPE="
];
nixConfig = {
# ./profiles/base/binary-caches.nix | jq '.nix.settings.substituters[]'
extra-substituters = [
"https://cache.flox.dev/?priority=60"
"https://cache.nixos-cuda.org?priority=45"
"https://cache.nixos.org/"
"https://nix-community.cachix.org/?priority=50"
];
# ./profiles/base/binary-caches.nix | jq '.nix.settings."trusted-public-keys"[]'
extra-trusted-public-keys = [
"flox-cache-public-1:7F4OyH7ZCnFhcze3fJdfyXYLQw/aV7GEed86nQ7IsOs="
"cache.nixos-cuda.org:74DUi4Ye579gUqzH4ziL9IyiJBlDpMRn9MBN8oNan9M="
"cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
];
};
outputs = {
self,
nixos-hardware,
nixos-hardware-2311,
nixos-nspawn,
nixos-generators-2311,
...
} @ inputs':
outputs = { self, ... } @ inputs':
let
inputs-edge = inputs' // {
input-views.inputs-edge = inputs' // {
nixpkgs = inputs'.nixpkgs-edge;
unstable = inputs'.nixpkgs-edge;
home-manager = inputs'.home-manager-edge;
sops-nix = inputs'.sops-nix-edge;
};
inputs-2405 = inputs' // {
nixpkgs = inputs'.nixpkgs-2405;
input-views.inputs-2605 = inputs' // {
nixpkgs = inputs'.nixpkgs-2605;
unstable = inputs'.nixpkgs-edge;
home-manager = inputs'.home-manager-2605;
sops-nix = inputs'.sops-nix-2605;
};
input-views.inputs-2511 = inputs' // {
nixpkgs = inputs'.nixpkgs-2511;
unstable = inputs'.nixpkgs-2605;
home-manager = inputs'.home-manager-2511;
sops-nix = inputs'.sops-nix-2511;
};
input-views.inputs-2505 = inputs' // {
nixpkgs = inputs'.nixpkgs-2505;
unstable = inputs'.nixpkgs-2511;
home-manager = inputs'.home-manager-2505;
sops-nix = inputs'.sops-nix-2505;
};
input-views.inputs-2411 = inputs' // {
nixpkgs = inputs'.nixpkgs-2411;
unstable = inputs'.nixpkgs-2505;
home-manager = inputs'.home-manager-2411;
sops-nix = inputs'.sops-nix-2411;
};
input-views.inputs-2405 = inputs' // {
nixpkgs = inputs'.nixpkgs-2405;
unstable = inputs'.nixpkgs-2411;
home-manager = inputs'.home-manager-2405;
sops-nix = inputs'.sops-nix-2405;
};
inputs-2311 = inputs' // {
input-views.inputs-2311 = inputs' // {
nixpkgs = inputs'.nixpkgs-2311;
unstable = inputs'.nixpkgs-2405;
home-manager = inputs'.home-manager-2311;
sops-nix = inputs'.sops-nix-2311;
};
inputs-2305 = inputs' // {
input-views.inputs-2305 = inputs' // {
nixpkgs = inputs'.nixpkgs-2305;
unstable = inputs'.nixpkgs-2311;
home-manager = inputs'.home-manager-2305;
sops-nix = inputs'.sops-nix-2305;
};
inputs-2211 = inputs-2305 // { nixpkgs = inputs'.nixpkgs-2211; };
inputs-2205 = inputs-2305 // { nixpkgs = inputs'.nixpkgs-2205; };
inputs-2111 = inputs-2305 // { nixpkgs = inputs'.nixpkgs-2111; };
inputs-2105 = inputs-2305 // { nixpkgs = inputs'.nixpkgs-2105; };
inputs-2009 = inputs-2305 // { nixpkgs = inputs'.nixpkgs-2009; };
inputs-2003 = inputs-2305 // { nixpkgs = inputs'.nixpkgs-2003; };
inputs-1909 = inputs-2305 // { nixpkgs = inputs'.nixpkgs-1909; };
inputs-test = inputs-edge // { nixpkgs = inputs'.nixpkgs-test; unstable = inputs'.nixpkgs-test; };
input-views.inputs-2211 = input-views.inputs-2305 // { nixpkgs = inputs'.nixpkgs-2211; };
input-views.inputs-2205 = input-views.inputs-2305 // { nixpkgs = inputs'.nixpkgs-2205; };
input-views.inputs-2111 = input-views.inputs-2305 // { nixpkgs = inputs'.nixpkgs-2111; };
input-views.inputs-2105 = input-views.inputs-2305 // { nixpkgs = inputs'.nixpkgs-2105; };
input-views.inputs-2009 = input-views.inputs-2305 // { nixpkgs = inputs'.nixpkgs-2009; };
input-views.inputs-2003 = input-views.inputs-2305 // { nixpkgs = inputs'.nixpkgs-2003; };
input-views.inputs-1909 = input-views.inputs-2305 // { nixpkgs = inputs'.nixpkgs-1909; };
input-views.inputs-test = input-views.inputs-edge // { nixpkgs = inputs'.nixpkgs-test; unstable = inputs'.nixpkgs-test; };
input-views.inputs-250T = input-views.inputs-2505 // { unstable = inputs'.nixpkgs-test; };
input-views.inputs-241T = input-views.inputs-2411 // { unstable = inputs'.nixpkgs-test; }; # TODO: remove
mkFlakeView = inputs: system: inputs.nixpkgs.lib.mapAttrs (name: flake: flake // {
# TODO filter non-flake inputs
nixos = flake.nixosModules
or null;
pkgs = flake.packages.${system}
or flake.legacyPackages.${system}
or null;
lib = flake.lib.${system}
or flake.lib
or null;
}) inputs;
forSystems = systems: f: inputs-edge.nixpkgs.lib.genAttrs systems (system: f rec {
forSystems = systems: f: input-views.inputs-edge.nixpkgs.lib.genAttrs systems (system: f rec {
inherit system;
inputs = inputs-edge;
inputs = input-views.inputs-edge;
pkgs = inputs.nixpkgs.legacyPackages.${system};
lib = inputs.nixpkgs.legacyPackages.${system}.lib;
flakes = mkFlakeView inputs system;
});
forAllSystems = forSystems [
"x86_64-linux"
"aarch64-linux"
#"riscv64-linux"
"riscv64-linux"
];
mkModule = extra-modules: domain: system: inputs: stateVersion: modules: hostname: ({ lib, ... }: {
system.stateVersion = lib.mkDefault stateVersion; # TODO: home-manager
imports = let ifExists = p: if builtins.pathExists p then p else {}; in [
./base.nix
"${self}/hosts/${hostname}" # (ifExists "${self}/hosts/${hostname}")
inputs.sops-nix.nixosModules.sops
inputs.home-manager.nixosModule
#inputs.nix-index-database.nixosModules.nix-index # TODO: fix?
] ++ modules ++ extra-modules;
#++ inputs.flake-programs-sqlite.nixosModules.programs-sqlite; # TODO: make work
sops.defaultSopsFile = ./secrets/default.yaml;
#sops.defaultSopsFile = lib.mkIf (builtins.pathExists ./secrets/${hostname}.yaml) ./secrets/${hostname}.yaml;
sops.age.sshKeyPaths = [ "/etc/ssh/ssh_host_ed25519_key" ];
sops.age.keyFile = "/var/lib/sops-nix/key.txt";
sops.age.generateKey = true;
home-manager.useGlobalPkgs = true; # go brrr, reuse overrides
home-manager.extraSpecialArgs = {
inherit inputs;
flakes = mkFlakeView inputs system;
};
home-manager.sharedModules = [
inputs.sops-nix.homeManagerModules.sops
inputs.nix-index-database.hmModules.nix-index
];
# still needed even if using networkd
networking.hostName = hostname;
networking.domain = domain;
networking.search = [ domain ];
nixpkgs.overlays = [
(final: prev: {
#unstable = unstable.legacyPackages.${final.system};
unstable = import inputs.unstable { inherit system; config.allowUnfree = true; }; # TODO: inherit nixos config from stable
})
];
# This makes commandline tools like 'nix run nixpkgs#hello'
# and 'nix-shell -p hello' use the same channel as system was built with
nix.registry.nixpkgs.flake = inputs.nixpkgs;
nix.registry.nixpkgs-unstable.flake = inputs.unstable;
nix.nixPath = [
"nixpkgs=${inputs.nixpkgs}"
"nixpkgs-unstable=${inputs.unstable}"
];
});
mkConfig = extra-modules: domain: system: inputs: stateVersion: modules: hostname: inputs.nixpkgs.lib.nixosSystem {
inherit system;
specialArgs = {
inherit inputs;
flakes = mkFlakeView inputs system;
};
modules = [ (mkModule extra-modules domain system inputs stateVersion modules hostname) ];
};
mkReport = extra-modules: domain: system: inputs: stateVersion: modules: hostname: let
nixos = mkConfig extra-modules domain system inputs stateVersion modules hostname;
cfg = nixos.config;
inherit (nixos.pkgs) lib;
# TODO: make it work, is it faster?
#inherit (inputs.nixpkgs.legacyPackages.${system}) lib;
#nixos = lib.evalModules { modules = [ (mkModule (extra-modules ++ { _module.check = false; }) domain system inputs stateVersion modules hostname) ]; };
#cfg = nixos.config;
in {
inherit system; # TODO: cross system
inherit (cfg.boot.binfmt) emulatedSystems;
#inherit (cfg.system.build.toplevel) outPath;
inherit (cfg.networking) fqdn;
inherit (cfg.networking.firewall) allowedTCPPorts allowedUDPPorts;
buildMachines = lib.forEach cfg.nix.buildMachines (buildMachine: buildMachine.hostName);
users = lib.pipe cfg.users.users [
(lib.filterAttrs (uname: user: user.isNormalUser))
(builtins.mapAttrs (uname: user: {
authorizedKeys = lib.forEach user.openssh.authorizedKeys.keys (key: builtins.concatStringsSep " " [
(builtins.elemAt (lib.splitString " " key) 0)
"..."
(builtins.elemAt (lib.splitString " " key) 2)
]);
}))
];
bootloader = if cfg.boot.loader.grub.enable then "grub"
else if cfg.boot.loader.systemd-boot.enable then "systemd-boot"
else null;
mounts = lib.pipe cfg.fileSystems [
(lib.filterAttrs (mount: fs: fs.fsType != "nfs"))
(lib.mapAttrs (mount: fs: "${fs.fsType}://${fs.device}"))
];
nginx-vhosts = lib.pipe cfg.services.nginx.virtualHosts [
#(lib.filterAttrs (domain: vhost: )
(lib.mapAttrs (domain: vhost: vhost.serverAliases or []))
];
};
mkHosts = mk: let
ls = imports: { inherit imports; };
hw = nixos-hardware.nixosModules;
hw_ = nixos-hardware-2311.nixosModules;
#vf = nixos-vf2.nixosModules;
amd = ls [ hw.common-pc hw.common-pc-ssd hw.common-cpu-amd ];
intel = ls [ hw.common-pc hw.common-pc-ssd hw.common-cpu-intel ./hardware/gpu/intel.nix ];
intel-novga = ls [ hw.common-pc hw.common-pc-ssd hw.common-cpu-intel-cpu-only ];
cuda = ls [ ./hardware/gpu/cuda.nix hw.common-gpu-nvidia-nonprime ];
cuda-prime = ls [ ./hardware/gpu/cuda.nix hw.common-gpu-nvidia ];
rocm = ls [ ./hardware/gpu/rocm.nix hw.common-gpu-amd ];
rocm_ = ls [ ./hardware/gpu/rocm.nix hw_.common-gpu-amd ];
nspawn = ls [ "${nixos-nspawn}/nspawn-image.nix" { boot.isContainer = true; } ];
hidpi = hw.common-hidpi;
p1005 = ./hardware/printer/hp-laserjet-p1005.nix;
au = ./profiles/auto-upgrade.nix;
#rb = ./profiles/remote-builders.nix; # TODO
nixld = ./profiles/nix-ld.nix;
binfmt = ./profiles/binfmt-emu.nix;
dns64 = { config, ... }: {
networking.nameservers = [ "2001:700:1:11::2:51" ]; # dns64.uninett.no
networking.networkmanager.enable = true;
networking.networkmanager.insertNameservers = config.networking.nameservers; # https://github.com/NixOS/nixpkgs/issues/61230
networking.resolvconf.enable = false;
};
in builtins.mapAttrs (hostname: curried: curried hostname) {
#hostname "domain" "system" inputs "state" [ modules ... ]
noximilien = mk "pbsds.net" "x86_64-linux" inputs-2405 "23.11" [ au intel ];
brumlebasse = mk "pbsds.net" "x86_64-linux" inputs-2311 "23.11" [ au amd nspawn ];
nord = mk "pbsds.net" "x86_64-linux" inputs-2405 "23.11" [ au intel-novga hw.common-gpu-intel-sandy-bridge rocm hidpi ];
sopp = mk "pbsds.net" "x86_64-linux" inputs-2405 "23.11" [ au nixld intel cuda p1005 ];
bjarte = mk "pbsds.net" "x86_64-linux" inputs-2405 "23.11" [ nixld intel hw.lenovo-thinkpad-x1-7th-gen ];
bolle = mk "pbsds.net" "x86_64-linux" inputs-2405 "23.11" [ au dns64 intel ];
eple = mk "pbsds.net" "x86_64-linux" inputs-2311 "23.11" [ au dns64 intel rocm_ ];
garp = mk "pbsds.net" "x86_64-linux" inputs-2405 "23.11" [ au dns64 intel-novga cuda ];
hasselknippe= mk "pbsds.net" "aarch64-linux" inputs-2311 "23.11" [ hw.pine64-pinebook-pro ];
#gomperud smattkuken skrytebiffen skalkesnerken balleby bingus skjrlaltatjlstad
#bergjlot snortheimsmoen ditlefsen skrukkerud podebusk zmaragd makrell alfnes blix urke pytte uddu imdorf rosenqvist
};
in {
inputs = inputs';
lib = {
inherit mkFlakeView forSystems;
} // forAllSystems ({ system, ... }: {
inherit mkFlakeView forSystems;
flakes = mkFlakeView inputs-edge system;
flakes-2311 = mkFlakeView inputs-2311 system;
flakes-2305 = mkFlakeView inputs-2305 system;
});
lib = import ./lib.nix { inputs = inputs'; };
nixosModules = mkHosts (mkModule []);
nixosConfigurations = mkHosts (mkConfig []);
nixosReports = mkHosts (mkReport []);
inherit (import ./hosts { inherit input-views; })
# nixos
nixosModules
nixosConfigurations
nixosReports
images
# system-manager
systemConfigs
# nix-on-droid
nixOnDroidConfigurations
;
packages = forAllSystems ({ inputs, pkgs, lib, flakes, ... }: let
mk-nspawn-setup = hostname: # TODO: nspawn-tarball.nix populates /etc/nixos with junk
(pkgs.callPackage ./pkgs/mk-nspawn-setup {})
(mkHosts (mkConfig [ "${nixos-nspawn}/nspawn-tarball.nix" ])).${hostname};
in {
# TODO: get faketty to work ${expect}/bin/unbuffer is bad
nixos-rebuild-nom = pkgs.writeScriptBin "nixos-rebuild" ''
if test -t 1 || test -z "''${NIX_NO_NOM-}"; then
exec ${lib.getExe pkgs.nixos-rebuild} "$@" -L |& ${lib.getExe pkgs.nix-output-monitor}
else
exec ${lib.getExe pkgs.nixos-rebuild} "$@" -L
fi
'';
overlays = {
pbsdspkgs = import ./overlays/pbsdspkgs.nix;
wl-clipboard-timeout = import ./overlays/wl-clipboard-timeout.nix;
default = self.overlays.pbsdspkgs;
};
device-mon = pkgs.callPackage ./pkgs/device-mon {};
#pdoc-docs = (pkgs.callPackage ./pkgs/pdocs.nix {}).pdocs;
#pdoc3-docs = (pkgs.callPackage ./pkgs/pdocs.nix {}).pdocs3;
nspawn-setup-brumlebasse = mk-nspawn-setup "brumlebasse";
image-brumlebasse-openstack = nixos-generators-2311.nixosGenerate {
system = "x86_64-linux";
specialArgs = { inherit inputs flakes; };
modules = [ (mkHosts (mkModule [])).brumlebasse ];
format = "openstack";
};
});
packages = forAllSystems (
{ pkgs, lib, ... }:
let
# TODO: by-name
# TODO: this filterAttrs seems to force the inputs to download
pbsdspkgs = lib.filterAttrs (_: lib.isDerivation) (
pkgs.appendOverlays
[
input-views.inputs-edge.system-manager-edge.overlays.default
self.overlays.pbsdspkgs
]
).pbsds;
in
pbsdspkgs // { }
);
homeModules.jump = ./users/pbsds/modules/jump.nix;
homeModules.micro = ./users/pbsds/modules/micro.nix;
homeConfigurations = forAllSystems ({ system, ... }: let
mkHome = user: home: inputs: modules: inputs.home-manager.lib.homeManagerConfiguration {
homeConfigurations = let
mkHome = username: homeDirectory: system: inputs: modules: inputs.home-manager.lib.homeManagerConfiguration {
pkgs = inputs.nixpkgs.legacyPackages.${system};
modules = modules ++ [{
home.username = user;
home.homeDirectory = home;
home-manager.sharedModules = [
home = { inherit username homeDirectory; };
imports = [
{ home.stateVersion = "25.05"; }
inputs.sops-nix.homeManagerModules.sops
inputs.nix-index-database.hmModules.nix-index
inputs.nix-index-database.homeModules.nix-index
];
nixpkgs.overlays = [
self.overlays.pbsdspkgs
inputs.system-manager-edge.overlays.default
(final: prev: {
unstable = import inputs.unstable {
inherit (final.pkgs) system config;
};
})
];
}];
extraSpecialArgs = {
inherit inputs;
flakes = mkFlakeView inputs system;
};
extraSpecialArgs = { inherit inputs; };
};
forEach = xs: f: map f xs;
pipe = builtins.foldl' (x: f: f x);
attrsToList = a: builtins.attrValues (builtins.mapAttrs (name: value: { inherit name value; }) a);
in
pipe (
forEach ["edge" "2505" "2411"] (release: {
# TODO: static - fhs
# TODO: pvv - nfs home
# TODO: nix-portable - heid
# TODO: garmr
# TODO: furios?
"pbsds-minimal-${release}" = mkHome "pbsds" "/home/pbsds" "x86_64-linux" input-views."inputs-${release}" [ ./users/pbsds/home/profiles/minimal ];
"pbsds-headless-${release}" = mkHome "pbsds" "/home/pbsds" "x86_64-linux" input-views."inputs-${release}" [ ./users/pbsds/home/profiles/headless ];
"pbsds-comfy-${release}" = mkHome "pbsds" "/home/pbsds" "x86_64-linux" input-views."inputs-${release}" [ ./users/pbsds/home/profiles/comfy ];
"pbsds-desktop-${release}" = mkHome "pbsds" "/home/pbsds" "x86_64-linux" input-views."inputs-${release}" [ ./users/pbsds/home/profiles/desktop ];
"pbsds-desktop-gnome-${release}" = mkHome "pbsds" "/home/pbsds" "x86_64-linux" input-views."inputs-${release}" [ ./users/pbsds/home/profiles/desktop/gnome ];
})
++ forEach (builtins.attrNames self.nixosConfigurations) (machine: {
"pbsds@${machine}" = rec {
config = self.nixosConfigurations.${machine}.config.home-manager.users.pbsds;
inherit (config.home) activationPackage;
};
})
) [
(map attrsToList)
builtins.concatLists
builtins.listToAttrs
]
// {
"pederbs@login.pvv.ntnu.no" = mkHome "pederbs" "/home/pvv/d/pederbs" "x86_64-linux" input-views.inputs-2505 [ ./users/pbsds/home/profiles/minimal ];
};
in {
# TODO: pvv
pbsds = mkHome "pbsds" "/home/pbsds" inputs-edge [ ./users/pbsds/home ];
pbsds-2405 = mkHome "pbsds" "/home/pbsds" inputs-2405 [ ./users/pbsds/home ];
pbsds-2311 = mkHome "pbsds" "/home/pbsds" inputs-2311 [ ./users/pbsds/home ];
pbsds-2305 = mkHome "pbsds" "/home/pbsds" inputs-2305 [ ./users/pbsds/home ];
pbsds-gnome = mkHome "pbsds" "/home/pbsds" inputs-edge [ ./users/pbsds/home/gnome.nix ];
pbsds-gnome-2405 = mkHome "pbsds" "/home/pbsds" inputs-2405 [ ./users/pbsds/home/gnome.nix ];
pbsds-gnome-2311 = mkHome "pbsds" "/home/pbsds" inputs-2311 [ ./users/pbsds/home/gnome.nix ];
pbsds-gnome-2305 = mkHome "pbsds" "/home/pbsds" inputs-2305 [ ./users/pbsds/home/gnome.nix ];
});
devShells = forAllSystems ({ pkgs, flakes, ... }: let
mkShell = packages: pkgs.mkShellNoCC { inherit packages; };
# TODO: use this to pull changes to repo
homeFileMap = let
inherit (input-views.inputs-edge.nixpkgs) lib;
files = self.homeConfigurations.x86_64-linux.pbsds-gnome.config.home.file;
in lib.pipe files [
(lib.filterAttrs (k: v: lib.hasPrefix (toString self) (toString v.source)))
(lib.mapAttrs' (k: v: lib.nameValuePair
(lib.removePrefix "/home/pbsds/" k)
("." + lib.removePrefix (toString self) (toString v.source))
))
];
devShells = forAllSystems ({ pkgs, system, ... }: let
mkShell = {...}@args: packages: pkgs.mkShellNoCC (args // { packages = (args.packages or []) ++ packages; });
#mkShell'= {...}@args: packages: pkgs.mkShellNoCC (args // {
# inherit (self.checks.${system}.pre-commit-check) shellHook;
# packages = (args.packages or []) ++ packages ++ self.checks.${system}.pre-commit-check.enabledPackages;
#});
inherit (input-views.inputs-edge.system-manager-edge.packages.${system}) system-manager;
inherit (self.packages.${system}) nom-system-manager;
envrc-pkgs = [
flakes.self.pkgs.nixos-rebuild-nom
pkgs.home-manager
# pkgs.nixos-rebuild-ng
self.packages.${system}.nom-nixos-rebuild-ng
# self.packages.${system}.nom-home-manager
pkgs.nix-output-monitor
pkgs.cachix
pkgs.age
pkgs.sops
pkgs.ssh-to-age
pkgs.just
pkgs.gum
pkgs.mprocs
pkgs.dix # pkgs.nvd
];
in {
envrc-local = mkShell envrc-pkgs;
envrc-remote = mkShell (envrc-pkgs ++ [
(pkgs.remote-exec or flakes.unstable.pkgs.remote-exec)
pkgs.yq
in rec {
envrc = mkShell { } envrc-pkgs;
envrc-remotes = mkShell { } (envrc-pkgs ++ [
pkgs.remote-exec
pkgs.yq # TODO: remove
pkgs.rsync
]);
remoteenv = mkShell [
flakes.self.pkgs.nixos-rebuild-nom
remoteenv = mkShell { } [
# pkgs.nixos-rebuild-ng
self.packages.${system}.nom-nixos-rebuild-ng
# self.packages.${system}.nom-home-manager
pkgs.age
pkgs.ssh-to-age
pkgs.just
pkgs.gum
# pkgs.lix # bruh, debian, why so old
pkgs.dix # pkgs.nvd
];
envrc-fhs = mkShell { inheritFrom = [ envrc ]; } [ system-manager ];
envrc-remotes-fhs = mkShell { inheritFrom = [ envrc-remotes ]; } [ system-manager ];
remoteenv-fhs = mkShell { inheritFrom = [ remoteenv ]; } [ system-manager ];
# envrc-fhs = mkShell { inheritFrom = [ envrc ]; } [ nom-system-manager ];
# envrc-remotes-fhs = mkShell { inheritFrom = [ envrc-remotes ]; } [ nom-system-manager ];
# remoteenv-fhs = mkShell { inheritFrom = [ remoteenv ]; } [ nom-system-manager ];
});
#checks = forAllSystems ({ inputs, system, ... }: {
# pre-commit-check = inputs.pre-commit-hooks.lib.${system}.run {
# src = ./.;
# excludes = ["flake.lock"];
# hooks = {
# # https://devenv.sh/reference/options/#pre-commithooks
# alejandra.enable = true;
# pretties.enable = true;
# /* pretties.excludes = [".js" ".md" ".ts"]; */
# };
# };
#});
/*
checks = forAllSystems ({ pkgs, inputs, system }: {
unitTests = pkgs.runCommand "tests" {
nativeBuildInputs = [ inputs.nix-unit.packages.${system}.default ];
} ''
export HOME="$(realpath .)"
# The nix derivation must be able to find all used inputs in the nix-store because it cannot download it during buildTime.
nix-unit --eval-store "$HOME" \
--extra-experimental-features flakes \
--override-input nixpkgs ${inputs.nixpkgs} \
--flake ${self}#unitTests
touch $out
'';
});
unitTests = let
doesEval = x: {
expr = (builtins.tryEval x).success;
expected = true;
};
in {
# https://nix-community.github.io/nix-unit/
};
*/
};
}
+162
View File
@@ -0,0 +1,162 @@
{ config, pkgs, lib, ... }:
# assumes common-gpu-nvidia from nixos-hardware is also added
# https://github.com/NixOS/nixos-hardware/blob/master/common/gpu/nvidia/default.nix
# https://github.com/NixOS/nixos-hardware/blob/master/common/gpu/nvidia/prime.nix
lib.mkMerge [
(lib.mkIf (lib.versionOlder lib.version "24.11") {
hardware.opengl.enable = true;
hardware.opengl.driSupport = true;
hardware.opengl.driSupport32Bit = true;
})
(lib.mkIf (lib.versionAtLeast lib.version "24.11") {
hardware.graphics.enable = true;
hardware.graphics.enable32Bit = true;
# does not work on pascal
# hardware.nvidia.open = lib.mkDefault true;
# Experimental and only works on modern Nvidia GPUs (Turing or newer).
/* powerManagement.finegrained = true; */
})
{
nixpkgs.config.cudaSupport= true;
nixpkgs.config.allowUnfreePredicate =
pkg:
let
pkgname = (lib.toLower (lib.getName pkg));
in
lib.any (x: x) [
(lib.hasInfix "nvidia" pkgname)
(lib.hasInfix "cuda" pkgname)
(lib.hasInfix "cudnn" pkgname)
(lib.hasInfix "cublas" pkgname)
];
# avoid expensive rebuilds
nixpkgs.config.packageOverrides = pkgs:
let
# pkgsNoCuda = pkgs.nixpkgsFun {
pkgsNoCuda =
# if !pkgs.config.cudaSupport then pkgs else
import pkgs.path {
# TODO: support cross?
localSystem.system = pkgs.stdenv.hostPlatform.system;
inherit (pkgs) overlays;
config = pkgs.config // { cudaSupport = false; };
};
in
lib.optionalAttrs pkgs.config.cudaSupport {
inherit (pkgsNoCuda)
firefox-unwrapped
openusd
vtk
;
# firefox-unwrapped = pkgs.firefox-unwrapped.override (old: {
# onnxruntime = old.onnxruntime.override {
# cudaSupport = false;
# ncclSupport = false;
# };
# });
# openusd is slow to build
# opensubdiv = pkgs.opensubdiv.override { cudaSupport = false; };
# # pythonPackagesExtensions = pkgs.pythonPackagesExtensions ++ [
# # (
# # ps-final: ps-prev: {
# # # openusd = ps-prev.openusd.overridePythonAttrs (old: {
# # openusd = ps-prev.openusd.override (old: {
# # opensubdiv = old.opensubdiv.override { cudaSupport = false; };
# # });
# # }
# # )
# # ];
};
}
{
# # blocked by https://github.com/NixOS/nix/issues/9272
# programs.nix-required-mounts.enable = true;
# programs.nix-required-mounts.presets.nvidia-gpu.enable = true;
}
{
# https://wiki.nixos.org/wiki/Nvidia
hardware.opengl.extraPackages = [
#pkgs.vaapiVdpau # added by nixos-hardware
#pkgs.libvdpau-va-gl
pkgs.nvidia-vaapi-driver
];
hardware.nvidia.modesetting.enable = lib.mkDefault true; # needed for most wayland compositors
hardware.nvidia.nvidiaSettings = lib.mkDefault true;
# https://discourse.nixos.org/t/nvidia-docker-container-runtime-doesnt-detect-my-gpu/51336/2?u=pbsds
/* virtualisation.docker.enableNvidia = lib.mkDefault true; # deprecated */
/* virtualisation.podman.enableNvidia = lib.mkDefault true; # deprecated */
# this works, but you have to use `--device nvidia.com/gpu=all` rather than --gpus
hardware.nvidia-container-toolkit.enable = lib.mkDefault true;
# services.ollama.acceleration = lib.mkDefault "cuda";
# only do these per-host
#hardware.nvidia.open = lib.mkDefault true; # open source version of kernel module, only on driver 515.43.04+
#hardware.nvidia.powerManagement.enable = lib.mkDefault true; # Fix graphical corruption on suspend/resume
#hardware.nvidia.powerManagement.finegrained = lib.mkDefault false; # Turns off GPU when not in use, Turing or newer
# https://www.nvidia.com/en-us/drivers/unix/legacy-gpu/
# https://github.com/NixOS/nixpkgs/blob/nixos-unstable/pkgs/os-specific/linux/nvidia-x11/default.nix
#hardware.nvidia.package = config.boot.kernelPackages.nvidiaPackages.stable;
#hardware.nvidia.package = config.boot.kernelPackages.nvidiaPackages.production;
#hardware.nvidia.package = config.boot.kernelPackages.nvidiaPackages.latest;
#hardware.nvidia.package = config.boot.kernelPackages.nvidiaPackages.beta;
environment.systemPackages = [
(pkgs.nvtopPackages.nvidia or pkgs.nvtop-nvidia)
];
# nvidia bad
nixpkgs.config.packageOverrides = pkgs: {
/** /
teams = pkgs.teams.overrideAttrs (old: rec {
postInstall = (old.postInstall or "") + ''
substituteInPlace $out/share/applications/teams.desktop \
--replace 'Exec=teams' 'Exec=teams --use-gl=desktop'
'';
# --replace 'Exec=teams' 'Exec=teams --disable-gpu'
});
/**/
discord = pkgs.discord.overrideAttrs (old: rec {
desktopItem = old.desktopItem.override (old: {
#exec = "env NIXOS_OZONE_WL=1 ${old.exec}";
exec = "${old.exec} --use-gl=desktop";
});
postInstall = ''
ln -sf "${desktopItem}/share/applications" $out/share/
'' + old.postInstall;
});
/** /
slack = pkgs.slack.overrideAttrs (old: {
postInstall = old.postInstall or "" + ''
substituteInPlace $out/share/applications/slack.desktop \
--replace "$out/bin/slack " "$out/bin/slack --use-gl=desktop "
'';
# --replace "$out/bin/slack " "$out/bin/slack --disable-gpu --in-process-gpu "
});
element-desktop = pkgs.element-desktop.overrideAttrs (old: {
desktopItem = old.desktopItem.override (old: {
#exec = "env NIXOS_OZONE_WL=1 element-desktop %u";
#exec = "element-desktop --disable-gpu --in-process-gpu %u";
exec = "element-desktop --use-gl=desktop %u";
});
});
/**/
};
}
]
+18
View File
@@ -0,0 +1,18 @@
{ inputs, ... }:
{
imports = [
inputs.nixos-hardware.nixosModules.common-gpu-nvidia
./cuda-common.nix
];
hardware.nvidia.prime = {
# (required) Bus IDs. You can find them using lspci, grepping for "3D" or "VGA"
# lspci | grep -iE "(3D|VGA)"
# intelBusId = "PCI:0:2:0";
# nvidiaBusId = "PCI:1:0:0";
offload.enable = true;
offload.enableOffloadCmd = true;
offload.offloadCmdMainProgram = "prime-run";
};
}
+4 -112
View File
@@ -1,115 +1,7 @@
{ config, pkgs, lib, ... }:
{ inputs, ... }:
{
# assumes common-gpu-nvidia from nixos-hardware is also added
# TODO: should we move it from flake.nix to here?
# https://github.com/NixOS/nixos-hardware/blob/master/common/gpu/nvidia/default.nix
# https://github.com/NixOS/nixos-hardware/blob/master/common/gpu/nvidia/prime.nix
hardware.opengl.enable = true;
hardware.opengl.driSupport = true;
hardware.opengl.driSupport32Bit = true;
nixpkgs.config.openglSupport = true; # why is this not set by hardware.opengl.enable ?
nixpkgs.config.cudaSupport = true;
nixpkgs.config.vdpauSupport = true;
nixpkgs.config.vaapiSupport = true;
nixpkgs.config.nvidiaSupport = true;
nixpkgs.config.allowUnfreePredicate = pkg: lib.any (x: x) [
(lib.hasInfix "nvidia" (lib.toLower (lib.getName pkg)))
(lib.hasInfix "cuda" (lib.toLower (lib.getName pkg)))
(lib.hasInfix "cudnn" (lib.toLower (lib.getName pkg)))
(lib.hasInfix "cublas" (lib.toLower (lib.getName pkg)))
imports = [
inputs.nixos-hardware.nixosModules.common-gpu-nvidia-nonprime
./cuda-common.nix
];
# https://nixos.wiki/wiki/Nvidia
hardware.opengl.extraPackages = [
#pkgs.vaapiVdpau # added by nixos-hardware
#pkgs.libvdpau-va-gl
pkgs.nvidia-vaapi-driver
];
hardware.nvidia.modesetting.enable = lib.mkDefault true; # needed for most wayland compositors
hardware.nvidia.nvidiaSettings = lib.mkDefault true;
virtualisation.docker.enableNvidia = lib.mkDefault true;
virtualisation.podman.enableNvidia = lib.mkDefault true;
# only do these per-host
#hardware.nvidia.open = lib.mkDefault true; # open source version of kernel module, only on driver 515.43.04+
#hardware.nvidia.powerManagement.enable = lib.mkDefault true; # Fix graphical corruption on suspend/resume
#hardware.nvidia.powerManagement.finegrained = lib.mkDefault false; # Turns off GPU when not in use, Turing or newer
# https://github.com/NixOS/nixpkgs/blob/nixos-unstable/pkgs/os-specific/linux/nvidia-x11/default.nix
#hardware.nvidia.package = config.boot.kernelPackages.nvidiaPackages.stable;
#hardware.nvidia.package = config.boot.kernelPackages.nvidiaPackages.production;
#hardware.nvidia.package = config.boot.kernelPackages.nvidiaPackages.latest;
#hardware.nvidia.package = config.boot.kernelPackages.nvidiaPackages.beta;
#hardware.nvidia.prime = {
# offload.enable = true;
# # Bus IDs. You can find them using lspci, grepping for "3D" or "VGA"
# intelBusId = "PCI:0:2:0";
# nvidiaBusId = "PCI:1:0:0";
#};
environment.systemPackages = [
(pkgs.nvtopPackages.nvidia or pkgs.nvtop-nvidia)
] ++ lib.optionals config.hardware.nvidia.prime.offload.enable [
(pkgs.writeShellScriptBin "prime-run" ''
export __NV_PRIME_RENDER_OFFLOAD=1
export __NV_PRIME_RENDER_OFFLOAD_PROVIDER=NVIDIA-G0
export __GLX_VENDOR_LIBRARY_NAME=nvidia
export __VK_LAYER_NV_optimus=NVIDIA_only
exec "$@"
'')
# already added by nixos-hardware.common-gpu-nvidia
#(pkgs.writeShellScriptBin "nvidia-offload" ''
# export __NV_PRIME_RENDER_OFFLOAD=1
# export __NV_PRIME_RENDER_OFFLOAD_PROVIDER=NVIDIA-G0
# export __GLX_VENDOR_LIBRARY_NAME=nvidia
# export __VK_LAYER_NV_optimus=NVIDIA_only
# exec "$@"
#'')
];
# nvidia bad
nixpkgs.config.packageOverrides = (pkgs: {
/** /
teams = pkgs.teams.overrideAttrs (old: rec {
postInstall = (old.postInstall or "") + ''
substituteInPlace $out/share/applications/teams.desktop \
--replace 'Exec=teams' 'Exec=teams --use-gl=desktop'
'';
# --replace 'Exec=teams' 'Exec=teams --disable-gpu'
});
/**/
discord = pkgs.discord.overrideAttrs (old: rec {
desktopItem = old.desktopItem.override (old: {
#exec = "env NIXOS_OZONE_WL=1 ${old.exec}";
exec = "${old.exec} --use-gl=desktop";
});
postInstall = ''
ln -sf "${desktopItem}/share/applications" $out/share/
'' + old.postInstall;
});
/** /
slack = pkgs.slack.overrideAttrs (old: {
postInstall = old.postInstall or "" + ''
substituteInPlace $out/share/applications/slack.desktop \
--replace "$out/bin/slack " "$out/bin/slack --use-gl=desktop "
'';
# --replace "$out/bin/slack " "$out/bin/slack --disable-gpu --in-process-gpu "
});
element-desktop = pkgs.element-desktop.overrideAttrs (old: {
desktopItem = old.desktopItem.override (old: {
#exec = "env NIXOS_OZONE_WL=1 element-desktop %u";
#exec = "element-desktop --disable-gpu --in-process-gpu %u";
exec = "element-desktop --use-gl=desktop %u";
});
});
/**/
});
}
+33 -16
View File
@@ -1,10 +1,27 @@
{ config, pkgs, lib, ... }:
let
extraPackages = with pkgs; [
mesa #.drivers
intel-media-driver
# not added due to collision
# https://github.com/NixOS/nixos-hardware/issues/1170
# (if (lib.versionOlder lib.version "23.11")
# then vaapiIntel
# else intel-vaapi-driver)
libvdpau-va-gl
intel-ocl
intel-compute-runtime # OpenCL filter support (hardware tonemapping and subtitle burn-in)
(pkgs.nvtopPackages.intel or pkgs.nvtop-intel)
];
in
lib.mkMerge [
{
# enable opengl (headless)
# https://github.com/NixOS/nixpkgs/blob/nixos-22.11/pkgs/development/libraries/ffmpeg/generic.nix
# https://github.com/NixOS/nixpkgs/blob/nixos-22.11/pkgs/development/libraries/jellyfin-ffmpeg/default.nix
# https://nixos.wiki/wiki/Accelerated_Video_Playback
# https://wiki.nixos.org/wiki/Accelerated_Video_Playback
nixpkgs.config.openglSupport = true; # why is this not set by hardware.opengl.enable ?
nixpkgs.config.vaapiSupport = true;
@@ -12,21 +29,21 @@
nixpkgs.config.vdpauSupport = true; # intel
nixpkgs.config.libmfxSupport = true; # intel
nixpkgs.config.packageOverrides = pkgs: {
vaapiIntel = pkgs.vaapiIntel.override { enableHybridCodec = true; };
intel-vaapi-driver = pkgs.intel-vaapi-driver.override { enableHybridCodec = true; };
# TODO: test if this does anything
nixpkgs.config.packageOverrides = prev: {
vaapiIntel = prev.vaapiIntel.override { enableHybridCodec = true; };
intel-vaapi-driver = prev.intel-vaapi-driver.override { enableHybridCodec = true; };
};
hardware.opengl.enable = true;
hardware.opengl.driSupport = true;
hardware.opengl.extraPackages = with pkgs; [
mesa.drivers
intel-media-driver
(if (lib.versionOlder (lib.versions.majorMinor lib.version) "23.11") then vaapiIntel else intel-vaapi-driver)
vaapiVdpau
libvdpau-va-gl
intel-ocl
intel-compute-runtime # OpenCL filter support (hardware tonemapping and subtitle burn-in)
(pkgs.nvtopPackages.intel or pkgs.nvtop-intel)
];
}
(lib.optionalAttrs (lib.versionOlder lib.version "24.11") {
hardware.opengl.driSupport = true;
hardware.opengl.enable = true;
hardware.opengl.extraPackages = extraPackages;
})
(lib.optionalAttrs (lib.versionAtLeast lib.version "24.11") {
hardware.graphics.enable = true;
hardware.graphics.extraPackages = extraPackages;
})
]
+58 -58
View File
@@ -1,64 +1,64 @@
{ pkgs, lib, options, ... }: lib.mkMerge [
{ inputs, pkgs, lib, options, ... }:
{
# assumes common-gpu-amd from nixos-hardware is also added
# TODO: should we move it from flake.nix to here?
# https://github.com/NixOS/nixos-hardware/blob/master/common/gpu/amd/default.nix
imports = [
# https://github.com/NixOS/nixos-hardware/blob/master/common/gpu/amd/default.nix
inputs.nixos-hardware.nixosModules.common-gpu-amd
];
hardware.opengl.enable = true;
hardware.opengl.driSupport = true;
hardware.opengl.driSupport32Bit = true;
config = lib.mkMerge [
nixpkgs.config.openglSupport = true; # why is this not set by hardware.opengl.enable ?
nixpkgs.config.rocmSupport = true;
nixpkgs.config.vdpauSupport = true;
nixpkgs.config.vaapiSupport = true;
}
(lib.mkIf (lib.versionAtLeast (lib.versions.majorMinor lib.version) "24.05") {
hardware.amdgpu.opencl.enable = lib.mkDefault true;
#hardware.amdgpu.amdvlk.enable = lib.mkDefault true;
#hardware.amdgpu.amdvlk.support32Bit.enable = lib.mkDefault true;
})
#(lib.mkIf (lib.versionOlder (lib.versions.majorMinor lib.version) "24.05") {
# # nixos-hardware common-amd options
# # https://github.com/NixOS/nixos-hardware/blob/master/common/gpu/amd/default.nix
# hardware.amdgpu.opencl = lib.mkDefault true;
# #hardware.amdgpu.amdvlk = lib.mkDefault true;
#})
{
# https://libreddit.noximilien.pbsds.net/r/archlinux/comments/nih9c9/amdgpu_vs_modesetting_in_current_510_kernels_xorg/
services.xserver.videoDrivers = [ "amdgpu" ]; # use gpu, adaptive sync and and hardware page flipping
#services.xserver.videoDrivers = [ "modesetting" ]; # integrated (non-accelerated) framebuffer, KMS (default in nixos-hardware)
# https://wiki.nixos.org/wiki/AMD_GPU#HIP
systemd.tmpfiles.rules = let
rocmEnv = pkgs.symlinkJoin {
name = "rocm-combined";
paths = with pkgs.rocmPackages; [
rocblas
hipblas
clr
];
};
in [ "L+ /opt/rocm - - - - ${rocmEnv}" ];
nixpkgs.overlays = [
(prev: final: {
blender = prev.blender-hip;
(lib.mkIf (lib.versionOlder lib.version "24.11") {
hardware.opengl.enable = true;
hardware.opengl.driSupport = true;
hardware.opengl.driSupport32Bit = true;
})
(lib.mkIf (lib.versionAtLeast lib.version "24.11") {
hardware.graphics.enable = true;
hardware.graphics.enable32Bit = true;
})
{
nixpkgs.config.rocmSupport = true;
# services.ollama.acceleration = lib.mkDefault "rocm";
hardware.amdgpu.opencl.enable = lib.mkDefault true;
# https://libreddit.noximilien.pbsds.net/r/archlinux/comments/nih9c9/amdgpu_vs_modesetting_in_current_510_kernels_xorg/
services.xserver.videoDrivers = [ "amdgpu" ]; # use gpu, adaptive sync and and hardware page flipping
#services.xserver.videoDrivers = [ "modesetting" ]; # integrated (non-accelerated) framebuffer, KMS (default in nixos-hardware)
# https://wiki.nixos.org/wiki/AMD_GPU#HIP
systemd.tmpfiles.rules = let
rocmEnv = pkgs.symlinkJoin {
name = "rocm-combined";
paths = with pkgs.rocmPackages; [
rocblas
hipblas
clr
];
};
in [ "L+ /opt/rocm - - - - ${rocmEnv}" ];
nixpkgs.overlays = [
(final: prev: {
blender = prev.blender-hip;
})
];
# enable opencl on polaris, (rx580)
environment.variables.ROC_ENABLE_PRE_VEGA = "1";
environment.systemPackages = [
(pkgs.nvtopPackages.amd or pkgs.nvtop-amd)
pkgs.lact
];
# lact - amdgpu GUI tool
systemd.packages = [ pkgs.lact ];
systemd.services.lactd.enable = true;
systemd.services.lactd.wantedBy = [ "multi-user.target" ]; # add this if you want the unit to auto start at boot time
}
];
# enable opencl on polaris, (rx580)
environment.variables.ROC_ENABLE_PRE_VEGA = "1";
environment.systemPackages = [
(pkgs.nvtopPackages.amd or pkgs.nvtop-amd)
pkgs.lact
];
# lact - amdgpu GUI tool
systemd.packages = [ pkgs.lact ];
systemd.services.lactd.enable = true;
systemd.services.lactd.wantedBy = [ "multi-user.target" ]; # add this if you want the unit to auto start at boot time
}
]
+15
View File
@@ -0,0 +1,15 @@
{ pkgs, lib, ... }:
/*
ZLUDA runs CUDA binaries on non-CUDA runtimes like ROCM
Interestingly, ROCM can also runs on decent CPUs
*/
{
environment.systemPackages = [
pkgs.zluda # only lib
pkgs.pbsds.zluda-run # prefix to LD_LIBRARY_PATH and NIX_LD_LIBRARY_PATH
];
}
+21
View File
@@ -0,0 +1,21 @@
{ lib, pkgs, ... }:
{
# airprint
# https://wiki.nixos.org/wiki/Printing#Printer_sharing
services.avahi = {
enable = lib.mkDefault true;
nssmdns4 = true; # ipv4
# nssmdns6 = true; # ipv6, prone to cause timeouts
openFirewall = true; # opens UDP port 5353
};
services.printing = {
enable = lib.mkDefault true;
drivers = [
pkgs.cups-filters
pkgs.cups-browsed
];
};
}
+15 -11
View File
@@ -1,21 +1,25 @@
{ lib, pkgs, ... }:
{
# https://nixos.wiki/wiki/Printing
services.printing.enable = true;
# imports = [ ./share.nix ]; # up to the host to opt-in to
# https://wiki.nixos.org/wiki/Printing
services.printing.enable = lib.mkDefault true;
#services.printing.drivers = with pkgs; [ foo2zjs foomatic-filters cups-filters ];
#services.printing.drivers = with pkgs; [ foo2zjs hplip foomatic-filters cups-filters ];
services.printing.drivers = with pkgs; [ foo2zjs hplipWithPlugin foomatic-filters cups-filters ];
#services.printing.drivers = with pkgs; [ hplipWithPlugin cups-filters ];
#hardware.printers.ensureDefaultPrinter = lib.mkDefault "HP_LaserJet_P1005";
hardware.printers.ensurePrinters = lib.singleton {
name = "HP_LaserJet_P1005";
deviceUri = "hp:/usb/HP_LaserJet_P1005?serial=BC0CAEQ"; # `lpstat -s` # hplip
#deviceUri = "usb://HP/LaserJet%20P1005?serial=BC0CAEQ"; # `lpstat -s` # foo2zjs
model = "HP-LaserJet_P1005.ppd.gz"; # `lpinfo -m` # foo2zjs
#location = "";
description = "Laser printer";
ppdOptions.PageSize = "A4";
hardware.printers = {
ensureDefaultPrinter = lib.mkDefault "HP_LaserJet_P1005";
ensurePrinters = lib.singleton {
name = "HP_LaserJet_P1005";
deviceUri = "hp:/usb/HP_LaserJet_P1005?serial=BC0CAEQ"; # `lpstat -s` # hplip
# deviceUri = "usb://HP/LaserJet%20P1005?serial=BC0CAEQ"; # `lpstat -s` # foo2zjs
model = "HP-LaserJet_P1005.ppd.gz"; # `lpinfo -m` # foo2zjs
#location = "";
description = "Laser printer";
ppdOptions.PageSize = "A4";
};
};
services.printing.logLevel = "debug";
+58
View File
@@ -0,0 +1,58 @@
{ lib, pkgs, ... }:
{
# https://wiki.archlinux.org/title/CUPS/Printer_sharing
# https://wiki.nixos.org/wiki/Printing#Printer_sharing
services.avahi = {
enable = lib.mkDefault true;
nssmdns4 = true;
openFirewall = true; # opens port 5353
publish.enable = true;
publish.userServices = true;
};
services.printing = {
defaultShared = true;
browsing = true;
# allows anonymous access to printer
listenAddresses = [ "*:631" ];
allowFrom = [ "all" ];
openFirewall = true;
};
# samba
# https://wiki.nixos.org/wiki/Samba#Printer_sharing
/** /
services.samba = {
enable = lib.mkDefault true;
package = pkgs.sambaFull; # compiled with CUPS
openFirewall = true;
settings = {
"global" = {
"load printers" = "yes";
"printing" = "cups";
"printcap name" = "cups";
};
"printers" = {
"comment" = "All Printers";
"path" = "/var/spool/samba";
"public" = "yes";
"browseable" = "yes";
# allow user 'guest account' to print.
"guest ok" = "yes";
"writable" = "no";
"printable" = "yes";
"create mode" = 0700;
};
};
systemd.tmpfiles.rules = [
"d /var/spool/samba 1777 root root -"
];
/**/
}
-2
View File
@@ -1,2 +0,0 @@
{}
# TODO: visionfive 2
-52
View File
@@ -1,52 +0,0 @@
{ config, pkgs, lib, ... }:
{
# Bootloader
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
#boot.kernel.sysctl."vm.swappiness" = lib.mkDefault 10; # 0-100, commonly 60
imports = [
./hardware-configuration.nix
../../profiles/sshd.nix
#../../profiles/no-suspend.nix
#../../profiles/oci/podman.nix
#../../profiles/oci/docker.nix
#../../profiles/oci/distrobox.nix
../../users/pbsds
#../../profiles/mounts/freon-nfs.nix
#../../profiles/mounts/reidun-nfs.nix
#../../profiles/mounts/meconium-nfs.nix
../../profiles/shell.nix
../../profiles/desktop/base.nix
../../profiles/desktop/gnome # configures gdm
#../../profiles/desktop/sound/alsa.nix
#../../profiles/desktop/sound/pulseaudio.nix
../../profiles/desktop/sound/pipewire.nix
../../profiles/desktop/steam.nix
#../../profiles/desktop/xboxdrv.nix # TODO: try out
../../profiles/desktop/lutris.nix
../../profiles/desktop/flatpak.nix
../../profiles/remote-builders.nix
#../../profiles/autossh-reverse-tunnels
];
networking.firewall.allowedTCPPorts = [ 57621 ]; # spotify local discovery
# Networking
networking.networkmanager.enable = true;
#networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
#networking.useDHCP = true;
#TODO: avahi? resolved? https://git.pvv.ntnu.no/Drift/pvv-nixos-config/src/main/base.nix#L15-L18
services.printing.enable = true;
# TODO: remove? Move?
programs.dconf.enable = true;
}
-31
View File
@@ -1,31 +0,0 @@
{ config, pkgs, lib, ... }:
{
# Bootloader
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
boot.loader.efi.efiSysMountPoint = "/boot/efi";
imports = [
./hardware-configuration.nix
../../profiles/sshd.nix
../../users/pbsds
../../users/daniel
../../users/eirikwit
../../users/h7x4
../../users/adrlau
../../profiles/shell.nix
../../profiles/domeneshop-dyndns
../../profiles/remote-builders.nix
#../../profiles/autossh-reverse-tunnels
];
services.domeneshop-updater.targets = [ config.networking.fqdn ];
# Networking
networking.networkmanager.enable = true;
# TODO: remove? Move?
programs.dconf.enable = true;
}
-35
View File
@@ -1,35 +0,0 @@
{ config, pkgs, lib, ... }:
{
# Bootloader
#N/A
## gated on formatAttr which is set by nixos-generators
#boot = lib.mkIf ((config.formatAttr or null) == null) {
# loader.systemd-boot.enable = true;
# loader.efi.canTouchEfiVariables = true;
# loader.efi.efiSysMountPoint = "/boot/efi";
#};
imports = [
#./hardware-configuration.nix
../../profiles/sshd.nix
../../users/pbsds
../../profiles/shell.nix
#../../profiles/domeneshop-dyndns
../../profiles/remote-builders.nix
];
#services.domeneshop-updater.targets = [ config.networking.fqdn ];
services.openssh.enable = true;
services.openssh.ports = lib.mkForce [ 2222 ];
networking.firewall.allowedTCPPorts = [ 2222 ];
# Networking
networking.networkmanager.enable = true;
# TODO: remove? Move?
programs.dconf.enable = true;
}
+169
View File
@@ -0,0 +1,169 @@
{ input-views }:
let
inherit (input-views.inputs-edge) self;
mkModule = extra-modules: domain: system: inputs: stateVersion: modules: hostname: ({ lib, ... }: {
system.stateVersion = lib.mkDefault stateVersion; # TODO: home-manager
nixpkgs.hostPlatform = system;
#nixpkgs.buildPlatform = buildSystem; # cross
imports = [
./../profiles/base
./nixos/${hostname}/configuration.nix
inputs.home-manager.nixosModules.default
#inputs.nix-index-database.nixosModules.nix-index # TODO: fix?
]
++ modules
++ extra-modules
#++ inputs.flake-programs-sqlite.nixosModules.programs-sqlite # TODO: make work
;
home-manager.useGlobalPkgs = true; # go brrr, reuse overrides
home-manager.extraSpecialArgs = { inherit inputs; };
home-manager.sharedModules = [
({lib, ...}: {
nixpkgs = lib.mkForce {}; # ignored when home-manager.useGlobalPkgs
})
inputs.sops-nix.homeManagerModules.sops
(
inputs.nix-index-database.homeModules.nix-index
# or inputs.nix-index-database.hmModules.nix-index # TODO: old attrname, remove
)
];
# still needed even if using networkd
networking.hostName = hostname;
networking.domain = domain;
networking.search = [ domain ];
nixpkgs.overlays = [
self.overlays.pbsdspkgs
inputs.system-manager-edge.overlays.default
(final: prev: {
unstable = import inputs.unstable {
inherit system;
inherit (final.pkgs) config overlays;
};
})
];
# This makes commandline tools like 'nix run nixpkgs#hello'
# and 'nix-shell -p hello' use the same channel as system was built with
nix.registry.nixpkgs.flake = inputs.nixpkgs;
nix.registry.nixpkgs-unstable.flake = inputs.unstable;
nix.nixPath = [
"nixpkgs=${inputs.nixpkgs}"
"nixpkgs-unstable=${inputs.unstable}"
];
});
mkConfig = extra-modules: domain: system: inputs: stateVersion: modules: hostname: inputs.nixpkgs.lib.nixosSystem {
#inherit system;
specialArgs = { inherit inputs; };
modules = [
{
# _module.args = { inherit inputs; };
}
(mkModule extra-modules domain system inputs stateVersion modules hostname)
];
};
# TODO: move this to a file or separate flake
mkHosts = mk:
let
#vf = input-views.inputs-edge.nixos-vf2.nixosModules;
# nspawn = ls [ "${nixos-nspawn}/nspawn-image.nix" { boot.isContainer = true; } ];
au = ./../profiles/auto-upgrade.nix;
ts1 = ./../profiles/tailscale/inner.nix;
ts2 = ./../profiles/tailscale/outer.nix;
tse = ./../profiles/tailscale/exit-node.nix;
#rb = ./../profiles/known-hosts; # TODO
dns64 = { config, ... }: {
networking.nameservers = [ "2001:700:1:11::2:51" ]; # dns64.uninett.no
networking.networkmanager.enable = true;
networking.networkmanager.insertNameservers = config.networking.nameservers; # https://github.com/NixOS/nixpkgs/issues/61230
networking.resolvconf.enable = false;
};
in builtins.mapAttrs (hostname: curried: curried hostname) {
#hostname "domain" "system" inputs "state" [ modules ... ]
# asgaut = mk "pbsds.net" "riscv64-linux" input-views.inputs-2405 "24.05" [ hw.starfive-visionfive-2 ];
# noximilien = mk "pbsds.net" "x86_64-linux" input-views.inputs-251T "24.11" [ ts1 au tse ];
noximilien = mk "pbsds.net" "x86_64-linux" input-views.inputs-2605 "25.05" [ ts1 au tse ];
nord = mk "pbsds.net" "x86_64-linux" input-views.inputs-2605 "25.05" [ ts1 au ];
sopp = mk "pbsds.net" "x86_64-linux" input-views.inputs-edge "25.05" [ ts1 au ];
bjarte = mk "pbsds.net" "x86_64-linux" input-views.inputs-edge "25.05" [ ts1 ];
bolle = mk "pbsds.net" "x86_64-linux" input-views.inputs-edge "25.05" [ ts2 au tse ];
eple = mk "pbsds.net" "x86_64-linux" input-views.inputs-2605 "25.05" [ ts1 au tse ];
garp = mk "pbsds.net" "x86_64-linux" input-views.inputs-edge "25.05" [ ts1 au ];
# hasselknippe= mk "pbsds.net" "aarch64-linux" input-views.inputs-2505 "24.05" [ ts1 ];
# alsaug gomperud smattkuken skrytebiffen skalkesnerken kelfrid balleby bingus skjrlaltatjlstad
# bergjlot snortheimsmoen ditlefsen skrukkerud podebusk zmaragd makrell alfnes blix urke pytte uddu imdorf rosenqvist
};
in
rec {
nixosModules = mkHosts (mkModule []);
nixosConfigurations = mkHosts (mkConfig []);
nixosReports = builtins.mapAttrs (key: self.lib.mkNixosConfigSummary) nixosConfigurations;
# system-manager
systemConfigs = let
mkSystem = name: inputs: system: inputs.system-manager-edge.lib.makeSystemConfig {
extraSpecialArgs = {
inherit inputs;
inherit system; # TODO: find an alternative
};
modules = [
{ nixpkgs.hostPlatform = system; }
{ system-manager.allowAnyDistro = true; }
inputs.nix-system-graphics-edge.systemModules.default
./system-manager/${name}/system-configuration.nix
];
};
in {
FuriPhoneFLX1 = mkSystem "furiphoneflx1" input-views.inputs-edge "aarch64-linux";
test = mkSystem "furiphoneflx1" input-views.inputs-edge "x86_64-linux";
};
# https://github.com/nix-community/nix-on-droid
nixOnDroidConfigurations = {
default = input-views.inputs-edge.nix-on-droid-edge.lib.nixOnDroidConfiguration {
pkgs = import input-views.inputs-edge.nixpkgs-edge { system = "aarch64-linux"; };
modules = [ ./nix-on-droid/default/droid-configuration.nix ];
};
test = input-views.inputs-edge.nix-on-droid-edge.lib.nixOnDroidConfiguration {
pkgs = import input-views.inputs-edge.nixpkgs-edge { system = "x86_64-linux"; };
modules = [ ./nix-on-droid/default/droid-configuration.nix ];
};
};
images = {};
/** /
images =
let
mk-nspawn-setup =
hostname: # TODO: nspawn-tarball.nix populates /etc/nixos with junk
(pkgs.callPackage ./../pkgs/mk-nspawn-setup { })
(mkHosts (mkConfig [ "${nixos-nspawn}/nspawn-tarball.nix" ])).${hostname};
in
{
asgaut-sd =
(mkHosts (mkConfig [
"${nixos-hardware}/starfive/visionfive/v2/sd-image.nix"
{
nixpkgs.buildPlatform.system = system; # cross
sdImage.compressImage = false;
}
])).asgaut.config.system.build.sdImage;
#brumlebasse-nspawn-setup = mk-nspawn-setup "brumlebasse";
#brumlebasse-openstack = nixos-generators-2405.nixosGenerate {
# system = "x86_64-linux";
# specialArgs = { inherit inputs; };
# modules = [ (mkHosts (mkModule [])).brumlebasse ];
# format = "openstack";
#};
};
/*
*/
}
-34
View File
@@ -1,34 +0,0 @@
{ config, pkgs, lib, ... }:
{
# Bootloader
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
boot.loader.efi.efiSysMountPoint = "/boot/efi";
services.nfs.server.enable = false; # TODO: remove?
imports = [
./hardware-configuration.nix
../../profiles/sshd.nix
../../users/pbsds
../../users/bartvbl
../../profiles/mounts/panorama-zfs.nix
../../profiles/shell.nix
../../profiles/domeneshop-dyndns
../../profiles/remote-builders.nix
#../../profiles/autossh-reverse-tunnels
];
services.domeneshop-updater.targets = [ config.networking.fqdn ];
networking.hostId = "43c43ded"; # needed for zfs: head -c 8 /etc/machine-id
# Networking
networking.networkmanager.enable = true;
# TODO: remove? Move?
programs.dconf.enable = true;
}
-59
View File
@@ -1,59 +0,0 @@
{ config, pkgs, lib, ... }:
{
# Bootloader.
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
/** /
services.xserver.displayManager.autoLogin.enable = true;
services.xserver.displayManager.autoLogin.user = "pbsds";
# tmp: https://github.com/NixOS/nixpkgs/issues/103746#issuecomment-945091229
systemd.services."getty@tty1".enable = false;
systemd.services."autovt@tty1".enable = false;
#boot.kernelPackages = pkgs.linuxPackages_latest;
#hardware.nvidia.package = config.boot.kernelPackages.nvidiaPackages.latest;
#hardware.nvidia.modesetting.enable = false; # makes atom behave, but mpv refuses to start
/**/
# PRIME: (lspci)
#hardware.nvidia.prime.intelBusId = "PCI:0:02:0";
#hardware.nvidia.prime.nvidiaBusId = "PCI:1:00:0";
imports = [
./hardware-configuration.nix
../../profiles/sshd.nix
#../../profiles/no-suspend.nix
#../../profiles/oci/podman.nix
#../../profiles/oci/docker.nix
../../users/pbsds
../../users/daniel
../../users/eirikwit
../../users/h7x4
../../users/adrlau
../../profiles/shell.nix
#../../profiles/desktop/base.nix
#../../profiles/desktop/gnome # configures gdm
##../../profiles/desktop/sound/alsa.nix
##../../profiles/desktop/sound/pulseaudio.nix
#../../profiles/desktop/sound/pipewire.nix
../../profiles/domeneshop-dyndns
../../profiles/remote-builders.nix
];
services.domeneshop-updater.targets = [ config.networking.fqdn ];
#networking.firewall.allowedTCPPorts = [ 57621 ]; # spotify local discovery
# Networking
networking.networkmanager.enable = true;
# TODO: remove? Move?
programs.dconf.enable = true;
# Enable touchpad support (enabled default in most desktopManager).
# services.xserver.libinput.enable = true;
}
-45
View File
@@ -1,45 +0,0 @@
{ config, pkgs, lib, ... }:
{
# Bootloader
#boot.loader.systemd-boot.enable = true;
#boot.loader.efi.canTouchEfiVariables = true;
services.xserver.displayManager.autoLogin.enable = true;
services.xserver.displayManager.autoLogin.user = "pbsds";
# tmp: https://github.com/NixOS/nixpkgs/issues/103746#issuecomment-945091229
systemd.services."getty@tty1".enable = false;
systemd.services."autovt@tty1".enable = false;
imports = [
#./hardware-configuration.nix
../../profiles/auto-upgrade.nix
../../profiles/upgrade-diff.nix
#../../profiles/sshd.nix
#../../profiles/no-suspend.nix
../../users/pbsds
#../../profiles/mounts/freon-nfs.nix
#../../profiles/mounts/reidun-nfs.nix
#../../profiles/mounts/meconium-nfs.nix
../../profiles/shell.nix
../../profiles/desktop/base.nix
../../profiles/desktop/gnome # configures gdm
../../profiles/desktop/sound/pipewire.nix
#../../profiles/desktop/steam.nix
#../../profiles/desktop/lutris.nix
#../../profiles/desktop/flatpak.nix
../../profiles/remote-builders.nix
];
networking.firewall.allowedTCPPorts = [ 57621 ]; # spotify local discovery
networking.networkmanager.enable = true;
# TODO: remove? Move?
programs.dconf.enable = true;
}
-275
View File
@@ -1,275 +0,0 @@
# primarily used for remote builders, but also configures known public keys
#["host.name"]
# https://search.nixos.org/options?query=nix.buildMachine
#systems
#maxJobs
#speedFactor
#supportedFeatures
#mandatoryFeatures
#ssh.listenUser
#ssh.listenPort
#ssh.listenPublicKey # cat /etc/ssh/ssh_host_ed25519_key.pub || ssh-keyscan {{fqdn}}
#ssh.userPublicKey # sudo ssh-keygen -t ed25519 && sudo cat /root/.ssh/id_ed25519.pub
#ssh.protocol
#ssh.proxyJump
[__default__]
systems = ["x86_64-linux"]
maxJobs = 0 # not a builder
speedFactor = 1
supportedFeatures = []
mandatoryFeatures = []
ssh.listenUser = "pbsds" # TODO: change
# ssh.listenUser = "nixbld-remote"
ssh.listenPort = 22
ssh.protocol = "ssh" # "ssh-ng"
# in general:
# headless: one job per 4 threads and 8GB RAM
# graphical: one job
["bolle.pbsds.net"]
maxJobs = 3 # 12 threads 32GB
speedFactor = 5
supportedFeatures = ["kvm","big-parallel","nixos-test"]
ssh.listenPublicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILeOB/57N1fQPVorIUlkkJZaQduBo+4+km2Qbj4ebd/k"
ssh.proxyJump = "isvegg.pvv.ntnu.no"
["eple.pbsds.net"] # r9 290x
maxJobs = 3 # 12 threads 32GB
speedFactor = 5
supportedFeatures = ["kvm","big-parallel","nixos-test"]
ssh.listenPublicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIH03MEINNnjBvtmvN2QsCDCLkvF9ow5FQJp9uiyQ1Iwi"
ssh.proxyJump = "isvegg.pvv.ntnu.no"
["garp.pbsds.net"] # gtx 1080
maxJobs = 2 # 8 threads 32GB
speedFactor = 4
supportedFeatures = ["kvm","big-parallel","nixos-test"]
ssh.listenPublicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOkcZ3cUAKk8uUvZPsX7PDBInkb3Eps3Xh+xVrhPY+sx"
ssh.proxyJump = "isvegg.pvv.ntnu.no"
["noximilien.pbsds.net"]
#maxJobs = 1 # 8 threads 8GB
speedFactor = 2
ssh.listenPublicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJ3QhTGS03Sqm6OeCEz5AIGqJnBttKaBqMgNXp3Md7t4"
ssh.userPublicKey = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC7fYndgIXJM+tLSfkbprWc8ClOI58wlaZCg6I+wMYINeOwxLU24BmIyQAhNeqhHYBdXiyIAl5KN3+YajN1nx6zq2XPXLut31Xtf+0yMdRMX4rXgqOnsBeG4eTfNsPx+v7VNANth8dIADpk59Y9ioWB6JI6NF0wfkqrCSTpt2q9gpTA35MBe41hlaxqxYGq+PlfZyJbN4TJCORZROkjw1P6K+EoYUHTHmduMZSAnpzx5bTHL2r1VK1jLRL4q2O1LP9G7eVYUsZKxKznJqtAeoOGBL4OX2JeIXT51/pXTW0NNyVPELD6aUUZjK8aVK2JDXupXegYO8cHqwLaz7rZj3G8evGamSlGvAYR4Gwvvp4Du8ZRZVM3Gt1allhPMTLnm/gy9Lta35D8SHH0IUKWD3buo5HZliZgSMAvoSrT03vpuGILLoWEkTjpPT0qKIlBd/qlACBzKC9Wwmda5WWgMsfe0zP4zNLVdves5nkMrbY91TYSFM0FuDCaRsK5Mrhx7i0= root@noximilien"
["sopp.pbsds.net"] # gtx 1080
#maxJobs = 2 # 8 threads 32GB
speedFactor = 3
supportedFeatures = ["kvm","nixos-test"]
ssh.listenPort = 26
ssh.listenPublicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDYB9H1pHB1vTBiGhO/GCQjn70BtVdQuJyXx38zN2CDj"
ssh.userPublicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIL6eTQkxO/1XflHpGf3478+Z7HFYYaf1d4M6mvSK2nAU root@sopp"
["nord.pbsds.net"] # rx 580
#maxJobs = 1 # 4 threads 32GB
speedFactor = 2
supportedFeatures = ["kvm","nixos-test"]
ssh.listenPort = 24
ssh.listenPublicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIBSdIUtUfAxnVbPDmDDFdP2S3Wd3+CC8IfZAANJ76oh"
ssh.userPublicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINnS1TmV9q7n+s7+RouuB6vQllnhqNCE1RqPmTMJ2/29 root@nord"
["rocm.pbsds.net"] # gtx 3070 laptop edition
#maxJobs = 1 # 16 threads 32GB
speedFactor = 5
ssh.listenUser = "pbsds"
ssh.listenPublicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGDuWdqEQ5mmVjuKi6f/Q2PFxuqB3URpgTHid06Vw7we"
["bjarte.pbsds.net"]
ssh.userPublicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIF4v1+FbiEa6Mohpf3/Una5ahKeKSG9yZ9iU5TC7ddL5 root@bjarte"
["isvegg.pvv.ntnu.no"]
# maxJobs = 1 # 4 threads 16GB
speedFactor = 1
ssh.listenUser = "pederbs"
ssh.listenPublicKey = "ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBGurF7rdnrDP/VgIK2Tx38of+bX/QGCGL+alrWnZ1Ca5llGneMulUt1RB9xZzNLHiaWIE+HOP0i4spEaeZhilfU="
["eirin.pvv.ntnu.no"]
maxJobs = 2 # 8 threads 16GB
speedFactor = 1
ssh.listenUser = "pederbs"
ssh.listenPublicKey = "ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBILGULKEzYe5kPorM0rWATv10qq6debfCuYUYqw3HWZm4Y5Pi7mVKcf8lKFNPc1DxT/dStfxxtHj/2fbezaxElk="
["demiurgen.pvv.ntnu.no"]
maxJobs = 2 # 8 threads 16GB
speedFactor = 1
ssh.listenUser = "pederbs"
ssh.listenPublicKey = "ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBKw92q3eB5HZbKJN3p+80MtirqcXPu01USE9LnoGYJuDvko1udjIy4UR0wAwELqgs+r7mJyuQPeXmOZKwjHP6tM="
["orchid.pvv.ntnu.no"] # GTX 1060
maxJobs = 2 # 12 threads 16GB
speedFactor = 2
ssh.listenUser = "pederbs"
ssh.listenPublicKey = "ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBJXBrUdX0iFCkADXvqrcljEu0gxFOX+uOy6kqNx15WcNI+vt/YI7e/K4COf6LxuLsplLrrymcPdqsteAeWnPszs="
["hildring.pvv.ntnu.no"]
ssh.listenUser = "pederbs"
ssh.listenPublicKey = "ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBGurF7rdnrDP/VgIK2Tx38of+bX/QGCGL+alrWnZ1Ca5llGneMulUt1RB9xZzNLHiaWIE+HOP0i4spEaeZhilfU="
["microbel.pvv.ntnu.no"]
ssh.listenUser = "pederbs"
ssh.listenPublicKey = "ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBEq0yasKP0mH6PI6ypmuzPzMnbHELo9k+YB5yW534aKudKZS65YsHJKQ9vapOtmegrn5MQbCCgrshf+/XwZcjbM="
#["heid.idi.ntnu.no"]
#maxJobs = 24 # 96 threads 1.4TB
#supportedFeatures = [ "big-parallel" ];
#ssh.listenUser = "pederbs"
#ssh.listenPublicKey = "TODO"
#ssh.proxyJump = "isvegg.pvv.ntnu.no"
#["bob.pvv.ntnu.no"]
#maxJobs = 10 # 40 threads
#ssh.listenUser = "pederbs"
#ssh.listenPublicKey = "TODO"
#["darwin-build-box.winter.cafe"]
#systems = [ "aarch64-darwin", "x86_64-darwin" ];
#maxJobs = 1; # TODO
#ssh.listenUser = "TODO";
#ssh.listenPublicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIB0io9E0eXiDIEHvsibXOxOPveSjUPIr1RnNKbUkw3fD";
#ssh.egressPrivateKey = "/run/secrets/nix-community-builders-ssh-key";
#["aarch64.nixos.community"]
#systems = [ "aarch64-linux" ];
#supportedFeatures = [ "big-parallel" ];
#maxJobs = 1; # TODO: 64 threads?
#ssh.listenUser = "TODO";
#ssh.listenPublicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMUTz5i9u5H2FHNAmZJyoJfIGyUm/HfGhfwnc142L3ds";
#ssh.egressPrivateKey = "/run/secrets/nix-community-builders-ssh-key";
["clab01.idi.ntnu.no"] # gtx 4090
#maxJobs = 1 # 24 threads 64GB
ssh.listenUser = "pederbs"
ssh.listenPublicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJfJV5Ov3D0qErVnbQZ3oxhA3i0zuAmjmVUf3JV08aSg"
ssh.proxyJump = "isvegg.pvv.ntnu.no"
["clab02.idi.ntnu.no"] # gtx 4090
#maxJobs = 1 # 24 threads 64GB
ssh.listenUser = "pederbs"
ssh.listenPublicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHNhQPotOGWZdFeW4B3eDYGcaF/2xB56hNL+x3QEURa6"
ssh.proxyJump = "isvegg.pvv.ntnu.no"
["clab03.idi.ntnu.no"] # gtx 4090
#maxJobs = 1 # 24 threads 64GB
ssh.listenUser = "pederbs"
ssh.listenPublicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIH5srnYPuULchLvlCOlWOwrhQEBznQn61kj0Oawnp44Y"
ssh.proxyJump = "isvegg.pvv.ntnu.no"
["clab04.idi.ntnu.no"] # gtx 4090
#maxJobs = 1 # 24 threads 64GB
ssh.listenUser = "pederbs"
ssh.listenPublicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICgMxLYYiYb/6IAH6nyc9eGXASgDPTE2JcRZ9ODjhQt5"
ssh.proxyJump = "isvegg.pvv.ntnu.no"
["clab05.idi.ntnu.no"] # gtx 4090
#maxJobs = 1 # 24 threads 64GB
ssh.listenUser = "pederbs"
ssh.listenPublicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHw4h4dH689bLYWjrhhsvfljyWfUEClPa1Kb0cYxLRaD"
ssh.proxyJump = "isvegg.pvv.ntnu.no"
["clab06.idi.ntnu.no"] # gtx 4090
#maxJobs = 1 # 24 threads 64GB
ssh.listenUser = "pederbs"
ssh.listenPublicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDVZ394P3124lSxkzVodFqbindIvCB3kcn4YcgbaPrAs"
ssh.proxyJump = "isvegg.pvv.ntnu.no"
["clab07.idi.ntnu.no"] # gtx 4090
#maxJobs = 1 # 24 threads 64GB
ssh.listenUser = "pederbs"
ssh.listenPublicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILKQfcOmWC73bmE2mlWEcXFHiDUhsYWA7Xy9Dtq8kKmn"
ssh.proxyJump = "isvegg.pvv.ntnu.no"
["clab08.idi.ntnu.no"] # gtx 4090
#maxJobs = 1 # 24 threads 64GB
ssh.listenUser = "pederbs"
ssh.listenPublicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKlyZq3uTBCgkvPgs6nWRzsdhHmXHph14dmYWgt1vuBx"
ssh.proxyJump = "isvegg.pvv.ntnu.no"
["clab09.idi.ntnu.no"] # gtx 4090
#maxJobs = 1 # 24 threads 64GB
ssh.listenUser = "pederbs"
ssh.listenPublicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAj4eXT/k7iiUYx+CXq5ShLWm1N6SNO23EIs4xYEaQaW"
ssh.proxyJump = "isvegg.pvv.ntnu.no"
["clab10.idi.ntnu.no"] # gtx 4090
#maxJobs = 1 # 24 threads 64GB
ssh.listenUser = "pederbs"
ssh.listenPublicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIG5xEUkiwXWaUCA+QfMDq2vHfXKzcpXlrHpJMNQ8EU+K"
ssh.proxyJump = "isvegg.pvv.ntnu.no"
["clab11.idi.ntnu.no"] # gtx 4090
#maxJobs = 1 # 24 threads 64GB
ssh.listenUser = "pederbs"
ssh.listenPublicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFlKZhdQBrjafzzwdRR3arem3TXnnPucQskd7RWW9L5V"
ssh.proxyJump = "isvegg.pvv.ntnu.no"
["clab12.idi.ntnu.no"] # gtx 4090
#maxJobs = 1 # 24 threads 64GB
ssh.listenUser = "pederbs"
ssh.listenPublicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDEr2zGzev8JffE67Hkb3Qli7K0kzVdu8VXxJW47PK7m"
ssh.proxyJump = "isvegg.pvv.ntnu.no"
["clab13.idi.ntnu.no"] # gtx 4090
#maxJobs = 1 # 24 threads 64GB
ssh.listenUser = "pederbs"
ssh.listenPublicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIZgIhgpMCdegJaW6Huad7Dj4YfyR8Zhi1UmDsgcJYK2"
ssh.proxyJump = "isvegg.pvv.ntnu.no"
["clab14.idi.ntnu.no"] # gtx 4090
#maxJobs = 1 # 24 threads 64GB
ssh.listenUser = "pederbs"
ssh.listenPublicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIL3pAYx5rtbaUCf4xsiy+7/qKqnGMnSa9KCp42j+XmEh"
ssh.proxyJump = "isvegg.pvv.ntnu.no"
["clab15.idi.ntnu.no"] # gtx 4090
#maxJobs = 1 # 24 threads 64GB
ssh.listenUser = "pederbs"
ssh.listenPublicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIP7XwwhLJGwK+a7zShr2Ok9f2GlvPkP+FxKdbGYsNHtd"
ssh.proxyJump = "isvegg.pvv.ntnu.no"
["clab16.idi.ntnu.no"] # gtx 4090
#maxJobs = 1 # 24 threads 64GB
ssh.listenUser = "pederbs"
ssh.listenPublicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJKAaMXBAYsDd2QQOAQhXAAJCejbylQNLI9KsN3/EsY+"
ssh.proxyJump = "isvegg.pvv.ntnu.no"
["clab20.idi.ntnu.no"] # gtx 4090
#maxJobs = 1 # 24 threads 64GB
ssh.listenUser = "pederbs"
ssh.listenPublicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEGBbcKU5uDTgaQoREjaNuzQkCKNm5wlnhln6ZNiL3o2"
ssh.proxyJump = "isvegg.pvv.ntnu.no"
["clab22.idi.ntnu.no"] # gtx 4090
#maxJobs = 1 # 24 threads 64GB
ssh.listenUser = "pederbs"
ssh.listenPublicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMHlaYq184VDBoEOtaIIu2jnuBihhWiGPlyku0SMKORG"
ssh.proxyJump = "isvegg.pvv.ntnu.no"
["clab23.idi.ntnu.no"] # gtx 4090
#maxJobs = 1 # 24 threads 64GB
ssh.listenUser = "pederbs"
ssh.listenPublicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAsIRgqoFF900olTCy6DSrFMpZyRmtK6aVP2oYQhNi8g"
ssh.proxyJump = "isvegg.pvv.ntnu.no"
["clab24.idi.ntnu.no"] # gtx 4090
#maxJobs = 1 # 24 threads 64GB
ssh.listenUser = "pederbs"
ssh.listenPublicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICqh/Sp13OcUnZ8gVgiylcLsqAgIw+twQG92GyZK3FBZ"
ssh.proxyJump = "isvegg.pvv.ntnu.no"
["clab25.idi.ntnu.no"] # gtx 4090
#maxJobs = 1 # 24 threads 64GB
ssh.listenUser = "pederbs"
ssh.listenPublicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOdL5coXj0geu9O1cMLdYuUE0TWlIkKLNj71/XF0e8eg"
ssh.proxyJump = "isvegg.pvv.ntnu.no"
["clab26.idi.ntnu.no"] # gtx 4090
#maxJobs = 1 # 24 threads 64GB
ssh.listenUser = "pederbs"
ssh.listenPublicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINqqxg0hVT/gPBM1xqrR9QtMRHVBZDYWZ3pzbJv9MHUG"
ssh.proxyJump = "isvegg.pvv.ntnu.no"
@@ -0,0 +1,34 @@
{ pkgs, ... }:
{
system.stateVersion = "24.05";
environment.packages = [
pkgs.micro
pkgs.git
pkgs.openssh
pkgs.hostname
pkgs.gnugrep
pkgs.findutils
pkgs.fd
pkgs.sd
pkgs.xe
pkgs.gnupg
pkgs.gnused
];
nix.extraOptions = ''
experimental-features = nix-command flakes
'';
# Backup etc files instead of failing to activate generation if a file already exists in /etc
# environment.etcBackupExtension = ".bak";
# # Configure home-manager
# home-manager = {
# config = ./home.nix;
# backupFileExtension = "hm-bak";
# useGlobalPkgs = true;
# };
}
+10
View File
@@ -0,0 +1,10 @@
{ config, lib, pkgs, ...}:
{
environment.systemPackages = [
pkgs.fastfetch
];
networking.interfaces.end0.useDHCP = true;
networking.interfaces.end1.useDHCP = true;
}
+89
View File
@@ -0,0 +1,89 @@
{ inputs, config, pkgs, lib, ... }:
{
# Bootloader
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
#boot.kernel.sysctl."vm.swappiness" = lib.mkDefault 10; # 0-100, commonly 60
zramSwap.enable = true;
zramSwap.memoryPercent = 30;
# swapDevices = lib.mkForce [];
# for testing only, not for building
boot.binfmt.addEmulatedSystemsToNixSandbox = false;
boot.binfmt.emulatedSystems = [
"aarch64-linux"
"armv7l-linux"
"riscv64-linux"
"x86_64-windows"
];
#nix.settings.system = "x86_64-linux";
#nix.settings.extra-platforms = [ "i686-linux" ];
imports = [
./hardware-configuration.nix
inputs.nixos-hardware.nixosModules.lenovo-thinkpad-x1-7th-gen
inputs.nixos-hardware.nixosModules.common-pc
inputs.nixos-hardware.nixosModules.common-pc-ssd
inputs.nixos-hardware.nixosModules.common-cpu-intel
../../../hardware/gpu/intel.nix
../../../profiles/nix-ld.nix
../../../profiles/sshd/ts-only.nix
../../../profiles/ccache
#../../../profiles/no-suspend.nix
../../../profiles/earlyoom.nix
../../../profiles/oci/podman.nix
#../../../profiles/oci/docker.nix
../../../profiles/oci/distrobox.nix
../../../users/pbsds
../../../users/pbsds/syncthing.nix
#../../../profiles/mounts/freon-nfs.nix
#../../../profiles/mounts/reidun-nfs.nix
# ../../../profiles/mounts/meconium-nfs.nix
# ../../../profiles/mounts/panorama-nfs.nix
../../../profiles/shell.nix
# ../../../profiles/earlyoom # TODO
../../../profiles/desktop
../../../profiles/desktop/gnome # configures gdm
../../../profiles/desktop/sound/pipewire.nix
../../../profiles/desktop/steam.nix
#../../../profiles/desktop/xboxdrv.nix # TODO: try out
../../../profiles/desktop/lutris.nix
../../../profiles/desktop/flatpak.nix
../../../profiles/desktop/waydroid.nix
../../../profiles/printing.nix
../../../profiles/known-hosts
];
pbsds.nfs-lazy-mount.enable = true;
environment.systemPackages = [
pkgs.krita
pkgs.chromium
];
time.timeZone = null; # allows imperative configuring
networking.firewall.allowedTCPPorts = [ 57621 ]; # spotify local discovery
hardware.bluetooth.enable = true;
# services.irqbalance.enable = true; # different balancer, avoids freezes, god for old laptops
# Networking
networking.networkmanager.enable = true;
#networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
#networking.useDHCP = true;
#TODO: avahi? resolved? https://git.pvv.ntnu.no/Drift/pvv-nixos-config/src/main/base.nix#L15-L18
# TODO: remove? Move?
programs.dconf.enable = true;
}
+46
View File
@@ -0,0 +1,46 @@
{ inputs, config, pkgs, lib, ... }:
{
# Bootloader
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
boot.loader.efi.efiSysMountPoint = "/boot/efi";
boot.binfmt.emulatedSystems = [
"riscv64-linux"
];
imports = [
./hardware-configuration.nix
inputs.nixos-hardware.nixosModules.common-pc
inputs.nixos-hardware.nixosModules.common-pc-ssd
inputs.nixos-hardware.nixosModules.common-cpu-intel
../../../hardware/gpu/intel.nix
../../../profiles/sshd
# ../../../profiles/ccache # https://github.com/NixOS/nix/issues/9272
../../../profiles/nix-cgroups.nix
../../../users/pbsds
../../../users/daniel
../../../users/eirikwit
../../../users/h7x4
../../../users/adrlau
/* ../../../users/treefortwo */
../../../profiles/shell.nix
# ../../../profiles/domeneshop-dyndns.nix
../../../profiles/known-hosts
];
# services.domeneshop-updater.targets = [ config.networking.fqdn ];
# Networking
networking.networkmanager.enable = true;
# use memory more efficiently at the cost of some compute
# zramSwap.enable = true;
# zramSwap.memoryPercent = 20;
# TODO: remove? Move?
programs.dconf.enable = true;
}
+48
View File
@@ -0,0 +1,48 @@
{ inputs, config, pkgs, lib, ... }:
{
# Bootloader
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
boot.loader.efi.efiSysMountPoint = "/boot/efi";
boot.binfmt.emulatedSystems = [
"riscv64-linux"
];
services.nfs.server.enable = false; # TODO: remove?
imports = [
./hardware-configuration.nix
inputs.nixos-hardware.nixosModules.common-pc
inputs.nixos-hardware.nixosModules.common-pc-ssd
inputs.nixos-hardware.nixosModules.common-cpu-intel
../../../hardware/gpu/intel.nix
../../../hardware/gpu/rocm.nix
../../../profiles/sshd
# ../../../profiles/ccache # https://github.com/NixOS/nix/issues/9272
../../../profiles/nix-cgroups.nix
../../../users/pbsds
../../../users/bartvbl
# ../garp/sftp.nix # TODO: remove?
../../../users/pbsds/syncthing.nix
../../../profiles/mounts/panorama-zfs.nix
../../../profiles/shell.nix
# ../../../profiles/domeneshop-dyndns.nix
../../../profiles/known-hosts
];
# services.domeneshop-updater.targets = [ config.networking.fqdn ];
networking.hostId = "43c43ded"; # needed for zfs: head -c 8 /etc/machine-id
# Networking
networking.networkmanager.enable = true;
# TODO: remove? Move?
programs.dconf.enable = true;
}
+68
View File
@@ -0,0 +1,68 @@
{ inputs, config, pkgs, lib, ... }:
{
# Bootloader.
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
boot.binfmt.emulatedSystems = [
"riscv64-linux"
];
#boot.kernelPackages = pkgs.linuxPackages_latest;
#hardware.nvidia.package = config.boot.kernelPackages.nvidiaPackages.latest;
#hardware.nvidia.package = config.boot.kernelPackages.nvidiaPackages.beta;
#hardware.nvidia.modesetting.enable = false; # makes atom behave, but mpv refuses to start
# The open source driver does not support Pascal GPUs (1080)
# https://github.com/NixOS/nixos-hardware/blob/master/common/gpu/nvidia/pascal/default.nix
hardware.nvidia.open = false;
# PRIME: (lspci)
#hardware.nvidia.prime.intelBusId = "PCI:0:02:0";
#hardware.nvidia.prime.nvidiaBusId = "PCI:1:00:0";
imports = [
./hardware-configuration.nix
inputs.nixos-hardware.nixosModules.common-pc
inputs.nixos-hardware.nixosModules.common-pc-ssd
inputs.nixos-hardware.nixosModules.common-cpu-intel-cpu-only
../../../hardware/gpu/cuda.nix
../../../hardware/gpu/zluda.nix
../../../profiles/nix-ld.nix
../../../profiles/sshd
# ../../../profiles/ccache # https://github.com/NixOS/nix/issues/9272
../../../profiles/nix-cgroups.nix
#../../../profiles/no-suspend.nix
# ../../../profiles/oci/podman.nix
../../../profiles/oci/docker.nix
../../../users/pbsds
# ../../../users/daniel
# ../../../users/eirikwit
# ../../../users/h7x4
# ../../../users/adrlau
# ../../../profiles/mounts/freon-nfs.nix
# ../../../profiles/mounts/reidun-nfs.nix
# ../../../profiles/mounts/meconium-nfs.nix
# ./sftp.nix
../../../profiles/shell.nix
../../../profiles/known-hosts
# ../../../profiles/domeneshop-dyndns.nix
];
# services.domeneshop-updater.targets = [ config.networking.fqdn ];
# Networking
networking.networkmanager.enable = true;
# use memory more efficiently at the cost of some compute
# zramSwap.enable = true;
# zramSwap.memoryPercent = 20;
# TODO: remove? Move?
programs.dconf.enable = true;
}
+64
View File
@@ -0,0 +1,64 @@
{ lib, config, ...}:
let
chroot-path = "/run/sftp-chroot";
# sftp-paths."ifield" = "/opt/ifield"; # garp - no booty, now deleted
sftp-paths."ifield" = "/mnt/panorama/Backups/rocm.pbsds.net/ifield-mmarf/data/storage"; # eple
in
{
systemd.tmpfiles.settings."10-sftp-chroot" = {
"${chroot-path}".d = {
user = "root";
group = "root";
mode = "0755";
};
};
users.groups."sftp_users" = {
members = [ "pbsds" ];
};
users.users."sftp" = {
isSystemUser = true;
createHome = false;
home = chroot-path;
shell = null;
password = null; # deny password login
#hashedPassword = ""; # use mkpasswd
group = "sftp_users";
# TODO: can I somehow idmap instead?
extraGroups = [ "users" "pbsds" ];
openssh.authorizedKeys.keys = lib.mkMerge [
[
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKaE4W5Qe+ZBRtsY2KiIHbpx6v+8KrgrVT8ZgFvSVbvz ifield-sftp"
]
# no work?
# config.users.users."pbsds".authorizedKeys.keys
];
};
services.openssh.sftpServerExecutable = "internal-sftp";
services.openssh.extraConfig = ''
Match User sftp
ChrootDirectory ${chroot-path}
ForceCommand internal-sftp
PasswordAuthentication no
PubkeyAuthentication yes
PermitTunnel no
AllowAgentForwarding no
AllowTcpForwarding no
X11Forwarding no
'';
imports = lib.flip lib.mapAttrsToList sftp-paths (target: source: {
fileSystems."${chroot-path}/${target}" = {
device = source;
options = ["ro" "bind"]; # Read only
# depends = [ "/" ];
noCheck = true; # skip fsck
};
});
}
@@ -0,0 +1,67 @@
{ inputs, config, pkgs, lib, ... }:
/*
https://wiki.pine64.org/wiki/Pinebook_Pro
https://wiki.pine64.org/wiki/Pinebook_Pro_Software_Releases
https://wiki.nixos.org/wiki/NixOS_on_ARM/PINE64_Pinebook_Pro
https://github.com/NixOS/nixos-hardware/blob/master/pine64/pinebook-pro/README.md
# tow-boot
https://tow-boot.org/devices/pine64-pinebookPro.html
https://github.com/Tow-Boot/Tow-Boot/releases
# nixos aarch64 sd-images
https://wiki.nixos.org/wiki/NixOS_on_ARM/Installation#SD_card_images_(SBCs_and_similar_platforms)
https://wiki.nixos.org/wiki/NixOS_on_ARM
https://wiki.nixos.org/wiki/NixOS_on_ARM/Initial_Configuration
*/
{
# Bootloader
#boot.loader.systemd-boot.enable = true;
#boot.loader.efi.canTouchEfiVariables = true;
imports = [
#./hardware-configuration.nix
inputs.nixos-hardware.nixosModules.pine64-pinebook-pro
# ../../../profiles/nix-ld.nix
../../../profiles/sshd
# ../../../profiles/earlyoom.nix
# ../../../profiles/no-suspend.nix
# ../../../profiles/oci/podman.nix
# ../../../profiles/oci/docker.nix
../../../users/pbsds
#../../../profiles/mounts/freon-nfs.nix
#../../../profiles/mounts/reidun-nfs.nix
#../../../profiles/mounts/meconium-nfs.nix
#../../../profiles/mounts/fridge-nfs.nix
../../../profiles/shell.nix
../../../profiles/desktop
../../../profiles/desktop/gnome # configures gdm
../../../profiles/desktop/sound/pipewire.nix
# ../../../profiles/desktop/steam.nix
# ../../../profiles/desktop/retroarch.nix
# ../../../profiles/desktop/flatpak.nix
# ../../../profiles/desktop/waydroid.nix
../../../profiles/known-hosts
];
environment.systemPackages = [
pkgs.pinebookpro-keyboard-updater
];
networking.firewall.allowedTCPPorts = [ 57621 ]; # spotify local discovery
networking.networkmanager.enable = true;
# TODO: remove? Move?
programs.dconf.enable = true;
}
+127
View File
@@ -0,0 +1,127 @@
{ inputs, config, pkgs, lib, ... }:
{
# Bootloader
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
boot.loader.efi.efiSysMountPoint = "/boot/efi";
# boot.kernel.sysctl."vm.swappiness" = lib.mkDefault 10; # 0-100, commonly 60
# swapDevices = lib.mkForce [];
# zramSwap.enable = true;
# zramSwap.memoryPercent = 20;
# for testing only, not for building
# boot.binfmt.addEmulatedSystemsToNixSandbox = false;
# boot.binfmt.emulatedSystems = [
# # "armv7l-linux"
# # "aarch64-linux"
# # "riscv64-linux"
# "i686-windows"
# "x86_64-windows"
# ];
services.displayManager.autoLogin.enable = true;
services.displayManager.autoLogin.user = "pbsds";
# tmp: https://github.com/NixOS/nixpkgs/issues/103746#issuecomment-945091229
systemd.services."getty@tty1".enable = false;
systemd.services."autovt@tty1".enable = false;
# amdgpu audio fix when at 4k@60fps
# boot.kernelPackages = pkgs.linuxPackages_latest;
#boot.kernelPackages = pkgs.linuxPackages_latest;
#hardware.nvidia.package = config.boot.kernelPackages.nvidiaPackages.latest;
#hardware.nvidia.package = config.boot.kernelPackages.nvidiaPackages.beta;
#hardware.nvidia.modesetting.enable = false; # makes atom behave, but mpv refuses to start
# The open source driver does not support Pascal GPUs (1080)
# https://github.com/NixOS/nixos-hardware/blob/master/common/gpu/nvidia/pascal/default.nix
hardware.nvidia.open = false;
# PRIME: (lspci)
#hardware.nvidia.prime.intelBusId = "PCI:0:02:0";
#hardware.nvidia.prime.nvidiaBusId = "PCI:1:00:0";
imports = [
./hardware-configuration.nix
inputs.nixos-hardware.nixosModules.common-pc
inputs.nixos-hardware.nixosModules.common-pc-ssd
inputs.nixos-hardware.nixosModules.common-cpu-intel-cpu-only
inputs.nixos-hardware.nixosModules.common-gpu-intel-sandy-bridge
# ../../../hardware/gpu/intel.nix
# ../../../hardware/gpu/cuda.nix
../../../hardware/gpu/rocm.nix
../../../hardware/gpu/zluda.nix
../../../hardware/printer/discover.nix
../../../profiles/hidpi.nix
../../../profiles/nix-ld.nix
../../../profiles/sshd
../../../profiles/ccache
../../../profiles/earlyoom.nix
#../../../profiles/oci/podman.nix
../../../profiles/oci/docker.nix
# ../../../profiles/oci/distrobox.nix
#../../../profiles/vpn-pbsds/tailscale.nix
../../../users/pbsds
../../../users/pbsds/syncthing.nix
../../../profiles/mounts/freon-nfs.nix
../../../profiles/mounts/reidun-nfs.nix
../../../profiles/mounts/meconium-nfs.nix
#../../../profiles/mounts/fridge-nfs.nix
#../../../profiles/mounts/fridge-sshfs.nix # TODO
../../../profiles/shell.nix
../../../profiles/desktop
../../../profiles/desktop/gnome # configures gdm
../../../profiles/desktop/sound/pipewire.nix
../../../profiles/desktop/steam.nix
# ../../../profiles/desktop/retroarch.nix
../../../profiles/desktop/flatpak.nix
# ../../../profiles/desktop/waydroid.nix
../../../profiles/known-hosts
#../../../profiles/domeneshop-dyndns.nix
];
# services.domeneshop-updater.targets = [ config.networking.fqdn ];
nix.settings.max-jobs = 1; # this host do be stinky
networking.firewall.allowedTCPPorts = [ 57621 ]; # spotify local discovery
#networking.wireguard.interfaces."wg0".ips = [ "172.22.48.4/24" ]; # fyrkat
environment.systemPackages = [
pkgs.cemu
pkgs.supertuxkart
pkgs.azahar # citra
];
# Networking
networking.networkmanager.enable = true;
#networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
networking.interfaces.eno1.ipv4.addresses = [
{ address = "192.168.1.8"; prefixLength = 24; }
];
networking.defaultGateway.address = "192.168.1.254";
networking.defaultGateway.interface = "eno1";
networking.nameservers = [
"192.168.1.254"
"8.8.8.8"
"1.1.1.1"
];
#networking.useDHCP = true;
#TODO: avahi? resolved? https://git.pvv.ntnu.no/Drift/pvv-nixos-config/src/main/base.nix#L15-L18
# TODO: remove? Move?
programs.dconf.enable = true;
# Enable touchpad support (enabled default in most desktopManager).
# services.xserver.libinput.enable = true;
}
@@ -23,9 +23,10 @@
fsType = "vfat";
};
swapDevices =
[ { device = "/dev/disk/by-uuid/cd7b72b7-738a-4399-a887-ad69f6aa6ec9"; }
];
swapDevices = [{
device = "/dev/disk/by-uuid/04a7ef41-239c-4830-8026-0797b73b7c59";
# randomEncryption.enable = true;
}];
# 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
+158
View File
@@ -0,0 +1,158 @@
{ inputs, config, pkgs, lib, ... }:
{
# Bootloader
boot.loader.grub.enable = true;
boot.loader.grub.device = "/dev/sda";
boot.loader.grub.useOSProber = true;
imports = [
./hardware-configuration.nix
inputs.nixos-hardware.nixosModules.common-pc
inputs.nixos-hardware.nixosModules.common-pc-ssd
inputs.nixos-hardware.nixosModules.common-cpu-intel
../../../hardware/gpu/intel.nix
../../../profiles/sshd
# ../../../profiles/oci/podman.nix
#./yt-dlp-archive.nix
# ../../../profiles/vpn-pbsds/headscale.nix # opens port 3478 # TODO: move outside of home net?
../../../users/pbsds
../../../users/jornane
../../../profiles/mounts/freon-nfs.nix
../../../profiles/mounts/reidun-nfs.nix
../../../profiles/mounts/meconium-zfs.nix
# ../../../profiles/mounts/fridge-nfs.nix
# ../../../profiles/mounts/fridge-sshfs.nix # TODO
../../../profiles/shell.nix
# ../../../profiles/services/tmate-server.nix # opens port 42244 # TODO: move outside of home net
# TODO:
# ../../../profiles/backup/client
# ../../../profiles/backup/server.nix # setups the sftp user
../../../profiles/http # enables nginx+acme, defines mkDomain
../../../profiles/http/index
# ../../../profiles/http/services/cache-proxy
# ../../../profiles/http/services/attic.nix
# ../../../profiles/http/services/cinny.nix
# ../../../profiles/http/services/element.nix
../../../profiles/http/services/flexget.nix
# ../../../profiles/http/services/polaris.nix # TODO: fix
../../../profiles/http/services/plex.nix
../../../profiles/http/services/roundcube.nix
../../../profiles/http/services/vaultwarden.nix
../../../profiles/http/services/webdav-zotero.nix
# === decommissioned ===
# ../../../profiles/http/services/thelounge.nix
# ../../../profiles/http/services/redlib.nix
# ../../../profiles/http/services/invidious.nix
# ../../../profiles/http/services/gitea.nix
# ../../../profiles/http/services/rss-bridge.nix # TODO: move out of home net
# ../../../profiles/http/services/jellyfin.nix
# ../../../profiles/http/services/tautulli.nix # will run a first-time-setup where admin account is made
# ../../../profiles/http/services/netdata.nix # put behind firewall
# ../../../profiles/http/services/nitter.nix
# ../../../profiles/http/services/microbin.nix # TODO: move out of home net
# ../../../profiles/http/services/owncast.nix
# === incomplete ===
# ../../../profiles/http/services/hydra.nix
# ../../../profiles/http/services/mattermost.nix
# ../../../profiles/http/services/navidrome.nix
# ../../../profiles/http/services/ntopng.nix
# ../../../profiles/http/services/paperless.nix
# ../../../profiles/http/services/resilio.nix
# ../../../profiles/http/services/snappymail.nix # WIP
# ../../../profiles/http/services/garage/gunktrunk.nix
# ../../../profiles/http/services/convos.nix
# ../../../profiles/http/services/cryptpad.nix
# ../../../profiles/http/services/galene.nix
# ../../../profiles/http/services/graphana.nix
# ../../../profiles/http/services/hedgedoc.nix # TODO: move out of home net
# ../../../profiles/http/services/home-assistant.nix
# ../../../profiles/http/services/jitsi-meet.nix
# ../../../profiles/http/services/kukkee
# ../../../profiles/http/services/matrix-synapse.nix
# ../../../profiles/http/services/shlink.nix
# ../../../profiles/http/services/sourcegraph.nix
# ../../../profiles/http/services/censordodge.nix
# ../../../profiles/http/services/openspeedtest.nix
/**/
# TODO: move to a separate host, these suck to build
../../../profiles/http/docs
# ../../../profiles/http/docs/pdoc.nix
# ../../../profiles/http/docs/python-docs.nix
../../../profiles/http/docs/nixpkgs.nix
../../../profiles/http/docs/home-manager.nix
../../../profiles/http/docs/linux-docs.nix # TODO: fix
../../../profiles/http/docs/programs.nix
../../../profiles/http/docs/yagcd.nix
/**/
# TODO: make into flake inputs
# ../../../profiles/http/sites/linktree-pbsds.nix # github bby!! TODO: remove
# ../../../profiles/http/sites/refleksjon-no.nix
# ../../../profiles/http/sites/roroslyd-no.nix
../../../profiles/http/sites/kuklefse.nix
# ../../../profiles/http/services/trivial-gradios
# ../../../profiles/code-remote # TODO: move into web? services?
../../../profiles/domeneshop-dyndns.nix
../../../profiles/known-hosts
/* ../../../profiles/autossh-reverse-tunnels */
# ../../../profiles/xrdp
];
services.domeneshop-updater.targets = [
#"pbsds.net" # github bby!! TODO: remove
#"olavtr.pbsds.net" # KISS
config.networking.fqdn
"kuklef.se"
];
nix.settings.max-jobs = 1; # this host do be stinky
networking.hostId = "e1ffd469"; # needed for zfs: head -c 8 /etc/machine-id
#networking.wireguard.interfaces."wg0".ips = [ "172.22.48.3/24" ]; # fyrkat
sops.secrets.flexget.sopsFile = ./secrets.yaml;
sops.secrets.atticd.sopsFile = ./secrets.yaml;
# TODO: remove? Move to where relevant?
nixpkgs.overlays = [
/** /
(final: prev: {
mapcrafter = prev.callPackage /home/pbsds/repos/nixpkgs-mapcrafter/pkgs/tools/games/minecraft/mapcrafter/default.nix { };
mapcrafter-world112 = prev.callPackage /home/pbsds/repos/nixpkgs-mapcrafter/pkgs/tools/games/minecraft/mapcrafter/default.nix { world="world112"; };
})
/**/
];
# Networking
networking.networkmanager.enable = true;
#networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
#networking.iwd.enable = true # # alternative wireless backend, doesn't support eduroam
networking.interfaces.eno1.ipv4.addresses = [
{ address = "192.168.1.9"; prefixLength = 24; }
];
networking.nameservers = [
"192.168.1.254"
"8.8.8.8"
"1.1.1.1"
];
networking.defaultGateway = {
address = "192.168.1.254";
interface = "eno1";
};
#networking.useDHCP = true;
#TODO: avahi? resolved? https://git.pvv.ntnu.no/Drift/pvv-nixos-config/src/main/base.nix#L15-L18
# TODO: remove? Move?
programs.dconf.enable = true;
}
File diff suppressed because one or more lines are too long
+147
View File
@@ -0,0 +1,147 @@
{ inputs, config, pkgs, lib, modulesPath, ... }:
{
# Bootloader
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
# add driver to stage-1 to make the usb dock not prevent boot
# https://github.com/NixOS/nixpkgs/issues/171625#issuecomment-2068283656
boot.kernelModules = [ "xhci_pci" "ehci_pci" ];
# boot.kernel.sysctl."vm.swappiness" = lib.mkDefault 10; # 0-100, commonly 60
# swapDevices = lib.mkForce [];
# zramSwap.enable = true;
# zramSwap.memoryPercent = 20;
# for testing only, not for building
boot.binfmt.addEmulatedSystemsToNixSandbox = false;
boot.binfmt.emulatedSystems = [
"aarch64-linux"
"armv7l-linux"
"riscv64-linux"
];
#nix.settings.system = "x86_64-linux";
#nix.settings.extra-platforms = [ "i686-linux" ];
services.displayManager.autoLogin.enable = true;
services.displayManager.autoLogin.user = "pbsds";
# tmp: https://github.com/NixOS/nixpkgs/issues/103746#issuecomment-945091229
systemd.services."getty@tty1".enable = false;
systemd.services."autovt@tty1".enable = false;
hardware.nvidia.package = config.boot.kernelPackages.nvidiaPackages.legacy_580 or config.boot.kernelPackages.nvidiaPackages.stable; # 580 is the last to support Pascal GPUs (1080)
#hardware.nvidia.modesetting.enable = false; # makes atom behave, but mpv refuses to start
# The open source driver does not support Pascal GPUs (1080)
# https://github.com/NixOS/nixos-hardware/blob/master/common/gpu/nvidia/pascal/default.nix
hardware.nvidia.open = false;
# PRIME: (lspci)
#hardware.nvidia.prime.intelBusId = "PCI:0:02:0";
#hardware.nvidia.prime.nvidiaBusId = "PCI:1:00:0";
imports = [
./hardware-configuration.nix
inputs.nixos-hardware.nixosModules.common-pc
inputs.nixos-hardware.nixosModules.common-pc-ssd
inputs.nixos-hardware.nixosModules.common-cpu-intel
../../../hardware/gpu/intel.nix
../../../hardware/gpu/cuda.nix
# ../../../hardware/gpu/rocm.nix
../../../hardware/gpu/zluda.nix
# ../../../hardware/printer/discover.nix
../../../hardware/printer/hp-laserjet-p1005.nix
../../../hardware/printer/share.nix
../../../profiles/nix-ld.nix
../../../profiles/sshd
../../../profiles/ccache
../../../profiles/earlyoom.nix
../../../profiles/no-suspend.nix
#../../../profiles/oci/podman.nix
../../../profiles/oci/docker.nix
../../../profiles/oci/distrobox.nix
../../../users/pbsds
../../../users/pbsds/syncthing.nix
../../../profiles/mounts/freon-nfs.nix
../../../profiles/mounts/reidun-nfs.nix
../../../profiles/mounts/meconium-nfs.nix
../../../profiles/shell.nix
../../../profiles/desktop
../../../profiles/desktop/gnome # configures gdm
../../../profiles/desktop/sound/pipewire.nix
../../../profiles/desktop/steam.nix
#../../../profiles/desktop/xboxdrv.nix # TODO: try out
../../../profiles/desktop/lutris.nix
../../../profiles/desktop/flatpak.nix
../../../profiles/known-hosts
#../../../profiles/domeneshop-dyndns.nix
];
# services.domeneshop-updater.targets = [ config.networking.fqdn ];
networking.firewall.allowedTCPPorts = [ 57621 ]; # spotify local discovery
hardware.bluetooth.enable = true;
environment.systemPackages = [
# pkgs.davinci-resolve # broken on cuda
pkgs.krita
# pkgs.pbsds.v4l2-play
# pkgs.librealsense-gui
# pkgs.freecad
pkgs.chromium
# pkgs.cemu
# pkgs.azahar # citra
];
# Networking
/**/
networking.networkmanager.enable = true;
#networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
networking.interfaces.enp3s0.wakeOnLan.enable = true;
networking.interfaces.enp3s0.ipv4.addresses = [
{ address = "192.168.1.7"; prefixLength = 24; }
];
networking.defaultGateway.address = "192.168.1.254";
networking.defaultGateway.interface = "enp3s0";
networking.nameservers = [
"192.168.1.254"
"8.8.8.8"
"1.1.1.1"
];
#networking.useDHCP = true;
/** /
systemd.network.enable = true;
systemd.network.networks."50-static" = {
matchConfig.Name = "enp3s0";
address = [ "192.168.1.7/24" ];
gateway = [ "192.168.1.254" ];
dns = [ "192.168.1.254" "8.8.8.8" "1.1.1.1" ];
domains = [ config.networking.domain ]; # set by flake
networkConfig.IPv6AcceptRA = false;
linkConfig.RequiredForOnline = "routable"; # dependency for network-online.target
};
/** /
systemd.network.networks."51-dhcp" = {
matchConfig.Name = "enp3s0";
networkConfig.DHCP = "yes";
networkConfig.IPv6AcceptRA = true;
linkConfig.RequiredForOnline = "no"; # not always connected and not required to be online
};
/**/
#TODO: avahi? resolved? https://git.pvv.ntnu.no/Drift/pvv-nixos-config/src/main/base.nix#L15-L18
# TODO: remove? Move?
programs.dconf.enable = true;
# Enable touchpad support (enabled default in most desktopManager).
# services.xserver.libinput.enable = true;
}
@@ -11,7 +11,9 @@
boot.initrd.availableKernelModules = [ "xhci_pci" "ehci_pci" "ahci" "usb_storage" "usbhid" "sd_mod" "sr_mod" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-intel" "wl" ];
boot.extraModulePackages = [ config.boot.kernelPackages.broadcom_sta ];
# TODO: insecure...
# https://github.com/NixOS/nixpkgs/pull/421163/files
# boot.extraModulePackages = [ config.boot.kernelPackages.broadcom_sta ];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/4bdb8a48-2493-4043-80fa-254fbf910643";
@@ -23,9 +25,10 @@
fsType = "vfat";
};
swapDevices =
[ { device = "/dev/disk/by-uuid/e9b56879-e406-44c7-ab60-fcd374fdf0ea"; }
];
swapDevices = [{
device = "/dev/disk/by-uuid/e9b56879-e406-44c7-ab60-fcd374fdf0ea";
# randomEncryption.enable = true;
}];
# 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
-73
View File
@@ -1,73 +0,0 @@
{ config, pkgs, lib, ... }:
{
# Bootloader
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
boot.loader.efi.efiSysMountPoint = "/boot/efi";
services.xserver.displayManager.autoLogin.enable = true;
services.xserver.displayManager.autoLogin.user = "pbsds";
# tmp: https://github.com/NixOS/nixpkgs/issues/103746#issuecomment-945091229
systemd.services."getty@tty1".enable = false;
systemd.services."autovt@tty1".enable = false;
boot.kernelPackages = pkgs.linuxPackages_latest; # amdgpu audio fix when at 4k@60fps
imports = [
./hardware-configuration.nix
../../profiles/sshd.nix
#../../profiles/oci/podman.nix
#../../profiles/oci/docker.nix
#../../profiles/vpn-pbsds/tailscale.nix
../../users/pbsds
../../profiles/mounts/freon-nfs.nix
../../profiles/mounts/reidun-nfs.nix
../../profiles/mounts/meconium-nfs.nix
#../../profiles/mounts/fridge-nfs.nix
../../profiles/shell.nix
../../profiles/desktop/base.nix
../../profiles/desktop/gnome # configures gdm
#../../profiles/desktop/sound/alsa.nix
#../../profiles/desktop/sound/pulseaudio.nix
../../profiles/desktop/sound/pipewire.nix
../../profiles/desktop/steam.nix
../../profiles/desktop/flatpak.nix
../../profiles/remote-builders.nix
#../../profiles/autossh-reverse-tunnels
#../../profiles/domeneshop-dyndns # handled by noximilien
];
networking.firewall.allowedTCPPorts = [ 57621 ]; # spotify local discovery
#networking.wireguard.interfaces."wg0".ips = [ "172.22.48.4/24" ]; # fyrkat
# Networking
networking.networkmanager.enable = true;
#networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
networking.interfaces.eno1.ipv4.addresses = [
{ address = "192.168.1.8"; prefixLength = 24; }
];
networking.defaultGateway.address = "192.168.1.254";
networking.defaultGateway.interface = "eno1";
networking.nameservers = [
"192.168.1.254"
"8.8.8.8"
"1.1.1.1"
];
#networking.useDHCP = true;
#TODO: avahi? resolved? https://git.pvv.ntnu.no/Drift/pvv-nixos-config/src/main/base.nix#L15-L18
# TODO: remove? Move?
programs.dconf.enable = true;
# Enable touchpad support (enabled default in most desktopManager).
# services.xserver.libinput.enable = true;
}
-140
View File
@@ -1,140 +0,0 @@
{ config, pkgs, lib, ... }:
{
# Bootloader
boot.loader.grub.enable = true;
boot.loader.grub.device = "/dev/sda";
boot.loader.grub.useOSProber = true;
imports = [
./hardware-configuration.nix
../../profiles/sshd.nix
#../../profiles/oci/podman.nix
#./yt-dlp-archive.nix
#../../profiles/vpn-pbsds/headscale.nix # opens port 3478 # TODO: move outside of home net?
../../users/pbsds
../../users/jornane
../../profiles/mounts/freon-nfs.nix
../../profiles/mounts/reidun-nfs.nix
../../profiles/mounts/meconium-zfs.nix
#../../profiles/mounts/fridge-nfs.nix # TODO: fix
../../profiles/shell.nix
#../../profiles/services/tmate-server.nix # opens port 42244 # TODO: move outside of home net
../../profiles/http # enables nginx+acme, defines mkDomain
../../profiles/http/index
../../profiles/http/services/cinny.nix
../../profiles/http/services/element.nix
../../profiles/http/services/flexget.nix
../../profiles/http/services/gitea.nix
#../../profiles/http/services/hydra.nix
../../profiles/http/services/invidious.nix
#../../profiles/http/services/rss-bridge.nix # TODO: move out of home net
#../../profiles/http/services/jellyfin.nix
../../profiles/http/services/plex.nix
#../../profiles/http/services/tautulli.nix # will run a first-time-setup where admin account is made
../../profiles/http/services/libreddit.nix
#../../profiles/http/services/mattermost.nix
#../../profiles/http/services/navidrome.nix
#../../profiles/http/services/netdata.nix # put behind firewall
#../../profiles/http/services/nitter.nix
#../../profiles/http/services/ntopng.nix
#../../profiles/http/services/microbin.nix # TODO: move out of home net
#../../profiles/http/services/owncast.nix
#../../profiles/http/services/paperless.nix
../../profiles/http/services/polaris.nix
#../../profiles/http/services/resilio.nix
../../profiles/http/services/roundcube.nix
#../../profiles/http/services/snappymail.nix # WIP
../../profiles/http/services/thelounge.nix
../../profiles/http/services/vaultwarden.nix
../../profiles/http/services/webdav-zotero.nix
#../../profiles/http/services/garage/gunktrunk.nix
#../../profiles/http/services/convos.nix
#../../profiles/http/services/cryptpad.nix
#../../profiles/http/services/galene.nix
#../../profiles/http/services/graphana.nix
#../../profiles/http/services/hedgedoc.nix # TODO: move out of home net
#../../profiles/http/services/home-assistant.nix
#../../profiles/http/services/jitsi-meet.nix
#../../profiles/http/services/kukkee
#../../profiles/http/services/matrix-synapse.nix
#../../profiles/http/services/shlink.nix
#../../profiles/http/services/sourcegraph.nix
#../../profiles/http/services/censordodge.nix
#../../profiles/http/services/openspeedtest.nix
/**/
# TODO: move to brumle
../../profiles/http/docs
../../profiles/http/docs/pdoc.nix
../../profiles/http/docs/python-docs.nix
#../../profiles/http/docs/nixpkgs.nix # TODO: fix
../../profiles/http/docs/home-manager.nix
#../../profiles/http/docs/linux-docs.nix # TODO: fix
../../profiles/http/docs/programs.nix
../../profiles/http/docs/yagcd.nix
/**/
#../../profiles/http/sites/linktree-pbsds.nix # github bby!! TODO: remove
../../profiles/http/sites/refleksjon-no.nix
../../profiles/http/sites/roroslyd-no.nix
../../profiles/http/sites/kuklefse.nix
#../../profiles/http/services/trivial-gradios
#../../profiles/code-remote # TODO: move into web? services?
../../profiles/domeneshop-dyndns
../../profiles/remote-builders.nix
../../profiles/autossh-reverse-tunnels
#../../profiles/xrdp
];
services.domeneshop-updater.targets = [
#"pbsds.net" # github bby!! TODO: remove
"olavtr.pbsds.net"
"kuklef.se"
];
networking.hostId = "e1ffd469"; # needed for zfs: head -c 8 /etc/machine-id
#networking.wireguard.interfaces."wg0".ips = [ "172.22.48.3/24" ]; # fyrkat
sops.secrets.flexget.sopsFile = ../../secrets/${config.networking.hostName}.yaml;
# TODO: remove? Move to where relevant?
nixpkgs.overlays = [
/** /
(final: prev: {
mapcrafter = prev.callPackage /home/pbsds/repos/nixpkgs-mapcrafter/pkgs/tools/games/minecraft/mapcrafter/default.nix { };
mapcrafter-world112 = prev.callPackage /home/pbsds/repos/nixpkgs-mapcrafter/pkgs/tools/games/minecraft/mapcrafter/default.nix { world="world112"; };
})
/**/
];
# Networking
networking.networkmanager.enable = true;
#networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
#networking.iwd.enable = true
networking.interfaces.eno1.ipv4.addresses = [
{ address = "192.168.1.9"; prefixLength = 24; }
];
networking.nameservers = [
"192.168.1.254"
"8.8.8.8"
"1.1.1.1"
];
networking.defaultGateway = {
address = "192.168.1.254";
interface = "eno1";
};
#networking.useDHCP = true;
#TODO: avahi? resolved? https://git.pvv.ntnu.no/Drift/pvv-nixos-config/src/main/base.nix#L15-L18
# TODO: remove? Move?
programs.dconf.enable = true;
}
-100
View File
@@ -1,100 +0,0 @@
{ config, pkgs, lib, ... }:
{
# Bootloader
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
boot.kernel.sysctl."vm.swappiness" = lib.mkDefault 10; # 0-100, commonly 60
boot.kernelModules = [ "xhci_pci" ]; # add driver to stage-1 to make the usb dock not prevent boot - https://github.com/NixOS/nixpkgs/issues/171625#issuecomment-2068283656
services.xserver.displayManager.autoLogin.enable = true;
services.xserver.displayManager.autoLogin.user = "pbsds";
# tmp: https://github.com/NixOS/nixpkgs/issues/103746#issuecomment-945091229
systemd.services."getty@tty1".enable = false;
systemd.services."autovt@tty1".enable = false;
#boot.kernelPackages = pkgs.linuxPackages_latest;
#hardware.nvidia.modesetting.enable = false; # makes atom behave, but mpv refuses to start
hardware.nvidia.package = config.boot.kernelPackages.nvidiaPackages.beta;
# PRIME: (lspci)
#hardware.nvidia.prime.intelBusId = "PCI:0:02:0";
#hardware.nvidia.prime.nvidiaBusId = "PCI:1:00:0";
imports = [
./hardware-configuration.nix
../../profiles/sshd.nix
../../profiles/no-suspend.nix
#../../profiles/oci/podman.nix
../../profiles/oci/docker.nix
../../profiles/oci/distrobox.nix
../../users/pbsds
../../profiles/mounts/freon-nfs.nix
../../profiles/mounts/reidun-nfs.nix
../../profiles/mounts/meconium-nfs.nix
../../profiles/shell.nix
../../profiles/desktop/base.nix
../../profiles/desktop/gnome # configures gdm
#../../profiles/desktop/sound/alsa.nix
#../../profiles/desktop/sound/pulseaudio.nix
../../profiles/desktop/sound/pipewire.nix
../../profiles/desktop/steam.nix
#../../profiles/desktop/xboxdrv.nix # TODO: try out
../../profiles/desktop/lutris.nix
../../profiles/desktop/flatpak.nix
../../profiles/remote-builders.nix
#../../profiles/autossh-reverse-tunnels
#../../profiles/domeneshop-dyndns # handled by noximilien
];
networking.firewall.allowedTCPPorts = [ 57621 ]; # spotify local discovery
# Networking
/**/
networking.networkmanager.enable = true;
#networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
networking.interfaces.enp3s0.wakeOnLan.enable = true;
networking.interfaces.enp3s0.ipv4.addresses = [
{ address = "192.168.1.7"; prefixLength = 24; }
];
networking.defaultGateway.address = "192.168.1.254";
networking.defaultGateway.interface = "enp3s0";
networking.nameservers = [
"192.168.1.254"
"8.8.8.8"
"1.1.1.1"
];
#networking.useDHCP = true;
/** /
systemd.network.enable = true;
systemd.network.networks."50-static" = {
matchConfig.Name = "enp3s0";
address = [ "192.168.1.7/24" ];
gateway = [ "192.168.1.254" ];
dns = [ "192.168.1.254" "8.8.8.8" "1.1.1.1" ];
domains = [ config.networking.domain ]; # set by flake
networkConfig.IPv6AcceptRA = false;
linkConfig.RequiredForOnline = "routable"; # dependency for network-online.target
};
/** /
systemd.network.networks."51-dhcp" = {
matchConfig.Name = "enp3s0";
networkConfig.DHCP = "yes";
networkConfig.IPv6AcceptRA = true;
linkConfig.RequiredForOnline = "no"; # not always connected and not required to be online
};
/**/
#TODO: avahi? resolved? https://git.pvv.ntnu.no/Drift/pvv-nixos-config/src/main/base.nix#L15-L18
# TODO: remove? Move?
programs.dconf.enable = true;
# Enable touchpad support (enabled default in most desktopManager).
# services.xserver.libinput.enable = true;
}
@@ -0,0 +1,40 @@
{ lib, ... }:
let
cfg = config.networking;
in
{
options = {
# from https://github.com/NixOS/nixpkgs/blob/799ba5bffed04ced7067a91798353d360788b30d/nixos/modules/tasks/network-interfaces.nix
networking.hostName = mkOption {
default = config.system.nixos.distroId;
defaultText = literalExpression "config.system.nixos.distroId";
type = types.strMatching
"^$|^[[:alnum:]]([[:alnum:]_-]{0,61}[[:alnum:]])?$";
};
networking.fqdn = mkOption {
readOnly = true;
type = types.str;
default = if (cfg.hostName != "" && cfg.domain != null)
then "${cfg.hostName}.${cfg.domain}"
else throw ''
The FQDN is required but cannot be determined. Please make sure that
both networking.hostName and networking.domain are set properly.
'';
defaultText = literalExpression ''"''${networking.hostName}.''${networking.domain}"'';
description = ''
The fully qualified domain name (FQDN) of this host. It is the result
of combining `networking.hostName` and `networking.domain.` Using this
option will result in an evaluation error if the hostname is empty or
no domain is specified.
Modules that accept a mere `networking.hostName` but prefer a fully qualified
domain name may use `networking.fqdnOrHostName` instead.
'';
};
};
}
@@ -0,0 +1 @@
# TODO
@@ -0,0 +1,61 @@
{ lib, pkgs, config, nixosModulesPath, inputs, system, ... }:
{
imports =
[
/* ./modules/udev.nix */
/* ../../../secrets */
/* ../../../profiles/lix.nix */
/* ../../../profiles/auto-upgrade.nix */
/* ../../../profiles/known-hosts */
]
# import modules from nixos
# based on https://github.com/numtide/system-manager/blob/e09166d9d4eab2bf010c1589fbf4542a54b022e3/nix/modules/upstream/nixpkgs/default.nix#L9
++ map (path: nixosModulesPath + path) [
/* "/config/nix.nix" */
/* "/config/nix-remote-build.nix" */
"/services/networking/tailscale.nix"
];
# stub nixos shit
options =
let
stub = lib.mkOption { type = lib.types.raw; };
in {
networking.firewall = stub;
networking.dhcpcd = stub;
systemd.network = stub;
};
config = {
nixpkgs.overlays = [
/* inputs.system-manager-edge.overlays.packages */
];
environment.systemPackages = [
/* pkgs.system-manager */
inputs.system-manager-edge.packages.${system}.system-manager # ewww
/* pkgs.superTuxKart */
];
# https://github.com/soupglasses/nix-system-graphics
system-graphics.enable = true;
/** /
nix.registry.nixpkgs.flake = inputs.nixpkgs;
nix.registry.nixpkgs-unstable.flake = inputs.unstable;
nix.nixPath = [
"nixpkgs=${inputs.nixpkgs}"
"nixpkgs-unstable=${inputs.unstable}"
];
/**/
# from https://wiki.archlinux.org/title/Power_management#Using_a_script_and_an_udev_rule
# in /etc/udev/rules.d/powersave.rules
# SUBSYSTEM=="power_supply", ATTR{online}=="0", RUN+="${lib.getExe tailscale} up"
# SUBSYSTEM=="power_supply", ATTR{online}=="1", RUN+="${lib.getExe tailscale} down"
};
}
+507 -30
View File
@@ -1,69 +1,546 @@
set positional-arguments # makes variables accesible as $1 $2 $@
export invokedir := invocation_directory()
export GUM_CHOOSE_HEIGHT := "15"
export GUM_FILTER_HEIGHT := "15"
export FZF_DEFAULT_OPTS := "--height 15 --cycle --bind 'ctrl-a:toggle-all' " + env('FZF_DEFAULT_OPTS', "")
#export hosts_nixos := `2>/dev/null nix eval .\#nixosConfigurations --apply builtins.attrNames --json`
#export hosts_fhs := `2>/dev/null nix eval .\#systemConfigs --apply builtins.attrNames --json`
@_default:
just "$(gum filter --placeholder "Pick a recipie..." $(just --summary --unsorted))"
eval hostname=`just _a_host`:
nix eval .#nixosConfigurations.{{hostname}}.config.system.build.toplevel.outPath
@eval $hostname=`just _a_host` $attrpath="system.build.toplevel.outPath" *args:
set -x; nix eval --log-format raw ".#nixosConfigurations.\"$hostname\".config.$attrpath" --show-trace "${@:3}"
@eval-vm $hostname=`just _a_host` $attrpath="system.build.toplevel.outPath" *args:
# set -x; nix eval --log-format raw ".#nixosConfigurations.\"$hostname\".config.system.build.vm.outPath" --show-trace "${@:3}"
set -x; nix eval --log-format raw ".#nixosConfigurations.\"$hostname\".config.virtualisation.vmVariant.$attrpath" --show-trace "${@:3}"
@eval-pkgs $hostname $attrpath *args:
set -x; nix eval --log-format raw ".#nixosConfigurations.\"$hostname\".pkgs.$attrpath" --show-trace "${@:3}"
repl $hostname=`just _a_host`:
NIX_NO_NOM=1 nixos-rebuild --flake .#"$hostname" repl
why-depends $hostname $attrpath:
nix why-depends .#nixosConfigurations."$hostname".config.system.build.toplevel .#nixosConfigurations."$hostname".pkgs."$attrpath"
why-depends-drv $hostname $attrpath:
nix why-depends .#nixosConfigurations."$hostname".config.system.build.toplevel.drvPath .#nixosConfigurations."$hostname".pkgs."$attrpath"
report hostname=`just _a_host`:
nix eval .#nixosReports.{{hostname}} --json | yq . --yaml-output | bat --language yaml --style plain --paging never
nix eval .#nixosReports."{{hostname}}" --json --show-trace | yq . --yaml-output --width=999999 | bat --language yaml --style plain --paging never
reports:
nix eval .#nixosReports --json | yq . --yaml-output | bat --language yaml --style plain --paging never
nix eval .#nixosReports --json --show-trace | yq . --yaml-output --width=999999 | bat --language yaml --style plain --paging never
update:
pull: # used in .envrc, cannot be interative
#!/usr/bin/env -S bash -euo pipefail
tmp=$(mktemp -p .direnv/tmp -d)
if ! git diff --exit-code --quiet HEAD -- flake.lock >&/dev/null; then
cp flake.lock "$tmp"/dirty-flake.lock
git reset -- flake.lock
git restore -- flake.lock
cp flake.lock "$tmp"/clean-flake.lock # we could instead preserve the current git rev
fi
git pull --rebase --autostash
if grep -q "^=======" flake.lock; then
git reset -- flake.lock
rm flake.lock # git restore?
git checkout -- flake.lock
elif [[ -s "$tmp"/clean-flake.lock ]] && ! diff -q "$tmp"/clean-flake.lock flake.lock >&/dev/null; then
cp "$tmp"/flake-dirty.lock flake.lock
fi
# --option access-tokens ""
update *args: # interactive
#!/usr/bin/env -S bash -euo pipefail
args=("$@")
verbose() ( set -x; "$@"; )
if gum confirm "Pull first?" --default=yes; then
just pull
fi
if gum confirm "add --option access-tokens ''?" --default=no; then
args+=( --option access-tokens "" )
fi
if gum confirm "use --commit-lock-file?" --default=yes; then
verbose git reset flake.lock
verbose git restore flake.lock
# verbose git pull --rebase --autostash
verbose nix flake update --commit-lock-file "${args[@]}"
else
verbose nix flake update "${args[@]}"
fi
if gum confirm "prefetch inputs?" --default=yes; then
nix flake prefetch-inputs "${args[@]}"
fi
# mkdir -p .direnv/
# printf "%s\n" "$(date +%Y-%m-%d)" > .direnv/pull-date
@update-select:
git reset flake.lock
git restore flake.lock
git pull --rebase --autostash
nix flake update --commit-lock-file
@mkdir -p .direnv/
@echo "$(date +%Y-%m-%d)" > .direnv/pull-date
nix eval --file flake.nix --apply 'x: builtins.attrNames x.inputs' --json \
| (printf "%s\n" --commit-lock-file '--option access-tokens ""'; jq '.[]' -r | tr '0123456789' '9876543210' | sort | tr '0123456789' '9876543210' | grep -v "^self$") \
| gum choose --no-limit \
| xargs nix flake update
git add flake.lock
build:
nixos-rebuild build --accept-flake-config --show-trace --flake .
dconf-pull:
./users/pbsds/home/profiles/desktop/gnome/dconf-pull.sh
git diff ./users/pbsds/home/profiles/desktop/gnome/
-gum confirm "git add --patch?" --default=no \
&& git add --patch ./users/pbsds/home/profiles/desktop/gnome/
-gum confirm "git checkout --path?" --default=no \
&& git checkout --patch ./users/pbsds/home/profiles/desktop/gnome/
test:
sudo nixos-rebuild test --accept-flake-config --show-trace --flake .
alias pull-dconf := dconf-pull
switch:
sudo nixos-rebuild switch --accept-flake-config --show-trace --flake .
# todo: support system-manager?
# todo: support nix-darwin?
# todo: support nixbsd?
# todo: support nixng?
build $hostname="" *_:
#!/usr/bin/env -S bash -euo pipefail
if [[ "${hostname::1}" = "-" ]]; then
echo >&2 "WARNING(just): 'hostname' starts with '-', moving it to nix args..."
set -- "" "$@"; hostname=""
fi
set -x; nixos-rebuild build --accept-flake-config --show-trace --flake .#"$hostname" "${@:2}"
boot:
sudo nixos-rebuild boot --accept-flake-config --show-trace --flake .
build-vm hostname=`just _a_host` *_:
#!/usr/bin/env -S bash -euo pipefail
if [[ "${hostname::1}" = "-" ]]; then
echo >&2 "WARNING(just): 'hostname' starts with '-', moving it to nix args..."
set -- "" "$@"; hostname=""
fi
set -x; nixos-rebuild build-vm --accept-flake-config --show-trace --flake .#"$hostname" "${@:2}"
build-vm-and-run $hostname=`just _a_host` *_:
#!/usr/bin/env -S bash -euo pipefail
[[ -n "$hostname" ]]
# TODO: setup ports?
# TODO: attach serial instead of gui?
# TODO: headless and ssh?
just build-vm "$hostname" "${@:2}"
set -x; ./result/bin/run-"$hostname"-vm
# compares new closure against /run/current-system
build-diff $hostname="" *_:
#!/usr/bin/env -S bash -euo pipefail
current_system="/run/current-system"
new_system="$(just build "$hostname" "${@:2}")"
echo >&2; set -x
# nvd diff "$current_system" "$new_system" # python based, slow
dix "$current_system" "$new_system" # rust based, fast, nixos-unstable only
build-closure-size $hostname="" *_:
#!/usr/bin/env -S bash -euo pipefail
new_system="$(just build "$hostname" "${@:2}")"
echo; set -x
# nix path-info --recursive --size --closure-size --human-readable "$new_system" | sort -nk3 # broki
nix path-info --recursive --size --closure-size "$new_system" | sort -nk3 | numfmt --field=2,3 --to iec
test *_:
#!/usr/bin/env -S bash -euo pipefail
if [[ $# -gt 0 && "${1:-}" = "" ]]; then
echo >&2 "WARNING(just): first arg is empty, popping it off..."; shift
elif [[ $# -gt 0 && "${1::1}" != "-" ]]; then
echo >&2 "WARNING(just): first arg does not start with "-", is it a hostname?"
fi
set -x; sudo nixos-rebuild test --accept-flake-config --show-trace --flake . "$@"
switch *_:
#!/usr/bin/env -S bash -euo pipefail
if [[ $# -gt 0 && "${1:-}" = "" ]]; then
echo >&2 "WARNING(just): first arg is empty, popping it off..."; shift
elif [[ $# -gt 0 && "${1::1}" != "-" ]]; then
echo >&2 "WARNING(just): first arg does not start with "-", is it a hostname?"
fi
set -x; sudo nixos-rebuild switch --accept-flake-config --show-trace --flake . "$@"
boot *_:
#!/usr/bin/env -S bash -euo pipefail
if [[ $# -gt 0 && "${1:-}" = "" ]]; then
echo >&2 "WARNING(just): first arg is empty, popping it off..."; shift
elif [[ $# -gt 0 && "${1::1}" != "-" ]]; then
echo >&2 "WARNING(just): first arg does not start with "-", is it a hostname?"
fi
set -x; sudo nixos-rebuild boot --accept-flake-config --show-trace --flake . "$@"
boot-and-reboot *_:
#!/usr/bin/env -S bash -euo pipefail
if [[ $# -gt 0 && "${1:-}" = "" ]]; then
echo >&2 "WARNING(just): first arg is empty, popping it off..."; shift
elif [[ $# -gt 0 && "${1::1}" != "-" ]]; then
echo >&2 "WARNING(just): first arg does not start with "-", is it a hostname?"
fi
set -x
sudo nixos-rebuild boot --accept-flake-config --show-trace --flake . "$@"
sudo reboot # TODO: can i somehow ensure that the sudo hasn't timed out by this time?
# TODO: does this support nixos-rebuild-ng?
push $hostname=`just _a_host` cmd=`gum choose test switch boot --header "Select mode..."`:
#!/usr/bin/env -S bash -euo pipefail
remote_sudo=1
gum confirm "Use '--use-remote-sudo'?" || remote_sudo=0
# build once first for nom output
(set -x; nixos-rebuild build --flake .#"$hostname") || exit $?
# target_host="root@$(nix eval --log-format raw ".#nixosConfigurations.\"$hostname\".config.networking.fqdn" --json | jq . -r)"
target_host="$hostname"
printf "%s\n" pushing...
# nixos-rebuild will perform a build still, meaning another full eval...
# TODO: support a simple copy-closure with no activation on remote
if [[ "$remote_sudo" -eq 1 ]]; then
# set -x; NIX_NO_NOM=1 NIX_SSHOPTS="-t" nixos-rebuild {{cmd}} --flake .#"$hostname" --target-host "$target_host" --use-substitutes --use-remote-sudo
set -x; NIX_NO_NOM=1 IX_SSHOPTS="-o RequestTTY=force" nixos-rebuild {{cmd}} --flake .#"$hostname" --target-host "$target_host" --use-substitutes --use-remote-sudo
else
set -x; NIX_NO_NOM=1 nixos-rebuild {{cmd}} --flake .#"$hostname" --target-host "root@$target_host" --use-substitutes
fi
home-why-depends $attrpath:
#!/usr/bin/env -S bash -euo pipefail
hostname="$(hostname)"
username="$(whoami)"
set -x
# assumes useGlobalPkgs
nix why-depends \
.#nixosConfigurations."${hostname}".config.home-manager.users."${username}".home.activationPackage \
.#nixosConfigurations."${hostname}".pkgs."$attrpath"
home-eval $attrpath="home.activationPackage" *_:
#!/usr/bin/env -S bash -euo pipefail
hostname="$(hostname)"
username="$(whoami)"
set -x
nix eval --log-format raw .#nixosConfigurations."${hostname}".config.home-manager.users."${username}"."$attrpath" --show-trace "${@:2}"
# TODO: fallback to .#homeConfigurations.$(whoami) ?
# TODO: alternative behaviour for system-manager and nix-darwin
home-build *_:
#!/usr/bin/env -S bash -euo pipefail
# home-manager build --flake .
# home-manager build --flake .#nixosConfigurations.$(hostname).config.home-manager.users.$(whoami)
hostname="$(hostname)"
username="$(whoami)"
set -x
nom build .#nixosConfigurations."${hostname}".config.home-manager.users."${username}".home.activationPackage "${@:1}"
# TODO: fallback to .#homeConfigurations.$(whoami) ?
# TODO: alternative behaviour for system-manager and nix-darwin
home-build-diff *_: home-build
#!/usr/bin/env -S bash -euo pipefail
current_home="${XDG_STATE_HOME:-"$HOME/.local/state"}/home-manager/gcroots/current-home"
new_home="$(just home-build --print-out-paths "${@:1}")"
echo >&2; set -x
# nvd diff "$current_home" "$new_home" # python based, slow
dix "$current_home" "$new_home" # rust based, fast, nixos-unstable only
home-build-closure-size *_:
#!/usr/bin/env -S bash -euo pipefail
new_home="$(just home-build --print-out-paths "${@:1}")"
set -x
# nix path-info --recursive --size --closure-size --human-readable "$new_home" | sort -nk3 # broki
nix path-info --recursive --size --closure-size "$new_home" | sort -nk3 | numfmt --field=2,3 --to iec
home-switch *_:
#!/usr/bin/env -S bash -euo pipefail
new_home="$(just home-build --print-out-paths "${@:1}")"
set -x
# ./result/activate
"$new_home"/activate
# QoL
alias hm-build := home-build
alias hm-build-diff := home-build-diff
alias hm-build-closure-size := home-build-closure-size
alias hm-switch := home-switch
alias build-home := home-build
alias build-diff-home := home-build-diff
alias build-closure-size-home := home-build-closure-size
alias switch-home := home-switch
# test-files $hostname=`just _a_host` *filenames:
# #!/usr/bin/env -S bash -euo pipefail
# # TODO: remember previous choices
# [[ -n "$hostname" ]] || { printf >&2 "%s\n" "ERROR: no hostname"; false; }
# declare -a filenames=("${@:2}")
# if [[ "${#filenames[@]}" -eq 0 ]]; then
# etcfiles=$(
# nix eval ".#nixosConfigurations.\"$hostname\".config.environment.etc" --json \
# --apply 'builtins.mapAttrs (k: v: { inherit (v) enable target mode; })'
# )
# homekeys=$(
# nix eval ".#nixosConfigurations.\"$hostname\".config.home-manager.users" --json \
# --apply 'builtins.mapAttrs (user: config: { inherit (config.home) homeDirectory; files = builtins.mapAttrs (k: v: { inherit (v) enable target recursive; }) config.home.file; } )'
# # | jq 'to_entries[]| .key as $user | .value.homeDirectory as $homeDirectory | .value.files | to_entries[] | select(.value) | [ "config.home-manager.users.\"\($user)\".home.file.\"\(.key)\"", $homeDirectory + "/" + .value.target, .value.target, .key, $user, $homeDirectory] | @tsv' -r
# )
# filepathindex=$(
# jq --null-input -c \
# --arg hostname "$hostname" \
# --argjson etcfiles "$etcfiles" \
# --argjson homekeys "$homekeys" \
# '{
# "nixosConfigurations.\"\($hostname)\".config.environment.etc": (
# $etcfiles | with_entries( select(.value.enable) | { key, value: (.value + { target : ("/etc/" + .value.target) }) } )
# )
# } + (
# $homekeys | with_entries(
# .key as $user |
# .value.homeDirectory as $homeDirectory |
# {
# key: ("nixosConfigurations.\"\($hostname)\".config.home-manager.users.\"\($user)\".home.file"),
# value: (
# .value.files | with_entries(
# select(.value.enable) | {
# key,
# value: (.value + {
# target: ($homeDirectory + "/" + .value.target),
# }),
# }
# )
# ),
# }
# )
# )'
# )
# # cache
# if [[ "$UID" -ne 0 ]]; then
# mkdir -p .direnv/
# cat <<<"$filepathindex" >.direnv/just-cache-test-files-"$hostname".json
# fi
# else
# [[ -s .direnv/just-cache-test-files-"$hostname".json ]] || { printf >&2 "%s\n" "ERROR: no cache found"; false; }
# filepathindex=$(cat .direnv/just-cache-test-files-"$hostname".json)
# fi
# if [[ "${#filenames[@]}" -eq 0 ]]; then
# filenames=$(
# set +e
# jq <<<"$filepathindex" 'to_entries[] | .value | to_entries[] | .value' -r \
# | fzf --height=50% --reverse --multi -d$'\t' --with-nth 2
# )
# [[ -n "$selection" ]]
# fi
# # jq <<<"$filepathindex" . ; false
# filepathindex_inverse=$(
# jq <<<"$filepathindex" 'with_entries( .key as $attr | .value | to_entries[] | {key: .value.target, value: (.value + {attr: $attr, key})} )' -c
# )
# # jq <<<"$filepathindex_inverse" . ; false
# # jq <<<"$filepathindex" 'to_entries[] | .key as $attr | .value | to_entries[] | @sh "\(.value) \($attr).\("\""+.key+"\"")"' -r
# nix_expr=$(
# printf "%s\n" 'pkgs.writeScript "do" ('
# printf '"%s\\n" +\n' '#!${pkgs.runtimeShell}'
# printf '"%s\\n" +\n' 'set -euo pipefail'
# printf '"%s\\n" +\n' 'sudo : && SUDO=sudo || SUDO=:'
# printf "%s\n" "${filenames[@]}" |
# jq -sR --argjson index "$filepathindex_inverse" '
# split("\n") | map(select(.==""|not) | $index[.] ) | group_by(.attr) | map(
# " (let cfg = \(.[0].attr); in '"''"'" + (map(
# if .target | startswith("/etc/") then
# if .mode == "symlink" and false then "
# $SUDO ln -sfn ${cfg.\"\(.key)\".source} \(.target | @sh )
# " else "
# $SUDO rm -rf \(.target | @sh )
# $SUDO cp -a ${cfg.\"\(.key)\".source} \(.target | @sh )
# $SUDO chown -R ${toString cfg.\"\(.key)\".uid}:${toString cfg.\"\(.key)\".gid} \(.target | @sh )
# $SUDO chmod -R ${toString cfg.\"\(.key)\".uid}:${toString cfg.\"\(.key)\".gid} \(.target | @sh )
# # TODO: cfg.\"\(.key)\".user
# # TODO: cfg.\"\(.key)\".group
# " end
# else
# if .recursive then
# "${lib.getExe pkgs.lndir} -silent ${cfg.\"\(.key)\".source} \(.target | @sh )\n"
# else
# "ln -sfn ${cfg.\"\(.key)\".source} \(.target | @sh )\n"
# end
# end
# ) | join("")) + "'"''"')"
# ) | join(" + \n")
# ' -r
# printf "%s\n" ')'
# )
# # printf "%s\n" "$nix_expr" ; false
# flake=$(nix flake archive . --json | jq .path -r)
# nix build --impure --expr "with (builtins.getFlake ''$flake''); let inherit (nixosConfigurations.\"$hostname\") pkgs; in $nix_expr" --show-trace
# false
# # TODO: run the result
push hostname=`just _a_host` cmd=`gum choose test switch boot --header "Select mode..."`:
nixos-rebuild build --flake .#{{hostname}}
@echo pushing...
NIX_NO_NOM=1 NIX_SSHOPTS="-tt" nixos-rebuild {{cmd}} --flake .#{{hostname}} --use-remote-sudo --target-host $(nix eval .#nixosReports.{{hostname}}.fqdn --json | jq . -r) --use-substitutes
inspect:
nix run -- nixpkgs#nix-inspect -p .
inspect-config host=`just _a_host` prefix="":
nix run -- nixpkgs#nix-inspect -e '(builtins.getFlake "'"$PWD"'").nixosConfigurations."{{host}}".config{{ if prefix == "" { "" } else { "." + prefix } }}'
_nixos_attrnames:
#!/usr/bin/env -S bash -euo pipefail
hostname=$(hostname)
cachefile=.direnv/just-cache-nixos-attrnames.txt
if [[ flake.nix -nt "$cachefile" ]]; then
hostnames=$(nix eval .#nixosConfigurations --apply builtins.attrNames --json 2>/dev/null | jq '.[]' -r)
if [[ "$(grep <<<"$hostnames" -Fx "$hostname" | wc -l)" -eq 1 ]]; then
hostnames="$(printf "%s\n" "$hostname"; grep <<<"$hostnames" -v "^$hostname$")"
fi
if [[ "$UID" -ne 0 ]]; then
mkdir -p .direnv/
cat <<<"$hostnames" >"$cachefile"
fi
else
hostnames="$(cat $cachefile)"
fi
current_remote=$(just remote-current)
if [[ -n "$current_remote" && "$current_remote" != "$hostname" && "$(grep <<<"$hostnames" -Fx "$current_remote" | wc -l)" -eq 1 ]]; then
head -n1 <<<"$hostnames"
printf "%s\n" "$current_remote"
tail -n+2 <<<"$hostnames" | grep -vFx "$current_remote"
else
printf "%s\n" "$hostnames"
fi
@_a_host:
nix eval .#nixosConfigurations --apply builtins.attrNames --json 2>/dev/null | jq '.[]' -r | gum filter --placeholder "Pick a host..."
# just _nixos_attrnames | gum filter --placeholder "Pick a host..."
# just _nixos_attrnames | fzf --reverse
just _nixos_attrnames | fzf
@_some_hosts:
# just _nixos_attrnames | gum filter --placeholder "Pick a host..." --no-limit
# just _nixos_attrnames | fzf --reverse --multi
just _nixos_attrnames | fzf --multi
_nixos_fqdns:
#!/usr/bin/env -S bash -euo pipefail
cachefile=.direnv/just-cache-nixos-fqdns.json
if [[ flake.nix -nt "$cachefile" ]]; then
mkdir -p .direnv/
fqdns=$(nix eval .#nixosConfigurations --apply 'builtins.mapAttrs (_: x: x.config.networking.fqdn)' --json 2>/dev/null)
if [[ "$UID" -ne 0 ]]; then
cat <<<"$fqdns" >"$cachefile"
fi
else
fqdns=$( cat "$cachefile" )
fi
just _nixos_attrnames | jq -R --argjson fqdns "$fqdns" '$fqdns[.]' -r
@_a_fqdn:
# just _nixos_fqdns | gum filter --placeholder "Pick a host..."
# just _nixos_fqdns | fzf --reverse
just _nixos_fqdns | fzf
@_some_fqdns:
# just _nixos_fqdns | gum filter --placeholder "Pick a host..." --no-limit
# just _nixos_fqdns | fzf --reverse --multi
just _nixos_fqdns | fzf --multi
@remote-current:
>&2 echo Current remote: $(remote-host)
# remote-host # slow
test ! -s .remote.toml || \
printf "%s\n" "$(tomlq <.remote.toml '.hosts | to_entries[] | select(.value.default==true) | .value.host' -r)"
@remote-list:
tomlq <.remote.toml '.hosts | to_entries[] | "remote-set \(.key+1) # -> \(.value.host)"' -r
@_a-remote-label:
@remote-set remote=`just remote-current >&2 && just _a_remote_label`:
remote-set "{{remote}}"
motd:
#!/usr/bin/env -S bash -euo pipefail
printf "%s\n" "Current remote: $(just remote-current)"
just remote-list
printf "\n"
todos=$(rg 'TODO' | wc -l)
if [[ "$todos" -gt 10 ]]; then
printf "%s\n" "There are $todos 'TODO's"
fi
sops-pubkey-user:
#!/usr/bin/env -S bash -euo pipefail
keyfile="${XDG_CONFIG_HOME:-"$HOME"/.config}"/sops/age/keys.txt
if [[ ! -s "$keyfile" ]]; then
gum confirm "Generate a new age key at $(hostname):$keyfile?" # otherwise error
(
set -x
mkdir -p "$(dirname "$keyfile")"
age-keygen -o "$keyfile" >/dev/null
)
fi
age-keygen -y "$keyfile"
sops-pubkey-system:
#!/usr/bin/env -S bash -euo pipefail
ssh-to-age </etc/ssh/ssh_host_ed25519_key.pub
# ===== helpers =====
@_a_remote_label:
just remote-list | gum filter --placeholder "Pick a remote..." | cut -d' ' -f2
@_a-remote-fqdn:
@_some_remote_labels:
just remote-list | gum filter --placeholder "Pick remotes..." --no-limit | cut -d' ' -f2
@_some_remote_label_names:
just remote-list | gum filter --placeholder "Pick remotes..." --no-limit | tr ' ' '\t' | cut -f2,5
@_a_remote_fqdn:
just remote-list | gum filter --placeholder "Pick a remote..." | cut -d' ' -f5-
@remote-set remote=`just remote-current && just _a-remote-label`:
remote-set {{remote}}
@_some_remote_fqdns:
just remote-list | gum filter --placeholder "Pick remote..." --no-limit | cut -d' ' -f5-
_remote_ensure $hostname=`just _a_fqdn`:
#!/usr/bin/env -S bash -euo pipefail
if test ! -s .remote.toml; then
remote-init "$hostname"
elif tomlq <.remote.toml '.hosts | to_entries[] |.value.host' -r | grep -q "$hostname"; then
true
else
remote-add "$hostname"
fi
@_remote_label_from_fqdn hostname=`just _a_fqdn`:
tomlq <.remote.toml '.hosts | to_entries[] | select(.value.host == "{{ hostname }}") | .key+1' -r
remote-mprocs *cmd:
#!/usr/bin/env -S bash -euo pipefail
declare -a cmd=("$@")
if [[ "${#cmd[@]}" -eq 0 ]]; then
cmd=($(just --summary --unsorted | xargs printf "just %s\n" | gum filter --placeholder "Pick a recipie..."))
[[ "${#cmd[@]}" -gt 0 ]]
fi
escaped_cmd="$(printf " %q" "${cmd[@]}" | cut -c2-)"
declare -a labels=()
declare -a names=()
label_names=$(just _some_remote_label_names | grep .)
readarray -td $'\n' labels < <( cut -f1 <<<"$label_names" )
readarray -td $'\n' names < <( cut -f2 <<<"$label_names" )
# printf "%s\n" "${label_names[@]}"; exit # DEBUG
# printf "%s\n" "${labels[@]}"; exit # DEBUG
# printf "%s\n" "${names[@]}"; exit # DEBUG
readarray -td $'\n' commands <<<"$(
# # TODO: when tmux exits the output is cleared
# printf "tmux new \"remote --label=%q ${escaped_cmd//%/%%} ; read\" \; set-option destroy-unattached\n" "${labels[@]}"
printf "remote --label=%q \"${escaped_cmd//%/%%}\"\n" "${labels[@]}"
)"
# mprocs --names "$(IFS=','; printf "%s" "${names[*]}")" "${commands[@]}"
mprocs --names "$(IFS=','; printf "%s" "${names[*]}")" "${commands[@]}" --on-all-finished '{c: quit-or-ask}'
@remote-mprocs-init +$cmd=`printf "just %s\n" $(just --summary --unsorted) | gum filter --placeholder "Pick a recipie..."`:
just _some_fqdns | xe -s 'just _remote_ensure "$1"; just _remote_label_from_fqdn "$1"' | sed -E 's/(.*)/remote --label="\1" "env NIX_NO_NOM=1 $cmd"/g' | xargs -d'\n' mprocs
# TODO: support multiple labels, run in tmux
remote label=`just _a-remote-label` cmd=`printf "just %s\n" $(just --summary --unsorted) | gum filter --placeholder "Pick a recipie..."`:
remote --label={{label}} {{cmd}}
#remote label=`just _a_remote_label` cmd=`printf "just %s\n" $(just --summary --unsorted) | gum filter --placeholder "Pick a recipie..."`:
# remote --label={{label}} {{cmd}}
# TODO: packaged as nix-web
@gorgon:
# https://codeberg.org/gorgon/gorgon/src/branch/main/nix-web
# https://discourse.nixos.org/t/a-web-ui-for-the-nix-store-early-beta/35762
nix run 'git+https://codeberg.org/gorgon/gorgon#nix-web'
# nix run 'git+https://codeberg.org/gorgon/gorgon#nix-web'
nix run nixpkgs#nix-web
+94
View File
@@ -0,0 +1,94 @@
{ inputs }:
let
nlib = inputs.nixpkgs-edge.lib;
ellipsis =
maxlen: take: str:
if builtins.stringLength str > maxlen then builtins.substring 0 take str + "..." else str;
denix =
str:
builtins.concatStringsSep "/nix/store/..." (
builtins.filter builtins.isString (builtins.split "(/nix/store/[^ /-]+.?)" str)
);
# make a pretty summary of a lib.nixosSystem
mkNixosConfigSummary =
nixosSystem:
let
cfg = nixosSystem.config;
inherit (nixosSystem) pkgs;
inherit (pkgs) lib;
in
{
system =
if pkgs.stdenv.hostPlatform.system == pkgs.stdenv.buildPlatform.system then
pkgs.stdenv.hostPlatform.system
else
{
# inherit (pkgs.stdenv) hostPlatform buildPlatform;
hostPlatform = pkgs.stdenv.hostPlatform.system;
buildPlatform = pkgs.stdenv.buildPlatform.system;
};
inherit (cfg.boot.binfmt) emulatedSystems;
inherit (cfg.networking) hostName fqdn search;
inherit (cfg.networking.firewall) allowedTCPPorts allowedUDPPorts;
buildMachines = lib.pipe cfg.nix.buildMachines [
(map (buildMachine: "${buildMachine.protocol}:${buildMachine.sshUser}@${buildMachine.hostName}"))
(lib.sort (a: b: a < b))
];
users = lib.pipe cfg.users.users [
(lib.filterAttrs (uname: user: user.isNormalUser || user.openssh.authorizedKeys.keys != [ ]))
(lib.mapAttrs (
uname: user: {
inherit (user) home;
authorizedKeys = lib.sort (a: b: a < b) (
lib.forEach user.openssh.authorizedKeys.keys (
key:
lib.pipe key [
(lib.splitString " ")
(map denix)
(map (ellipsis 60 12))
(lib.concatStringsSep " ")
]
)
);
}
))
];
nix-system-features = cfg.nix.settings.system-features;
bootloader =
if cfg.boot.loader.grub.enable then
"grub"
else if cfg.boot.loader.systemd-boot.enable then
"systemd-boot"
else if cfg.boot.isContainer then
"container"
else
null;
mounts =
lib.pipe cfg.fileSystems [
(lib.filterAttrs (mount: fs: fs.fsType != "nfs")) # spammy
(lib.mapAttrs (mount: fs: "${fs.fsType}://${fs.device}"))
]
// lib.pipe cfg.swapDevices [
(lib.map (s: s.device or s.label))
(
sx:
lib.optionalAttrs (sx != [ ]) {
swap = if lib.length sx == 1 then lib.head sx else sx;
}
)
];
}
// lib.optionalAttrs cfg.services.nginx.enable {
nginx-vhosts = lib.pipe cfg.services.nginx.virtualHosts [
(lib.filterAttrs (domain: vhost: vhost == "_"))
(lib.mapAttrs (domain: vhost: vhost.serverAliases or [ ]))
];
};
in
{
inherit mkNixosConfigSummary;
}
@@ -0,0 +1,316 @@
<?xml version="1.0" encoding="UTF-8"?>
<gamecontroller configversion="19" appversion="3.4.0">
<!--The SDL name for a joystick is included for informational purposes only.-->
<sdlname>Atari Xbox 360 Game Controller</sdlname>
<!--The Unique ID for a joystick is included for informational purposes only.-->
<uniqueID>030081b85e0400008e020000010100001118654</uniqueID>
<profilename>Xbox Generic</profilename>
<stickAxisAssociation index="2" xAxis="3" yAxis="4"/>
<stickAxisAssociation index="1" xAxis="1" yAxis="2"/>
<vdpadButtonAssociations index="1">
<vdpadButtonAssociation axis="0" button="12" direction="1"/>
<vdpadButtonAssociation axis="0" button="13" direction="4"/>
<vdpadButtonAssociation axis="0" button="14" direction="8"/>
<vdpadButtonAssociation axis="0" button="15" direction="2"/>
</vdpadButtonAssociations>
<names>
<controlstickname index="2">R Stick</controlstickname>
<controlstickname index="1">L Stick</controlstickname>
</names>
<sets>
<set index="1">
<stick index="2">
<stickbutton index="8">
<wheelspeedx>70</wheelspeedx>
<wheelspeedy>70</wheelspeedy>
</stickbutton>
<stickbutton index="1">
<wheelspeedx>70</wheelspeedx>
<wheelspeedy>70</wheelspeedy>
<slots>
<slot>
<code>4</code>
<mode>mousebutton</mode>
</slot>
</slots>
</stickbutton>
<stickbutton index="3">
<wheelspeedx>70</wheelspeedx>
<wheelspeedy>70</wheelspeedy>
<slots>
<slot>
<code>7</code>
<mode>mousebutton</mode>
</slot>
</slots>
</stickbutton>
<stickbutton index="2">
<wheelspeedx>70</wheelspeedx>
<wheelspeedy>70</wheelspeedy>
</stickbutton>
<stickbutton index="5">
<wheelspeedx>70</wheelspeedx>
<wheelspeedy>70</wheelspeedy>
<slots>
<slot>
<code>5</code>
<mode>mousebutton</mode>
</slot>
</slots>
</stickbutton>
<stickbutton index="4">
<wheelspeedx>70</wheelspeedx>
<wheelspeedy>70</wheelspeedy>
</stickbutton>
<stickbutton index="7">
<wheelspeedx>70</wheelspeedx>
<wheelspeedy>70</wheelspeedy>
<slots>
<slot>
<code>6</code>
<mode>mousebutton</mode>
</slot>
</slots>
</stickbutton>
<stickbutton index="6">
<wheelspeedx>70</wheelspeedx>
<wheelspeedy>70</wheelspeedy>
</stickbutton>
</stick>
<stick index="1">
<deadZone>5628</deadZone>
<maxZone>31629</maxZone>
<diagonalRange>90</diagonalRange>
<squareStick>55</squareStick>
<stickbutton index="8">
<mousespeedx>135</mousespeedx>
<mousespeedy>135</mousespeedy>
</stickbutton>
<stickbutton index="1">
<mousespeedx>135</mousespeedx>
<mousespeedy>135</mousespeedy>
<slots>
<slot>
<code>1</code>
<mode>mousemovement</mode>
</slot>
</slots>
</stickbutton>
<stickbutton index="3">
<mousespeedx>135</mousespeedx>
<mousespeedy>135</mousespeedy>
<slots>
<slot>
<code>4</code>
<mode>mousemovement</mode>
</slot>
</slots>
</stickbutton>
<stickbutton index="2">
<mousespeedx>135</mousespeedx>
<mousespeedy>135</mousespeedy>
</stickbutton>
<stickbutton index="5">
<mousespeedx>135</mousespeedx>
<mousespeedy>135</mousespeedy>
<slots>
<slot>
<code>2</code>
<mode>mousemovement</mode>
</slot>
</slots>
</stickbutton>
<stickbutton index="4">
<mousespeedx>135</mousespeedx>
<mousespeedy>135</mousespeedy>
</stickbutton>
<stickbutton index="7">
<mousespeedx>135</mousespeedx>
<mousespeedy>135</mousespeedy>
<slots>
<slot>
<code>3</code>
<mode>mousemovement</mode>
</slot>
</slots>
</stickbutton>
<stickbutton index="6">
<mousespeedx>135</mousespeedx>
<mousespeedy>135</mousespeedy>
</stickbutton>
</stick>
<dpad index="1">
<mode>four-way</mode>
<dpadbutton index="8">
<slots>
<slot>
<code>0x1000012</code>
<mode>keyboard</mode>
</slot>
</slots>
</dpadbutton>
<dpadbutton index="1">
<slots>
<slot>
<code>0x1000013</code>
<mode>keyboard</mode>
</slot>
</slots>
</dpadbutton>
<dpadbutton index="2">
<slots>
<slot>
<code>0x1000014</code>
<mode>keyboard</mode>
</slot>
</slots>
</dpadbutton>
<dpadbutton index="4">
<slots>
<slot>
<code>0x1000015</code>
<mode>keyboard</mode>
</slot>
</slots>
</dpadbutton>
</dpad>
<trigger index="6">
<deadZone>2000</deadZone>
<throttle>positivehalf</throttle>
<triggerbutton index="2">
<slots>
<slot>
<code>0x1000034</code>
<mode>keyboard</mode>
</slot>
</slots>
</triggerbutton>
</trigger>
<trigger index="5">
<deadZone>2000</deadZone>
<throttle>positivehalf</throttle>
<triggerbutton index="2">
<slots>
<slot>
<code>0x1000000</code>
<mode>keyboard</mode>
</slot>
</slots>
</triggerbutton>
</trigger>
<button index="2">
<slots>
<slot>
<code>3</code>
<mode>mousebutton</mode>
</slot>
</slots>
</button>
<button index="1">
<slots>
<slot>
<code>1</code>
<mode>mousebutton</mode>
</slot>
</slots>
</button>
<button index="4">
<slots>
<slot>
<code>0x1000021</code>
<mode>keyboard</mode>
</slot>
<slot>
<code>0x57</code>
<mode>keyboard</mode>
</slot>
</slots>
</button>
<button index="3">
<slots>
<slot>
<code>2</code>
<mode>mousebutton</mode>
</slot>
</slots>
</button>
<button index="6">
<slots>
<slot>
<code>0x4d</code>
<mode>keyboard</mode>
</slot>
</slots>
</button>
<button index="5">
<slots>
<slot>
<code>0x1000021</code>
<mode>keyboard</mode>
</slot>
<slot>
<code>0x2d</code>
<mode>keyboard</mode>
</slot>
</slots>
</button>
<button index="8">
<slots>
<slot>
<code>0x1000004</code>
<mode>keyboard</mode>
</slot>
</slots>
</button>
<button index="7">
<slots>
<slot>
<code>0x1000021</code>
<mode>keyboard</mode>
</slot>
<slot>
<code>0x2b</code>
<mode>keyboard</mode>
</slot>
</slots>
</button>
<button index="10">
<slots>
<slot>
<code>0x1000021</code>
<mode>keyboard</mode>
</slot>
<slot>
<code>0x1000020</code>
<mode>keyboard</mode>
</slot>
<slot>
<code>0x1000001</code>
<mode>keyboard</mode>
</slot>
</slots>
</button>
<button index="9">
<toggle>true</toggle>
<slots>
<slot>
<code>0x1000020</code>
<mode>keyboard</mode>
</slot>
</slots>
</button>
<button index="11">
<slots>
<slot>
<code>0x1000021</code>
<mode>keyboard</mode>
</slot>
<slot>
<code>0x1000001</code>
<mode>keyboard</mode>
</slot>
</slots>
</button>
</set>
</sets>
</gamecontroller>
+32
View File
@@ -0,0 +1,32 @@
prev: final:
let
inherit (prev) lib;
# TODO: get faketty to work, ${expect}/bin/unbuffer is bad
mkNomWrapper =
pkg:
prev.writeScriptBin (pkg.meta.mainProgram or (lib.getName pkg)) ''
if test -t 1 && test -z "''${NIX_NO_NOM-}"; then
exec ${lib.getExe pkg} -L "$@" |& ${lib.getExe prev.nix-output-monitor}
else
exec ${lib.getExe pkg} -L "$@"
fi
'';
in
{
pbsds = lib.makeScope prev.newScope (pbsds: {
# nom-nixos-rebuild = mkNomWrapper prev.nixos-rebuild;
nom-nixos-rebuild-ng = mkNomWrapper prev.nixos-rebuild-ng;
nom-home-manager = mkNomWrapper prev.home-manager;
nom-system-manager = mkNomWrapper prev.system-manager;
# TODO: make these automatic, maybe use by-name?
v4l2-play = prev.callPackage ./../pkgs/v4l2-play { };
device-mon = prev.callPackage ./../pkgs/device-mon { };
zluda-run = prev.callPackage ./../pkgs/zluda-run.nix { };
# TODO: move to separate flake, maintain with CI
#pdoc-docs = (prev.callPackage ./../pkgs/pdocs.nix {}).pdocs;
#pdoc3-docs = (prev.callPackage ./../pkgs/pdocs.nix {}).pdocs3;
});
}
+1 -1
View File
@@ -20,7 +20,7 @@ let
in
pkgs.runCommandNoCC "nspawn-setup-${hostname}.sh" {
pkgs.runCommand "nspawn-setup-${hostname}.sh" {
nativeBuildInputs = with pkgs; [ makeself ];
} ''
mkdir -p archive/
+5 -5
View File
@@ -6,19 +6,19 @@ NSPAWN_NAME=nixos-@hostname@
TARBALL=./nixos-@hostname@.tar.xz
test $(id -u) -eq 0 || {
>&2 echo you must run this as root
echo >&2 you must run this as root
exit 1
}
if ! >/dev/null command -v systemd-nspawn; then
>&2 echo "systemd-nspawn" not found in PATH
>&2 echo consider installing 'systemd-container'
echo >&2 "systemd-nspawn" not found in PATH
echo >&2 consider installing 'systemd-container'
exit 1
fi
if ! >/dev/null command -v machinectl; then
>&2 echo "machinectl" not found in PATH
>&2 echo consider installing 'systemd-container'
echo >&2 "machinectl" not found in PATH
echo >&2 consider installing 'systemd-container'
exit 1
fi
+59
View File
@@ -0,0 +1,59 @@
{
lib,
pkgs,
}:
let
runtimeInputs = with pkgs; [
ffmpeg
v4l-utils
alsa-utils
(pkgs.zenity or pkgs.gnome.zenity)
];
in
pkgs.stdenvNoCC.mkDerivation (finalAttrs: {
name = "v4l2-play";
meta.mainProgram = "v4l2-play";
nativeBuildInputs = with pkgs; [
makeWrapper
copyDesktopItems
];
dontUnpack = true;
dontBuild = true;
dontConfigure = true;
installPhase = ''
runHook preInstall
mkdir -p $out/bin
cp ${./script.sh} $out/bin/v4l2-play
chmod +wx $out/bin/v4l2-play
substituteInPlace $out/bin/v4l2-play \
--replace-fail \
"#!/usr/bin/env nix-shell" \
"#!${pkgs.runtimeShell}"
wrapProgram $out/bin/v4l2-play \
--prefix PATH : ${lib.makeBinPath runtimeInputs}
runHook postInstall
'';
desktopItems = pkgs.makeDesktopItem {
name = "v4l2-play";
desktopName = "View video device";
exec = "v4l2-play";
keywords = [
"elgato"
"passthrough"
"v4l2"
"video4linux2"
"capture card"
];
};
})
+96
View File
@@ -0,0 +1,96 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p ffmpeg v4l-utils alsa-utils gnome.zenity
set -euo pipefail
video_devices=()
audio_devices=()
tab=$(printf '\t')
current_name=
while IFS= read line; do
if ! [[ $line == "$tab"* ]]; then
current_name="$line"
else
video_devices+=("$(echo "$line - $current_name" | xargs)")
fi
done < <( v4l2-ctl --list-devices )
printf "%s\n" "${video_devices[@]}"
current_name=
current_device=
current_subdevice=
while IFS= read line; do
if ! [[ $line == " "* ]]; then
current_name=$(echo $line | cut -d: -f2- | cut -c2-)
current_device=$(echo $line | grep -E 'card [0-9]+:' -o | tr -dc '[:digit:]' || true)
elif [[ $line == " Subdevice #"* ]]; then
current_subdevice=$(echo $line | grep -E 'Subdevice #[0-9]+:' -o | tr -dc '[:digit:]' || true)
#audio_devices+=("$(echo "$line - $current_name" | xargs)")
audio_devices+=("hw:$current_device,$current_subdevice - $current_name")
else
:
fi
done < <( arecord -l )
printf "%s\n" "${audio_devices[@]}"
zenity_cells=()
maybe_true=TRUE
for video_device in "${video_devices[@]}"; do
if grep <<<"$video_device" -q Elgato; then
zenity_cells+=("$maybe_true")
maybe_true=FALSE
else
zenity_cells+=(FALSE)
fi
zenity_cells+=("$video_device")
done
selected_video_device=$(
zenity --list --text="Which video device" --radiolist --column=Select --column=Device "${zenity_cells[@]}" \
| cut -d' ' -f1
)
zenity_cells=()
maybe_true=TRUE
for audio_device in "${audio_devices[@]}"; do
if grep <<<"$audio_device" -q Elgato; then
zenity_cells+=("$maybe_true")
maybe_true=FALSE
else
zenity_cells+=(FALSE)
fi
zenity_cells+=("$audio_device")
done
selected_audio_device=$(
zenity --list --text="Which audio device" --radiolist --column=Select --column=Device "${zenity_cells[@]}" \
| cut -d' ' -f1
)
# TODO:
# ffmpeg -f video4linux2 -list_formats all -i /dev/video3
# [video4linux2,v4l2 @ 0x23ed7140] Raw : yuyv422 : YUYV 4:2:2 : 1920x1080 1600x1200 1280x720 720x576 720x480 640x480
# [video4linux2,v4l2 @ 0x23ed7140] Raw : nv12 : Y/UV 4:2:0 : 3840x2160 2560x1440 1920x1080 1600x1200 1280x720 720x576 720x480 640x480
ffmpeg_common=(
-fflags nobuffer
-flags nobuffer
-flags low_delay
-strict experimental
)
ffmpeg_args=(
-f v4l2
-input_format nv12
-video_size 1920x1080
-framerate 60
#-i /dev/video3
-i "$selected_video_device"
-f alsa
#-i hw:5,0
-i "$selected_audio_device"
)
set -x
ffmpeg "${ffmpeg_common[@]}" "${ffmpeg_args[@]}" -c copy -f nut pipe: | ffplay -framedrop "${ffmpeg_common[@]}" -f nut -i pipe:
+15
View File
@@ -0,0 +1,15 @@
{
lib,
writeShellScriptBin,
zluda,
}:
writeShellScriptBin "zluda-run" ''
export LD_LIBRARY_PATH="${lib.getLib zluda}/lib''${LD_LIBRARY_PATH:+":''$LD_LIBRARY_PATH"}"
if [[ -v NIX_LD_LIBRARY_PATH ]]; then
export NIX_LD_LIBRARY_PATH="${lib.getLib zluda}/lib''${NIX_LD_LIBRARY_PATH:+":''$NIX_LD_LIBRARY_PATH"}"
fi
# exec -a "$0" "$@"
exec "$@"
''
+81 -11
View File
@@ -1,5 +1,10 @@
{ config, pkgs, lib, inputs, ... }:
let
inherit (config.virtualisation) isVmVariant;
inputUrls = lib.mapAttrs (input: value: value.url) (import (inputs.self + "/flake.nix")).inputs;
in
# TODO: make /etc/nixos a symlink to the in-store flake? - bad idea, horrible error recovery
# TODO: make /etc/nixos a writeable checkout of repo?
@@ -8,7 +13,56 @@
system.autoUpgrade.enable = true;
#system.autoUpgrade.allowReboot = true; # reboot after a kernel (module) or initrd upgrade, consider also setting `rebootWindow`
environment.etc."current-system-flake".source = inputs.self; # the plan was to allow me to locate the new flake.lock, but alas https://github.com/NixOS/nix/issues/6895
environment.etc."current-system-flake".enable = !isVmVariant; # makes the outPath depend on flake src
environment.etc."current-system-flake".source = inputs.self;
# workaround for https://github.com/NixOS/nix/issues/6895
environment.etc."current-system-flake-inputs.json".enable = !isVmVariant; # makes the outPath depend on flake src
environment.etc."current-system-flake-inputs.json".source
= pkgs.writers.writeJSON "flake-inputs.json" (
lib.flip lib.mapAttrs inputs (name: input:
# inputs.*.sourceInfo sans outPath, since writeJSON will otherwise serialize sourceInfo like derivation
lib.filterAttrs (key: val: !builtins.elem key ["outPath"]) (input.sourceInfo or {})
// { store-path = builtins.unsafeDiscardStringContext input.outPath; } # use this line instead if you want to retain a store reference to the flake inputs, but don't make it a part of the closure
# // { store-path = input.outPath; } # use this line instead if you want to retain a store reference to the flake inputs
)
);
environment.etc."current-system-flake-inputs-overrides.sh".enable = !isVmVariant;
environment.etc."current-system-flake-inputs-overrides.sh".source = pkgs.writeShellScript "with-input-overrides.sh" ''
if [[ $# -eq 0 ]]; then
echo >&2 "Example usage: $0 nix flake update --output-lock-file flake.lock"
exit 1
fi
set -euo pipefail
declare -a cmd_args=()
readarray -td $'\0' cmd_args < <(
${lib.getExe pkgs.jq} --raw-output0 \
</etc/current-system-flake-inputs.json \
--argjson inputUrls "$(
nix eval --file /etc/current-system-flake/flake.nix \
--apply 'x: builtins.mapAttrs (input: value: value.url) x.inputs' --json
)" '
to_entries[] |
select(.key == "self" | not) |
select(.value.rev) |
select($inputUrls[.key]) |
[
"--override-input",
.key,
(
if .value.rev
then (if $inputUrls[.key] | startswith("github:")
then ($inputUrls[.key] | split("/") | .[:2] | join("/")) + "/\(.value.rev)"
else $inputUrls[.key] + "?rev=\(.value.rev | @uri)"
end)
else .value["store-path"]
end
)
][]
'
)
exec "$@" "''${cmd_args[@]}"
'';
#system.autoUpgrade.flake = inputs.self.outPath; # a nix store path
#system.autoUpgrade.flake = "github:pbsds/nix-config"; # TODO: use this instead?
@@ -18,19 +72,35 @@
system.autoUpgrade.flags = [
"-L" # print build logs
"--no-write-lock-file" # no write new flakelock, as the in-store flake is read-only
"--option" "access-tokens" "" # don't risk expired github tokens blocking upgrade
# fetch new inputs
#"--recreate-lock-file" # update all
"--update-input" "nixpkgs-edge" "--update-input" "home-manager-edge"
"--update-input" "nixpkgs-2405" "--update-input" "home-manager-2405"
"--update-input" "nixpkgs-2311" "--update-input" "home-manager-2311"
"--update-input" "nix-index-database"
"--update-input" "nixos-hardware"
];
"--refresh"
#"--update-input" "nixpkgs-edge" # deprecated in nix 2.22, removed in lix 2.90
# "--override-input" "nixpkgs-edge" "github:NixOS/nixpkgs/nixos-unstable"
] ++ (lib.pipe inputUrls [
# TODO: i keep forgetting to update this, perhaps use a blacklist instead?
(lib.filterAttrs (key: _: builtins.elem key [
"nixpkgs-edge"
"nixpkgs-2605"
# "nixpkgs-2511"
# "nixpkgs-2505"
# "nixpkgs-2411"
"home-manager-edge"
"home-manager-2605"
# "home-manager-2511"
# "home-manager-2505"
# "home-manager-2411"
"nix-index-database"
"nixos-hardware"
]))
(lib.mapAttrsToList (input: url: ["--override-input" input url]))
lib.concatLists
]);
# lots of "empty" updates
boot.loader.grub.configurationLimit = 15;
boot.loader.systemd-boot.configurationLimit = 15;
boot.loader.raspberryPi.uboot.configurationLimit = 15;
boot.loader.generic-extlinux-compatible.configurationLimit = 15;
boot.loader.grub.configurationLimit = 10;
boot.loader.systemd-boot.configurationLimit = 10;
boot.loader.generic-extlinux-compatible.configurationLimit = 10;
}
@@ -1,4 +1,7 @@
{ config, pkgs, lib, ... }:
lib.mkIf (!config.virtualisation.isVmVariant)
{
# AutoSSH reverse tunnels
+147
View File
@@ -0,0 +1,147 @@
{ config, lib, ... }:
let
notInVM = lib.mkIf (!config.virtualisation.isVmVariant);
inherit (config.networking) hostName;
sopsFile = lib.mkDefault ../../hosts/nixos/${hostName}/secrets.yaml;
in
# 3-2-1 Backup Rule:
# * have 3 separate copies
# * on 2 different media
# * with 1 kept offsite
# # borgbackup vs restic vs kopia vs diplicity
# https://mangohost.net/blog/duplicacy-vs-restic-vs-borg-which-backup-tool-is-right-in-2025/
# https://onidel.com/restic-vs-borgbackup-vs-kopia-2025/
# https://www.reddit.com/r/BorgBackup/comments/v3bwfg/why_should_i_switch_from_restic_to_borg/
# https://www.aarsen.me/posts/2022-02-15-sweet-unattended-backups.html
#
# restic:
# * native s3, go, decent restore, good deduplication, simplicity, decent backup/restore speed, slow prunes on huge repos
# borgbackup:
# * clunky s3 (rclone), python/c, 1 machine per repo, backup goes brr, multiple encryption modes
# kopia:
# * native s3, go, fast restore, restore goes brr, flexible key management, no nixos module
# duplicity:
# * global deduplication, but global job, paid gui
# zrepl:
# * requires zfs on both ends
# TODO: can i make restic backup from a zfs snapshot for atomicity?
# https://www.aarsen.me/posts/2022-02-15-sweet-unattended-backups.html#pulling-it-together
# https://gist.github.com/stackcoder/ccb3b17812ed11700ee83d762b970b98
{
options = {
pbsds.backup.paths = lib.mkOption {
type = with lib.types; listOf str;
default = [ ];
};
};
imports = lib.map notInVM [
# https://search.nixos.org/options?channel=unstable&query=backup
./mysqlBackup.nix
./postgresqlBackup.nix
# ./vaultwarden.nix # services.vaultwarden.backupDir
# ./gitea.nix # services.gitea.dump.enable
# ./forgejo.nix # services.forgejo.dump.enable
# stuff in /var/lib on nox:
# ./transmission.nix
# ./plex.nix
# ./thelounge.nix
];
config = notInVM {
# https://restic.readthedocs.io/en/latest/070_encryption.html#manage-repository-keys
sops.secrets = {
# $ sops --set '["restic_systems_password_meconium"] "'$(pwgen --ambiguous --secure 64 1)'"' hosts/nixos/$(nix eval .#nixosConfigurations --apply builtins.attrNames --json | jq .[] -r | xargs gum choose)/secrets.yaml
restic_systems_password_meconium.sopsFile = sopsFile;
# $ sops --set '["restic_systems_password_panorama"] "'$(pwgen --ambiguous --secure 64 1)'"' hosts/nixos/$(nix eval .#nixosConfigurations --apply builtins.attrNames --json | jq .[] -r | xargs gum choose)/secrets.yaml
restic_systems_password_panorama.sopsFile = sopsFile;
# # https://restic.readthedocs.io/en/latest/040_backup.html#environment-variables
restic_systems_password_s3.sopsFile = sopsFile;
restic_systems_environment_s3.sopsFile = sopsFile;
};
services.restic.backups =
let
shared = {
initialize = true;
# createWrapper = true; # adds a "restic-${name}" wrapper in system path
# TODO: --skip-if-unchanged ?
paths = [ "/var/lib" ] ++ config.pbsds.backup.paths;
# TODO: How should the timer behave on a laptop?
timerConfig.OnCalendar = "hourly";
pruneOpts = [
"--keep-daily 5"
"--keep-weekly 3"
"--keep-monthly 2"
];
};
in
{
"systems-meconium" = shared // {
# repository = "sftp:USER_TODO@noximilien:/mnt/meconium/Backups/restic/system-${hostName}";
repository = "sftp:USER_TODO@noximilien:/mnt/meconium/Backups/restic/systems";
passwordFile = config.sops.secrets.restic_systems_password_meconium.path;
# environmentFile = config.sops.secrets.restic_systems_environment_meconium.path;
};
"systems-panorama" = shared // {
# repository = "sftp:USER_TODO@eple:/mnt/panorama/Backups/restic/system-${hostName}";
repository = "sftp:USER_TODO@eple:/mnt/panorama/Backups/restic/systems";
passwordFile = config.sops.secrets.restic_systems_password_panorama.path;
# environmentFile = config.sops.secrets.restic_systems_environment_panorama.path;
};
# "systems-b2" = shared // {
# repository = "s3:1246890.r2.cloudflarestorage.com/restic-systems";
# passwordFile = config.sops.secrets.restic_systems_password_s3.path;
# environmentFile = config.sops.secrets.restic_systems_environment_s3.path;
# };
};
# backup of user homes
/*
TODO = lib.pip config.users.users [
lib.attrNames
(lib.filter (user: config.users.users.${user}.enable))
(lib.filter (user: config.users.users.${user}.isNormalUser))
# (lib.filter (user: config.users.users.${user}.createHome))
(lib.map (user:
{
# sops.secrets.restic_user_${user}_password_meconium.owner = user;
# sops.secrets.restic_user_${user}_password_meconium.sopsFile = sopsFile;
services.restic.backups."user-${user}" = {
inherit (config.services.restic.backups."system")
initialize
pruneOpts
timerConfig
;
# createWrapper = true; # adds a "restic-${name}" wrapper in system path
inherit user; # the user can see this password, hence we must use per-user restic repositories
passwordFile = config.sops.secrets.restic_user_${user}_password_meconium.path;
# environmentFile = config.sops.secrets.restic_user_${user}_environment_meconium.path;
paths = [ config.users.users.${user}.home ];
repository = "sftp:noximilien/mnt/meconium/Backups/restic/user-${user}";
};
}
))
];
*/
};
}
+24
View File
@@ -0,0 +1,24 @@
{ lib, config, ... }:
let
mkIf = lib.mkIf config.services.mysql.enable;
in
{
pbsds.backup.paths = mkIf [ config.mysqlBackup.location ]; # "/var/backup/postgresql"
services.mysqlBackup = mkIf {
enable = true;
databases = config.services.mysql.ensureDatabases;
# calendar = "*-*-* 01:15:00"; # nightly (default)
# there is now way to select no compression...
# should be trivial to fix ;)
# https://github.com/NixOS/nixpkgs/blob/89c2b2330e733d6cdb5eae7b899326930c2c0648/nixos/modules/services/backup/mysql-backup.nix#L23-L45
# https://github.com/NixOS/nixpkgs/pull/364630
# compressionAlg = "gzip";
# compressionAlg = "xz";
# compressionAlg = "zstd";
# compressionLevel = null;
};
}
@@ -0,0 +1,17 @@
{ lib, config, ... }:
let
mkIf = lib.mkIf config.services.postgresql.enable;
in
{
pbsds.backup.paths = mkIf [ config.postgresqlBackup.location ]; # "/var/backup/postgresql"
services.postgresqlBackup = mkIf {
enable = true;
# databases = [ "foo" ];
backupAll = true; # default if no databases are specified, mutually exclusive
compression = "none"; # Let restic handle the compression, enabling de-duplication
# startAt = "*-*-* 01:15:00"; # nightly (default)
};
}
+4
View File
@@ -0,0 +1,4 @@
# todo
# some "restrict,pty,command=..." ssh authorized_keys bullshit to verify restic, or maybe even just host the REST server?
# see ./hosts/nixos/garp/sftp.nix
+48
View File
@@ -0,0 +1,48 @@
#!/usr/bin/env -S nix eval --json --file
let
caches = {
# lower ?priority=x numbers go first, will fallback to https://.../nix-cache-info if unset, final fallback is the default 0
# https://nix.dev/manual/nix/latest/command-ref/conf-file#conf-substituters
# https://nix.dev/manual/nix/latest/command-ref/conf-file#conf-trusted-public-keys
# https://cache.nixos.org/nix-cache-info (WantMassQuery: 1, priority: 40)
"https://cache.nixos.org/" = [
"cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
];
# https://nix-community.cachix.org/nix-cache-info (WantMassQuery: 1, priority: 41)
"https://nix-community.cachix.org/?priority=50" = [
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
];
# https://wiki.nixos.org/wiki/CUDA
# https://cache.nixos-cuda.org/nix-cache-info (WantMassQuery: 1, Priority: 50)
"https://cache.nixos-cuda.org?priority=45" = [
"cache.nixos-cuda.org:74DUi4Ye579gUqzH4ziL9IyiJBlDpMRn9MBN8oNan9M="
];
# # dead? https://github.com/numtide/nixpkgs-unfree/commit/399ae17bda97a0318a0c5316edb169d097a776dc
# # https://numtide.cachix.org/nix-cache-info (WantMassQuery: 1, priority: 41)
# "https://numtide.cachix.org/?priority=55" = [
# "numtide.cachix.org-1:2ps1kLBUWjxIneOy1Ik6cQjb41X0iXVXeHigGmycPPE="
# ];
# https://flox.dev/blog/flox-the-nix-foundation-and-nvidia-partner-for-cuda/
# https://cache.flox.dev/nix-cache-info (no WantMassQuery, no priority(!!!))
"https://cache.flox.dev/?priority=60" = [
"flox-cache-public-1:7F4OyH7ZCnFhcze3fJdfyXYLQw/aV7GEed86nQ7IsOs="
];
# me!
# "https://cache-proxy.pbsds.net/?priority=41" = [ ];
};
in
{
nix.settings = {
# nixos will add the public binary cache as well with a mkAfter, unless we mkForce these
substituters = builtins.attrNames caches;
trusted-substituters = builtins.attrNames caches;
trusted-public-keys = builtins.concatLists (builtins.attrValues caches);
};
}
+148
View File
@@ -0,0 +1,148 @@
{ config, pkgs, lib, inputs, ... }:
# TODO: split this file into a `base` folder?
{
imports = let ifExists = p: if builtins.pathExists p then p else {}; in [
./../../secrets
./binary-caches.nix
./nix.nix
# ./lix.nix # too slow eval...
./locale-no.nix
./upgrade-diff.nix
./vm-variant.nix
./../mounts/common-nfs.nix
# ./profiles/mounts/common-zfs.nix
];
nixpkgs.overlays = [
(import ./../../overlays/wl-clipboard-timeout.nix)
];
# reaffirm these defaults in case we add mroe via 'programs.nix-required-mounts'
# adding "cuda" or "ccache" overrides the implicit defaults
nix.settings.system-features = lib.mkIf (pkgs.stdenv.hostPlatform.system == "x86_64-linux") ["kvm" "nixos-test"];
# TODO: selectively whitelist
nixpkgs.config.allowUnfree = true;
# nixpkgs.config.allowAliases = false;
# nixpkgs.config.warnAliases = true;
nixpkgs.config.nonfreeLicensing = true; # used by ffmpeg
# TODO:
# nixpkgs.config.allowUnfreePredicate = drv: lib.elem (lib.getName drv) [
# pkgs.davinci-resolve.pname
# pkgs.intel-ocl.pname
# ];
nixpkgs.config.permittedInsecurePackages = [
pkgs.pulsar.name # TODO: remove once electron is bumped
pkgs.zotero.name
pkgs.gitea.name
pkgs.forgejo.name
pkgs.olm.name # TODO: remove
];
# https://consoledonottrack.com/
environment.variables.DO_NOT_TRACK = "1";
environment.systemPackages = lib.mkIf (!config.virtualisation.isVmVariant) ([
pkgs.dmidecode
pkgs.ddrescue
pkgs.gptfdisk
pkgs.ms-sys
pkgs.nvme-cli
pkgs.parted
pkgs.pciutils
pkgs.smartmontools
pkgs.testdisk
pkgs.usbutils
] ++ lib.optionals (lib.elem pkgs.stdenv.hostPlatform [ "x86_64-linux" "aarch64_linux"]) [
pkgs.cage
pkgs.weston
]);
# apply microcode to fix functional and security issues
hardware.enableRedistributableFirmware = true;
hardware.cpu.amd.updateMicrocode = pkgs.stdenv.isx86_64;
hardware.cpu.intel.updateMicrocode = pkgs.stdenv.isx86_64;
# enable kernel same-page merging for improved vm test performance
hardware.ksm.enable = true;
# enable Alt+SysRq+<key> shortcuts
# https://wiki.nixos.org/wiki/Linux_kernel#Enable_SysRq
# boot.kernel.sysctl."kernel.sysrq" = 1;
boot.initrd.systemd.enable = true; # systemd manages initfs boot, systemd-analyse can see what happened
# https://discourse.nixos.org/t/what-to-do-with-a-full-boot-partition/2049
# raised to 15 if auto upgrading by auto-upgrade.nix
boot.loader.grub.configurationLimit = lib.mkDefault 5;
boot.loader.systemd-boot.configurationLimit = lib.mkDefault 5;
boot.loader.generic-extlinux-compatible.configurationLimit = lib.mkDefault 5;
networking.firewall.enable = lib.mkDefault true; # default is true
#networking.nftables.enable = true; # wirewall backend, instead of iptables, breaks docker which uses iptables
#networking.firewall.allowPing = false;
#networking.networkmanager.wifi.backend = "iwd"; # default is wpa_supplicant, iwd doesn't support eduroam
networking.firewall.logRefusedConnections = false; # too spammy, rotates dmesg too quickly
# nixos-rebuild switch --specialisation no-firewall
specialisation = lib.mkIf (config.networking.firewall.enable && !config.virtualisation.isVmVariant) {
no-firewall.configuration = {
networking.firewall.enable = false;
services.fail2ban.enable = false; # requires firewall
};
};
security.sudo.execWheelOnly = true;
services.thermald.enable = lib.all (x: x) [
(pkgs.stdenv.hostPlatform.system == "x86_64-linux")
(!config.boot.isContainer or false)
];
# no acme in build-vm mode:
virtualisation.vmVariant = {
security.acme.defaults.server = "https://127.0.0.1";
security.acme.preliminarySelfsigned = true;
};
# set VM root password in build-vm mode
virtualisation.vmVariant = {
users.users.root.initialPassword = "root";
};
# fix VM networking, disable static IPs
virtualisation.vmVariant = {
networking.interfaces = lib.mkForce {};
networking.defaultGateway = lib.mkForce null;
networking.nameservers = lib.mkForce [];
networking.networkmanager.enable = lib.mkForce false;
networking.useDHCP = lib.mkForce true;
};
# System fonts
# Nice to have when X-forwarding on headless machines
fonts.fontDir.enable = true; # creates /run/current-system/sw/share/X11/fonts
fonts.enableDefaultPackages = true; # dejavu, freefont, gyre, liberation, unifont, noto-fonts-emoji
fonts.packages = with pkgs; [
noto-fonts # includes Cousine
noto-fonts-cjk-sans
noto-fonts-cjk-serif
#noto-fonts-emoji # removed
noto-fonts-color-emoji
#noto-fonts-extra
noto-fonts
];
services.fail2ban = {
ignoreIP = [
# Whitelist some subnets
"192.168.0.0/24" # local
"10.0.0.0/8" # local
"100.64.0.0/10" # tailscale
];
};
}
+31
View File
@@ -0,0 +1,31 @@
{ pkgs, lib, ... }:
# https://lix.systems/add-to-config/
{
nix.package = pkgs.lix;
# this should also affect pkgs.unstable which inherits final.pkgs.overlays
nixpkgs.overlays = [
(final: prev: {
# oc
nixpkgs-review = prev.nixpkgs-review.override {
nix = prev.lix;
};
# pkgs/tools/package-management/lix/default.nix
# https://github.com/NixOS/nixpkgs/blob/master/pkgs/tools/package-management/lix/default.nix
nix-direnv = prev.nix-direnv.override {
nix = prev.lix;
};
nix-update = prev.nix-update.override {
nix = prev.lix;
inherit (prev) nixpkgs-review;
};
})
];
}
+25
View File
@@ -0,0 +1,25 @@
{ lib, ... }: lib.mkMerge [
{
# Time zone and internationalisation properties.
time.timeZone = lib.mkDefault "Europe/Oslo";
i18n.defaultLocale = "en_US.UTF-8";
i18n.extraLocaleSettings.LC_ADDRESS = "nb_NO.UTF-8";
i18n.extraLocaleSettings.LC_IDENTIFICATION = "nb_NO.UTF-8";
i18n.extraLocaleSettings.LC_MEASUREMENT = "nb_NO.UTF-8";
i18n.extraLocaleSettings.LC_MONETARY = "nb_NO.UTF-8";
i18n.extraLocaleSettings.LC_NAME = "nb_NO.UTF-8";
i18n.extraLocaleSettings.LC_NUMERIC = "nb_NO.UTF-8";
i18n.extraLocaleSettings.LC_PAPER = "nb_NO.UTF-8";
i18n.extraLocaleSettings.LC_TELEPHONE = "nb_NO.UTF-8";
i18n.extraLocaleSettings.LC_TIME = "nb_NO.UTF-8";
console.keyMap = "no";
}
(lib.mkIf (lib.versionAtLeast lib.version "24.05") {
services.xserver.xkb.layout = "no";
services.xserver.xkb.variant = "";
})
(lib.mkIf (lib.versionOlder lib.version "24.05") {
services.xserver.layout = "no";
services.xserver.xkbVariant = "";
})
]
+82
View File
@@ -0,0 +1,82 @@
{
config,
pkgs,
lib,
...
}:
{
sops.secrets.nix-access-tokens = { };
sops.secrets.nix-access-tokens-all.mode = "0440";
sops.secrets.nix-access-tokens-all.group = config.users.groups."keys".name;
nix.extraOptions = ''
!include ${config.sops.secrets.nix-access-tokens.path}
!include ${config.sops.secrets.nix-access-tokens-all.path}
'';
# https://nix.dev/manual/nix/stable/command-ref/conf-file.html
# https://nix.dev/manual/nix/latest/command-ref/conf-file.html
# https://docs.lix.systems/manual/lix/stable/command-ref/conf-file.html
nix.settings = {
# === behaviour
experimental-features = [
"nix-command"
"flakes"
# "pipe-operator" # not supported on lix 2.91
];
log-lines = 35;
# keep-going = true;
# === access
#nix.settings.allowed-users = [ "@builders" ]; # TODO: this
allowed-users = [
# default is [ "*" ]
"root"
"@wheel"
];
trusted-users = [
"root"
"@wheel"
];
# === eval and realization
keep-derivations = true; # keep .drv in store, great with nix-diff
max-silent-time = 3600; # kill long-running silent builds
# === substitution
http-connections = 128; # default is 25
max-substitution-jobs = 128; # default is 16
connect-timeout = 5; # timeout in seconds for binary caches
download-attempts = 2; # download attempts, in case a binary cache fails
# fallback = lib.mkDefault true; # fallback to building if a binary cache fails
# === store
#settings.keep-failed = true; # fills up $TMPDIR
auto-optimise-store = true; # deduplicate with hardlinks, expensive. Alternative: nix-store --optimise
min-free = 5 * 1024 * 1024 * 1024; # starts cg
max-free = 20 * 1024 * 1024 * 1024; # condition to end gc triggered by min-free
# should not be needed since https://github.com/NixOS/nixpkgs/pull/383052
system-features =
lib.mkIf
(
pkgs.stdenv.hostPlatform.system == "x86_64-linux"
&& (lib.versionOlder lib.version "25.05")
)
[
"nixos-test"
"big-parallel"
"kvm"
];
};
#nix.optimize.automatic = true; # periodic store optimization, alternative nix.settings.auto-optimise-store
nix.gc = {
automatic = true;
dates = "weekly";
options = lib.mkIf config.system.autoUpgrade.enable "--delete-older-than 15d";
};
}
+31
View File
@@ -0,0 +1,31 @@
{
config,
lib,
pkgs,
...
}:
{
# dix: https://github.com/faukah/dix
# rust based
# module from https://github.com/getchoo/borealis/blob/a35749aa6280fbe4cbe72291bb9c4cc643780c76/modules/nixos/custom/activation-diff.nix
# nvd: https://discourse.nixos.org/t/nvd-simple-nix-nixos-version-diff-tool/12397
# python based
# module from https://github.com/luishfonseca/dotfiles/blob/ab7625ec406b48493eda701911ad1cd017ce5bc1/modules/upgrade-diff.nix
# gated on formatAttr which is set by nixos-generators
system.activationScripts.show-nixos-closure-diff = lib.mkIf ((config.formatAttr or null) == null) {
supportsDryActivation = true;
text =
if pkgs ? dix then
''
${pkgs.dix}/bin/dix /run/current-system "$systemConfig"
''
else
''
${pkgs.nvd}/bin/nvd --nix-bin-dir=${pkgs.nix}/bin diff /run/current-system "$systemConfig"
'';
};
}
+11
View File
@@ -0,0 +1,11 @@
{lib, ... }:
{
options.virtualisation.isVmVariant = lib.mkOption {
type = lib.types.bool;
default = false;
};
# to be used with 'lib.mkIf (!config.virtualisation.isVmVariant)'
config.virtualisation.vmVariant = {
virtualisation.isVmVariant = true;
};
}
-14
View File
@@ -1,14 +0,0 @@
{ pkgs, ... }:
{
# run/build weird binaries
# TODO: somehow make sure this is in sync with remote-builders
boot.binfmt.emulatedSystems = [
#"wasm32-wasi"
#"wasm64-wasi"
#"x86_64-windows"
"aarch64-linux"
"riscv64-linux"
#"x86_64-darwin"
#"aarch64-darwin"
];
}
+74
View File
@@ -0,0 +1,74 @@
{
config,
pkgs,
lib,
...
}:
# serge <3
# TODO: distributed (s)ccache (with redis?)
# TODO: garbage collect this
{
programs.ccache.enable = true;
programs.ccache.owner = "root"; # default
programs.ccache.group = "nixbld"; # default
programs.nix-required-mounts.enable = true;
programs.nix-required-mounts.allowedPatterns."ccache" = {
onFeatures = [
"ccache"
"sccache"
];
paths = [
config.programs.ccache.cacheDir
"/var/cache/sccache" # TODO: upstream?
];
};
nix.settings.system-features = [
"ccache"
"sccache"
];
# can be monitored with `nix-ccache --show-stats`
systemd.tmpfiles.settings."50-ccache" =
let
tmp = rec {
"d" = {
user = config.programs.ccache.owner;
group = config.programs.ccache.group;
mode = "0770";
};
"Z" = d;
};
in
{
"/var/cache/ccache" = tmp;
"/var/cache/sccache" = tmp;
};
# based on https://github.com/NixOS/nixpkgs/blob/d89fc19e405cb2d55ce7cc114356846a0ee5e956/nixos/modules/programs/ccache.nix#L49-L67
security.wrappers."nix-sccache" =
let
cfg = config.programs.ccache;
in
{
inherit (cfg) owner group;
setuid = false;
setgid = true;
source = pkgs.writeScript "nix-sccache.pl" ''
#!${pkgs.perl}/bin/perl
%ENV=( SCCACHE_DIR => '/var/cache/sccache' );
sub untaint {
my $v = shift;
return '--version' if $v eq '-V' || $v eq '--version';
return '-s' if $v eq '-s' || $v eq '--show-stats';
return '--show-adv-stats' if $v eq '--show-adv-stats';
return '-z' if $v eq '-z' || $v eq '--zero-stats';
exec('${lib.getExe pkgs.sccache}', '-h');
}
exec('${lib.getExe pkgs.sccache}', map { untaint $_ } @ARGV);
'';
};
}
View File
+2
View File
@@ -107,6 +107,8 @@ in {
#group = "code.server";
# a nice tool if you don't care about security: https://argon2.online/
# otherwise:
# echo -n 'password' | nix run nixpkgs#libargon2 -- "$(pwgen 20 -n1)" -e
hashedPassword = "$argon2i$v=19$m=16,t=2,p=1$MHh5UGNtU1lWR1UySnhIZw$ITg8U7Gq2CXByuOOnrKVUg"; # hunter2
extraArguments = [
-8
View File
@@ -1,8 +0,0 @@
{ pkgs, ... }:
{
environment.systemPackages = with pkgs; [
gparted
];
}
+26
View File
@@ -0,0 +1,26 @@
{ config, pkgs, ... }:
{
# invasive as fuck
# https://github.com/NixOS/nixpkgs/blob/89c2b2330e733d6cdb5eae7b899326930c2c0648/nixos/modules/programs/firefox.nix#L13-L20
# programs.firefox.enable = true;
environment.systemPackages = [
# instead of programs.firefox.enable
(if !config.services.gnome.gnome-browser-connector.enable
then pkgs.firefox
else pkgs.firefox.override {
nativeMessagingHosts = [ pkgs.gnome-browser-connector ];
}
)
pkgs.gparted
];
# used by gparted?
boot.supportedFilesystems.ntfs = true;
boot.supportedFilesystems.vfat = true;
boot.supportedFilesystems.xfs = true;
boot.supportedFilesystems.exfat = true;
}
+95 -30
View File
@@ -1,29 +1,84 @@
{ config, pkgs, ... }:
{
{ config, lib, pkgs, ... }:
lib.mkMerge [
/*
https://wiki.nixos.org/wiki/GNOME
*/
(lib.optionalAttrs (lib.versionOlder lib.version "25.11") {
services.xserver.enable = true;
services.xserver.displayManager.gdm.enable = true;
services.xserver.displayManager.gdm.wayland = true;
services.xserver.desktopManager.gnome.enable = true;
#services.printing.enable = true; # CUPS
})
(lib.optionalAttrs (lib.versionAtLeast lib.version "25.11") {
services.displayManager.gdm.enable = true;
services.desktopManager.gnome.enable = true;
})
{
# services.xserver.enable = true;
# services.xserver.displayManager.gdm.enable = true;
# services.xserver.displayManager.gdm.wayland = true;
# services.xserver.desktopManager.gnome.enable = true;
#services.printing.enable = true; # CUPS, done in printing.nix
programs.xwayland.enable = true;
xdg.portal.enable = true;
services.udev.packages = with pkgs; [ gnome.gnome-settings-daemon ];
qt.enable = true;
qt.platformTheme = "gnome";
qt.style = "adwaita-dark";
# support GConf-based applications
# services.dbus.packages = [ pkgs.gnome2.GConf ];
# Enable system tray icons (used by gnomeExtensions.appindicator)
services.udev.packages = [ pkgs.gnome-settings-daemon ];
# programs.dconf.profiles.user.databases = [
# {
# settings."org/gnome/mutter".experimental-features = [
# # "scale-monitor-framebuffer" # Enables fractional scaling (125% 150% 175%)
# # "variable-refresh-rate" # Enables Variable Refresh Rate (VRR) on compatible displays
# # "xwayland-native-scaling" # Scales Xwayland applications to look crisp on HiDPI screens
# ];
# }
# ];
programs.gnome-terminal.enable = false;
services.tumbler.enable = true; # TODO: needed when we have ffmpegthumbnailer?
services.gnome.sushi.enable = true;
services.gnome.gnome-online-accounts.enable = true;
services.gnome.sushi.enable = true; # quick previewer for nautilus
# services.gnome.gnome-online-accounts.enable = true; # Gnome SSO service
environment.systemPackages = with pkgs; [
firefox
pavucontrol
lxterminal
# TODO: shadow gnome-terminal
ffmpegthumbnailer
libheif # HEIF thumbnails
gnomeExtensions.appindicator
# for managing gnome extensions with firefox, assumes programs.firefox.enable
services.gnome.gnome-browser-connector.enable = true;
environment.systemPackages = [
pkgs.pavucontrol
pkgs.lxterminal # TODO: remove?
pkgs.ghostty
pkgs.gnome-tweaks
pkgs.refine # Tweak various aspects of GNOME
# pkgs.thumbler # TODO?
pkgs.ffmpegthumbnailer
pkgs.libheif.bin # provides heif-thumbnailer, the program that generates HEIF thumbnails
pkgs.libheif.out # provides heif.thumbnailer, allows for the viewing of HEIF thumbnails
pkgs.gnomeExtensions.appindicator
pkgs.decibels # audio player
pkgs.dconf-editor
pkgs.loupe # eog replacement
pkgs.shotwell # image editor
# pkgs.gnome-clocks
pkgs.desktop-file-utils # update-desktop-database
];
# an attempt to make nautilus discover new files, but it proved to be a freebsd-linux incompatiblity
@@ -36,20 +91,30 @@
# https://en.wikipedia.org/wiki/File_Alteration_Monitor
# or https://github.com/fsnotify/fsnotify
environment.gnome.excludePackages = (with pkgs; [
gnome-photos
gnome-tour
(pkgs.gedit or pkgs.gnome.gedit) # text editor (24.05 vs 23.11)
]) ++ (with pkgs.gnome; [
#cheese # webcam tool
gnome-music
gnome-terminal
#epiphany # web browser
geary # email reader
totem # video player
tali # poker game
iagno # go game
hitori # sudoku game
atomix # puzzle game
]);
environment.gnome.excludePackages = [
pkgs.gnome-console
pkgs.gnome-terminal
pkgs.gnome-photos
pkgs.gnome-tour
pkgs.gnome-maps
pkgs.gedit # text editor (24.05 vs 23.11)
# pkgs.papers # Document Viewer (new)
pkgs.eog
#pkgs.cheese # webcam tool
#pkgs.baobab # Disk Usage Analyser
pkgs.simple-scan # scanning utility
pkgs.yelp # Help
pkgs.gnome-music
pkgs.evince # Document Viewer
pkgs.epiphany # web browser
pkgs.geary # email reader
pkgs.showtime # video player
pkgs.totem # video player
pkgs.tali # poker game
pkgs.iagno # go game
pkgs.hitori # sudoku game
pkgs.atomix # puzzle game
];
}
]
+19 -9
View File
@@ -1,4 +1,5 @@
{ config, pkgs, lib, ... }:
lib.mkMerge [
{
# TODO: gamemode?
@@ -8,29 +9,38 @@
environment.systemPackages = [
(pkgs.lutris.override {
extraPkgs = pkgs: [
pkgs.wineWowPackages.staging
# pkgs.wineWowPackages.staging # slow to build
# pkgs.wineWowPackages.stable
pkgs.winetricks
pkgs.pixman
pkgs.libjpeg
pkgs.gnome.zenity
(pkgs.zenity or pkgs.gnome.pkgs.adwaita-icon-theme)
];
extraLibraries = pkgs: [
];
})
# ensure icons appear
pkgs.gnome3.adwaita-icon-theme
(pkgs.adwaita-icon-theme or pkgs.gnome.pkgs.adwaita-icon-theme)
pkgs.hicolor-icon-theme #
# Needed for some installers like League of Legends
pkgs.openssl
pkgs.gnome.zenity
(pkgs.zenity or pkgs.gnome.pkgs.adwaita-icon-theme)
];
hardware.opengl.enable = true;
hardware.opengl.driSupport = true;
hardware.opengl.driSupport32Bit = true;
hardware.opengl.extraPackages32 = with pkgs.pkgsi686Linux; [ libva ];
}
(lib.optionalAttrs (lib.versionOlder lib.version "24.11") {
hardware.opengl.enable = true;
hardware.opengl.driSupport = true;
hardware.opengl.driSupport32Bit = true;
hardware.opengl.extraPackages32 = with pkgs.pkgsi686Linux; [ libva ];
})
(lib.optionalAttrs (lib.versionAtLeast lib.version "24.11") {
hardware.graphics.enable = true;
hardware.graphics.enable32Bit = true;
hardware.graphics.extraPackages32 = with pkgs.pkgsi686Linux; [ libva ];
})
]
+123
View File
@@ -0,0 +1,123 @@
{ pkgs, ... }:
{
environment.systemPackages = [
pkgs.retroarch-full
/* pkgs.retroarch */
/* pkgs.retroarchBare */
/*
(pkgs.retroarch.override {
cores = with pkgs.libretro; [
## selection
#bsnes
#citra
#desmume
#dolphin
#fceumm
#gambatte
#genesis-plus-gx
#melonds
#mgba
#mupen64plus
#parallel-n64
#pcsx-rearmed
#pcsx2
#ppsspp
#snes9x
#vba-m
#beetle-psx-hw
# ALL
atari800
beetle-gba
beetle-lynx
beetle-ngp
beetle-pce-fast
beetle-pce
beetle-pcfx
beetle-psx
beetle-saturn
beetle-supafaust
beetle-supergrafx
beetle-vb
beetle-wswan
blastem
bluemsx
bsnes-hd
bsnes-mercury
bsnes
citra
desmume
desmume2015
dolphin
dosbox-pure
dosbox
easyrpg
eightyone
fbalpha2012
fbneo
fceumm
flycast
fmsx
freeintv
fuse
gambatte
genesis-plus-gx
gpsp
gw
handy
hatari
mame
mame2000
mame2003-plus
mame2003
mame2010
mame2015
mame2016
melonds
mesen-s
mesen
meteor
mgba
mrboom
mupen64plus
neocd
nestopia
np2kai
nxengine
o2em
opera
parallel-n64
pcsx-rearmed
pcsx2
picodrive
play
ppsspp
prboom
prosystem
puae
quicknes
same_cdi
sameboy
scummvm
smsplus-gx
snes9x
snes9x2002
snes9x2005
snes9x2010
stella
stella2014
swanstation
tgbdual
thepowdertoy
tic80
twenty-fortyeight
vba-m
vba-next
vecx
virtualjaguar
yabause
];
})
*/
];
}
-6
View File
@@ -1,6 +0,0 @@
{
sound.enable = true; # alsa sound?
#sound.mediaKeys.enable = true # only enable if headless
security.rtkit.enable = true; # optional
}
+24 -18
View File
@@ -1,24 +1,30 @@
{ pkgs, ... }:
{ config, pkgs, ... }:
# https://wiki.nixos.org/wiki/PipeWire
{
hardware.pulseaudio.enable = false; # gnome defaults it to true
services.pulseaudio.enable = false; # gnome defaults it to true
#sound.enable = true # alsa? likely conflicts with pipewire
#sound.mediaKeys.enable = true # alsa? only enable if headless
services.pipewire.enable = true;
services.pipewire.alsa.enable = true;
services.pipewire.alsa.support32Bit = true;
#services.pipewire.jack.enable = true;
services.pipewire.pulse.enable = true;
# use the example session manager (no others are packaged yet so this is enabled by default,
# no need to redefine it in your config for now)
#services.pipewire.media-session.enable = true;
services.pipewire = {
enable = true;
environment.systemPackages = with pkgs; [
pavucontrol # volume and defaults
easyeffects # eq
helvum # patchbay
carla # VST (TODO: move into a DAW profile?)
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
jack.enable = true;
};
environment.systemPackages = [
pkgs.pavucontrol # volume and defaults
pkgs.easyeffects # eq
# helvum # patchbay - removed from nixpkgs
(pkgs.crosspipe or pkgs.helvum) # patchbay - helvum alternative
# carla # VST patchbay (TODO: move into a DAW profile? Can be used for midi) # TODO: build broken
];
security.rtkit.enable = true; # optional
# optional, allows Pipewire to use the realtime scheduler for increased performance.
security.rtkit.enable = config.services.pipewire.jack.enable;
}
-15
View File
@@ -1,15 +0,0 @@
{ pkgs, ... }:
{
sound.enable = true; # alsa, needed?
#sound.mediaKeys.enable = true # only enable if headless
hardware.pulseaudio.enable = true;
hardware.pulseaudio.package = pkgs.pulseaudioFull; # optional
#hardware.pulseaudio.support32Bit = true;
nixpkgs.config.pulseaudio = true;
environment.systemPackages = with pkgs; [
pulseeffects-legacy
];
security.rtkit.enable = true; # optional
}
+35 -12
View File
@@ -1,9 +1,10 @@
{ config, pkgs, lib, ... }:
{ pkgs, lib, ... }:
{
programs.steam.enable = true;
programs.steam.remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play
programs.steam.dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server
# TODO: gamescope?
# TODO: gamemode?
nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [
@@ -12,6 +13,15 @@
"steam-runtime"
];
programs.bash.shellInit = ''
if command -v complete >/dev/null; then
if [ -n "''${BASH_VERSION:-}" ]; then
complete -F _command steam-run
# complete -F _command fhs-run
fi
fi
'';
/** /
#programs.java.enable = true;
nixpkgs.config.packageOverrides = pkgs: {
@@ -48,11 +58,11 @@
gtk3
gtk3-x11
xorg.libXcursor
xorg.libXi
xorg.libXinerama
xorg.libXScrnSaver
xorg.libxcb
libXcursor
libXi
libXinerama
libXScrnSaver
libxcb
stdenv.cc.cc.lib
#libkrb5
@@ -64,22 +74,35 @@
#services.joycond.enable = true;
hardware.opengl.enable = true;
hardware.opengl.driSupport = true;
hardware.opengl.driSupport32Bit = true;
hardware.opengl.extraPackages32 = with pkgs.pkgsi686Linux; [ libva ];
hardware.graphics.enable = true;
hardware.graphics.enable32Bit = true;
hardware.graphics.extraPackages32 = with pkgs.pkgsi686Linux; [ libva ];
environment.systemPackages = with pkgs; [
steam-tui
# steam-tui
steamcmd
#winetricks
#protontricks
wineWowPackages.full
# wineWowPackages.full
#wineWowPackages.waylandFull
# bottles
# lutris
# nice to have
jstest-gtk
antimicrox
# since gnome doesn't let me select the provided [Desktop Action BigPicture]
# in the overview without right clicking /shrug
(makeDesktopItem {
desktopName = "Steam Big Picture";
name = "Steam";
exec = "steam steam://open/bigpicture";
icon = "steam";
})
];
}
+60
View File
@@ -0,0 +1,60 @@
{ pkgs, ... }:
/*
= setup: =
$ sudo waydroid init
$ sudo waydroid init -S GAPPS -f
$ sudo systemctl start waydroid-container
$ sudo journalctl -u waydroid-container -e
$ waydroid session start
= maintenance: =
$ sudo waydroid upgrade
= wipe: =
$ sudo systemctl stop waydroid-container
$ sudo rm -r /var/lib/waydroid/* ~/.local/share/waydroid
*/
{
# https://github.com/NixOS/nixpkgs/blob/nixos-unstable/nixos/modules/virtualisation/waydroid.nix
virtualisation.waydroid.enable = true; # will enable virtualisation.lxc.enable
environment.systemPackages = [ pkgs.wl-clipboard-timeout ];
# environment.systemPackages = [ (pkgs.wl-clipboard-timeout or pkgs.wl-clipboard) ];
# https://wiki.nixos.org/wiki/Waydroid
/** /
# waydroid-helper GUI:
environment.systemPackages = [ pkgs.waydroid-helper ];
systemd.packages = [ pkgs.waydroid-helper ];
systemd.services.waydroid-mount.wantedBy = [ "multi-user.target" ];
# required at runtime:
# $ systemctl --user start waydroid-monitor
# TODO: one of
# systemd.user.targets.multi-user.wants = [ "multi-user.target" ];
# systemd.user.services.waydroid-monitor.wantedBy = [ "waydroid-monitor.service" ];
/**/
# https://github.com/SCLorentz/NixOS-config/blob/abf4eefd8d8797878b3620faedfcdb3db696e7aa/modules/android.nix
# TODO:
# systemd.services."waydroid-set-props" = {
# wantedBy = [ "multi-user.target" ];
# after = [ "waydroid-container.service" ];
# serviceConfig = {
# Type = "oneshot";
# # https://docs.waydro.id/usage/waydroid-prop-options
# ExecStart = pkgs.writeShellScript "set-waydroid-props" ''
# ${pkgs.waydroid}/bin/waydroid prop set persist.waydroid.multi_windows true
# # ${pkgs.waydroid}/bin/waydroid prop set persist.waydroid.reverse_scrolling true
# # ${pkgs.waydroid}/bin/waydroid prop set persist.sys.nativebridge 1
# # ${pkgs.waydroid}/bin/waydroid prop set ro.hardware ranchu
# '';
# };
# };
}
@@ -5,14 +5,16 @@ in
{
# auto domain update
# TODO: ensure dns64 does not interfere with this
options = with lib; {
services.domeneshop-updater.targets = mkOption {
type = with types; listOf str;
#default = [ config.networking.fqdn ];
example = [ config.networking.fqdn ];
};
};
config = lib.mkIf (cfg.targets != []) {
# don't run if local VM
config = lib.mkIf (cfg.targets != [] && !config.virtualisation.isVmVariant) {
users.users.domeneshop.isSystemUser = true;
users.users.domeneshop.group = "domeneshop";
@@ -33,20 +35,44 @@ in
serviceConfig = let
prog = pkgs.writeShellApplication {
name = "domeneshop-dyndns-updater.sh";
runtimeInputs = with pkgs; [ curl yq ];
runtimeInputs = with pkgs; [ curl iproute2 jq ];
text = ''
test -s /run/secrets/domeneshop/token || {
>&2 echo "ERROR: /run/secrets/domeneshop/token not found!"
echo >&2 "ERROR: /run/secrets/domeneshop/token not found!"
exit 1
}
test -s /run/secrets/domeneshop/secret || {
>&2 echo "ERROR: /run/secrets/domeneshop/secret not found!"
echo >&2 "ERROR: /run/secrets/domeneshop/secret not found!"
exit 1
}
DOMENESHOP_TOKEN="$( cat /run/secrets/domeneshop/token)"
DOMENESHOP_SECRET="$(cat /run/secrets/domeneshop/secret)"
# get stable ipv6 addr, fallback to ipv4, fallback to curl default
IF=$(
ip -6 -json addr show scope global -temporary \
| jq '.[]| select(.ifname|contains("docker") or contains("tailscale")|not) | .addr_info[].local | select(.==null|not)' -r \
| head -n1
)
if [[ -z "$IF" ]]; then
IF=$(
ip -4 -json addr show scope global -temporary \
| jq '.[]| select(.ifname|contains("docker") or contains("tailscale")|not) | .addr_info[].local | select(.==null|not)' -r \
| head -n1
)
fi
if [[ -n "$IF" ]]; then
IF="--interface $IF"
else
IF=""
fi
# shellcheck disable=SC2086
echo + curl $IF api.domeneshop.no...
${lib.concatMapStringsSep "\n" (target: ''
curl https://"$DOMENESHOP_TOKEN":"$DOMENESHOP_SECRET"@api.domeneshop.no/v0/dyndns/update?hostname="${target}"
# shellcheck disable=SC2086
curl $IF https://"$DOMENESHOP_TOKEN":"$DOMENESHOP_SECRET"@api.domeneshop.no/v0/dyndns/update?hostname="${target}"
'') cfg.targets}
'';
};
+16
View File
@@ -0,0 +1,16 @@
{
services.earlyoom = {
enable = true;
# all must be true for earlyoom to kill shit
freeMemThreshold = 2; # in percent
freeSwapThreshold = 20; # in percent
freeSwapKillThreshold = 5; # in percent, sigkill
extraArgs = [
# "-g" # Kill all processes that have same process group id
"--avoid"
"^(X|init|Xorg|ssh|plasma.*|gnome.*|konsole|lxterminal|ghostty|kwin)$"
"--prefer"
"^(electron|libreoffice|gimp|zen*|nix-env|nix-instantiate|gcc|rustc)$"
];
};
}
+24
View File
@@ -0,0 +1,24 @@
{ inputs, ... }:
{
imports = [
# https://github.com/NixOS/nixos-hardware/blob/master/common/hidpi.nix
inputs.nixos-hardware.nixosModules.common-hidpi
];
environment.variables = {
# better fonts:
# https://web.archive.org/web/20230921201835/https://old.reddit.com/r/linux_gaming/comments/16lwgnj/is_it_possible_to_improve_font_rendering_on_linux/
# via
# https://github.com/samemrecebi
FREETYPE_PROPERTIES = "cff:no-stem-darkening=0 autofitter:no-stem-darkening=0";
# TODO: enable these?
# # https://wiki.archlinux.org/title/HiDPI#Qt_5
# QT_AUTO_SCREEN_SCALE_FACTOR = 1;
# QT_ENABLE_HIGHDPI_SCALING = 1;
# # https://wiki.archlinux.org/title/HiDPI#GDK_3_(GTK_3)
# GDK_SCALE = 2;
};
}
+159 -71
View File
@@ -1,81 +1,169 @@
{ config, pkgs, lib, ... }:
let
mkDomain = subname: "${subname}.${config.networking.fqdn}";
inherit (config.pbsds.nginx) mkDomain allSubdomains;
in
{
_module.args.mkDomain = mkDomain;
_module.args.allSubdomains = lib.pipe config.services.nginx.virtualHosts [
#(lib.mapAttrsToList (domain: vhost: [ domain ] ++ vhost.serverAliases))
(lib.mapAttrsToList (domain: vhost: [ domain ]))
lib.flatten
(builtins.filter (domain: domain != ""))
(lib.sort (x: y: x<y))
];
options.pbsds.nginx = {
security.acme.acceptTerms = true;
security.acme.defaults.email = "pbsds+acme@hotmail.com"; # TODO: parametrize per host
#security.acme.defaults.renewInterval = "daily";
#security.acme.defaults.reloadServices
# https://www.xf.is/2020/06/30/list-of-free-acme-ssl-providers/
#security.acme.defaults.server = "https://acme-staging-v02.api.letsencrypt.org/directory"; # STAGING
#security.acme.defaults.server = "https://api.buypass.com/acme/directory"; # no wildcards, rate limit: 20 domains/week, 5 duplicate certs / week
#security.acme.defaults.server = "https://api.test4.buypass.no/acme/directory"; # STAGING. no wildcards, rate limit: 20 domains/week, 5 duplicate certs / week
# DNS-based ACME:
# - https://go-acme.github.io/lego/dns/domeneshop/
# - https://nixos.org/manual/nixos/stable/index.html#module-security-acme-config-dns-with-vhosts
#security.acme.defaults.dnsProvider = "domeneshop";
#security.acme.defaults.credentialsFile = "/var/lib/secrets/domeneshop.key"; # TODO: this file must be made by hand, containing env variables.
services.nginx.enable = true;
networking.firewall.allowedTCPPorts = [ 80 443 ];
services.nginx.recommendedGzipSettings = true;
services.nginx.recommendedOptimisation = true;
services.nginx.recommendedProxySettings = true;
services.nginx.recommendedTlsSettings = true;
/** /
services.nginx.virtualHosts."" = {
default = true;
forceSSL = false;
enableACME = false;
root = pkgs.writeTextDir "index.html" ''
<!DOCTYPE html>
no
'';
};
/**/
# Website tunnel
# TODO: remove
/** /
services.nginx.virtualHosts.${config.networking.fqdn} = {
forceSSL = true; # addSSL = true;
enableACME = true;
#acmeRoot = null; # use DNS
default = true;
serverAliases = map mkDomain [
"www"
#"*" # requires DNS ACME
];
# The alternative to ^ is: config.security.acme.certs."${acmeDomain}".extraDomainNames = [ (mkDomain "foo") ];
# TODO: 'nox' alias for everything
locations."/" = {
proxyPass = "http://pbuntu.pbsds.net";
proxyWebsockets = true;
mkDomain = lib.mkOption {
visible = false; internal = true; readOnly = true;
default = subname: "${subname}.${config.networking.fqdn}";
};
allSubdomains = lib.mkOption {
visible = false; internal = true; readOnly = true;
default = lib.pipe config.services.nginx.virtualHosts [
# #(lib.mapAttrsToList (domain: vhost: [ domain ] ++ vhost.serverAliases))
# (lib.mapAttrsToList (domain: vhost: [ domain ]))
# lib.flatten
lib.attrNames
(lib.filter (domain: domain != "" && domain != "_"))
(lib.sort (x: y: x<y))
];
};
allowList.extraConfig = lib.mkOption {
visible = false; internal = true; readOnly = true;
default = ''
# home https://ipinfo.io/ips/193.71.0.0/16
allow 193.71.0.0/16;
# ntnu https://ipinfo.io/ips/129.241.0.0/16
allow 129.241.0.0/16;
# local
${
lib.pipe config.services.fail2ban.ignoreIP [
(map (x: "allow ${x};"))
lib.concatLines
]
}
deny all;
'';
};
};
#services.nginx.virtualHosts.${mkDomain "www"} = {
# addSSL = true;
# useACMEHost = acmeDomain; #enableACME = true;
# locations."/" = {
# proxyPass = "http://pbuntu.pbsds.net";
# proxyWebsockets = true;
# };
#};
/**/
config = {
security.acme.acceptTerms = true;
security.acme.defaults.email = "pbsds+acme@hotmail.com"; # TODO: parametrize per host
#security.acme.defaults.renewInterval = "daily";
#security.acme.defaults.reloadServices
# https://www.xf.is/2020/06/30/list-of-free-acme-ssl-providers/
#security.acme.defaults.server = "https://acme-v02.api.letsencrypt.org/directory" # default
#security.acme.defaults.server = "https://acme-staging-v02.api.letsencrypt.org/directory"; # STAGING
#security.acme.defaults.server = "https://api.buypass.com/acme/directory"; # no wildcards, rate limit: 20 domains/week, 5 duplicate certs / week
#security.acme.defaults.server = "https://api.test4.buypass.no/acme/directory"; # STAGING. no wildcards, rate limit: 20 domains/week, 5 duplicate certs / week
# DNS-based ACME:
# - https://go-acme.github.io/lego/dns/domeneshop/
# - https://nixos.org/manual/nixos/stable/index.html#module-security-acme-config-dns-with-vhosts
#security.acme.defaults.dnsProvider = "domeneshop";
#security.acme.defaults.credentialsFile = "/var/lib/secrets/domeneshop.key"; # TODO: this file must be made by hand, containing env variables.
services.nginx.enable = true;
networking.firewall.allowedTCPPorts = [ 80 443 ];
# TODO:
#services.nginx.commonHttpConfig = ''
# proxy_hide_header X-Frame-Options;
#'';
# TODO: Somehow distribute and add this to all location."/".extraConfig
#default = {
# #useACMEHost = config.networking.fqdn;
# forceSSL = true; # addSSL = true;
# enableACME = true; #useACMEHost = acmeDomain;
#}
# TODO: Somehow distribute and add this to all location."/".extraConfig
#commonProxySettings = ''
# proxy_set_header Host $host;
# proxy_set_header X-Real-IP $remote_addr;
# proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# proxy_set_header X-Forwarded-Proto $scheme;
# proxy_set_header X-Forwarded-Host $host;
# proxy_set_header X-Forwarded-Server $host;
#'';
services.nginx.recommendedGzipSettings = true;
services.nginx.recommendedOptimisation = true;
services.nginx.recommendedProxySettings = true;
services.nginx.recommendedTlsSettings = true;
# nginx return 444 for all nonexistent virtualhosts
services.nginx.virtualHosts."_" = {
default = true;
addSSL = true;
sslCertificate = "${pkgs.path}/nixos/tests/common/acme/server/acme.test.cert.pem";
sslCertificateKey = "${pkgs.path}/nixos/tests/common/acme/server/acme.test.key.pem";
extraConfig = "return 444;";
};
# https://wiki.nixos.org/wiki/Fail2ban
# Defines a filter that detects URL probing by reading the Nginx access log
/*--* /
environment.etc."fail2ban/filter.d/nginx-url-probe.local".text = lib.mkDefault (lib.mkAfter ''
[Definition]
failregex = ^<HOST>.*(GET /(wp-|admin|boaform|phpmyadmin|\.env|\.git)|\.(dll|so|cfm|asp)|(\?|&)(=PHPB8B5F2A0-3C92-11d3-A3A9-4C7B08C10000|=PHPE9568F36-D428-11d2-A769-00AA001ACF42|=PHPE9568F35-D428-11d2-A769-00AA001ACF42|=PHPE9568F34-D428-11d2-A769-00AA001ACF42)|\\x[0-9a-zA-Z]{2})
'');
services.fail2ban.enable = true;
services.fail2ban.jails = {
nginx-url-probe.settings = {
enabled = true;
filter = "nginx-url-probe";
logpath = "/var/log/nginx/access.log";
backend = "auto"; # Do not forget to specify this if your jail uses a log file
action = ''
%(action_)s[blocktype=DROP]
ntfy
'';
maxretry = 5;
findtime = 600;
};
};
/**/
/*--* /
services.nginx.virtualHosts."" = {
default = true;
forceSSL = false;
enableACME = false;
root = pkgs.writeTextDir "index.html" ''
<!DOCTYPE html>
no
'';
};
/**/
# Website tunnel
# TODO: remove
/*--* /
services.nginx.virtualHosts.${config.networking.fqdn} = {
forceSSL = true; # addSSL = true;
enableACME = true;
#acmeRoot = null; # use DNS
default = true;
serverAliases = map mkDomain [
"www"
#"*" # requires DNS ACME
];
# The alternative to ^ is: config.security.acme.certs."${acmeDomain}".extraDomainNames = [ (mkDomain "foo") ];
# TODO: 'nox' alias for everything
locations."/" = {
proxyPass = "http://pbuntu.pbsds.net";
proxyWebsockets = true;
};
};
#services.nginx.virtualHosts.${mkDomain "www"} = {
# addSSL = true;
# useACMEHost = acmeDomain; #enableACME = true;
# locations."/" = {
# proxyPass = "http://pbuntu.pbsds.net";
# proxyWebsockets = true;
# };
#};
/**/
};
}

Some files were not shown because too many files have changed in this diff Show More