From 54c04f9c029c3810e99994b7def4b2fe484d1f4a Mon Sep 17 00:00:00 2001 From: Julia Lange Date: Wed, 6 Aug 2025 19:47:17 -0700 Subject: [PATCH 01/30] Break juri apart and add scaffolding for system timers --- hosts/juri/bskyannouncements.nix | 23 ++++++++++ hosts/juri/host.nix | 74 +++----------------------------- hosts/juri/webservices.nix | 66 ++++++++++++++++++++++++++++ 3 files changed, 96 insertions(+), 67 deletions(-) create mode 100644 hosts/juri/bskyannouncements.nix create mode 100644 hosts/juri/webservices.nix diff --git a/hosts/juri/bskyannouncements.nix b/hosts/juri/bskyannouncements.nix new file mode 100644 index 0000000..1090f0e --- /dev/null +++ b/hosts/juri/bskyannouncements.nix @@ -0,0 +1,23 @@ +{ pkgs, ... }: +{ + systemd.timers."bsky-announcements" = { + wantedBy = [ "timers.target" ]; + timerConfig = { + OnBootSec = "20s"; + # OnCalendar = "Thu *-*-* 8:00:00 America/Los_Angeles"; + # Persistent = true; + Unit = "bsky-announcements.service"; + }; + }; + + systemd.services."bsky-announcements" = { + script = '' + set -eu + ${pkgs.coreutils}/bin/echo "Hello World" + ''; + serviceConfig = { + Type = "oneshot"; + User = "root"; + }; + }; +} diff --git a/hosts/juri/host.nix b/hosts/juri/host.nix index be01321..aa6a1aa 100644 --- a/hosts/juri/host.nix +++ b/hosts/juri/host.nix @@ -1,9 +1,10 @@ -{ config, ... }: -let - email = "admin@woach.me"; -in { - imports = [ - ./hardware.nix ]; +{ ... }: +{ + imports = [ + ./hardware.nix + ./webservices.nix + ./bskyannouncements.nix + ]; system.stateVersion = "24.11"; system.timezone = "America/Los_Angeles"; system.users.bigWheels = [ "pan" ]; @@ -20,67 +21,6 @@ in { }; }; - caddy = { - enable = true; - adminEmail = email; - vhosts = { - "juri.woach.me" = { - extraConfig = '' - reverse_proxy :3000 - ''; - serverAliases = [ "*.juri.woach.me" ]; - }; - "winry.woach.me" = { - extraConfig = '' - reverse_proxy :${builtins.toString config.forgejo.server.port} - ''; - }; - "ginko.woach.me" = { - extraConfig = '' - reverse_proxy :${builtins.toString config.headscale.server.port} - ''; - }; - }; - }; - - pds = { - enable = true; - hostname = "juri.woach.me"; - adminEmail = email; - environmentFile = config.sops.secrets.pdsEnv.path; - }; - - forgejo = { - enable = true; - server.domain = "winry.woach.me"; - users.admin = { - enable = true; - username = "Julia"; - passwordFile = config.sops.secrets.forgejoPassword.path; - }; - }; - - headscale = { - enable = true; - server.domain = "ginko.woach.me"; - }; - - syncthing = { - enable = true; - devices = { - "homura".id = "NEP24DB-DVXAHTZ-TCCNREQ-Q5TSC7K-ZXPWC4L-5ELGKQX-4I2P47O-2FT5QAU"; - "onizuka".id = "5S6QMND-MHD2HYR-DR6KQD4-6AWJTRL-FQUCR7W-FD2KBT3-AF6RE6R-F47KBQC"; - }; - - folders = { - "wiki" = { - path = "/var/lib/wiki"; - devices = [ "homura" "onizuka" ]; - }; - }; - }; - systemd.tmpfiles.rules = [ "d /var/lib/wiki 0755 syncthing syncthing -" ]; - postgres.enable = true; shell.enabledShells = [ "fish" ]; diff --git a/hosts/juri/webservices.nix b/hosts/juri/webservices.nix new file mode 100644 index 0000000..3b08f9c --- /dev/null +++ b/hosts/juri/webservices.nix @@ -0,0 +1,66 @@ +{ config, ... }: +let + email = "admin@woach.me"; +in { + caddy = { + enable = true; + adminEmail = email; + vhosts = { + "juri.woach.me" = { + extraConfig = '' + reverse_proxy :3000 + ''; + serverAliases = [ "*.juri.woach.me" ]; + }; + "winry.woach.me" = { + extraConfig = '' + reverse_proxy :${builtins.toString config.forgejo.server.port} + ''; + }; + "ginko.woach.me" = { + extraConfig = '' + reverse_proxy :${builtins.toString config.headscale.server.port} + ''; + }; + }; + }; + + pds = { + enable = true; + hostname = "juri.woach.me"; + adminEmail = email; + environmentFile = config.sops.secrets.pdsEnv.path; + }; + + forgejo = { + enable = true; + server.domain = "winry.woach.me"; + users.admin = { + enable = true; + username = "Julia"; + passwordFile = config.sops.secrets.forgejoPassword.path; + }; + }; + + headscale = { + enable = true; + server.domain = "ginko.woach.me"; + }; + + syncthing = { + enable = true; + devices = { + "homura".id = "NEP24DB-DVXAHTZ-TCCNREQ-Q5TSC7K-ZXPWC4L-5ELGKQX-4I2P47O-2FT5QAU"; + "onizuka".id = "5S6QMND-MHD2HYR-DR6KQD4-6AWJTRL-FQUCR7W-FD2KBT3-AF6RE6R-F47KBQC"; + }; + + folders = { + "wiki" = { + path = "/var/lib/wiki"; + devices = [ "homura" "onizuka" ]; + }; + }; + }; + systemd.tmpfiles.rules = [ "d /var/lib/wiki 0755 syncthing syncthing -" ]; + +} From e1d54a68502aebb6f2f6929e17858573565d6083 Mon Sep 17 00:00:00 2001 From: Julia Lange Date: Thu, 7 Aug 2025 21:06:20 -0700 Subject: [PATCH 02/30] Flake update 2025-08-07 --- flake.lock | 261 ++++++++++++++++++++++++++++++----------------------- 1 file changed, 148 insertions(+), 113 deletions(-) diff --git a/flake.lock b/flake.lock index a51df4d..b2c06f6 100644 --- a/flake.lock +++ b/flake.lock @@ -3,14 +3,15 @@ "aagl": { "inputs": { "flake-compat": "flake-compat", - "nixpkgs": "nixpkgs" + "nixpkgs": "nixpkgs", + "rust-overlay": "rust-overlay" }, "locked": { - "lastModified": 1750597689, - "narHash": "sha256-3ComII0BkmdohISrshICQiAB6TU+VHHIRnWK0ckA0/s=", + "lastModified": 1754582951, + "narHash": "sha256-QivorP/1+7P4O6oEdrs6RFo9PptbX6ajBdvYifhzJc0=", "owner": "ezKEa", "repo": "aagl-gtk-on-nix", - "rev": "ec2ec4ec3f908ed9b125ea4afd52627bed60f183", + "rev": "13cb81238ebbd0eeddb465c962413a0f795baa44", "type": "github" }, "original": { @@ -23,14 +24,14 @@ "inputs": { "astal": "astal", "gnim": "gnim", - "nixpkgs": "nixpkgs_2" + "nixpkgs": "nixpkgs_3" }, "locked": { - "lastModified": 1751930350, - "narHash": "sha256-hBIrzyrwG3XjeNyzVNWKDX+yYVlpwAqf9ovgF7qecug=", + "lastModified": 1754487835, + "narHash": "sha256-GRCkm7a1odlN3hHR1iBIxwmBPWAw1CDOnOdpmZGSKkQ=", "owner": "Aylur", "repo": "ags", - "rev": "22f37ccb0db58d9d8a11ad0054ab20ecfad005ad", + "rev": "8e91fcd52b807f576a794ccc9533bdf720ef5af7", "type": "github" }, "original": { @@ -59,11 +60,11 @@ ] }, "locked": { - "lastModified": 1751740947, - "narHash": "sha256-35040CHH7P3JGmhGVfEb2oJHL/A5mI2IXumhkxrBnao=", + "lastModified": 1753216019, + "narHash": "sha256-zik7WISrR1ks2l6T1MZqZHb/OqroHdJnSnAehkE0kCk=", "owner": "hyprwm", "repo": "aquamarine", - "rev": "dfc1db15a08c4cd234288f66e1199c653495301f", + "rev": "be166e11d86ba4186db93e10c54a141058bdce49", "type": "github" }, "original": { @@ -80,11 +81,11 @@ ] }, "locked": { - "lastModified": 1751126708, - "narHash": "sha256-AodIKw7TmI7rHVcOfEsO82stupMYIMVQeLAUQfVxnkU=", + "lastModified": 1752404970, + "narHash": "sha256-XULTToDUkIshNXEO+YP2mAHdQv8bxWDvKjbamBfOC8E=", "owner": "aylur", "repo": "astal", - "rev": "ac90f09385a2295da9fdc108aaba4a317aaeacc7", + "rev": "2c5eb54f39e1710c6e2c80915a240978beb3269a", "type": "github" }, "original": { @@ -183,11 +184,11 @@ "gnim": { "flake": false, "locked": { - "lastModified": 1751928958, - "narHash": "sha256-vQY2L+Hnp6F1MHFa3UbMft1goGw3iODI5M+96Z7P+9Q=", + "lastModified": 1753090800, + "narHash": "sha256-6sS6KHong2cMGn+6xJwjiizZzwu2XUmp++DtiKZhFMU=", "owner": "aylur", "repo": "gnim", - "rev": "9bffa83f52f711b13e3c139454623a9aea4f5552", + "rev": "2f58f8444c4cb8fefeab7a9901a33e99cfa92457", "type": "github" }, "original": { @@ -198,14 +199,14 @@ }, "home-manager": { "inputs": { - "nixpkgs": "nixpkgs_3" + "nixpkgs": "nixpkgs_4" }, "locked": { - "lastModified": 1752093218, - "narHash": "sha256-+3rXu8ewcNDi65/2mKkdSGrivQs5zEZVp5aYszXC0d0=", + "lastModified": 1754613544, + "narHash": "sha256-ueR1mGX4I4DWfDRRxxMphbKDNisDeMPMusN72VV1+cc=", "owner": "nix-community", "repo": "home-manager", - "rev": "206ed3c71418b52e176f16f58805c96e84555320", + "rev": "cc2fa2331aebf9661d22bb507d362b39852ac73f", "type": "github" }, "original": { @@ -230,11 +231,11 @@ ] }, "locked": { - "lastModified": 1749155331, - "narHash": "sha256-XR9fsI0zwLiFWfqi/pdS/VD+YNorKb3XIykgTg4l1nA=", + "lastModified": 1753964049, + "narHash": "sha256-lIqabfBY7z/OANxHoPeIrDJrFyYy9jAM4GQLzZ2feCM=", "owner": "hyprwm", "repo": "hyprcursor", - "rev": "45fcc10b4c282746d93ec406a740c43b48b4ef80", + "rev": "44e91d467bdad8dcf8bbd2ac7cf49972540980a5", "type": "github" }, "original": { @@ -259,11 +260,11 @@ ] }, "locked": { - "lastModified": 1751808145, - "narHash": "sha256-OXgL0XaKMmfX2rRQkt9SkJw+QNfv0jExlySt1D6O72g=", + "lastModified": 1752149140, + "narHash": "sha256-gbh1HL98Fdqu0jJIWN4OJQN7Kkth7+rbkFpSZLm/62A=", "owner": "hyprwm", "repo": "hyprgraphics", - "rev": "b841473a0bd4a1a74a0b64f1ec2ab199035c349f", + "rev": "340494a38b5ec453dfc542c6226481f736cc8a9a", "type": "github" }, "original": { @@ -282,17 +283,17 @@ "hyprlang": "hyprlang", "hyprutils": "hyprutils", "hyprwayland-scanner": "hyprwayland-scanner", - "nixpkgs": "nixpkgs_4", + "nixpkgs": "nixpkgs_5", "pre-commit-hooks": "pre-commit-hooks", "systems": "systems", "xdph": "xdph" }, "locked": { - "lastModified": 1752149340, - "narHash": "sha256-DJc2ROpttbP6FHcXwWpmK7EB2cpVsP/LmXjEr8RWcO8=", + "lastModified": 1754583328, + "narHash": "sha256-UyM03UZbu5MMil/iz1dSQv1BlfmzlfGdAZcE9ZV5DwY=", "ref": "refs/heads/main", - "rev": "b5433bb75324a95dd27eb5492141565466c2cdd6", - "revCount": 6265, + "rev": "afbd8796859775a50687daacb254cdd1ba22328f", + "revCount": 6354, "type": "git", "url": "https://github.com/hyprwm/Hyprland" }, @@ -303,14 +304,14 @@ }, "hyprland-contrib": { "inputs": { - "nixpkgs": "nixpkgs_5" + "nixpkgs": "nixpkgs_6" }, "locked": { - "lastModified": 1752069516, - "narHash": "sha256-dyzDJvt8IVgHJVmpnw1mueHHSLYnChW1XMkwz9WUBZ8=", + "lastModified": 1753252360, + "narHash": "sha256-PFAJoEqQWMlo1J+yZb+4HixmhbRVmmNl58e/AkLYDDI=", "owner": "hyprwm", "repo": "contrib", - "rev": "34d0c01910552b873a07c96921ef70e32bf369a2", + "rev": "6839b23345b71db17cd408373de4f5605bf589b8", "type": "github" }, "original": { @@ -399,11 +400,11 @@ ] }, "locked": { - "lastModified": 1750371812, - "narHash": "sha256-D868K1dVEACw17elVxRgXC6hOxY+54wIEjURztDWLk8=", + "lastModified": 1753819801, + "narHash": "sha256-tHe6XeNeVeKapkNM3tcjW4RuD+tB2iwwoogWJOtsqTI=", "owner": "hyprwm", "repo": "hyprland-qtutils", - "rev": "b13c7481e37856f322177010bdf75fccacd1adc8", + "rev": "b308a818b9dcaa7ab8ccab891c1b84ebde2152bc", "type": "github" }, "original": { @@ -428,11 +429,11 @@ ] }, "locked": { - "lastModified": 1750371198, - "narHash": "sha256-/iuJ1paQOBoSLqHflRNNGyroqfF/yvPNurxzcCT0cAE=", + "lastModified": 1753622892, + "narHash": "sha256-0K+A+gmOI8IklSg5It1nyRNv0kCNL51duwnhUO/B8JA=", "owner": "hyprwm", "repo": "hyprlang", - "rev": "cee01452bca58d6cadb3224e21e370de8bc20f0b", + "rev": "23f0debd2003f17bd65f851cd3f930cff8a8c809", "type": "github" }, "original": { @@ -453,11 +454,11 @@ ] }, "locked": { - "lastModified": 1751888065, - "narHash": "sha256-F2SV9WGqgtRsXIdUrl3sRe0wXlQD+kRRZcSfbepjPJY=", + "lastModified": 1753800567, + "narHash": "sha256-W0xgXsaqGa/5/7IBzKNhf0+23MqGPymYYfqT7ECqeTE=", "owner": "hyprwm", "repo": "hyprutils", - "rev": "a8229739cf36d159001cfc203871917b83fdf917", + "rev": "c65d41d4f4e6ded6fdb9d508a73e2fe90e55cdf7", "type": "github" }, "original": { @@ -478,11 +479,11 @@ ] }, "locked": { - "lastModified": 1751881472, - "narHash": "sha256-meB0SnXbwIe2trD041MLKEv6R7NZ759QwBcVIhlSBfE=", + "lastModified": 1751897909, + "narHash": "sha256-FnhBENxihITZldThvbO7883PdXC/2dzW4eiNvtoV5Ao=", "owner": "hyprwm", "repo": "hyprwayland-scanner", - "rev": "8fb426b3e5452fd9169453fd6c10f8c14ca37120", + "rev": "fcca0c61f988a9d092cbb33e906775014c61579d", "type": "github" }, "original": { @@ -510,7 +511,7 @@ "flake-utils": "flake-utils", "flakey-profile": "flakey-profile", "lix": "lix", - "nixpkgs": "nixpkgs_6" + "nixpkgs": "nixpkgs_7" }, "locked": { "lastModified": 1732605668, @@ -528,17 +529,17 @@ "inputs": { "niri-stable": "niri-stable", "niri-unstable": "niri-unstable", - "nixpkgs": "nixpkgs_7", + "nixpkgs": "nixpkgs_8", "nixpkgs-stable": "nixpkgs-stable", "xwayland-satellite-stable": "xwayland-satellite-stable", "xwayland-satellite-unstable": "xwayland-satellite-unstable" }, "locked": { - "lastModified": 1752078530, - "narHash": "sha256-TrRmlYdhWcadWvBpDjB9Xlry4uT4ZUIO46d+o5tjtCQ=", + "lastModified": 1754593792, + "narHash": "sha256-ufYmw5vGCUuMdLb8A4MkDKzaXUqlReu7A0wn9EbQ5do=", "owner": "sodiboo", "repo": "niri-flake", - "rev": "d231d92313192d4d0c78d6ef04167fed9dee87cf", + "rev": "e76792be7533a57d1420b9cdfe3efa4690a650f0", "type": "github" }, "original": { @@ -567,11 +568,11 @@ "niri-unstable": { "flake": false, "locked": { - "lastModified": 1750791124, - "narHash": "sha256-F5iVU/hjoSHSSe0gllxm0PcAaseEtGNanYK5Ha3k2Tg=", + "lastModified": 1754589971, + "narHash": "sha256-gu0lWJbDkHs6+V9KHXwQHtZ2Hp72FxOjy3YisJ3qj9k=", "owner": "YaLTeR", "repo": "niri", - "rev": "37458d94b288945f6cfbd3c5c233f634d59f246c", + "rev": "f74d83dccaa6e8fffb38c304dd5d1eae07b87d24", "type": "github" }, "original": { @@ -582,11 +583,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1748460289, - "narHash": "sha256-7doLyJBzCllvqX4gszYtmZUToxKvMUrg45EUWaUYmBg=", + "lastModified": 1754498491, + "narHash": "sha256-erbiH2agUTD0Z30xcVSFcDHzkRvkRXOQ3lb887bcVrs=", "owner": "nixos", "repo": "nixpkgs", - "rev": "96ec055edbe5ee227f28cdbc3f1ddf1df5965102", + "rev": "c2ae88e026f9525daf89587f3cbee584b92b6134", "type": "github" }, "original": { @@ -598,11 +599,11 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1751943650, - "narHash": "sha256-7orTnNqkGGru8Je6Un6mq1T8YVVU/O5kyW4+f9C1mZQ=", + "lastModified": 1754292888, + "narHash": "sha256-1ziydHSiDuSnaiPzCQh1mRFBsM2d2yRX9I+5OPGEmIE=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "88983d4b665fb491861005137ce2b11a9f89f203", + "rev": "ce01daebf8489ba97bd1609d185ea276efdeb121", "type": "github" }, "original": { @@ -612,33 +613,49 @@ "type": "github" } }, - "nixpkgs_2": { + "nixpkgs_10": { "locked": { - "lastModified": 1751792365, - "narHash": "sha256-J1kI6oAj25IG4EdVlg2hQz8NZTBNYvIS0l4wpr9KcUo=", - "owner": "nixos", + "lastModified": 1744868846, + "narHash": "sha256-5RJTdUHDmj12Qsv7XOhuospjAjATNiTMElplWnJE9Hs=", + "owner": "NixOS", "repo": "nixpkgs", - "rev": "1fd8bada0b6117e6c7eb54aad5813023eed37ccb", + "rev": "ebe4301cbd8f81c4f8d3244b3632338bbeb6d49c", "type": "github" }, "original": { - "owner": "nixos", - "ref": "nixos-unstable", + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_2": { + "locked": { + "lastModified": 1744536153, + "narHash": "sha256-awS2zRgF4uTwrOKwwiJcByDzDOdo3Q1rPZbiHQg/N38=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "18dd725c29603f582cf1900e0d25f9f1063dbf11", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", "repo": "nixpkgs", "type": "github" } }, "nixpkgs_3": { "locked": { - "lastModified": 1751637120, - "narHash": "sha256-xVNy/XopSfIG9c46nRmPaKfH1Gn/56vQ8++xWA8itO4=", - "owner": "NixOS", + "lastModified": 1753694789, + "narHash": "sha256-cKgvtz6fKuK1Xr5LQW/zOUiAC0oSQoA9nOISB0pJZqM=", + "owner": "nixos", "repo": "nixpkgs", - "rev": "5c724ed1388e53cc231ed98330a60eb2f7be4be3", + "rev": "dc9637876d0dcc8c9e5e22986b857632effeb727", "type": "github" }, "original": { - "owner": "NixOS", + "owner": "nixos", "ref": "nixos-unstable", "repo": "nixpkgs", "type": "github" @@ -646,11 +663,11 @@ }, "nixpkgs_4": { "locked": { - "lastModified": 1751792365, - "narHash": "sha256-J1kI6oAj25IG4EdVlg2hQz8NZTBNYvIS0l4wpr9KcUo=", + "lastModified": 1754214453, + "narHash": "sha256-Q/I2xJn/j1wpkGhWkQnm20nShYnG7TI99foDBpXm1SY=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "1fd8bada0b6117e6c7eb54aad5813023eed37ccb", + "rev": "5b09dc45f24cf32316283e62aec81ffee3c3e376", "type": "github" }, "original": { @@ -661,6 +678,22 @@ } }, "nixpkgs_5": { + "locked": { + "lastModified": 1753939845, + "narHash": "sha256-K2ViRJfdVGE8tpJejs8Qpvvejks1+A4GQej/lBk5y7I=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "94def634a20494ee057c76998843c015909d6311", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_6": { "locked": { "lastModified": 1712163089, "narHash": "sha256-Um+8kTIrC19vD4/lUCN9/cU9kcOsD1O1m+axJqQPyMM=", @@ -676,7 +709,7 @@ "type": "github" } }, - "nixpkgs_6": { + "nixpkgs_7": { "locked": { "lastModified": 1729070438, "narHash": "sha256-KOTTUfPkugH52avUvXGxvWy8ibKKj4genodIYUED+Kc=", @@ -692,13 +725,13 @@ "type": "github" } }, - "nixpkgs_7": { + "nixpkgs_8": { "locked": { - "lastModified": 1751984180, - "narHash": "sha256-LwWRsENAZJKUdD3SpLluwDmdXY9F45ZEgCb0X+xgOL0=", + "lastModified": 1754498491, + "narHash": "sha256-erbiH2agUTD0Z30xcVSFcDHzkRvkRXOQ3lb887bcVrs=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "9807714d6944a957c2e036f84b0ff8caf9930bc0", + "rev": "c2ae88e026f9525daf89587f3cbee584b92b6134", "type": "github" }, "original": { @@ -708,13 +741,13 @@ "type": "github" } }, - "nixpkgs_8": { + "nixpkgs_9": { "locked": { - "lastModified": 1751984180, - "narHash": "sha256-LwWRsENAZJKUdD3SpLluwDmdXY9F45ZEgCb0X+xgOL0=", + "lastModified": 1754498491, + "narHash": "sha256-erbiH2agUTD0Z30xcVSFcDHzkRvkRXOQ3lb887bcVrs=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "9807714d6944a957c2e036f84b0ff8caf9930bc0", + "rev": "c2ae88e026f9525daf89587f3cbee584b92b6134", "type": "github" }, "original": { @@ -723,22 +756,6 @@ "type": "indirect" } }, - "nixpkgs_9": { - "locked": { - "lastModified": 1744868846, - "narHash": "sha256-5RJTdUHDmj12Qsv7XOhuospjAjATNiTMElplWnJE9Hs=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "ebe4301cbd8f81c4f8d3244b3632338bbeb6d49c", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, "pre-commit-hooks": { "inputs": { "flake-compat": "flake-compat_2", @@ -771,20 +788,38 @@ "hyprland-contrib": "hyprland-contrib", "lix-module": "lix-module", "niri": "niri", - "nixpkgs": "nixpkgs_8", + "nixpkgs": "nixpkgs_9", "sops-nix": "sops-nix" } }, + "rust-overlay": { + "inputs": { + "nixpkgs": "nixpkgs_2" + }, + "locked": { + "lastModified": 1754575663, + "narHash": "sha256-afOx8AG0KYtw7mlt6s6ahBBy7eEHZwws3iCRoiuRQS4=", + "owner": "oxalica", + "repo": "rust-overlay", + "rev": "6db0fb0e9cec2e9729dc52bf4898e6c135bb8a0f", + "type": "github" + }, + "original": { + "owner": "oxalica", + "repo": "rust-overlay", + "type": "github" + } + }, "sops-nix": { "inputs": { - "nixpkgs": "nixpkgs_9" + "nixpkgs": "nixpkgs_10" }, "locked": { - "lastModified": 1751606940, - "narHash": "sha256-KrDPXobG7DFKTOteqdSVeL1bMVitDcy7otpVZWDE6MA=", + "lastModified": 1754328224, + "narHash": "sha256-glPK8DF329/dXtosV7YSzRlF4n35WDjaVwdOMEoEXHA=", "owner": "Mic92", "repo": "sops-nix", - "rev": "3633fc4acf03f43b260244d94c71e9e14a2f6e0d", + "rev": "49021900e69812ba7ddb9e40f9170218a7eca9f4", "type": "github" }, "original": { @@ -851,11 +886,11 @@ ] }, "locked": { - "lastModified": 1751300244, - "narHash": "sha256-PFuv1TZVYvQhha0ac53E3YgdtmLShrN0t4T6xqHl0jE=", + "lastModified": 1753633878, + "narHash": "sha256-js2sLRtsOUA/aT10OCDaTjO80yplqwOIaLUqEe0nMx0=", "owner": "hyprwm", "repo": "xdg-desktop-portal-hyprland", - "rev": "6115f3fdcb2c1a57b4a80a69f3c797e47607b90a", + "rev": "371b96bd11ad2006ed4f21229dbd1be69bed3e8a", "type": "github" }, "original": { @@ -884,11 +919,11 @@ "xwayland-satellite-unstable": { "flake": false, "locked": { - "lastModified": 1751228685, - "narHash": "sha256-MENtauGBhJ+kDeFaawvWGXaFG3Il6qQzjaP0RmtfM0k=", + "lastModified": 1754533920, + "narHash": "sha256-fCZ68Yud1sUCq6UNXj0SDyiBgVA8gJUE+14ZFGsFJG8=", "owner": "Supreeeme", "repo": "xwayland-satellite", - "rev": "557ebeb616e03d5e4a8049862bbbd1f02c6f020b", + "rev": "e0d1dad25a158551ab58547b2ece4b7d5a19929c", "type": "github" }, "original": { From 991c4aae0a71b2f8fe4f2458e5ebddad34ae4233 Mon Sep 17 00:00:00 2001 From: Julia Lange Date: Mon, 11 Aug 2025 09:15:01 -0700 Subject: [PATCH 03/30] Syncthing, add kobayashi to wiki --- hosts/juri/host.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/hosts/juri/host.nix b/hosts/juri/host.nix index be01321..f7a1ab2 100644 --- a/hosts/juri/host.nix +++ b/hosts/juri/host.nix @@ -70,12 +70,13 @@ in { devices = { "homura".id = "NEP24DB-DVXAHTZ-TCCNREQ-Q5TSC7K-ZXPWC4L-5ELGKQX-4I2P47O-2FT5QAU"; "onizuka".id = "5S6QMND-MHD2HYR-DR6KQD4-6AWJTRL-FQUCR7W-FD2KBT3-AF6RE6R-F47KBQC"; + "kobayashi".id = "4JPJHO4-RZHZZYE-ZUDFCZ4-KLBTMLJ-CNZBWWB-NTESYNA-X3EDAZ6-OMKHQAT"; }; folders = { "wiki" = { path = "/var/lib/wiki"; - devices = [ "homura" "onizuka" ]; + devices = [ "homura" "onizuka" "kobayashi" ]; }; }; }; From 78a0ccb71a424c8061dbc69825b27a99b33adef2 Mon Sep 17 00:00:00 2001 From: Julia Lange Date: Fri, 5 Sep 2025 20:31:36 -0700 Subject: [PATCH 04/30] Flake update 2025-09-05 --- flake.lock | 173 ++++++++++++++++++++++++----------------------------- 1 file changed, 78 insertions(+), 95 deletions(-) diff --git a/flake.lock b/flake.lock index b2c06f6..d6589ec 100644 --- a/flake.lock +++ b/flake.lock @@ -7,11 +7,11 @@ "rust-overlay": "rust-overlay" }, "locked": { - "lastModified": 1754582951, - "narHash": "sha256-QivorP/1+7P4O6oEdrs6RFo9PptbX6ajBdvYifhzJc0=", + "lastModified": 1755609725, + "narHash": "sha256-r0Y5VDxpiA1AJy02VkmeCNudZ8/JJR1OP3ldtfce0ls=", "owner": "ezKEa", "repo": "aagl-gtk-on-nix", - "rev": "13cb81238ebbd0eeddb465c962413a0f795baa44", + "rev": "7566a0bcc55dbfaeb28791c06aa02060cf5bd0bf", "type": "github" }, "original": { @@ -23,15 +23,14 @@ "ags": { "inputs": { "astal": "astal", - "gnim": "gnim", "nixpkgs": "nixpkgs_3" }, "locked": { - "lastModified": 1754487835, - "narHash": "sha256-GRCkm7a1odlN3hHR1iBIxwmBPWAw1CDOnOdpmZGSKkQ=", + "lastModified": 1756679577, + "narHash": "sha256-pkfftqE2CxVN6nKDZvlNdBxIkb/x5ch4wVfwZMYNGCM=", "owner": "Aylur", "repo": "ags", - "rev": "8e91fcd52b807f576a794ccc9533bdf720ef5af7", + "rev": "04d51ac4082af3ec47e8a803417a1a55b75151d7", "type": "github" }, "original": { @@ -60,11 +59,11 @@ ] }, "locked": { - "lastModified": 1753216019, - "narHash": "sha256-zik7WISrR1ks2l6T1MZqZHb/OqroHdJnSnAehkE0kCk=", + "lastModified": 1755946532, + "narHash": "sha256-POePremlUY5GyA1zfbtic6XLxDaQcqHN6l+bIxdT5gc=", "owner": "hyprwm", "repo": "aquamarine", - "rev": "be166e11d86ba4186db93e10c54a141058bdce49", + "rev": "81584dae2df6ac79f6b6dae0ecb7705e95129ada", "type": "github" }, "original": { @@ -81,11 +80,11 @@ ] }, "locked": { - "lastModified": 1752404970, - "narHash": "sha256-XULTToDUkIshNXEO+YP2mAHdQv8bxWDvKjbamBfOC8E=", + "lastModified": 1756474652, + "narHash": "sha256-iiBU6itpEqE0spXeNJ3uJTfioSyKYjt5bNepykpDXTE=", "owner": "aylur", "repo": "astal", - "rev": "2c5eb54f39e1710c6e2c80915a240978beb3269a", + "rev": "20bd8318e4136fbd3d4eb2d64dbabc3acbc915dd", "type": "github" }, "original": { @@ -113,11 +112,11 @@ "flake-compat_2": { "flake": false, "locked": { - "lastModified": 1696426674, - "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "lastModified": 1747046372, + "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=", "owner": "edolstra", "repo": "flake-compat", - "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885", "type": "github" }, "original": { @@ -181,32 +180,16 @@ "type": "github" } }, - "gnim": { - "flake": false, - "locked": { - "lastModified": 1753090800, - "narHash": "sha256-6sS6KHong2cMGn+6xJwjiizZzwu2XUmp++DtiKZhFMU=", - "owner": "aylur", - "repo": "gnim", - "rev": "2f58f8444c4cb8fefeab7a9901a33e99cfa92457", - "type": "github" - }, - "original": { - "owner": "aylur", - "repo": "gnim", - "type": "github" - } - }, "home-manager": { "inputs": { "nixpkgs": "nixpkgs_4" }, "locked": { - "lastModified": 1754613544, - "narHash": "sha256-ueR1mGX4I4DWfDRRxxMphbKDNisDeMPMusN72VV1+cc=", + "lastModified": 1757075491, + "narHash": "sha256-a+NMGl5tcvm+hyfSG2DlVPa8nZLpsumuRj1FfcKb2mQ=", "owner": "nix-community", "repo": "home-manager", - "rev": "cc2fa2331aebf9661d22bb507d362b39852ac73f", + "rev": "f56bf065f9abedc7bc15e1f2454aa5c8edabaacf", "type": "github" }, "original": { @@ -260,11 +243,11 @@ ] }, "locked": { - "lastModified": 1752149140, - "narHash": "sha256-gbh1HL98Fdqu0jJIWN4OJQN7Kkth7+rbkFpSZLm/62A=", + "lastModified": 1755678602, + "narHash": "sha256-uEC5O/NIUNs1zmc1aH1+G3GRACbODjk2iS0ET5hXtuk=", "owner": "hyprwm", "repo": "hyprgraphics", - "rev": "340494a38b5ec453dfc542c6226481f736cc8a9a", + "rev": "157cc52065a104fc3b8fa542ae648b992421d1c7", "type": "github" }, "original": { @@ -289,11 +272,11 @@ "xdph": "xdph" }, "locked": { - "lastModified": 1754583328, - "narHash": "sha256-UyM03UZbu5MMil/iz1dSQv1BlfmzlfGdAZcE9ZV5DwY=", + "lastModified": 1756977414, + "narHash": "sha256-Hz5S4fILpYd1smWDZ+uLYjHgW22v6JS/04j15I4cFZE=", "ref": "refs/heads/main", - "rev": "afbd8796859775a50687daacb254cdd1ba22328f", - "revCount": 6354, + "rev": "4e785d12a91117cd5b255052799d1a051d9976c0", + "revCount": 6409, "type": "git", "url": "https://github.com/hyprwm/Hyprland" }, @@ -307,11 +290,11 @@ "nixpkgs": "nixpkgs_6" }, "locked": { - "lastModified": 1753252360, - "narHash": "sha256-PFAJoEqQWMlo1J+yZb+4HixmhbRVmmNl58e/AkLYDDI=", + "lastModified": 1755680610, + "narHash": "sha256-g7/g5o0spemkZCzPa8I21RgCmN0Kv41B5z9Z5HQWraY=", "owner": "hyprwm", "repo": "contrib", - "rev": "6839b23345b71db17cd408373de4f5605bf589b8", + "rev": "04721247f417256ca96acf28cdfe946cf1006263", "type": "github" }, "original": { @@ -454,11 +437,11 @@ ] }, "locked": { - "lastModified": 1753800567, - "narHash": "sha256-W0xgXsaqGa/5/7IBzKNhf0+23MqGPymYYfqT7ECqeTE=", + "lastModified": 1756117388, + "narHash": "sha256-oRDel6pNl/T2tI+nc/USU9ZP9w08dxtl7hiZxa0C/Wc=", "owner": "hyprwm", "repo": "hyprutils", - "rev": "c65d41d4f4e6ded6fdb9d508a73e2fe90e55cdf7", + "rev": "b2ae3204845f5f2f79b4703b441252d8ad2ecfd0", "type": "github" }, "original": { @@ -479,11 +462,11 @@ ] }, "locked": { - "lastModified": 1751897909, - "narHash": "sha256-FnhBENxihITZldThvbO7883PdXC/2dzW4eiNvtoV5Ao=", + "lastModified": 1755184602, + "narHash": "sha256-RCBQN8xuADB0LEgaKbfRqwm6CdyopE1xIEhNc67FAbw=", "owner": "hyprwm", "repo": "hyprwayland-scanner", - "rev": "fcca0c61f988a9d092cbb33e906775014c61579d", + "rev": "b3b0f1f40ae09d4447c20608e5a4faf8bf3c492d", "type": "github" }, "original": { @@ -535,11 +518,11 @@ "xwayland-satellite-unstable": "xwayland-satellite-unstable" }, "locked": { - "lastModified": 1754593792, - "narHash": "sha256-ufYmw5vGCUuMdLb8A4MkDKzaXUqlReu7A0wn9EbQ5do=", + "lastModified": 1757071535, + "narHash": "sha256-I3ppQKxd2oxQfwMCW04TSWnIwp5an5kTMY+tx0W8jaA=", "owner": "sodiboo", "repo": "niri-flake", - "rev": "e76792be7533a57d1420b9cdfe3efa4690a650f0", + "rev": "efa08fc58d7da5be64cfebc52b7dc44bf8d19ba9", "type": "github" }, "original": { @@ -551,16 +534,16 @@ "niri-stable": { "flake": false, "locked": { - "lastModified": 1748151941, - "narHash": "sha256-z4viQZLgC2bIJ3VrzQnR+q2F3gAOEQpU1H5xHtX/2fs=", + "lastModified": 1756556321, + "narHash": "sha256-RLD89dfjN0RVO86C/Mot0T7aduCygPGaYbog566F0Qo=", "owner": "YaLTeR", "repo": "niri", - "rev": "8ba57fcf25d2fc9565131684a839d58703f1dae7", + "rev": "01be0e65f4eb91a9cd624ac0b76aaeab765c7294", "type": "github" }, "original": { "owner": "YaLTeR", - "ref": "v25.05.1", + "ref": "v25.08", "repo": "niri", "type": "github" } @@ -568,11 +551,11 @@ "niri-unstable": { "flake": false, "locked": { - "lastModified": 1754589971, - "narHash": "sha256-gu0lWJbDkHs6+V9KHXwQHtZ2Hp72FxOjy3YisJ3qj9k=", + "lastModified": 1756926064, + "narHash": "sha256-5/1vyFRLvJWxhBgpPaV2orC0pjSgIny6JM6+joLyZok=", "owner": "YaLTeR", "repo": "niri", - "rev": "f74d83dccaa6e8fffb38c304dd5d1eae07b87d24", + "rev": "c69464c1288789020d9a086f86c970a7dc49b8c7", "type": "github" }, "original": { @@ -599,11 +582,11 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1754292888, - "narHash": "sha256-1ziydHSiDuSnaiPzCQh1mRFBsM2d2yRX9I+5OPGEmIE=", + "lastModified": 1757020766, + "narHash": "sha256-PLoSjHRa2bUbi1x9HoXgTx2AiuzNXs54c8omhadyvp0=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "ce01daebf8489ba97bd1609d185ea276efdeb121", + "rev": "fe83bbdde2ccdc2cb9573aa846abe8363f79a97a", "type": "github" }, "original": { @@ -647,11 +630,11 @@ }, "nixpkgs_3": { "locked": { - "lastModified": 1753694789, - "narHash": "sha256-cKgvtz6fKuK1Xr5LQW/zOUiAC0oSQoA9nOISB0pJZqM=", + "lastModified": 1756542300, + "narHash": "sha256-tlOn88coG5fzdyqz6R93SQL5Gpq+m/DsWpekNFhqPQk=", "owner": "nixos", "repo": "nixpkgs", - "rev": "dc9637876d0dcc8c9e5e22986b857632effeb727", + "rev": "d7600c775f877cd87b4f5a831c28aa94137377aa", "type": "github" }, "original": { @@ -663,11 +646,11 @@ }, "nixpkgs_4": { "locked": { - "lastModified": 1754214453, - "narHash": "sha256-Q/I2xJn/j1wpkGhWkQnm20nShYnG7TI99foDBpXm1SY=", + "lastModified": 1756542300, + "narHash": "sha256-tlOn88coG5fzdyqz6R93SQL5Gpq+m/DsWpekNFhqPQk=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "5b09dc45f24cf32316283e62aec81ffee3c3e376", + "rev": "d7600c775f877cd87b4f5a831c28aa94137377aa", "type": "github" }, "original": { @@ -679,11 +662,11 @@ }, "nixpkgs_5": { "locked": { - "lastModified": 1753939845, - "narHash": "sha256-K2ViRJfdVGE8tpJejs8Qpvvejks1+A4GQej/lBk5y7I=", + "lastModified": 1756266583, + "narHash": "sha256-cr748nSmpfvnhqSXPiCfUPxRz2FJnvf/RjJGvFfaCsM=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "94def634a20494ee057c76998843c015909d6311", + "rev": "8a6d5427d99ec71c64f0b93d45778c889005d9c2", "type": "github" }, "original": { @@ -727,11 +710,11 @@ }, "nixpkgs_8": { "locked": { - "lastModified": 1754498491, - "narHash": "sha256-erbiH2agUTD0Z30xcVSFcDHzkRvkRXOQ3lb887bcVrs=", + "lastModified": 1756787288, + "narHash": "sha256-rw/PHa1cqiePdBxhF66V7R+WAP8WekQ0mCDG4CFqT8Y=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "c2ae88e026f9525daf89587f3cbee584b92b6134", + "rev": "d0fc30899600b9b3466ddb260fd83deb486c32f1", "type": "github" }, "original": { @@ -743,11 +726,11 @@ }, "nixpkgs_9": { "locked": { - "lastModified": 1754498491, - "narHash": "sha256-erbiH2agUTD0Z30xcVSFcDHzkRvkRXOQ3lb887bcVrs=", + "lastModified": 1756787288, + "narHash": "sha256-rw/PHa1cqiePdBxhF66V7R+WAP8WekQ0mCDG4CFqT8Y=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "c2ae88e026f9525daf89587f3cbee584b92b6134", + "rev": "d0fc30899600b9b3466ddb260fd83deb486c32f1", "type": "github" }, "original": { @@ -766,11 +749,11 @@ ] }, "locked": { - "lastModified": 1750779888, - "narHash": "sha256-wibppH3g/E2lxU43ZQHC5yA/7kIKLGxVEnsnVK1BtRg=", + "lastModified": 1755960406, + "narHash": "sha256-RF7j6C1TmSTK9tYWO6CdEMtg6XZaUKcvZwOCD2SICZs=", "owner": "cachix", "repo": "git-hooks.nix", - "rev": "16ec914f6fb6f599ce988427d9d94efddf25fe6d", + "rev": "e891a93b193fcaf2fc8012d890dc7f0befe86ec2", "type": "github" }, "original": { @@ -815,11 +798,11 @@ "nixpkgs": "nixpkgs_10" }, "locked": { - "lastModified": 1754328224, - "narHash": "sha256-glPK8DF329/dXtosV7YSzRlF4n35WDjaVwdOMEoEXHA=", + "lastModified": 1754988908, + "narHash": "sha256-t+voe2961vCgrzPFtZxha0/kmFSHFobzF00sT8p9h0U=", "owner": "Mic92", "repo": "sops-nix", - "rev": "49021900e69812ba7ddb9e40f9170218a7eca9f4", + "rev": "3223c7a92724b5d804e9988c6b447a0d09017d48", "type": "github" }, "original": { @@ -886,11 +869,11 @@ ] }, "locked": { - "lastModified": 1753633878, - "narHash": "sha256-js2sLRtsOUA/aT10OCDaTjO80yplqwOIaLUqEe0nMx0=", + "lastModified": 1755354946, + "narHash": "sha256-zdov5f/GcoLQc9qYIS1dUTqtJMeDqmBmo59PAxze6e4=", "owner": "hyprwm", "repo": "xdg-desktop-portal-hyprland", - "rev": "371b96bd11ad2006ed4f21229dbd1be69bed3e8a", + "rev": "a10726d6a8d0ef1a0c645378f983b6278c42eaa0", "type": "github" }, "original": { @@ -902,16 +885,16 @@ "xwayland-satellite-stable": { "flake": false, "locked": { - "lastModified": 1748488455, - "narHash": "sha256-IiLr1alzKFIy5tGGpDlabQbe6LV1c9ABvkH6T5WmyRI=", + "lastModified": 1755491097, + "narHash": "sha256-m+9tUfsmBeF2Gn4HWa6vSITZ4Gz1eA1F5Kh62B0N4oE=", "owner": "Supreeeme", "repo": "xwayland-satellite", - "rev": "3ba30b149f9eb2bbf42cf4758d2158ca8cceef73", + "rev": "388d291e82ffbc73be18169d39470f340707edaa", "type": "github" }, "original": { "owner": "Supreeeme", - "ref": "v0.6", + "ref": "v0.7", "repo": "xwayland-satellite", "type": "github" } @@ -919,11 +902,11 @@ "xwayland-satellite-unstable": { "flake": false, "locked": { - "lastModified": 1754533920, - "narHash": "sha256-fCZ68Yud1sUCq6UNXj0SDyiBgVA8gJUE+14ZFGsFJG8=", + "lastModified": 1756869116, + "narHash": "sha256-SGcqX3amLH4xiA+dwF2Fu2mt1O8zHc60v0+NEZGDJhw=", "owner": "Supreeeme", "repo": "xwayland-satellite", - "rev": "e0d1dad25a158551ab58547b2ece4b7d5a19929c", + "rev": "41e865c8d35468c67b991ef5a245a98b3e44108c", "type": "github" }, "original": { From 3a49fecf1dfb3f6e4c48d10d847f4c0325fe88bb Mon Sep 17 00:00:00 2001 From: Julia Lange Date: Mon, 15 Sep 2025 09:15:39 -0700 Subject: [PATCH 05/30] Syncthing, add jibril to wiki --- hosts/juri/host.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/hosts/juri/host.nix b/hosts/juri/host.nix index f7a1ab2..96c2110 100644 --- a/hosts/juri/host.nix +++ b/hosts/juri/host.nix @@ -71,12 +71,13 @@ in { "homura".id = "NEP24DB-DVXAHTZ-TCCNREQ-Q5TSC7K-ZXPWC4L-5ELGKQX-4I2P47O-2FT5QAU"; "onizuka".id = "5S6QMND-MHD2HYR-DR6KQD4-6AWJTRL-FQUCR7W-FD2KBT3-AF6RE6R-F47KBQC"; "kobayashi".id = "4JPJHO4-RZHZZYE-ZUDFCZ4-KLBTMLJ-CNZBWWB-NTESYNA-X3EDAZ6-OMKHQAT"; + "jibril".id = "EWGTILX-AJPLRZ7-UNGM3DJ-5EXGBTB-SHEZKMB-7A6QSER-H6O73FH-JSXCZQL"; }; folders = { "wiki" = { path = "/var/lib/wiki"; - devices = [ "homura" "onizuka" "kobayashi" ]; + devices = [ "homura" "onizuka" "kobayashi" "jibril" ]; }; }; }; From 0ce82962bba78aecdb77403f3184478e20155126 Mon Sep 17 00:00:00 2001 From: Julia Lange Date: Tue, 26 Aug 2025 08:54:57 -0700 Subject: [PATCH 06/30] OSAuto, add extraPkgs option to OS --- nixosModules/automatic/default.nix | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/nixosModules/automatic/default.nix b/nixosModules/automatic/default.nix index 7a680f6..2f80ace 100644 --- a/nixosModules/automatic/default.nix +++ b/nixosModules/automatic/default.nix @@ -1,12 +1,13 @@ { config, pkgs, lib, hostname, usernameList, ... }: { - options = { - system.timezone = lib.mkOption { default = "America/Los_Angeles"; }; - system.extraFonts = lib.mkOption { default = []; }; - system.isNonEFI = lib.mkEnableOption + options.system = { + timezone = lib.mkOption { default = "America/Los_Angeles"; }; + extraFonts = lib.mkOption { default = []; }; + extraPkgs = lib.mkOption { default = []; }; + isNonEFI = lib.mkEnableOption "Enable if you are running a non-EFI system"; - system.users.bigWheels = lib.mkOption { default = []; }; + users.bigWheels = lib.mkOption { default = []; }; }; config = lib.mkMerge [ @@ -33,7 +34,7 @@ git neovim xdg-user-dirs - ]; + ] ++ config.system.extraPkgs; # XDG Compliance nix.settings.use-xdg-base-directories = true; From 641e226f9bbff3a4d33448c421186ad4b8259ae3 Mon Sep 17 00:00:00 2001 From: Julia Lange Date: Tue, 26 Aug 2025 08:55:51 -0700 Subject: [PATCH 07/30] Fava, setup service; enable for Juri --- hosts/juri/host.nix | 5 +++ nixosModules/services/fava/service.nix | 45 ++++++++++++++++++++++++++ 2 files changed, 50 insertions(+) create mode 100644 nixosModules/services/fava/service.nix diff --git a/hosts/juri/host.nix b/hosts/juri/host.nix index 96c2110..9ca4456 100644 --- a/hosts/juri/host.nix +++ b/hosts/juri/host.nix @@ -65,6 +65,11 @@ in { server.domain = "ginko.woach.me"; }; + fava = { + enable = true; + port = "5128"; + }; + syncthing = { enable = true; devices = { diff --git a/nixosModules/services/fava/service.nix b/nixosModules/services/fava/service.nix new file mode 100644 index 0000000..12ea6c2 --- /dev/null +++ b/nixosModules/services/fava/service.nix @@ -0,0 +1,45 @@ +{ config, pkgs, lib, ... }: + +{ + options.fava = { + enable = lib.mkEnableOption "Enables fava double entry accounting"; + ledgerFile = lib.mkOption { default = "/var/lib/fava/ledger.beancount"; }; + port = lib.mkOption { default = "5000"; }; + host = lib.mkOption { default = "localhost"; }; + }; + + config = lib.mkIf config.fava.enable { + systemd.services.fava = { + description = "Fava"; + after = [ "network-online.target" ]; + wants = [ "network-online.target" ]; + wantedBy = [ "multi-user.target" ]; + serviceConfig = { + ExecStart = "${pkgs.fava}/bin/fava --port ${config.fava.port} --host ${config.fava.host} ${config.fava.ledgerFile}"; + Type = "simple"; + User = "fava"; + Group = "fava"; + Restart = "on-failure"; + RestartSec = "5s"; + NoNewPrivileges = true; + PrivateTmp = true; + PrivateDevices = true; + ProtectHome = true; + ProtectSystem = "full"; + ReadWriteDirectories = "/var/lib/fava"; + }; + }; + + users.users.fava = { + home = "/var/lib/fava"; + createHome = true; + isSystemUser = true; + group = "fava"; + }; + users.groups.fava = {}; + + system.extraPkgs = [ + pkgs.beancount + ]; + }; +} From 1de1ba027b416f02e690993a102efe65dcb4d84e Mon Sep 17 00:00:00 2001 From: Julia Lange Date: Mon, 15 Sep 2025 10:42:36 -0700 Subject: [PATCH 08/30] Pds, change pds to bluesky-pds --- nixosModules/services/pds/service.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nixosModules/services/pds/service.nix b/nixosModules/services/pds/service.nix index 500179e..d72ef24 100644 --- a/nixosModules/services/pds/service.nix +++ b/nixosModules/services/pds/service.nix @@ -2,14 +2,14 @@ { options.pds = { - enable = lib.mkEnableOption "Enables atproto Personal Data Server"; + enable = lib.mkEnableOption "Enables atproto (blueksy) Personal Data Server"; hostname = lib.mkOption { type = lib.types.str; }; adminEmail = lib.mkOption { type = lib.types.str; }; environmentFile = lib.mkOption { type = lib.types.path; }; }; config = lib.mkIf config.pds.enable { - services.pds = { + services.bluesky-pds = { enable = true; environmentFiles = [ config.pds.environmentFile ]; settings = { From a2939e561334679090000daea1f34483395dbdb3 Mon Sep 17 00:00:00 2001 From: Julia Lange Date: Mon, 15 Sep 2025 11:29:52 -0700 Subject: [PATCH 09/30] Fava, change ledgers to list --- nixosModules/services/fava/service.nix | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/nixosModules/services/fava/service.nix b/nixosModules/services/fava/service.nix index 12ea6c2..f43930f 100644 --- a/nixosModules/services/fava/service.nix +++ b/nixosModules/services/fava/service.nix @@ -3,9 +3,12 @@ { options.fava = { enable = lib.mkEnableOption "Enables fava double entry accounting"; - ledgerFile = lib.mkOption { default = "/var/lib/fava/ledger.beancount"; }; + ledgerFiles = lib.mkOption { + default = ["/var/lib/fava/ledger.beancount"]; + }; port = lib.mkOption { default = "5000"; }; host = lib.mkOption { default = "localhost"; }; + favaHome = lib.mkOption { default = "/var/lib/fava"; }; }; config = lib.mkIf config.fava.enable { @@ -15,7 +18,13 @@ wants = [ "network-online.target" ]; wantedBy = [ "multi-user.target" ]; serviceConfig = { - ExecStart = "${pkgs.fava}/bin/fava --port ${config.fava.port} --host ${config.fava.host} ${config.fava.ledgerFile}"; + ExecStart = with config.fava; let + command = lib.concatStringsSep " " ([ + "${pkgs.fava}/bin/fava" + "--port ${port}" + "--host ${host}" + ] ++ ["--"] ++ ledgerFiles); + in command; Type = "simple"; User = "fava"; Group = "fava"; @@ -26,12 +35,12 @@ PrivateDevices = true; ProtectHome = true; ProtectSystem = "full"; - ReadWriteDirectories = "/var/lib/fava"; + ReadWriteDirectories = config.fava.favaHome; }; }; users.users.fava = { - home = "/var/lib/fava"; + home = config.fava.favaHome; createHome = true; isSystemUser = true; group = "fava"; From 5c996e0885d2786f65bdb00d8bcd3b62bfc1f110 Mon Sep 17 00:00:00 2001 From: Julia Lange Date: Tue, 16 Sep 2025 17:35:34 -0700 Subject: [PATCH 10/30] Fava, change port to number; open port --- hosts/juri/host.nix | 2 +- nixosModules/services/fava/service.nix | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/hosts/juri/host.nix b/hosts/juri/host.nix index 9ca4456..57c9a47 100644 --- a/hosts/juri/host.nix +++ b/hosts/juri/host.nix @@ -67,7 +67,7 @@ in { fava = { enable = true; - port = "5128"; + port = 5128; }; syncthing = { diff --git a/nixosModules/services/fava/service.nix b/nixosModules/services/fava/service.nix index f43930f..b8bee8f 100644 --- a/nixosModules/services/fava/service.nix +++ b/nixosModules/services/fava/service.nix @@ -6,7 +6,7 @@ ledgerFiles = lib.mkOption { default = ["/var/lib/fava/ledger.beancount"]; }; - port = lib.mkOption { default = "5000"; }; + port = lib.mkOption { default = 5000; }; host = lib.mkOption { default = "localhost"; }; favaHome = lib.mkOption { default = "/var/lib/fava"; }; }; @@ -21,7 +21,7 @@ ExecStart = with config.fava; let command = lib.concatStringsSep " " ([ "${pkgs.fava}/bin/fava" - "--port ${port}" + "--port ${builtins.toString port}" "--host ${host}" ] ++ ["--"] ++ ledgerFiles); in command; @@ -39,6 +39,8 @@ }; }; + networking.firewall.allowedTCPPorts = [ config.fava.port ]; + users.users.fava = { home = config.fava.favaHome; createHome = true; From ec38f08e3ce0667a84fbbba8a9f090183090c6f8 Mon Sep 17 00:00:00 2001 From: Julia Lange Date: Tue, 16 Sep 2025 18:30:10 -0700 Subject: [PATCH 11/30] Onizuka, vertical second monitor --- hosts/onizuka/users/pan/user.nix | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/hosts/onizuka/users/pan/user.nix b/hosts/onizuka/users/pan/user.nix index 0867c8f..b6bb28e 100644 --- a/hosts/onizuka/users/pan/user.nix +++ b/hosts/onizuka/users/pan/user.nix @@ -27,8 +27,15 @@ enable = true; mouse.accel = -0.53; outputs = { - "DP-1".mode = { width = 2560; height = 1440; refresh = 144.000; }; - "DP-2".mode = { width = 2560; height = 1440; refresh = 144.000; }; + "DP-1" = { + position = { x = 2560; y = -100; }; + mode = { width = 2560; height = 1440; refresh = 144.000; }; + transform.rotation = 270; + }; + "DP-2" = { + position = { x = 0; y = 0; }; + mode = { width = 2560; height = 1440; refresh = 144.000; }; + }; }; }; From 41e952efafa82f62d4d879927786eb2da14919ce Mon Sep 17 00:00:00 2001 From: Julia Lange Date: Tue, 16 Sep 2025 18:30:23 -0700 Subject: [PATCH 12/30] Onizuka, update extra packages --- hosts/onizuka/users/pan/user.nix | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/hosts/onizuka/users/pan/user.nix b/hosts/onizuka/users/pan/user.nix index b6bb28e..7a03bfb 100644 --- a/hosts/onizuka/users/pan/user.nix +++ b/hosts/onizuka/users/pan/user.nix @@ -110,10 +110,8 @@ lutris.enable = true; extraPkgs = with pkgs; [ - # Applications - ani-cli # Easy anime player - lutgen # LUT generator - prismlauncher # Minecraft launcher - jdk8 # For playing older minecraft + # Applications + logseq + claude-code ]; } From 0447a25a772df444d5db6739dcd214af765d724f Mon Sep 17 00:00:00 2001 From: Julia Lange Date: Tue, 16 Sep 2025 18:30:47 -0700 Subject: [PATCH 13/30] Greetd, switch to direct packages --- nixosModules/services/displaymanager/service.nix | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/nixosModules/services/displaymanager/service.nix b/nixosModules/services/displaymanager/service.nix index 92f2d75..57a95b3 100644 --- a/nixosModules/services/displaymanager/service.nix +++ b/nixosModules/services/displaymanager/service.nix @@ -12,13 +12,10 @@ else (if config.niri.enable then "niri" else null); in { enable = true; - package = pkgs.greetd.tuigreet; + package = pkgs.tuigreet; settings = { - terminal = { - vt = 2; - }; default_session = lib.mkIf (wm != null) { - command = "${pkgs.greetd.tuigreet}/bin/tuigreet --time --cmd ${wm}"; + command = "${pkgs.tuigreet}/bin/tuigreet --time --cmd ${wm}"; user = "greeter"; }; }; From 1e8981007438ec76008de356683d065a5940f0fa Mon Sep 17 00:00:00 2001 From: Julia Lange Date: Tue, 16 Sep 2025 18:45:24 -0700 Subject: [PATCH 14/30] Caddy, DNS Challenges; Headscale, Magic_dns Changed to using Porkbun DNS Challenges for Caddy. This enables wildcard certificates. Documentation - https://caddyserver.com/docs/caddyfile/patterns#wildcard-certificates - https://caddyserver.com/docs/automatic-https#dns-challenge Changed headscale to use a domain I own instead of the beautiful madoka OP. --- hosts/juri/host.nix | 8 ++++++++ hosts/juri/secrets.yaml | 12 ++++-------- nixosModules/services/caddy/service.nix | 14 ++++++++++++++ nixosModules/services/headscale/service.nix | 2 +- 4 files changed, 27 insertions(+), 9 deletions(-) diff --git a/hosts/juri/host.nix b/hosts/juri/host.nix index 57c9a47..9f908bf 100644 --- a/hosts/juri/host.nix +++ b/hosts/juri/host.nix @@ -17,12 +17,14 @@ in { forgejoPassword = { owner = "forgejo"; }; + caddyApi = {}; }; }; caddy = { enable = true; adminEmail = email; + environmentFile = config.sops.secrets.caddyApi.path; vhosts = { "juri.woach.me" = { extraConfig = '' @@ -39,6 +41,12 @@ in { extraConfig = '' reverse_proxy :${builtins.toString config.headscale.server.port} ''; + serverAliases = [ "*.dns.ginko.woach.me" ]; + }; + "juri.${config.services.headscale.settings.dns.base_domain}" = { + extraConfig = '' + reverse_proxy :${builtins.toString config.fava.port} + ''; }; }; }; diff --git a/hosts/juri/secrets.yaml b/hosts/juri/secrets.yaml index 6800ced..145fe69 100644 --- a/hosts/juri/secrets.yaml +++ b/hosts/juri/secrets.yaml @@ -1,10 +1,7 @@ pdsEnv: ENC[AES256_GCM,data:W1kKvcntrBOSgo7gLxwO8A9ZkWjkRWfUDZUMy5YNvhzqYS5xBPGL4QEcknWtQaVfaZklnO/+Gr5JEq/qgU2nIEY3xazfjYl4MNkZBhuwI20RwZB9voVubzHbPwjLtZbNTXRMa7BzO6a3ieSudKWAMP0dumG3/+wHtTYOM6lxUBfpw51+lNikc7kLqI+lzys0jC37ajP0/cm/U644BD0ozSSF289CLtXSkLt8sgHvA1ci8M+wEEq4aJ0JTVs98m0E7Udaride4tjLelESx3hPdoVzBIEa,iv:sQiYE//UGGA2qPfbM9//FcKEued6t8ORiKW8kfzLtz0=,tag:Fj+CzBgL8MH/6FLnUadIPQ==,type:str] forgejoPassword: ENC[AES256_GCM,data:cQJJbf07v4HngeSYE2TwTcAx8WY=,iv:533TO2MfJVop93U4T7yIIiu6i4swDtduFuu79ZzFYFU=,tag:Pz5u/NqOSTKz2zFNzNLY5w==,type:str] +caddyApi: ENC[AES256_GCM,data:mWb/pMr1cxbz6K2ZQkV3AF93/GtIPZyYrJfDDbisK3GhMlWOVZNWDzw7cC/e+1w5aSxeGmOAE13eETVpV9q8W2Bjg8IADn/4j8Su90LxAr+U77pVoF0gUvv1CagEXM8myx+GgaAG80xIeSUNUMOMsgUhJTBoaMrVpHDEPREsa9XyRzEB4X3uQnKx4tUNcUqGSUu5wvMfXDF7rNzJhkVEfE6i,iv:h5QLei1PcZUc4djaqbId9VFv8Rr2dTa7CNowxZVlRUA=,tag:nBfyFVU/fBboswcVsGKL4A==,type:str] sops: - kms: [] - gcp_kms: [] - azure_kv: [] - hc_vault: [] age: - recipient: age1ey3wr2wnkgny3dfgvnyrf0cptwzr7s5x464p2y9ya58lpay8lfrsds3y68 enc: | @@ -33,8 +30,7 @@ sops: N3NhMHp3V1ppclQvWTIxNkM5RjhRV0EKl8goB9tCl0BGi4jN7Fzuh0Ajm146x2Hu vesj+ENu2E9II3OeYuBndD+Y4x2zugIpzNOPg1V8zkarJOf7R/sXEw== -----END AGE ENCRYPTED FILE----- - lastmodified: "2025-03-24T19:31:53Z" - mac: ENC[AES256_GCM,data:5FVSw5wMXRl4qZQmD4yS7g/9qztaveDiU7mgifiOhOBqQrtvv5I/V7rkb5nKew+N3vKmg4vpWBL4kFxsQvWekAPT+ToNED4XhB5H5wZ/RyXga0CU0PMKWtGdEKdyjs4cIZjfScclW0ONgaSkv6XtCLj1V+ukPY3WBI3/2jnf6dA=,iv:7p1qEG1+E7SNLv64/aqjm1ppF4jQ/5h+Z5iHzd8sGDA=,tag:hG59vDcqha1MQf+kN1jguw==,type:str] - pgp: [] + lastmodified: "2025-09-17T01:49:06Z" + mac: ENC[AES256_GCM,data:THEyH3KP9VVFiP7NAPn693dolWIWByb3wSjwC9QLSTe3cgdJbFqa5GvVzFa6xM1ue/GYStMwYIZt0+3LP5Wz5B2KWNy2ljvgFXjzlDHxSOzkWi3/yP9fnuRyf0vujW2Q0ltkXMleyKSisZCD87FjuUz1J9LBYQP64e0mhyB5jL4=,iv:WUDt4AusjrQVhDFk/XSohBlmxjp6Dp6EoMe08yQ0RYg=,tag:LC2j1Bvgo7h29O9mmgIFCw==,type:str] unencrypted_suffix: _unencrypted - version: 3.9.4 + version: 3.10.2 diff --git a/nixosModules/services/caddy/service.nix b/nixosModules/services/caddy/service.nix index b07fa3c..429340c 100644 --- a/nixosModules/services/caddy/service.nix +++ b/nixosModules/services/caddy/service.nix @@ -5,14 +5,28 @@ enable = lib.mkEnableOption "Enables caddy webserver"; vhosts = lib.mkOption {}; adminEmail = lib.mkOption { type = lib.types.str; }; + environmentFile = lib.mkOption {}; }; config = lib.mkIf config.caddy.enable { networking.firewall.allowedTCPPorts = [ 80 443 ]; services.caddy = { enable = true; + globalConfig = '' + acme_dns porkbun { + api_key {$APIKEY} + api_secret_key {$APISECRETKEY} + } + ''; + package = pkgs.caddy.withPlugins { + plugins = [ "github.com/caddy-dns/porkbun@v0.3.1" ]; + hash = "sha256-PUHu+KPywdJMuPLHPtQhUaw3Cv1pED5XQ1MOzlT/6h4="; + }; virtualHosts = config.caddy.vhosts; email = config.caddy.adminEmail; }; + systemd.services.caddy.serviceConfig.EnvironmentFile = [ + config.caddy.environmentFile + ]; }; } diff --git a/nixosModules/services/headscale/service.nix b/nixosModules/services/headscale/service.nix index 12fbad7..4f692f1 100644 --- a/nixosModules/services/headscale/service.nix +++ b/nixosModules/services/headscale/service.nix @@ -17,7 +17,7 @@ settings = { server_url = "https://${config.headscale.server.domain}"; dns = { - base_domain = "connect.claris"; + base_domain = "dns.${config.headscale.server.domain}"; override_local_dns = false; }; }; From 5bddc3384b68e51ec27eb74d1cf63f582053f38a Mon Sep 17 00:00:00 2001 From: Julia Lange Date: Wed, 5 Nov 2025 08:27:13 -0800 Subject: [PATCH 15/30] Flake update 2025-11-05 & Niri fix --- flake.lock | 170 ++++++++++++------------ hmModules/apps/git/app.nix | 10 +- hmModules/apps/lf/app.nix | 2 +- hmModules/apps/niri/app.nix | 4 +- nixosModules/services/caddy/service.nix | 2 +- 5 files changed, 95 insertions(+), 93 deletions(-) diff --git a/flake.lock b/flake.lock index d6589ec..50598c2 100644 --- a/flake.lock +++ b/flake.lock @@ -7,11 +7,11 @@ "rust-overlay": "rust-overlay" }, "locked": { - "lastModified": 1755609725, - "narHash": "sha256-r0Y5VDxpiA1AJy02VkmeCNudZ8/JJR1OP3ldtfce0ls=", + "lastModified": 1762188647, + "narHash": "sha256-OAXK4p7WIYUcp8xx9m0RZUpV6XUDEhkoM4efI8dzPiU=", "owner": "ezKEa", "repo": "aagl-gtk-on-nix", - "rev": "7566a0bcc55dbfaeb28791c06aa02060cf5bd0bf", + "rev": "1172be1377bc65581004f4d5927b58c5c7d96639", "type": "github" }, "original": { @@ -26,11 +26,11 @@ "nixpkgs": "nixpkgs_3" }, "locked": { - "lastModified": 1756679577, - "narHash": "sha256-pkfftqE2CxVN6nKDZvlNdBxIkb/x5ch4wVfwZMYNGCM=", + "lastModified": 1762046771, + "narHash": "sha256-baVZvZZN0t9F3fvVhxmQA1/oNykXGd/YhlF19JqCLc8=", "owner": "Aylur", "repo": "ags", - "rev": "04d51ac4082af3ec47e8a803417a1a55b75151d7", + "rev": "fe13af2daec716226ccdb3158606a8577853e0ff", "type": "github" }, "original": { @@ -59,11 +59,11 @@ ] }, "locked": { - "lastModified": 1755946532, - "narHash": "sha256-POePremlUY5GyA1zfbtic6XLxDaQcqHN6l+bIxdT5gc=", + "lastModified": 1761420899, + "narHash": "sha256-kxGCip6GNbcbNWKu4J2iKbNYfFTS8Zbjg9CWp0zmFoM=", "owner": "hyprwm", "repo": "aquamarine", - "rev": "81584dae2df6ac79f6b6dae0ecb7705e95129ada", + "rev": "62479232aae42c1ef09c2c027c8cfd91df060897", "type": "github" }, "original": { @@ -80,11 +80,11 @@ ] }, "locked": { - "lastModified": 1756474652, - "narHash": "sha256-iiBU6itpEqE0spXeNJ3uJTfioSyKYjt5bNepykpDXTE=", + "lastModified": 1762012522, + "narHash": "sha256-ncEN4OVFM5M9VFc4oR3gOI5K8r99GcYxtU+Cf4Z8pbs=", "owner": "aylur", "repo": "astal", - "rev": "20bd8318e4136fbd3d4eb2d64dbabc3acbc915dd", + "rev": "671d4229c798834190a50fb8b8d8addd19b529e9", "type": "github" }, "original": { @@ -96,11 +96,11 @@ "flake-compat": { "flake": false, "locked": { - "lastModified": 1747046372, - "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=", + "lastModified": 1761588595, + "narHash": "sha256-XKUZz9zewJNUj46b4AJdiRZJAvSZ0Dqj2BNfXvFlJC4=", "owner": "edolstra", "repo": "flake-compat", - "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885", + "rev": "f387cd2afec9419c8ee37694406ca490c3f34ee5", "type": "github" }, "original": { @@ -185,11 +185,11 @@ "nixpkgs": "nixpkgs_4" }, "locked": { - "lastModified": 1757075491, - "narHash": "sha256-a+NMGl5tcvm+hyfSG2DlVPa8nZLpsumuRj1FfcKb2mQ=", + "lastModified": 1762351818, + "narHash": "sha256-0ptUDbYwxv1kk/uzEX4+NJjY2e16MaAhtzAOJ6K0TG0=", "owner": "nix-community", "repo": "home-manager", - "rev": "f56bf065f9abedc7bc15e1f2454aa5c8edabaacf", + "rev": "b959c67241cae17fc9e4ee7eaf13dfa8512477ea", "type": "github" }, "original": { @@ -243,11 +243,11 @@ ] }, "locked": { - "lastModified": 1755678602, - "narHash": "sha256-uEC5O/NIUNs1zmc1aH1+G3GRACbODjk2iS0ET5hXtuk=", + "lastModified": 1760445448, + "narHash": "sha256-fXGjL6dw31FPFRrmIemzGiNSlfvEJTJNsmadZi+qNhI=", "owner": "hyprwm", "repo": "hyprgraphics", - "rev": "157cc52065a104fc3b8fa542ae648b992421d1c7", + "rev": "50fb9f069219f338a11cf0bcccb9e58357d67757", "type": "github" }, "original": { @@ -272,11 +272,11 @@ "xdph": "xdph" }, "locked": { - "lastModified": 1756977414, - "narHash": "sha256-Hz5S4fILpYd1smWDZ+uLYjHgW22v6JS/04j15I4cFZE=", + "lastModified": 1762269308, + "narHash": "sha256-3fTMnF1E7BsZ7NlmFmPo6+SRFm4FELP45IDLHcGLZ1s=", "ref": "refs/heads/main", - "rev": "4e785d12a91117cd5b255052799d1a051d9976c0", - "revCount": 6409, + "rev": "46b71eda6423cc9c3b19cb310c3344e81ac624c5", + "revCount": 6551, "type": "git", "url": "https://github.com/hyprwm/Hyprland" }, @@ -290,11 +290,11 @@ "nixpkgs": "nixpkgs_6" }, "locked": { - "lastModified": 1755680610, - "narHash": "sha256-g7/g5o0spemkZCzPa8I21RgCmN0Kv41B5z9Z5HQWraY=", + "lastModified": 1759613406, + "narHash": "sha256-PzgQJydp+RlKvwDi807pXPlURdIAVqLppZDga3DwPqg=", "owner": "hyprwm", "repo": "contrib", - "rev": "04721247f417256ca96acf28cdfe946cf1006263", + "rev": "32e1a75b65553daefb419f0906ce19e04815aa3a", "type": "github" }, "original": { @@ -315,11 +315,11 @@ ] }, "locked": { - "lastModified": 1749046714, - "narHash": "sha256-kymV5FMnddYGI+UjwIw8ceDjdeg7ToDVjbHCvUlhn14=", + "lastModified": 1759610243, + "narHash": "sha256-+KEVnKBe8wz+a6dTLq8YDcF3UrhQElwsYJaVaHXJtoI=", "owner": "hyprwm", "repo": "hyprland-protocols", - "rev": "613878cb6f459c5e323aaafe1e6f388ac8a36330", + "rev": "bd153e76f751f150a09328dbdeb5e4fab9d23622", "type": "github" }, "original": { @@ -383,11 +383,11 @@ ] }, "locked": { - "lastModified": 1753819801, - "narHash": "sha256-tHe6XeNeVeKapkNM3tcjW4RuD+tB2iwwoogWJOtsqTI=", + "lastModified": 1759080228, + "narHash": "sha256-RgDoAja0T1hnF0pTc56xPfLfFOO8Utol2iITwYbUhTk=", "owner": "hyprwm", "repo": "hyprland-qtutils", - "rev": "b308a818b9dcaa7ab8ccab891c1b84ebde2152bc", + "rev": "629b15c19fa4082e4ce6be09fdb89e8c3312aed7", "type": "github" }, "original": { @@ -412,11 +412,11 @@ ] }, "locked": { - "lastModified": 1753622892, - "narHash": "sha256-0K+A+gmOI8IklSg5It1nyRNv0kCNL51duwnhUO/B8JA=", + "lastModified": 1758927902, + "narHash": "sha256-LZgMds7M94+vuMql2bERQ6LiFFdhgsEFezE4Vn+Ys3A=", "owner": "hyprwm", "repo": "hyprlang", - "rev": "23f0debd2003f17bd65f851cd3f930cff8a8c809", + "rev": "4dafa28d4f79877d67a7d1a654cddccf8ebf15da", "type": "github" }, "original": { @@ -437,11 +437,11 @@ ] }, "locked": { - "lastModified": 1756117388, - "narHash": "sha256-oRDel6pNl/T2tI+nc/USU9ZP9w08dxtl7hiZxa0C/Wc=", + "lastModified": 1762208756, + "narHash": "sha256-hC1jb4tdjFfEuU18KQiMgz5XPAO+d5SfbjAUS7haLl4=", "owner": "hyprwm", "repo": "hyprutils", - "rev": "b2ae3204845f5f2f79b4703b441252d8ad2ecfd0", + "rev": "164a30b3d8b3174a32ac7326782476f1188e6118", "type": "github" }, "original": { @@ -518,11 +518,11 @@ "xwayland-satellite-unstable": "xwayland-satellite-unstable" }, "locked": { - "lastModified": 1757071535, - "narHash": "sha256-I3ppQKxd2oxQfwMCW04TSWnIwp5an5kTMY+tx0W8jaA=", + "lastModified": 1762341801, + "narHash": "sha256-zx7UxreMz646qikxw+So7eGRQeWccKFZxuMvJowJuFs=", "owner": "sodiboo", "repo": "niri-flake", - "rev": "efa08fc58d7da5be64cfebc52b7dc44bf8d19ba9", + "rev": "20aadad64b8b8cbebc71371713c141d91d7f8172", "type": "github" }, "original": { @@ -551,11 +551,11 @@ "niri-unstable": { "flake": false, "locked": { - "lastModified": 1756926064, - "narHash": "sha256-5/1vyFRLvJWxhBgpPaV2orC0pjSgIny6JM6+joLyZok=", + "lastModified": 1762146685, + "narHash": "sha256-anRlNG6t7esBbF1+ALDeathVBSclA0PEL52Vo0WnN5g=", "owner": "YaLTeR", "repo": "niri", - "rev": "c69464c1288789020d9a086f86c970a7dc49b8c7", + "rev": "a2ca2b3c866bc781b12c334a9f949b3db6d7c943", "type": "github" }, "original": { @@ -566,11 +566,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1754498491, - "narHash": "sha256-erbiH2agUTD0Z30xcVSFcDHzkRvkRXOQ3lb887bcVrs=", + "lastModified": 1761672384, + "narHash": "sha256-o9KF3DJL7g7iYMZq9SWgfS1BFlNbsm6xplRjVlOCkXI=", "owner": "nixos", "repo": "nixpkgs", - "rev": "c2ae88e026f9525daf89587f3cbee584b92b6134", + "rev": "08dacfca559e1d7da38f3cf05f1f45ee9bfd213c", "type": "github" }, "original": { @@ -582,11 +582,11 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1757020766, - "narHash": "sha256-PLoSjHRa2bUbi1x9HoXgTx2AiuzNXs54c8omhadyvp0=", + "lastModified": 1762233356, + "narHash": "sha256-cGS3lLTYusbEP/IJIWGgnkzIl+FA5xDvtiHyjalGr4k=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "fe83bbdde2ccdc2cb9573aa846abe8363f79a97a", + "rev": "ca534a76c4afb2bdc07b681dbc11b453bab21af8", "type": "github" }, "original": { @@ -598,11 +598,11 @@ }, "nixpkgs_10": { "locked": { - "lastModified": 1744868846, - "narHash": "sha256-5RJTdUHDmj12Qsv7XOhuospjAjATNiTMElplWnJE9Hs=", + "lastModified": 1760596604, + "narHash": "sha256-J/i5K6AAz/y5dBePHQOuzC7MbhyTOKsd/GLezSbEFiM=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "ebe4301cbd8f81c4f8d3244b3632338bbeb6d49c", + "rev": "3cbe716e2346710d6e1f7c559363d14e11c32a43", "type": "github" }, "original": { @@ -630,11 +630,11 @@ }, "nixpkgs_3": { "locked": { - "lastModified": 1756542300, - "narHash": "sha256-tlOn88coG5fzdyqz6R93SQL5Gpq+m/DsWpekNFhqPQk=", + "lastModified": 1761907660, + "narHash": "sha256-kJ8lIZsiPOmbkJypG+B5sReDXSD1KGu2VEPNqhRa/ew=", "owner": "nixos", "repo": "nixpkgs", - "rev": "d7600c775f877cd87b4f5a831c28aa94137377aa", + "rev": "2fb006b87f04c4d3bdf08cfdbc7fab9c13d94a15", "type": "github" }, "original": { @@ -646,11 +646,11 @@ }, "nixpkgs_4": { "locked": { - "lastModified": 1756542300, - "narHash": "sha256-tlOn88coG5fzdyqz6R93SQL5Gpq+m/DsWpekNFhqPQk=", + "lastModified": 1762111121, + "narHash": "sha256-4vhDuZ7OZaZmKKrnDpxLZZpGIJvAeMtK6FKLJYUtAdw=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "d7600c775f877cd87b4f5a831c28aa94137377aa", + "rev": "b3d51a0365f6695e7dd5cdf3e180604530ed33b4", "type": "github" }, "original": { @@ -662,11 +662,11 @@ }, "nixpkgs_5": { "locked": { - "lastModified": 1756266583, - "narHash": "sha256-cr748nSmpfvnhqSXPiCfUPxRz2FJnvf/RjJGvFfaCsM=", + "lastModified": 1762111121, + "narHash": "sha256-4vhDuZ7OZaZmKKrnDpxLZZpGIJvAeMtK6FKLJYUtAdw=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "8a6d5427d99ec71c64f0b93d45778c889005d9c2", + "rev": "b3d51a0365f6695e7dd5cdf3e180604530ed33b4", "type": "github" }, "original": { @@ -710,11 +710,11 @@ }, "nixpkgs_8": { "locked": { - "lastModified": 1756787288, - "narHash": "sha256-rw/PHa1cqiePdBxhF66V7R+WAP8WekQ0mCDG4CFqT8Y=", + "lastModified": 1762111121, + "narHash": "sha256-4vhDuZ7OZaZmKKrnDpxLZZpGIJvAeMtK6FKLJYUtAdw=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "d0fc30899600b9b3466ddb260fd83deb486c32f1", + "rev": "b3d51a0365f6695e7dd5cdf3e180604530ed33b4", "type": "github" }, "original": { @@ -726,11 +726,11 @@ }, "nixpkgs_9": { "locked": { - "lastModified": 1756787288, - "narHash": "sha256-rw/PHa1cqiePdBxhF66V7R+WAP8WekQ0mCDG4CFqT8Y=", + "lastModified": 1762111121, + "narHash": "sha256-4vhDuZ7OZaZmKKrnDpxLZZpGIJvAeMtK6FKLJYUtAdw=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "d0fc30899600b9b3466ddb260fd83deb486c32f1", + "rev": "b3d51a0365f6695e7dd5cdf3e180604530ed33b4", "type": "github" }, "original": { @@ -749,11 +749,11 @@ ] }, "locked": { - "lastModified": 1755960406, - "narHash": "sha256-RF7j6C1TmSTK9tYWO6CdEMtg6XZaUKcvZwOCD2SICZs=", + "lastModified": 1760663237, + "narHash": "sha256-BflA6U4AM1bzuRMR8QqzPXqh8sWVCNDzOdsxXEguJIc=", "owner": "cachix", "repo": "git-hooks.nix", - "rev": "e891a93b193fcaf2fc8012d890dc7f0befe86ec2", + "rev": "ca5b894d3e3e151ffc1db040b6ce4dcc75d31c37", "type": "github" }, "original": { @@ -780,11 +780,11 @@ "nixpkgs": "nixpkgs_2" }, "locked": { - "lastModified": 1754575663, - "narHash": "sha256-afOx8AG0KYtw7mlt6s6ahBBy7eEHZwws3iCRoiuRQS4=", + "lastModified": 1761791894, + "narHash": "sha256-myRIDh+PxaREz+z9LzbqBJF+SnTFJwkthKDX9zMyddY=", "owner": "oxalica", "repo": "rust-overlay", - "rev": "6db0fb0e9cec2e9729dc52bf4898e6c135bb8a0f", + "rev": "59c45eb69d9222a4362673141e00ff77842cd219", "type": "github" }, "original": { @@ -798,11 +798,11 @@ "nixpkgs": "nixpkgs_10" }, "locked": { - "lastModified": 1754988908, - "narHash": "sha256-t+voe2961vCgrzPFtZxha0/kmFSHFobzF00sT8p9h0U=", + "lastModified": 1760998189, + "narHash": "sha256-ee2e1/AeGL5X8oy/HXsZQvZnae6XfEVdstGopKucYLY=", "owner": "Mic92", "repo": "sops-nix", - "rev": "3223c7a92724b5d804e9988c6b447a0d09017d48", + "rev": "5a7d18b5c55642df5c432aadb757140edfeb70b3", "type": "github" }, "original": { @@ -869,11 +869,11 @@ ] }, "locked": { - "lastModified": 1755354946, - "narHash": "sha256-zdov5f/GcoLQc9qYIS1dUTqtJMeDqmBmo59PAxze6e4=", + "lastModified": 1761431178, + "narHash": "sha256-xzjC1CV3+wpUQKNF+GnadnkeGUCJX+vgaWIZsnz9tzI=", "owner": "hyprwm", "repo": "xdg-desktop-portal-hyprland", - "rev": "a10726d6a8d0ef1a0c645378f983b6278c42eaa0", + "rev": "4b8801228ff958d028f588f0c2b911dbf32297f9", "type": "github" }, "original": { @@ -902,11 +902,11 @@ "xwayland-satellite-unstable": { "flake": false, "locked": { - "lastModified": 1756869116, - "narHash": "sha256-SGcqX3amLH4xiA+dwF2Fu2mt1O8zHc60v0+NEZGDJhw=", + "lastModified": 1762302024, + "narHash": "sha256-F+4W0J5r7fbEl+VmATFqAA5+4dFSNAmLJB7tAtrTIkY=", "owner": "Supreeeme", "repo": "xwayland-satellite", - "rev": "41e865c8d35468c67b991ef5a245a98b3e44108c", + "rev": "53b6072bd995b5b4017999cf247f9eb6660c72a2", "type": "github" }, "original": { diff --git a/hmModules/apps/git/app.nix b/hmModules/apps/git/app.nix index 569ee14..bd98b70 100644 --- a/hmModules/apps/git/app.nix +++ b/hmModules/apps/git/app.nix @@ -12,10 +12,12 @@ config = lib.mkIf config.git.enable { programs.git = { enable = true; - userName = config.git.username; - userEmail = config.git.email; - extraConfig = { - user.signingkey = "${config.home.homeDirectory}/.ssh/id_ed25519.pub"; + settings = { + user = { + name = config.git.username; + email = config.git.email; + signingkey = "${config.home.homeDirectory}/.ssh/id_ed25519.pub"; + }; gpg.format = "ssh"; commit.gpgSign = "true"; tag.gpgSign = "true"; diff --git a/hmModules/apps/lf/app.nix b/hmModules/apps/lf/app.nix index f4ff3da..25a3b89 100644 --- a/hmModules/apps/lf/app.nix +++ b/hmModules/apps/lf/app.nix @@ -33,7 +33,7 @@ relativenumber = true; }; commands = { - dragon-out = ''%${pkgs.xdragon}/bin/xdragon -a -x "$fx"''; + dragon-out = ''%${pkgs.dragon-drop}/bin/dragon -a -x "$fx"''; trash = lib.mkIf config.trash.enable '' %${pkgs.trash-cli}/bin/trash "$fx" ''; diff --git a/hmModules/apps/niri/app.nix b/hmModules/apps/niri/app.nix index 2b84d94..ae70ea9 100644 --- a/hmModules/apps/niri/app.nix +++ b/hmModules/apps/niri/app.nix @@ -53,8 +53,8 @@ binds = with config.lib.niri.actions; { "Mod+Return".action= spawn "${config.defaultApps.terminal}"; "Mod+Shift+Return".action = spawn "${pkgs.fuzzel}/bin/fuzzel"; - "Mod+P".action = screenshot; - "Mod+Shift+P".action = screenshot-window; + "Mod+P".action.screenshot = []; + "Mod+Shift+P".action.screenshot-window = []; "Mod+Tab".action = switch-preset-column-width; "Mod+Shift+Q".action = quit; diff --git a/nixosModules/services/caddy/service.nix b/nixosModules/services/caddy/service.nix index 429340c..ee722b3 100644 --- a/nixosModules/services/caddy/service.nix +++ b/nixosModules/services/caddy/service.nix @@ -20,7 +20,7 @@ ''; package = pkgs.caddy.withPlugins { plugins = [ "github.com/caddy-dns/porkbun@v0.3.1" ]; - hash = "sha256-PUHu+KPywdJMuPLHPtQhUaw3Cv1pED5XQ1MOzlT/6h4="; + hash = "sha256-j/GODingW5BhfjQRajinivX/9zpiLGgyxvAjX0+amRU="; }; virtualHosts = config.caddy.vhosts; email = config.caddy.adminEmail; From 98ad425b0182d182527c99b1a6c19bb8a005e2a7 Mon Sep 17 00:00:00 2001 From: Julia Lange Date: Wed, 19 Nov 2025 09:18:38 -0800 Subject: [PATCH 16/30] Gitignore, add result directory --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index e69de29..b2be92b 100644 --- a/.gitignore +++ b/.gitignore @@ -0,0 +1 @@ +result From 7340d694f88e1b61adcc5b6b5c313649af5392f5 Mon Sep 17 00:00:00 2001 From: Julia Lange Date: Wed, 19 Nov 2025 09:19:43 -0800 Subject: [PATCH 17/30] Flake, flake-part+easy-host, remove unused inputs IF YOU ARE NOT ME: I would not use this configuration. In the past I would feel confident telling you to drop in your own host and be off to the races, but right now users are in a state which required hard coding some of my nominal preferences. Read on for more specifics Completely refactors the flake.nix part of the repo. This removes my strange legacy code for directory-based hosts+users in favor of using easy-host and flake-parts. As a result of this some specialArgs were lost, namely the list of users and the username being passed. I think this is the right way to go in the short term, but it has lead to some hardcoded values. Namely "pan" is created as a user regardless of configuration In tandem with this is the deprecation of some modules which had inputs in flake which I wasn't using. I'm sure there is a better way to do this, but I didn't like downloading and caching them every time when I knew I wasn't using them. I'm currently very unhappy with the users part of this change, but that wasn't the goal of this branch. I will revisit in a larger commit. --- flake.lock | 773 ++---------------- flake.nix | 159 ++-- hmModules/apps/hypr/app.nix | 436 +++++----- hmModules/apps/lf/app.nix | 2 +- hmModules/automatic/default.nix | 10 +- hmModules/services/widgets/ags/default.nix | 39 +- hosts/jibril/{host.nix => default.nix} | 0 hosts/juri/{host.nix => default.nix} | 0 hosts/juri/users/badtz/user.nix | 10 - hosts/onizuka/{host.nix => default.nix} | 2 - nixosModules/apps/animelauncher/app.nix | 27 +- nixosModules/automatic/default.nix | 5 +- nixosModules/services/caddy/service.nix | 2 +- nixosModules/services/hyprland/service.nix | 24 +- .../pan/user.nix => users/jibril/default.nix | 0 .../pan/user.nix => users/juri/default.nix | 0 .../pan/user.nix => users/onizuka/default.nix | 0 17 files changed, 428 insertions(+), 1061 deletions(-) rename hosts/jibril/{host.nix => default.nix} (100%) rename hosts/juri/{host.nix => default.nix} (100%) delete mode 100644 hosts/juri/users/badtz/user.nix rename hosts/onizuka/{host.nix => default.nix} (91%) rename hosts/jibril/users/pan/user.nix => users/jibril/default.nix (100%) rename hosts/juri/users/pan/user.nix => users/juri/default.nix (100%) rename hosts/onizuka/users/pan/user.nix => users/onizuka/default.nix (100%) diff --git a/flake.lock b/flake.lock index 50598c2..0e7d694 100644 --- a/flake.lock +++ b/flake.lock @@ -1,140 +1,50 @@ { "nodes": { - "aagl": { - "inputs": { - "flake-compat": "flake-compat", - "nixpkgs": "nixpkgs", - "rust-overlay": "rust-overlay" - }, + "easy-hosts": { "locked": { - "lastModified": 1762188647, - "narHash": "sha256-OAXK4p7WIYUcp8xx9m0RZUpV6XUDEhkoM4efI8dzPiU=", - "owner": "ezKEa", - "repo": "aagl-gtk-on-nix", - "rev": "1172be1377bc65581004f4d5927b58c5c7d96639", + "lastModified": 1755470564, + "narHash": "sha256-KB1ZryVDoQcbIsItOf4WtxkHhh3ppj+XwMpSnt/2QHc=", + "owner": "tgirlcloud", + "repo": "easy-hosts", + "rev": "d0422bc7b3db26268982aa15d07e60370e76ee1d", "type": "github" }, "original": { - "owner": "ezKEa", - "repo": "aagl-gtk-on-nix", + "owner": "tgirlcloud", + "repo": "easy-hosts", "type": "github" } }, - "ags": { + "flake-parts": { "inputs": { - "astal": "astal", - "nixpkgs": "nixpkgs_3" - }, - "locked": { - "lastModified": 1762046771, - "narHash": "sha256-baVZvZZN0t9F3fvVhxmQA1/oNykXGd/YhlF19JqCLc8=", - "owner": "Aylur", - "repo": "ags", - "rev": "fe13af2daec716226ccdb3158606a8577853e0ff", - "type": "github" - }, - "original": { - "owner": "Aylur", - "repo": "ags", - "type": "github" - } - }, - "aquamarine": { - "inputs": { - "hyprutils": [ - "hyprland", - "hyprutils" - ], - "hyprwayland-scanner": [ - "hyprland", - "hyprwayland-scanner" - ], - "nixpkgs": [ - "hyprland", - "nixpkgs" - ], - "systems": [ - "hyprland", - "systems" - ] - }, - "locked": { - "lastModified": 1761420899, - "narHash": "sha256-kxGCip6GNbcbNWKu4J2iKbNYfFTS8Zbjg9CWp0zmFoM=", - "owner": "hyprwm", - "repo": "aquamarine", - "rev": "62479232aae42c1ef09c2c027c8cfd91df060897", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "aquamarine", - "type": "github" - } - }, - "astal": { - "inputs": { - "nixpkgs": [ - "ags", + "nixpkgs-lib": [ "nixpkgs" ] }, "locked": { - "lastModified": 1762012522, - "narHash": "sha256-ncEN4OVFM5M9VFc4oR3gOI5K8r99GcYxtU+Cf4Z8pbs=", - "owner": "aylur", - "repo": "astal", - "rev": "671d4229c798834190a50fb8b8d8addd19b529e9", + "lastModified": 1762980239, + "narHash": "sha256-8oNVE8TrD19ulHinjaqONf9QWCKK+w4url56cdStMpM=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "52a2caecc898d0b46b2b905f058ccc5081f842da", "type": "github" }, "original": { - "owner": "aylur", - "repo": "astal", - "type": "github" - } - }, - "flake-compat": { - "flake": false, - "locked": { - "lastModified": 1761588595, - "narHash": "sha256-XKUZz9zewJNUj46b4AJdiRZJAvSZ0Dqj2BNfXvFlJC4=", - "owner": "edolstra", - "repo": "flake-compat", - "rev": "f387cd2afec9419c8ee37694406ca490c3f34ee5", - "type": "github" - }, - "original": { - "owner": "edolstra", - "repo": "flake-compat", - "type": "github" - } - }, - "flake-compat_2": { - "flake": false, - "locked": { - "lastModified": 1747046372, - "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=", - "owner": "edolstra", - "repo": "flake-compat", - "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885", - "type": "github" - }, - "original": { - "owner": "edolstra", - "repo": "flake-compat", + "owner": "hercules-ci", + "repo": "flake-parts", "type": "github" } }, "flake-utils": { "inputs": { - "systems": "systems_2" + "systems": "systems" }, "locked": { - "lastModified": 1726560853, - "narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=", + "lastModified": 1731533236, + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", "owner": "numtide", "repo": "flake-utils", - "rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a", + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", "type": "github" }, "original": { @@ -158,38 +68,18 @@ "type": "github" } }, - "gitignore": { - "inputs": { - "nixpkgs": [ - "hyprland", - "pre-commit-hooks", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1709087332, - "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", - "owner": "hercules-ci", - "repo": "gitignore.nix", - "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "gitignore.nix", - "type": "github" - } - }, "home-manager": { "inputs": { - "nixpkgs": "nixpkgs_4" + "nixpkgs": [ + "nixpkgs" + ] }, "locked": { - "lastModified": 1762351818, - "narHash": "sha256-0ptUDbYwxv1kk/uzEX4+NJjY2e16MaAhtzAOJ6K0TG0=", + "lastModified": 1763416652, + "narHash": "sha256-8EBEEvtzQ11LCxpQHMNEBQAGtQiCu/pqP9zSovDSbNM=", "owner": "nix-community", "repo": "home-manager", - "rev": "b959c67241cae17fc9e4ee7eaf13dfa8512477ea", + "rev": "ea164b7c9ccdc2321379c2ff78fd4317b4c41312", "type": "github" }, "original": { @@ -198,331 +88,60 @@ "type": "github" } }, - "hyprcursor": { - "inputs": { - "hyprlang": [ - "hyprland", - "hyprlang" - ], - "nixpkgs": [ - "hyprland", - "nixpkgs" - ], - "systems": [ - "hyprland", - "systems" - ] - }, - "locked": { - "lastModified": 1753964049, - "narHash": "sha256-lIqabfBY7z/OANxHoPeIrDJrFyYy9jAM4GQLzZ2feCM=", - "owner": "hyprwm", - "repo": "hyprcursor", - "rev": "44e91d467bdad8dcf8bbd2ac7cf49972540980a5", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprcursor", - "type": "github" - } - }, - "hyprgraphics": { - "inputs": { - "hyprutils": [ - "hyprland", - "hyprutils" - ], - "nixpkgs": [ - "hyprland", - "nixpkgs" - ], - "systems": [ - "hyprland", - "systems" - ] - }, - "locked": { - "lastModified": 1760445448, - "narHash": "sha256-fXGjL6dw31FPFRrmIemzGiNSlfvEJTJNsmadZi+qNhI=", - "owner": "hyprwm", - "repo": "hyprgraphics", - "rev": "50fb9f069219f338a11cf0bcccb9e58357d67757", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprgraphics", - "type": "github" - } - }, - "hyprland": { - "inputs": { - "aquamarine": "aquamarine", - "hyprcursor": "hyprcursor", - "hyprgraphics": "hyprgraphics", - "hyprland-protocols": "hyprland-protocols", - "hyprland-qtutils": "hyprland-qtutils", - "hyprlang": "hyprlang", - "hyprutils": "hyprutils", - "hyprwayland-scanner": "hyprwayland-scanner", - "nixpkgs": "nixpkgs_5", - "pre-commit-hooks": "pre-commit-hooks", - "systems": "systems", - "xdph": "xdph" - }, - "locked": { - "lastModified": 1762269308, - "narHash": "sha256-3fTMnF1E7BsZ7NlmFmPo6+SRFm4FELP45IDLHcGLZ1s=", - "ref": "refs/heads/main", - "rev": "46b71eda6423cc9c3b19cb310c3344e81ac624c5", - "revCount": 6551, - "type": "git", - "url": "https://github.com/hyprwm/Hyprland" - }, - "original": { - "type": "git", - "url": "https://github.com/hyprwm/Hyprland" - } - }, - "hyprland-contrib": { - "inputs": { - "nixpkgs": "nixpkgs_6" - }, - "locked": { - "lastModified": 1759613406, - "narHash": "sha256-PzgQJydp+RlKvwDi807pXPlURdIAVqLppZDga3DwPqg=", - "owner": "hyprwm", - "repo": "contrib", - "rev": "32e1a75b65553daefb419f0906ce19e04815aa3a", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "contrib", - "type": "github" - } - }, - "hyprland-protocols": { - "inputs": { - "nixpkgs": [ - "hyprland", - "nixpkgs" - ], - "systems": [ - "hyprland", - "systems" - ] - }, - "locked": { - "lastModified": 1759610243, - "narHash": "sha256-+KEVnKBe8wz+a6dTLq8YDcF3UrhQElwsYJaVaHXJtoI=", - "owner": "hyprwm", - "repo": "hyprland-protocols", - "rev": "bd153e76f751f150a09328dbdeb5e4fab9d23622", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprland-protocols", - "type": "github" - } - }, - "hyprland-qt-support": { - "inputs": { - "hyprlang": [ - "hyprland", - "hyprland-qtutils", - "hyprlang" - ], - "nixpkgs": [ - "hyprland", - "hyprland-qtutils", - "nixpkgs" - ], - "systems": [ - "hyprland", - "hyprland-qtutils", - "systems" - ] - }, - "locked": { - "lastModified": 1749154592, - "narHash": "sha256-DO7z5CeT/ddSGDEnK9mAXm1qlGL47L3VAHLlLXoCjhE=", - "owner": "hyprwm", - "repo": "hyprland-qt-support", - "rev": "4c8053c3c888138a30c3a6c45c2e45f5484f2074", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprland-qt-support", - "type": "github" - } - }, - "hyprland-qtutils": { - "inputs": { - "hyprland-qt-support": "hyprland-qt-support", - "hyprlang": [ - "hyprland", - "hyprlang" - ], - "hyprutils": [ - "hyprland", - "hyprland-qtutils", - "hyprlang", - "hyprutils" - ], - "nixpkgs": [ - "hyprland", - "nixpkgs" - ], - "systems": [ - "hyprland", - "systems" - ] - }, - "locked": { - "lastModified": 1759080228, - "narHash": "sha256-RgDoAja0T1hnF0pTc56xPfLfFOO8Utol2iITwYbUhTk=", - "owner": "hyprwm", - "repo": "hyprland-qtutils", - "rev": "629b15c19fa4082e4ce6be09fdb89e8c3312aed7", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprland-qtutils", - "type": "github" - } - }, - "hyprlang": { - "inputs": { - "hyprutils": [ - "hyprland", - "hyprutils" - ], - "nixpkgs": [ - "hyprland", - "nixpkgs" - ], - "systems": [ - "hyprland", - "systems" - ] - }, - "locked": { - "lastModified": 1758927902, - "narHash": "sha256-LZgMds7M94+vuMql2bERQ6LiFFdhgsEFezE4Vn+Ys3A=", - "owner": "hyprwm", - "repo": "hyprlang", - "rev": "4dafa28d4f79877d67a7d1a654cddccf8ebf15da", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprlang", - "type": "github" - } - }, - "hyprutils": { - "inputs": { - "nixpkgs": [ - "hyprland", - "nixpkgs" - ], - "systems": [ - "hyprland", - "systems" - ] - }, - "locked": { - "lastModified": 1762208756, - "narHash": "sha256-hC1jb4tdjFfEuU18KQiMgz5XPAO+d5SfbjAUS7haLl4=", - "owner": "hyprwm", - "repo": "hyprutils", - "rev": "164a30b3d8b3174a32ac7326782476f1188e6118", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprutils", - "type": "github" - } - }, - "hyprwayland-scanner": { - "inputs": { - "nixpkgs": [ - "hyprland", - "nixpkgs" - ], - "systems": [ - "hyprland", - "systems" - ] - }, - "locked": { - "lastModified": 1755184602, - "narHash": "sha256-RCBQN8xuADB0LEgaKbfRqwm6CdyopE1xIEhNc67FAbw=", - "owner": "hyprwm", - "repo": "hyprwayland-scanner", - "rev": "b3b0f1f40ae09d4447c20608e5a4faf8bf3c492d", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprwayland-scanner", - "type": "github" - } - }, "lix": { "flake": false, "locked": { - "lastModified": 1729298361, - "narHash": "sha256-hiGtfzxFkDc9TSYsb96Whg0vnqBVV7CUxyscZNhed0U=", - "rev": "ad9d06f7838a25beec425ff406fe68721fef73be", + "lastModified": 1763570812, + "narHash": "sha256-A42G8ulTZ1MFCR0VsLF21CoKi0XKGUYwtVBHGm5mFgQ=", + "rev": "f3b2f3496bd6d346cba475d0ba152a9d3a83dec7", "type": "tarball", - "url": "https://git.lix.systems/api/v1/repos/lix-project/lix/archive/ad9d06f7838a25beec425ff406fe68721fef73be.tar.gz?rev=ad9d06f7838a25beec425ff406fe68721fef73be" + "url": "https://git.lix.systems/api/v1/repos/lix-project/lix/archive/f3b2f3496bd6d346cba475d0ba152a9d3a83dec7.tar.gz" }, "original": { "type": "tarball", - "url": "https://git.lix.systems/lix-project/lix/archive/2.91.1.tar.gz" + "url": "https://git.lix.systems/lix-project/lix/archive/main.tar.gz" } }, "lix-module": { "inputs": { "flake-utils": "flake-utils", "flakey-profile": "flakey-profile", - "lix": "lix", - "nixpkgs": "nixpkgs_7" + "lix": [ + "lix" + ], + "nixpkgs": [ + "nixpkgs" + ] }, "locked": { - "lastModified": 1732605668, - "narHash": "sha256-DN5/166jhiiAW0Uw6nueXaGTueVxhfZISAkoxasmz/g=", - "rev": "f19bd752910bbe3a861c9cad269bd078689d50fe", + "lastModified": 1763435414, + "narHash": "sha256-i2467FddWfd19q5Qoj+1/BAeg6LZmM5m4mYGRSQn/as=", + "rev": "192c92b603731fbc1bade6c1b18c8d8a0086f703", "type": "tarball", - "url": "https://git.lix.systems/api/v1/repos/lix-project/nixos-module/archive/f19bd752910bbe3a861c9cad269bd078689d50fe.tar.gz" + "url": "https://git.lix.systems/api/v1/repos/lix-project/nixos-module/archive/192c92b603731fbc1bade6c1b18c8d8a0086f703.tar.gz" }, "original": { "type": "tarball", - "url": "https://git.lix.systems/lix-project/nixos-module/archive/2.91.1-2.tar.gz" + "url": "https://git.lix.systems/lix-project/nixos-module/archive/main.tar.gz" } }, "niri": { "inputs": { "niri-stable": "niri-stable", "niri-unstable": "niri-unstable", - "nixpkgs": "nixpkgs_8", + "nixpkgs": [ + "nixpkgs" + ], "nixpkgs-stable": "nixpkgs-stable", "xwayland-satellite-stable": "xwayland-satellite-stable", "xwayland-satellite-unstable": "xwayland-satellite-unstable" }, "locked": { - "lastModified": 1762341801, - "narHash": "sha256-zx7UxreMz646qikxw+So7eGRQeWccKFZxuMvJowJuFs=", + "lastModified": 1763538184, + "narHash": "sha256-6umNY06L6ZUjinthjVZIwyWyAjxOXSPhXfY0U1CVTWw=", "owner": "sodiboo", "repo": "niri-flake", - "rev": "20aadad64b8b8cbebc71371713c141d91d7f8172", + "rev": "85a16f400641eed912431efcec16f12e2100d46a", "type": "github" }, "original": { @@ -551,11 +170,11 @@ "niri-unstable": { "flake": false, "locked": { - "lastModified": 1762146685, - "narHash": "sha256-anRlNG6t7esBbF1+ALDeathVBSclA0PEL52Vo0WnN5g=", + "lastModified": 1763531615, + "narHash": "sha256-cMi8tz+0+gWtlYqVnyMv7phOeQ0/4WmzZ/lxCyraUVw=", "owner": "YaLTeR", "repo": "niri", - "rev": "a2ca2b3c866bc781b12c334a9f949b3db6d7c943", + "rev": "c722634c269ae97a5ea185691bcd0b8c73a600e5", "type": "github" }, "original": { @@ -566,27 +185,24 @@ }, "nixpkgs": { "locked": { - "lastModified": 1761672384, - "narHash": "sha256-o9KF3DJL7g7iYMZq9SWgfS1BFlNbsm6xplRjVlOCkXI=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "08dacfca559e1d7da38f3cf05f1f45ee9bfd213c", - "type": "github" + "lastModified": 1763464769, + "narHash": "sha256-mU85VDFRIgKGq1EhT71bLjhvjJ5yuMEe0Ip1kwCbR80=", + "rev": "6f374686605df381de8541c072038472a5ea2e2d", + "type": "tarball", + "url": "https://releases.nixos.org/nixpkgs/nixpkgs-25.11pre898015.6f374686605d/nixexprs.tar.xz" }, "original": { - "owner": "nixos", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" + "type": "tarball", + "url": "https://channels.nixos.org/nixpkgs-unstable/nixexprs.tar.xz" } }, "nixpkgs-stable": { "locked": { - "lastModified": 1762233356, - "narHash": "sha256-cGS3lLTYusbEP/IJIWGgnkzIl+FA5xDvtiHyjalGr4k=", + "lastModified": 1763334038, + "narHash": "sha256-LBVOyaH6NFzQ3X/c6vfMZ9k4SV2ofhpxeL9YnhHNJQQ=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "ca534a76c4afb2bdc07b681dbc11b453bab21af8", + "rev": "4c8cdd5b1a630e8f72c9dd9bf582b1afb3127d2c", "type": "github" }, "original": { @@ -596,213 +212,30 @@ "type": "github" } }, - "nixpkgs_10": { - "locked": { - "lastModified": 1760596604, - "narHash": "sha256-J/i5K6AAz/y5dBePHQOuzC7MbhyTOKsd/GLezSbEFiM=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "3cbe716e2346710d6e1f7c559363d14e11c32a43", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_2": { - "locked": { - "lastModified": 1744536153, - "narHash": "sha256-awS2zRgF4uTwrOKwwiJcByDzDOdo3Q1rPZbiHQg/N38=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "18dd725c29603f582cf1900e0d25f9f1063dbf11", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_3": { - "locked": { - "lastModified": 1761907660, - "narHash": "sha256-kJ8lIZsiPOmbkJypG+B5sReDXSD1KGu2VEPNqhRa/ew=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "2fb006b87f04c4d3bdf08cfdbc7fab9c13d94a15", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_4": { - "locked": { - "lastModified": 1762111121, - "narHash": "sha256-4vhDuZ7OZaZmKKrnDpxLZZpGIJvAeMtK6FKLJYUtAdw=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "b3d51a0365f6695e7dd5cdf3e180604530ed33b4", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_5": { - "locked": { - "lastModified": 1762111121, - "narHash": "sha256-4vhDuZ7OZaZmKKrnDpxLZZpGIJvAeMtK6FKLJYUtAdw=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "b3d51a0365f6695e7dd5cdf3e180604530ed33b4", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_6": { - "locked": { - "lastModified": 1712163089, - "narHash": "sha256-Um+8kTIrC19vD4/lUCN9/cU9kcOsD1O1m+axJqQPyMM=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "fd281bd6b7d3e32ddfa399853946f782553163b5", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_7": { - "locked": { - "lastModified": 1729070438, - "narHash": "sha256-KOTTUfPkugH52avUvXGxvWy8ibKKj4genodIYUED+Kc=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "5785b6bb5eaae44e627d541023034e1601455827", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_8": { - "locked": { - "lastModified": 1762111121, - "narHash": "sha256-4vhDuZ7OZaZmKKrnDpxLZZpGIJvAeMtK6FKLJYUtAdw=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "b3d51a0365f6695e7dd5cdf3e180604530ed33b4", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_9": { - "locked": { - "lastModified": 1762111121, - "narHash": "sha256-4vhDuZ7OZaZmKKrnDpxLZZpGIJvAeMtK6FKLJYUtAdw=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "b3d51a0365f6695e7dd5cdf3e180604530ed33b4", - "type": "github" - }, - "original": { - "id": "nixpkgs", - "ref": "nixos-unstable", - "type": "indirect" - } - }, - "pre-commit-hooks": { - "inputs": { - "flake-compat": "flake-compat_2", - "gitignore": "gitignore", - "nixpkgs": [ - "hyprland", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1760663237, - "narHash": "sha256-BflA6U4AM1bzuRMR8QqzPXqh8sWVCNDzOdsxXEguJIc=", - "owner": "cachix", - "repo": "git-hooks.nix", - "rev": "ca5b894d3e3e151ffc1db040b6ce4dcc75d31c37", - "type": "github" - }, - "original": { - "owner": "cachix", - "repo": "git-hooks.nix", - "type": "github" - } - }, "root": { "inputs": { - "aagl": "aagl", - "ags": "ags", + "easy-hosts": "easy-hosts", + "flake-parts": "flake-parts", "home-manager": "home-manager", - "hyprland": "hyprland", - "hyprland-contrib": "hyprland-contrib", + "lix": "lix", "lix-module": "lix-module", "niri": "niri", - "nixpkgs": "nixpkgs_9", + "nixpkgs": "nixpkgs", "sops-nix": "sops-nix" } }, - "rust-overlay": { - "inputs": { - "nixpkgs": "nixpkgs_2" - }, - "locked": { - "lastModified": 1761791894, - "narHash": "sha256-myRIDh+PxaREz+z9LzbqBJF+SnTFJwkthKDX9zMyddY=", - "owner": "oxalica", - "repo": "rust-overlay", - "rev": "59c45eb69d9222a4362673141e00ff77842cd219", - "type": "github" - }, - "original": { - "owner": "oxalica", - "repo": "rust-overlay", - "type": "github" - } - }, "sops-nix": { "inputs": { - "nixpkgs": "nixpkgs_10" + "nixpkgs": [ + "nixpkgs" + ] }, "locked": { - "lastModified": 1760998189, - "narHash": "sha256-ee2e1/AeGL5X8oy/HXsZQvZnae6XfEVdstGopKucYLY=", + "lastModified": 1763509310, + "narHash": "sha256-s2WzTAD3vJtPACBCZXezNUMTG/wC6SFsU9DxazB9wDI=", "owner": "Mic92", "repo": "sops-nix", - "rev": "5a7d18b5c55642df5c432aadb757140edfeb70b3", + "rev": "3ee33c0ed7c5aa61b4e10484d2ebdbdc98afb03e", "type": "github" }, "original": { @@ -812,21 +245,6 @@ } }, "systems": { - "locked": { - "lastModified": 1689347949, - "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", - "owner": "nix-systems", - "repo": "default-linux", - "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default-linux", - "type": "github" - } - }, - "systems_2": { "locked": { "lastModified": 1681028828, "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", @@ -841,47 +259,6 @@ "type": "github" } }, - "xdph": { - "inputs": { - "hyprland-protocols": [ - "hyprland", - "hyprland-protocols" - ], - "hyprlang": [ - "hyprland", - "hyprlang" - ], - "hyprutils": [ - "hyprland", - "hyprutils" - ], - "hyprwayland-scanner": [ - "hyprland", - "hyprwayland-scanner" - ], - "nixpkgs": [ - "hyprland", - "nixpkgs" - ], - "systems": [ - "hyprland", - "systems" - ] - }, - "locked": { - "lastModified": 1761431178, - "narHash": "sha256-xzjC1CV3+wpUQKNF+GnadnkeGUCJX+vgaWIZsnz9tzI=", - "owner": "hyprwm", - "repo": "xdg-desktop-portal-hyprland", - "rev": "4b8801228ff958d028f588f0c2b911dbf32297f9", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "xdg-desktop-portal-hyprland", - "type": "github" - } - }, "xwayland-satellite-stable": { "flake": false, "locked": { @@ -902,11 +279,11 @@ "xwayland-satellite-unstable": { "flake": false, "locked": { - "lastModified": 1762302024, - "narHash": "sha256-F+4W0J5r7fbEl+VmATFqAA5+4dFSNAmLJB7tAtrTIkY=", + "lastModified": 1762747449, + "narHash": "sha256-Z1TKiux8K09a93w4PFDFsj8HFugXNy3iCC3Z8MpR5Rk=", "owner": "Supreeeme", "repo": "xwayland-satellite", - "rev": "53b6072bd995b5b4017999cf247f9eb6660c72a2", + "rev": "6338574bc5c036487486acde264f38f39ea15fad", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index eeb4bd0..37dafc1 100644 --- a/flake.nix +++ b/flake.nix @@ -1,94 +1,89 @@ { - inputs = { - nixpkgs.url = "nixpkgs/nixos-unstable"; + outputs = inputs: inputs.flake-parts.lib.mkFlake { inherit inputs; } { + imports = with inputs; [ + easy-hosts.flakeModule + home-manager.flakeModules.home-manager + ]; - home-manager.url = "github:nix-community/home-manager"; + systems = [ "x86_64-linux" ]; + easy-hosts = { + autoConstruct = true; + path = ./hosts; + onlySystem = "x86_64-nixos"; - lix-module.url = "https://git.lix.systems/lix-project/nixos-module/archive/2.91.1-2.tar.gz"; + shared = { + modules = [ + inputs.lix-module.nixosModules.default + ./nixosModules + ]; + }; + }; - hyprland.url = "git+https://github.com/hyprwm/Hyprland"; - hyprland-contrib.url = "github:hyprwm/contrib"; - - niri.url = "github:sodiboo/niri-flake"; - - sops-nix.url = "github:Mic92/sops-nix"; - ags.url = "github:Aylur/ags"; - aagl.url = "github:ezKEa/aagl-gtk-on-nix"; + flake = { + homeConfigurations = let + userConfig = system: extraModules: + inputs.home-manager.lib.homeManagerConfiguration { + extraSpecialArgs = { inherit inputs; }; + pkgs = inputs.nixpkgs.legacyPackages.${system}; + modules = [ ./hmModules ] ++ extraModules; + }; + in { + "pan@juri" = userConfig "x86_64-linux" [ ./users/juri ]; + "pan@jibril" = userConfig "x86_64-linux" [ ./users/jibril ]; + "pan@onizuka" = userConfig "x86_64-linux" [ ./users/onizuka ]; + }; + }; }; - outputs = { self, home-manager, nixpkgs, lix-module, ... }@inputs: let - system = "x86_64-linux"; - pkgs = nixpkgs.legacyPackages.${system}; - fs = pkgs.lib.fileset; - st = pkgs.lib.strings; - as = pkgs.lib.attrsets; + inputs = { + # Save data with this url. Source: + # at://did:plc:mojgntlezho4qt7uvcfkdndg/app.bsky.feed.post/3loogwsoqok2w + # cid: bafyreidhuuxs3cuabneygtxir65hnd7hvy4hwj5rwrylpwmp7jhxciasve + nixpkgs.url = "https://channels.nixos.org/nixpkgs-unstable/nixexprs.tar.xz"; - hosts = let - hostFilter = { name, ...}: name == "host.nix"; - hostPaths = fs.toList (fs.fileFilter hostFilter ./hosts); - # Assumes dir structure is start_of_path/hosts/hostname/host.nix - extractHostName = path: builtins.unsafeDiscardStringContext ( - st.removeSuffix "/host.nix" ( - builtins.elemAt (st.splitString "/hosts/" path) 1 - ) - ); - in builtins.listToAttrs (map (path: { - value = path; - name = extractHostName path; - }) hostPaths); - - users = let - userFilter = { name, ...}: name == "user.nix"; - userPaths = fs.toList (fs.fileFilter userFilter ./hosts); - in builtins.listToAttrs (map (path: let - dirsAndFiles = st.splitString "/" path; - dAFLength = builtins.length dirsAndFiles; - # Assumes dir structure is start_of_path/hosts/hostname/users/username/user.nix - hostname = builtins.unsafeDiscardStringContext ( - builtins.elemAt dirsAndFiles (dAFLength - 4)); - username = builtins.unsafeDiscardStringContext ( - builtins.elemAt dirsAndFiles (dAFLength - 2)); - in { - name = username + "@" + hostname; - value = path; - } - ) userPaths); - - userConfig = usernameAtHostname: userpath: home-manager.lib.homeManagerConfiguration { - inherit pkgs; - extraSpecialArgs = { - inherit inputs; - inherit usernameAtHostname; - }; - modules = [ - ./hmModules - userpath - ]; + home-manager = { + type = "github"; + owner = "nix-community"; + repo = "home-manager"; + inputs.nixpkgs.follows = "nixpkgs"; }; - hostConfig = hostname: hostpath: nixpkgs.lib.nixosSystem { - specialArgs = let - hostFilteredUsers = as.filterAttrs ( - name: value: let - userHostname = builtins.elemAt (st.splitString "@" name) 1; - in userHostname == hostname - ) users; - - hostUsers = as.mapAttrsToList ( - name: value: builtins.elemAt (st.splitString "@" name) 0 - ) hostFilteredUsers; - in { - inherit inputs; - inherit hostname; - "usernameList" = hostUsers; - }; - modules = [ - ./nixosModules - hostpath - ]; + flake-parts = { + type = "github"; + owner = "hercules-ci"; + repo = "flake-parts"; + inputs.nixpkgs-lib.follows = "nixpkgs"; + }; + + easy-hosts = { + type = "github"; + owner = "tgirlcloud"; + repo = "easy-hosts"; + }; + + lix = { + url = "https://git.lix.systems/lix-project/lix/archive/main.tar.gz"; + flake = false; + }; + + lix-module = { + url = "https://git.lix.systems/lix-project/nixos-module/archive/main.tar.gz"; + inputs.nixpkgs.follows = "nixpkgs"; + inputs.lix.follows = "lix"; + }; + + niri = { + type = "github"; + owner = "sodiboo"; + repo = "niri-flake"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + + sops-nix = { + type = "github"; + owner = "Mic92"; + repo = "sops-nix"; + inputs.nixpkgs.follows = "nixpkgs"; }; - in { - nixosConfigurations = builtins.mapAttrs (name: path: hostConfig name path) hosts; - homeConfigurations = builtins.mapAttrs (name: path: userConfig name path) users; }; } diff --git a/hmModules/apps/hypr/app.nix b/hmModules/apps/hypr/app.nix index 85e7b6f..8bdc848 100644 --- a/hmModules/apps/hypr/app.nix +++ b/hmModules/apps/hypr/app.nix @@ -1,5 +1,5 @@ -{ config, inputs, pkgs, lib, ... }: -let rootPath = ./.; in +{ config, lib, ... }: +# let rootPath = ./.; in { options.hypr = { enable = lib.mkEnableOption "Enables hyprland"; @@ -34,220 +34,224 @@ let rootPath = ./.; in polkit.enable = lib.mkEnableOption "Enables polkit agent"; screenshot.enable = lib.mkEnableOption "Enables Screenshotting"; }; + + config.warnings = lib.mkIf config.hypr.enable ['' + hypr.* has been deprecated to allow the removal of hyprland from flake inputs. + '']; - imports = [ inputs.hyprland.homeManagerModules.default ]; + # imports = [ inputs.hyprland.homeManagerModules.default ]; - config = let - lopts = lib.lists.optionals; - in { - nix.settings = { - substituters = ["https://hyprland.cachix.org"]; - trusted-public-keys = ["hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="]; - }; - } // lib.mkIf config.hypr.enable { - wayland.windowManager.hyprland = let - mod = config.hypr.mod_key; - # p-s = let - # chw = config.hypr.workspace; - # findDefaultWs = id: if (builtins.hasAttr id chw.workspaces) - # then (builtins.head (builtins.getAttr id chw.workspaces)) - # else ""; - # in with config.hypr.workspace; lib.mkIf primary-secondary.enable { - # primaryWs = findDefaultWs primary-secondary.primary; - # secondaryWs = findDefaultWs primary-secondary.secondary; - # }; - in { - enable = true; - settings = { - monitor = config.hypr.monitor.details; - workspace = let - wsMonitor = monitor: wrksps: map (ws: - if ws == (builtins.head wrksps) - then "name:"+ws+", monitor:"+monitor+", persistent:true, default:true" - else "name:"+ws+", monitor:"+monitor+", persistent:true" - ) wrksps; - makeRules = wsAttr: builtins.concatLists (builtins.attrValues ( - builtins.mapAttrs wsMonitor wsAttr - )); - in makeRules config.hypr.workspace.workspaces - ++ [ - "w[t1], gapsout:0, gapsin:0" - "w[tg1], gapsout:0, gapsin:0" - "f[1], gapsout:0, gapsin:0" - ] - ++ lopts config.hypr.workspace.scratchpad.enable [ - "special:scratch, on-created-empty: [float; size 50% 50%; center] ${config.defaultApps.terminal}" - ]; - input = { - accel_profile = "flat"; - sensitivity = config.hypr.mouse.sensitivity; - }; - general = { - gaps_in = 3; - gaps_out = 3; - border_size = 2; - "col.active_border" = "rgb(F5C2E7)"; - "col.inactive_border" = "rgb(1E1D2F)"; - layout = "master"; - }; - decoration = { - rounding = 2; - blur = { - enabled = true; - size = 12; - passes = 2; - special = true; - }; - }; - animation = [ - "windows, 1, 4, default, popin 50%" - "windowsOut, 1, 4, default, popin 50%" - "windowsMove, 1, 3, default" - "border, 1, 3, default" - "fade, 1, 3, default" - "workspaces, 1, 3, default" - ]; - master = { - mfact = config.hypr.master.mfact; - }; - misc = { - focus_on_activate = true; - }; - - exec-once = lopts config.hypr.polkit.enable [ - "${pkgs.kdePackages.polkit-kde-agent-1}/bin/libexec/polkit-kde-authentication-agent-1" - ] ++ lopts config.hypr.background.enable [ - "${pkgs.swww}/bin/swww-daemon" - "${pkgs.swww}/bin/swww img ${config.hypr.background.path}" - ] ++ lopts config.ags.enable [ - "ags" - ] ++ lopts config.beeper.enable [ - "[workspace name:chat silent] Beeper" - ]; - - env = with config.hypr; [ - # "HYPR_MON_PRIMARY, ${workspace.primary-secondary.primary}" - # "HYPR_MON_SECONDARY, ${workspace.primary-secondary.secondary}" - "HYPR_WORK_DB, ${config.xdg.cacheHome}/hypr/workspace.db" - ] ++ lopts cursor.enable [ - "HYPRCURSOR_THEME,${cursor.theme}" - "HYPRCURSOR_SIZE,${cursor.size}" - ] ++ lopts config.nvidia.enable [ - "LIBVA_DRIVER_NAME,nvidia" - "XDG_SESSION_TYPE,wayland" - "GBM_BACKEND,nvidia-drm" - "__GLX_VENDOR_LIBRARY_NAME,nvidia" - "WLR_RENDERER_ALLOW_SOFTWARE,1" - "WLR_DRM_DEVICES,/dev/dri/card1" - ]; - - windowrulev2 = let - workspaceDefaults = wsname: applist: map ( - app: "workspace " + wsname + ", " + app - ) applist; - allDefault = wsAttr: builtins.concatLists (builtins.attrValues ( - builtins.mapAttrs workspaceDefaults wsAttr - )); - in allDefault config.hypr.workspace.defaults - ++ [ - "bordersize 0, floating:0, onworkspace:w[t1]" - "rounding 0, floating:0, onworkspace:w[t1]" - "bordersize 0, floating:0, onworkspace:w[tg1]" - "rounding 0, floating:0, onworkspace:w[tg1]" - "bordersize 0, floating:0, onworkspace:f[1]" - "rounding 0, floating:0, onworkspace:f[1]" - ] - ++ lopts config.hypr.xwayland.videobridge.enable [ - "opacity 0.0 override 0.0 override,class:^(xwaylandvideobridge)$" - "noanim,class:^(xwaylandvideobridge)$" - "noinitialfocus,class:^(xwaylandvideobridge)$" - "maxsize 1 1,class:^(xwaylandvideobridge)$" - "noblur,class:^(xwaylandvideobridge)$" - ] ++ map (id: "opacity 1 override, " + id) config.hypr.windows.opaque - ++ [ - "opacity 0.94 fullscreen:0" - "opacity 0.79 override, class:^(${config.defaultApps.terminal})$" - ]; - - # 1, exec, $XDG_CONFIG_HOME/hypr/scripts/changeprimary.xsh home - # 2, exec, $XDG_CONFIG_HOME/hypr/scripts/changeprimary.xsh web - # 3, exec, $XDG_CONFIG_HOME/hypr/scripts/changeprimary.xsh med - # 4, exec, $XDG_CONFIG_HOME/hypr/scripts/changeprimary.xsh game - # 5, exec, $XDG_CONFIG_HOME/hypr/scripts/changeprimary.xsh etc - # _, exec, $XDG_CONFIG_HOME/hypr/scripts/changeprimary.xsh hell - # TAB, exec, $XDG_CONFIG_HOME/hypr/scripts/changesecondary.xsh - # - # SHIFT, 1, movetoworkspacesilent, name:home - # SHIFT, 2, movetoworkspacesilent, name:web - # SHIFT, 3, movetoworkspacesilent, name:med - # SHIFT, 4, movetoworkspacesilent, name:game - # SHIFT, TAB, movetoworkspacesilent, r-1 - - bind = let - modPrefix = kb: if (lib.strings.hasPrefix "&" kb) - then ("${mod}" + kb) - else ("${mod}, " + kb); - in map modPrefix ([ - "Return, exec, ${config.defaultApps.terminal}" - "&SHIFT, Q, exit" - "h, focusmonitor, l" - "l, focusmonitor, r" - "j, cyclenext," - "k, cyclenext, prev" - "&SHIFT, h, movecurrentworkspacetomonitor, -1" - "&SHIFT, l, movecurrentworkspacetomonitor, +1" - "&SHIFT, j, swapnext," - "&SHIFT, k, swapnext, prev" - "c, killactive" - "f, togglefloating" - "&SHIFT, f, fullscreen" - ] ++ (let - workspaces = builtins.concatLists ( - builtins.attrValues config.hypr.workspace.workspaces); - wsBinds = with builtins; wrksps: depth: if depth > (length wrksps) - then [] - else let ws = builtins.elemAt wrksps (depth -1); in [ - "${toString depth}, workspace, name:${ws}" - "&SHIFT, ${toString depth}, movetoworkspacesilent, name:${ws}" - ] ++ wsBinds wrksps (depth + 1); - in wsBinds workspaces 1) ++ lopts config.rofi.enable [ - "&SHIFT, return, exec, ${pkgs.rofi}/bin/rofi -show run" - ] ++ lopts config.hypr.screenshot.enable [ - "P, exec, ${pkgs.grimblast}/bin/grimblast --freeze copy area" - "&SHIFT, P, exec, ${pkgs.grimblast}/bin/grimblast --freeze copysave area" - ] ++ lopts config.hypr.workspace.scratchpad.enable [ - "i, togglespecialworkspace, scratch" - ]); - - bindm = map (kb: "${mod}, " + kb) [ - "mouse:272, movewindow" - "mouse:273, movewindow" - ]; - }; - }; - - home.packages = with pkgs; [ - wlr-randr # Xrandr for wayland - wl-clipboard # Clipboard manager for wayland - ] ++ lopts config.hypr.xwayland.videobridge.enable [ - kdePackages.xwaylandvideobridge - ] ++ lopts config.hypr.cursor.enable [ - hyprcursor - ] ++ lopts config.hypr.screenshot.enable [ - hyprpicker # Colorpicker, needed for screenshot tool - inputs.hyprland-contrib.packages.${pkgs.system}.grimblast - ]; - - xdg.configFile."hypr-scripts" = { - source = rootPath + "/scripts"; - target = "hypr/scripts"; - executable = true; - }; - - xdg.dataFile."hypr-icons" = lib.mkIf config.hypr.cursor.enable { - source = rootPath + "/icons"; - target = "icons/"; - recursive = true; - }; - }; + # config = let + # lopts = lib.lists.optionals; + # in { + # nix.settings = { + # substituters = ["https://hyprland.cachix.org"]; + # trusted-public-keys = ["hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="]; + # }; + # } // lib.mkIf config.hypr.enable { + # wayland.windowManager.hyprland = let + # mod = config.hypr.mod_key; + # # p-s = let + # # chw = config.hypr.workspace; + # # findDefaultWs = id: if (builtins.hasAttr id chw.workspaces) + # # then (builtins.head (builtins.getAttr id chw.workspaces)) + # # else ""; + # # in with config.hypr.workspace; lib.mkIf primary-secondary.enable { + # # primaryWs = findDefaultWs primary-secondary.primary; + # # secondaryWs = findDefaultWs primary-secondary.secondary; + # # }; + # in { + # enable = true; + # settings = { + # monitor = config.hypr.monitor.details; + # workspace = let + # wsMonitor = monitor: wrksps: map (ws: + # if ws == (builtins.head wrksps) + # then "name:"+ws+", monitor:"+monitor+", persistent:true, default:true" + # else "name:"+ws+", monitor:"+monitor+", persistent:true" + # ) wrksps; + # makeRules = wsAttr: builtins.concatLists (builtins.attrValues ( + # builtins.mapAttrs wsMonitor wsAttr + # )); + # in makeRules config.hypr.workspace.workspaces + # ++ [ + # "w[t1], gapsout:0, gapsin:0" + # "w[tg1], gapsout:0, gapsin:0" + # "f[1], gapsout:0, gapsin:0" + # ] + # ++ lopts config.hypr.workspace.scratchpad.enable [ + # "special:scratch, on-created-empty: [float; size 50% 50%; center] ${config.defaultApps.terminal}" + # ]; + # input = { + # accel_profile = "flat"; + # sensitivity = config.hypr.mouse.sensitivity; + # }; + # general = { + # gaps_in = 3; + # gaps_out = 3; + # border_size = 2; + # "col.active_border" = "rgb(F5C2E7)"; + # "col.inactive_border" = "rgb(1E1D2F)"; + # layout = "master"; + # }; + # decoration = { + # rounding = 2; + # blur = { + # enabled = true; + # size = 12; + # passes = 2; + # special = true; + # }; + # }; + # animation = [ + # "windows, 1, 4, default, popin 50%" + # "windowsOut, 1, 4, default, popin 50%" + # "windowsMove, 1, 3, default" + # "border, 1, 3, default" + # "fade, 1, 3, default" + # "workspaces, 1, 3, default" + # ]; + # master = { + # mfact = config.hypr.master.mfact; + # }; + # misc = { + # focus_on_activate = true; + # }; + # + # exec-once = lopts config.hypr.polkit.enable [ + # "${pkgs.kdePackages.polkit-kde-agent-1}/bin/libexec/polkit-kde-authentication-agent-1" + # ] ++ lopts config.hypr.background.enable [ + # "${pkgs.swww}/bin/swww-daemon" + # "${pkgs.swww}/bin/swww img ${config.hypr.background.path}" + # ] ++ lopts config.ags.enable [ + # "ags" + # ] ++ lopts config.beeper.enable [ + # "[workspace name:chat silent] Beeper" + # ]; + # + # env = with config.hypr; [ + # # "HYPR_MON_PRIMARY, ${workspace.primary-secondary.primary}" + # # "HYPR_MON_SECONDARY, ${workspace.primary-secondary.secondary}" + # "HYPR_WORK_DB, ${config.xdg.cacheHome}/hypr/workspace.db" + # ] ++ lopts cursor.enable [ + # "HYPRCURSOR_THEME,${cursor.theme}" + # "HYPRCURSOR_SIZE,${cursor.size}" + # ] ++ lopts config.nvidia.enable [ + # "LIBVA_DRIVER_NAME,nvidia" + # "XDG_SESSION_TYPE,wayland" + # "GBM_BACKEND,nvidia-drm" + # "__GLX_VENDOR_LIBRARY_NAME,nvidia" + # "WLR_RENDERER_ALLOW_SOFTWARE,1" + # "WLR_DRM_DEVICES,/dev/dri/card1" + # ]; + # + # windowrulev2 = let + # workspaceDefaults = wsname: applist: map ( + # app: "workspace " + wsname + ", " + app + # ) applist; + # allDefault = wsAttr: builtins.concatLists (builtins.attrValues ( + # builtins.mapAttrs workspaceDefaults wsAttr + # )); + # in allDefault config.hypr.workspace.defaults + # ++ [ + # "bordersize 0, floating:0, onworkspace:w[t1]" + # "rounding 0, floating:0, onworkspace:w[t1]" + # "bordersize 0, floating:0, onworkspace:w[tg1]" + # "rounding 0, floating:0, onworkspace:w[tg1]" + # "bordersize 0, floating:0, onworkspace:f[1]" + # "rounding 0, floating:0, onworkspace:f[1]" + # ] + # ++ lopts config.hypr.xwayland.videobridge.enable [ + # "opacity 0.0 override 0.0 override,class:^(xwaylandvideobridge)$" + # "noanim,class:^(xwaylandvideobridge)$" + # "noinitialfocus,class:^(xwaylandvideobridge)$" + # "maxsize 1 1,class:^(xwaylandvideobridge)$" + # "noblur,class:^(xwaylandvideobridge)$" + # ] ++ map (id: "opacity 1 override, " + id) config.hypr.windows.opaque + # ++ [ + # "opacity 0.94 fullscreen:0" + # "opacity 0.79 override, class:^(${config.defaultApps.terminal})$" + # ]; + # + # # 1, exec, $XDG_CONFIG_HOME/hypr/scripts/changeprimary.xsh home + # # 2, exec, $XDG_CONFIG_HOME/hypr/scripts/changeprimary.xsh web + # # 3, exec, $XDG_CONFIG_HOME/hypr/scripts/changeprimary.xsh med + # # 4, exec, $XDG_CONFIG_HOME/hypr/scripts/changeprimary.xsh game + # # 5, exec, $XDG_CONFIG_HOME/hypr/scripts/changeprimary.xsh etc + # # _, exec, $XDG_CONFIG_HOME/hypr/scripts/changeprimary.xsh hell + # # TAB, exec, $XDG_CONFIG_HOME/hypr/scripts/changesecondary.xsh + # # + # # SHIFT, 1, movetoworkspacesilent, name:home + # # SHIFT, 2, movetoworkspacesilent, name:web + # # SHIFT, 3, movetoworkspacesilent, name:med + # # SHIFT, 4, movetoworkspacesilent, name:game + # # SHIFT, TAB, movetoworkspacesilent, r-1 + # + # bind = let + # modPrefix = kb: if (lib.strings.hasPrefix "&" kb) + # then ("${mod}" + kb) + # else ("${mod}, " + kb); + # in map modPrefix ([ + # "Return, exec, ${config.defaultApps.terminal}" + # "&SHIFT, Q, exit" + # "h, focusmonitor, l" + # "l, focusmonitor, r" + # "j, cyclenext," + # "k, cyclenext, prev" + # "&SHIFT, h, movecurrentworkspacetomonitor, -1" + # "&SHIFT, l, movecurrentworkspacetomonitor, +1" + # "&SHIFT, j, swapnext," + # "&SHIFT, k, swapnext, prev" + # "c, killactive" + # "f, togglefloating" + # "&SHIFT, f, fullscreen" + # ] ++ (let + # workspaces = builtins.concatLists ( + # builtins.attrValues config.hypr.workspace.workspaces); + # wsBinds = with builtins; wrksps: depth: if depth > (length wrksps) + # then [] + # else let ws = builtins.elemAt wrksps (depth -1); in [ + # "${toString depth}, workspace, name:${ws}" + # "&SHIFT, ${toString depth}, movetoworkspacesilent, name:${ws}" + # ] ++ wsBinds wrksps (depth + 1); + # in wsBinds workspaces 1) ++ lopts config.rofi.enable [ + # "&SHIFT, return, exec, ${pkgs.rofi}/bin/rofi -show run" + # ] ++ lopts config.hypr.screenshot.enable [ + # "P, exec, ${pkgs.grimblast}/bin/grimblast --freeze copy area" + # "&SHIFT, P, exec, ${pkgs.grimblast}/bin/grimblast --freeze copysave area" + # ] ++ lopts config.hypr.workspace.scratchpad.enable [ + # "i, togglespecialworkspace, scratch" + # ]); + # + # bindm = map (kb: "${mod}, " + kb) [ + # "mouse:272, movewindow" + # "mouse:273, movewindow" + # ]; + # }; + # }; + # + # home.packages = with pkgs; [ + # wlr-randr # Xrandr for wayland + # wl-clipboard # Clipboard manager for wayland + # ] ++ lopts config.hypr.xwayland.videobridge.enable [ + # kdePackages.xwaylandvideobridge + # ] ++ lopts config.hypr.cursor.enable [ + # hyprcursor + # ] ++ lopts config.hypr.screenshot.enable [ + # hyprpicker # Colorpicker, needed for screenshot tool + # inputs.hyprland-contrib.packages.${pkgs.system}.grimblast + # ]; + # + # xdg.configFile."hypr-scripts" = { + # source = rootPath + "/scripts"; + # target = "hypr/scripts"; + # executable = true; + # }; + # + # xdg.dataFile."hypr-icons" = lib.mkIf config.hypr.cursor.enable { + # source = rootPath + "/icons"; + # target = "icons/"; + # recursive = true; + # }; + # }; } diff --git a/hmModules/apps/lf/app.nix b/hmModules/apps/lf/app.nix index 25a3b89..ecc428e 100644 --- a/hmModules/apps/lf/app.nix +++ b/hmModules/apps/lf/app.nix @@ -33,7 +33,7 @@ relativenumber = true; }; commands = { - dragon-out = ''%${pkgs.dragon-drop}/bin/dragon -a -x "$fx"''; + dragon-out = ''%${pkgs.dragon-drop}/bin/dragon-drop -a -x "$fx"''; trash = lib.mkIf config.trash.enable '' %${pkgs.trash-cli}/bin/trash "$fx" ''; diff --git a/hmModules/automatic/default.nix b/hmModules/automatic/default.nix index f974b21..18c78ef 100644 --- a/hmModules/automatic/default.nix +++ b/hmModules/automatic/default.nix @@ -1,4 +1,4 @@ -{ config, lib, usernameAtHostname, ... }: +{ config, lib, ... }: { options = { @@ -9,17 +9,15 @@ browser = lib.mkOption { default = ""; }; }; }; - config = let - st = lib.strings; - in { + config = { # Let Home Manager install and manage itself. programs.home-manager.enable = true; nixpkgs.config.allowUnfree = true; home.stateVersion = "23.05"; home = { - username = builtins.elemAt (st.splitString "@" usernameAtHostname) 0; - homeDirectory = "/home/" + config.home.username; + username = "pan"; + homeDirectory = "/home/pan"; packages = config.extraPkgs; }; diff --git a/hmModules/services/widgets/ags/default.nix b/hmModules/services/widgets/ags/default.nix index 5d248d1..5403b1e 100644 --- a/hmModules/services/widgets/ags/default.nix +++ b/hmModules/services/widgets/ags/default.nix @@ -1,25 +1,30 @@ -{ config, inputs, pkgs, lib, ... }: +{ config, lib, ... }: { options.ags = { enable = lib.mkEnableOption "Enable ags"; }; + + config.warnings = lib.mkIf config.ags.enable ['' + ags.enable has been deprecated to allow the removal of ags from flake + inputs. + '']; - imports = [ inputs.ags.homeManagerModules.default ]; + # imports = [ inputs.ags.homeManagerModules.default ]; - config = lib.mkIf config.ags.enable { - home.packages = with pkgs; [ - libnotify # Notifications through ags - ]; - programs.ags = { - enable = true; - configDir = ./config; - - extraPackages = with pkgs; [ - gtksourceview - webkitgtk - accountsservice - ]; - }; - }; + # config = lib.mkIf config.ags.enable { + # home.packages = with pkgs; [ + # libnotify # Notifications through ags + # ]; + # programs.ags = { + # enable = true; + # configDir = ./config; + # + # extraPackages = with pkgs; [ + # gtksourceview + # webkitgtk + # accountsservice + # ]; + # }; + # }; } diff --git a/hosts/jibril/host.nix b/hosts/jibril/default.nix similarity index 100% rename from hosts/jibril/host.nix rename to hosts/jibril/default.nix diff --git a/hosts/juri/host.nix b/hosts/juri/default.nix similarity index 100% rename from hosts/juri/host.nix rename to hosts/juri/default.nix diff --git a/hosts/juri/users/badtz/user.nix b/hosts/juri/users/badtz/user.nix deleted file mode 100644 index 5972fdb..0000000 --- a/hosts/juri/users/badtz/user.nix +++ /dev/null @@ -1,10 +0,0 @@ -{ config, pkgs, ... }: - -{ - fish.enable = true; - git = { - enable = true; - username = "Badtz"; - email = "may@badtz.dev"; - }; -} diff --git a/hosts/onizuka/host.nix b/hosts/onizuka/default.nix similarity index 91% rename from hosts/onizuka/host.nix rename to hosts/onizuka/default.nix index d2dbc49..46a9717 100644 --- a/hosts/onizuka/host.nix +++ b/hosts/onizuka/default.nix @@ -20,8 +20,6 @@ steam.enable = true; steam.gamemode = true; - aagl.enable = true; - aagl.honkai-rail = true; input-remapper.enable = true; postgres.enable = true; diff --git a/nixosModules/apps/animelauncher/app.nix b/nixosModules/apps/animelauncher/app.nix index 5cf1a9b..27f1406 100644 --- a/nixosModules/apps/animelauncher/app.nix +++ b/nixosModules/apps/animelauncher/app.nix @@ -1,4 +1,4 @@ -{ config, inputs, lib, ... }: +{ config, lib, ... }: { options.aagl = { @@ -12,16 +12,21 @@ "Enables honkai 3rd impact"; }; - imports = [ inputs.aagl.nixosModules.default ]; + # imports = [ inputs.aagl.nixosModules.default ]; - config = lib.mkIf config.aagl.enable { - nix.settings = inputs.aagl.nixConfig; + config.warnings = lib.mkIf (config.aagl.enable || config.aagl.honkai-rail || + config.aagl.genshin || config.aagl.honkai-3rd) ['' + aagl.* has been deprecated to allow the removal of aagl from flake inputs. + '']; - programs.honkers-railway-launcher.enable = - lib.mkIf config.aagl.honkai-rail true; - programs.anime-game-launcher.enable = - lib.mkIf config.aagl.genshin true; - programs.honkers-launcher.enable = - lib.mkIf config.aagl.honkai-3rd true; - }; + # config = lib.mkIf config.aagl.enable { + # nix.settings = inputs.aagl.nixConfig; + # + # programs.honkers-railway-launcher.enable = + # lib.mkIf config.aagl.honkai-rail true; + # programs.anime-game-launcher.enable = + # lib.mkIf config.aagl.genshin true; + # programs.honkers-launcher.enable = + # lib.mkIf config.aagl.honkai-3rd true; + # }; } diff --git a/nixosModules/automatic/default.nix b/nixosModules/automatic/default.nix index 2f80ace..05d82c7 100644 --- a/nixosModules/automatic/default.nix +++ b/nixosModules/automatic/default.nix @@ -1,4 +1,4 @@ -{ config, pkgs, lib, hostname, usernameList, ... }: +{ config, pkgs, lib, ... }: { options.system = { @@ -22,7 +22,6 @@ boot.loader.efi.canTouchEfiVariables = true; }) { - networking.hostName = hostname; system.stateVersion = lib.mkDefault "23.05"; time.timeZone = config.system.timezone; @@ -49,7 +48,7 @@ extraGroups = [ "network" ]; }; } - ) usernameList); + ) [ "pan" ]); groups = { wheel = { members = config.system.users.bigWheels; diff --git a/nixosModules/services/caddy/service.nix b/nixosModules/services/caddy/service.nix index ee722b3..eaf0965 100644 --- a/nixosModules/services/caddy/service.nix +++ b/nixosModules/services/caddy/service.nix @@ -20,7 +20,7 @@ ''; package = pkgs.caddy.withPlugins { plugins = [ "github.com/caddy-dns/porkbun@v0.3.1" ]; - hash = "sha256-j/GODingW5BhfjQRajinivX/9zpiLGgyxvAjX0+amRU="; + hash = "sha256-NlZY/EEY9TbqrMAkSHK2aGm5AjFTvpvBXV1GW1PnXCc="; }; virtualHosts = config.caddy.vhosts; email = config.caddy.adminEmail; diff --git a/nixosModules/services/hyprland/service.nix b/nixosModules/services/hyprland/service.nix index 779a8fe..3d13ac0 100644 --- a/nixosModules/services/hyprland/service.nix +++ b/nixosModules/services/hyprland/service.nix @@ -1,4 +1,4 @@ -{ inputs, config, lib, ... }: +{ config, lib, ... }: { @@ -6,18 +6,14 @@ enable = lib.mkEnableOption "Enables hyprland"; }; - imports = [ - inputs.hyprland.nixosModules.default - ]; + # imports = [ + # inputs.hyprland.nixosModules.default + # ]; - config = { - nix.settings = { - substituters = [ "https://hyprland.cachix.org" ]; - trusted-public-keys = [ - "hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc=" - ]; - experimental-features = [ "nix-command" "flakes" ]; - }; - programs.hyprland.enable = lib.mkIf config.hyprland.enable true; - }; + config.warnings = lib.mkIf config.hyprland.enable ['' + hyprland.enable has been deprecated to allow the removal of hyprland from + flake inputs. + '']; + + # config.programs.hyprland.enable = lib.mkIf config.hyprland.enable true; } diff --git a/hosts/jibril/users/pan/user.nix b/users/jibril/default.nix similarity index 100% rename from hosts/jibril/users/pan/user.nix rename to users/jibril/default.nix diff --git a/hosts/juri/users/pan/user.nix b/users/juri/default.nix similarity index 100% rename from hosts/juri/users/pan/user.nix rename to users/juri/default.nix diff --git a/hosts/onizuka/users/pan/user.nix b/users/onizuka/default.nix similarity index 100% rename from hosts/onizuka/users/pan/user.nix rename to users/onizuka/default.nix From c95d776b632aaee9ff7c4166aca7f901605b90c3 Mon Sep 17 00:00:00 2001 From: Julia Lange Date: Mon, 15 Dec 2025 22:49:14 -0800 Subject: [PATCH 18/30] Jibril, add tailscale --- hosts/jibril/default.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/hosts/jibril/default.nix b/hosts/jibril/default.nix index efc1452..92f7e4b 100644 --- a/hosts/jibril/default.nix +++ b/hosts/jibril/default.nix @@ -27,7 +27,8 @@ tuigreet.enable = true; niri.enable = true; - + tailscale.enable = true; + postgres.enable = true; shell.enabledShells = [ "fish" ]; From 2e808eb8b8981ebff0fae22d78027a7bb8e8d524 Mon Sep 17 00:00:00 2001 From: Julia Lange Date: Mon, 15 Dec 2025 22:49:34 -0800 Subject: [PATCH 19/30] Jibril, update Kabal internet --- hosts/jibril/networks.toml | 2 +- hosts/jibril/secrets.yaml | 13 ++++--------- 2 files changed, 5 insertions(+), 10 deletions(-) diff --git a/hosts/jibril/networks.toml b/hosts/jibril/networks.toml index 860bdd1..762a2f2 100644 --- a/hosts/jibril/networks.toml +++ b/hosts/jibril/networks.toml @@ -1,4 +1,4 @@ -["TheKabal2.4"] +[Kabal] ["DropboxGuest3.0"] diff --git a/hosts/jibril/secrets.yaml b/hosts/jibril/secrets.yaml index fcde584..a1dbefb 100644 --- a/hosts/jibril/secrets.yaml +++ b/hosts/jibril/secrets.yaml @@ -1,9 +1,5 @@ -wireless: ENC[AES256_GCM,data:pQv+gdAW8W9nSEJkbXWex47iuuqgJMEELldFsmgk2Y08MDZ1ytXqlphTK/jbewD3tpz4v29fSuWamv1uZpxM2+c2zCuMVTdrhAf0i/Sjqd9CWP8NQvTDI3v8ps9REFzR7n7hywnkfOkDNwRkmavSfCxK5k9SQLNC7De6P811/Fundb9r6oeIH2OEDBkZEHw8gYndjy6cLDUE2SY/cmxRsKWhATsCLcWKOpQa86zlT9dr9nMtYVF1AN5T4JR/7QKqJ8UT4mvhAA0OEfKv0Cf3euH24vtBrv5YxwDT6tQpOABOyOy9mWLc+bXDID/HX4akeU1O6+eBSpNeRgpAcMfD6b/eqKAvDvnixHubu9GemVspmeoA/91i5B70u3kjm0EKup7KLXCp5RutLnLRczDPdfbCB7bEipeRyF8P+UCuhQ==,iv:WN7mGyHpaMDdLRpFGyDUQ2D9a0t/rucfyKroJYqaHPs=,tag:7KTzBEt30nqCJclDgiWuKg==,type:str] +wireless: ENC[AES256_GCM,data:VU8tpeCgEFSUC490q1hGgBrdFFscL2QybywlpiFG3suofj2Q2VVXKLK4EpF2ebpf/nBf/ggHv/uoSFxuQYYvIsMIo1bYOKvM5QNMi9HO2KmfFbmQYYzmt5CNNh9tno9wmiekeDOnKjQDGK5CoGLD4+y+VW1IVrN9XL+xRxAszgYM4qdSim7CJ1hgU89OgzVL9poVsmqxbiuWY88+ZErIspSHO0QwGOJ5Pc4OixEK2N3EtcYDhV5fBvlFv7t4b8P6BJZIn2NVXCVaW4UcEsefcxHqohd5AuYXJH7wt9aPwJRJehxd9GhVJeQ6QtPXuqZaEspd+dSvlYrvdO8pFTrIklrty30CJg3WberWmI111T8ZNFlNBghSu6nXzO9YkKfDuAYUEPVERL9jG9xF8tGb1JxhOmg33Kg6fg==,iv:07Reckni7LSfDL3qVUv4v80IOVQSbFpz49UsyiIDGWk=,tag:iMgCspLUWNCjjYT0pkMwDw==,type:str] sops: - kms: [] - gcp_kms: [] - azure_kv: [] - hc_vault: [] age: - recipient: age1ey3wr2wnkgny3dfgvnyrf0cptwzr7s5x464p2y9ya58lpay8lfrsds3y68 enc: | @@ -23,8 +19,7 @@ sops: Ky83VFhiVE9wK01UMDlSbnIrd2d2SHcKp6mF8PaR0ItrvLHpEgMe6fwuboyrrs9y 7Ct6qZ1SN/4f/xJpDP2qiaQ4KTZzY1BlC3isT3CWeajOQhL/y5JCOw== -----END AGE ENCRYPTED FILE----- - lastmodified: "2024-11-07T21:12:36Z" - mac: ENC[AES256_GCM,data:z0ePEvsEKvcMca2x2qjTsSBwk+qI3jd8h2uAnSsGtJL5UI1OdBL8oVIGKty0pGaCvtrF01UN1ncKBGe5y12Vij2yuyv7LK4ANArxQ4+O583NdYHYeD+T75yGu4SAYjcoM23RD1h+W0SLQpCen2J3WYmJaOjtqMBv/gaFYl/DV7I=,iv:VJjZTd1g4oJCDLEp8+jH15Y2svTNtQUE1vc3WQoJJZU=,tag:4U7uh6U5PwHJ2r6/WFUbnw==,type:str] - pgp: [] + lastmodified: "2025-08-27T05:30:04Z" + mac: ENC[AES256_GCM,data:hoSykxuHPAofdbXNJCyozeQYYhg3yXLOVx+K9PsSctUMrIc9ii76SDGY2h+6gFNy1rGkPxmYHueqHEJHvvoxLHcwkwoN8AddOVrnXNoIpOvwcn0GfpPIPf5rCvxSxvcsZwPW+affMMVRyRR8aJ3llj7ojuuuyTnm+HL9H9vY1PQ=,iv:pUXl49AqRerTlGoOzoWt0NrEo8rqPmBF7yiB4ZufC3M=,tag:1mP3jsP2O6yKlJVmaA7EMQ==,type:str] unencrypted_suffix: _unencrypted - version: 3.9.1 + version: 3.10.2 From d833f04aa3891f64654e4ac38f63166027d7a567 Mon Sep 17 00:00:00 2001 From: Julia Lange Date: Mon, 9 Feb 2026 17:17:25 -0800 Subject: [PATCH 20/30] Flake update 2026-02-09 --- flake.lock | 139 ++++++++++------------------------------------------- flake.nix | 22 ++++----- 2 files changed, 37 insertions(+), 124 deletions(-) diff --git a/flake.lock b/flake.lock index 0e7d694..9d751ae 100644 --- a/flake.lock +++ b/flake.lock @@ -22,11 +22,11 @@ ] }, "locked": { - "lastModified": 1762980239, - "narHash": "sha256-8oNVE8TrD19ulHinjaqONf9QWCKK+w4url56cdStMpM=", + "lastModified": 1769996383, + "narHash": "sha256-AnYjnFWgS49RlqX7LrC4uA+sCCDBj0Ry/WOJ5XWAsa0=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "52a2caecc898d0b46b2b905f058ccc5081f842da", + "rev": "57928607ea566b5db3ad13af0e57e921e6b12381", "type": "github" }, "original": { @@ -35,39 +35,6 @@ "type": "github" } }, - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1731533236, - "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "flakey-profile": { - "locked": { - "lastModified": 1712898590, - "narHash": "sha256-FhGIEU93VHAChKEXx905TSiPZKga69bWl1VB37FK//I=", - "owner": "lf-", - "repo": "flakey-profile", - "rev": "243c903fd8eadc0f63d205665a92d4df91d42d9d", - "type": "github" - }, - "original": { - "owner": "lf-", - "repo": "flakey-profile", - "type": "github" - } - }, "home-manager": { "inputs": { "nixpkgs": [ @@ -75,11 +42,11 @@ ] }, "locked": { - "lastModified": 1763416652, - "narHash": "sha256-8EBEEvtzQ11LCxpQHMNEBQAGtQiCu/pqP9zSovDSbNM=", + "lastModified": 1770654520, + "narHash": "sha256-mg5WZMIPGsFu9MxSrUcuJUPMbfMsF77el5yb/7rc10k=", "owner": "nix-community", "repo": "home-manager", - "rev": "ea164b7c9ccdc2321379c2ff78fd4317b4c41312", + "rev": "6c4fdbe1ad198fac36c320fd45c5957324a80b8e", "type": "github" }, "original": { @@ -88,43 +55,6 @@ "type": "github" } }, - "lix": { - "flake": false, - "locked": { - "lastModified": 1763570812, - "narHash": "sha256-A42G8ulTZ1MFCR0VsLF21CoKi0XKGUYwtVBHGm5mFgQ=", - "rev": "f3b2f3496bd6d346cba475d0ba152a9d3a83dec7", - "type": "tarball", - "url": "https://git.lix.systems/api/v1/repos/lix-project/lix/archive/f3b2f3496bd6d346cba475d0ba152a9d3a83dec7.tar.gz" - }, - "original": { - "type": "tarball", - "url": "https://git.lix.systems/lix-project/lix/archive/main.tar.gz" - } - }, - "lix-module": { - "inputs": { - "flake-utils": "flake-utils", - "flakey-profile": "flakey-profile", - "lix": [ - "lix" - ], - "nixpkgs": [ - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1763435414, - "narHash": "sha256-i2467FddWfd19q5Qoj+1/BAeg6LZmM5m4mYGRSQn/as=", - "rev": "192c92b603731fbc1bade6c1b18c8d8a0086f703", - "type": "tarball", - "url": "https://git.lix.systems/api/v1/repos/lix-project/nixos-module/archive/192c92b603731fbc1bade6c1b18c8d8a0086f703.tar.gz" - }, - "original": { - "type": "tarball", - "url": "https://git.lix.systems/lix-project/nixos-module/archive/main.tar.gz" - } - }, "niri": { "inputs": { "niri-stable": "niri-stable", @@ -137,11 +67,11 @@ "xwayland-satellite-unstable": "xwayland-satellite-unstable" }, "locked": { - "lastModified": 1763538184, - "narHash": "sha256-6umNY06L6ZUjinthjVZIwyWyAjxOXSPhXfY0U1CVTWw=", + "lastModified": 1770620836, + "narHash": "sha256-HPoMvo/EqIr6xDDRlk6DGZYdu1Hte7lGLZaGZ5017Uc=", "owner": "sodiboo", "repo": "niri-flake", - "rev": "85a16f400641eed912431efcec16f12e2100d46a", + "rev": "ff1edce403a67cfac7bf1038d348f2ef457ac691", "type": "github" }, "original": { @@ -170,11 +100,11 @@ "niri-unstable": { "flake": false, "locked": { - "lastModified": 1763531615, - "narHash": "sha256-cMi8tz+0+gWtlYqVnyMv7phOeQ0/4WmzZ/lxCyraUVw=", + "lastModified": 1770394959, + "narHash": "sha256-if7bIsomdceIufOhkFwN74rFY/pLCWPynRxGyol2viQ=", "owner": "YaLTeR", "repo": "niri", - "rev": "c722634c269ae97a5ea185691bcd0b8c73a600e5", + "rev": "ab47f5cec4c1c5758afeb91c0c98554ffd3433db", "type": "github" }, "original": { @@ -185,11 +115,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1763464769, - "narHash": "sha256-mU85VDFRIgKGq1EhT71bLjhvjJ5yuMEe0Ip1kwCbR80=", - "rev": "6f374686605df381de8541c072038472a5ea2e2d", + "lastModified": 1770537093, + "narHash": "sha256-XV30uo8tXuxdzuV8l3sojmlPRLd/8tpMsOp4lNzLGUo=", + "rev": "fef9403a3e4d31b0a23f0bacebbec52c248fbb51", "type": "tarball", - "url": "https://releases.nixos.org/nixpkgs/nixpkgs-25.11pre898015.6f374686605d/nixexprs.tar.xz" + "url": "https://releases.nixos.org/nixpkgs/nixpkgs-26.05pre942631.fef9403a3e4d/nixexprs.tar.xz" }, "original": { "type": "tarball", @@ -198,16 +128,16 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1763334038, - "narHash": "sha256-LBVOyaH6NFzQ3X/c6vfMZ9k4SV2ofhpxeL9YnhHNJQQ=", + "lastModified": 1770464364, + "narHash": "sha256-z5NJPSBwsLf/OfD8WTmh79tlSU8XgIbwmk6qB1/TFzY=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "4c8cdd5b1a630e8f72c9dd9bf582b1afb3127d2c", + "rev": "23d72dabcb3b12469f57b37170fcbc1789bd7457", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixos-25.05", + "ref": "nixos-25.11", "repo": "nixpkgs", "type": "github" } @@ -217,8 +147,6 @@ "easy-hosts": "easy-hosts", "flake-parts": "flake-parts", "home-manager": "home-manager", - "lix": "lix", - "lix-module": "lix-module", "niri": "niri", "nixpkgs": "nixpkgs", "sops-nix": "sops-nix" @@ -231,11 +159,11 @@ ] }, "locked": { - "lastModified": 1763509310, - "narHash": "sha256-s2WzTAD3vJtPACBCZXezNUMTG/wC6SFsU9DxazB9wDI=", + "lastModified": 1770683991, + "narHash": "sha256-xVfPvXDf9QN3Eh9dV+Lw6IkWG42KSuQ1u2260HKvpnc=", "owner": "Mic92", "repo": "sops-nix", - "rev": "3ee33c0ed7c5aa61b4e10484d2ebdbdc98afb03e", + "rev": "8b89f44c2cc4581e402111d928869fe7ba9f7033", "type": "github" }, "original": { @@ -244,21 +172,6 @@ "type": "github" } }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - }, "xwayland-satellite-stable": { "flake": false, "locked": { @@ -279,11 +192,11 @@ "xwayland-satellite-unstable": { "flake": false, "locked": { - "lastModified": 1762747449, - "narHash": "sha256-Z1TKiux8K09a93w4PFDFsj8HFugXNy3iCC3Z8MpR5Rk=", + "lastModified": 1770583271, + "narHash": "sha256-Q75S8cEqJoZ92s1y4zArvk2U1ayAy2E4SaF7gbNXkYQ=", "owner": "Supreeeme", "repo": "xwayland-satellite", - "rev": "6338574bc5c036487486acde264f38f39ea15fad", + "rev": "86f5bd5d867ad6e120935dfe825f6b903ebbeddd", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 37dafc1..e469f38 100644 --- a/flake.nix +++ b/flake.nix @@ -13,7 +13,7 @@ shared = { modules = [ - inputs.lix-module.nixosModules.default + # inputs.lix-module.nixosModules.default ./nixosModules ]; }; @@ -61,16 +61,16 @@ repo = "easy-hosts"; }; - lix = { - url = "https://git.lix.systems/lix-project/lix/archive/main.tar.gz"; - flake = false; - }; - - lix-module = { - url = "https://git.lix.systems/lix-project/nixos-module/archive/main.tar.gz"; - inputs.nixpkgs.follows = "nixpkgs"; - inputs.lix.follows = "lix"; - }; + # lix = { + # url = "https://git.lix.systems/lix-project/lix/archive/main.tar.gz"; + # flake = false; + # }; + # + # lix-module = { + # url = "https://git.lix.systems/lix-project/nixos-module/archive/main.tar.gz"; + # inputs.nixpkgs.follows = "nixpkgs"; + # inputs.lix.follows = "lix"; + # }; niri = { type = "github"; From d02533517f5181f594379a9c1b37400323c1234e Mon Sep 17 00:00:00 2001 From: Julia Lange Date: Wed, 26 Nov 2025 15:21:12 -0800 Subject: [PATCH 21/30] OSAuto, sane nix defaults --- nixosModules/automatic/default.nix | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/nixosModules/automatic/default.nix b/nixosModules/automatic/default.nix index 05d82c7..f6b9a74 100644 --- a/nixosModules/automatic/default.nix +++ b/nixosModules/automatic/default.nix @@ -1,4 +1,4 @@ -{ config, pkgs, lib, ... }: +{ config, pkgs, lib, inputs, ... }: { options.system = { @@ -9,7 +9,7 @@ "Enable if you are running a non-EFI system"; users.bigWheels = lib.mkOption { default = []; }; }; - + config = lib.mkMerge [ (lib.mkIf config.system.isNonEFI { boot.loader.grub.enable = false; @@ -29,15 +29,26 @@ # Packages & Default Packages nixpkgs.config.allowUnfree = true; + nix = { + registry.nixpkgs.flake = inputs.nixpkgs; + gc = { automatic = true; options = "--delete-older-than 5d"; }; + channel.enable = false; + settings = { + auto-optimise-store = true; + keep-going = true; + use-xdg-base-directories = true; + experimental-features = [ + "flakes" + "nix-command" + ]; + }; + }; environment.systemPackages = with pkgs; [ git neovim xdg-user-dirs ] ++ config.system.extraPkgs; - # XDG Compliance - nix.settings.use-xdg-base-directories = true; - users = { users = builtins.listToAttrs (map ( user: { From 085e8e45acb7724984276aa8f6b92a6724417d8a Mon Sep 17 00:00:00 2001 From: Julia Lange Date: Tue, 10 Feb 2026 23:35:37 -0800 Subject: [PATCH 22/30] sddm, with silentsddm --- flake.lock | 21 +++++++++++++++ flake.nix | 7 +++++ nixosModules/services/sddm/service.nix | 27 +++++++++++++++++++ .../{displaymanager => tuigreet}/service.nix | 0 4 files changed, 55 insertions(+) create mode 100644 nixosModules/services/sddm/service.nix rename nixosModules/services/{displaymanager => tuigreet}/service.nix (100%) diff --git a/flake.lock b/flake.lock index 9d751ae..01c0331 100644 --- a/flake.lock +++ b/flake.lock @@ -149,9 +149,30 @@ "home-manager": "home-manager", "niri": "niri", "nixpkgs": "nixpkgs", + "silentSDDM": "silentSDDM", "sops-nix": "sops-nix" } }, + "silentSDDM": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1769900466, + "narHash": "sha256-WeoJBj/PhqFCCJEIycTipqPbKm5BpQT2uzFTYcYZ30I=", + "owner": "uiriansan", + "repo": "SilentSDDM", + "rev": "a44caf771b4cb72f5c2514f7d488455b0fa860d2", + "type": "github" + }, + "original": { + "owner": "uiriansan", + "repo": "SilentSDDM", + "type": "github" + } + }, "sops-nix": { "inputs": { "nixpkgs": [ diff --git a/flake.nix b/flake.nix index e469f38..936cb1d 100644 --- a/flake.nix +++ b/flake.nix @@ -85,5 +85,12 @@ repo = "sops-nix"; inputs.nixpkgs.follows = "nixpkgs"; }; + + silentSDDM = { + type = "github"; + owner = "uiriansan"; + repo = "SilentSDDM"; + inputs.nixpkgs.follows = "nixpkgs"; + }; }; } diff --git a/nixosModules/services/sddm/service.nix b/nixosModules/services/sddm/service.nix new file mode 100644 index 0000000..bde0724 --- /dev/null +++ b/nixosModules/services/sddm/service.nix @@ -0,0 +1,27 @@ +{ config, pkgs, lib, inputs', ... }: + +{ + options.sddm = { + enable = lib.mkEnableOption "enables sddm"; + }; + + config = lib.mkIf config.sddm.enable (let + sddm-theme = inputs'.silentSDDM.packages.default.override { + theme = "catppuccin-macchiato"; + }; + in { + qt.enable = true; + environment.systemPackages = [ sddm-theme sddm-theme.test ]; + services.displayManager.sddm = { + wayland.enable = true; + package = pkgs.kdePackages.sddm; + enable = true; + theme = sddm-theme.pname; + extraPackages = sddm-theme.propagatedBuildInputs; + settings.General = { + GreeterEnvironment = "QML2_IMPORT_PATH=${sddm-theme}/share/sddm/themes/${sddm-theme.pname}/components/,QT_IM_MODULE=qtvirtualkeyboard"; + InputMethod = "qtvirtualkeyboard"; + }; + }; + }); +} diff --git a/nixosModules/services/displaymanager/service.nix b/nixosModules/services/tuigreet/service.nix similarity index 100% rename from nixosModules/services/displaymanager/service.nix rename to nixosModules/services/tuigreet/service.nix From 29c2b1ce80a2d0b50480e0df0dc7f1f4258ca9bd Mon Sep 17 00:00:00 2001 From: Julia Lange Date: Tue, 10 Feb 2026 23:36:38 -0800 Subject: [PATCH 23/30] Onizuka, enable sddm, remove old packages, flip screen --- hosts/onizuka/default.nix | 2 +- users/onizuka/default.nix | 9 +-------- 2 files changed, 2 insertions(+), 9 deletions(-) diff --git a/hosts/onizuka/default.nix b/hosts/onizuka/default.nix index 46a9717..dbff8d3 100644 --- a/hosts/onizuka/default.nix +++ b/hosts/onizuka/default.nix @@ -15,7 +15,7 @@ sshd.enable = true; tailscale.enable = true; - tuigreet.enable = true; + sddm.enable = true; niri.enable = true; steam.enable = true; diff --git a/users/onizuka/default.nix b/users/onizuka/default.nix index 7a03bfb..fd6988c 100644 --- a/users/onizuka/default.nix +++ b/users/onizuka/default.nix @@ -28,9 +28,8 @@ mouse.accel = -0.53; outputs = { "DP-1" = { - position = { x = 2560; y = -100; }; + position = { x = 2560; y = 0; }; mode = { width = 2560; height = 1440; refresh = 144.000; }; - transform.rotation = 270; }; "DP-2" = { position = { x = 0; y = 0; }; @@ -108,10 +107,4 @@ discord.enable = true; lutris.enable = true; - - extraPkgs = with pkgs; [ - # Applications - logseq - claude-code - ]; } From 544bb630a0d92df0afc47ede3b40eddf5130c464 Mon Sep 17 00:00:00 2001 From: Julia Lange Date: Tue, 10 Feb 2026 23:03:02 -0800 Subject: [PATCH 24/30] Nvidia, add option to use stable drivers --- hosts/onizuka/default.nix | 5 ++++- nixosModules/services/nvidia/service.nix | 12 ++++++------ 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/hosts/onizuka/default.nix b/hosts/onizuka/default.nix index dbff8d3..b9c5717 100644 --- a/hosts/onizuka/default.nix +++ b/hosts/onizuka/default.nix @@ -4,7 +4,10 @@ imports = [ ./hardware.nix ]; - nvidia.enable = true; + nvidia = { + enable = true; + stable = true; + }; pipewire.enable = true; polkit.enable = true; tablet.enable = true; diff --git a/nixosModules/services/nvidia/service.nix b/nixosModules/services/nvidia/service.nix index 78e4ef2..b6647f9 100644 --- a/nixosModules/services/nvidia/service.nix +++ b/nixosModules/services/nvidia/service.nix @@ -2,22 +2,22 @@ { options.nvidia = { - enable = lib.mkEnableOption - "Enables nvidia with proprietary drivers"; + enable = lib.mkEnableOption "Enables nvidia with proprietary drivers"; open = lib.mkEnableOption "Use open nvidia option for newer cards"; + stable = lib.mkEnableOption "Use stable instead of beta"; }; config = lib.mkIf config.nvidia.enable { - hardware.graphics = { - enable = true; - }; + hardware.graphics.enable = true; services.xserver.videoDrivers = ["nvidia"]; hardware.nvidia = { open = if config.nvidia.open then true else false; modesetting.enable = true; - package = config.boot.kernelPackages.nvidiaPackages.beta; + package = if config.nvidia.stable + then config.boot.kernelPackages.nvidiaPackages.stable + else config.boot.kernelPackages.nvidiaPackages.beta; }; boot.kernelParams = [ "nvidia_drm.fbdev=1" ]; From 09ae6daec055163b6219a1ec2dc0b4f69e5f2cba Mon Sep 17 00:00:00 2001 From: Julia Lange Date: Tue, 10 Feb 2026 09:50:06 -0800 Subject: [PATCH 25/30] Beets, initial commit Sets up beets with my preferred defaults. Configures the program for the following plugins: - embedart - fetchart - ftintitle - info - lyrics - the --- hmModules/apps/beets/app.nix | 52 ++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 hmModules/apps/beets/app.nix diff --git a/hmModules/apps/beets/app.nix b/hmModules/apps/beets/app.nix new file mode 100644 index 0000000..cb983ec --- /dev/null +++ b/hmModules/apps/beets/app.nix @@ -0,0 +1,52 @@ +{ config, pkgs, lib, ... }: + +{ + options.beets = { + enable = lib.mkEnableOption "Enables beets music"; + plugins = { + the.enable = lib.mkOption { default = true; }; + ftintitle.enable = lib.mkOption { default = true; }; + lyrics.enable = lib.mkOption { default = true; }; + fetchart = { + enable = lib.mkOption { default = true; }; + embed = lib.mkOption { default = true; }; + }; + }; + }; + + config = lib.mkIf config.beets.enable { + programs.beets.enable = true; + + programs.beets.settings = { + directory = "${config.xdg.userDirs.music}"; + library = "${config.xdg.userDirs.music}.db"; + + paths.default = with config.beets.plugins; let + # raw_artist = if ftintitle.enable + # then "$album_artist_no_feat" + # else "$albumartist"; + raw_artist = "$albumartist"; + artist = if the.enable + then "%the{${raw_artist}}/" + else raw_artist; + + the_rest = "$album%aunique{}/$track $title"; + in artist + the_rest; + + embedart = with config.beets.plugins.fetchart; + lib.mkIf (enable && embed) { + maxwidth = 500; + }; + + plugins = with lib; with config.beets.plugins; + optional (the.enable) "the" ++ + optional (ftintitle.enable) "ftintitle" ++ + optional (lyrics.enable) "lyrics" ++ + optional (fetchart.enable) "fetchart" ++ + optional (fetchart.embed) "embedart" ++ [ + "musicbrainz" + "info" + ]; + }; + }; +} From 2ebd936994e4b9a297e4bdc24cc661a741980404 Mon Sep 17 00:00:00 2001 From: Julia Lange Date: Tue, 10 Feb 2026 10:44:05 -0800 Subject: [PATCH 26/30] Onizuka, remove beeper, add Beets --- users/onizuka/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/users/onizuka/default.nix b/users/onizuka/default.nix index fd6988c..f5ea837 100644 --- a/users/onizuka/default.nix +++ b/users/onizuka/default.nix @@ -1,4 +1,4 @@ -{ config, pkgs, ... }: +{ config, ... }: { # "DP-2" = [ @@ -66,6 +66,7 @@ mpv.enable = true; zathura.enable = true; feh.enable = true; + beets.enable = true; neovim.enable = true; neovim.languages = { @@ -103,7 +104,6 @@ gimp.enable = true; - beeper.enable = true; discord.enable = true; lutris.enable = true; From dcc7b97cfce9114335826c0e74556ceb1090057c Mon Sep 17 00:00:00 2001 From: Julia Lange Date: Thu, 12 Feb 2026 14:37:08 -0800 Subject: [PATCH 27/30] Flake, add nixvim --- flake.lock | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ flake.nix | 12 ++++++++++- 2 files changed, 70 insertions(+), 1 deletion(-) diff --git a/flake.lock b/flake.lock index 01c0331..23c561f 100644 --- a/flake.lock +++ b/flake.lock @@ -35,6 +35,27 @@ "type": "github" } }, + "flake-parts_2": { + "inputs": { + "nixpkgs-lib": [ + "nixvim", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1769996383, + "narHash": "sha256-AnYjnFWgS49RlqX7LrC4uA+sCCDBj0Ry/WOJ5XWAsa0=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "57928607ea566b5db3ad13af0e57e921e6b12381", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, "home-manager": { "inputs": { "nixpkgs": [ @@ -142,6 +163,28 @@ "type": "github" } }, + "nixvim": { + "inputs": { + "flake-parts": "flake-parts_2", + "nixpkgs": [ + "nixpkgs" + ], + "systems": "systems" + }, + "locked": { + "lastModified": 1770630823, + "narHash": "sha256-5SEmOnJ61vmbap39vzWEsCX5UQ+3Ul8J4mXWKdqSn3w=", + "owner": "nix-community", + "repo": "nixvim", + "rev": "6acc964664ac916c64fe4e394edd467af4d90790", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nixvim", + "type": "github" + } + }, "root": { "inputs": { "easy-hosts": "easy-hosts", @@ -149,6 +192,7 @@ "home-manager": "home-manager", "niri": "niri", "nixpkgs": "nixpkgs", + "nixvim": "nixvim", "silentSDDM": "silentSDDM", "sops-nix": "sops-nix" } @@ -193,6 +237,21 @@ "type": "github" } }, + "systems": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, "xwayland-satellite-stable": { "flake": false, "locked": { diff --git a/flake.nix b/flake.nix index 936cb1d..9cee2ae 100644 --- a/flake.nix +++ b/flake.nix @@ -25,7 +25,10 @@ inputs.home-manager.lib.homeManagerConfiguration { extraSpecialArgs = { inherit inputs; }; pkgs = inputs.nixpkgs.legacyPackages.${system}; - modules = [ ./hmModules ] ++ extraModules; + modules = [ + ./hmModules + inputs.nixvim.homeModules.nixvim + ] ++ extraModules; }; in { "pan@juri" = userConfig "x86_64-linux" [ ./users/juri ]; @@ -79,6 +82,13 @@ inputs.nixpkgs.follows = "nixpkgs"; }; + nixvim = { + type = "github"; + owner = "nix-community"; + repo = "nixvim"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + sops-nix = { type = "github"; owner = "Mic92"; From 61e3753bf80a4741d0f69a530ef6103c6b0e6379 Mon Sep 17 00:00:00 2001 From: Julia Lange Date: Wed, 18 Feb 2026 11:48:11 -0800 Subject: [PATCH 28/30] Neovim, switch to nixvim and mono file This merges all the different files into one app.nix using nixvim instead of the manual home-manager nvim management. Behavior should be almost unchanged, with the following changes: - Plugins now have defaults for my own personal sane default experience - The highlighted line is now 81 instead of 80 - Treesitter plugins may not be integrated correctly --- hmModules/apps/neovim/app.nix | 280 +++++++++++--------- hmModules/apps/neovim/options.lua | 60 ----- hmModules/apps/neovim/plugin/lsp.nix | 53 ---- hmModules/apps/neovim/plugin/nvimcmp.nix | 72 ----- hmModules/apps/neovim/plugin/telescope.nix | 43 --- hmModules/apps/neovim/plugin/treesitter.nix | 38 --- 6 files changed, 153 insertions(+), 393 deletions(-) delete mode 100644 hmModules/apps/neovim/options.lua delete mode 100644 hmModules/apps/neovim/plugin/lsp.nix delete mode 100644 hmModules/apps/neovim/plugin/nvimcmp.nix delete mode 100644 hmModules/apps/neovim/plugin/telescope.nix delete mode 100644 hmModules/apps/neovim/plugin/treesitter.nix diff --git a/hmModules/apps/neovim/app.nix b/hmModules/apps/neovim/app.nix index d655103..4f27fdd 100644 --- a/hmModules/apps/neovim/app.nix +++ b/hmModules/apps/neovim/app.nix @@ -14,156 +14,182 @@ catppuccin.enable = lib.mkEnableOption "Enables catppuccin theme"; }; plugins = { - comments.enable = lib.mkEnableOption "Enables nvim-comment"; - fugitive.enable = lib.mkEnableOption "Enables git-fugitive"; - lualine.enable = lib.mkEnableOption "Enables lualine"; - luasnip.enable = lib.mkEnableOption "Enables luasnip snippets"; - nvimcmp.enable = lib.mkEnableOption "Enables nvim completion"; + comments.enable = lib.mkOption { default = true; }; + fugitive.enable = lib.mkOption { default = true; }; + lualine.enable = lib.mkOption { default = true; }; + luasnip.enable = lib.mkOption { default = false; }; + nvimcmp.enable = lib.mkOption { default = true; }; telescope = { - enable = lib.mkEnableOption "Enables telescope"; - fzf.enable = lib.mkEnableOption "Enables telescope-fzf"; + enable = lib.mkOption { default = true; }; + fzf.enable = lib.mkOption { default = true; }; }; - treesitter.enable = lib.mkEnableOption "Enables treesitter"; - wiki.enable = lib.mkEnableOption "Enables a wiki"; + treesitter.enable = lib.mkOption { default = true; }; + wiki.enable = lib.mkOption { default = false; }; }; }; - imports = [ - ./plugin/lsp.nix - ./plugin/nvimcmp.nix - ./plugin/telescope.nix - ./plugin/treesitter.nix - ]; - config = lib.mkIf config.neovim.enable { home.sessionVariables = { EDITOR = "nvim"; VISUAL = "nvim"; }; - programs.neovim = { + programs.nixvim = { enable = true; viAlias = true; vimAlias = true; - vimdiffAlias = true; - extraLuaConfig = '' - ${builtins.readFile ./options.lua} - ''; + globals = { + mapleader = " "; + maplocalleader = " "; + rust_recommended_style = 0; + }; - extraPackages = with pkgs; [ - (lib.mkIf config.neovim.languages.c.enable libclang) - (lib.mkIf config.neovim.languages.go.enable gopls) - (lib.mkIf config.neovim.languages.nix.enable nil) - (lib.mkIf config.neovim.languages.rust.enable rust-analyzer) + opts = { + list = true; + updatetime = 750; + + tabstop = 2; + softtabstop = 0; + shiftwidth = 2; + smarttab = true; + expandtab = true; + + colorcolumn = "81"; + showmatch = true; + number = true; + relativenumber = true; + + swapfile = false; + backup = false; + undofile = true; + undodir = "${config.xdg.configHome}/nvim/undodir"; + + smartcase = true; + }; + + keymaps = with config.lib.nixvim; [ + { + key = "d"; + mode = "n"; + action = mkRaw "vim.diagnostic.open_float"; + } + # -- Easy Split Navigation + # -- nnoremap + # -- nnoremap + # -- nnoremap + # -- nnoremap + # + # -- Easy copy and pasting to external programs + # -- map "+yy + # -- map "+P ]; + }; - # Additional packages are added through imports - plugins = let - lopts = lib.lists.optionals; - cfgp = config.neovim.plugins; - cfgl = config.neovim.languages; - cfgt = config.neovim.themes; + programs.nixvim.colorschemes = with config.neovim.themes; { + catppuccin = lib.mkIf catppuccin.enable { + enable = true; + flavour = "mocha"; + integrations.vimwiki = lib.mkIf wiki.enable true; + }; + }; - comments = lopts cfgp.comments.enable (with pkgs.vimPlugins; [ + programs.nixvim.plugins = with config.neovim.plugins; { + comment.enable = comments.enable; + + fugitive.enable = fugitive.enable; + + lualine = lib.mkIf lualine.enable { + enable = true; + icons_enabled = true; + }; + web-devicons.enable = lualine.enable; + + luasnip.enable = luasnip.enable; + friendly-snippets.enable = luasnip.enable; + + cmp = { + enable = nvimcmp.enable; + autoEnableSources = true; + settings = { + sources = [ + { name = "nvim_lsp"; } + { name = "path"; } + { name = "buffer"; } + ] ++ lib.optional luasnip.enable { name = "cmp-luasnip"; }; + + mapping = with config.lib.nixvim; { + "" = mkRaw "cmp.mapping.abort()"; + "" = mkRaw + "cmp.mapping(cmp.mapping.select_next_item(), {'i', 's'})"; + "" = mkRaw + "cmp.mapping(cmp.mapping.select_prev_item(), {'i', 's'})"; + }; + }; + }; + + telescope = { + enable = telescope.enable; + keymaps = { + "ff" = "find_files"; + "fg" = "git_files"; + }; + extensions = { + fzf = lib.mkIf telescope.fzf.enable { + enable = true; + fuzzy = true; + override_generic_sorter = true; + override_file_sorter = true; + case_mode = "smart_case"; + }; + }; + }; + + treesitter = { + enable = treesitter.enable; + highlight.enable = true; + indent.enable = true; + folding.enable = false; + }; + + vimwiki = { + enable = wiki.enable; + list = [ { - plugin = comment-nvim; - type = "lua"; - config = "require(\"Comment\").setup()"; + path = "${config.xdg.userDirs.documents}/wiki"; + links_space_char = "_"; + ext = ".md"; + syntax = "markdown"; } - ]); + ]; + }; - fugitive = lopts cfgp.fugitive.enable (with pkgs.vimPlugins; [ - vim-fugitive - ]); + nvim-lspconfig.enable = true; + nix.enable = config.neovim.languages.nix.enable; + rustaceanvim.enable = config.neovim.languages.rust.enable; + typsecript-tools.enable = config.neovim.languages.typescript.enable; + }; - luasnip-pkg = lopts cfgp.luasnip.enable (with pkgs.vimPlugins; [ - luasnip - friendly-snippets - (lib.mkIf cfgp.nvimcmp.enable cmp_luasnip) - ]); - - lualine = lopts cfgp.lualine.enable (with pkgs.vimPlugins; [ - { - plugin = lualine-nvim; - type = "lua"; - config = '' - require("lualine").setup { - options = { - icons_enabled = true, - '' + lib.strings.optionalString cfgt.catppuccin.enable '' - theme = "catppuccin" - '' + '' - } - } - ''; - } - nvim-web-devicons - ]); - - nix-pkg = lopts cfgl.nix.enable (with pkgs.vimPlugins; [ - vim-nix - ]); - - rust-pkg = lopts cfgl.rust.enable (with pkgs.vimPlugins; [ - { - plugin = rustaceanvim; - type = "lua"; - config = '' - vim.g.rust_recommended_style = 0 - ''; - } - ]); - - go-pkg = lopts cfgl.go.enable (with pkgs.vimPlugins; [ - go-nvim - ]); - - typescript-pkg = lopts cfgl.typescript.enable (with pkgs.vimPlugins; [ - { - plugin = typescript-tools-nvim; - type = "lua"; - config = '' - require("typescript-tools").setup {} - ''; - } - ]); - - catppuccin-pkg = lopts cfgt.catppuccin.enable (with pkgs.vimPlugins; [ - { - plugin = catppuccin-nvim; - type = "lua"; - config = '' - vim.cmd.colorscheme "catppuccin-mocha" - require('catppuccin').setup({ - integrations = { - '' + lib.strings.optionalString cfgp.wiki.enable '' - vimwiki = true - '' + '' - } - }) - ''; - } - ]); - - wiki = lopts cfgp.wiki.enable (with pkgs.vimPlugins; [ - { - plugin = vimwiki; - type = "lua"; - config = '' - vim.g.vimwiki_list = { - { - path = '${config.xdg.userDirs.documents}/wiki', - links_space_char = '_', - ext = '.md', - syntax = 'markdown', - } - } - ''; - } - ]); - in comments ++ fugitive ++ luasnip-pkg ++ lualine ++ nix-pkg ++ rust-pkg - ++ go-pkg ++ wiki ++ catppuccin-pkg ++ typescript-pkg; + programs.nixvim.lsp = { + enable = true; + servers = with config.neovim.languages; { + clangd.enable = c.enable; + gopls.enable = go.enable; + nil_ls.enable = nix.enable; + rust_analyzer.enable = rust.enable; + tsserver.enable = typescript.enable; + }; + keymaps = [ + { key = "gd"; lspBufAction = "definition"; } + { key = "gD"; lspBufAction = "declaration"; } + { key = "gi"; lspBufAction = "implementation"; } + { key = "gt"; lspBufAction = "type_definition"; } + { key = "K"; lspBufAction = "hover"; } + ] ++ lib.optional config.neovim.plugins.telescope.enable { + key = "gr"; + action = config.lib.nixvim.mkRaw + "require('telescope.builtin').lsp_references"; + }; }; }; } diff --git a/hmModules/apps/neovim/options.lua b/hmModules/apps/neovim/options.lua deleted file mode 100644 index db669e2..0000000 --- a/hmModules/apps/neovim/options.lua +++ /dev/null @@ -1,60 +0,0 @@ --- Globals -vim.g.mapleader = ' ' -vim.g.maplocalleader = ' ' -vim.opt.list = true -vim.bo.filetype = "on" -vim.opt.updatetime = 300 - --- Indentations -vim.opt.tabstop = 2 -vim.opt.softtabstop = 0 -vim.opt.shiftwidth = 2 -vim.opt.smarttab = true -vim.opt.expandtab = true - --- Style -vim.opt.colorcolumn = "80" -vim.opt.showmatch = true -vim.opt.number = true -vim.opt.relativenumber = true - --- Easy Split Navigation --- nnoremap --- nnoremap --- nnoremap --- nnoremap - --- Searching -vim.opt.smartcase = true - --- Backups -vim.opt.swapfile = false -vim.opt.backup = false -vim.opt.undofile = true -vim.opt.undodir = '/home/pan/.config/nvim/undodir' - --- Error viewing -vim.keymap.set('n', 'd', function() vim.diagnostic.open_float() end) - --- Easy copy and pasting to external programs --- map "+yy --- map "+P - --- autocmd BufRead,BufNewFile *.md call WritingMode() --- autocmd BufRead,BufNewFile *.tex call WritingMode() --- autocmd BufRead,BufNewFile *.svx call WritingMode() - --- autocmd BufRead,BufNewFile *.py call PythonMode() - --- function! WritingMode() - -- setlocal textwidth=80 - -- setlocal wrap linebreak nolist - -- setlocal whichwrap+=<,>,h,l - -- nnoremap j gj - -- nnoremap k gk - -- setlocal spell spelllang=en_us --- endfunction --- function! PythonMode() - -- setlocal foldmethod=indent - -- setlocal foldlevel=99 --- endfunction diff --git a/hmModules/apps/neovim/plugin/lsp.nix b/hmModules/apps/neovim/plugin/lsp.nix deleted file mode 100644 index f5a66c5..0000000 --- a/hmModules/apps/neovim/plugin/lsp.nix +++ /dev/null @@ -1,53 +0,0 @@ -{ config, pkgs, lib, ... }: - -{ - config = lib.mkIf config.neovim.enable { - programs.neovim.plugins = let - cfgp = config.neovim.plugins; - cfgl = config.neovim.languages; - - configText = '' - local on_attach = function(_, bufnr) - - local bufmap = function(keys, func) - vim.keymap.set('n', keys, func, { buffer = bufnr }) - end - - bufmap('r', vim.lsp.buf.rename) - bufmap('a', vim.lsp.buf.code_action) - - bufmap('gd', vim.lsp.buf.definition) - bufmap('gD', vim.lsp.buf.declaration) - bufmap('gI', vim.lsp.buf.implementation) - bufmap('D', vim.lsp.buf.type_definition) - - '' + lib.strings.optionalString cfgp.telescope.enable '' - bufmap('gr', require('telescope.builtin').lsp_references) - bufmap('s', require('telescope.builtin').lsp_document_symbols) - bufmap('S', require('telescope.builtin').lsp_dynamic_workspace_symbols) - '' + '' - - bufmap('K', vim.lsp.buf.hover) - - vim.api.nvim_buf_create_user_command(bufnr, 'Format', function(_) - vim.lsp.buf.format() - end, {}) - end - - local capabilities = vim.lsp.protocol.make_client_capabilities() - '' + lib.strings.optionalString cfgl.c.enable '' - require('lspconfig').clangd.setup {} - '' + lib.strings.optionalString cfgl.go.enable '' - require('lspconfig').gopls.setup {} - '' + lib.strings.optionalString cfgl.nix.enable '' - require('lspconfig').nil_ls.setup {} - ''; - in with pkgs.vimPlugins; [ - { - plugin = nvim-lspconfig; - type = "lua"; - config = configText; - } - ]; - }; -} diff --git a/hmModules/apps/neovim/plugin/nvimcmp.nix b/hmModules/apps/neovim/plugin/nvimcmp.nix deleted file mode 100644 index 82098ef..0000000 --- a/hmModules/apps/neovim/plugin/nvimcmp.nix +++ /dev/null @@ -1,72 +0,0 @@ -{ config, pkgs, lib, ... }: - -let - cfgp = config.neovim.plugins; -in { - config = lib.mkIf (config.neovim.enable && cfgp.nvimcmp.enable) { - programs.neovim.plugins = let - - configText = '' - local cmp = require('cmp') - '' + lib.strings.optionalString cfgp.luasnip.enable '' - local luasnip = require('luasnip') - - require('luasnip.loaders.from_vscode').lazy_load() - luasnip.config.setup {} - '' + '' - - cmp.setup { - mapping = cmp.mapping.preset.insert { - [''] = cmp.mapping.select_next_item(), - [''] = cmp.mapping.select_prev_item(), - [''] = cmp.mapping.scroll_docs(-4), - [''] = cmp.mapping.scroll_docs(4), - [''] = cmp.mapping.complete {}, - [''] = cmp.mapping.confirm { - behavior = cmp.ConfirmBehavior.Replace, - select = true, - }, - [''] = cmp.mapping(function(fallback) - if cmp.visible() then - cmp.select_next_item() - '' + lib.strings.optionalString cfgp.luasnip.enable '' - elseif luasnip.expand_or_locally_jumpable() then - luasnip.expand_or_jump() - '' + '' - else - fallback() - end - end, { 'i', 's' }), - [''] = cmp.mapping(function(fallback) - if cmp.visible() then - cmp.select_prev_item() - '' + lib.strings.optionalString cfgp.luasnip.enable '' - elseif luasnip.locally_jumpable(-1) then - luasnip.jump(-1) - '' + '' - else - fallback() - end - end, { 'i', 's' }), - }, - '' + lib.strings.optionalString cfgp.luasnip.enable '' - snippet = { - expand = function(args) - luasnip.lsp_expand(args.body) - end, - }, - sources = { - { name = 'luasnip' }, - }, - '' + '' - } - ''; - in with pkgs.vimPlugins; [ - { - plugin = nvim-cmp; - type = "lua"; - config = configText; - } - ]; - }; -} diff --git a/hmModules/apps/neovim/plugin/telescope.nix b/hmModules/apps/neovim/plugin/telescope.nix deleted file mode 100644 index 48a96e9..0000000 --- a/hmModules/apps/neovim/plugin/telescope.nix +++ /dev/null @@ -1,43 +0,0 @@ -{ config, pkgs, lib, ... }: - -let - cfgp = config.neovim.plugins; -in { - config = lib.mkIf (config.neovim.enable && cfgp.telescope.enable) { - programs.neovim.plugins = let - configText = '' - require('telescope').setup({ - extensions = { - '' + lib.strings.optionalString cfgp.telescope.fzf.enable '' - fzf = { - fuzzy = true, -- false will only do exact matching - override_generic_sorter = true, -- override the generic sorter - override_file_sorter = true, -- override the file sorter - case_mode = "smart_case", -- or "ignore_case" or "respect_case" - -- the default case_mode is "smart_case" - } - '' + '' - } - }) - local builtin = require('telescope.builtin') - vim.keymap.set('n', 'ff', builtin.find_files, {}) - vim.keymap.set('n', 'fg', builtin.git_files, {}) - - '' + lib.strings.optionalString cfgp.telescope.fzf.enable '' - require('telescope').load_extension('fzf') - ''; - in with pkgs.vimPlugins; [ - { - plugin = telescope-nvim; - type = "lua"; - config = configText; - } - (lib.mkIf cfgp.nvimcmp.enable telescope-fzf-native-nvim) - ]; - - home.packages = with pkgs; [ - (lib.mkIf cfgp.telescope.fzf.enable fzf) - ]; - - }; -} diff --git a/hmModules/apps/neovim/plugin/treesitter.nix b/hmModules/apps/neovim/plugin/treesitter.nix deleted file mode 100644 index a6bb8c0..0000000 --- a/hmModules/apps/neovim/plugin/treesitter.nix +++ /dev/null @@ -1,38 +0,0 @@ -{ config, pkgs, lib, ... }: - -let - cfgp = config.neovim.plugins; - cfgl = config.neovim.languages; -in { - config = lib.mkIf (config.neovim.enable && cfgp.treesitter.enable) { - programs.neovim.plugins = let - configText = '' - require('nvim-treesitter.configs').setup { - ensure_installed = {}, - - auto_install = false, - - highlight = { enable = true }, - - indent = { enable = true }, - } - ''; - - # I've tried many things, and can't get treesitter plugins changing - # dynamically. For not just have them always loaded regardless of config - treeplugs = p: [ - p.tree-sitter-c - p.tree-sitter-go - p.tree-sitter-nix - p.tree-sitter-rust - p.tree-sitter-typescript - ]; - in with pkgs.vimPlugins; [ - { - plugin = (nvim-treesitter.withPlugins treeplugs); - type = "lua"; - config = configText; - } - ]; - }; -} From 449cd8bf5065bf68d81c7ad82b67443ca04d4e3b Mon Sep 17 00:00:00 2001 From: Julia Lange Date: Wed, 18 Feb 2026 14:30:01 -0800 Subject: [PATCH 29/30] Onizuka, update neovim config to match update --- users/onizuka/default.nix | 27 ++++++++------------------- 1 file changed, 8 insertions(+), 19 deletions(-) diff --git a/users/onizuka/default.nix b/users/onizuka/default.nix index f5ea837..ade362c 100644 --- a/users/onizuka/default.nix +++ b/users/onizuka/default.nix @@ -68,27 +68,16 @@ feh.enable = true; beets.enable = true; - neovim.enable = true; - neovim.languages = { - c.enable = true; - nix.enable = true; - rust.enable = true; - typescript.enable = true; - }; - neovim.plugins = { - comments.enable = true; - fugitive.enable = true; - lualine.enable = true; - luasnip.enable = true; - nvimcmp.enable = true; - telescope = { - enable = true; - fzf.enable = true; + neovim = { + enable = true; + languages = { + c.enable = true; + nix.enable = true; + rust.enable = true; + typescript.enable = true; }; - treesitter.enable = true; - wiki.enable = true; + themes.catppuccin.enable = true; }; - neovim.themes.catppuccin.enable = true; lf.enable = true; lf.hiddenfiles = [ From e5649b9c8002964e3d1751a1321e028c161b80c0 Mon Sep 17 00:00:00 2001 From: Julia Lange Date: Wed, 18 Feb 2026 16:34:20 -0800 Subject: [PATCH 30/30] Ssh, disable DefaultConfig to supress warning --- hmModules/services/ssh/service.nix | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/hmModules/services/ssh/service.nix b/hmModules/services/ssh/service.nix index 418ae9c..ed2c9be 100644 --- a/hmModules/services/ssh/service.nix +++ b/hmModules/services/ssh/service.nix @@ -6,7 +6,10 @@ }; config = lib.mkIf config.ssh.enable { - programs.ssh.enable = true; + programs.ssh = { + enable = true; + enableDefaultConfig = false; + }; home.packages = with pkgs; [ sshfs # SSH File system ];