From 2969bbef29cf274548893cf4c6514fec65bfe323 Mon Sep 17 00:00:00 2001 From: Julia Lange Date: Wed, 6 Aug 2025 19:47:17 -0700 Subject: [PATCH 01/33] 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 275c8db081728cebc5c57a6ceabb397ab9ba1a1b Mon Sep 17 00:00:00 2001 From: Julia Lange Date: Thu, 7 Aug 2025 21:06:20 -0700 Subject: [PATCH 02/33] 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 a89ad00002ffdc33c9922dbfb0bff57f38f01aa2 Mon Sep 17 00:00:00 2001 From: Julia Lange Date: Mon, 11 Aug 2025 09:15:01 -0700 Subject: [PATCH 03/33] 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 ad8fa80f961fca8ec2bc8b43c705e37a9c9cd956 Mon Sep 17 00:00:00 2001 From: Julia Lange Date: Fri, 5 Sep 2025 20:31:36 -0700 Subject: [PATCH 04/33] 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 9b5623e2b36f9c3ff876f91023e117226b45e212 Mon Sep 17 00:00:00 2001 From: Julia Lange Date: Mon, 15 Sep 2025 09:15:39 -0700 Subject: [PATCH 05/33] 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 16fb91b82f08330c0b2e87d34306dbd047700a19 Mon Sep 17 00:00:00 2001 From: Julia Lange Date: Tue, 26 Aug 2025 08:54:57 -0700 Subject: [PATCH 06/33] 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 20665da1099b098bb02b71ed429160e7c8991ebf Mon Sep 17 00:00:00 2001 From: Julia Lange Date: Tue, 26 Aug 2025 08:55:51 -0700 Subject: [PATCH 07/33] 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 be4f8308e99680584f2fdf0016e1c9cb2cdde3a3 Mon Sep 17 00:00:00 2001 From: Julia Lange Date: Mon, 15 Sep 2025 10:42:36 -0700 Subject: [PATCH 08/33] 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 6779c7cc7859d0e9527d339a1cf114f8b9f188fc Mon Sep 17 00:00:00 2001 From: Julia Lange Date: Mon, 15 Sep 2025 11:29:52 -0700 Subject: [PATCH 09/33] 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 0d7d23e3ac2aa95f13f9bebb271f1a42fee1b434 Mon Sep 17 00:00:00 2001 From: Julia Lange Date: Tue, 16 Sep 2025 17:35:34 -0700 Subject: [PATCH 10/33] 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 70471d28ecaef5c86e497629b4d8fa5848433bc2 Mon Sep 17 00:00:00 2001 From: Julia Lange Date: Tue, 16 Sep 2025 18:30:10 -0700 Subject: [PATCH 11/33] 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 6cea0f23b4788f40d490dd0f0ac6c415864dc4e3 Mon Sep 17 00:00:00 2001 From: Julia Lange Date: Tue, 16 Sep 2025 18:30:23 -0700 Subject: [PATCH 12/33] 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 e2224157946e1bc7d5c5f34f78ac55c91e9cd70b Mon Sep 17 00:00:00 2001 From: Julia Lange Date: Tue, 16 Sep 2025 18:30:47 -0700 Subject: [PATCH 13/33] 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 f84166cf7253712c77bc8d603aeb6a3b26f8b834 Mon Sep 17 00:00:00 2001 From: Julia Lange Date: Tue, 16 Sep 2025 18:45:24 -0700 Subject: [PATCH 14/33] 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 a299b45725586505afecec6135919eb8155465b4 Mon Sep 17 00:00:00 2001 From: Julia Lange Date: Wed, 5 Nov 2025 08:27:13 -0800 Subject: [PATCH 15/33] 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 af94d1780225f0604575f799f92c39452577b43d Mon Sep 17 00:00:00 2001 From: Julia Lange Date: Wed, 19 Nov 2025 09:18:38 -0800 Subject: [PATCH 16/33] 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 d84c63fe6ce8495bfbcfb9a8557c8f543ba5dcb8 Mon Sep 17 00:00:00 2001 From: Julia Lange Date: Wed, 19 Nov 2025 09:19:43 -0800 Subject: [PATCH 17/33] 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 84c61750c4a5f240ef8b456f3b577de1e83644a9 Mon Sep 17 00:00:00 2001 From: Julia Lange Date: Mon, 15 Dec 2025 22:49:14 -0800 Subject: [PATCH 18/33] 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 0088cb584ef6142a5d72b74a44993c4527bd4aba Mon Sep 17 00:00:00 2001 From: Julia Lange Date: Mon, 15 Dec 2025 22:49:34 -0800 Subject: [PATCH 19/33] 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 ba95a3c9676af0564537e72c28af29119b6bc383 Mon Sep 17 00:00:00 2001 From: Julia Lange Date: Mon, 9 Feb 2026 17:17:25 -0800 Subject: [PATCH 20/33] 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 33d56584e2bdd3bd9dd38061a264b4820e3afdc5 Mon Sep 17 00:00:00 2001 From: Julia Lange Date: Wed, 26 Nov 2025 15:21:12 -0800 Subject: [PATCH 21/33] 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 230fbb05f70a845506a7b22cab53c41cf863687f Mon Sep 17 00:00:00 2001 From: Julia Lange Date: Tue, 10 Feb 2026 23:35:37 -0800 Subject: [PATCH 22/33] 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 67c6ecb1d8a6127dc0cd7f97fb974f9eea3ae926 Mon Sep 17 00:00:00 2001 From: Julia Lange Date: Tue, 10 Feb 2026 23:36:38 -0800 Subject: [PATCH 23/33] 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 db7fff456bb0c49199bd82fbd08d5d9eb8af622a Mon Sep 17 00:00:00 2001 From: Julia Lange Date: Tue, 10 Feb 2026 23:03:02 -0800 Subject: [PATCH 24/33] 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 14547201a833d249c8a373568b5feaf196171089 Mon Sep 17 00:00:00 2001 From: Julia Lange Date: Tue, 10 Feb 2026 09:50:06 -0800 Subject: [PATCH 25/33] 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 a2cf048db5fcd7537fed46aa477b0f61ce8440ba Mon Sep 17 00:00:00 2001 From: Julia Lange Date: Tue, 10 Feb 2026 10:44:05 -0800 Subject: [PATCH 26/33] 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 cda595c17c067b9cc1a3585fa03e18ae03a3fa84 Mon Sep 17 00:00:00 2001 From: Julia Lange Date: Thu, 12 Feb 2026 14:37:08 -0800 Subject: [PATCH 27/33] 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 b903912a1f967708a17da224cf6d980a03a8c4d2 Mon Sep 17 00:00:00 2001 From: Julia Lange Date: Wed, 18 Feb 2026 11:48:11 -0800 Subject: [PATCH 28/33] 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 | 278 +++++++++++--------- 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, 151 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..83b1bb4 100644 --- a/hmModules/apps/neovim/app.nix +++ b/hmModules/apps/neovim/app.nix @@ -14,156 +14,180 @@ 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(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 28bda11c686940057b46192b84b73edf96be054a Mon Sep 17 00:00:00 2001 From: Julia Lange Date: Wed, 18 Feb 2026 14:30:01 -0800 Subject: [PATCH 29/33] 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 8fe6e2302ccc50a12a739aac34875e183e597516 Mon Sep 17 00:00:00 2001 From: Julia Lange Date: Wed, 18 Feb 2026 16:34:20 -0800 Subject: [PATCH 30/33] 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 ]; From a88471e240130bfbccf0747f946e82adfd8884cd Mon Sep 17 00:00:00 2001 From: Julia Lange Date: Thu, 12 Mar 2026 10:52:52 -0700 Subject: [PATCH 31/33] Lutris, switch to wineWow64 from wineWow --- hmModules/apps/lutris/app.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hmModules/apps/lutris/app.nix b/hmModules/apps/lutris/app.nix index aa78d39..775e15e 100644 --- a/hmModules/apps/lutris/app.nix +++ b/hmModules/apps/lutris/app.nix @@ -8,7 +8,7 @@ config = lib.mkIf config.lutris.enable { home.packages = with pkgs; [ lutris - wineWowPackages.stable + wineWow64Packages.stable # (lutris.override { # extraLibraries = pkgs: [ # # List library dependencies here From db037407cd3f8c67d669589949bb8efa31c2ec6c Mon Sep 17 00:00:00 2001 From: Julia Lange Date: Thu, 12 Mar 2026 10:53:05 -0700 Subject: [PATCH 32/33] Onizuka, remove timers and lutris --- users/onizuka/default.nix | 4 ---- 1 file changed, 4 deletions(-) diff --git a/users/onizuka/default.nix b/users/onizuka/default.nix index ade362c..4d47697 100644 --- a/users/onizuka/default.nix +++ b/users/onizuka/default.nix @@ -38,8 +38,6 @@ }; }; - timer.enableHourly = true; - timer.enableQuarterly = true; colors.enable = true; manpages.enable = true; trash.enable = true; @@ -94,6 +92,4 @@ gimp.enable = true; discord.enable = true; - - lutris.enable = true; } From dc0d90de4532db70660c1d328676efb1d217bd33 Mon Sep 17 00:00:00 2001 From: Julia Lange Date: Wed, 18 Mar 2026 11:25:02 -0700 Subject: [PATCH 33/33] Flake update 2026-03-18 --- flake.lock | 62 ++++++++++++------------- nixosModules/services/caddy/service.nix | 2 +- 2 files changed, 32 insertions(+), 32 deletions(-) diff --git a/flake.lock b/flake.lock index 23c561f..eca4d1b 100644 --- a/flake.lock +++ b/flake.lock @@ -22,11 +22,11 @@ ] }, "locked": { - "lastModified": 1769996383, - "narHash": "sha256-AnYjnFWgS49RlqX7LrC4uA+sCCDBj0Ry/WOJ5XWAsa0=", + "lastModified": 1772408722, + "narHash": "sha256-rHuJtdcOjK7rAHpHphUb1iCvgkU3GpfvicLMwwnfMT0=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "57928607ea566b5db3ad13af0e57e921e6b12381", + "rev": "f20dc5d9b8027381c474144ecabc9034d6a839a3", "type": "github" }, "original": { @@ -63,11 +63,11 @@ ] }, "locked": { - "lastModified": 1770654520, - "narHash": "sha256-mg5WZMIPGsFu9MxSrUcuJUPMbfMsF77el5yb/7rc10k=", + "lastModified": 1773810247, + "narHash": "sha256-6Vz1Thy/1s7z+Rq5OfkWOBAdV4eD+OrvDs10yH6xJzQ=", "owner": "nix-community", "repo": "home-manager", - "rev": "6c4fdbe1ad198fac36c320fd45c5957324a80b8e", + "rev": "d47357a4c806d18a3e853ad2699eaec3c01622e7", "type": "github" }, "original": { @@ -88,11 +88,11 @@ "xwayland-satellite-unstable": "xwayland-satellite-unstable" }, "locked": { - "lastModified": 1770620836, - "narHash": "sha256-HPoMvo/EqIr6xDDRlk6DGZYdu1Hte7lGLZaGZ5017Uc=", + "lastModified": 1773848336, + "narHash": "sha256-fWAuQtxkD6j6KP7xtUgJZzVfRYLxhTJ1DeBG4vAFO7Q=", "owner": "sodiboo", "repo": "niri-flake", - "rev": "ff1edce403a67cfac7bf1038d348f2ef457ac691", + "rev": "ea96ac8a3effd1eb372f57b782c857d391c48439", "type": "github" }, "original": { @@ -121,11 +121,11 @@ "niri-unstable": { "flake": false, "locked": { - "lastModified": 1770394959, - "narHash": "sha256-if7bIsomdceIufOhkFwN74rFY/pLCWPynRxGyol2viQ=", + "lastModified": 1773130184, + "narHash": "sha256-3bwx4WqCB06yfQIGB+OgIckOkEDyKxiTD5pOo4Xz2rI=", "owner": "YaLTeR", "repo": "niri", - "rev": "ab47f5cec4c1c5758afeb91c0c98554ffd3433db", + "rev": "b07bde3ee82dd73115e6b949e4f3f63695da35ea", "type": "github" }, "original": { @@ -136,11 +136,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1770537093, - "narHash": "sha256-XV30uo8tXuxdzuV8l3sojmlPRLd/8tpMsOp4lNzLGUo=", - "rev": "fef9403a3e4d31b0a23f0bacebbec52c248fbb51", + "lastModified": 1773628058, + "narHash": "sha256-YgVQzPaKa5eVf/rGA5Rn7BWJcP0T98JkE+2KuKVTyzA=", + "rev": "f8573b9c935cfaa162dd62cc9e75ae2db86f85df", "type": "tarball", - "url": "https://releases.nixos.org/nixpkgs/nixpkgs-26.05pre942631.fef9403a3e4d/nixexprs.tar.xz" + "url": "https://releases.nixos.org/nixpkgs/nixpkgs-26.05pre963857.f8573b9c935c/nixexprs.tar.xz" }, "original": { "type": "tarball", @@ -149,11 +149,11 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1770464364, - "narHash": "sha256-z5NJPSBwsLf/OfD8WTmh79tlSU8XgIbwmk6qB1/TFzY=", + "lastModified": 1773814637, + "narHash": "sha256-GNU+ooRmrHLfjlMsKdn0prEKVa0faVanm0jrgu1J/gY=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "23d72dabcb3b12469f57b37170fcbc1789bd7457", + "rev": "fea3b367d61c1a6592bc47c72f40a9f3e6a53e96", "type": "github" }, "original": { @@ -172,11 +172,11 @@ "systems": "systems" }, "locked": { - "lastModified": 1770630823, - "narHash": "sha256-5SEmOnJ61vmbap39vzWEsCX5UQ+3Ul8J4mXWKdqSn3w=", + "lastModified": 1772402258, + "narHash": "sha256-3DmCFOdmbkFML1/G9gj8Wb+rCCZFPOQtNoMCpqOF8SA=", "owner": "nix-community", "repo": "nixvim", - "rev": "6acc964664ac916c64fe4e394edd467af4d90790", + "rev": "21ae25e13b01d3b4cdc750b5f9e7bad68b150c10", "type": "github" }, "original": { @@ -204,11 +204,11 @@ ] }, "locked": { - "lastModified": 1769900466, - "narHash": "sha256-WeoJBj/PhqFCCJEIycTipqPbKm5BpQT2uzFTYcYZ30I=", + "lastModified": 1771956684, + "narHash": "sha256-+EtzmEzGA2xqwIvKrP0euYaOzrmTQWEWAiWV+k2WBEM=", "owner": "uiriansan", "repo": "SilentSDDM", - "rev": "a44caf771b4cb72f5c2514f7d488455b0fa860d2", + "rev": "34f82e1fb8412fff78b82a0dcce763492b36054c", "type": "github" }, "original": { @@ -224,11 +224,11 @@ ] }, "locked": { - "lastModified": 1770683991, - "narHash": "sha256-xVfPvXDf9QN3Eh9dV+Lw6IkWG42KSuQ1u2260HKvpnc=", + "lastModified": 1773698643, + "narHash": "sha256-VCiDjE8kNs8uCAK73Ezk1r3fFuc4JepvW07YFqaN968=", "owner": "Mic92", "repo": "sops-nix", - "rev": "8b89f44c2cc4581e402111d928869fe7ba9f7033", + "rev": "8237de83e8200d16fe0c4467b02a1c608ff28044", "type": "github" }, "original": { @@ -272,11 +272,11 @@ "xwayland-satellite-unstable": { "flake": false, "locked": { - "lastModified": 1770583271, - "narHash": "sha256-Q75S8cEqJoZ92s1y4zArvk2U1ayAy2E4SaF7gbNXkYQ=", + "lastModified": 1773622265, + "narHash": "sha256-wToKwH7IgWdGLMSIWksEDs4eumR6UbbsuPQ42r0oTXQ=", "owner": "Supreeeme", "repo": "xwayland-satellite", - "rev": "86f5bd5d867ad6e120935dfe825f6b903ebbeddd", + "rev": "a879e5e0896a326adc79c474bf457b8b99011027", "type": "github" }, "original": { diff --git a/nixosModules/services/caddy/service.nix b/nixosModules/services/caddy/service.nix index eaf0965..c954c61 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-NlZY/EEY9TbqrMAkSHK2aGm5AjFTvpvBXV1GW1PnXCc="; + hash = "sha256-cM9ez2i9ZADbXSI7KNZlBCe1F1vpX5fH++qKILaHguA="; }; virtualHosts = config.caddy.vhosts; email = config.caddy.adminEmail;