From 69d4d7a1477aa147413867ae66157165b42210ff Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Wed, 3 Jul 2024 10:56:47 +0200 Subject: [PATCH 001/492] `reinstall-magisk-on-lineageos` --- .../reinstall-magisk-on-lineage/default.nix | 26 +++++++++++++++++++ hosts/picard/default.nix | 1 + 2 files changed, 27 insertions(+) create mode 100644 hmModules/reinstall-magisk-on-lineage/default.nix diff --git a/hmModules/reinstall-magisk-on-lineage/default.nix b/hmModules/reinstall-magisk-on-lineage/default.nix new file mode 100644 index 0000000..8728f93 --- /dev/null +++ b/hmModules/reinstall-magisk-on-lineage/default.nix @@ -0,0 +1,26 @@ +{pkgs, ...}: let + reinstall-magisk-on-lineage = pkgs.stdenv.mkDerivation { + name = "reinstall-magisk-on-lineage"; + version = "git"; + src = pkgs.fetchFromGitHub { + owner = "NicolasWebDev"; + repo = "reinstall-magisk-on-lineageos"; + rev = "1ca911ed555d4badd705c6c71750b78be8962b0b"; + hash = "sha256-95LzcWL4efR77i8UlzIT+7wQXp+91K2sUwcjmHvTf+Q="; + }; + propagatedBuildInputs = with pkgs; [ + android-tools + jq + ]; + installPhase = '' + mkdir -p $out/bin + cp reinstall-magisk-on-lineageos $out/bin/reinstall-magisk-on-lineageos + ''; + patchPhase = '' + substituteInPlace reinstall-magisk-on-lineageos \ + --replace-fail "paste_yours_here" "\"\$1\"" + ''; + }; +in { + home.packages = [reinstall-magisk-on-lineage]; +} diff --git a/hosts/picard/default.nix b/hosts/picard/default.nix index 13f75ca..f60fbf1 100644 --- a/hosts/picard/default.nix +++ b/hosts/picard/default.nix @@ -80,6 +80,7 @@ "teams" "obs-studio" "calibre" + "reinstall-magisk-on-lineage" ]; extraGroups = []; backupPaths = []; From 0b5508b94d37166019669a81ea5ed6eef5c19f17 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 11 Jul 2024 11:49:28 +0200 Subject: [PATCH 002/492] Unused secrets --- hosts/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hosts/default.nix b/hosts/default.nix index c42de37..2807cc8 100644 --- a/hosts/default.nix +++ b/hosts/default.nix @@ -176,8 +176,8 @@ "minio-credentials".owner = "minio"; "aws-credentials".owner = "hercules-ci-agent"; "hass-ssh-key".owner = "hass"; - "matrix-registration-shared-secret".owner = "matrix-synapse"; - "matrix-sliding-sync-secret".owner = "matrix-synapse"; + # "matrix-registration-shared-secret".owner = "matrix-synapse"; + # "matrix-sliding-sync-secret".owner = "matrix-synapse"; "autistici-password".owner = "forgejo"; }; }; From 399e02b0744eeb4e3c93c737ec24dfc3b5b1a0a1 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 11 Jul 2024 11:49:55 +0200 Subject: [PATCH 003/492] New `oneplus6t` key --- hosts/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hosts/default.nix b/hosts/default.nix index 2807cc8..9e4592c 100644 --- a/hosts/default.nix +++ b/hosts/default.nix @@ -186,7 +186,7 @@ vpnExtra = { oneplus6t = { ip = "10.100.0.4"; - publicKey = "cXHPaJXeA/JB7DKlZXR86zYcz1OEVPMOvAmDhBQF91E="; + publicKey = "9ccx4C4xvPC6lPgTZAHDSfK4FS2BP2i4D57u9IZjw18="; }; }; }; From 2ecab054f9bbc123e25a54a6e2c77fd7366335d0 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 11 Jul 2024 11:51:20 +0200 Subject: [PATCH 004/492] Bought Oneplus 8T --- hosts/default.nix | 2 +- lib/default.nix | 2 +- modules/syncthing/default.nix | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/hosts/default.nix b/hosts/default.nix index 9e4592c..7ec9a15 100644 --- a/hosts/default.nix +++ b/hosts/default.nix @@ -184,7 +184,7 @@ }; vpnExtra = { - oneplus6t = { + oneplus8t = { ip = "10.100.0.4"; publicKey = "9ccx4C4xvPC6lPgTZAHDSfK4FS2BP2i4D57u9IZjw18="; }; diff --git a/lib/default.nix b/lib/default.nix index d06c92e..f4c930a 100644 --- a/lib/default.nix +++ b/lib/default.nix @@ -3,7 +3,7 @@ users = { ccr-gpg = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC5cEUx25pnZiH3eBrE2xNbJ92gJiKSznDUNRzcEL4ti6FlJm+75p4q0hgdqHwStR8+uCWBL6viVFCGutOVMFE5MX1Oc3A8fJdR6H9Rrwvk/1UQzqzc9tWxw1qPLKz+fnPDomjOvNofghCWQRwX3Xf1HnIqvRwELpNbR9i+/cHkDGzLJxkstbt4gol8ywMPkw02QdKk8s5MEd1vawxc+7Chs0JPW57RDqDYFErYys52JLeAViCBB9bofF+KT42LuRXKSjWlvCV9kR5TL49vUeBgzMQWMh++WQdN4m9lpqFqYyc75I49/E0HGf8LChDSS+hvRnb5MbtnVGjEA4WDHyldmJCvUNob5CUo4FjoSPRi+S/J3Ads8D4JVwaJOJEVqmMKEhiQ0Hzk4hwe3eV/VumlZj4U/QjaCrqqi4TW/iP0gNRfzcfiM+G/z5R7w1NMUpTX7oilyKjMQmGnXB857D3SSptS7dwh5OiKhVmrQMRCduooUsj236abqLU28K//RnxhOgh8kDGgoUHApnTiMZNKhgLiR42lKrubNcW1tAAqoNyFLMwwXeMLjh0iP1b5y8ntfNPNIcGb7vcwpS24z/aIjW7rQ4J7x5EBphHGhys6ne+irdhOM8c7kFr+c8+Q2oU0YAtFuMYztAFOHm1e20X00Zvys2nuee+hT9F1NungAQ== andrea.ciceri@autistici.org"; ccr-ssh = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCzCmDCtlGscpesHuoiruVWD2IjYEFtaIl9Y2JZGiOAyf3V17KPx0MikcknfmxSHi399SxppiaXQHxo/1wjGxXkXNTTv6h1fBuqwhJE6C8+ZSV+gal81vEnXX+/9w2FQqtVgnG2/mO7oJ0e3FY+6kFpOsGEhYexoGt/UxIpAZoqIN+CWNhJIASUkneaZWtgwiL8Afb59kJQ2E7WbBu+PjYZ/s5lhPobhlkz6s8rkhItvYdiSHT0DPDKvp1oEbxsxd4E4cjJFbahyS8b089NJd9gF5gs0b74H/2lUUymnl63cV37Mp4iXB4rtE69MbjqsGEBKTPumLualmc8pOGBHqWIdhAqGdZQeBajcb6VK0E3hcU0wBB+GJgm7KUzlAHGdC3azY0KlHMrLaZN0pBrgCVR6zBNWtZz2B2qMBZ8Cw+K4vut8GuspdXZscID10U578GxQvJAB9CdxNUtrzSmKX2UtZPB1udWjjIAlejzba4MG73uXgQEdv0NcuHNwaLuCWxTUT5QQF18IwlJ23Mg8aPK8ojUW5A+kGHAu9wtgZVcX1nS5cmYKSgLzcP1LA1l9fTJ1vqBSuy38GTdUzfzz7AbnkRfGPj2ALDgyx17Rc5ommjc1k0gFoeIqiLaxEs5FzDcRyo7YvZXPsGeIqNCYwQWw3+U+yUEJby8bxGb2d/6YQ== andrea.ciceri@autistici.org"; - oneplus6t = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC1xBMLABwQQGOrbFXDqJEvcBQFvTx/Fj+k/qBa+FXPobH2BcOj8NxrExliP3krPTi+srEaA0fQHBy/tFktiZQvx82KPan9dpmRlc6G970Ej9M6dNbwl4zTMAgZ3E8U5HCvoXTaFeSS2mrlRq5pyy7dZcVkPMvhgP65d+gx6fJbQhiDGBGJg2CWU8b1bUG703EkYcKAZY57Db+j/8/VoBsS3TAAJzW8CVxN1nqKeYCcgPR7y2HjZihlSUPJsdwV4D46qj1gLh+NdYh5iBUICOXBIt26hiQhRPtY+mtH2eWW1NdnCp2gk6IaMQEHKCy9t5L3VybQJzaqDZwQAyQZIbonb+X8hlkhvf9CjlrjILoroLN3RE5te/WQQzyTR4Ni8A6+Mu+1JHW5JWM3Iz9u77ceLc9/4UFkdFSALZjFUYIevQLUitVZCdJkqNxizyJmpCgjAnArhjItX6hO4Dq96TRWcHDtCsk1jJ1CCUZRwkkzZjmob86CS58zERkwWbWKGSejxSO6YQZTFsgon76r2x5Cd1GoG4vCtFMqyOQzDTHZqVxYjWJrySFg2GnCIy4wth1tpwB/uzobM9Xn01V6vdQNDI7a/4XHZ7IQWiGy2dme6R+PmAma1RgxAioPt5IZrv8nlb2YWXuoXS66RSwV9A9U+98hVfZc29KJ+2fKVy/JBQ== oneplus6t"; + oneplus8t = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC1xBMLABwQQGOrbFXDqJEvcBQFvTx/Fj+k/qBa+FXPobH2BcOj8NxrExliP3krPTi+srEaA0fQHBy/tFktiZQvx82KPan9dpmRlc6G970Ej9M6dNbwl4zTMAgZ3E8U5HCvoXTaFeSS2mrlRq5pyy7dZcVkPMvhgP65d+gx6fJbQhiDGBGJg2CWU8b1bUG703EkYcKAZY57Db+j/8/VoBsS3TAAJzW8CVxN1nqKeYCcgPR7y2HjZihlSUPJsdwV4D46qj1gLh+NdYh5iBUICOXBIt26hiQhRPtY+mtH2eWW1NdnCp2gk6IaMQEHKCy9t5L3VybQJzaqDZwQAyQZIbonb+X8hlkhvf9CjlrjILoroLN3RE5te/WQQzyTR4Ni8A6+Mu+1JHW5JWM3Iz9u77ceLc9/4UFkdFSALZjFUYIevQLUitVZCdJkqNxizyJmpCgjAnArhjItX6hO4Dq96TRWcHDtCsk1jJ1CCUZRwkkzZjmob86CS58zERkwWbWKGSejxSO6YQZTFsgon76r2x5Cd1GoG4vCtFMqyOQzDTHZqVxYjWJrySFg2GnCIy4wth1tpwB/uzobM9Xn01V6vdQNDI7a/4XHZ7IQWiGy2dme6R+PmAma1RgxAioPt5IZrv8nlb2YWXuoXS66RSwV9A9U+98hVfZc29KJ+2fKVy/JBQ== oneplus6t"; hercules-ci-agent = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGPupm00BiveTIYF6CNwuMijF5VvEaPDMjvt+vMlAy+N hercules-ci-agent"; }; hosts = { diff --git a/modules/syncthing/default.nix b/modules/syncthing/default.nix index d7597c5..240e3a7 100644 --- a/modules/syncthing/default.nix +++ b/modules/syncthing/default.nix @@ -29,10 +29,10 @@ "tcp://kirk.fleet" ]; }; - onplus6t = { + onplus8t = { id = "76BJ2ZE-FPFDWUZ-3UZIENZ-TS6YBGG-EZSF6UE-GLHRBQ2-KTHTRMI-3JWNRAT"; addresses = [ - "tcp://oneplus6t.fleet" + "tcp://oneplus8t.fleet" ]; }; }; From bd015badf8240fcacc2bcba6663edb1f3fd067a1 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 11 Jul 2024 11:51:34 +0200 Subject: [PATCH 005/492] `calibre` is an HM module --- hosts/kirk/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hosts/kirk/default.nix b/hosts/kirk/default.nix index dc8c107..a11f920 100644 --- a/hosts/kirk/default.nix +++ b/hosts/kirk/default.nix @@ -32,7 +32,6 @@ "syncthing" "mount-rock5b" "adb" - "calibre" ] ++ [ ./disko.nix @@ -66,6 +65,7 @@ "discord" "remmina" "zulip" + "calibre" ]; extraGroups = []; backupPaths = []; From 36482dbb45c125ab318b22d0712b80d20afd37b1 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 11 Jul 2024 11:51:44 +0200 Subject: [PATCH 006/492] `driSupport` doesn't exist anymore --- hosts/kirk/default.nix | 1 - hosts/picard/default.nix | 1 - 2 files changed, 2 deletions(-) diff --git a/hosts/kirk/default.nix b/hosts/kirk/default.nix index a11f920..4565542 100644 --- a/hosts/kirk/default.nix +++ b/hosts/kirk/default.nix @@ -98,7 +98,6 @@ hardware.opengl = { enable = true; - driSupport = true; driSupport32Bit = true; }; } diff --git a/hosts/picard/default.nix b/hosts/picard/default.nix index f60fbf1..9b63f91 100644 --- a/hosts/picard/default.nix +++ b/hosts/picard/default.nix @@ -129,7 +129,6 @@ hardware.graphics = { enable = true; - # driSupport = true; enable32Bit = true; }; From 1d0d36659a62b285f9563560158dafbf7f2e07a8 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 11 Jul 2024 11:51:53 +0200 Subject: [PATCH 007/492] It's not working --- hosts/sisko/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hosts/sisko/default.nix b/hosts/sisko/default.nix index cdb4d00..760e9e4 100644 --- a/hosts/sisko/default.nix +++ b/hosts/sisko/default.nix @@ -28,7 +28,7 @@ # "matrix" "forgejo" # "jellyfin" - "immich" + # "immich" ] ++ [ ./disko.nix From dc3d14fc76f6701fdadbdc928c82ad9f6e0cecd9 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 11 Jul 2024 11:52:01 +0200 Subject: [PATCH 008/492] Bump inputs --- flake.lock | 158 ++++++++++++++++++++++++++--------------------------- flake.nix | 3 +- 2 files changed, 81 insertions(+), 80 deletions(-) diff --git a/flake.lock b/flake.lock index af746a1..099dbf5 100644 --- a/flake.lock +++ b/flake.lock @@ -8,11 +8,11 @@ "systems": "systems" }, "locked": { - "lastModified": 1718371084, - "narHash": "sha256-abpBi61mg0g+lFFU0zY4C6oP6fBwPzbHPKBGw676xsA=", + "lastModified": 1720546205, + "narHash": "sha256-boCXsjYVxDviyzoEyAk624600f3ZBo/DKtUdvMTpbGY=", "owner": "ryantm", "repo": "agenix", - "rev": "3a56735779db467538fb2e577eda28a9daacaca6", + "rev": "de96bd907d5fbc3b14fc33ad37d1b9a3cb15edc6", "type": "github" }, "original": { @@ -29,11 +29,11 @@ "nixpkgs": "nixpkgs_2" }, "locked": { - "lastModified": 1719208883, - "narHash": "sha256-Iu4tTrxobGwOAdwf67unaZtUJ2ETREi34bnZRotT0T4=", + "lastModified": 1720147808, + "narHash": "sha256-hlWEQGUbIwYb+vnd8egzlW/P++yKu3HjV/rOdOPVank=", "owner": "hercules-ci", "repo": "arion", - "rev": "01777136c6e15251d2a2f2b72a5609cea7d42f29", + "rev": "236f9dd82d6ef6a2d9987c7a7df3e75f1bc8b318", "type": "github" }, "original": { @@ -104,11 +104,11 @@ ] }, "locked": { - "lastModified": 1719236180, - "narHash": "sha256-VZAfBk2Lo8hQy/NQ4XVSpTICT0ownXBUi1QvGfdlxaM=", + "lastModified": 1720661479, + "narHash": "sha256-nsGgA14vVn0GGiqEfomtVgviRJCuSR3UEopfP8ixW1I=", "owner": "nix-community", "repo": "disko", - "rev": "dd4d1663ccf7fbdb32361b9afe9e71206584cd4c", + "rev": "786965e1b1ed3fd2018d78399984f461e2a44689", "type": "github" }, "original": { @@ -124,11 +124,11 @@ "pyproject-nix": "pyproject-nix" }, "locked": { - "lastModified": 1719340684, - "narHash": "sha256-h2F30XztjIlkcelVhekvqby/Q5KXqAXsyk43KbDi86M=", + "lastModified": 1720605900, + "narHash": "sha256-/BTAC3gj1Ot7o/PINsHS2EGEtGUadI12WZlhowKn18c=", "owner": "nix-community", "repo": "dream2nix", - "rev": "aa983fd908a0d7e235a8c8a77b803231b9ff2e4a", + "rev": "0c6b5c8ab796f6dfb2aef1133f5b7bb25ce57cb9", "type": "github" }, "original": { @@ -326,11 +326,11 @@ ] }, "locked": { - "lastModified": 1717285511, - "narHash": "sha256-iKzJcpdXih14qYVcZ9QC9XuZYnPc6T8YImb6dX166kw=", + "lastModified": 1719994518, + "narHash": "sha256-pQMhCCHyQGRzdfAkdJ4cIWiw+JNuWsTX7f0ZYSyz0VY=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "2a55567fcf15b1b1c7ed712a2c6fadaec7412ea8", + "rev": "9227223f6d922fee3c7b190b2cc238a99527bbb7", "type": "github" }, "original": { @@ -443,11 +443,11 @@ ] }, "locked": { - "lastModified": 1717285511, - "narHash": "sha256-iKzJcpdXih14qYVcZ9QC9XuZYnPc6T8YImb6dX166kw=", + "lastModified": 1719877454, + "narHash": "sha256-g5N1yyOSsPNiOlFfkuI/wcUjmtah+nxdImJqrSATjOU=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "2a55567fcf15b1b1c7ed712a2c6fadaec7412ea8", + "rev": "4e3583423212f9303aa1a6337f8dffb415920e4f", "type": "github" }, "original": { @@ -589,11 +589,11 @@ "nixpkgs-lib": "nixpkgs-lib_2" }, "locked": { - "lastModified": 1717285511, - "narHash": "sha256-iKzJcpdXih14qYVcZ9QC9XuZYnPc6T8YImb6dX166kw=", + "lastModified": 1719994518, + "narHash": "sha256-pQMhCCHyQGRzdfAkdJ4cIWiw+JNuWsTX7f0ZYSyz0VY=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "2a55567fcf15b1b1c7ed712a2c6fadaec7412ea8", + "rev": "9227223f6d922fee3c7b190b2cc238a99527bbb7", "type": "github" }, "original": { @@ -677,11 +677,11 @@ "nixpkgs": "nixpkgs_6" }, "locked": { - "lastModified": 1718196252, - "narHash": "sha256-Ni73uHEjw9xzJhzonxgiW1RPHb9nAp7PypBSjCv2nAw=", + "lastModified": 1720223941, + "narHash": "sha256-QDbU8LZzcUSqBp1CBqDj/f5Wd/sdgQ8pZwRWueoMUL4=", "owner": "hercules-ci", "repo": "hercules-ci-agent", - "rev": "42cfc9fe1593e1bcabbcd643a926cd2efc5339e9", + "rev": "2e10fb21fc2e07edf40763b73443e5934bd40947", "type": "github" }, "original": { @@ -699,11 +699,11 @@ ] }, "locked": { - "lastModified": 1713898448, - "narHash": "sha256-6q6ojsp/Z9P2goqnxyfCSzFOD92T3Uobmj8oVAicUOs=", + "lastModified": 1719226092, + "narHash": "sha256-YNkUMcCUCpnULp40g+svYsaH1RbSEj6s4WdZY/SHe38=", "owner": "hercules-ci", "repo": "hercules-ci-effects", - "rev": "c0302ec12d569532a6b6bd218f698bc402e93adc", + "rev": "11e4b8dc112e2f485d7c97e1cee77f9958f498f5", "type": "github" }, "original": { @@ -818,11 +818,11 @@ ] }, "locked": { - "lastModified": 1719180626, - "narHash": "sha256-vZAzm5KQpR6RGple1dzmSJw5kPivES2heCFM+ZWkt0I=", + "lastModified": 1720646128, + "narHash": "sha256-BivO5yIQukDlJL+1875Sqf3GuOPxZDdA48dYDi3PkL8=", "owner": "nix-community", "repo": "home-manager", - "rev": "6b1f90a8ff92e81638ae6eb48cd62349c3e387bb", + "rev": "c085b984ff2808bf322f375b10fea5a415a9c43d", "type": "github" }, "original": { @@ -872,11 +872,11 @@ "lix": { "flake": false, "locked": { - "lastModified": 1719353906, - "narHash": "sha256-Tb0qMlbG/+DvnnBtgJtByBF1vh8pGIUXv0lhivYCCH8=", + "lastModified": 1720633647, + "narHash": "sha256-CjWvti4wFhRmIHpLduohKAVmU9+wI/PAOhQppCWziK8=", "ref": "refs/heads/main", - "rev": "4ac2c496d499a4a0e2d64edf32eb855268e7aa8d", - "revCount": 15890, + "rev": "014410cbf0bda9c0fcdaf5f894120883cdc805ce", + "revCount": 15944, "type": "git", "url": "https://git@git.lix.systems/lix-project/lix" }, @@ -913,11 +913,11 @@ "mobile-nixos": { "flake": false, "locked": { - "lastModified": 1715627339, - "narHash": "sha256-HJ6V7hc64iBqXlZ8kH4sXmUzPH+0Hn6wYURmZmL5LFk=", + "lastModified": 1720660935, + "narHash": "sha256-GnDGoVaObUjnYdCHUSIYVE1anMElis+Pq+RY30LFlIk=", "owner": "NixOS", "repo": "mobile-nixos", - "rev": "655c8830d5fe2eae79c8fc0bab8033b34c8456eb", + "rev": "31704f8a55f5773c9b4e7adb7408a142d142e1f2", "type": "github" }, "original": { @@ -935,11 +935,11 @@ "treefmt-nix": "treefmt-nix" }, "locked": { - "lastModified": 1719305207, - "narHash": "sha256-gxJ1xgkXe/iHpyYBtx96D7AKccQYqutC6R7cKv2uBNY=", + "lastModified": 1719475157, + "narHash": "sha256-8zW6eWvE9T03cMpo/hY8RRZIsSCfs1zmsJOkEZzuYwM=", "owner": "Mic92", "repo": "nix-fast-build", - "rev": "02c50df6881266f5425f06f475d504e90e491767", + "rev": "030e586195c97424844965d2ce680140f6565c02", "type": "github" }, "original": { @@ -981,11 +981,11 @@ "nmd": "nmd_2" }, "locked": { - "lastModified": 1710434231, - "narHash": "sha256-yrWnsG28518tbIapJWiluweHORuuIwAQrA8lga0Sqlw=", + "lastModified": 1720612508, + "narHash": "sha256-WbjV0gmnh6jG1B292K4KIJwtBacn2sTWhiw1ZMeti9s=", "owner": "nix-community", "repo": "nix-on-droid", - "rev": "2d93311c4f3f300154d2085e4b4b1d550237da92", + "rev": "8bcadcef69dcb5ca177bfb6ea3dc6b092cda2b06", "type": "github" }, "original": { @@ -1001,11 +1001,11 @@ ] }, "locked": { - "lastModified": 1719128254, - "narHash": "sha256-I7jMpq0CAOZA/i70+HDQO/ulLttyQu/K70cSESiMX7A=", + "lastModified": 1720599442, + "narHash": "sha256-jdm+sKVbBXoyrxcHbVaV0htlpq2iFR+eJw3Xe/DPcDo=", "owner": "LnL7", "repo": "nix-darwin", - "rev": "50581970f37f06a4719001735828519925ef8310", + "rev": "cf297a8d248db6a455b60133f6c0029c04ebe50e", "type": "github" }, "original": { @@ -1045,11 +1045,11 @@ "nixpkgs": "nixpkgs_10" }, "locked": { - "lastModified": 1719301507, - "narHash": "sha256-31CCcoTEi6JFMZTl+nBXy2irjSD3G4tjzHMaAK0YBC8=", + "lastModified": 1719387257, + "narHash": "sha256-q5nj4TFggEHcyKuETmVEFeGztkAYXl3TDIOfd6swo4U=", "owner": "nix-community", "repo": "nixd", - "rev": "61075576703ed1e1c82134ec780c768b4c3d4e00", + "rev": "60a925008bc353136ba5babce437f42819c1645c", "type": "github" }, "original": { @@ -1060,11 +1060,11 @@ }, "nixosHardware": { "locked": { - "lastModified": 1719322773, - "narHash": "sha256-BqPxtFwXrpJQDh65NOIHX99pz2rtIMshG9Mt2xnnc5c=", + "lastModified": 1720515935, + "narHash": "sha256-8b+fzR4W2hI5axwB+4nBwoA15awPKkck4ghhCt8v39M=", "owner": "NixOS", "repo": "nixos-hardware", - "rev": "caabc425565bbd5c8640630b0bf6974961a49242", + "rev": "a111ce6b537df12a39874aa9672caa87f8677eda", "type": "github" }, "original": { @@ -1107,17 +1107,17 @@ }, "nixpkgs-for-bootstrap": { "locked": { - "lastModified": 1708105575, - "narHash": "sha256-sS4AItZeUnAei6v8FqxNlm+/27MPlfoGym/TZP0rmH0=", + "lastModified": 1720244366, + "narHash": "sha256-WrDV0FPMVd2Sq9hkR5LNHudS3OSMmUrs90JUTN+MXpA=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "1d1817869c47682a6bee85b5b0a6537b6c0fba26", + "rev": "49ee0e94463abada1de470c9c07bfc12b36dcf40", "type": "github" }, "original": { "owner": "NixOS", "repo": "nixpkgs", - "rev": "1d1817869c47682a6bee85b5b0a6537b6c0fba26", + "rev": "49ee0e94463abada1de470c9c07bfc12b36dcf40", "type": "github" } }, @@ -1151,14 +1151,14 @@ }, "nixpkgs-lib_2": { "locked": { - "lastModified": 1717284937, - "narHash": "sha256-lIbdfCsf8LMFloheeE6N31+BMIeixqyQWbSr2vk79EQ=", + "lastModified": 1719876945, + "narHash": "sha256-Fm2rDDs86sHy0/1jxTOKB1118Q0O3Uc7EC0iXvXKpbI=", "type": "tarball", - "url": "https://github.com/NixOS/nixpkgs/archive/eb9ceca17df2ea50a250b6b27f7bf6ab0186f198.tar.gz" + "url": "https://github.com/NixOS/nixpkgs/archive/5daf0514482af3f97abaefc78a6606365c9108e2.tar.gz" }, "original": { "type": "tarball", - "url": "https://github.com/NixOS/nixpkgs/archive/eb9ceca17df2ea50a250b6b27f7bf6ab0186f198.tar.gz" + "url": "https://github.com/NixOS/nixpkgs/archive/5daf0514482af3f97abaefc78a6606365c9108e2.tar.gz" } }, "nixpkgs-lib_3": { @@ -1245,11 +1245,11 @@ }, "nixpkgsStable": { "locked": { - "lastModified": 1719122173, - "narHash": "sha256-aEMsNUtqSPwn6l+LIZ/rX++nCgun3E9M3uSZs6Rwb7w=", + "lastModified": 1719957072, + "narHash": "sha256-gvFhEf5nszouwLAkT9nWsDzocUTqLWHuL++dvNjMp9I=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "906320ae02f769d13a646eb3605a9821df0d6ea2", + "rev": "7144d6241f02d171d25fba3edeaf15e0f2592105", "type": "github" }, "original": { @@ -1270,8 +1270,8 @@ }, "original": { "owner": "NixOS", - "ref": "nixos-unstable", "repo": "nixpkgs", + "rev": "2893f56de08021cffd9b6b6dfc70fd9ccd51eb60", "type": "github" } }, @@ -1325,11 +1325,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1717196966, - "narHash": "sha256-yZKhxVIKd2lsbOqYd5iDoUIwsRZFqE87smE2Vzf6Ck0=", + "lastModified": 1720031269, + "narHash": "sha256-rwz8NJZV+387rnWpTYcXaRNvzUSnnF9aHONoJIYmiUQ=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "57610d2f8f0937f39dbd72251e9614b1561942d8", + "rev": "9f4128e00b0ae8ec65918efeba59db998750ead6", "type": "github" }, "original": { @@ -1373,11 +1373,11 @@ }, "nixpkgs_5": { "locked": { - "lastModified": 1719285171, - "narHash": "sha256-kOUKtKfYEh8h8goL/P6lKF4Jb0sXnEkFyEganzdTGvo=", + "lastModified": 1720181791, + "narHash": "sha256-i4vJL12/AdyuQuviMMd1Hk2tsGt02hDNhA0Zj1m16N8=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "cfb89a95f19bea461fc37228dc4d07b22fe617c2", + "rev": "4284c2b73c8bce4b46a6adf23e16d9e2ec8da4bb", "type": "github" }, "original": { @@ -1389,11 +1389,11 @@ }, "nixpkgs_6": { "locked": { - "lastModified": 1717974879, - "narHash": "sha256-GTO3C88+5DX171F/gVS3Qga/hOs/eRMxPFpiHq2t+D8=", + "lastModified": 1719848872, + "narHash": "sha256-H3+EC5cYuq+gQW8y0lSrrDZfH71LB4DAf+TDFyvwCNA=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "c7b821ba2e1e635ba5a76d299af62821cbcb09f3", + "rev": "00d80d13810dbfea8ab4ed1009b09100cca86ba8", "type": "github" }, "original": { @@ -1564,11 +1564,11 @@ ] }, "locked": { - "lastModified": 1719259945, - "narHash": "sha256-F1h+XIsGKT9TkGO3omxDLEb/9jOOsI6NnzsXFsZhry4=", + "lastModified": 1720524665, + "narHash": "sha256-ni/87oHPZm6Gv0ECYxr1f6uxB0UKBWJ6HvS7lwLU6oY=", "owner": "cachix", "repo": "pre-commit-hooks.nix", - "rev": "0ff4381bbb8f7a52ca4a851660fc7a437a4c6e07", + "rev": "8d6a17d0cdf411c55f12602624df6368ad86fac1", "type": "github" }, "original": { @@ -1820,11 +1820,11 @@ ] }, "locked": { - "lastModified": 1719243788, - "narHash": "sha256-9T9mSY35EZSM1KAwb7K9zwQ78qTlLjosZgtUGnw4rn4=", + "lastModified": 1720645794, + "narHash": "sha256-vAeYp+WH7i/DlBM5xNt9QeWiOiqzzf5abO8DYGkbUxg=", "owner": "numtide", "repo": "treefmt-nix", - "rev": "065a23edceff48f948816b795ea8cc6c0dee7cdf", + "rev": "750dfb555b5abdab4d3266b3f9a05dec6d205c04", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 3f4cc1d..2299602 100644 --- a/flake.nix +++ b/flake.nix @@ -3,7 +3,8 @@ inputs = { flakeParts.url = "github:hercules-ci/flake-parts"; - nixpkgsUnstable.url = "github:NixOS/nixpkgs/nixos-unstable"; + # FIXME remove constraint + nixpkgsUnstable.url = "github:NixOS/nixpkgs/2893f56de08021cffd9b6b6dfc70fd9ccd51eb60"; nixpkgsUnstableForSisko.url = "github:NixOS/nixpkgs/0e74ca98a74bc7270d28838369593635a5db3260"; nixpkgsStable.url = "github:NixOS/nixpkgs/nixos-23.11"; nixosHardware.url = "github:NixOS/nixos-hardware"; From c9951e3774a589607b56272d5addf42b9bd92715 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 11 Jul 2024 12:08:21 +0200 Subject: [PATCH 009/492] New `oneplus8t` SSH key --- lib/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/default.nix b/lib/default.nix index f4c930a..7b98ca0 100644 --- a/lib/default.nix +++ b/lib/default.nix @@ -3,7 +3,7 @@ users = { ccr-gpg = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC5cEUx25pnZiH3eBrE2xNbJ92gJiKSznDUNRzcEL4ti6FlJm+75p4q0hgdqHwStR8+uCWBL6viVFCGutOVMFE5MX1Oc3A8fJdR6H9Rrwvk/1UQzqzc9tWxw1qPLKz+fnPDomjOvNofghCWQRwX3Xf1HnIqvRwELpNbR9i+/cHkDGzLJxkstbt4gol8ywMPkw02QdKk8s5MEd1vawxc+7Chs0JPW57RDqDYFErYys52JLeAViCBB9bofF+KT42LuRXKSjWlvCV9kR5TL49vUeBgzMQWMh++WQdN4m9lpqFqYyc75I49/E0HGf8LChDSS+hvRnb5MbtnVGjEA4WDHyldmJCvUNob5CUo4FjoSPRi+S/J3Ads8D4JVwaJOJEVqmMKEhiQ0Hzk4hwe3eV/VumlZj4U/QjaCrqqi4TW/iP0gNRfzcfiM+G/z5R7w1NMUpTX7oilyKjMQmGnXB857D3SSptS7dwh5OiKhVmrQMRCduooUsj236abqLU28K//RnxhOgh8kDGgoUHApnTiMZNKhgLiR42lKrubNcW1tAAqoNyFLMwwXeMLjh0iP1b5y8ntfNPNIcGb7vcwpS24z/aIjW7rQ4J7x5EBphHGhys6ne+irdhOM8c7kFr+c8+Q2oU0YAtFuMYztAFOHm1e20X00Zvys2nuee+hT9F1NungAQ== andrea.ciceri@autistici.org"; ccr-ssh = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCzCmDCtlGscpesHuoiruVWD2IjYEFtaIl9Y2JZGiOAyf3V17KPx0MikcknfmxSHi399SxppiaXQHxo/1wjGxXkXNTTv6h1fBuqwhJE6C8+ZSV+gal81vEnXX+/9w2FQqtVgnG2/mO7oJ0e3FY+6kFpOsGEhYexoGt/UxIpAZoqIN+CWNhJIASUkneaZWtgwiL8Afb59kJQ2E7WbBu+PjYZ/s5lhPobhlkz6s8rkhItvYdiSHT0DPDKvp1oEbxsxd4E4cjJFbahyS8b089NJd9gF5gs0b74H/2lUUymnl63cV37Mp4iXB4rtE69MbjqsGEBKTPumLualmc8pOGBHqWIdhAqGdZQeBajcb6VK0E3hcU0wBB+GJgm7KUzlAHGdC3azY0KlHMrLaZN0pBrgCVR6zBNWtZz2B2qMBZ8Cw+K4vut8GuspdXZscID10U578GxQvJAB9CdxNUtrzSmKX2UtZPB1udWjjIAlejzba4MG73uXgQEdv0NcuHNwaLuCWxTUT5QQF18IwlJ23Mg8aPK8ojUW5A+kGHAu9wtgZVcX1nS5cmYKSgLzcP1LA1l9fTJ1vqBSuy38GTdUzfzz7AbnkRfGPj2ALDgyx17Rc5ommjc1k0gFoeIqiLaxEs5FzDcRyo7YvZXPsGeIqNCYwQWw3+U+yUEJby8bxGb2d/6YQ== andrea.ciceri@autistici.org"; - oneplus8t = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC1xBMLABwQQGOrbFXDqJEvcBQFvTx/Fj+k/qBa+FXPobH2BcOj8NxrExliP3krPTi+srEaA0fQHBy/tFktiZQvx82KPan9dpmRlc6G970Ej9M6dNbwl4zTMAgZ3E8U5HCvoXTaFeSS2mrlRq5pyy7dZcVkPMvhgP65d+gx6fJbQhiDGBGJg2CWU8b1bUG703EkYcKAZY57Db+j/8/VoBsS3TAAJzW8CVxN1nqKeYCcgPR7y2HjZihlSUPJsdwV4D46qj1gLh+NdYh5iBUICOXBIt26hiQhRPtY+mtH2eWW1NdnCp2gk6IaMQEHKCy9t5L3VybQJzaqDZwQAyQZIbonb+X8hlkhvf9CjlrjILoroLN3RE5te/WQQzyTR4Ni8A6+Mu+1JHW5JWM3Iz9u77ceLc9/4UFkdFSALZjFUYIevQLUitVZCdJkqNxizyJmpCgjAnArhjItX6hO4Dq96TRWcHDtCsk1jJ1CCUZRwkkzZjmob86CS58zERkwWbWKGSejxSO6YQZTFsgon76r2x5Cd1GoG4vCtFMqyOQzDTHZqVxYjWJrySFg2GnCIy4wth1tpwB/uzobM9Xn01V6vdQNDI7a/4XHZ7IQWiGy2dme6R+PmAma1RgxAioPt5IZrv8nlb2YWXuoXS66RSwV9A9U+98hVfZc29KJ+2fKVy/JBQ== oneplus6t"; + oneplus8t = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIO8da1Mf11vXFF0kVDgxocVoGwpHHMEs9emS9T+v8hLb oneplus8t"; hercules-ci-agent = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGPupm00BiveTIYF6CNwuMijF5VvEaPDMjvt+vMlAy+N hercules-ci-agent"; }; hosts = { From cc2bae9274a71e7bd784ee237fd57d0f6ee4d9a0 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 11 Jul 2024 12:08:32 +0200 Subject: [PATCH 010/492] Fix --- hosts/janeway/default.nix | 32 +++++++++++++++++++++++++------- hosts/module.nix | 2 ++ 2 files changed, 27 insertions(+), 7 deletions(-) diff --git a/hosts/janeway/default.nix b/hosts/janeway/default.nix index 54c0975..ecaee5a 100644 --- a/hosts/janeway/default.nix +++ b/hosts/janeway/default.nix @@ -2,18 +2,18 @@ config, lib, pkgs, + fleetFlake, ... }: let sshdTmpDirectory = "${config.user.home}/sshd-tmp"; sshdDirectory = "${config.user.home}/sshd"; - pathToPubKey = "/mnt/sdcard/Download/picard_host_key.pub"; port = 8022; in { # Backup etc files instead of failing to activate generation if a file already exists in /etc environment.etcBackupExtension = ".bak"; # Read the changelog before changing this value - system.stateVersion = "23.11"; + system.stateVersion = "24.05"; # Set up nix for flakes nix.extraOptions = '' @@ -23,9 +23,25 @@ in { # Set your time zone time.timeZone = "Europe/Rome"; - build.activation.sshd = '' + home-manager.config = {pkgs, ...}: { + home.stateVersion = "24.05"; + _module.args = { + hostname = "janeway"; + age.secrets = {}; + }; + imports = [../../hmModules/shell]; + }; + + build.activation.sshd = let + keys = (builtins.import ../../lib).keys; + inherit (keys) hosts users; + in '' $DRY_RUN_CMD mkdir $VERBOSE_ARG --parents "${config.user.home}/.ssh" - $DRY_RUN_CMD cat ${pathToPubKey} > "${config.user.home}/.ssh/authorized_keys" + $DRY_RUN_CMD echo ${hosts.picard} > "${config.user.home}/.ssh/authorized_keys" + $DRY_RUN_CMD echo ${hosts.sisko} >> "${config.user.home}/.ssh/authorized_keys" + $DRY_RUN_CMD echo ${hosts.kirk} >> "${config.user.home}/.ssh/authorized_keys" + $DRY_RUN_CMD echo ${users.ccr-ssh} >> "${config.user.home}/.ssh/authorized_keys" + $DRY_RUN_CMD echo ${users.ccr-gpg} >> "${config.user.home}/.ssh/authorized_keys" if [[ ! -d "${sshdDirectory}" ]]; then $DRY_RUN_CMD rm $VERBOSE_ARG --recursive --force "${sshdTmpDirectory}" @@ -41,16 +57,18 @@ in { fi ''; - environment.packages = [ - pkgs.vim + environment.packages = let + inherit (fleetFlake.inputs.ccrEmacs.packages.aarch64-linux) ccrEmacs; + in [ pkgs.bottom pkgs.helix pkgs.stress pkgs.openssh pkgs.git + pkgs.btop + ccrEmacs (pkgs.writeScriptBin "sshd-start" '' #!${pkgs.runtimeShell} - echo "Starting sshd in non-daemonized way on port ${toString port}" ${pkgs.openssh}/bin/sshd -f "${sshdDirectory}/sshd_config" -D '') diff --git a/hosts/module.nix b/hosts/module.nix index 9f3f4b0..3c26ae6 100644 --- a/hosts/module.nix +++ b/hosts/module.nix @@ -291,6 +291,7 @@ in { internal = true; default = hostname: config: inputs.nix-on-droid.lib.nixOnDroidConfiguration { + pkgs = inputs.nixpkgsUnstable.legacyPackages.aarch64-linux; modules = [ ({ lib, @@ -298,6 +299,7 @@ in { ... }: { nixpkgs.overlays = config.overlays; + _module.args.fleetFlake = self; }) "${self.outPath}/hosts/${hostname}" ]; From b111910e64adb199b72325ef701f7d5e83c826a9 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Sat, 13 Jul 2024 14:50:42 +0200 Subject: [PATCH 011/492] Fix hostname --- modules/syncthing/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/syncthing/default.nix b/modules/syncthing/default.nix index 240e3a7..0acb3dc 100644 --- a/modules/syncthing/default.nix +++ b/modules/syncthing/default.nix @@ -29,7 +29,7 @@ "tcp://kirk.fleet" ]; }; - onplus8t = { + oneplus8t = { id = "76BJ2ZE-FPFDWUZ-3UZIENZ-TS6YBGG-EZSF6UE-GLHRBQ2-KTHTRMI-3JWNRAT"; addresses = [ "tcp://oneplus8t.fleet" @@ -45,7 +45,7 @@ kirk = "/home/${config.ccr.username}/org"; } .${config.networking.hostName}; - devices = ["picard" "sisko" "kirk" "onplus6t"]; + devices = ["picard" "sisko" "kirk" "oneplus8t"]; }; sync = { path = From ebc446116cae1bcaea10b3273361e4cf5185d5ca Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Sat, 20 Jul 2024 00:48:48 +0200 Subject: [PATCH 012/492] Re-deploy `sisko` with `impermanence` --- flake.lock | 16 ++++++++ flake.nix | 1 + hosts/default.nix | 5 ++- hosts/picard/default.nix | 2 +- hosts/sisko/default.nix | 65 +++++++++++++++++------------- hosts/sisko/disko.nix | 29 ++++++++++--- modules/forgejo/default.nix | 8 +--- modules/home-assistant/default.nix | 4 +- modules/nginx-base/default.nix | 4 ++ 9 files changed, 89 insertions(+), 45 deletions(-) diff --git a/flake.lock b/flake.lock index 099dbf5..7b0925b 100644 --- a/flake.lock +++ b/flake.lock @@ -852,6 +852,21 @@ "type": "github" } }, + "impermanence": { + "locked": { + "lastModified": 1719091691, + "narHash": "sha256-AxaLX5cBEcGtE02PeGsfscSb/fWMnyS7zMWBXQWDKbE=", + "owner": "nix-community", + "repo": "impermanence", + "rev": "23c1f06316b67cb5dabdfe2973da3785cfe9c34a", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "impermanence", + "type": "github" + } + }, "kernel-src": { "flake": false, "locked": { @@ -1653,6 +1668,7 @@ "hercules-ci-effects": "hercules-ci-effects_3", "homeManager": "homeManager", "homeManagerGitWorkspace": "homeManagerGitWorkspace", + "impermanence": "impermanence", "lix": "lix", "lix-module": "lix-module", "mobile-nixos": "mobile-nixos", diff --git a/flake.nix b/flake.nix index 2299602..7b754e0 100644 --- a/flake.nix +++ b/flake.nix @@ -68,6 +68,7 @@ flake = false; }; arion.url = "github:hercules-ci/arion"; + impermanence.url = "github:nix-community/impermanence"; }; outputs = inputs @ {flakeParts, ...}: diff --git a/hosts/default.nix b/hosts/default.nix index 7ec9a15..8adb65e 100644 --- a/hosts/default.nix +++ b/hosts/default.nix @@ -160,6 +160,7 @@ extraModules = with inputs; [ disko.nixosModules.disko arion.nixosModules.arion + impermanence.nixosModules.impermanence # lix-module.nixosModules.default # inputs.hercules-ci-agent.nixosModules.agent-service; # rock5b.nixosModules.default @@ -173,8 +174,8 @@ "home-planimetry".owner = "hass"; "cloudflare-dyndns-api-token" = {}; "restic-hetzner-password" = {}; - "minio-credentials".owner = "minio"; - "aws-credentials".owner = "hercules-ci-agent"; + # "minio-credentials".owner = "minio"; + # "aws-credentials".owner = "hercules-ci-agent"; "hass-ssh-key".owner = "hass"; # "matrix-registration-shared-secret".owner = "matrix-synapse"; # "matrix-sliding-sync-secret".owner = "matrix-synapse"; diff --git a/hosts/picard/default.nix b/hosts/picard/default.nix index 9b63f91..3dc217d 100644 --- a/hosts/picard/default.nix +++ b/hosts/picard/default.nix @@ -32,7 +32,7 @@ "restic" "binfmt" "greetd" - "syncthing" + # "syncthing" "hass-poweroff" "forgejo-runners" "teamviewer" diff --git a/hosts/sisko/default.nix b/hosts/sisko/default.nix index 760e9e4..6ec4fd2 100644 --- a/hosts/sisko/default.nix +++ b/hosts/sisko/default.nix @@ -13,7 +13,7 @@ "wireguard-server" "mediatomb" "transmission" - "hercules-ci" + # "hercules-ci" "home-assistant" "adguard-home" "cloudflare-dyndns" @@ -21,13 +21,13 @@ "invidious" "searx" "rock5b-samba" - "paperless" - "restic" - "syncthing" - "minio" - # "matrix" + # "paperless" + # "restic" + # "syncthing" + # "minio" + # # "matrix" "forgejo" - # "jellyfin" + # # "jellyfin" # "immich" ] ++ [ @@ -62,8 +62,6 @@ ccr.enable = true; - # services.rock5b-fan-control.enable = true; - nixpkgs.hostPlatform = "aarch64-linux"; swapDevices = []; @@ -84,26 +82,35 @@ "console=ttyS0,1500000" ]; - # fileSystems."/mnt/film" = { - # device = "//ccr.ydns.eu/film"; - # fsType = "cifs"; - # options = let - # credentials = pkgs.writeText "credentials" '' - # username=guest - # password= - # ''; - # in ["credentials=${credentials},x-systemd.automount,noauto,x-systemd.idle-timeout=60,x-systemd.device-timeout=5s,x-systemd.mount-timeout=5s"]; - # }; - # fileSystems."/mnt/archivio" = { - # device = "//ccr.ydns.eu/archivio"; - # fsType = "cifs"; - # options = let - # credentials = pkgs.writeText "credentials" '' - # username=guest - # password= - # ''; - # in ["credentials=${credentials},x-systemd.automount,noauto,x-systemd.idle-timeout=60,x-systemd.device-timeout=5s,x-systemd.mount-timeout=5s"]; - # }; + environment.persistence."/persist" = { + hideMounts = true; + directories = [ + "/etc/NetworkManager/system-connections" + "/var/db/dhcpcd/" + "/var/lib/NetworkManager/" + "/var/lib/nixos" + "/var/lib/systemd" + "/var/lib/systemd/coredump" + "/var/log" + "/var/lib/containers" + "/var/lib/postgresql" + ]; + files = [ + "/etc/machine-id" + "/etc/ssh/ssh_host_ed25519_key" + "/etc/ssh/ssh_host_ed25519_key.pub" + "/etc/ssh/ssh_host_rsa_key" + "/etc/ssh/ssh_host_rsa_key.pub" + ]; + }; + + age.identityPaths = [ + "/persist/etc/ssh/ssh_host_ed25519_key" + "/persist/etc/ssh/ssh_host_rsa_key" + ]; + + fileSystems."/persist".neededForBoot = true; + boot.tmp.cleanOnBoot = true; fileSystems."/mnt/hd" = { device = "/dev/disk/by-id/ata-WDC_WD10EADS-22M2B0_WD-WCAV52709550-part1"; diff --git a/hosts/sisko/disko.nix b/hosts/sisko/disko.nix index 325dbcf..b1fda80 100644 --- a/hosts/sisko/disko.nix +++ b/hosts/sisko/disko.nix @@ -7,6 +7,10 @@ let # old_hd = "/dev/disk/by-id/ata-WDC_WD5000AAKX-08U6AA0_WD-WCC2E5TR40FU"; in { disko.devices = { + nodev."/" = { + fsType = "tmpfs"; + mountOptions = ["size=1024M" "defaults" "mode=755"]; + }; disk = { ssd = { device = ssd; @@ -17,20 +21,35 @@ in { ESP = { label = "ESP"; type = "EF00"; - size = "1G"; + size = "1024M"; content = { type = "filesystem"; format = "vfat"; mountpoint = "/boot"; }; }; - root = { - label = "root"; - size = "100%"; + nixroot = { + size = "100G"; content = { type = "filesystem"; format = "ext4"; - mountpoint = "/"; + mountpoint = "/nix"; + }; + }; + persist = { + size = "100G"; + content = { + type = "filesystem"; + format = "ext4"; + mountpoint = "/persist"; + }; + }; + tmp = { + end = "0"; + content = { + type = "filesystem"; + format = "ext4"; + mountpoint = "/tmp"; }; }; }; diff --git a/modules/forgejo/default.nix b/modules/forgejo/default.nix index 8a1f821..1365115 100644 --- a/modules/forgejo/default.nix +++ b/modules/forgejo/default.nix @@ -29,15 +29,11 @@ SHOW_FOOTER_VERSION = false; }; }; - mailerPasswordFile = config.age.secrets.autistici-password.path; + secrets.mailer.PASSWD = config.age.secrets.autistici-password.path; dump.enable = true; }; - systemd.tmpfiles.rules = [ - "d ${config.services.forgejo.stateDir} 770 forgejo forgejo" - ]; - - backup.paths = [ + environment.persistence."/persist".directories = [ config.services.forgejo.stateDir ]; diff --git a/modules/home-assistant/default.nix b/modules/home-assistant/default.nix index 99f86c7..b21f37c 100644 --- a/modules/home-assistant/default.nix +++ b/modules/home-assistant/default.nix @@ -210,8 +210,8 @@ in { }; }; - backup.paths = [ - "/var/lib/hass" + environment.persistence."/persist".directories = [ + config.services.home-assistant.configDir ]; # virtualisation.oci-containers = { diff --git a/modules/nginx-base/default.nix b/modules/nginx-base/default.nix index 8baeece..fa8dd61 100644 --- a/modules/nginx-base/default.nix +++ b/modules/nginx-base/default.nix @@ -16,4 +16,8 @@ recommendedProxySettings = true; recommendedTlsSettings = true; }; + + environment.persistence."/persist".directories = [ + "/var/lib/acme" + ]; } From 7f52ad42cd5a11d67eb13d41f6edb8813f549423 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Sun, 21 Jul 2024 18:18:24 +0200 Subject: [PATCH 013/492] Enable Prometheus/Grafana/Loki --- hosts/default.nix | 2 + hosts/picard/default.nix | 1 + hosts/sisko/default.nix | 8 ++- modules/cloudflare-dyndns/default.nix | 1 + modules/grafana/default.nix | 30 +++++++++++ modules/home-assistant/default.nix | 4 ++ modules/loki/default.nix | 67 ++++++++++++++++++++++++ modules/prometheus-exporters/default.nix | 32 +++++++++++ modules/prometheus/default.nix | 33 ++++++++++++ modules/promtail/default.nix | 54 +++++++++++++++++++ modules/promtail/protmail.yaml | 0 secrets/grafana-password.age | 29 ++++++++++ secrets/home-assistant-token.age | 29 ++++++++++ secrets/secrets.nix | 2 + 14 files changed, 290 insertions(+), 2 deletions(-) create mode 100644 modules/grafana/default.nix create mode 100644 modules/loki/default.nix create mode 100644 modules/prometheus-exporters/default.nix create mode 100644 modules/prometheus/default.nix create mode 100644 modules/promtail/default.nix create mode 100644 modules/promtail/protmail.yaml create mode 100644 secrets/grafana-password.age create mode 100644 secrets/home-assistant-token.age diff --git a/hosts/default.nix b/hosts/default.nix index 8adb65e..27ff71f 100644 --- a/hosts/default.nix +++ b/hosts/default.nix @@ -172,6 +172,8 @@ "hercules-ci-secrets-json".owner = "hercules-ci-agent"; "cachix-personal-token".owner = "ccr"; "home-planimetry".owner = "hass"; + "home-assistant-token".owner = "prometheus"; + "grafana-password".owner = "grafana"; "cloudflare-dyndns-api-token" = {}; "restic-hetzner-password" = {}; # "minio-credentials".owner = "minio"; diff --git a/hosts/picard/default.nix b/hosts/picard/default.nix index 3dc217d..97be64f 100644 --- a/hosts/picard/default.nix +++ b/hosts/picard/default.nix @@ -41,6 +41,7 @@ "mount-rock5b" "adb" "guix" + "prometheus-exporters" ] ++ [ ./disko.nix diff --git a/hosts/sisko/default.nix b/hosts/sisko/default.nix index 6ec4fd2..8aba34a 100644 --- a/hosts/sisko/default.nix +++ b/hosts/sisko/default.nix @@ -29,13 +29,16 @@ "forgejo" # # "jellyfin" # "immich" + "prometheus" + "grafana" + "prometheus-exporters" + "loki" + "promtail" ] ++ [ ./disko.nix ]; - # FIXME why is this needed? - nixpkgs.config.permittedInsecurePackages = ["openssl-1.1.1w"]; # boot.kernelPackages = pkgs.linuxKernel.packages.linux_6_8; # boot.kernelPackages = pkgs.linuxPackagesFor pkgs.linux_testing; boot.kernelPackages = let @@ -94,6 +97,7 @@ "/var/log" "/var/lib/containers" "/var/lib/postgresql" + "/home/${config.ccr.username}/.ssh" ]; files = [ "/etc/machine-id" diff --git a/modules/cloudflare-dyndns/default.nix b/modules/cloudflare-dyndns/default.nix index 0e6be46..10fe6dc 100644 --- a/modules/cloudflare-dyndns/default.nix +++ b/modules/cloudflare-dyndns/default.nix @@ -16,6 +16,7 @@ "syncv3.matrix.aciceri.dev" "jellyfin.aciceri.dev" "photos.aciceri.dev" + "status.aciceri.dev" ]; apiTokenFile = config.age.secrets.cloudflare-dyndns-api-token.path; }; diff --git a/modules/grafana/default.nix b/modules/grafana/default.nix new file mode 100644 index 0000000..98624b8 --- /dev/null +++ b/modules/grafana/default.nix @@ -0,0 +1,30 @@ +{config, ...}: let + cfg = config.services.grafana; +in { + services.grafana = { + enable = true; + settings = { + server = { + domain = "status.aciceri.dev"; + http_addr = "127.0.0.1"; + http_port = 2342; + root_url = "https://${config.services.grafana.settings.server.domain}:443/"; + }; + security = { + admin_user = "andrea"; + admin_password = "$__file{${config.age.secrets.grafana-password.path}}"; + }; + }; + }; + environment.persistence."/persist".directories = [ + cfg.dataDir + ]; + + services.nginx.virtualHosts = { + "status.aciceri.dev" = { + enableACME = true; + forceSSL = true; + locations."/".proxyPass = "http://127.0.0.1:${builtins.toString cfg.settings.server.http_port}"; + }; + }; +} diff --git a/modules/home-assistant/default.nix b/modules/home-assistant/default.nix index b21f37c..e40f0ed 100644 --- a/modules/home-assistant/default.nix +++ b/modules/home-assistant/default.nix @@ -94,6 +94,7 @@ in { "media_player" "wyoming" "wake_on_lan" + "prometheus" ]; extraPackages = python3Packages: with python3Packages; [ @@ -148,6 +149,9 @@ in { ]; shell_command.turn_off_picard = ''${pkgs.openssh}/bin/ssh -i /var/lib/hass/.ssh/id_ed25519 -o StrictHostKeyChecking=no hass@picard.fleet "exec sudo \$(readlink \$(which systemctl)) poweroff"''; # shell_command.turn_off_picard = ''whoami''; + prometheus = { + namespace = "hass"; + }; }; }; diff --git a/modules/loki/default.nix b/modules/loki/default.nix new file mode 100644 index 0000000..79d9738 --- /dev/null +++ b/modules/loki/default.nix @@ -0,0 +1,67 @@ +{config, ...}: let + cfg = config.services.loki; +in { + services.loki = { + enable = true; + configuration = { + # Basic stuff + auth_enabled = false; + server = { + http_listen_port = 3100; + log_level = "warn"; + }; + common = { + path_prefix = config.services.loki.dataDir; + storage.filesystem = { + chunks_directory = "${cfg.dataDir}/chunks"; + rules_directory = "${cfg.dataDir}/rules"; + }; + replication_factor = 1; + ring.kvstore.store = "inmemory"; + ring.instance_addr = "127.0.0.1"; + }; + + ingester.chunk_encoding = "snappy"; + + limits_config = { + retention_period = "120h"; + ingestion_burst_size_mb = 16; + reject_old_samples = true; + reject_old_samples_max_age = "12h"; + }; + + table_manager = { + retention_deletes_enabled = true; + retention_period = "120h"; + }; + + compactor = { + retention_enabled = true; + compaction_interval = "10m"; + working_directory = "${cfg.dataDir}/compactor"; + delete_request_cancel_period = "10m"; # don't wait 24h before processing the delete_request + retention_delete_delay = "2h"; + retention_delete_worker_count = 150; + delete_request_store = "filesystem"; + }; + + schema_config.configs = [ + { + from = "2020-11-08"; + store = "tsdb"; + object_store = "filesystem"; + schema = "v13"; + index.prefix = "index_"; + index.period = "24h"; + } + ]; + + query_range.cache_results = true; + limits_config.split_queries_by_interval = "24h"; + }; + }; + + environment.persistence."/persist".directories = [ + cfg.dataDir + ]; +} diff --git a/modules/prometheus-exporters/default.nix b/modules/prometheus-exporters/default.nix new file mode 100644 index 0000000..ceaab99 --- /dev/null +++ b/modules/prometheus-exporters/default.nix @@ -0,0 +1,32 @@ +{ + config, + pkgs, + ... +}: { + services.prometheus.exporters.node = { + enable = true; + enabledCollectors = [ + "cpu" + "conntrack" + "diskstats" + "entropy" + "filefd" + "filesystem" + "loadavg" + "mdadm" + "meminfo" + "netdev" + "netstat" + "stat" + "time" + "vmstat" + "systemd" + "logind" + "interrupts" + "ksmd" + "textfile" + "pressure" + ]; + extraFlags = ["--collector.ethtool" "--collector.softirqs" "--collector.tcpstat" "--collector.wifi"]; + }; +} diff --git a/modules/prometheus/default.nix b/modules/prometheus/default.nix new file mode 100644 index 0000000..e77b7d6 --- /dev/null +++ b/modules/prometheus/default.nix @@ -0,0 +1,33 @@ +{config, ...}: let + cfg = config.services.prometheus; +in { + services.prometheus = { + enable = true; + checkConfig = false; # Otherwise it will fail because it cannot access bearer_token_file + webExternalUrl = "https://status.aciceri.dev"; + globalConfig.scrape_interval = "10s"; + scrapeConfigs = [ + { + job_name = "hass"; + metrics_path = "/api/prometheus"; + bearer_token_file = config.age.secrets.home-assistant-token.path; + static_configs = [ + { + targets = ["sisko.fleet:${builtins.toString config.services.home-assistant.config.http.server_port}"]; + } + ]; + } + { + job_name = "node"; + static_configs = [ + { + targets = builtins.map (host: "${host}.fleet:9100") ["sisko" "picard"]; + } + ]; + } + ]; + }; + environment.persistence."/persist".directories = [ + "/var/lib/${cfg.stateDir}" + ]; +} diff --git a/modules/promtail/default.nix b/modules/promtail/default.nix new file mode 100644 index 0000000..74f2eec --- /dev/null +++ b/modules/promtail/default.nix @@ -0,0 +1,54 @@ +{ + pkgs, + lib, + config, + ... +}: let + conf = { + server = { + http_listen_port = 28183; + grpc_listen_port = 0; + }; + clients = [ + { + url = "http://sisko.fleet:${builtins.toString config.services.loki.configuration.server.http_listen_port}/loki/api/v1/push"; + } + ]; + positions = { + filename = "/tmp/positions.yaml"; + }; + scrape_configs = [ + { + job_name = "journal"; + journal = { + max_age = "12h"; + labels = { + job = "systemd-journal"; + host = config.networking.hostName; + }; + }; + relabel_configs = [ + { + source_labels = ["__journal__systemd_unit"]; + target_label = "unit"; + } + ]; + } + ]; + }; + configFile = pkgs.writeTextFile { + name = "promtail.yaml"; + text = lib.generators.toYAML {} conf; + }; +in { + systemd.services.promtail = { + description = "Promtail service for Loki"; + wantedBy = ["multi-user.target"]; + + serviceConfig = { + ExecStart = '' + ${pkgs.grafana-loki}/bin/promtail --config.file ${configFile} + ''; + }; + }; +} diff --git a/modules/promtail/protmail.yaml b/modules/promtail/protmail.yaml new file mode 100644 index 0000000..e69de29 diff --git a/secrets/grafana-password.age b/secrets/grafana-password.age new file mode 100644 index 0000000..b042c07 --- /dev/null +++ b/secrets/grafana-password.age @@ -0,0 +1,29 @@ +age-encryption.org/v1 +-> ssh-rsa /AagBw +TevAEnbonePC8z7uK+0ywO2fOZ2wqerIuF3jS3dGSNJLG3xn+92lHiBbVxc0uza7 +LcetZrcEkqoAqo1CGWnUlvmxm/MYF+bGKsM7wgXoi54XIBXTzcSFiK8Il+htNQsH +l11yN4OfCLlG8YT7Yr/1oZHd/k1sSaDW//3tpM4yftZhjZub/Q5m9LAUYZ3fWbPO +lS7AcDwgYPx0wERlfms9t+n9z62qev3leSuQLvTYwktfgAB7XFEIBI2DHZYIZ7IM +gUVXkBHZbMCrxS08b5IP2R7ajiV4RUz8c36TbZY4WWXId3eUkiV1HERzSDmzxtCH +LqZ+GCQRA33g5kXP/5Lxwknr9J4bdk6sBrFl28nawaUyKz7yCBZBZ7hwrvxXJkjS +zOZ+DLSHKqJXYWD1Juq5QtPhsimTr1FhA9ibm6OtjmtMg+TaJpVwXIR0wWrKXSfs +u+kKUWQMFRB07iA+ho86BRvIkhOt8EsrrwXtAjKXCUVm0D9HPfj6R6tzAMT/5Obb +6SmRmlhiJlNB2eqocaTuZEtiHPVyFNFWlYUqaw4wncogVS+Tc8hEuSuZB6kX9nCt +B473PEsqAl5cjkJOFy6VFIdce0S3gflcRceKd7v6Yzvu+UXZbwCOQC75jidsDoJj +6aBfGDhNtTt5zyvuiktlHXpamOKFd1LJPqMfjzM7ka0 +-> ssh-rsa QHr3/A +J5pKmu/0IK971olnG7abbezq3wC/izp9i1+TRwwRdMIWdJEXIeNDkWbZa8IzOFwM +1Dz+g4PiIJf1Rmfij+8fXodoTIkh0oF3Nr3bx+3IkGmUfV56SRlLXZQBJsT1qQQ6 +ejPhJwvtcOZbbRNECkLeaRErAS6rfNWXc0dn6q9WzBOG8pIXUgFjvP3ak7LpCBz9 +yuJvFF1uExydOf4xM9B17ar72qEdMksWSiCsld8wpAPyxkMeaJpDSXc50sYFt2P9 +tqT8LGS/cHwhlKMzywbYRClp6tXmV5lit+MEucodOQLgFVk/tOySOPeMfjgud++F +yWcYGVZxuine00trnSwuUHTJVvRWJ7xUUdX1Gi/ZPb6SeJaIcWB/VA0e3OvST5J3 +0Zpma/ZqD61ivL6yaj49xiz+sT74tHN8+duPcbiaHMb3DkmjNmptI5x1fJx/k7Dp +WC4Sy4s86tSbrebRrJU3oDGEaXPeJS40QDRhhNTvhOPOOR6K724IWAAFABiHVWOd +o4lXaL3wUaLrgbKIX8f7gwKsGjziMW43HicpnaLOH30OeU4mDtRPRVEboJ5kbsFj +uup5YILnAuhtVjrt+vL0hVbQf0Ll2678jneuu9p816nYj1W58kG6jyGd5n+8jPPi +4g/COiYemaD/qnOvNc51E4vKieV99reaAwZtFV2HwQM +-> ssh-ed25519 +vdRnA yYxNN5g4AFwd+KobTSE6f+ROdXqwBRl9dmq6ZpilmA8 +oEKqsUekQMziv74yx5Y9M5MYy85LoFMFYM5rwUgdcSI +--- sKSqHbosmsAkMN3OUyVWcKMsqAmKkn9fcAi5kdNqDWY + 9WVrn&ю㢹_|Q[CWYذ \ No newline at end of file diff --git a/secrets/home-assistant-token.age b/secrets/home-assistant-token.age new file mode 100644 index 0000000..00542aa --- /dev/null +++ b/secrets/home-assistant-token.age @@ -0,0 +1,29 @@ +age-encryption.org/v1 +-> ssh-rsa /AagBw +Q2vgJ5hIP92ny8yk2gih/ZbmUpz+CdGMeQnX2ekORZAkWSuCQvGnBM9gAvRyhoa2 +2pmPOjP72HaL8fapcdZlcKHZ7IiQuT+3VWekQmIrrMSlSIwVnvasnOBInxA9f91k +hPR4Np6szQJjMLY7jsgwC0FrrUbgkZIVJp+y+zW+Vk09jdVb84vnBX0QFu/T01Qe +B0GfAmyZnWnxaKkNyNZb3afd+dpWZiZ79jnA4qOkjfXhhmiW2Ng23XdkHfjS8ekN +UptlWH8zbBwhzcFCGDkLEMs6/IewozqvzyS4eqmDfwj8saO78ue2R5pE2skNwq/q +EOneH592KqEIWNFgQPS6P4gjmyWtMnJsWm5SvEcg6mDaE1e6acJ7kb/kYI5zyK6y +PF7lzqsoge/+ptvbQxTwlvhhJIGob3Wqf2/soep+o6C4Vh87Wt2zhHmKR7Mt4Nrl +IIs94GU9SDTz1zDOjaBW/msPDagskVpQnu7z3p9iTnBKdxs4WEpugbPZTUVioChA +c3T8PxLy4pzhm88Rz1KNK9h++uTCPIooGOHVQj+WQpUf+ifWEWiwYEdeTbeutjgF +jz3Ntl9YOzm/w1JCzOVdOge7dvfx0J6qAFbf4OkcLhf8bv2ljSL429NH1lp3DCHY +qwN4wlKpOMGThw3pS2SVd6GqINwehrbS4OVobE/kVH8 +-> ssh-rsa QHr3/A +OjdbkVy7w5q3kxFm/4uMbjuIMyVuLSqSWQDvfE1T3vEwkIRJ1w8DOIwahO1qP6CL +oZOH9A5xnS+UcJOSdTqiN4hHC03uuxx1unh/CHPm6zsSksCDHkLvVVhHMaVINvQz +YtV/bek9AWdgT6zMke0pv+zzuCqFGLT7Og1k+aCHtECkF3mB6Etm2P7knggJ2BX3 +L9YzsxSO4jj0PBFGX6nHR71dfq2bctik+mKW8LjS1cQ6plOdEsNHUR7s0bwoslrA +KdD6WOHoEOlxfTLiJmNB0A5pZb+iXJOP+ygrpC6WfJHU8nEWZzglNaVqrv14pieH +uez3nji2ZRsfkeXZI4vQJJ8EQ4LJtNhqki9+AcDYxX8pPUQs3e77ytcMYUMkhZmf +p8rC8eXPP69vS+Ia1xyL2nGqPmggZh7iT1VKOC8kXcHX0UB9WZXcJqPeDtQUO6l9 +cbGFSF9GkWfuVya7tl7rnRQVQs0Ko6XjOAFiOF8WA0YFNACV/2wVawH4rJ6Km48z +Gv+65Zk3yCXP231saE/Ztv3W43XLiJVDuw2RlUFXpJarGqAAZBhSC4qtDAgzHYLU +CxPrRtoIzOMv4iTzQmjJQFpArOBXU0yWZkaVwn57w6jEzk9NyqTZ02Oxb7DwK528 +F/fQOyw1b3GYJY7igv8+KbB+Bup9QQuvHxuxpRaqnek +-> ssh-ed25519 +vdRnA 2bZe+2cbP6T+Aa1g4lWhnOLkJdT7YqfCxTLKZ6wOKhw +i0+UOKIioQz01GfATEmNZVdGeIM2QRIiaUyRdqTgXCM +--- +1qA7qnzAo1u6/yQytQoq7MsZ7owcIa5uAqdg8UQ3tY +q|Ti'ګ^%;^4ǁ‚}+%ϡ ~آE>р0%gEMg.FPWǭ \$Y;2^;LiXM@%\Vࢼs$sXԬ̢|尹\Jܾ3!NC)ƿrQƟAQO0 ã( \ No newline at end of file diff --git a/secrets/secrets.nix b/secrets/secrets.nix index 0e092b5..8f3c4ef 100644 --- a/secrets/secrets.nix +++ b/secrets/secrets.nix @@ -17,10 +17,12 @@ in "aws-credentials.age".publicKeys = [ccr-ssh ccr-gpg picard sisko]; "nextcloud-admin-pass.age".publicKeys = [ccr-ssh ccr-gpg sisko]; "home-planimetry.age".publicKeys = [ccr-ssh ccr-gpg sisko]; + "home-assistant-token.age".publicKeys = [ccr-ssh ccr-gpg sisko]; "chatgpt-token.age".publicKeys = [ccr-ssh ccr-gpg kirk mothership picard deltaflyer]; "cloudflare-dyndns-api-token.age".publicKeys = [ccr-ssh ccr-gpg sisko]; "restic-hetzner-password.age".publicKeys = [ccr-ssh ccr-gpg picard sisko kirk]; "hass-ssh-key.age".publicKeys = [ccr-ssh ccr-gpg sisko]; + "grafana-password.age".publicKeys = [ccr-ssh ccr-gpg sisko]; "matrix-registration-shared-secret.age".publicKeys = [ccr-ssh ccr-gpg sisko]; "matrix-sliding-sync-secret.age".publicKeys = [ccr-ssh ccr-gpg sisko]; "forgejo-runners-token.age".publicKeys = [ccr-ssh ccr-gpg picard]; From a9697956e4fa4fdfd3cfef5b2a05baef62e47fb0 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 25 Jul 2024 16:41:38 +0200 Subject: [PATCH 014/492] Helix nixd LSP --- hmModules/helix/default.nix | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/hmModules/helix/default.nix b/hmModules/helix/default.nix index 89f0e01..a593e7d 100644 --- a/hmModules/helix/default.nix +++ b/hmModules/helix/default.nix @@ -13,5 +13,19 @@ true-color = true; # to make colors coherent when in ssh }; }; + languages = { + language = [ + { + name = "nix"; + language-servers = ["nixd"]; + } + ]; + language-servers = [ + { + name = "nixd"; + command = "nixd"; + } + ]; + }; }; } From ff789db499468e0b5a6aa158592c10449e4d00fc Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 25 Jul 2024 16:42:39 +0200 Subject: [PATCH 015/492] `garmin-collector` --- hosts/default.nix | 1 + modules/garmin-collector/default.nix | 46 ++++++++++ packages/garmin-collector/default.nix | 12 +++ packages/garmin-collector/garmin-collector.py | 82 ++++++++++++++++++ secrets/garmin-collector-environment.age | Bin 0 -> 1713 bytes secrets/secrets.nix | 1 + 6 files changed, 142 insertions(+) create mode 100644 modules/garmin-collector/default.nix create mode 100644 packages/garmin-collector/default.nix create mode 100644 packages/garmin-collector/garmin-collector.py create mode 100644 secrets/garmin-collector-environment.age diff --git a/hosts/default.nix b/hosts/default.nix index 27ff71f..16a5f4f 100644 --- a/hosts/default.nix +++ b/hosts/default.nix @@ -182,6 +182,7 @@ # "matrix-registration-shared-secret".owner = "matrix-synapse"; # "matrix-sliding-sync-secret".owner = "matrix-synapse"; "autistici-password".owner = "forgejo"; + "garmin-collector-environment".owner = "garmin-collector"; }; }; }; diff --git a/modules/garmin-collector/default.nix b/modules/garmin-collector/default.nix new file mode 100644 index 0000000..b4ac0e1 --- /dev/null +++ b/modules/garmin-collector/default.nix @@ -0,0 +1,46 @@ +{ + pkgs, + lib, + fleetFlake, + config, + ... +}: { + users.users.garmin-collector = { + isSystemUser = true; + group = "garmin-collector"; + extraGroups = ["garmin-collector"]; + home = "/var/lib/garmin-collector"; + }; + + users.groups.garmin-collector = {}; + + systemd.services.garmin-collector = { + description = "Garmin collector pushing to Prometheus Pushgateway"; + wantedBy = ["multi-user.target"]; + environment = { + PUSHGATEWAY_ADDRESS = config.services.prometheus.pushgateway.web.listen-address; + }; + serviceConfig = { + Group = "garmin-collector"; + User = "garmin-collector"; + WorkingDirectory = "/var/lib/garmin-collector"; + ExecStart = '' + ${lib.getExe fleetFlake.packages.${pkgs.system}.garmin-collector} + ''; + EnvironmentFile = config.age.secrets.garmin-collector-environment.path; + }; + }; + + systemd.timers."garmin-collector" = { + wantedBy = ["timers.target"]; + timerConfig = { + OnBootSec = "5m"; + OnUnitActiveSec = "4h"; + Unit = "garmin-collector.service"; + }; + }; + + environment.persistence."/persist".directories = [ + "/var/lib/garmin-collector" + ]; +} diff --git a/packages/garmin-collector/default.nix b/packages/garmin-collector/default.nix new file mode 100644 index 0000000..2e19330 --- /dev/null +++ b/packages/garmin-collector/default.nix @@ -0,0 +1,12 @@ +{ + writers, + python3Packages, + ... +}: +writers.writePython3Bin "garmin-collector" { + libraries = with python3Packages; [ + prometheus-client + garminconnect + ]; + flakeIgnore = ["E501"]; +} (builtins.readFile ./garmin-collector.py) diff --git a/packages/garmin-collector/garmin-collector.py b/packages/garmin-collector/garmin-collector.py new file mode 100644 index 0000000..f296638 --- /dev/null +++ b/packages/garmin-collector/garmin-collector.py @@ -0,0 +1,82 @@ +# !/usr/bin/env python3 + +import datetime +import os + +from garth.exc import GarthHTTPError + +from garminconnect import ( + Garmin, + GarminConnectAuthenticationError, +) + + +from prometheus_client import CollectorRegistry, push_to_gateway +from prometheus_client.core import GaugeMetricFamily + +email = os.getenv("GARMIN_EMAIL") +password = os.getenv("GARMIN_PASSWORD") +tokenstore = os.getenv("GARMINTOKENS") or "~/.garminconnect" +tokenstore_base64 = os.getenv("GARMINTOKENS_BASE64") or "~/.garminconnect_base64" +gateway_address = os.getenv("PUSHGATEWAY_ADDRESS") + +today = datetime.date.today() + + +def init_api(email=email, password=password): + """Initialize Garmin API with your credentials.""" + + try: + print( + f"Trying to login to Garmin Connect using token data from directory '{tokenstore}'...\n" + ) + + garmin = Garmin() + garmin.login(tokenstore) + except (FileNotFoundError, GarthHTTPError, GarminConnectAuthenticationError): + # Session is expired. You'll need to log in again + print( + "Login tokens not present, login with your Garmin Connect credentials to generate them.\n" + f"They will be stored in '{tokenstore}' for future use.\n" + ) + garmin = Garmin(email=email, password=password, is_cn=False) + garmin.login() + # Save Oauth1 and Oauth2 token files to directory for next login + garmin.garth.dump(tokenstore) + print( + f"Oauth tokens stored in '{tokenstore}' directory for future use. (first method)\n" + ) + # Encode Oauth1 and Oauth2 tokens to base64 string and safe to file for next login (alternative way) + token_base64 = garmin.garth.dumps() + dir_path = os.path.expanduser(tokenstore_base64) + with open(dir_path, "w") as token_file: + token_file.write(token_base64) + print( + f"Oauth tokens encoded as base64 string and saved to '{dir_path}' file for future use. (second method)\n" + ) + + return garmin + + +class GarminCollector: + def __init__(self): + super().__init__() + self.api = init_api() + + def collect(self): + try: + body = self.api.get_daily_weigh_ins(today.isoformat())["totalAverage"] + metric_gauge = GaugeMetricFamily("body_composition", "Body composition and weight", labels=["metric"]) + for k in ["weight", "bmi", "bodyFat", "bodyWater", "boneMass", "muscleMass", "physiqueRating", "visceralFat"]: + metric_gauge.add_metric([k], body[k]) + except Exception as e: + print(f"Something went wrong while fetching body composition data\n{e}") + + yield metric_gauge + + +if __name__ == "__main__": + registry = CollectorRegistry() + registry.register(GarminCollector()) + + push_to_gateway(gateway_address, job='garmin', registry=registry) diff --git a/secrets/garmin-collector-environment.age b/secrets/garmin-collector-environment.age new file mode 100644 index 0000000000000000000000000000000000000000..efc5779ffef174d6bdd9c322235c021118feb077 GIT binary patch literal 1713 zcmYdHPt{G$OD?J`D9Oyv)5|YP*Do{V(zR14F3!*`Do#|;cT7xoD(8wUEGYJJcQi;g z&q&TnPYd=<3o1=XOLj4{G%-&vPj@PfaxSi{CtbdPZ3ips1s*G|l;DkzI^G4(Fhw=gI%3@j-NaQAd8NlbF`D0X)& zG)@XlEhsX`$nkOsGWQ4zN((Uy^f8I@&d&^r;z~&mHFgcIEGc*MF%HagwJ=Y1tMsq( zEeo-9G7m2{F!V{WFs{n-swxZgH*pMbcJW9Lsme{tHK{bKh|Kd(58z7Dx6F2Ot;~;d z4>k+QhzK?f_bAKH%?t3=&kFQ5vNWi0D+*8Y%`&LS%Zo~LDfcUOPm44ONlUFT54J3d zEKcY0ObOO53dk`E_45hND9a1WGtka3F7o!tH*hlx%`OkC@bI;CN_5J}56G(U^vn;7 zjBpA_EpzuV*Vhkp$~VsBDl$nl3kyi{D=IYc%c;sUDA6_#b}^~)P75@(D6b5N3^4bI z&^9jeEGkbAGB?ghcJnRpj|vR)(2fWTHpnwAG^Ye8K z%5)41bv7@`HTCp%bSp@643Et6P4+VkaY{6;a7;H0_75%t?3@}W|N(=U>u!wNdH%=}o%JV2R40I`W_RtS5 zcB{%V3UI9|F$xK)sEV-U()LabGLIm}%w1_mZEG;s$aC33?Dh`M&$u@BH4e>Mz zH}eX$u=I;WPRD^BMaKG$Tp2Ebg}Eh8VTHktC4p`(Ny*uX5fvt(ZhlS${)X<^X~vdW zMuCQACIyD(Ua96eJ|#VKW_IR+->LC)bN8C+4`0U?$K*%=w;+KI_NhUxzLMj=sd z7EVrk=jXKLBTGiuHMNOIo`QR zC1yEX+UAb=;n`k^MNZj;&XJBG=>;j}d1;Q`QI2k&;ptW3-iZM|N$D0_ zUSTO*mgfGUM%q3p1}3S7+1Y6&kwylAsS)Nur3GanMV8@_ex-iyVa_?J-UX!=9;smk zMlPoAzTw7BrhbJ{WyWS9T;@I**(DVL<;f{d1wK`-<*AOIKDlP)W@d>c0nW}AMF9oQ zW`TtP`5`Hpe!<1=E`CvFDXGCu;d#!^#kt<;j$GzW;UQ((X%&%C&S_OniNRr|!Kq$} z;cmgjo*5bbE=e9?mX6K_E+vjW{)H*}IbJ2@7F9{10WKjq1{K+8xE5Rq7a!V`!8XU{H{lV^-)JrtJ}6Zjfx5pP3orsGV9-5R%O0Z0_!y6YT68 zndBRpS?XV0WL}w85T240X;$TypPW(^XdY1#7@iqg6qwAVtE;O}WME;MSsWGQr(IH% z8(t8QZe*UBm1IzvRGRMM66$D>m{=ZSo|c;FpW(>0e5v3014%4%uD`mvt=8hhDT5P6 z|0kPA{AX=hUlaaL`$uK<{lcj|Z}}V_7R^_i^?!Fx`-TLKoq`+oPI2_p$xtqie0Cz; vB6wbob(v=XgZ^AeE#(J6#u*RX*JZP>{B7ueexh4h_;iJ**B5jYhq40z!s9|D literal 0 HcmV?d00001 diff --git a/secrets/secrets.nix b/secrets/secrets.nix index 8f3c4ef..fb8e4df 100644 --- a/secrets/secrets.nix +++ b/secrets/secrets.nix @@ -27,6 +27,7 @@ in "matrix-sliding-sync-secret.age".publicKeys = [ccr-ssh ccr-gpg sisko]; "forgejo-runners-token.age".publicKeys = [ccr-ssh ccr-gpg picard]; "forgejo-nix-access-tokens.age".publicKeys = [ccr-ssh ccr-gpg picard]; + "garmin-collector-environment.age".publicKeys = [ccr-ssh ccr-gpg sisko]; # WireGuard "picard-wireguard-private-key.age".publicKeys = [ccr-ssh ccr-gpg picard]; From 865274a2df843031dc7df6791c26c48538e59849 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 25 Jul 2024 16:43:11 +0200 Subject: [PATCH 016/492] Disable `photos.aciceri.dev` DNS --- modules/rock5b-proxy/default.nix | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/modules/rock5b-proxy/default.nix b/modules/rock5b-proxy/default.nix index 1906a71..6e51923 100644 --- a/modules/rock5b-proxy/default.nix +++ b/modules/rock5b-proxy/default.nix @@ -35,17 +35,17 @@ proxyPass = "http://localhost:${builtins.toString config.services.invidious.port}"; }; }; - "photos.aciceri.dev" = { - extraConfig = '' - client_max_body_size 50000M; - ''; - forceSSL = true; - enableACME = true; - locations."/" = { - proxyPass = "http://localhost:2283"; - proxyWebsockets = true; - }; - }; + # "photos.aciceri.dev" = { + # extraConfig = '' + # client_max_body_size 50000M; + # ''; + # forceSSL = true; + # enableACME = true; + # locations."/" = { + # proxyPass = "http://localhost:2283"; + # proxyWebsockets = true; + # }; + # }; # "jellyfin.aciceri.dev" = { # forceSSL = true; From 71a3654e9a14db142fdc17f5105c44abe0a27732 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 25 Jul 2024 16:43:58 +0200 Subject: [PATCH 017/492] Restic for `sisko` --- hosts/sisko/default.nix | 2 + modules/restic/default.nix | 60 ++++++++---------- ...hetzner-storage-box-sisko-ssh-password.age | Bin 0 -> 1653 bytes secrets/secrets.nix | 2 + secrets/sisko-restic-password.age | 30 +++++++++ 5 files changed, 59 insertions(+), 35 deletions(-) create mode 100644 secrets/hetzner-storage-box-sisko-ssh-password.age create mode 100644 secrets/sisko-restic-password.age diff --git a/hosts/sisko/default.nix b/hosts/sisko/default.nix index 8aba34a..8baf83a 100644 --- a/hosts/sisko/default.nix +++ b/hosts/sisko/default.nix @@ -34,6 +34,8 @@ "prometheus-exporters" "loki" "promtail" + "restic" + # "immich" ] ++ [ ./disko.nix diff --git a/modules/restic/default.nix b/modules/restic/default.nix index 4496e61..52da5cf 100644 --- a/modules/restic/default.nix +++ b/modules/restic/default.nix @@ -3,43 +3,33 @@ pkgs, lib, ... -}: { - options.backup = { - paths = lib.mkOption { - type = lib.types.listOf lib.types.path; - default = []; +}: let + user = "u382036-sub1"; + host = "u382036.your-storagebox.de"; + port = "23"; +in { + age.secrets = { + HETZNER_STORAGE_BOX_SISKO_SSH_PASSWORD = { + file = ../../secrets/hetzner-storage-box-sisko-ssh-password.age; + owner = "root"; }; - }; - config.services.restic = { - backups = { - hetzner = { - paths = config.backup.paths; - passwordFile = config.age.secrets.restic-hetzner-password.path; - extraOptions = [ - # Use the host ssh key, for authorizing new hosts: - # cat /etc/ssh/ssh_host_ed25519_key.pub | ssh -p23 u382036-sub1@u382036-sub1.your-storagebox.de install-ssh-key - "sftp.command='ssh -p23 u382036-sub1@u382036-sub1.your-storagebox.de -i /etc/ssh/ssh_host_ed25519_key -s sftp'" - ]; - repository = "sftp://u382036-sub1@u382036-sub1.your-storagebox.de:23/"; - initialize = true; - timerConfig.OnCalendar = "daily"; - timerConfig.RandomizedDelaySec = "1h"; - }; + SISKO_RESTIC_PASSWORD = { + file = ../../secrets/sisko-restic-password.age; + owner = "root"; }; }; - config.environment.systemPackages = builtins.map (path: - pkgs.writeShellApplication { - name = "restic-restore-${builtins.replaceStrings ["/"] ["-"] path}"; - runtimeInputs = with pkgs; [restic]; - text = '' - restic -r ${config.services.restic.backups.hetzner.repository} \ - ${lib.concatMapStringsSep ''\'' (option: "-o ${option}") config.services.restic.backups.hetzner.extraOptions} \ - --password-file ${config.services.restic.backups.hetzner.passwordFile} \ - restore latest \ - --path "${path}"\ - --target "$1" - ''; - }) - config.services.restic.backups.hetzner.paths; + services.openssh.knownHosts."${host}".publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIICf9svRenC/PLKIL9nk6K/pxQgoiFC41wTNvoIncOxs"; + + services.restic.backups.sisko = { + paths = ["/persist"]; + passwordFile = config.age.secrets.SISKO_RESTIC_PASSWORD.path; + extraOptions = [ + "sftp.command='${lib.getExe pkgs.sshpass} -f ${config.age.secrets.HETZNER_STORAGE_BOX_SISKO_SSH_PASSWORD.path} ssh -p${port} ${user}@${host} -s sftp'" + ]; + repository = "sftp://${user}@${host}:${port}/"; + initialize = true; + timerConfig.OnCalendar = "daily"; + timerConfig.RandomizedDelaySec = "1h"; + }; } diff --git a/secrets/hetzner-storage-box-sisko-ssh-password.age b/secrets/hetzner-storage-box-sisko-ssh-password.age new file mode 100644 index 0000000000000000000000000000000000000000..d2e9b5acf5f88f348d9ca9895dfbe1ef5e530b04 GIT binary patch literal 1653 zcmYdHPt{G$OD?J`D9Oyv)5|YP*Do{V(zR14F3!*`Do#|;cT7xoD(7;|&CktBc8YWh zH8*ezil|EWOf?8}EHpCpE3!y)_VF(FtjO?iv@oem@iI(IiYoC7)i$g2^bWO*@To|O zs>tVZb&WDj%qw>DkIc_4b##u5v@FT-H+Krn@DJ6u$a4?!3rkKncXRj6H^>Qf@h=b0 zvIz6BbaC-<4h%AKGB<3(Gb) zEOm@BNq0{RayQBdstn4=N=~t?NK3IW^bacV<;qPdj|?}m$VxWL^vv{0EUok{NzG1A zvq;I;FEh{g35+NV4XE(W^C=DYFU}6Cbh5~F%kwC4D)BM%u*fy^apZCi3U|-VN%yoU zv?$CBEX@jciE9|%&f{POLq43%l7thH8(5?4KGV8<;pa5bFcIYE(p$baZfSvPEIYY3`ndB zjPMGGFb_62a`W_ebc+ZKj3`euF^C9u&#VgZb~a7%iz>s8$HO{TbvGnq+C@wV3DNHUeOEZf!2{5%R)((s;bqWkIPfy9rbIbKF z^wIY#3odld%yRU|D6I13%61G*c1cZgGc_*Hb@C5)2`+asG)xT(HV^SNO$+f0cZqT} z2?+_wbk0miPRD^BMaKG$Tp+yzJE-nTUZs{pm`c8or zPR8M7Mdf}`z7ZisiJ&+yF^$M@&$l#kOmg!rcT3LC(=QH8D%7qp<%;x6Oe-`pa`kjH z4a&|*OgHsTGxTus57RELGRz4KsIW9Qt1?Wn%ucHC%k}p&3n&b)@bfGVOE1s&%MY(g z&E(4WF*C_4D#{2gb@C|5^YSfD^UCrK%Ph!nk8-!jFRwJqigJ(4au3L^FiMIr_0Tre z*H6vL4>3yfOwZFUwb19v^b7U$DfLf|3iJ$dceM!A_cS&&)z;T9Pjn8}HcG5A&olIm zDD_RtD@e=mH%kn6bV;|&N%PDpNzQYMC^vTGaw)9}OfxOXGSJRWtqk?dNH#Vu@d@^h z46sZK@+);tD|59l_V&+nb4yCAGWE^~EsqHF&B^hMGB5BhGe`<{?FAL0dDJe=xHPSA1E;V;fG0iDV)h{+K_lO8~a!fL| z@UL)*a*c5Fic0p)&&cDlbkcTlG%mET2un1J^fgMVi1I28DXH=ZO1G>sF*Em!aw$j( zD)Y(8Ehq_zN;V76ch)a2FmTQC_N?+L@^due$_vk{EJ=(sclSyT%8K$yt_*dn3Un?h zODb@7D+>1ua`p2K3HLUzObV{bDljikNvp^+PYo)ns&e$s@N)?Z;R^C{Ey@flFYvH* zcXA8N&nx#yi7L!1@h=F^urx^Y$@9t&3rg{J^RCLWfTiQq6eCkpLrVqivXr1aM}-jo zQt#x%$e_$j$CAucKg%E|ugZ|faMx^)+z`_cr-;PhFlRsg%BqaONG`L0ycF;3eAmEm z{Zz;FkO04cY%l+)FzvJy=g6QmugK8MRL|mcXSaaLY%X10U4=|b1ATpe3nM@Mys)fN zZ ssh-rsa /AagBw +TKW/pV8ANvSWay5wTsFhV0CDSqn/wZAzNRP0WgRzBJbsrFP2/YYkhRHFtwkMjeXm +qEJPeXYdpgT6+FXq3nfhTaK/AbeebBRWO7dgGfKBosJ6Mc+PMhephrQ+oH6/zbG5 +l5QclAZ4NOfkD3f/nnqog13nKTijHjHcTnEWYZZz8RowaUEkEjo4Xbgw1MUbC8yJ +khyqZOTVFnfKgcSW5rlnsbrZKkmwYYY8mej27I9AFeSLgE0DOF3OWxrNxuPdxICp +h/kfQ2lPw75TWX5vj8WKOOxjAvheIiJDAAdfOoroK1BqKAUmpC6HjpC3cJZhrMmE +Xtob+esC39M8QBO1vUB639/I0AKAMbn3rE617StUr2QyyyNahnOOOPaZplCk/uM8 +Sde8d+VwTuvJXosuxi7Z+lQbeyCg7WmRigRoSiL6+9HcdMtDMDRjtloVq1o+iHXc +5A99Eeq0D/rBVSDmXKkVpcwLfruWL1v061+K7PPnjKa2CjnoEjAZDfqeQI+OBLZP +zqJ1CcQUnujYEpyhy4YV1ZpLZYOt48osEhUvG/eFnfymeDeAVAts725uzboN3uX8 +ETM5k0cW1ElSTL0BltRn8hRs8BSVXtKIucRXERomIwK+45ux8DHFS2NQlEHs2x1g +d4coPbCgMt7nBPYGnAUOYaWyw6dcaCAPNoVVIyUP1ps +-> ssh-rsa QHr3/A +GM2npxcLnNk81fSJUW9tcDnaKcx42cuxaObl8oCB43GIFm7K5L89FHj4Ww9RUJy0 +V41RQ802OBgudJqOI63DcW7mZ905fqLTnKZ75EJJSGgqjY0EcCOc2Oy8kV/BidWP +scmDbd+mQ1INuZBr9GBkD1brESh4vHtByPD6wkFKXlVkVTL49EQt8uBw8/0+uF0B +5a1aRQ09IkVPjluDMy2fc4VpgvkdnuXsMRD8vPk6gGzVlii72htGwYYWtIP9CgpY +trp85RxVGuqUTULFBOGXcc7YjfE1DWkPoeokCL8m7aVzdasZl+cl/Ick6rJueuQI +5ESvYKqRTfZ+oA8MapNtAZ7Nl8CT8VJoRyI6IQvPynRXCBK9D6gEAWc5l6Kv15Fl +73c8Q5I2oIaLOfeMYcZ1bL5Zvspa6Rsb5BtvOuOkacxx7GjMar1G2tUY4W3vFqn9 +yf8/Uc61LU6BYVvFh6DI6TwHp6xp/DrWZYhXCvNfirMn1NSw+8q0EEcIr2sUdkbx +gf2onMjtRP/Mki0oqkMTXnIsCzL/Y7D13GdouVqz0Ttbg/BEa8RnSaJxDIwQ1Wlz +VCC+oK/jTr+0pfP+3iR75WuGC0ce+muEN/L29H6wFk4N2oar/r0BYZZ6BtV9I9kS +8xnIxKvrcJ4O5dYy4f/lMeTRlPp6pz1jjtb6AVcNzHE +-> ssh-ed25519 +vdRnA qQe9nesjyr3dCtSa7xfgsw1RjKx5UGTzg+/XrcDzl0A +912JZmwcsvsg2D8G9LakTfOa70hCkk4DALZP1fKcw2A +--- GzPDMAdvn0Gvp+gqVd/1EKvMPtqPhIjpVYRDAcvhwaU +Ș x +ydOSa)avGჳMX %O=`~$  \ No newline at end of file From 2871c291bff1bc91eb8f3b904681848ca5804196 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 25 Jul 2024 16:44:14 +0200 Subject: [PATCH 018/492] Promtail --- modules/promtail/default.nix | 2 +- modules/promtail/protmail.yaml | 0 2 files changed, 1 insertion(+), 1 deletion(-) delete mode 100644 modules/promtail/protmail.yaml diff --git a/modules/promtail/default.nix b/modules/promtail/default.nix index 74f2eec..f6d7621 100644 --- a/modules/promtail/default.nix +++ b/modules/promtail/default.nix @@ -11,7 +11,7 @@ }; clients = [ { - url = "http://sisko.fleet:${builtins.toString config.services.loki.configuration.server.http_listen_port}/loki/api/v1/push"; + url = "http://sisko.fleet:${builtins.toString config.services.loki.configuration.server.http_listen_port or 3100}/loki/api/v1/push"; } ]; positions = { diff --git a/modules/promtail/protmail.yaml b/modules/promtail/protmail.yaml deleted file mode 100644 index e69de29..0000000 From a39a314e4c3801fc5e34ee7e39ce49224391c4f7 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 25 Jul 2024 16:44:28 +0200 Subject: [PATCH 019/492] Prometheus pushgateway --- modules/prometheus-exporters/default.nix | 76 ++++++++++++++++-------- modules/prometheus/default.nix | 62 +++++++++++++++++++ 2 files changed, 112 insertions(+), 26 deletions(-) diff --git a/modules/prometheus-exporters/default.nix b/modules/prometheus-exporters/default.nix index ceaab99..a56d1cb 100644 --- a/modules/prometheus-exporters/default.nix +++ b/modules/prometheus-exporters/default.nix @@ -1,32 +1,56 @@ { config, pkgs, + lib, ... -}: { - services.prometheus.exporters.node = { - enable = true; - enabledCollectors = [ - "cpu" - "conntrack" - "diskstats" - "entropy" - "filefd" - "filesystem" - "loadavg" - "mdadm" - "meminfo" - "netdev" - "netstat" - "stat" - "time" - "vmstat" - "systemd" - "logind" - "interrupts" - "ksmd" - "textfile" - "pressure" - ]; - extraFlags = ["--collector.ethtool" "--collector.softirqs" "--collector.tcpstat" "--collector.wifi"]; +}: let + hostname = config.networking.hostName; + mkFor = hosts: lib.mkIf (builtins.elem hostname hosts); +in { + services.prometheus.exporters = { + node = mkFor ["sisko" "picard"] { + enable = true; + enabledCollectors = [ + "cpu" + "conntrack" + "diskstats" + "entropy" + "filefd" + "filesystem" + "loadavg" + "mdadm" + "meminfo" + "netdev" + "netstat" + "stat" + "time" + "vmstat" + "systemd" + "logind" + "interrupts" + "ksmd" + "textfile" + "pressure" + ]; + extraFlags = ["--collector.ethtool" "--collector.softirqs" "--collector.tcpstat" "--collector.wifi"]; + }; + wireguard = mkFor ["sisko" "picard"] { + enable = true; + }; + zfs = mkFor ["picard"] { + enable = true; + }; + # restic = mkFor ["sisko"] { + # enable = true; + # }; + postgres = mkFor ["sisko"] { + enable = true; + }; + nginx = mkFor ["sisko"] { + enable = true; + }; + smartctl = mkFor ["sisko"] { + enable = true; + }; }; } diff --git a/modules/prometheus/default.nix b/modules/prometheus/default.nix index e77b7d6..c35b04e 100644 --- a/modules/prometheus/default.nix +++ b/modules/prometheus/default.nix @@ -3,6 +3,12 @@ in { services.prometheus = { enable = true; + pushgateway = { + enable = true; + web = { + listen-address = "sisko.fleet:9094"; + }; + }; checkConfig = false; # Otherwise it will fail because it cannot access bearer_token_file webExternalUrl = "https://status.aciceri.dev"; globalConfig.scrape_interval = "10s"; @@ -17,6 +23,14 @@ in { } ]; } + { + job_name = "pushgateway"; + static_configs = [ + { + targets = [cfg.pushgateway.web.listen-address]; + } + ]; + } { job_name = "node"; static_configs = [ @@ -25,6 +39,54 @@ in { } ]; } + { + job_name = "wireguard"; + static_configs = [ + { + targets = builtins.map (host: "${host}.fleet:9586") ["picard"]; + } + ]; + } + { + job_name = "zfs"; + static_configs = [ + { + targets = builtins.map (host: "${host}.fleet:9134") ["picard"]; + } + ]; + } + { + job_name = "restic"; + static_configs = [ + { + targets = builtins.map (host: "${host}.fleet:9753") ["sisko"]; + } + ]; + } + { + job_name = "postgres"; + static_configs = [ + { + targets = builtins.map (host: "${host}.fleet:9187") ["sisko"]; + } + ]; + } + { + job_name = "nginx"; + static_configs = [ + { + targets = builtins.map (host: "${host}.fleet:9117") ["sisko"]; + } + ]; + } + { + job_name = "smartctl"; + static_configs = [ + { + targets = builtins.map (host: "${host}.fleet:9633") ["sisko"]; + } + ]; + } ]; }; environment.persistence."/persist".directories = [ From dbb15d07ed8e6c76e7c378523ad3c09e91da78ec Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 25 Jul 2024 16:44:37 +0200 Subject: [PATCH 020/492] Enable promtail on `picard` --- hosts/picard/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/hosts/picard/default.nix b/hosts/picard/default.nix index 97be64f..5337448 100644 --- a/hosts/picard/default.nix +++ b/hosts/picard/default.nix @@ -42,6 +42,7 @@ "adb" "guix" "prometheus-exporters" + "promtail" ] ++ [ ./disko.nix From 797f8d032dcaa429d2856cddbe0213df6473581b Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 25 Jul 2024 16:44:56 +0200 Subject: [PATCH 021/492] Enable `garmin-collector` on `sisko` --- hosts/sisko/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/hosts/sisko/default.nix b/hosts/sisko/default.nix index 8baf83a..f86b986 100644 --- a/hosts/sisko/default.nix +++ b/hosts/sisko/default.nix @@ -34,6 +34,7 @@ "prometheus-exporters" "loki" "promtail" + "garmin-collector" "restic" # "immich" ] From ffd576cf998af93c716abda4f3c4ebb01602cfc7 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Wed, 7 Aug 2024 15:30:26 +0200 Subject: [PATCH 022/492] New (old) disk --- hosts/sisko/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hosts/sisko/default.nix b/hosts/sisko/default.nix index f86b986..a4fead7 100644 --- a/hosts/sisko/default.nix +++ b/hosts/sisko/default.nix @@ -120,7 +120,7 @@ boot.tmp.cleanOnBoot = true; fileSystems."/mnt/hd" = { - device = "/dev/disk/by-id/ata-WDC_WD10EADS-22M2B0_WD-WCAV52709550-part1"; + device = "/dev/disk/by-id/ata-WDC_WD5000AAKX-08U6AA0_WD-WCC2E5TR40FU-part1"; fsType = "ext4"; options = ["nofail"]; }; From fc1e93f73113c78f1a83f98690d10eb8959c8d59 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Wed, 7 Aug 2024 15:31:05 +0200 Subject: [PATCH 023/492] Grafana can send emails --- hosts/default.nix | 6 +++++- modules/grafana/default.nix | 7 +++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/hosts/default.nix b/hosts/default.nix index 16a5f4f..198b282 100644 --- a/hosts/default.nix +++ b/hosts/default.nix @@ -181,7 +181,11 @@ "hass-ssh-key".owner = "hass"; # "matrix-registration-shared-secret".owner = "matrix-synapse"; # "matrix-sliding-sync-secret".owner = "matrix-synapse"; - "autistici-password".owner = "forgejo"; + "autistici-password" = { + # FIXME terrible, should create a third ad-hoc group + owner = "grafana"; + group = "forgejo"; + }; "garmin-collector-environment".owner = "garmin-collector"; }; }; diff --git a/modules/grafana/default.nix b/modules/grafana/default.nix index 98624b8..33d93f7 100644 --- a/modules/grafana/default.nix +++ b/modules/grafana/default.nix @@ -14,6 +14,13 @@ in { admin_user = "andrea"; admin_password = "$__file{${config.age.secrets.grafana-password.path}}"; }; + smtp = { + enabled = true; + host = "smtp.autistici.org:587"; + user = "andrea.ciceri@autistici.org"; + from_address = "andrea.ciceri@autistici.org"; + password = "$__file{${config.age.secrets.autistici-password.path}}"; + }; }; }; environment.persistence."/persist".directories = [ From a03283d0d2c2bf19e34a0504028075cf6afbc5c9 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Wed, 7 Aug 2024 15:31:20 +0200 Subject: [PATCH 024/492] Enable `smartctl` prometheus exporter for `picard` --- modules/prometheus-exporters/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/prometheus-exporters/default.nix b/modules/prometheus-exporters/default.nix index a56d1cb..7a55821 100644 --- a/modules/prometheus-exporters/default.nix +++ b/modules/prometheus-exporters/default.nix @@ -49,7 +49,7 @@ in { nginx = mkFor ["sisko"] { enable = true; }; - smartctl = mkFor ["sisko"] { + smartctl = mkFor ["sisko" "picard"] { enable = true; }; }; From 0ab8805aa5ce1b4a43644a83b8e86babb0a2ac74 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Wed, 7 Aug 2024 15:31:57 +0200 Subject: [PATCH 025/492] Home assistant's `garminconnect` --- modules/home-assistant/default.nix | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/modules/home-assistant/default.nix b/modules/home-assistant/default.nix index e40f0ed..1ffe137 100644 --- a/modules/home-assistant/default.nix +++ b/modules/home-assistant/default.nix @@ -12,8 +12,8 @@ pun_sensor = pkgs.fetchFromGitHub { owner = "virtualdj"; repo = "pun_sensor"; - rev = "19f270b353594ab536f9dc42adf31427e7a81562"; - hash = "sha256-3pL+8CXzjmR54Ff9qLhHzC/C+uns0qWEgJFHv+K4MFs="; + rev = "51b216fab5c0d454d66060647c36e81bebfaf059"; + hash = "sha256-bGVJx3bObXdf4AiC6bDvafs53NGS2aufRcTUmXy8nAI="; }; cozy_life = pkgs.fetchFromGitHub { owner = "yangqian"; @@ -21,6 +21,12 @@ rev = "9a40a2fa09b0f74aee0b278e2858f5600b3487a9"; hash = "sha256-i+82EUamV1Fhwhb1vhRqn9aA9dJ0FxSSMD734domyhw="; }; + garmin_connect = pkgs.fetchFromGitHub { + owner = "cyberjunky"; + repo = "home-assistant-garmin_connect"; + rev = "d42edcabc67ba6a7f960e849c8aaec1aabef87c0"; + hash = "sha256-KqbP6TpH9B0/AjtsW5TcWSNgUhND+w8rO6X8fHqtsDI="; + }; tuya-device-sharing-sdk = ps: ps.callPackage ( { @@ -102,6 +108,9 @@ in { holidays beautifulsoup4 (tuya-device-sharing-sdk python3Packages) # remove after https://github.com/NixOS/nixpkgs/pull/294706/ + getmac + garminconnect + tzlocal ]; config = { default_config = {}; @@ -166,7 +175,8 @@ in { systemd.tmpfiles.rules = [ "d ${config.services.home-assistant.configDir}/custom_components 770 hass hass" - "L+ ${config.services.home-assistant.configDir}/custom_components/pun_sensor - - - - ${pun_sensor}/custom_components/pun_sensor" + "C+ ${config.services.home-assistant.configDir}/custom_components/pun_sensor 770 hass hass - ${pun_sensor}/custom_components/pun_sensor" + "C+ ${config.services.home-assistant.configDir}/custom_components/garmin_connect 770 hass hass - ${garmin_connect}/custom_components/garmin_connect" "d ${config.services.home-assistant.configDir}/.ssh 770 hass hass" "C ${config.services.home-assistant.configDir}/.ssh/id_ed25519 700 hass hass - ${config.age.secrets.hass-ssh-key.path}" From 691b35c86069db576926d09b1cdab6f033fdba4f Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 12 Sep 2024 16:37:29 +0200 Subject: [PATCH 026/492] Enable `binfmt` on `kirk` --- hosts/kirk/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/hosts/kirk/default.nix b/hosts/kirk/default.nix index 4565542..cc529d1 100644 --- a/hosts/kirk/default.nix +++ b/hosts/kirk/default.nix @@ -32,6 +32,7 @@ "syncthing" "mount-rock5b" "adb" + "binfmt" ] ++ [ ./disko.nix From 2d3e4844b7ad82804a636cf9b0454e0eaab4102a Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 19 Sep 2024 14:34:37 +0200 Subject: [PATCH 027/492] Start refactoring - remove emacs - remove inputs - trying to speed up evaluation - update inputs --- ci/default.nix | 24 - flake.lock | 1044 ++++------------------ flake.nix | 37 +- hmModules/cura/default.nix | 27 +- hmModules/email/default.nix | 178 +++- hmModules/firefox/default.nix | 5 - hmModules/foot/default.nix | 95 +- hmModules/helix/default.nix | 26 +- hmModules/hyprland/default.nix | 216 +++-- hmModules/nix-index/default.nix | 2 +- hmModules/shell/default.nix | 24 +- hmModules/spotify/default.nix | 12 +- hmModules/sway/default.nix | 2 +- hmModules/swayidle/default.nix | 12 - hmModules/tremotesf/default.nix | 21 + hmModules/vscode-server/default.nix | 6 + hmModules/waybar/default.nix | 1 - hmModules/zmkbatx/default.nix | 3 +- hosts/default.nix | 8 +- hosts/deltaflyer/default.nix | 2 - hosts/module.nix | 15 +- hosts/mothership/default.nix | 7 - hosts/picard/default.nix | 20 +- hosts/sisko/default.nix | 11 +- modules/atuin/default.nix | 14 + modules/auto-upgrade/default.nix | 8 +- modules/forgejo-runners/default.nix | 3 +- modules/greetd/default.nix | 9 + modules/home-assistant/default.nix | 45 +- modules/immich/default.nix | 234 +---- modules/nix/default.nix | 21 +- modules/pipewire/default.nix | 6 +- modules/prometheus-exporters/default.nix | 8 +- modules/prometheus/default.nix | 8 +- modules/rock5b-samba/default.nix | 22 +- modules/sunshine/default.nix | 24 +- modules/transmission/default.nix | 4 + packages/default.nix | 3 +- packages/spotify-adblocked/default.nix | 53 ++ 39 files changed, 808 insertions(+), 1452 deletions(-) delete mode 100644 ci/default.nix create mode 100644 hmModules/tremotesf/default.nix create mode 100644 hmModules/vscode-server/default.nix create mode 100644 modules/atuin/default.nix create mode 100644 packages/spotify-adblocked/default.nix diff --git a/ci/default.nix b/ci/default.nix deleted file mode 100644 index 48a1ad1..0000000 --- a/ci/default.nix +++ /dev/null @@ -1,24 +0,0 @@ -{inputs, ...}: { - imports = [ - inputs.hercules-ci-effects.flakeModule - ]; - herculesCI.ciSystems = [ - "x86_64-linux" - "aarch64-linux" - ]; - hercules-ci.flake-update = { - enable = true; - updateBranch = "updated-flake-lock"; - createPullRequest = true; - autoMergeMethod = "rebase"; - baseMerge = { - enable = true; - method = "rebase"; - }; - when = { - minute = 45; - hour = 13; - dayOfWeek = ["Mon" "Tue" "Wed" "Thu" "Fri" "Sat" "Sun"]; - }; - }; -} diff --git a/flake.lock b/flake.lock index 7b0925b..4bbbc41 100644 --- a/flake.lock +++ b/flake.lock @@ -8,11 +8,11 @@ "systems": "systems" }, "locked": { - "lastModified": 1720546205, - "narHash": "sha256-boCXsjYVxDviyzoEyAk624600f3ZBo/DKtUdvMTpbGY=", + "lastModified": 1723293904, + "narHash": "sha256-b+uqzj+Wa6xgMS9aNbX4I+sXeb5biPDi39VgvSFqFvU=", "owner": "ryantm", "repo": "agenix", - "rev": "de96bd907d5fbc3b14fc33ad37d1b9a3cb15edc6", + "rev": "f6291c5935fdc4e0bef208cfc0dcab7e3f7a1c41", "type": "github" }, "original": { @@ -21,60 +21,6 @@ "type": "github" } }, - "arion": { - "inputs": { - "flake-parts": "flake-parts", - "haskell-flake": "haskell-flake", - "hercules-ci-effects": "hercules-ci-effects", - "nixpkgs": "nixpkgs_2" - }, - "locked": { - "lastModified": 1720147808, - "narHash": "sha256-hlWEQGUbIwYb+vnd8egzlW/P++yKu3HjV/rOdOPVank=", - "owner": "hercules-ci", - "repo": "arion", - "rev": "236f9dd82d6ef6a2d9987c7a7df3e75f1bc8b318", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "arion", - "type": "github" - } - }, - "ccrEmacs": { - "inputs": { - "emacs-overlay": "emacs-overlay", - "extra-package-agenix-el": "extra-package-agenix-el", - "extra-package-combobulate": "extra-package-combobulate", - "extra-package-copilot": "extra-package-copilot", - "extra-package-gptel": "extra-package-gptel", - "extra-package-indent-bars": "extra-package-indent-bars", - "extra-package-meow-tree-sitter": "extra-package-meow-tree-sitter", - "extra-package-nix-ts-mode": "extra-package-nix-ts-mode", - "extra-package-notmuch-notify": "extra-package-notmuch-notify", - "flake-parts": "flake-parts_3", - "hercules-ci-effects": "hercules-ci-effects_2", - "nixpkgs": [ - "ccrEmacs", - "emacs-overlay", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1719319453, - "narHash": "sha256-a7kxJj8Mshck62/G9WizDfvAAJDT1XP6MIFyFPFIa8I=", - "ref": "refs/heads/master", - "rev": "a65c1478cf8406f1e524944b0f646ace1979910b", - "revCount": 188, - "type": "git", - "url": "https://git.aciceri.dev/aciceri/emacs.git" - }, - "original": { - "type": "git", - "url": "https://git.aciceri.dev/aciceri/emacs.git" - } - }, "darwin": { "inputs": { "nixpkgs": [ @@ -100,15 +46,15 @@ "disko": { "inputs": { "nixpkgs": [ - "nixpkgsUnstable" + "nixpkgs" ] }, "locked": { - "lastModified": 1720661479, - "narHash": "sha256-nsGgA14vVn0GGiqEfomtVgviRJCuSR3UEopfP8ixW1I=", + "lastModified": 1725377834, + "narHash": "sha256-tqoAO8oT6zEUDXte98cvA1saU9+1dLJQe3pMKLXv8ps=", "owner": "nix-community", "repo": "disko", - "rev": "786965e1b1ed3fd2018d78399984f461e2a44689", + "rev": "e55f9a8678adc02024a4877c2a403e3f6daf24fe", "type": "github" }, "original": { @@ -119,16 +65,16 @@ }, "dream2nix": { "inputs": { - "nixpkgs": "nixpkgs_5", + "nixpkgs": "nixpkgs_2", "purescript-overlay": "purescript-overlay", "pyproject-nix": "pyproject-nix" }, "locked": { - "lastModified": 1720605900, - "narHash": "sha256-/BTAC3gj1Ot7o/PINsHS2EGEtGUadI12WZlhowKn18c=", + "lastModified": 1722526955, + "narHash": "sha256-fFS8aDnfK9Qfm2FLnQ8pqWk8FzvFEv5LvTuZTZLREnc=", "owner": "nix-community", "repo": "dream2nix", - "rev": "0c6b5c8ab796f6dfb2aef1133f5b7bb25ce57cb9", + "rev": "3fd4c14d3683baac8d1f94286ae14fe160888b51", "type": "github" }, "original": { @@ -137,155 +83,6 @@ "type": "github" } }, - "emacs-overlay": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs_3", - "nixpkgs-stable": "nixpkgs-stable" - }, - "locked": { - "lastModified": 1719303695, - "narHash": "sha256-SqJTGKtJEzkQdHEUWeMHwQ5vyAg4wE1kRbjTRjzfAUI=", - "owner": "nix-community", - "repo": "emacs-overlay", - "rev": "fd904f28fb1d3d3a3d87db312fac97cb4a146db4", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "emacs-overlay", - "type": "github" - } - }, - "extra-package-agenix-el": { - "flake": false, - "locked": { - "lastModified": 1717247083, - "narHash": "sha256-PexGtluh0V8WVTaDJJurt2xAYfTEJPN5L+bUZomfK14=", - "owner": "t4ccer", - "repo": "agenix.el", - "rev": "b9c7ad33b534d80af207949cc06c0bcd1e60fd63", - "type": "github" - }, - "original": { - "owner": "t4ccer", - "repo": "agenix.el", - "type": "github" - } - }, - "extra-package-combobulate": { - "flake": false, - "locked": { - "lastModified": 1710175386, - "narHash": "sha256-rww0/6304xZWTFRo1BVcfSDdXOXtlgmfZOxAoOIjYsk=", - "owner": "mickeynp", - "repo": "combobulate", - "rev": "ee82c568ad639605518f62f82fae4bcc0dfdbb81", - "type": "github" - }, - "original": { - "owner": "mickeynp", - "repo": "combobulate", - "type": "github" - } - }, - "extra-package-copilot": { - "flake": false, - "locked": { - "lastModified": 1714572852, - "narHash": "sha256-Knp36PtgA73gtYO+W1clQfr570bKCxTFsGW3/iH86A0=", - "owner": "zerolfx", - "repo": "copilot.el", - "rev": "733bff26450255e092c10873580e9abfed8a81b8", - "type": "github" - }, - "original": { - "owner": "zerolfx", - "repo": "copilot.el", - "type": "github" - } - }, - "extra-package-gptel": { - "flake": false, - "locked": { - "lastModified": 1719293003, - "narHash": "sha256-2UArv9fvZEMC6lf3HE6c9onXkRroX0HgX5C/kTHM/ls=", - "owner": "karthink", - "repo": "gptel", - "rev": "a834adbcba46197f4a59b0208e48dd3e80f15c46", - "type": "github" - }, - "original": { - "owner": "karthink", - "repo": "gptel", - "type": "github" - } - }, - "extra-package-indent-bars": { - "flake": false, - "locked": { - "lastModified": 1717788473, - "narHash": "sha256-gcqFMjgWktfGFKeiW6uwWbBtEM1Om2ezMI7W/ZGUFkE=", - "owner": "jdtsmith", - "repo": "indent-bars", - "rev": "2d1d854ddaa5b0e19b69e73553675c2aaaed1641", - "type": "github" - }, - "original": { - "owner": "jdtsmith", - "repo": "indent-bars", - "type": "github" - } - }, - "extra-package-meow-tree-sitter": { - "flake": false, - "locked": { - "lastModified": 1719316197, - "narHash": "sha256-PJotdHWmnBlfQfVSZQAfwxhQfXM/U338wl5QZu/RWMI=", - "owner": "skissue", - "repo": "meow-tree-sitter", - "rev": "8b4e91de05e82fee3535be67d0e9cbd9239b73bb", - "type": "github" - }, - "original": { - "owner": "skissue", - "repo": "meow-tree-sitter", - "type": "github" - } - }, - "extra-package-nix-ts-mode": { - "flake": false, - "locked": { - "lastModified": 1705596103, - "narHash": "sha256-jEUmhfLE7cFan4/PF4qBiEOLsjM3Q4iSDTlM+0CYwZg=", - "owner": "antifuchs", - "repo": "nix-ts-mode", - "rev": "0ef4e663add03d026a1804f57ac7d5453a635b15", - "type": "github" - }, - "original": { - "owner": "antifuchs", - "ref": "improve-indented-string-indentation", - "repo": "nix-ts-mode", - "type": "github" - } - }, - "extra-package-notmuch-notify": { - "flake": false, - "locked": { - "lastModified": 1615303739, - "narHash": "sha256-7REFHQ5+cCK7EGIvs2CnoWu9a7WPxX4W6eFql2nNYP8=", - "owner": "firmart", - "repo": "notmuch-notify", - "rev": "c10012e38b0093bc3a304b90a30dd09c81b3eb75", - "type": "github" - }, - "original": { - "owner": "firmart", - "repo": "notmuch-notify", - "type": "github" - } - }, "fan-control": { "flake": false, "locked": { @@ -320,183 +117,7 @@ }, "flake-parts": { "inputs": { - "nixpkgs-lib": [ - "arion", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1719994518, - "narHash": "sha256-pQMhCCHyQGRzdfAkdJ4cIWiw+JNuWsTX7f0ZYSyz0VY=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "9227223f6d922fee3c7b190b2cc238a99527bbb7", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "flake-parts", - "type": "github" - } - }, - "flake-parts_10": { - "inputs": { - "nixpkgs-lib": "nixpkgs-lib_5" - }, - "locked": { - "lastModified": 1714606777, - "narHash": "sha256-bMkNmAXLj8iyTvxaaD/StcLSadbj1chPcJOjtuVnLmA=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "4d34ce6412bc450b1d4208c953dc97c7fc764f1a", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "flake-parts", - "type": "github" - } - }, - "flake-parts_11": { - "inputs": { - "nixpkgs-lib": "nixpkgs-lib_6" - }, - "locked": { - "lastModified": 1678379998, - "narHash": "sha256-TZdfNqftHhDuIFwBcN9MUThx5sQXCTeZk9je5byPKRw=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "c13d60b89adea3dc20704c045ec4d50dd964d447", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "flake-parts", - "type": "github" - } - }, - "flake-parts_2": { - "inputs": { - "nixpkgs-lib": [ - "arion", - "hercules-ci-effects", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1712014858, - "narHash": "sha256-sB4SWl2lX95bExY2gMFG5HIzvva5AVMJd4Igm+GpZNw=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "9126214d0a59633752a136528f5f3b9aa8565b7d", - "type": "github" - }, - "original": { - "id": "flake-parts", - "type": "indirect" - } - }, - "flake-parts_3": { - "inputs": { - "nixpkgs-lib": "nixpkgs-lib" - }, - "locked": { - "lastModified": 1717285511, - "narHash": "sha256-iKzJcpdXih14qYVcZ9QC9XuZYnPc6T8YImb6dX166kw=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "2a55567fcf15b1b1c7ed712a2c6fadaec7412ea8", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "flake-parts", - "type": "github" - } - }, - "flake-parts_4": { - "inputs": { - "nixpkgs-lib": [ - "ccrEmacs", - "hercules-ci-effects", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1712014858, - "narHash": "sha256-sB4SWl2lX95bExY2gMFG5HIzvva5AVMJd4Igm+GpZNw=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "9126214d0a59633752a136528f5f3b9aa8565b7d", - "type": "github" - }, - "original": { - "id": "flake-parts", - "type": "indirect" - } - }, - "flake-parts_5": { - "inputs": { - "nixpkgs-lib": [ - "hercules-ci-agent", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1719877454, - "narHash": "sha256-g5N1yyOSsPNiOlFfkuI/wcUjmtah+nxdImJqrSATjOU=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "4e3583423212f9303aa1a6337f8dffb415920e4f", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "flake-parts", - "type": "github" - } - }, - "flake-parts_6": { - "inputs": { - "nixpkgs-lib": [ - "hercules-ci-effects", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1712014858, - "narHash": "sha256-sB4SWl2lX95bExY2gMFG5HIzvva5AVMJd4Igm+GpZNw=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "9126214d0a59633752a136528f5f3b9aa8565b7d", - "type": "github" - }, - "original": { - "id": "flake-parts", - "type": "indirect" - } - }, - "flake-parts_7": { - "inputs": { - "nixpkgs-lib": "nixpkgs-lib_3" - }, - "locked": { - "lastModified": 1714641030, - "narHash": "sha256-yzcRNDoyVP7+SCNX0wmuDju1NUCt8Dz9+lyUXEI0dbI=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "e5d10a24b66c3ea8f150e47dfdb0416ab7c3390e", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "flake-parts", - "type": "github" - } - }, - "flake-parts_8": { - "inputs": { - "nixpkgs-lib": "nixpkgs-lib_4" + "nixpkgs-lib": "nixpkgs-lib_2" }, "locked": { "lastModified": 1701473968, @@ -512,7 +133,7 @@ "type": "github" } }, - "flake-parts_9": { + "flake-parts_2": { "inputs": { "nixpkgs-lib": [ "nixThePlanet", @@ -533,18 +154,21 @@ "type": "indirect" } }, - "flake-root": { + "flake-parts_3": { + "inputs": { + "nixpkgs-lib": "nixpkgs-lib_3" + }, "locked": { - "lastModified": 1713493429, - "narHash": "sha256-ztz8JQkI08tjKnsTpfLqzWoKFQF4JGu2LRz8bkdnYUk=", - "owner": "srid", - "repo": "flake-root", - "rev": "bc748b93b86ee76e2032eecda33440ceb2532fcd", + "lastModified": 1678379998, + "narHash": "sha256-TZdfNqftHhDuIFwBcN9MUThx5sQXCTeZk9je5byPKRw=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "c13d60b89adea3dc20704c045ec4d50dd964d447", "type": "github" }, "original": { - "owner": "srid", - "repo": "flake-root", + "owner": "hercules-ci", + "repo": "flake-parts", "type": "github" } }, @@ -571,11 +195,11 @@ "systems": "systems_3" }, "locked": { - "lastModified": 1710146030, - "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", + "lastModified": 1681202837, + "narHash": "sha256-H+Rh19JDwRtpVPAWp64F+rlEtxUWBAQW28eAi3SRSzg=", "owner": "numtide", "repo": "flake-utils", - "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", + "rev": "cfacdce06f30d2b68473a46042957675eebb3401", "type": "github" }, "original": { @@ -586,14 +210,14 @@ }, "flakeParts": { "inputs": { - "nixpkgs-lib": "nixpkgs-lib_2" + "nixpkgs-lib": "nixpkgs-lib" }, "locked": { - "lastModified": 1719994518, - "narHash": "sha256-pQMhCCHyQGRzdfAkdJ4cIWiw+JNuWsTX7f0ZYSyz0VY=", + "lastModified": 1725234343, + "narHash": "sha256-+ebgonl3NbiKD2UD0x4BszCZQ6sTfL4xioaM49o5B3Y=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "9227223f6d922fee3c7b190b2cc238a99527bbb7", + "rev": "567b938d64d4b4112ee253b9274472dc3a346eb6", "type": "github" }, "original": { @@ -638,123 +262,11 @@ "type": "github" } }, - "haskell-flake": { - "locked": { - "lastModified": 1675296942, - "narHash": "sha256-u1X1sblozi5qYEcLp1hxcyo8FfDHnRUVX3dJ/tW19jY=", - "owner": "srid", - "repo": "haskell-flake", - "rev": "c2cafce9d57bfca41794dc3b99c593155006c71e", - "type": "github" - }, - "original": { - "owner": "srid", - "ref": "0.1.0", - "repo": "haskell-flake", - "type": "github" - } - }, - "haskell-flake_2": { - "locked": { - "lastModified": 1684780604, - "narHash": "sha256-2uMZsewmRn7rRtAnnQNw1lj0uZBMh4m6Cs/7dV5YF08=", - "owner": "srid", - "repo": "haskell-flake", - "rev": "74210fa80a49f1b6f67223debdbf1494596ff9f2", - "type": "github" - }, - "original": { - "owner": "srid", - "ref": "0.3.0", - "repo": "haskell-flake", - "type": "github" - } - }, - "hercules-ci-agent": { - "inputs": { - "flake-parts": "flake-parts_5", - "haskell-flake": "haskell-flake_2", - "nixpkgs": "nixpkgs_6" - }, - "locked": { - "lastModified": 1720223941, - "narHash": "sha256-QDbU8LZzcUSqBp1CBqDj/f5Wd/sdgQ8pZwRWueoMUL4=", - "owner": "hercules-ci", - "repo": "hercules-ci-agent", - "rev": "2e10fb21fc2e07edf40763b73443e5934bd40947", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "hercules-ci-agent", - "type": "github" - } - }, "hercules-ci-effects": { "inputs": { "flake-parts": "flake-parts_2", - "nixpkgs": [ - "arion", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1719226092, - "narHash": "sha256-YNkUMcCUCpnULp40g+svYsaH1RbSEj6s4WdZY/SHe38=", - "owner": "hercules-ci", - "repo": "hercules-ci-effects", - "rev": "11e4b8dc112e2f485d7c97e1cee77f9958f498f5", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "hercules-ci-effects", - "type": "github" - } - }, - "hercules-ci-effects_2": { - "inputs": { - "flake-parts": "flake-parts_4", "nixpkgs": "nixpkgs_4" }, - "locked": { - "lastModified": 1719226092, - "narHash": "sha256-YNkUMcCUCpnULp40g+svYsaH1RbSEj6s4WdZY/SHe38=", - "owner": "hercules-ci", - "repo": "hercules-ci-effects", - "rev": "11e4b8dc112e2f485d7c97e1cee77f9958f498f5", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "hercules-ci-effects", - "type": "github" - } - }, - "hercules-ci-effects_3": { - "inputs": { - "flake-parts": "flake-parts_6", - "nixpkgs": "nixpkgs_7" - }, - "locked": { - "lastModified": 1719226092, - "narHash": "sha256-YNkUMcCUCpnULp40g+svYsaH1RbSEj6s4WdZY/SHe38=", - "owner": "hercules-ci", - "repo": "hercules-ci-effects", - "rev": "11e4b8dc112e2f485d7c97e1cee77f9958f498f5", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "hercules-ci-effects", - "type": "github" - } - }, - "hercules-ci-effects_4": { - "inputs": { - "flake-parts": "flake-parts_9", - "nixpkgs": "nixpkgs_9" - }, "locked": { "lastModified": 1701009247, "narHash": "sha256-GuX16rzRze2y7CsewJLTV6qXkXWyEwp6VCZXi8HLruU=", @@ -814,15 +326,15 @@ "homeManager": { "inputs": { "nixpkgs": [ - "nixpkgsUnstable" + "nixpkgs" ] }, "locked": { - "lastModified": 1720646128, - "narHash": "sha256-BivO5yIQukDlJL+1875Sqf3GuOPxZDdA48dYDi3PkL8=", + "lastModified": 1725863684, + "narHash": "sha256-HmdTBpuCsw35Ii35JUKO6AE6nae+kJliQb0XGd4hoLE=", "owner": "nix-community", "repo": "home-manager", - "rev": "c085b984ff2808bf322f375b10fea5a415a9c43d", + "rev": "be47a2bdf278c57c2d05e747a13ed31cef54a037", "type": "github" }, "original": { @@ -834,7 +346,7 @@ "homeManagerGitWorkspace": { "inputs": { "nixpkgs": [ - "nixpkgsUnstable" + "nixpkgs" ] }, "locked": { @@ -854,11 +366,11 @@ }, "impermanence": { "locked": { - "lastModified": 1719091691, - "narHash": "sha256-AxaLX5cBEcGtE02PeGsfscSb/fWMnyS7zMWBXQWDKbE=", + "lastModified": 1725690722, + "narHash": "sha256-4qWg9sNh5g1qPGO6d/GV2ktY+eDikkBTbWSg5/iD2nY=", "owner": "nix-community", "repo": "impermanence", - "rev": "23c1f06316b67cb5dabdfe2973da3785cfe9c34a", + "rev": "63f4d0443e32b0dd7189001ee1894066765d18a5", "type": "github" }, "original": { @@ -887,11 +399,11 @@ "lix": { "flake": false, "locked": { - "lastModified": 1720633647, - "narHash": "sha256-CjWvti4wFhRmIHpLduohKAVmU9+wI/PAOhQppCWziK8=", + "lastModified": 1725846500, + "narHash": "sha256-8tzJO3PllVPc0RYE0OfXVWlgTiJxKH1nzXsQLGyFRJ4=", "ref": "refs/heads/main", - "rev": "014410cbf0bda9c0fcdaf5f894120883cdc805ce", - "revCount": 15944, + "rev": "c14486ae8d3bbc862c625d948a6b2f4dc0927d5b", + "revCount": 16226, "type": "git", "url": "https://git@git.lix.systems/lix-project/lix" }, @@ -902,21 +414,21 @@ }, "lix-module": { "inputs": { - "flake-utils": "flake-utils_2", + "flake-utils": "flake-utils", "flakey-profile": "flakey-profile", "lix": [ "lix" ], "nixpkgs": [ - "nixpkgsUnstable" + "nixpkgs" ] }, "locked": { - "lastModified": 1719353937, - "narHash": "sha256-86NBqDxAP20ET/UoKX0WvSItblNQ97czXb2q7lkMrwk=", + "lastModified": 1725836728, + "narHash": "sha256-dCbHCwqrzcHlEsRilMX+KM3IfRV46ieGqDyAD3GgCSs=", "ref": "refs/heads/main", - "rev": "5d9d94089fb1ca96222a34bfe245ef5c5ebefd37", - "revCount": 92, + "rev": "353b25f0b6da5ede15206d416345a2ec4195b5c8", + "revCount": 107, "type": "git", "url": "https://git.lix.systems/lix-project/nixos-module" }, @@ -928,11 +440,11 @@ "mobile-nixos": { "flake": false, "locked": { - "lastModified": 1720660935, - "narHash": "sha256-GnDGoVaObUjnYdCHUSIYVE1anMElis+Pq+RY30LFlIk=", + "lastModified": 1725601293, + "narHash": "sha256-PLk1m0ZukClV+qrszd6WaNclpge8zGsSBTOAwYB9es4=", "owner": "NixOS", "repo": "mobile-nixos", - "rev": "31704f8a55f5773c9b4e7adb7408a142d142e1f2", + "rev": "672f8299e484301994858d9220921309f631d616", "type": "github" }, "original": { @@ -941,35 +453,16 @@ "type": "github" } }, - "nix-fast-build": { - "inputs": { - "flake-parts": "flake-parts_7", - "nixpkgs": [ - "nixpkgsUnstable" - ], - "treefmt-nix": "treefmt-nix" - }, - "locked": { - "lastModified": 1719475157, - "narHash": "sha256-8zW6eWvE9T03cMpo/hY8RRZIsSCfs1zmsJOkEZzuYwM=", - "owner": "Mic92", - "repo": "nix-fast-build", - "rev": "030e586195c97424844965d2ce680140f6565c02", - "type": "github" - }, - "original": { - "owner": "Mic92", - "repo": "nix-fast-build", - "type": "github" - } - }, "nix-formatter-pack": { "inputs": { "nixpkgs": [ "nix-on-droid", "nixpkgs" ], - "nmd": "nmd", + "nmd": [ + "nix-on-droid", + "nmd" + ], "nmt": "nmt" }, "locked": { @@ -990,17 +483,17 @@ "inputs": { "home-manager": "home-manager_2", "nix-formatter-pack": "nix-formatter-pack", - "nixpkgs": "nixpkgs_8", + "nixpkgs": "nixpkgs_3", "nixpkgs-docs": "nixpkgs-docs", "nixpkgs-for-bootstrap": "nixpkgs-for-bootstrap", - "nmd": "nmd_2" + "nmd": "nmd" }, "locked": { - "lastModified": 1720612508, - "narHash": "sha256-WbjV0gmnh6jG1B292K4KIJwtBacn2sTWhiw1ZMeti9s=", + "lastModified": 1725658585, + "narHash": "sha256-P29z4Gt89n5ps1U7+qmIrj0BuRXGZQSIaOe2+tsPgfw=", "owner": "nix-community", "repo": "nix-on-droid", - "rev": "8bcadcef69dcb5ca177bfb6ea3dc6b092cda2b06", + "rev": "5d88ff2519e4952f8d22472b52c531bb5f1635fc", "type": "github" }, "original": { @@ -1012,15 +505,15 @@ "nixDarwin": { "inputs": { "nixpkgs": [ - "nixpkgsUnstable" + "nixpkgs" ] }, "locked": { - "lastModified": 1720599442, - "narHash": "sha256-jdm+sKVbBXoyrxcHbVaV0htlpq2iFR+eJw3Xe/DPcDo=", + "lastModified": 1725628909, + "narHash": "sha256-xI0OSqPHcs/c/utJsU0Zvcp1VhejMI9mgwr68uHHlPs=", "owner": "LnL7", "repo": "nix-darwin", - "rev": "cf297a8d248db6a455b60133f6c0029c04ebe50e", + "rev": "76559183801030451e200c90a1627c1d82bb4910", "type": "github" }, "original": { @@ -1031,10 +524,10 @@ }, "nixThePlanet": { "inputs": { - "flake-parts": "flake-parts_8", - "hercules-ci-effects": "hercules-ci-effects_4", + "flake-parts": "flake-parts", + "hercules-ci-effects": "hercules-ci-effects", "nixpkgs": [ - "nixpkgsUnstable" + "nixpkgs" ], "osx-kvm": "osx-kvm" }, @@ -1053,33 +546,13 @@ "type": "github" } }, - "nixd": { - "inputs": { - "flake-parts": "flake-parts_10", - "flake-root": "flake-root", - "nixpkgs": "nixpkgs_10" - }, - "locked": { - "lastModified": 1719387257, - "narHash": "sha256-q5nj4TFggEHcyKuETmVEFeGztkAYXl3TDIOfd6swo4U=", - "owner": "nix-community", - "repo": "nixd", - "rev": "60a925008bc353136ba5babce437f42819c1645c", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "nixd", - "type": "github" - } - }, "nixosHardware": { "locked": { - "lastModified": 1720515935, - "narHash": "sha256-8b+fzR4W2hI5axwB+4nBwoA15awPKkck4ghhCt8v39M=", + "lastModified": 1725885300, + "narHash": "sha256-5RLEnou1/GJQl+Wd+Bxaj7QY7FFQ9wjnFq1VNEaxTmc=", "owner": "NixOS", "repo": "nixos-hardware", - "rev": "a111ce6b537df12a39874aa9672caa87f8677eda", + "rev": "166dee4f88a7e3ba1b7a243edb1aca822f00680e", "type": "github" }, "original": { @@ -1154,41 +627,17 @@ }, "nixpkgs-lib": { "locked": { - "lastModified": 1717284937, - "narHash": "sha256-lIbdfCsf8LMFloheeE6N31+BMIeixqyQWbSr2vk79EQ=", + "lastModified": 1725233747, + "narHash": "sha256-Ss8QWLXdr2JCBPcYChJhz4xJm+h/xjl4G0c0XlP6a74=", "type": "tarball", - "url": "https://github.com/NixOS/nixpkgs/archive/eb9ceca17df2ea50a250b6b27f7bf6ab0186f198.tar.gz" + "url": "https://github.com/NixOS/nixpkgs/archive/356624c12086a18f2ea2825fed34523d60ccc4e3.tar.gz" }, "original": { "type": "tarball", - "url": "https://github.com/NixOS/nixpkgs/archive/eb9ceca17df2ea50a250b6b27f7bf6ab0186f198.tar.gz" + "url": "https://github.com/NixOS/nixpkgs/archive/356624c12086a18f2ea2825fed34523d60ccc4e3.tar.gz" } }, "nixpkgs-lib_2": { - "locked": { - "lastModified": 1719876945, - "narHash": "sha256-Fm2rDDs86sHy0/1jxTOKB1118Q0O3Uc7EC0iXvXKpbI=", - "type": "tarball", - "url": "https://github.com/NixOS/nixpkgs/archive/5daf0514482af3f97abaefc78a6606365c9108e2.tar.gz" - }, - "original": { - "type": "tarball", - "url": "https://github.com/NixOS/nixpkgs/archive/5daf0514482af3f97abaefc78a6606365c9108e2.tar.gz" - } - }, - "nixpkgs-lib_3": { - "locked": { - "lastModified": 1714640452, - "narHash": "sha256-QBx10+k6JWz6u7VsohfSw8g8hjdBZEf8CFzXH1/1Z94=", - "type": "tarball", - "url": "https://github.com/NixOS/nixpkgs/archive/50eb7ecf4cd0a5756d7275c8ba36790e5bd53e33.tar.gz" - }, - "original": { - "type": "tarball", - "url": "https://github.com/NixOS/nixpkgs/archive/50eb7ecf4cd0a5756d7275c8ba36790e5bd53e33.tar.gz" - } - }, - "nixpkgs-lib_4": { "locked": { "dir": "lib", "lastModified": 1701253981, @@ -1206,25 +655,7 @@ "type": "github" } }, - "nixpkgs-lib_5": { - "locked": { - "dir": "lib", - "lastModified": 1714253743, - "narHash": "sha256-mdTQw2XlariysyScCv2tTE45QSU9v/ezLcHJ22f0Nxc=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "58a1abdbae3217ca6b702f03d3b35125d88a2994", - "type": "github" - }, - "original": { - "dir": "lib", - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs-lib_6": { + "nixpkgs-lib_3": { "locked": { "dir": "lib", "lastModified": 1678375444, @@ -1244,149 +675,21 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1719122173, - "narHash": "sha256-aEMsNUtqSPwn6l+LIZ/rX++nCgun3E9M3uSZs6Rwb7w=", + "lastModified": 1726447378, + "narHash": "sha256-2yV8nmYE1p9lfmLHhOCbYwQC/W8WYfGQABoGzJOb1JQ=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "906320ae02f769d13a646eb3605a9821df0d6ea2", + "rev": "086b448a5d54fd117f4dc2dee55c9f0ff461bdc1", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixos-23.11", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgsStable": { - "locked": { - "lastModified": 1719957072, - "narHash": "sha256-gvFhEf5nszouwLAkT9nWsDzocUTqLWHuL++dvNjMp9I=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "7144d6241f02d171d25fba3edeaf15e0f2592105", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-23.11", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgsUnstable": { - "locked": { - "lastModified": 1719254875, - "narHash": "sha256-ECni+IkwXjusHsm9Sexdtq8weAq/yUyt1TWIemXt3Ko=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "2893f56de08021cffd9b6b6dfc70fd9ccd51eb60", - "type": "github" - }, - "original": { - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "2893f56de08021cffd9b6b6dfc70fd9ccd51eb60", - "type": "github" - } - }, - "nixpkgsUnstableForSisko": { - "locked": { - "lastModified": 1708475490, - "narHash": "sha256-g1v0TsWBQPX97ziznfJdWhgMyMGtoBFs102xSYO4syU=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "0e74ca98a74bc7270d28838369593635a5db3260", - "type": "github" - }, - "original": { - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "0e74ca98a74bc7270d28838369593635a5db3260", - "type": "github" - } - }, - "nixpkgs_10": { - "locked": { - "lastModified": 1714562304, - "narHash": "sha256-Mr3U37Rh6tH0FbaDFu0aZDwk9mPAe7ASaqDOGgLqqLU=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "bcd44e224fd68ce7d269b4f44d24c2220fd821e7", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_11": { - "locked": { - "lastModified": 1678470307, - "narHash": "sha256-OEeMUr3ueLIXyW/OaFUX5jUdimyQwMg/7e+/Q0gC/QE=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "0c4800d579af4ed98ecc47d464a5e7b0870c4b1f", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixos-unstable", + "ref": "nixos-24.05", "repo": "nixpkgs", "type": "github" } }, "nixpkgs_2": { - "locked": { - "lastModified": 1720031269, - "narHash": "sha256-rwz8NJZV+387rnWpTYcXaRNvzUSnnF9aHONoJIYmiUQ=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "9f4128e00b0ae8ec65918efeba59db998750ead6", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_3": { - "locked": { - "lastModified": 1719075281, - "narHash": "sha256-CyyxvOwFf12I91PBWz43iGT1kjsf5oi6ax7CrvaMyAo=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "a71e967ef3694799d0c418c98332f7ff4cc5f6af", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_4": { - "locked": { - "lastModified": 1713714899, - "narHash": "sha256-+z/XjO3QJs5rLE5UOf015gdVauVRQd2vZtsFkaXBq2Y=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "6143fc5eeb9c4f00163267708e26191d1e918932", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_5": { "locked": { "lastModified": 1720181791, "narHash": "sha256-i4vJL12/AdyuQuviMMd1Hk2tsGt02hDNhA0Zj1m16N8=", @@ -1402,39 +705,7 @@ "type": "github" } }, - "nixpkgs_6": { - "locked": { - "lastModified": 1719848872, - "narHash": "sha256-H3+EC5cYuq+gQW8y0lSrrDZfH71LB4DAf+TDFyvwCNA=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "00d80d13810dbfea8ab4ed1009b09100cca86ba8", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_7": { - "locked": { - "lastModified": 1713714899, - "narHash": "sha256-+z/XjO3QJs5rLE5UOf015gdVauVRQd2vZtsFkaXBq2Y=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "6143fc5eeb9c4f00163267708e26191d1e918932", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_8": { + "nixpkgs_3": { "locked": { "lastModified": 1708172716, "narHash": "sha256-3M94oln0b61m3dUmLyECCA9hYAHXZEszM4saE3CmQO4=", @@ -1449,7 +720,7 @@ "type": "github" } }, - "nixpkgs_9": { + "nixpkgs_4": { "locked": { "lastModified": 1697723726, "narHash": "sha256-SaTWPkI8a5xSHX/rrKzUe+/uVNy6zCGMXgoeMb7T9rg=", @@ -1465,23 +736,52 @@ "type": "github" } }, - "nmd": { - "flake": false, + "nixpkgs_5": { "locked": { - "lastModified": 1666190571, - "narHash": "sha256-Z1hc7M9X6L+H83o9vOprijpzhTfOBjd0KmUTnpHAVjA=", - "owner": "rycee", - "repo": "nmd", - "rev": "b75d312b4f33bd3294cd8ae5c2ca8c6da2afc169", - "type": "gitlab" + "lastModified": 1726745986, + "narHash": "sha256-xB35C2fpz7iyNcj9sn0a+wM2C4CQ6DGTn5VUHogstYs=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "268bb5090a3c6ac5e1615b38542a868b52ef8088", + "type": "github" }, "original": { - "owner": "rycee", - "repo": "nmd", - "type": "gitlab" + "owner": "NixOS", + "repo": "nixpkgs", + "type": "github" } }, - "nmd_2": { + "nixpkgs_6": { + "locked": { + "lastModified": 1678470307, + "narHash": "sha256-OEeMUr3ueLIXyW/OaFUX5jUdimyQwMg/7e+/Q0gC/QE=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "0c4800d579af4ed98ecc47d464a5e7b0870c4b1f", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_7": { + "locked": { + "lastModified": 1682134069, + "narHash": "sha256-TnI/ZXSmRxQDt2sjRYK/8j8iha4B4zP2cnQCZZ3vp7k=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "fd901ef4bf93499374c5af385b2943f5801c0833", + "type": "github" + }, + "original": { + "id": "nixpkgs", + "type": "indirect" + } + }, + "nmd": { "inputs": { "nixpkgs": [ "nix-on-droid", @@ -1519,22 +819,6 @@ "type": "gitlab" } }, - "nur": { - "locked": { - "lastModified": 1715146663, - "narHash": "sha256-SiCdZF3dwRBgTlHOSB5GCKBcTmkGmyDmVRwr6cHCdgE=", - "owner": "nix-community", - "repo": "NUR", - "rev": "324a5f3b9fbfdb77336dc9fa1c0a02f33a6acf6d", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "NUR", - "rev": "324a5f3b9fbfdb77336dc9fa1c0a02f33a6acf6d", - "type": "github" - } - }, "osx-kvm": { "flake": false, "locked": { @@ -1572,18 +856,16 @@ "flake-compat": "flake-compat", "gitignore": "gitignore", "nixpkgs": [ - "nixpkgsUnstable" + "nixpkgs" ], - "nixpkgs-stable": [ - "nixpkgsStable" - ] + "nixpkgs-stable": "nixpkgs-stable" }, "locked": { - "lastModified": 1720524665, - "narHash": "sha256-ni/87oHPZm6Gv0ECYxr1f6uxB0UKBWJ6HvS7lwLU6oY=", + "lastModified": 1725513492, + "narHash": "sha256-tyMUA6NgJSvvQuzB7A1Sf8+0XCHyfSPRx/b00o6K0uo=", "owner": "cachix", "repo": "pre-commit-hooks.nix", - "rev": "8d6a17d0cdf411c55f12602624df6368ad86fac1", + "rev": "7570de7b9b504cfe92025dd1be797bf546f66528", "type": "github" }, "original": { @@ -1634,13 +916,13 @@ "rock5b": { "inputs": { "fan-control": "fan-control", - "flake-parts": "flake-parts_11", + "flake-parts": "flake-parts_3", "kernel-src": "kernel-src", - "nixpkgs": "nixpkgs_11", + "nixpkgs": "nixpkgs_6", "nixpkgs-kernel": "nixpkgs-kernel", "panfork": "panfork", "tow-boot": "tow-boot", - "treefmt-nix": "treefmt-nix_2" + "treefmt-nix": "treefmt-nix" }, "locked": { "lastModified": 1685695782, @@ -1659,32 +941,24 @@ "root": { "inputs": { "agenix": "agenix", - "arion": "arion", - "ccrEmacs": "ccrEmacs", "disko": "disko", "dream2nix": "dream2nix", "flakeParts": "flakeParts", - "hercules-ci-agent": "hercules-ci-agent", - "hercules-ci-effects": "hercules-ci-effects_3", "homeManager": "homeManager", "homeManagerGitWorkspace": "homeManagerGitWorkspace", "impermanence": "impermanence", "lix": "lix", "lix-module": "lix-module", "mobile-nixos": "mobile-nixos", - "nix-fast-build": "nix-fast-build", "nix-on-droid": "nix-on-droid", "nixDarwin": "nixDarwin", "nixThePlanet": "nixThePlanet", - "nixd": "nixd", "nixosHardware": "nixosHardware", - "nixpkgsStable": "nixpkgsStable", - "nixpkgsUnstable": "nixpkgsUnstable", - "nixpkgsUnstableForSisko": "nixpkgsUnstableForSisko", - "nur": "nur", + "nixpkgs": "nixpkgs_5", "pre-commit-hooks": "pre-commit-hooks", "rock5b": "rock5b", - "treefmt-nix": "treefmt-nix_3" + "treefmt-nix": "treefmt-nix_2", + "vscode-server": "vscode-server" } }, "scss-reset": { @@ -1788,27 +1062,6 @@ } }, "treefmt-nix": { - "inputs": { - "nixpkgs": [ - "nix-fast-build", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1714058656, - "narHash": "sha256-Qv4RBm4LKuO4fNOfx9wl40W2rBbv5u5m+whxRYUMiaA=", - "owner": "numtide", - "repo": "treefmt-nix", - "rev": "c6aaf729f34a36c445618580a9f95a48f5e4e03f", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "treefmt-nix", - "type": "github" - } - }, - "treefmt-nix_2": { "inputs": { "nixpkgs": [ "rock5b", @@ -1829,18 +1082,18 @@ "type": "github" } }, - "treefmt-nix_3": { + "treefmt-nix_2": { "inputs": { "nixpkgs": [ - "nixpkgsUnstable" + "nixpkgs" ] }, "locked": { - "lastModified": 1720645794, - "narHash": "sha256-vAeYp+WH7i/DlBM5xNt9QeWiOiqzzf5abO8DYGkbUxg=", + "lastModified": 1725271838, + "narHash": "sha256-VcqxWT0O/gMaeWTTjf1r4MOyG49NaNxW4GHTO3xuThE=", "owner": "numtide", "repo": "treefmt-nix", - "rev": "750dfb555b5abdab4d3266b3f9a05dec6d205c04", + "rev": "9fb342d14b69aefdf46187f6bb80a4a0d97007cd", "type": "github" }, "original": { @@ -1848,6 +1101,25 @@ "repo": "treefmt-nix", "type": "github" } + }, + "vscode-server": { + "inputs": { + "flake-utils": "flake-utils_2", + "nixpkgs": "nixpkgs_7" + }, + "locked": { + "lastModified": 1713958148, + "narHash": "sha256-8PDNi/dgoI2kyM7uSiU4eoLBqUKoA+3TXuz+VWmuCOc=", + "owner": "nix-community", + "repo": "nixos-vscode-server", + "rev": "fc900c16efc6a5ed972fb6be87df018bcf3035bc", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nixos-vscode-server", + "type": "github" + } } }, "root": "root", diff --git a/flake.nix b/flake.nix index 7b754e0..638d2af 100644 --- a/flake.nix +++ b/flake.nix @@ -4,56 +4,42 @@ inputs = { flakeParts.url = "github:hercules-ci/flake-parts"; # FIXME remove constraint - nixpkgsUnstable.url = "github:NixOS/nixpkgs/2893f56de08021cffd9b6b6dfc70fd9ccd51eb60"; - nixpkgsUnstableForSisko.url = "github:NixOS/nixpkgs/0e74ca98a74bc7270d28838369593635a5db3260"; - nixpkgsStable.url = "github:NixOS/nixpkgs/nixos-23.11"; + nixpkgs.url = "github:NixOS/nixpkgs"; + # nixpkgsForSisko.url = "github:NixOS/nixpkgs/0e74ca98a74bc7270d28838369593635a5db3260"; nixosHardware.url = "github:NixOS/nixos-hardware"; homeManager = { url = "github:nix-community/home-manager"; - inputs.nixpkgs.follows = "nixpkgsUnstable"; + inputs.nixpkgs.follows = "nixpkgs"; }; # TODO: remove after https://github.com/nix-community/home-manager/pull/3811 homeManagerGitWorkspace = { url = "github:aciceri/home-manager/git-workspace"; - inputs.nixpkgs.follows = "nixpkgsUnstable"; + inputs.nixpkgs.follows = "nixpkgs"; }; disko = { url = "github:nix-community/disko"; - inputs.nixpkgs.follows = "nixpkgsUnstable"; + inputs.nixpkgs.follows = "nixpkgs"; }; pre-commit-hooks = { url = "github:cachix/pre-commit-hooks.nix"; - inputs = { - nixpkgs.follows = "nixpkgsUnstable"; - nixpkgs-stable.follows = "nixpkgsStable"; - }; + inputs.nixpkgs.follows = "nixpkgs"; }; - # FIXME go back to master after nltch's repository is re-added - nur.url = "github:nix-community/NUR/324a5f3b9fbfdb77336dc9fa1c0a02f33a6acf6d"; agenix.url = "github:ryantm/agenix"; rock5b.url = "github:aciceri/rock5b-nixos"; - ccrEmacs.url = "git+https://git.aciceri.dev/aciceri/emacs.git"; treefmt-nix = { url = "github:numtide/treefmt-nix"; - inputs.nixpkgs.follows = "nixpkgsUnstable"; + inputs.nixpkgs.follows = "nixpkgs"; }; - hercules-ci-effects.url = "github:hercules-ci/hercules-ci-effects"; dream2nix.url = "github:nix-community/dream2nix"; - hercules-ci-agent.url = "github:hercules-ci/hercules-ci-agent"; - nix-fast-build = { - url = "github:Mic92/nix-fast-build"; - inputs.nixpkgs.follows = "nixpkgsUnstable"; - }; nixThePlanet = { url = "github:aciceri/NixThePlanet/nix-in-darwin"; - inputs.nixpkgs.follows = "nixpkgsUnstable"; + inputs.nixpkgs.follows = "nixpkgs"; }; nixDarwin = { url = "github:LnL7/nix-darwin"; - inputs.nixpkgs.follows = "nixpkgsUnstable"; + inputs.nixpkgs.follows = "nixpkgs"; }; nix-on-droid.url = "github:nix-community/nix-on-droid"; - nixd.url = "github:nix-community/nixd"; lix = { url = "git+https://git@git.lix.systems/lix-project/lix"; flake = false; @@ -61,14 +47,14 @@ lix-module = { url = "git+https://git.lix.systems/lix-project/nixos-module"; inputs.lix.follows = "lix"; - inputs.nixpkgs.follows = "nixpkgsUnstable"; + inputs.nixpkgs.follows = "nixpkgs"; }; mobile-nixos = { url = "github:NixOS/mobile-nixos"; flake = false; }; - arion.url = "github:hercules-ci/arion"; impermanence.url = "github:nix-community/impermanence"; + vscode-server.url = "github:nix-community/nixos-vscode-server"; }; outputs = inputs @ {flakeParts, ...}: @@ -81,7 +67,6 @@ ./packages ./shell ./checks - ./ci ]; systems = ["x86_64-linux" "aarch64-linux"]; }; diff --git a/hmModules/cura/default.nix b/hmModules/cura/default.nix index 2dcb042..32a1c64 100644 --- a/hmModules/cura/default.nix +++ b/hmModules/cura/default.nix @@ -1,3 +1,28 @@ {pkgs, ...}: { - home.packages = [pkgs.cura]; + home.packages = [ + (let + cura5 = pkgs.appimageTools.wrapType2 rec { + name = "cura5"; + version = "5.8.0"; + src = pkgs.fetchurl { + url = "https://github.com/Ultimaker/Cura/releases/download/${version}/UltiMaker-Cura-${version}-linux-X64.AppImage"; + hash = "sha256-EojVAe+o43W80ES5BY3QgGRTxztwS+B6kIOfJOtULOg="; + }; + }; + in + pkgs.writeScriptBin "cura" '' + #! ${pkgs.bash}/bin/bash + # AppImage version of Cura loses current working directory and treats all paths relateive to $HOME. + # So we convert each of the files passed as argument to an absolute path. + # This fixes use cases like `cd /path/to/my/files; cura mymodel.stl anothermodel.stl`. + args=() + for a in "$@"; do + if [ -e "$a" ]; then + a="$(realpath "$a")" + fi + args+=("$a") + done + QT_QPA_PLATFORM=xcb exec "${cura5}/bin/cura5" "''${args[@]}" + '') + ]; } diff --git a/hmModules/email/default.nix b/hmModules/email/default.nix index d3b9d2a..dd02c0c 100644 --- a/hmModules/email/default.nix +++ b/hmModules/email/default.nix @@ -5,13 +5,183 @@ }: { programs.mbsync.enable = true; programs.msmtp.enable = true; - programs.notmuch = { - enable = true; - hooks.preNew = "mbsync --all"; - }; services.mbsync.enable = true; + + home.file.".config/aerc/stylesets" = let + catppuccin-aerc = pkgs.fetchFromGitHub { + owner = "catppuccin"; + repo = "aerc"; + rev = "ca404a9f2d125ef12db40db663d43c9d94116a05"; + hash = "sha256-OWIkHsKFts/zkrDUtbBPXHVSrHL/F0v3LB1rnlFAKmE="; + }; + in { + source = "${catppuccin-aerc}/dist"; + recursive = true; + }; + + programs.aerc = { + enable = true; + extraBinds = { + global = { + "" = ":prev-tab"; + "" = ":next-tab"; + "?" = ":help keys"; + }; + + messages = { + "h" = ":prev-tab"; + "l" = ":next-tab"; + + "j" = ":next"; + "" = ":next"; + "" = ":next 50%"; + "" = ":next 100%"; + "" = ":next 100%"; + + "k" = ":prev"; + "" = ":prev"; + "" = ":prev 50%"; + "" = ":prev 100%"; + "" = ":prev 100%"; + "g" = ":select 0"; + "G" = ":select -1"; + + "J" = ":next-folder"; + "K" = ":prev-folder"; + "H" = ":collapse-folder"; + "L" = ":expand-folder"; + + "v" = ":mark -t"; + "x" = ":mark -t:next"; + "V" = ":mark -v"; + + "T" = ":toggle-threads"; + + "" = ":view"; + "d" = ":prompt 'Really delete this message?' 'delete-message'"; + "D" = ":delete"; + "A" = ":archive flat"; + + "C" = ":compose"; + + "rr" = ":reply -a"; + "rq" = ":reply -aq"; + "Rr" = ":reply"; + "Rq" = ":reply -q"; + + "c" = ":cf"; + "$" = ":term"; + "!" = ":term"; + "|" = ":pipe"; + + "/" = ":search"; + "\\" = ":filter"; + "n" = ":next-result"; + "N" = ":prev-result"; + "" = ":clear"; + }; + + "messages:folder=Drafts" = {"" = ":recall";}; + + view = { + "/" = ":toggle-key-passthrough/"; + "q" = ":close"; + "O" = ":open"; + "S" = ":save"; + "|" = ":pipe"; + "D" = ":delete"; + "A" = ":archive flat"; + + "" = ":open-link "; + + "f" = ":forward"; + "rr" = ":reply -a"; + "rq" = ":reply -aq"; + "Rr" = ":reply"; + "Rq" = ":reply -q"; + + "H" = ":toggle-headers"; + "" = ":prev-part"; + "" = ":next-part"; + "J" = ":next"; + "K" = ":prev"; + }; + + "view::passthrough" = { + "$noinherit" = true; + "$ex" = ""; + "" = ":toggle-key-passthrough"; + }; + + compose = { + "$noinherit" = "true"; + "$ex" = ""; + "" = ":prev-field"; + "" = ":next-field"; + "" = ":switch-account -p"; + "" = ":switch-account -n"; + "" = ":next-field"; + "" = ":prev-tab"; + "" = ":next-tab"; + }; + + "compose::editor" = { + "$noinherit" = "true"; + "$ex" = ""; + "" = ":prev-field"; + "" = ":next-field"; + "" = ":prev-tab"; + "" = ":next-tab"; + }; + + "compose::review" = { + "y" = ":send"; + "n" = ":abort"; + "p" = ":postpone"; + "q" = ":choose -o d discard abort -o p postpone postpone"; + "e" = ":edit"; + "a" = ":attach"; + "d" = ":detach"; + }; + + terminal = { + "$noinherit" = "true"; + "$ex" = ""; + + "" = ":prev-tab"; + "" = ":next-tab"; + }; + }; + extraConfig = { + general.unsafe-accounts-conf = true; + ui = { + styleset-name = "catppuccin-mocha"; + this-day-time-format = ''" 15:04"''; + this-year-time-format = "Mon Jan 02 15:04"; + timestamp-format = "2006-01-02 15:04"; + + spinner = "[ ⡿ ],[ ⣟ ],[ ⣯ ],[ ⣷ ],[ ⣾ ],[ ⣽ ],[ ⣻ ],[ ⢿ ]"; + border-char-vertical = "┃"; + border-char-horizontal = "━"; + }; + viewer = {always-show-mime = true;}; + compose = {no-attachment-warning = "^[^>]*attach(ed|ment)";}; + triggers = { + email-received = ''exec notify-send "New email from %n" "%s"''; + }; + filters = { + "text/plain" = "colorize"; + "text/html" = "html"; + "text/calendar" = "calendar"; + "message/delivery-status" = "colorize"; + "message/rfc822" = "colorize"; + "image/*" = "${pkgs.catimg}/bin/catimg -"; + }; + }; + }; accounts.email = { accounts.autistici = { + aerc.enable = true; address = "andrea.ciceri@autistici.org"; gpg = { key = "7A66EEA1E6C598D07D361287A1FC89532D1C565"; diff --git a/hmModules/firefox/default.nix b/hmModules/firefox/default.nix index 9732957..954dbc3 100644 --- a/hmModules/firefox/default.nix +++ b/hmModules/firefox/default.nix @@ -12,11 +12,6 @@ nativeMessagingHosts = [pkgs.tridactyl-native]; }; profiles.${username} = { - extensions = with pkgs.nur.repos.rycee.firefox-addons; [ - privacy-badger - ublock-origin - tridactyl - ]; settings = { "browser.startup.homepage" = "https://google.it"; "browser.search.region" = "IT"; diff --git a/hmModules/foot/default.nix b/hmModules/foot/default.nix index d5cc61b..a40f2a5 100644 --- a/hmModules/foot/default.nix +++ b/hmModules/foot/default.nix @@ -1,40 +1,71 @@ { lib, pkgs, + config, ... -}: { - programs.foot = let - catppuccin = pkgs.fetchFromGitHub { - owner = "catppuccin"; - repo = "foot"; - rev = "307611230661b7b1787feb7f9d122e851bae97e9"; - hash = "sha256-mkPYHDJtfdfDnqLr1YOjaBpn4lCceok36LrnkUkNIE4="; - }; - in { - enable = true; - server.enable = true; - settings = { - main = { - term = "xterm-256color"; - login-shell = "yes"; - # Using dpi-aware = "yes" font size is too small on my external monitor - # Scaling that output in sway is inefficient and make XWayland apps blurred - dpi-aware = "no"; - horizontal-letter-offset = "1"; - include = "${catppuccin}/themes/catppuccin-mocha.ini"; - font = let - size = "13"; - in - lib.concatStringsSep ", " [ - "Iosevka Comfy:size=${size}" - "Symbols Nerd Font:size=${size}" - "JoyPixels:size=${size}" - ]; +}: +lib.mkMerge [ + { + programs.foot = let + catppuccin = pkgs.fetchFromGitHub { + owner = "catppuccin"; + repo = "foot"; + rev = "307611230661b7b1787feb7f9d122e851bae97e9"; + hash = "sha256-mkPYHDJtfdfDnqLr1YOjaBpn4lCceok36LrnkUkNIE4="; }; + in { + enable = true; + server.enable = true; + settings = { + main = { + term = "xterm-256color"; + login-shell = "yes"; + dpi-aware = "no"; + horizontal-letter-offset = "1"; + include = "${catppuccin}/themes/catppuccin-mocha.ini"; + font = let + size = "13"; + in + lib.concatStringsSep ", " [ + "Iosevka Comfy:size=${size}" + "Symbols Nerd Font:size=${size}" + "JoyPixels:size=${size}" + ]; + }; + cursor = { + blink = true; + }; + tweak = { + overflowing-glyphs = true; + }; - mouse = { - hide-when-typing = "yes"; + key-bindings = { + scrollback-up-page = "Control+Shift+k"; + scrollback-down-page = "Control+Shift+j"; + search-start = "Control+Shift+s"; + pipe-command-output = ''[sh -c "f=$(mktemp); cat - > $f; footclient hx $f; rm $f"] Control+Shift+g''; + }; + + mouse = { + hide-when-typing = "yes"; + }; }; }; - }; -} + } + (lib.mkIf config.programs.fish.enable { + programs.fish.functions = { + mark_prompt_start = { + body = ''echo -en "\e]133;A\e\\"''; + onEvent = "fish_prompt"; + }; + foot_cmd_start = { + body = ''echo -en "\e]133;C\e\\"''; + onEvent = "fish_preexec"; + }; + foot_cmd_end = { + body = ''echo -en "\e]133;D\e\\''; + onEvent = "fish_postexec"; + }; + }; + }) +] diff --git a/hmModules/helix/default.nix b/hmModules/helix/default.nix index a593e7d..9a5010f 100644 --- a/hmModules/helix/default.nix +++ b/hmModules/helix/default.nix @@ -1,6 +1,7 @@ { programs.helix = { enable = true; + defaultEditor = true; settings = { theme = "catppuccin_mocha"; editor = { @@ -11,6 +12,10 @@ select = "underline"; }; true-color = true; # to make colors coherent when in ssh + # inline-diagnostic = { + # cursor-line = "hint"; + # other-lines = "error"; + # }; }; }; languages = { @@ -19,13 +24,26 @@ name = "nix"; language-servers = ["nixd"]; } - ]; - language-servers = [ { - name = "nixd"; - command = "nixd"; + name = "markdown"; + language-servers = ["zk"]; + } + { + name = "typescript"; + language-servers = ["vtsls"]; } ]; + language-server = { + nixd.command = "nixd"; + vtsls = { + command = "vtsls"; + args = ["--stdio"]; + }; + zk = { + command = "zk"; + args = ["lsp"]; + }; + }; }; }; } diff --git a/hmModules/hyprland/default.nix b/hmModules/hyprland/default.nix index c973adf..6ea8431 100644 --- a/hmModules/hyprland/default.nix +++ b/hmModules/hyprland/default.nix @@ -50,8 +50,18 @@ in { font.name = "Sans,Symbols Nerd Font"; iconTheme = { name = "Adwaita"; - package = pkgs.gnome.adwaita-icon-theme; + package = pkgs.adwaita-icon-theme; }; + cursorTheme = { + name = "catppuccin-mocha-sapphire"; + package = pkgs.catppuccin-cursors; + size = 48; + }; + }; + + qt = { + enable = true; + platformTheme.name = "gtk3"; }; # services.kanshi = { @@ -81,126 +91,140 @@ in { # }; # }; + home.file.".icons/catppuccin-mocha-sapphire" = { + source = "${pkgs.catppuccin-cursors.mochaSapphire}/share/icons/catppuccin-mocha-sapphire-cursors"; + recursive = true; + }; + wayland.windowManager.hyprland = { enable = true; extraConfig = '' - $mod = SUPER + cursor { + hide_on_key_press = true + enable_hyprcursor = true + zoom_rigid = true + } - input { - touchpad { - disable_while_typing = true # set to true while playing - } - } + env = HYPRCURSOR_THEME,catppuccin-mocha-sapphire + env = HYPRCURSOR_SIZE,48 + env = XCURSOR_THEME,catppuccin-mocha-sapphire + env = XCURSOR_SIZE,48 - monitor = HDMI-A-1, 2560x1440, 0x0, 1 # picard - monitor = eDP-1, 1920x1080, 0x0, 1 # kirk + $mod = SUPER - bindl=,switch:off:Lid Switch,exec,${switchMonitorScript} open - bindl=,switch:on:Lid Switch,exec,${switchMonitorScript} close + input { + touchpad { + disable_while_typing = true # set to true while playing + } + } - exec-once = ${pkgs.hyprpaper}/bin/hyprpaper + monitor = HDMI-A-1, 2560x1440, 0x0, 1 # picard + monitor = eDP-1, 1920x1080, 0x0, 1 # kirk - windowrulev2 = tile, class:^(Spotify)$ - windowrulev2 = workspace 9, class:^(Spotify)$ - windowrulev2 = tile, class:^(fluffychat)$ - windowrulev2 = workspace 8, class:^(fluffychat)$ - windowrulev2 = tile, class:^(WhatsApp for Linux)$ - windowrulev2 = workspace 7, class:^(WhatsApp for Linux)$ - windowrulev2 = float, title:^(floating)$ + bindl=,switch:off:Lid Switch,exec,${switchMonitorScript} open + bindl=,switch:on:Lid Switch,exec,${switchMonitorScript} close - bind = $mod, b, exec, firefox - bind = $mod, t, exec, foot - bind = $mod, RETURN, exec, emacsclient -c --eval "(ccr/start-eshell)" - bind = $mod, x, exec, emacsclient -c - bind = $mod SHIFT, n, exec, emacsclient --eval '(ccr/org-capture "n")' -c -F '((name . "floating"))' - bind = $mod SHIFT, w, exec, emacsclient --eval '(ccr/org-capture "j")' -c -F '((name . "floating"))' - bind = $mod, y, exec, ${pkgs.waypipe}/bin/waypipe --compress lz4=10 ssh picard.fleet emacsclient -c - bind = $mod, d, exec, ${pkgs.fuzzel}/bin/fuzzel --background-color=253559cc --border-radius=5 --border-width=0 - bind = $mod, s, exec, ${screenshotScript} - bind = , XF86MonBrightnessUp, exec, ${pkgs.brightnessctl}/bin/brightnessctl s +5% - bind = , XF86MonBrightnessDown, exec, ${pkgs.brightnessctl}/bin/brightnessctl s 5%- - bind = $mod, code:60, exec, ${pkgs.brightnessctl}/bin/brightnessctl s +5% - bind = $mod, code:59, exec, ${pkgs.brightnessctl}/bin/brightnessctl s 5%- + exec-once = ${pkgs.hyprpaper}/bin/hyprpaper + windowrulev2 = tile, class:^(Spotify)$ + windowrulev2 = workspace 9, class:^(Spotify)$ + windowrulev2 = float, title:^(floating)$ - bind = $mod SHIFT, q, killactive - bind = $mod SHIFT, f, fullscreen, 0 - bind = $mod SHIFT, e, exit + bind = $mod, b, exec, firefox + bind = $mod, t, exec, footclient + bind = $mod, RETURN, exec, emacsclient -c --eval "(ccr/start-eshell)" + bind = $mod SHIFT, g, exec, emacsclient -c --eval "(ccr/start-chatgpt)" + bind = $mod, x, exec, emacsclient -c + bind = $mod SHIFT, n, exec, emacsclient --eval '(ccr/org-capture "n")' -c -F '((name . "floating"))' + bind = $mod SHIFT, w, exec, emacsclient --eval '(ccr/org-capture "j")' -c -F '((name . "floating"))' + bind = $mod, y, exec, ${pkgs.waypipe}/bin/waypipe --compress lz4=10 ssh picard.fleet emacsclient -c + bind = $mod, d, exec, ${pkgs.fuzzel}/bin/fuzzel --background-color=253559cc --border-radius=5 --border-width=0 + bind = $mod, s, exec, ${screenshotScript} + bind = , XF86MonBrightnessUp, exec, ${pkgs.brightnessctl}/bin/brightnessctl s +5% + bind = , XF86MonBrightnessDown, exec, ${pkgs.brightnessctl}/bin/brightnessctl s 5%- + bind = $mod, code:60, exec, ${pkgs.brightnessctl}/bin/brightnessctl s +5% + bind = $mod, code:59, exec, ${pkgs.brightnessctl}/bin/brightnessctl s 5%- - bind = $mod, h, movefocus, l - bind = $mod, l, movefocus, r - bind = $mod, k, movefocus, u - bind = $mod, j, movefocus, d + bind = $mod SHIFT, t, togglegroup + bind = $mod, G, changegroupactive + bind = $mod SHIFT, q, killactive + bind = $mod SHIFT, f, fullscreen, 0 + bind = $mod SHIFT, e, exit - bind = $mod SHIFT, h, movewindow, l - bind = $mod SHIFT, l, movewindow, r - bind = $mod SHIFT, k, movewindow, u - bind = $mod SHIFT, j ,movewindow, d + bind = $mod, h, movefocus, l + bind = $mod, l, movefocus, r + bind = $mod, k, movefocus, u + bind = $mod, j, movefocus, d - bind = $mod, p, movecurrentworkspacetomonitor, r - bind = $mod, o, movecurrentworkspacetomonitor, l + bind = $mod SHIFT, h, movewindow, l + bind = $mod SHIFT, l, movewindow, r + bind = $mod SHIFT, k, movewindow, u + bind = $mod SHIFT, j ,movewindow, d - bindm=ALT,mouse:272,movewindow + bind = $mod, p, movecurrentworkspacetomonitor, r + bind = $mod, o, movecurrentworkspacetomonitor, l - bind = $mod, 1, workspace, 1 - bind = $mod, 2, workspace, 2 - bind = $mod, 3, workspace, 3 - bind = $mod, 4, workspace, 4 - bind = $mod, 5, workspace, 5 - bind = $mod, 6, workspace, 6 - bind = $mod, 7, workspace, 7 - bind = $mod, 8, workspace, 8 - bind = $mod, 9, workspace, 9 - bind = $mod, 0, workspace, 10 + bindm=ALT,mouse:272,movewindow - bind = $mod SHIFT, 1, movetoworkspace, 1 - bind = $mod SHIFT, 2, movetoworkspace, 2 - bind = $mod SHIFT, 3, movetoworkspace, 3 - bind = $mod SHIFT, 4, movetoworkspace, 4 - bind = $mod SHIFT, 5, movetoworkspace, 5 - bind = $mod SHIFT, 6, movetoworkspace, 6 - bind = $mod SHIFT, 7, movetoworkspace, 7 - bind = $mod SHIFT, 8, movetoworkspace, 8 - bind = $mod SHIFT, 9, movetoworkspace, 9 - bind = $mod SHIFT, 0, movetoworkspace, 10 + bind = $mod, 1, workspace, 1 + bind = $mod, 2, workspace, 2 + bind = $mod, 3, workspace, 3 + bind = $mod, 4, workspace, 4 + bind = $mod, 5, workspace, 5 + bind = $mod, 6, workspace, 6 + bind = $mod, 7, workspace, 7 + bind = $mod, 8, workspace, 8 + bind = $mod, 9, workspace, 9 + bind = $mod, 0, workspace, 10 - general { - gaps_in = 0 - gaps_out = 0 - border_size = 1 - col.active_border = rgba(AF8D61FF) rgba(CEB153FF) rgba(7B8387FF) 45deg - col.inactive_border = rgba(AF8D6166) - } + bind = $mod SHIFT, 1, movetoworkspace, 1 + bind = $mod SHIFT, 2, movetoworkspace, 2 + bind = $mod SHIFT, 3, movetoworkspace, 3 + bind = $mod SHIFT, 4, movetoworkspace, 4 + bind = $mod SHIFT, 5, movetoworkspace, 5 + bind = $mod SHIFT, 6, movetoworkspace, 6 + bind = $mod SHIFT, 7, movetoworkspace, 7 + bind = $mod SHIFT, 8, movetoworkspace, 8 + bind = $mod SHIFT, 9, movetoworkspace, 9 + bind = $mod SHIFT, 0, movetoworkspace, 10 - decoration { - # See https://wiki.hyprland.org/Configuring/Variables/ for more + general { + gaps_in = 0 + gaps_out = 0 + border_size = 1 + col.active_border = rgba(AF8D61FF) rgba(CEB153FF) rgba(7B8387FF) 45deg + col.inactive_border = rgba(AF8D6166) + } - rounding = 2 - # blur = true - # blur_size = 8 - # blur_passes = 1 - # blur_new_optimizations = true + decoration { + # See https://wiki.hyprland.org/Configuring/Variables/ for more - drop_shadow = true - shadow_range = 4 - shadow_render_power = 3 - col.shadow = rgba(a8cfee11) - } + rounding = 2 + # blur = true + # blur_size = 8 + # blur_passes = 1 + # blur_new_optimizations = true - animations { - enabled = true + drop_shadow = true + shadow_range = 4 + shadow_render_power = 3 + col.shadow = rgba(a8cfee11) + } - # Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more + animations { + enabled = true - bezier = myBezier, 0.05, 0.9, 0.1, 1.05 + # Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more - animation = windows, 1, 3, myBezier - animation = windowsOut, 1, 3, default, popin 80% - animation = border, 1, 5, default - animation = borderangle, 1, 4, default - animation = fade, 1, 3, default - animation = workspaces, 1, 3, default - } + bezier = myBezier, 0.05, 0.9, 0.1, 1.05 + + animation = windows, 1, 3, myBezier + animation = windowsOut, 1, 3, default, popin 80% + animation = border, 1, 5, default + animation = borderangle, 1, 4, default + animation = fade, 1, 3, default + animation = workspaces, 1, 3, default + } ''; }; } diff --git a/hmModules/nix-index/default.nix b/hmModules/nix-index/default.nix index 0841b81..726d997 100644 --- a/hmModules/nix-index/default.nix +++ b/hmModules/nix-index/default.nix @@ -13,7 +13,7 @@ Service = { CPUSchedulingPolicy = "idle"; IOSchedulingClass = "idle"; - ExecStart = "${pkgs.nix-index}/bin/nix-index --nixpkgs ${fleetFlake.inputs.nixpkgsUnstable}"; + ExecStart = "${pkgs.nix-index}/bin/nix-index --nixpkgs ${fleetFlake.inputs.nixpkgs}"; }; }; diff --git a/hmModules/shell/default.nix b/hmModules/shell/default.nix index 9607807..9c1ca0f 100644 --- a/hmModules/shell/default.nix +++ b/hmModules/shell/default.nix @@ -1,9 +1,7 @@ { - config, lib, pkgs, age, - fleetFlake, hostname, ... }: { @@ -31,6 +29,24 @@ controlMaster = "auto"; }; + systemd.user.services.atuind = { + Unit.Description = "Atuin daemon"; + Install = {WantedBy = ["default.target"];}; + Service.ExecStart = "${lib.getExe pkgs.atuin} daemon"; + }; + + programs.atuin = { + enable = true; + settings = { + daemon.enabled = true; + auto_sync = true; + sync_frequency = "5m"; + sync_address = "http://sisko.fleet:8889"; + search_mode = "fuzzy"; + style = "compact"; + }; + }; + # programs.starship = { # enable = false; # settings = { @@ -222,10 +238,10 @@ nix-zsh-completions comma carapace # used by nushell + neovim ] ++ (lib.optionals (builtins.elem hostname ["kirk" "picard"]) [ - nil # TODO probably not best place - (fleetFlake.inputs.nixd.packages.${pkgs.system}.nixd) # TODO probably not best place + nixd # TODO probably not the best place terraform-lsp # TODO probably not best place python3Packages.jedi-language-server # TODO probably not best place nodePackages.typescript-language-server # TODO probably not best place diff --git a/hmModules/spotify/default.nix b/hmModules/spotify/default.nix index db39efa..fb7c2e7 100644 --- a/hmModules/spotify/default.nix +++ b/hmModules/spotify/default.nix @@ -1,7 +1,11 @@ -{pkgs, ...}: let - spotify-adblock = pkgs.nur.repos.nltch.spotify-adblock; +{ + lib, + pkgs, + ... +}: let + spotify-adblocked = pkgs.callPackage ../../packages/spotify-adblocked {}; in { - home.packages = [spotify-adblock]; + home.packages = [spotify-adblocked]; systemd.user.services.spotify-adblocked = { Install.WantedBy = ["graphical-session.target"]; @@ -12,7 +16,7 @@ in { }; Service = { - ExecStart = "${spotify-adblock}/bin/spotify"; + ExecStart = lib.getExe spotify-adblocked; Restart = "on-failure"; RestartSec = 3; }; diff --git a/hmModules/sway/default.nix b/hmModules/sway/default.nix index 1b80b13..af49d1c 100644 --- a/hmModules/sway/default.nix +++ b/hmModules/sway/default.nix @@ -30,7 +30,7 @@ font.name = "Sans,Symbols Nerd Font"; iconTheme = { name = "Adwaita"; - package = pkgs.gnome.adwaita-icon-theme; + package = pkgs.adwaita-icon-theme; }; }; diff --git a/hmModules/swayidle/default.nix b/hmModules/swayidle/default.nix index b0eb01b..bc26718 100644 --- a/hmModules/swayidle/default.nix +++ b/hmModules/swayidle/default.nix @@ -4,17 +4,6 @@ ... }: { services.swayidle = let - # Downgraded due to - # https://github.com/mortie/swaylock-effects/issues/95 - # swaylock-effects = pkgs.swaylock-effects.overrideAttrs (_: { - # version = "jirutka-master"; - # src = pkgs.fetchFromGitHub { - # owner = "jirutka"; - # repo = "swaylock-effects"; - # rev = "7c5681ce96587ce3090c6698501faeccdfdc157d"; - # sha256 = "sha256-09Kq90wIIF9lPjiY2anf9MSgi/EqeXKXW1mFmhxA/aM"; - # }; - # }); swaylockWithArgs = pkgs.writeScriptBin "swaylockWithArgs" '' ${pkgs.swaylock-effects}/bin/swaylock \ --daemonize \ @@ -30,7 +19,6 @@ --line-color 00000000 \ --inside-color 00000088 \ --separator-color 00000000 \ - --grace 2 \ --fade-in 0.2 ''; swaylockCommand = "${swaylockWithArgs}/bin/swaylockWithArgs"; diff --git a/hmModules/tremotesf/default.nix b/hmModules/tremotesf/default.nix new file mode 100644 index 0000000..37c75d9 --- /dev/null +++ b/hmModules/tremotesf/default.nix @@ -0,0 +1,21 @@ +{ + pkgs, + lib, + ... +}: { + home.packages = [pkgs.tremotesf]; + + systemd.user.services.tremotesf = { + Install.WantedBy = ["graphical-session.target"]; + + Unit = { + Description = "tremotesf"; + }; + + Service = { + ExecStart = "${lib.getExe pkgs.tremotesf} --minimized"; + Restart = "on-failure"; + RestartSec = 3; + }; + }; +} diff --git a/hmModules/vscode-server/default.nix b/hmModules/vscode-server/default.nix new file mode 100644 index 0000000..9c8dd7e --- /dev/null +++ b/hmModules/vscode-server/default.nix @@ -0,0 +1,6 @@ +{ + services.vscode-server = { + enable = true; + enableFHS = true; + }; +} diff --git a/hmModules/waybar/default.nix b/hmModules/waybar/default.nix index e654892..f7ac1be 100644 --- a/hmModules/waybar/default.nix +++ b/hmModules/waybar/default.nix @@ -1,7 +1,6 @@ { pkgs, lib, - fleetFlake, ... }: { programs.waybar = { diff --git a/hmModules/zmkbatx/default.nix b/hmModules/zmkbatx/default.nix index 3c6b6ec..64771fc 100644 --- a/hmModules/zmkbatx/default.nix +++ b/hmModules/zmkbatx/default.nix @@ -6,11 +6,10 @@ home.packages = [pkgs.zmkBATx]; systemd.user.services.zmkBATx = { - Install.WantedBy = ["graphical-session.target"]; + Install.WantedBy = ["graphical-session.target" "waybar.service"]; Unit = { Description = "zmkBATx"; - PartOf = ["graphical-session.target"]; }; Service = { diff --git a/hosts/default.nix b/hosts/default.nix index 198b282..a96b64b 100644 --- a/hosts/default.nix +++ b/hosts/default.nix @@ -80,7 +80,7 @@ in builtins.getFlake "github:NixOS/nixpkgs/${rev}"; extraHmModules = [ - inputs.ccrEmacs.hmModules.default + # inputs.ccrEmacs.hmModules.default ]; vpn = { ip = "10.100.0.5"; @@ -107,7 +107,7 @@ inputs.lix-module.nixosModules.default ]; extraHmModules = [ - inputs.ccrEmacs.hmModules.default + # inputs.ccrEmacs.hmModules.default "${inputs.homeManagerGitWorkspace}/modules/services/git-workspace.nix" ]; secrets = { @@ -132,8 +132,9 @@ # inputs.hercules-ci-agent.nixosModules.agent-service ]; extraHmModules = [ - inputs.ccrEmacs.hmModules.default + # inputs.ccrEmacs.hmModules.default "${inputs.homeManagerGitWorkspace}/modules/services/git-workspace.nix" + inputs.vscode-server.nixosModules.home ]; secrets = { "picard-wireguard-private-key" = {}; @@ -159,7 +160,6 @@ }; extraModules = with inputs; [ disko.nixosModules.disko - arion.nixosModules.arion impermanence.nixosModules.impermanence # lix-module.nixosModules.default # inputs.hercules-ci-agent.nixosModules.agent-service; diff --git a/hosts/deltaflyer/default.nix b/hosts/deltaflyer/default.nix index afef6f0..915f695 100644 --- a/hosts/deltaflyer/default.nix +++ b/hosts/deltaflyer/default.nix @@ -1,9 +1,7 @@ { fleetModules, - config, lib, pkgs, - fleetFlake, ... }: { imports = diff --git a/hosts/module.nix b/hosts/module.nix index 3c26ae6..cfc1bdd 100644 --- a/hosts/module.nix +++ b/hosts/module.nix @@ -28,7 +28,7 @@ in { nixpkgs = lib.mkOption { description = "Used nixpkgs"; type = lib.types.anything; - default = inputs.nixpkgsUnstable; + default = inputs.nixpkgs; }; extraModules = lib.mkOption { description = "Extra NixOS modules"; @@ -64,7 +64,7 @@ in { nixpkgs = lib.mkOption { description = "Used nixpkgs"; type = lib.types.anything; - default = inputs.nixpkgsUnstable; + default = inputs.nixpkgs; }; extraModules = lib.mkOption { description = "Extra NixOS modules"; @@ -101,7 +101,7 @@ in { nixpkgs = lib.mkOption { description = "Used nixpkgs"; type = lib.types.anything; - default = inputs.nixpkgsUnstable; + default = inputs.nixpkgs; }; homeManager = lib.mkOption { description = "Used home-manager"; @@ -174,11 +174,7 @@ in { default = "ccr"; }; }; - config.overlays = with inputs; - [ - nur.overlay - ] - ++ cfg.overlays; + config.overlays = with inputs; cfg.overlays; })); default = {}; }; @@ -260,7 +256,6 @@ in { fleetHmModules = builtins.map (moduleName: "${self.outPath}/hmModules/${moduleName}"); fleetFlake = self; vpn = cfg.vpnExtra // (lib.mapAttrs (_: host: host.vpn) cfg.hosts); - inherit (flakePartsArgs.config.allSystems.${config.system}.allModuleArgs.config._module.args) inputs'; }; }; }; @@ -291,7 +286,7 @@ in { internal = true; default = hostname: config: inputs.nix-on-droid.lib.nixOnDroidConfiguration { - pkgs = inputs.nixpkgsUnstable.legacyPackages.aarch64-linux; + pkgs = inputs.nixpkgs.legacyPackages.aarch64-linux; modules = [ ({ lib, diff --git a/hosts/mothership/default.nix b/hosts/mothership/default.nix index ea4a2bb..5b0562f 100644 --- a/hosts/mothership/default.nix +++ b/hosts/mothership/default.nix @@ -71,13 +71,6 @@ environment.systemPackages = with pkgs; [waypipe]; - home-manager.users.ccr.gtk = { - enable = true; - iconTheme = { - name = "Adwaita"; - package = pkgs.gnome.adwaita-icon-theme; - }; - }; programs.dconf.enable = true; programs.mosh.enable = true; diff --git a/hosts/picard/default.nix b/hosts/picard/default.nix index 5337448..01dfa6f 100644 --- a/hosts/picard/default.nix +++ b/hosts/picard/default.nix @@ -29,7 +29,6 @@ "printing" "pam" "wireguard-client" - "restic" "binfmt" "greetd" # "syncthing" @@ -37,7 +36,7 @@ "forgejo-runners" "teamviewer" # "macos-ventura" - # "sunshine" + "sunshine" "mount-rock5b" "adb" "guix" @@ -58,7 +57,8 @@ "shell" "element" "zmkbatx" - "emacs" + "tremotesf" + # "emacs" "firefox" "gpg" "mpv" @@ -83,6 +83,7 @@ "obs-studio" "calibre" "reinstall-magisk-on-lineage" + "vscode-server" ]; extraGroups = []; backupPaths = []; @@ -104,7 +105,18 @@ "i2c-dev" # needed? ]; - boot.extraModulePackages = [config.boot.kernelPackages.ddcci-driver]; + # https://github.com/NixOS/nixpkgs/issues/328909 + boot.extraModulePackages = [ + (config.boot.kernelPackages.ddcci-driver.overrideAttrs (old: { + patches = []; + src = pkgs.fetchFromGitLab { + owner = "${old.pname}-linux"; + repo = "${old.pname}-linux"; + rev = "7853cbfc28bc62e87db79f612568b25315397dd0"; + hash = "sha256-QImfvYzMqyrRGyrS6I7ERYmteaTijd8ZRnC6+bA9OyM="; + }; + })) + ]; systemd.services.ddcci = { serviceConfig.Type = "oneshot"; diff --git a/hosts/sisko/default.nix b/hosts/sisko/default.nix index a4fead7..b685f19 100644 --- a/hosts/sisko/default.nix +++ b/hosts/sisko/default.nix @@ -37,17 +37,18 @@ "garmin-collector" "restic" # "immich" + "atuin" ] ++ [ ./disko.nix ]; # boot.kernelPackages = pkgs.linuxKernel.packages.linux_6_8; - # boot.kernelPackages = pkgs.linuxPackagesFor pkgs.linux_testing; - boot.kernelPackages = let - pkgs = fleetFlake.inputs.nixpkgsUnstableForSisko.legacyPackages.aarch64-linux; - in - pkgs.linuxPackagesFor pkgs.linux_testing; + boot.kernelPackages = pkgs.linuxPackagesFor pkgs.linux_6_10; + # boot.kernelPackages = let + # pkgs = fleetFlake.inputs.nixpkgsForSisko.legacyPackages.aarch64-linux; + # in + # pkgs.linuxPackagesFor pkgs.linux_testing; # boot.kernelPackages = pkgs.linuxPackagesFor (pkgs.linux_6_9.override { # argsOverride = { # src = pkgs.fetchFromGitLab { diff --git a/modules/atuin/default.nix b/modules/atuin/default.nix new file mode 100644 index 0000000..ebbefef --- /dev/null +++ b/modules/atuin/default.nix @@ -0,0 +1,14 @@ +{config, ...}: { + services.atuin = { + enable = true; + openFirewall = false; # use only in the VPN + port = 8889; + host = "0.0.0.0"; + openRegistration = true; + }; + networking.firewall.interfaces."wg0" = { + allowedTCPPorts = [ + config.services.atuin.port + ]; + }; +} diff --git a/modules/auto-upgrade/default.nix b/modules/auto-upgrade/default.nix index 510d43d..72cd5c9 100644 --- a/modules/auto-upgrade/default.nix +++ b/modules/auto-upgrade/default.nix @@ -7,10 +7,10 @@ system.autoUpgrade = { enable = false; flake = "github:aciceri/nixfleet#${config.networking.hostName}"; - flags = - lib.lists.optional - (builtins.hasAttr "ccrEmacs" options) - ["--update-input" "ccrEmacs" "ccrEmacs"]; + # flags = + # lib.lists.optional + # (builtins.hasAttr "ccrEmacs" options) + # ["--update-input" "ccrEmacs" "ccrEmacs"]; dates = "daily"; allowReboot = false; }; diff --git a/modules/forgejo-runners/default.nix b/modules/forgejo-runners/default.nix index 9c91dbf..28b4c35 100644 --- a/modules/forgejo-runners/default.nix +++ b/modules/forgejo-runners/default.nix @@ -1,14 +1,13 @@ # heavily based on https://discourse.nixos.org/t/gitea-nix-actions-runner-setup/35279 { config, - inputs', pkgs, lib, ... }: let storeDeps = pkgs.runCommand "store-deps" {} '' mkdir -p $out/bin - for dir in ${toString [pkgs.coreutils pkgs.findutils pkgs.gnugrep pkgs.gawk pkgs.git pkgs.nix pkgs.bash pkgs.jq pkgs.nodejs inputs'.nix-fast-build.packages.nix-fast-build pkgs.curl pkgs.tea]}; do + for dir in ${with pkgs; builtins.toString [coreutils findutils gnugrep gawk git nix bash jq nodejs nix-fast-build curl tea]}; do for bin in "$dir"/bin/*; do ln -s "$bin" "$out/bin/$(basename "$bin")" done diff --git a/modules/greetd/default.nix b/modules/greetd/default.nix index 47e5f2b..d8ee546 100644 --- a/modules/greetd/default.nix +++ b/modules/greetd/default.nix @@ -13,6 +13,15 @@ Exec=Hyprland ''; }) + (pkgs.writeTextFile { + name = "xorg-session.desktop"; + destination = "/cosmic-session.desktop"; + text = '' + [Desktop Entry] + Name=Cosmic + Exec=cosmic-session + ''; + }) ]; in { services.greetd = { diff --git a/modules/home-assistant/default.nix b/modules/home-assistant/default.nix index 1ffe137..efab59b 100644 --- a/modules/home-assistant/default.nix +++ b/modules/home-assistant/default.nix @@ -27,53 +27,12 @@ rev = "d42edcabc67ba6a7f960e849c8aaec1aabef87c0"; hash = "sha256-KqbP6TpH9B0/AjtsW5TcWSNgUhND+w8rO6X8fHqtsDI="; }; - tuya-device-sharing-sdk = ps: - ps.callPackage ( - { - lib, - buildPythonPackage, - fetchPypi, - requests, - paho-mqtt, - cryptography, - }: let - pname = "tuya-device-sharing-sdk"; - version = "0.2.0"; - in - buildPythonPackage { - inherit pname version; - - src = fetchPypi { - inherit pname version; - hash = "sha256-fu8zh59wlnxtstNbNL8mIm10tiXy22oPbi6oUy5x8c8="; - }; - - postPatch = '' - touch requirements.txt - ''; - - doCheck = false; - - propagatedBuildInputs = [ - requests - paho-mqtt - cryptography - ]; - - meta = with lib; { - description = "Tuya Device Sharing SDK"; - homepage = "https://github.com/tuya/tuya-device-sharing-sdk"; - license = licenses.mit; - maintainers = with maintainers; [aciceri]; - }; - } - ) {}; in { services.home-assistant = { enable = true; openFirewall = true; package = pkgs.home-assistant.overrideAttrs (old: { - # doInstallCheck = false; + doInstallCheck = false; # prePatch = # '' # rm -rf homeassistant/components/smartthings @@ -107,7 +66,7 @@ in { # used by pun_sensor holidays beautifulsoup4 - (tuya-device-sharing-sdk python3Packages) # remove after https://github.com/NixOS/nixpkgs/pull/294706/ + tuya-device-sharing-sdk getmac garminconnect tzlocal diff --git a/modules/immich/default.nix b/modules/immich/default.nix index 54e0a9f..61ee117 100644 --- a/modules/immich/default.nix +++ b/modules/immich/default.nix @@ -1,221 +1,23 @@ -# { lib, pkgs, config, ... }: -# let -# immichRoot = "/mnt/hd/immich"; -# immichData = "${immichRoot}/data"; -# # immichVersion = "v1.105.1"; -# immichVersion = "v1.105.1"; -# sharedEnv = { -# # You can find documentation for all the supported env variables at https://immich.app/docs/install/environment-variables -# # The location where your uploaded files are stored -# UPLOAD_LOCATION="./library"; -# DB_DATA_LOCATION="./postgres"; -# IMMICH_VERSION=immichVersion; -# DB_PASSWORD="postgres"; -# DB_USERNAME="postgres"; -# DB_DATABASE_NAME="immich"; -# DB_HOSTNAME="postgres"; -# REDIS_HOSTNAME = "redis"; -# }; -# postgresRoot = "${immichRoot}/pgsql"; -# machineLearning = "${immichRoot}/ml-cache"; -# in { -# systemd.tmpfiles.rules = [ -# "d ${immichRoot} 770 ccr wheel" -# "d ${immichData} 770 ccr wheel" -# "d ${postgresRoot} 770 ccr wheel" -# "d ${machineLearning} 770 ccr wheel" -# ]; -# virtualisation.docker.enable = lib.mkForce false; -# virtualisation.podman.enable = lib.mkForce true; -# virtualisation.podman.dockerSocket.enable = lib.mkForce true; -# virtualisation.podman.defaultNetwork.settings.dns_enabled = lib.mkForce true; -# networking.firewall.interfaces."podman+".allowedUDPPorts = [53 5353]; -# environment.systemPackages = [ -# pkgs.arion -# ]; -# virtualisation.arion = { -# backend = lib.mkForce "podman-socket"; -# projects.immich = { -# serviceName = "immich"; -# settings = { -# project.name = "immich"; -# networks.default = { -# name = "immich"; -# }; -# services = { -# "server" = { -# service = { -# image = "ghcr.io/immich-app/immich-server:${immichVersion}"; -# container_name = "server"; -# command = ["start.sh" "immich"]; -# environment = sharedEnv // { -# # NODE_ENV = "production"; -# }; -# ports = [ -# "2283:3001" -# ]; -# volumes = [ -# "${immichData}:/usr/src/app/upload:rw" -# "/etc/localtime:/etc/localtime:ro" -# ]; -# depends_on = ["redis" "postgres"]; -# restart = "always"; -# }; -# }; -# "microservices" = { -# service = { -# image = "ghcr.io/immich-app/immich-server:${immichVersion}"; -# container_name = "microservices"; -# command = ["start.sh" "microservices"]; -# environment = sharedEnv; -# volumes = ["${immichData}:/usr/src/app/upload:rw"]; -# depends_on = ["redis" "postgres"]; -# restart = "always"; -# }; -# }; -# "machine_learning" = { -# service = { -# image = "ghcr.io/immich-app/immich-machine-learning:${immichVersion}"; -# container_name = "machine_learning"; -# volumes = [ -# "${machineLearning}:/cache" -# ]; -# restart = "always"; -# environment = sharedEnv // { -# # NODE_ENV = "production"; -# }; -# }; -# }; -# "redis" = { -# service = { -# image = "docker.io/redis:6.2-alpine"; -# container_name = "redis"; -# restart = "always"; -# tmpfs = ["/data"]; -# }; -# }; -# "postgres" = { -# service = { -# image = "docker.io/tensorchord/pgvecto-rs:pg14-v0.2.0"; -# container_name = "postgres"; -# volumes = [ -# "${postgresRoot}:/var/lib/postgresql/data" -# ]; -# restart = "always"; -# environment = { -# POSTGRES_PASSWORD = sharedEnv.DB_PASSWORD; -# POSTGRES_USER = sharedEnv.DB_USERNAME; -# POSTGRES_DB = sharedEnv.DB_DATABASE_NAME; -# POSTGRES_INITDB_ARGS = "--data-checksums"; -# }; -# }; -# }; -# }; -# }; -# }; -# }; -# } {config, ...}: let - immichHost = "immich.example.com"; # TODO: put your immich domain name here - - immichRoot = "/mnt/hd/immich"; # TODO: Tweak these to your desired storage locations - immichPhotos = "${immichRoot}/photos"; - immichAppdataRoot = "${immichRoot}/appdata"; - immichVersion = "release"; - # immichExternalVolume1 = "/tank/BackupData/Google Photos/someone@example.com"; # TODO: if external volumes are desired - - postgresRoot = "${immichAppdataRoot}/pgsql"; - postgresPassword = "immich"; # TODO: put a random password here - postgresUser = "immich"; - postgresDb = "immich"; + nixpkgsImmich = builtins.getFlake "github:NixOS/nixpkgs/c0ee4c1770aa1ef998c977c4cc653a07ec95d9bf"; in { - # The primary source for this configuration is the recommended docker-compose installation of immich from - # https://immich.app/docs/install/docker-compose, which linkes to: - # - https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml - # - https://github.com/immich-app/immich/releases/latest/download/example.env - # and has been transposed into nixos configuration here. Those upstream files should probably be checked - # for serious changes if there are any upgrade problems here. - # - # After initial deployment, these in-process configurations need to be done: - # - create an admin user by accessing the site - # - login with the admin user - # - set the "Machine Learning Settings" > "URL" to http://immich_machine_learning:3003 - - virtualisation.oci-containers.containers.immich_server = { - image = "ghcr.io/immich-app/immich-server:${immichVersion}"; - ports = ["127.0.0.1:2283:3001"]; - extraOptions = [ - "--pull=newer" - # Force DNS resolution to only be the podman dnsname name server; by default podman provides a resolv.conf - # that includes both this server and the upstream system server, causing resolutions of other pod names - # to be inconsistent. - "--dns=10.88.0.1" - ]; - cmd = ["start.sh" "immich"]; - environment = { - IMMICH_VERSION = immichVersion; - DB_HOSTNAME = "immich_postgres"; - DB_USERNAME = postgresUser; - DB_DATABASE_NAME = postgresDb; - DB_PASSWORD = postgresPassword; - REDIS_HOSTNAME = "immich_redis"; + containers.nextcloud = { + nixpkgs = nixpkgsImmich; + autoStart = true; + privateNetwork = true; + # hostAddress = "192.168.100.10"; + # localAddress = "192.168.100.11"; + # hostAddress6 = "fc00::1"; + # localAddress6 = "fc00::2"; + config = { + config, + pkgs, + lib, + ... + }: { + services.immich = { + enable = true; + }; }; - volumes = [ - "${immichPhotos}:/usr/src/app/upload" - "/etc/localtime:/etc/localtime:ro" - # "${immichExternalVolume1}:${immichExternalVolume1}:ro" - ]; - }; - - virtualisation.oci-containers.containers.immich_microservices = { - image = "ghcr.io/immich-app/immich-server:${immichVersion}"; - extraOptions = [ - "--pull=newer" - # Force DNS resolution to only be the podman dnsname name server; by default podman provides a resolv.conf - # that includes both this server and the upstream system server, causing resolutions of other pod names - # to be inconsistent. - "--dns=10.88.0.1" - ]; - cmd = ["start.sh" "microservices"]; - environment = { - IMMICH_VERSION = immichVersion; - DB_HOSTNAME = "immich_postgres"; - DB_USERNAME = postgresUser; - DB_DATABASE_NAME = postgresDb; - DB_PASSWORD = postgresPassword; - REDIS_HOSTNAME = "immich_redis"; - }; - volumes = [ - "${immichPhotos}:/usr/src/app/upload" - "/etc/localtime:/etc/localtime:ro" - # "${immichExternalVolume}1:${immichExternalVolume1}:ro" - ]; - }; - - virtualisation.oci-containers.containers.immich_machine_learning = { - image = "ghcr.io/immich-app/immich-machine-learning:${immichVersion}"; - extraOptions = ["--pull=newer"]; - environment = { - IMMICH_VERSION = immichVersion; - }; - volumes = [ - "${immichAppdataRoot}/model-cache:/cache" - ]; - }; - - virtualisation.oci-containers.containers.immich_redis = { - image = "redis:6.2-alpine@sha256:80cc8518800438c684a53ed829c621c94afd1087aaeb59b0d4343ed3e7bcf6c5"; - }; - - virtualisation.oci-containers.containers.immich_postgres = { - image = "tensorchord/pgvecto-rs:pg14-v0.1.11"; - environment = { - POSTGRES_PASSWORD = postgresPassword; - POSTGRES_USER = postgresUser; - POSTGRES_DB = postgresDb; - }; - volumes = [ - "${postgresRoot}:/var/lib/postgresql/data" - ]; }; } diff --git a/modules/nix/default.nix b/modules/nix/default.nix index f42df36..737eb63 100644 --- a/modules/nix/default.nix +++ b/modules/nix/default.nix @@ -32,12 +32,13 @@ "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" "mlabs.cachix.org-1:gStKdEqNKcrlSQw5iMW6wFCj3+b+1ASpBVY2SYuNV2M=" ]; + # deprecated-features = [ "url-literals" ]; }; - nixPath = ["nixpkgs=${fleetFlake.inputs.nixpkgsUnstable}"]; + nixPath = ["nixpkgs=${fleetFlake.inputs.nixpkgs}"]; extraOptions = '' - experimental-features = nix-command flakes ca-derivations impure-derivations + experimental-features = nix-command flakes impure-derivations builders-use-substitutes = true ''; @@ -50,19 +51,11 @@ registry = lib.mkForce ({ nixpkgs.to = { type = "path"; - path = fleetFlake.inputs.nixpkgsUnstable; - }; - nixpkgsUnstable.to = { - type = "path"; - path = fleetFlake.inputs.nixpkgsUnstable; - }; - nixpkgsStable.to = { - type = "path"; - path = fleetFlake.inputs.nixpkgsStable; + path = fleetFlake.inputs.nixpkgs; }; n.to = { type = "path"; - path = fleetFlake.inputs.nixpkgsUnstable; + path = fleetFlake.inputs.nixpkgs; }; } // (lib.optionalAttrs (builtins.hasAttr "ccr" config) { @@ -92,11 +85,11 @@ sshKey = "/home/${config.ccr.username}/.ssh/id_rsa"; } ++ (lib.lists.optional (config.networking.hostName == "picard") { - hostName = "mac.staging.mlabs.city"; + hostName = "mac.staging.mlabs.city?remote-program=/run/current-system/sw/bin/nix-store"; system = "x86_64-darwin"; maxJobs = 4; supportedFeatures = ["kvm" "nixos-test" "big-parallel" "benchmark"]; - protocol = "ssh-ng"; + protocol = "ssh"; sshUser = "root"; sshKey = "/home/${config.ccr.username}/.ssh/id_rsa"; }); diff --git a/modules/pipewire/default.nix b/modules/pipewire/default.nix index 334c6ea..b2d9a1b 100644 --- a/modules/pipewire/default.nix +++ b/modules/pipewire/default.nix @@ -1,3 +1,7 @@ -{ +{lib, ...}: { services.pipewire.enable = true; + + hardware.pulseaudio = { + enable = lib.mkForce false; + }; } diff --git a/modules/prometheus-exporters/default.nix b/modules/prometheus-exporters/default.nix index 7a55821..f183852 100644 --- a/modules/prometheus-exporters/default.nix +++ b/modules/prometheus-exporters/default.nix @@ -8,7 +8,7 @@ mkFor = hosts: lib.mkIf (builtins.elem hostname hosts); in { services.prometheus.exporters = { - node = mkFor ["sisko" "picard"] { + node = mkFor ["sisko" "picard" "kirk"] { enable = true; enabledCollectors = [ "cpu" @@ -34,10 +34,10 @@ in { ]; extraFlags = ["--collector.ethtool" "--collector.softirqs" "--collector.tcpstat" "--collector.wifi"]; }; - wireguard = mkFor ["sisko" "picard"] { + wireguard = mkFor ["sisko" "picard" "kirk"] { enable = true; }; - zfs = mkFor ["picard"] { + zfs = mkFor ["picard" "kirk"] { enable = true; }; # restic = mkFor ["sisko"] { @@ -49,7 +49,7 @@ in { nginx = mkFor ["sisko"] { enable = true; }; - smartctl = mkFor ["sisko" "picard"] { + smartctl = mkFor ["sisko" "picard" "kirk"] { enable = true; }; }; diff --git a/modules/prometheus/default.nix b/modules/prometheus/default.nix index c35b04e..cd52e90 100644 --- a/modules/prometheus/default.nix +++ b/modules/prometheus/default.nix @@ -35,7 +35,7 @@ in { job_name = "node"; static_configs = [ { - targets = builtins.map (host: "${host}.fleet:9100") ["sisko" "picard"]; + targets = builtins.map (host: "${host}.fleet:9100") ["sisko" "picard" "kirk"]; } ]; } @@ -43,7 +43,7 @@ in { job_name = "wireguard"; static_configs = [ { - targets = builtins.map (host: "${host}.fleet:9586") ["picard"]; + targets = builtins.map (host: "${host}.fleet:9586") ["picard" "kirk"]; } ]; } @@ -51,7 +51,7 @@ in { job_name = "zfs"; static_configs = [ { - targets = builtins.map (host: "${host}.fleet:9134") ["picard"]; + targets = builtins.map (host: "${host}.fleet:9134") ["picard" "kirk"]; } ]; } @@ -83,7 +83,7 @@ in { job_name = "smartctl"; static_configs = [ { - targets = builtins.map (host: "${host}.fleet:9633") ["sisko"]; + targets = builtins.map (host: "${host}.fleet:9633") ["sisko" "kirk" "picard"]; } ]; } diff --git a/modules/rock5b-samba/default.nix b/modules/rock5b-samba/default.nix index e33b2b7..e26c8b8 100644 --- a/modules/rock5b-samba/default.nix +++ b/modules/rock5b-samba/default.nix @@ -10,17 +10,17 @@ samba = { enable = true; securityType = "user"; - extraConfig = '' - workgroup = WORKGROUP - server string = rock5b - netbios name = rock5b - security = user - map to guest = bad user - vfs objects = recycle - recycle:repository = .recycle - recycle:keeptree = yes - recycle:versions = yes - ''; + settings.global = { + "workgroup" = "WORKGROUP"; + "server string" = "rock5b"; + "netbios name" = "rock5b"; + "security" = "user"; + "map to guest" = "bad user"; + "vfs objects" = "recycle"; + "recycle:repository" = ".recycle"; + "recycle:keeptree" = "yes"; + "recycle:versions" = "yes"; + }; shares = { torrent = { path = "/mnt/hd/torrent"; diff --git a/modules/sunshine/default.nix b/modules/sunshine/default.nix index c420ee3..8913ed1 100644 --- a/modules/sunshine/default.nix +++ b/modules/sunshine/default.nix @@ -1,21 +1,13 @@ { - services.xserver = { + services.sunshine = { enable = true; - videoDrivers = ["amdgpu"]; - - # displayManager.gdm.enable = true; - # displayManager.defaultSession = "gnome"; - - # displayManager.autoLogin.enable = true; - # displayManager.autoLogin.user = "sunshine"; # user must exists - - # desktopManager.gnome.enable = true; + autoStart = true; + capSysAdmin = true; + openFirewall = true; }; - - users.users.sunshine = { - isSystemUser = true; - group = "sunshine"; + hardware = { + bluetooth.input.General = { + ClassicBondedOnly = false; + }; }; - - users.groups.sunshine = {}; } diff --git a/modules/transmission/default.nix b/modules/transmission/default.nix index 79f12b3..c1bcc3d 100644 --- a/modules/transmission/default.nix +++ b/modules/transmission/default.nix @@ -45,4 +45,8 @@ ]; ccr.extraGroups = ["transmission"]; + + environment.persistence."/persist".directories = [ + config.services.transmission.home + ]; } diff --git a/packages/default.nix b/packages/default.nix index d501506..9aedeba 100644 --- a/packages/default.nix +++ b/packages/default.nix @@ -19,7 +19,6 @@ type = lib.types.listOf overlayType; default = with inputs; [ agenix.overlays.default - nur.overlay (final: _: { inherit (disko.packages.${final.system}) disko; inherit (self.packages.${final.system}) deploy; @@ -46,7 +45,7 @@ _module.args.pkgs = lib.foldl (legacyPackages: legacyPackages.extend) - inputs.nixpkgsUnstable.legacyPackages.${system} + inputs.nixpkgs.legacyPackages.${system} config.fleet.overlays; packages = diff --git a/packages/spotify-adblocked/default.nix b/packages/spotify-adblocked/default.nix new file mode 100644 index 0000000..18cb8c5 --- /dev/null +++ b/packages/spotify-adblocked/default.nix @@ -0,0 +1,53 @@ +{ + spotify, + rustPlatform, + fetchFromGitHub, + zip, + unzip, +}: let + spotify-adblock = rustPlatform.buildRustPackage { + pname = "spotify-adblock"; + version = "1.0.3"; + src = fetchFromGitHub { + owner = "abba23"; + repo = "spotify-adblock"; + rev = "5a3281dee9f889afdeea7263558e7a715dcf5aab"; + hash = "sha256-UzpHAHpQx2MlmBNKm2turjeVmgp5zXKWm3nZbEo0mYE="; + }; + cargoSha256 = "sha256-wPV+ZY34OMbBrjmhvwjljbwmcUiPdWNHFU3ac7aVbIQ="; + + patchPhase = '' + substituteInPlace src/lib.rs \ + --replace-fail 'config.toml' $out/etc/spotify-adblock/config.toml + ''; + + buildPhase = '' + make + ''; + + installPhase = '' + mkdir -p $out/etc/spotify-adblock + install -D --mode=644 config.toml $out/etc/spotify-adblock + mkdir -p $out/lib + install -D --mode=644 --strip target/release/libspotifyadblock.so $out/lib + ''; + }; +in + spotify.overrideAttrs ( + old: { + buildInputs = (old.buildInputs or []) ++ [zip unzip]; + postInstall = + (old.postInstall or "") + + '' + ln -s ${spotify-adblock}/lib/libspotifyadblock.so $libdir + sed -i "s:^Name=Spotify.*:Name=Spotify-adblock:" "$out/share/spotify/spotify.desktop" + wrapProgram $out/bin/spotify \ + --set LD_PRELOAD "${spotify-adblock}/lib/libspotifyadblock.so" + + # Hide placeholder for advert banner + ${unzip}/bin/unzip -p $out/share/spotify/Apps/xpui.spa xpui.js | sed 's/adsEnabled:\!0/adsEnabled:false/' > $out/share/spotify/Apps/xpui.js + ${zip}/bin/zip --junk-paths --update $out/share/spotify/Apps/xpui.spa $out/share/spotify/Apps/xpui.js + rm $out/share/spotify/Apps/xpui.js + ''; + } + ) From 6c0376da29ebf9517bdbf6fc6c40d82f7b94ef48 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 20 Sep 2024 11:18:38 +0200 Subject: [PATCH 028/492] Things --- hmModules/foot/default.nix | 4 +- hmModules/hyprland/default.nix | 149 +++---------------------- hmModules/hyprland/hyprland.conf | 184 +++++++++++++++++++++++++++++++ hmModules/hyprland/hyprpaper.nix | 1 + hosts/kirk/default.nix | 1 - hosts/sisko/default.nix | 5 + 6 files changed, 209 insertions(+), 135 deletions(-) create mode 100644 hmModules/hyprland/hyprland.conf diff --git a/hmModules/foot/default.nix b/hmModules/foot/default.nix index a40f2a5..1d46469 100644 --- a/hmModules/foot/default.nix +++ b/hmModules/foot/default.nix @@ -43,7 +43,7 @@ lib.mkMerge [ scrollback-up-page = "Control+Shift+k"; scrollback-down-page = "Control+Shift+j"; search-start = "Control+Shift+s"; - pipe-command-output = ''[sh -c "f=$(mktemp); cat - > $f; footclient hx $f; rm $f"] Control+Shift+g''; + pipe-command-output = ''[sh -c 'f=$(mktemp); cat - > $f; footclient hx $f; rm $f'] Control+Shift+g''; }; mouse = { @@ -63,7 +63,7 @@ lib.mkMerge [ onEvent = "fish_preexec"; }; foot_cmd_end = { - body = ''echo -en "\e]133;D\e\\''; + body = ''echo -en "\e]133;D\e\\"''; onEvent = "fish_postexec"; }; }; diff --git a/hmModules/hyprland/default.nix b/hmModules/hyprland/default.nix index 6ea8431..821ad1e 100644 --- a/hmModules/hyprland/default.nix +++ b/hmModules/hyprland/default.nix @@ -1,17 +1,16 @@ { config, pkgs, - lib, ... }: let - screenshotScript = pkgs.writeShellScript "screenshot.sh" '' + screenshotScript = pkgs.writeShellScriptBin "screenshot.sh" '' filename="$HOME/shots/$(date --iso-8601=seconds).png" coords="$(${pkgs.slurp}/bin/slurp)" ${pkgs.grim}/bin/grim -t png -g "$coords" "$filename" wl-copy -t image/png < $filename ''; hyprland = config.wayland.windowManager.hyprland.package; - switchMonitorScript = pkgs.writeShellScript "switch-monitor.sh" '' + switchMonitorScript = pkgs.writeShellScriptBin "switch-monitor.sh" '' if [[ "$(${hyprland}/bin/hyprctl monitors) | grep '\sDP-[0-9]+'" ]]; then if [[ $1 == "open" ]]; then ${hyprland}/bin/hyprctl keyword monitor "eDP-1,1920x1080,3760x230,1" @@ -32,7 +31,15 @@ in { ../foot ]; - home.packages = with pkgs; [wl-clipboard waypipe]; + home.packages = with pkgs; [ + wl-clipboard + waypipe + switchMonitorScript + screenshotScript + hyprpaper + fuzzel + brightnessctl + ]; systemd.user.sessionVariables = { NIXOS_OZONE_WL = "1"; @@ -98,133 +105,11 @@ in { wayland.windowManager.hyprland = { enable = true; - extraConfig = '' - cursor { - hide_on_key_press = true - enable_hyprcursor = true - zoom_rigid = true - } - - env = HYPRCURSOR_THEME,catppuccin-mocha-sapphire - env = HYPRCURSOR_SIZE,48 - env = XCURSOR_THEME,catppuccin-mocha-sapphire - env = XCURSOR_SIZE,48 - - $mod = SUPER - - input { - touchpad { - disable_while_typing = true # set to true while playing - } - } - - monitor = HDMI-A-1, 2560x1440, 0x0, 1 # picard - monitor = eDP-1, 1920x1080, 0x0, 1 # kirk - - bindl=,switch:off:Lid Switch,exec,${switchMonitorScript} open - bindl=,switch:on:Lid Switch,exec,${switchMonitorScript} close - - exec-once = ${pkgs.hyprpaper}/bin/hyprpaper - - windowrulev2 = tile, class:^(Spotify)$ - windowrulev2 = workspace 9, class:^(Spotify)$ - windowrulev2 = float, title:^(floating)$ - - bind = $mod, b, exec, firefox - bind = $mod, t, exec, footclient - bind = $mod, RETURN, exec, emacsclient -c --eval "(ccr/start-eshell)" - bind = $mod SHIFT, g, exec, emacsclient -c --eval "(ccr/start-chatgpt)" - bind = $mod, x, exec, emacsclient -c - bind = $mod SHIFT, n, exec, emacsclient --eval '(ccr/org-capture "n")' -c -F '((name . "floating"))' - bind = $mod SHIFT, w, exec, emacsclient --eval '(ccr/org-capture "j")' -c -F '((name . "floating"))' - bind = $mod, y, exec, ${pkgs.waypipe}/bin/waypipe --compress lz4=10 ssh picard.fleet emacsclient -c - bind = $mod, d, exec, ${pkgs.fuzzel}/bin/fuzzel --background-color=253559cc --border-radius=5 --border-width=0 - bind = $mod, s, exec, ${screenshotScript} - bind = , XF86MonBrightnessUp, exec, ${pkgs.brightnessctl}/bin/brightnessctl s +5% - bind = , XF86MonBrightnessDown, exec, ${pkgs.brightnessctl}/bin/brightnessctl s 5%- - bind = $mod, code:60, exec, ${pkgs.brightnessctl}/bin/brightnessctl s +5% - bind = $mod, code:59, exec, ${pkgs.brightnessctl}/bin/brightnessctl s 5%- - - bind = $mod SHIFT, t, togglegroup - bind = $mod, G, changegroupactive - bind = $mod SHIFT, q, killactive - bind = $mod SHIFT, f, fullscreen, 0 - bind = $mod SHIFT, e, exit - - bind = $mod, h, movefocus, l - bind = $mod, l, movefocus, r - bind = $mod, k, movefocus, u - bind = $mod, j, movefocus, d - - bind = $mod SHIFT, h, movewindow, l - bind = $mod SHIFT, l, movewindow, r - bind = $mod SHIFT, k, movewindow, u - bind = $mod SHIFT, j ,movewindow, d - - bind = $mod, p, movecurrentworkspacetomonitor, r - bind = $mod, o, movecurrentworkspacetomonitor, l - - bindm=ALT,mouse:272,movewindow - - bind = $mod, 1, workspace, 1 - bind = $mod, 2, workspace, 2 - bind = $mod, 3, workspace, 3 - bind = $mod, 4, workspace, 4 - bind = $mod, 5, workspace, 5 - bind = $mod, 6, workspace, 6 - bind = $mod, 7, workspace, 7 - bind = $mod, 8, workspace, 8 - bind = $mod, 9, workspace, 9 - bind = $mod, 0, workspace, 10 - - bind = $mod SHIFT, 1, movetoworkspace, 1 - bind = $mod SHIFT, 2, movetoworkspace, 2 - bind = $mod SHIFT, 3, movetoworkspace, 3 - bind = $mod SHIFT, 4, movetoworkspace, 4 - bind = $mod SHIFT, 5, movetoworkspace, 5 - bind = $mod SHIFT, 6, movetoworkspace, 6 - bind = $mod SHIFT, 7, movetoworkspace, 7 - bind = $mod SHIFT, 8, movetoworkspace, 8 - bind = $mod SHIFT, 9, movetoworkspace, 9 - bind = $mod SHIFT, 0, movetoworkspace, 10 - - general { - gaps_in = 0 - gaps_out = 0 - border_size = 1 - col.active_border = rgba(AF8D61FF) rgba(CEB153FF) rgba(7B8387FF) 45deg - col.inactive_border = rgba(AF8D6166) - } - - decoration { - # See https://wiki.hyprland.org/Configuring/Variables/ for more - - rounding = 2 - # blur = true - # blur_size = 8 - # blur_passes = 1 - # blur_new_optimizations = true - - drop_shadow = true - shadow_range = 4 - shadow_render_power = 3 - col.shadow = rgba(a8cfee11) - } - - animations { - enabled = true - - # Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more - - bezier = myBezier, 0.05, 0.9, 0.1, 1.05 - - animation = windows, 1, 3, myBezier - animation = windowsOut, 1, 3, default, popin 80% - animation = border, 1, 5, default - animation = borderangle, 1, 4, default - animation = fade, 1, 3, default - animation = workspaces, 1, 3, default - } - ''; + plugins = with pkgs.hyprlandPlugins; [ + hy3 + hyprspace + ]; + # TODO migrate to structured options + extraConfig = builtins.readFile ./hyprland.conf; }; } diff --git a/hmModules/hyprland/hyprland.conf b/hmModules/hyprland/hyprland.conf new file mode 100644 index 0000000..cfc9db7 --- /dev/null +++ b/hmModules/hyprland/hyprland.conf @@ -0,0 +1,184 @@ +cursor { + hide_on_key_press = true + enable_hyprcursor = true + zoom_rigid = true +} + +env = HYPRCURSOR_THEME,catppuccin-mocha-sapphire +env = HYPRCURSOR_SIZE,48 +env = XCURSOR_THEME,catppuccin-mocha-sapphire +env = XCURSOR_SIZE,48 + +$mod = SUPER + +input { + touchpad { + disable_while_typing = true # set to true while playing + } +} + +monitor = HDMI-A-1, 2560x1440, 0x0, 1 # picard +monitor = eDP-1, 1920x1080, 0x0, 1 # kirk + +bindl=,switch:off:Lid Switch,exec,switch-monitor.sh open +bindl=,switch:on:Lid Switch,exec,switch-monitor.sh close + +exec-once = hyprpaper + +windowrulev2 = tile, class:^(Spotify)$ +windowrulev2 = workspace 9, class:^(Spotify)$ +windowrulev2 = float, title:^(floating)$ + +bind = $mod, b, exec, firefox +bind = $mod, t, exec, footclient +bind = $mod, y, exec, waypipe --compress lz4=10 ssh picard.fleet emacsclient -c +bind = $mod, d, exec, fuzzel --background-color=253559cc --border-radius=5 --border-width=0 +bind = $mod, s, exec, screenshot.sh +bind = , XF86MonBrightnessUp, exec, brightnessctl s +5% +bind = , XF86MonBrightnessDown, exec, brightnessctl s 5%- +bind = $mod, code:60, exec, brightnessctl s +5% +bind = $mod, code:59, exec, brightnessctl s 5%- + +bind = $mod SHIFT, t, hy3:makegroup, tab, ephemeral +bind = $mod SHIFT, q, killactive +bind = $mod SHIFT, f, fullscreen, 0 +bind = $mod SHIFT, e, exit + +bind = $mod, h, hy3:movefocus, l +bind = $mod, l, hy3:movefocus, r +bind = $mod, k, hy3:movefocus, u +bind = $mod, j, hy3:movefocus, d + +bind = $mod SHIFT, h, hy3:movewindow, l +bind = $mod SHIFT, l, hy3:movewindow, r +bind = $mod SHIFT, k, hy3:movewindow, u +bind = $mod SHIFT, j ,hy3:movewindow, d + +bind = $mod, v, hy3:makegroup, v +bind = $mod SHIFT, v, hy3:makegroup, h + +bind = $mod, p, movecurrentworkspacetomonitor, r +bind = $mod, o, movecurrentworkspacetomonitor, l + +bindm=ALT,mouse:272,hy3:movewindow + +bind = $mod, 1, workspace, 1 +bind = $mod, 2, workspace, 2 +bind = $mod, 3, workspace, 3 +bind = $mod, 4, workspace, 4 +bind = $mod, 5, workspace, 5 +bind = $mod, 6, workspace, 6 +bind = $mod, 7, workspace, 7 +bind = $mod, 8, workspace, 8 +bind = $mod, 9, workspace, 9 +bind = $mod, 0, workspace, 10 + +bind = $mod SHIFT, 1, movetoworkspace, 1 +bind = $mod SHIFT, 2, movetoworkspace, 2 +bind = $mod SHIFT, 3, movetoworkspace, 3 +bind = $mod SHIFT, 4, movetoworkspace, 4 +bind = $mod SHIFT, 5, movetoworkspace, 5 +bind = $mod SHIFT, 6, movetoworkspace, 6 +bind = $mod SHIFT, 7, movetoworkspace, 7 +bind = $mod SHIFT, 8, movetoworkspace, 8 +bind = $mod SHIFT, 9, movetoworkspace, 9 +bind = $mod SHIFT, 0, movetoworkspace, 10 + +general { + layout = hy3 + gaps_in = 8 + gaps_out = 5 +} + +decoration { + rounding = 8 + + drop_shadow = true + shadow_range = 4 + shadow_render_power = 3 + col.shadow = rgba(a8cfee11) +} + +animations { + enabled = true + + bezier = myBezier, 0.05, 0.9, 0.1, 1.05 + + animation = windows, 1, 3, myBezier + animation = windowsOut, 1, 3, default, popin 80% + animation = border, 1, 5, default + animation = borderangle, 1, 4, default + animation = fade, 1, 3, default + animation = workspaces, 1, 3, default +} + +plugin { + hy3 { + # disable gaps when only one window is onscreen + # 0 - always show gaps + # 1 - hide gaps with a single window onscreen + # 2 - 1 but also show the window border + no_gaps_when_only = 0 # default: 0 + + # policy controlling what happens when a node is removed from a group, + # leaving only a group + # 0 = remove the nested group + # 1 = keep the nested group + # 2 = keep the nested group only if its parent is a tab group + node_collapse_policy = 2 # default: 2 + + # offset from group split direction when only one window is in a group + group_inset = 0 # default: 10 + + # if a tab group will automatically be created for the first window spawned in a workspace + tab_first_window = false + + # tab group settings + tabs { + # height of the tab bar + height = 20 + + # padding between the tab bar and its focused node + padding = 10 + + # the tab bar should animate in/out from the top instead of below the window + from_top = false + + # rounding of tab bar corners + rounding = 4 + + # render the window title on the bar + render_text = true + + # center the window title + text_center = true + + # font to render the window title with + text_font = Fira Code + + # height of the window title + text_height = 14 + + # left padding of the window title + text_padding = 4 + + # active tab bar segment color + # col.active = # default: 0xff32b4ff + + # urgent tab bar segment color + # col.urgent = # default: 0xffff4f4f + + # inactive tab bar segment color + # col.inactive = # default: 0x80808080 + + # active tab bar text color + # col.text.active = # default: 0xff000000 + + # urgent tab bar text color + # col.text.urgent = # default: 0xff000000 + + # inactive tab bar text color + # col.text.inactive = # default: 0xff000000 + } + } +} diff --git a/hmModules/hyprland/hyprpaper.nix b/hmModules/hyprland/hyprpaper.nix index d6ab105..73e3148 100644 --- a/hmModules/hyprland/hyprpaper.nix +++ b/hmModules/hyprland/hyprpaper.nix @@ -2,6 +2,7 @@ let wallpaper = ./wallpaper.png; in { xdg.configFile."hypr/hyprpaper.conf".text = '' + splash = false preload = ${wallpaper} wallpaper = eDP-1,${wallpaper} wallpaper = DP-1,${wallpaper} diff --git a/hosts/kirk/default.nix b/hosts/kirk/default.nix index cc529d1..64873e6 100644 --- a/hosts/kirk/default.nix +++ b/hosts/kirk/default.nix @@ -47,7 +47,6 @@ "helix" "shell" "element" - "emacs" "firefox" "gpg" "mpv" diff --git a/hosts/sisko/default.nix b/hosts/sisko/default.nix index b685f19..c6c2050 100644 --- a/hosts/sisko/default.nix +++ b/hosts/sisko/default.nix @@ -78,10 +78,15 @@ efi.canTouchEfiVariables = false; }; + hardware.deviceTree.enable = true; + hardware.deviceTree.name = "rockchip/rk3588-rock-5b.dtb"; + boot.loader.systemd-boot.installDeviceTree = true; + boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" + "usb_storage" ]; boot.kernelParams = [ From 4980df6f7529d25db625ed6668cb8498bbe456b9 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 20 Sep 2024 11:24:06 +0200 Subject: [PATCH 029/492] Use newer nixfmt --- checks/default.nix | 34 +++++++++------------------- flake.lock | 56 +++++++++++++++++++++++----------------------- flake.nix | 13 ++++++----- shell/default.nix | 8 ++----- 4 files changed, 48 insertions(+), 63 deletions(-) diff --git a/checks/default.nix b/checks/default.nix index 38df4ee..650148e 100644 --- a/checks/default.nix +++ b/checks/default.nix @@ -1,35 +1,23 @@ -{ - inputs, - self, - lib, - ... -}: { - imports = [ - inputs.treefmt-nix.flakeModule - inputs.pre-commit-hooks.flakeModule - ]; +{ inputs, self, lib, ... }: { + imports = [ inputs.treefmt-nix.flakeModule inputs.git-hooks-nix.flakeModule ]; - perSystem = _: { + perSystem = { pkgs, ... }: { treefmt.config = { projectRootFile = ".git/config"; - programs.alejandra.enable = true; + programs.nixfmt.enable = true; }; - pre-commit.settings.hooks = { - alejandra.enable = true; - # deadnix.enable = true; - # statix.enable = true; - }; + pre-commit.settings.hooks = { nixfmt.enable = true; }; + + formatter = pkgs.nixfmt-rfc-style; }; - flake.checks = let - build = _: nc: nc.config.system.build.toplevel; + flake.checks = let build = _: nc: nc.config.system.build.toplevel; in { - x86_64-linux = lib.mapAttrs build { - inherit (self.nixosConfigurations) picard; - }; + x86_64-linux = + lib.mapAttrs build { inherit (self.nixosConfigurations) picard; }; aarch64-linux = lib.mapAttrs build { - inherit (self.nixosConfigurations) sisko; #pbp; + inherit (self.nixosConfigurations) sisko; # pbp; }; }; } diff --git a/flake.lock b/flake.lock index 4bbbc41..6037f2b 100644 --- a/flake.lock +++ b/flake.lock @@ -241,10 +241,33 @@ "type": "github" } }, + "git-hooks-nix": { + "inputs": { + "flake-compat": "flake-compat", + "gitignore": "gitignore", + "nixpkgs": [ + "nixpkgs" + ], + "nixpkgs-stable": "nixpkgs-stable" + }, + "locked": { + "lastModified": 1726745158, + "narHash": "sha256-D5AegvGoEjt4rkKedmxlSEmC+nNLMBPWFxvmYnVLhjk=", + "owner": "cachix", + "repo": "git-hooks.nix", + "rev": "4e743a6920eab45e8ba0fbe49dc459f1423a4b74", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "git-hooks.nix", + "type": "github" + } + }, "gitignore": { "inputs": { "nixpkgs": [ - "pre-commit-hooks", + "git-hooks-nix", "nixpkgs" ] }, @@ -675,11 +698,11 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1726447378, - "narHash": "sha256-2yV8nmYE1p9lfmLHhOCbYwQC/W8WYfGQABoGzJOb1JQ=", + "lastModified": 1720386169, + "narHash": "sha256-NGKVY4PjzwAa4upkGtAMz1npHGoRzWotlSnVlqI40mo=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "086b448a5d54fd117f4dc2dee55c9f0ff461bdc1", + "rev": "194846768975b7ad2c4988bdb82572c00222c0d7", "type": "github" }, "original": { @@ -851,29 +874,6 @@ "type": "gitlab" } }, - "pre-commit-hooks": { - "inputs": { - "flake-compat": "flake-compat", - "gitignore": "gitignore", - "nixpkgs": [ - "nixpkgs" - ], - "nixpkgs-stable": "nixpkgs-stable" - }, - "locked": { - "lastModified": 1725513492, - "narHash": "sha256-tyMUA6NgJSvvQuzB7A1Sf8+0XCHyfSPRx/b00o6K0uo=", - "owner": "cachix", - "repo": "pre-commit-hooks.nix", - "rev": "7570de7b9b504cfe92025dd1be797bf546f66528", - "type": "github" - }, - "original": { - "owner": "cachix", - "repo": "pre-commit-hooks.nix", - "type": "github" - } - }, "purescript-overlay": { "inputs": { "nixpkgs": [ @@ -944,6 +944,7 @@ "disko": "disko", "dream2nix": "dream2nix", "flakeParts": "flakeParts", + "git-hooks-nix": "git-hooks-nix", "homeManager": "homeManager", "homeManagerGitWorkspace": "homeManagerGitWorkspace", "impermanence": "impermanence", @@ -955,7 +956,6 @@ "nixThePlanet": "nixThePlanet", "nixosHardware": "nixosHardware", "nixpkgs": "nixpkgs_5", - "pre-commit-hooks": "pre-commit-hooks", "rock5b": "rock5b", "treefmt-nix": "treefmt-nix_2", "vscode-server": "vscode-server" diff --git a/flake.nix b/flake.nix index 638d2af..96e3a2c 100644 --- a/flake.nix +++ b/flake.nix @@ -1,5 +1,6 @@ { - description = "A complete, declarative, and reproducible configuration of my entire Nix fleet"; + description = + "A complete, declarative, and reproducible configuration of my entire Nix fleet"; inputs = { flakeParts.url = "github:hercules-ci/flake-parts"; @@ -20,8 +21,8 @@ url = "github:nix-community/disko"; inputs.nixpkgs.follows = "nixpkgs"; }; - pre-commit-hooks = { - url = "github:cachix/pre-commit-hooks.nix"; + git-hooks-nix = { + url = "github:cachix/git-hooks.nix"; inputs.nixpkgs.follows = "nixpkgs"; }; agenix.url = "github:ryantm/agenix"; @@ -57,8 +58,8 @@ vscode-server.url = "github:nix-community/nixos-vscode-server"; }; - outputs = inputs @ {flakeParts, ...}: - flakeParts.lib.mkFlake {inherit inputs;} { + outputs = inputs@{ flakeParts, ... }: + flakeParts.lib.mkFlake { inherit inputs; } { imports = [ # TODO export modules as flake outputs # ./modules @@ -68,6 +69,6 @@ ./shell ./checks ]; - systems = ["x86_64-linux" "aarch64-linux"]; + systems = [ "x86_64-linux" "aarch64-linux" ]; }; } diff --git a/shell/default.nix b/shell/default.nix index f8e8240..38c8fc6 100644 --- a/shell/default.nix +++ b/shell/default.nix @@ -1,9 +1,5 @@ -{inputs, ...}: { - perSystem = { - pkgs, - config, - ... - }: { +{ + perSystem = { pkgs, config, ... }: { devShells.default = pkgs.mkShell { name = "fleet-shell"; buildInputs = with pkgs; [ From 5f644d0ccd901daca13372fbf2abe83a774752a7 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 20 Sep 2024 11:27:36 +0200 Subject: [PATCH 030/492] Format --- checks/default.nix | 51 ++++++++++++++++++++++++++++++---------------- 1 file changed, 33 insertions(+), 18 deletions(-) diff --git a/checks/default.nix b/checks/default.nix index 650148e..e809449 100644 --- a/checks/default.nix +++ b/checks/default.nix @@ -1,23 +1,38 @@ -{ inputs, self, lib, ... }: { - imports = [ inputs.treefmt-nix.flakeModule inputs.git-hooks-nix.flakeModule ]; +{ + inputs, + self, + lib, + ... +}: +{ + imports = [ + inputs.treefmt-nix.flakeModule + inputs.git-hooks-nix.flakeModule + ]; - perSystem = { pkgs, ... }: { - treefmt.config = { - projectRootFile = ".git/config"; - programs.nixfmt.enable = true; + perSystem = + { pkgs, ... }: + { + treefmt.config = { + projectRootFile = ".git/config"; + programs.nixfmt-rfc-style.enable = true; + }; + + pre-commit.settings.hooks = { + nixfmt-rfc-style.enable = true; + }; + + formatter = pkgs.nixfmt-rfc-style; }; - pre-commit.settings.hooks = { nixfmt.enable = true; }; - - formatter = pkgs.nixfmt-rfc-style; - }; - - flake.checks = let build = _: nc: nc.config.system.build.toplevel; - in { - x86_64-linux = - lib.mapAttrs build { inherit (self.nixosConfigurations) picard; }; - aarch64-linux = lib.mapAttrs build { - inherit (self.nixosConfigurations) sisko; # pbp; + flake.checks = + let + build = _: nc: nc.config.system.build.toplevel; + in + { + x86_64-linux = lib.mapAttrs build { inherit (self.nixosConfigurations) picard; }; + aarch64-linux = lib.mapAttrs build { + inherit (self.nixosConfigurations) sisko; # pbp; + }; }; - }; } From a394b9cefdb8499d119b91c7cbcf79d107814e8d Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 20 Sep 2024 11:37:17 +0200 Subject: [PATCH 031/492] Reformat everything --- checks/default.nix | 14 +- flake.nix | 11 +- hmModules/aerc/default.nix | 2 +- hmModules/binance/default.nix | 5 +- hmModules/btop/default.nix | 21 +- hmModules/calibre/default.nix | 5 +- hmModules/chrome/default.nix | 3 +- hmModules/cura/default.nix | 25 +- hmModules/digikam/default.nix | 5 +- hmModules/discord/default.nix | 5 +- hmModules/dolphin/default.nix | 5 +- hmModules/element/default.nix | 9 +- hmModules/emacs/default.nix | 4 +- hmModules/email/default.nix | 37 +- hmModules/firefox/default.nix | 7 +- hmModules/foot/default.nix | 83 +-- hmModules/git-workspace/default.nix | 3 +- hmModules/git/default.nix | 11 +- hmModules/gnome-keyring/default.nix | 6 +- hmModules/gpg/default.nix | 38 +- hmModules/headless-hyprland/default.nix | 9 +- hmModules/helix/default.nix | 10 +- hmModules/hyprland/default.nix | 6 +- hmModules/hyprland/hyprpaper.nix | 3 +- hmModules/kicad/default.nix | 5 +- hmModules/kitty/default.nix | 3 +- hmModules/lazygit/default.nix | 3 +- hmModules/lutris/default.nix | 5 +- hmModules/monero/default.nix | 5 +- hmModules/moonlight/default.nix | 5 +- hmModules/mopidy/default.nix | 15 +- hmModules/nheko/default.nix | 5 +- hmModules/nix-index/default.nix | 17 +- hmModules/obs-studio/default.nix | 8 +- hmModules/openscad/default.nix | 5 +- hmModules/pantalaimon/default.nix | 2 +- hmModules/password-store/default.nix | 5 +- hmModules/qutebrowser/default.nix | 26 +- .../reinstall-magisk-on-lineage/default.nix | 8 +- hmModules/remmina/default.nix | 5 +- hmModules/shell/default.nix | 68 ++- hmModules/slack/default.nix | 5 +- hmModules/spotify/default.nix | 14 +- hmModules/steam-run/default.nix | 5 +- hmModules/sway/default.nix | 181 +++--- hmModules/swayidle/default.nix | 93 ++-- hmModules/teams/default.nix | 5 +- hmModules/thunderbird/default.nix | 6 +- hmModules/tor-browser/default.nix | 5 +- hmModules/tremotesf/default.nix | 7 +- hmModules/vscode/default.nix | 3 +- hmModules/waybar/default.nix | 48 +- hmModules/wayvnc/default.nix | 7 +- hmModules/wezterm/default.nix | 73 ++- hmModules/whatsapp/default.nix | 9 +- hmModules/wine/default.nix | 3 +- hmModules/xdg/default.nix | 19 +- hmModules/zmkbatx/default.nix | 10 +- hmModules/zulip/default.nix | 5 +- hosts/archer/default.nix | 3 +- hosts/beebox/default.nix | 5 +- hosts/beebox/hardware-configuration.nix | 19 +- hosts/default.nix | 39 +- hosts/deltaflyer/default.nix | 53 +- hosts/deltaflyer/plasma-mobile.nix | 5 +- hosts/devbox/default.nix | 27 +- hosts/devbox/disko.nix | 7 +- hosts/hs/default.nix | 69 +-- hosts/hs/hardware-configuration.nix | 14 +- hosts/janeway/default.nix | 99 ++-- hosts/kirk/default.nix | 10 +- hosts/module.nix | 520 ++++++++++-------- hosts/mothership/default.nix | 35 +- hosts/mothership/disko.nix | 9 +- hosts/oneplus5t/default.nix | 6 +- hosts/pbp/default.nix | 3 +- hosts/pbp/hardware-configuration.nix | 7 +- hosts/picard/default.nix | 15 +- hosts/sisko/default.nix | 8 +- hosts/sisko/disko.nix | 17 +- hosts/test/default.nix | 6 +- hosts/thinkpad/default.nix | 25 +- hosts/thinkpad/hardware-configuration.nix | 44 +- hosts/thinkpad/zfs.nix | 8 +- modules/adb/default.nix | 2 +- modules/adguard-home/default.nix | 7 +- modules/atuin/default.nix | 3 +- modules/audio/default.nix | 5 +- modules/auto-upgrade/default.nix | 5 +- modules/battery/default.nix | 5 +- modules/binfmt/default.nix | 6 +- modules/bluetooth/default.nix | 7 +- modules/bubbleupnp/default.nix | 9 +- modules/ccr/default.nix | 109 ++-- modules/cgit/config.nix | 55 +- modules/cgit/default.nix | 229 ++++---- modules/cloudflare-dyndns/default.nix | 3 +- modules/common/default.nix | 3 +- modules/dbus/default.nix | 5 +- modules/docker/default.nix | 9 +- modules/fonts/default.nix | 23 +- modules/forgejo-runners/default.nix | 365 ++++++------ modules/forgejo/default.nix | 6 +- modules/fprintd/default.nix | 2 +- modules/garmin-collector/default.nix | 11 +- modules/grafana/default.nix | 6 +- modules/greetd/default.nix | 6 +- modules/grocy/default.nix | 7 +- modules/hass-poweroff/default.nix | 9 +- modules/hercules-ci/default.nix | 3 +- modules/home-assistant/default.nix | 37 +- modules/hydra/config.nix | 8 +- modules/hydra/default.nix | 190 ++++--- modules/hydra/jobsets.nix | 92 ++-- modules/immich/default.nix | 23 +- modules/immich/module.nix | 278 +++++----- modules/jellyfin/default.nix | 2 +- modules/kodi/default.nix | 16 +- modules/loki/default.nix | 6 +- modules/macos-ventura/default.nix | 5 +- modules/mara/default.nix | 22 +- modules/matrix/default.nix | 19 +- modules/mediatomb/default.nix | 2 +- modules/minidlna/default.nix | 7 +- modules/minio/default.nix | 10 +- modules/mothership-proxy/default.nix | 5 +- modules/mount-rock5b/default.nix | 19 +- modules/networkmanager/default.nix | 5 +- modules/nextcloud/default.nix | 9 +- modules/nix-serve/default.nix | 8 +- modules/nix/default.nix | 26 +- modules/org-roam-ui/default.nix | 5 +- modules/paperless/default.nix | 8 +- modules/pipewire/default.nix | 3 +- modules/plex/default.nix | 2 +- modules/printing/default.nix | 5 +- modules/printing/driver.nix | 107 ++-- modules/prometheus-exporters/default.nix | 113 ++-- modules/prometheus/default.nix | 40 +- modules/promtail/default.nix | 16 +- modules/qmk-udev/default.nix | 5 +- modules/remote-xfce/default.nix | 13 +- modules/restic/default.nix | 12 +- modules/rock5b-proxy/default.nix | 7 +- modules/rock5b-samba/default.nix | 7 +- modules/searx/default.nix | 8 +- modules/ssh-initrd/default.nix | 3 +- modules/ssh/default.nix | 7 +- modules/syncthing/default.nix | 16 +- modules/teamviewer/default.nix | 5 +- modules/transmission/default.nix | 5 +- modules/virt-manager/default.nix | 5 +- modules/vm-mara/default.nix | 64 +-- modules/vm-mara/i915-sriov-dkms.nix | 25 +- modules/vm-sala/default.nix | 135 ++--- modules/vm-ubuntu/default.nix | 45 +- modules/wireguard-client/default.nix | 9 +- modules/wireguard-common/default.nix | 14 +- modules/wireguard-server/default.nix | 19 +- modules/xdg/default.nix | 3 +- packages/default.nix | 58 +- packages/deploy/default.nix | 2 +- packages/garmin-collector/default.nix | 2 +- packages/llm-workflow-engine/default.nix | 95 ++-- packages/spotify-adblocked/default.nix | 38 +- secrets/secrets.nix | 217 ++++++-- shell/default.nix | 42 +- 167 files changed, 2795 insertions(+), 2122 deletions(-) diff --git a/checks/default.nix b/checks/default.nix index e809449..d4de7c0 100644 --- a/checks/default.nix +++ b/checks/default.nix @@ -11,18 +11,20 @@ ]; perSystem = - { pkgs, ... }: + { ... }: { treefmt.config = { projectRootFile = ".git/config"; - programs.nixfmt-rfc-style.enable = true; + programs = { + nixfmt-rfc-style.enable = true; + deadnix.enable = true; + }; }; pre-commit.settings.hooks = { nixfmt-rfc-style.enable = true; + deadnix.enable = true; }; - - formatter = pkgs.nixfmt-rfc-style; }; flake.checks = @@ -30,7 +32,9 @@ build = _: nc: nc.config.system.build.toplevel; in { - x86_64-linux = lib.mapAttrs build { inherit (self.nixosConfigurations) picard; }; + x86_64-linux = lib.mapAttrs build { + inherit (self.nixosConfigurations) picard; + }; aarch64-linux = lib.mapAttrs build { inherit (self.nixosConfigurations) sisko; # pbp; }; diff --git a/flake.nix b/flake.nix index 96e3a2c..d4bf146 100644 --- a/flake.nix +++ b/flake.nix @@ -1,6 +1,5 @@ { - description = - "A complete, declarative, and reproducible configuration of my entire Nix fleet"; + description = "A complete, declarative, and reproducible configuration of my entire Nix fleet"; inputs = { flakeParts.url = "github:hercules-ci/flake-parts"; @@ -58,7 +57,8 @@ vscode-server.url = "github:nix-community/nixos-vscode-server"; }; - outputs = inputs@{ flakeParts, ... }: + outputs = + inputs@{ flakeParts, ... }: flakeParts.lib.mkFlake { inherit inputs; } { imports = [ # TODO export modules as flake outputs @@ -69,6 +69,9 @@ ./shell ./checks ]; - systems = [ "x86_64-linux" "aarch64-linux" ]; + systems = [ + "x86_64-linux" + "aarch64-linux" + ]; }; } diff --git a/hmModules/aerc/default.nix b/hmModules/aerc/default.nix index 6c3e65b..1c3c122 100644 --- a/hmModules/aerc/default.nix +++ b/hmModules/aerc/default.nix @@ -1,5 +1,5 @@ { - imports = [../email]; + imports = [ ../email ]; config = { accounts.email.accounts = { autistici.aerc = { diff --git a/hmModules/binance/default.nix b/hmModules/binance/default.nix index c0aa5d2..07c6759 100644 --- a/hmModules/binance/default.nix +++ b/hmModules/binance/default.nix @@ -1,3 +1,4 @@ -{pkgs, ...}: { - home.packages = [pkgs.binance]; +{ pkgs, ... }: +{ + home.packages = [ pkgs.binance ]; } diff --git a/hmModules/btop/default.nix b/hmModules/btop/default.nix index 08fc3a7..d3568da 100644 --- a/hmModules/btop/default.nix +++ b/hmModules/btop/default.nix @@ -1,18 +1,21 @@ -{pkgs, ...}: { +{ pkgs, ... }: +{ programs.btop = { enable = true; settings = { update_ms = 100; theme_background = false; # color_theme = "${config.programs.btop.package}/share/btop/themes/dracula.theme"; - color_theme = let - catppuccin-theme = pkgs.fetchFromGitHub { - owner = "catppuccin"; - repo = "btop"; - rev = "21b8d5956a8b07fa52519e3267fb3a2d2e693d17"; - hash = "sha256-UXeTypc15MhjgGUiCrDUZ40m32yH2o1N+rcrEgY6sME="; - }; - in "${catppuccin-theme}/themes/catppuccin_mocha.theme"; + color_theme = + let + catppuccin-theme = pkgs.fetchFromGitHub { + owner = "catppuccin"; + repo = "btop"; + rev = "21b8d5956a8b07fa52519e3267fb3a2d2e693d17"; + hash = "sha256-UXeTypc15MhjgGUiCrDUZ40m32yH2o1N+rcrEgY6sME="; + }; + in + "${catppuccin-theme}/themes/catppuccin_mocha.theme"; }; }; } diff --git a/hmModules/calibre/default.nix b/hmModules/calibre/default.nix index dca9687..b2fd97a 100644 --- a/hmModules/calibre/default.nix +++ b/hmModules/calibre/default.nix @@ -1,3 +1,4 @@ -{pkgs, ...}: { - home.packages = [pkgs.calibre]; +{ pkgs, ... }: +{ + home.packages = [ pkgs.calibre ]; } diff --git a/hmModules/chrome/default.nix b/hmModules/chrome/default.nix index f90f3ce..595c255 100644 --- a/hmModules/chrome/default.nix +++ b/hmModules/chrome/default.nix @@ -1,4 +1,5 @@ -{pkgs, ...}: { +{ pkgs, ... }: +{ programs.chromium = { enable = true; package = pkgs.google-chrome; diff --git a/hmModules/cura/default.nix b/hmModules/cura/default.nix index 32a1c64..7b530f3 100644 --- a/hmModules/cura/default.nix +++ b/hmModules/cura/default.nix @@ -1,15 +1,17 @@ -{pkgs, ...}: { +{ pkgs, ... }: +{ home.packages = [ - (let - cura5 = pkgs.appimageTools.wrapType2 rec { - name = "cura5"; - version = "5.8.0"; - src = pkgs.fetchurl { - url = "https://github.com/Ultimaker/Cura/releases/download/${version}/UltiMaker-Cura-${version}-linux-X64.AppImage"; - hash = "sha256-EojVAe+o43W80ES5BY3QgGRTxztwS+B6kIOfJOtULOg="; + ( + let + cura5 = pkgs.appimageTools.wrapType2 rec { + name = "cura5"; + version = "5.8.0"; + src = pkgs.fetchurl { + url = "https://github.com/Ultimaker/Cura/releases/download/${version}/UltiMaker-Cura-${version}-linux-X64.AppImage"; + hash = "sha256-EojVAe+o43W80ES5BY3QgGRTxztwS+B6kIOfJOtULOg="; + }; }; - }; - in + in pkgs.writeScriptBin "cura" '' #! ${pkgs.bash}/bin/bash # AppImage version of Cura loses current working directory and treats all paths relateive to $HOME. @@ -23,6 +25,7 @@ args+=("$a") done QT_QPA_PLATFORM=xcb exec "${cura5}/bin/cura5" "''${args[@]}" - '') + '' + ) ]; } diff --git a/hmModules/digikam/default.nix b/hmModules/digikam/default.nix index 928dde1..a2f5b1e 100644 --- a/hmModules/digikam/default.nix +++ b/hmModules/digikam/default.nix @@ -1,3 +1,4 @@ -{pkgs, ...}: { - home.packages = [pkgs.digikam]; +{ pkgs, ... }: +{ + home.packages = [ pkgs.digikam ]; } diff --git a/hmModules/discord/default.nix b/hmModules/discord/default.nix index 2dde8bf..90f6d31 100644 --- a/hmModules/discord/default.nix +++ b/hmModules/discord/default.nix @@ -1,5 +1,6 @@ -{pkgs, ...}: { - home.packages = [pkgs.discord]; +{ pkgs, ... }: +{ + home.packages = [ pkgs.discord ]; home.file.".config/discord/settings.json".text = builtins.toJSON { SKIP_HOST_UPDATE = true; }; diff --git a/hmModules/dolphin/default.nix b/hmModules/dolphin/default.nix index e24cc30..0b68c57 100644 --- a/hmModules/dolphin/default.nix +++ b/hmModules/dolphin/default.nix @@ -1,3 +1,4 @@ -{pkgs, ...}: { - home.packages = [pkgs.dolphin-emu]; +{ pkgs, ... }: +{ + home.packages = [ pkgs.dolphin-emu ]; } diff --git a/hmModules/element/default.nix b/hmModules/element/default.nix index e0f4282..34266c3 100644 --- a/hmModules/element/default.nix +++ b/hmModules/element/default.nix @@ -1,13 +1,14 @@ -{pkgs, ...}: { +{ pkgs, ... }: +{ # home.packages = [pkgs.schildichat-desktop]; - home.packages = [pkgs.element-desktop-wayland]; + home.packages = [ pkgs.element-desktop-wayland ]; systemd.user.services.element-desktop = { - Install.WantedBy = ["graphical-session.target"]; + Install.WantedBy = [ "graphical-session.target" ]; Unit = { Description = "Element"; - PartOf = ["graphical-session.target"]; + PartOf = [ "graphical-session.target" ]; }; Service = { diff --git a/hmModules/emacs/default.nix b/hmModules/emacs/default.nix index 69d5607..98463cc 100644 --- a/hmModules/emacs/default.nix +++ b/hmModules/emacs/default.nix @@ -1,9 +1,9 @@ { lib, age, - pkgs, ... -}: { +}: +{ ccrEmacs.enable = true; home.sessionVariables.EDITOR = lib.mkForce "emacsclient"; systemd.user.services.emacs.Service.EnvironmentFile = age.secrets.chatgpt-token.path; diff --git a/hmModules/email/default.nix b/hmModules/email/default.nix index dd02c0c..648bbc8 100644 --- a/hmModules/email/default.nix +++ b/hmModules/email/default.nix @@ -2,22 +2,25 @@ pkgs, secrets, ... -}: { +}: +{ programs.mbsync.enable = true; programs.msmtp.enable = true; services.mbsync.enable = true; - home.file.".config/aerc/stylesets" = let - catppuccin-aerc = pkgs.fetchFromGitHub { - owner = "catppuccin"; - repo = "aerc"; - rev = "ca404a9f2d125ef12db40db663d43c9d94116a05"; - hash = "sha256-OWIkHsKFts/zkrDUtbBPXHVSrHL/F0v3LB1rnlFAKmE="; + home.file.".config/aerc/stylesets" = + let + catppuccin-aerc = pkgs.fetchFromGitHub { + owner = "catppuccin"; + repo = "aerc"; + rev = "ca404a9f2d125ef12db40db663d43c9d94116a05"; + hash = "sha256-OWIkHsKFts/zkrDUtbBPXHVSrHL/F0v3LB1rnlFAKmE="; + }; + in + { + source = "${catppuccin-aerc}/dist"; + recursive = true; }; - in { - source = "${catppuccin-aerc}/dist"; - recursive = true; - }; programs.aerc = { enable = true; @@ -81,7 +84,9 @@ "" = ":clear"; }; - "messages:folder=Drafts" = {"" = ":recall";}; + "messages:folder=Drafts" = { + "" = ":recall"; + }; view = { "/" = ":toggle-key-passthrough/"; @@ -164,8 +169,12 @@ border-char-vertical = "┃"; border-char-horizontal = "━"; }; - viewer = {always-show-mime = true;}; - compose = {no-attachment-warning = "^[^>]*attach(ed|ment)";}; + viewer = { + always-show-mime = true; + }; + compose = { + no-attachment-warning = "^[^>]*attach(ed|ment)"; + }; triggers = { email-received = ''exec notify-send "New email from %n" "%s"''; }; diff --git a/hmModules/firefox/default.nix b/hmModules/firefox/default.nix index 954dbc3..f6ae31e 100644 --- a/hmModules/firefox/default.nix +++ b/hmModules/firefox/default.nix @@ -2,14 +2,15 @@ pkgs, username, ... -}: { +}: +{ programs.firefox = { enable = true; package = pkgs.wrapFirefox pkgs.firefox-unwrapped { extraPolicies = { - ExtensionSettings = {}; + ExtensionSettings = { }; }; - nativeMessagingHosts = [pkgs.tridactyl-native]; + nativeMessagingHosts = [ pkgs.tridactyl-native ]; }; profiles.${username} = { settings = { diff --git a/hmModules/foot/default.nix b/hmModules/foot/default.nix index 1d46469..620e385 100644 --- a/hmModules/foot/default.nix +++ b/hmModules/foot/default.nix @@ -6,51 +6,54 @@ }: lib.mkMerge [ { - programs.foot = let - catppuccin = pkgs.fetchFromGitHub { - owner = "catppuccin"; - repo = "foot"; - rev = "307611230661b7b1787feb7f9d122e851bae97e9"; - hash = "sha256-mkPYHDJtfdfDnqLr1YOjaBpn4lCceok36LrnkUkNIE4="; - }; - in { - enable = true; - server.enable = true; - settings = { - main = { - term = "xterm-256color"; - login-shell = "yes"; - dpi-aware = "no"; - horizontal-letter-offset = "1"; - include = "${catppuccin}/themes/catppuccin-mocha.ini"; - font = let - size = "13"; - in - lib.concatStringsSep ", " [ - "Iosevka Comfy:size=${size}" - "Symbols Nerd Font:size=${size}" - "JoyPixels:size=${size}" - ]; - }; - cursor = { - blink = true; - }; - tweak = { - overflowing-glyphs = true; + programs.foot = + let + catppuccin = pkgs.fetchFromGitHub { + owner = "catppuccin"; + repo = "foot"; + rev = "307611230661b7b1787feb7f9d122e851bae97e9"; + hash = "sha256-mkPYHDJtfdfDnqLr1YOjaBpn4lCceok36LrnkUkNIE4="; }; + in + { + enable = true; + server.enable = true; + settings = { + main = { + term = "xterm-256color"; + login-shell = "yes"; + dpi-aware = "no"; + horizontal-letter-offset = "1"; + include = "${catppuccin}/themes/catppuccin-mocha.ini"; + font = + let + size = "13"; + in + lib.concatStringsSep ", " [ + "Iosevka Comfy:size=${size}" + "Symbols Nerd Font:size=${size}" + "JoyPixels:size=${size}" + ]; + }; + cursor = { + blink = true; + }; + tweak = { + overflowing-glyphs = true; + }; - key-bindings = { - scrollback-up-page = "Control+Shift+k"; - scrollback-down-page = "Control+Shift+j"; - search-start = "Control+Shift+s"; - pipe-command-output = ''[sh -c 'f=$(mktemp); cat - > $f; footclient hx $f; rm $f'] Control+Shift+g''; - }; + key-bindings = { + scrollback-up-page = "Control+Shift+k"; + scrollback-down-page = "Control+Shift+j"; + search-start = "Control+Shift+s"; + pipe-command-output = ''[sh -c 'f=$(mktemp); cat - > $f; footclient hx $f; rm $f'] Control+Shift+g''; + }; - mouse = { - hide-when-typing = "yes"; + mouse = { + hide-when-typing = "yes"; + }; }; }; - }; } (lib.mkIf config.programs.fish.enable { programs.fish.functions = { diff --git a/hmModules/git-workspace/default.nix b/hmModules/git-workspace/default.nix index ac8cc85..25f37ca 100644 --- a/hmModules/git-workspace/default.nix +++ b/hmModules/git-workspace/default.nix @@ -2,7 +2,8 @@ age, username, ... -}: { +}: +{ services.git-workspace = { enable = true; frequency = "04:00:00"; diff --git a/hmModules/git/default.nix b/hmModules/git/default.nix index 52786b2..fcec555 100644 --- a/hmModules/git/default.nix +++ b/hmModules/git/default.nix @@ -2,13 +2,18 @@ pkgs, username, ... -}: let +}: +let config = { name = "Andrea Ciceri"; email = "andrea.ciceri@autistici.org"; }; -in { - imports = [../gitui ../lazygit]; +in +{ + imports = [ + ../gitui + ../lazygit + ]; programs.git = { enable = true; package = pkgs.gitAndTools.gitFull; diff --git a/hmModules/gnome-keyring/default.nix b/hmModules/gnome-keyring/default.nix index b0135ff..9426154 100644 --- a/hmModules/gnome-keyring/default.nix +++ b/hmModules/gnome-keyring/default.nix @@ -1,9 +1,9 @@ { pkgs, lib, - config, ... -}: { +}: +{ services.gnome-keyring = { enable = false; # Is this broken? https://github.com/nix-community/home-manager/issues/1454 components = lib.mkForce [ @@ -12,7 +12,7 @@ ]; }; - home.packages = [pkgs.gcr]; # Needed in PATH + home.packages = [ pkgs.gcr ]; # Needed in PATH # Workaround wayland.windowManager.hyprland.extraConfig = '' diff --git a/hmModules/gpg/default.nix b/hmModules/gpg/default.nix index a28eb67..469c27a 100644 --- a/hmModules/gpg/default.nix +++ b/hmModules/gpg/default.nix @@ -1,25 +1,31 @@ -{pkgs, ...}: { +{ pkgs, ... }: +{ services.gpg-agent = { enable = true; enableSshSupport = true; - sshKeys = ["CE2FD0D9BECBD8876811714925066CC257413416"]; - extraConfig = let - pinentryRofi = pkgs.writeShellApplication { - name = "pinentry-rofi-with-env"; - runtimeInputs = with pkgs; [coreutils rofi]; - text = '' - "${pkgs.pinentry-rofi}/bin/pinentry-rofi" "$@" - ''; - }; - in '' - allow-emacs-pinentry - allow-loopback-pinentry - pinentry-program ${pinentryRofi}/bin/pinentry-rofi-with-env - ''; + sshKeys = [ "CE2FD0D9BECBD8876811714925066CC257413416" ]; + extraConfig = + let + pinentryRofi = pkgs.writeShellApplication { + name = "pinentry-rofi-with-env"; + runtimeInputs = with pkgs; [ + coreutils + rofi + ]; + text = '' + "${pkgs.pinentry-rofi}/bin/pinentry-rofi" "$@" + ''; + }; + in + '' + allow-emacs-pinentry + allow-loopback-pinentry + pinentry-program ${pinentryRofi}/bin/pinentry-rofi-with-env + ''; }; programs.gpg = { enable = true; - settings = {}; + settings = { }; }; } diff --git a/hmModules/headless-hyprland/default.nix b/hmModules/headless-hyprland/default.nix index e15b20a..44d7fdb 100644 --- a/hmModules/headless-hyprland/default.nix +++ b/hmModules/headless-hyprland/default.nix @@ -1,11 +1,12 @@ { - config, lib, ... -}: let +}: +let originalConfig = config.wayland.windowManager.hyprland.extraConfig; - config = builtins.replaceStrings ["SUPER"] [""] originalConfig; -in { + config = builtins.replaceStrings [ "SUPER" ] [ "" ] originalConfig; +in +{ systemd.user.services.headless-hyprland = { Unit.Description = "Headless Hyprland"; Service = { diff --git a/hmModules/helix/default.nix b/hmModules/helix/default.nix index 9a5010f..4e724e2 100644 --- a/hmModules/helix/default.nix +++ b/hmModules/helix/default.nix @@ -22,26 +22,26 @@ language = [ { name = "nix"; - language-servers = ["nixd"]; + language-servers = [ "nixd" ]; } { name = "markdown"; - language-servers = ["zk"]; + language-servers = [ "zk" ]; } { name = "typescript"; - language-servers = ["vtsls"]; + language-servers = [ "vtsls" ]; } ]; language-server = { nixd.command = "nixd"; vtsls = { command = "vtsls"; - args = ["--stdio"]; + args = [ "--stdio" ]; }; zk = { command = "zk"; - args = ["lsp"]; + args = [ "lsp" ]; }; }; }; diff --git a/hmModules/hyprland/default.nix b/hmModules/hyprland/default.nix index 821ad1e..646254c 100644 --- a/hmModules/hyprland/default.nix +++ b/hmModules/hyprland/default.nix @@ -2,7 +2,8 @@ config, pkgs, ... -}: let +}: +let screenshotScript = pkgs.writeShellScriptBin "screenshot.sh" '' filename="$HOME/shots/$(date --iso-8601=seconds).png" coords="$(${pkgs.slurp}/bin/slurp)" @@ -19,7 +20,8 @@ fi fi ''; -in { +in +{ imports = [ ./hyprpaper.nix ../waybar diff --git a/hmModules/hyprland/hyprpaper.nix b/hmModules/hyprland/hyprpaper.nix index 73e3148..5264414 100644 --- a/hmModules/hyprland/hyprpaper.nix +++ b/hmModules/hyprland/hyprpaper.nix @@ -1,6 +1,7 @@ let wallpaper = ./wallpaper.png; -in { +in +{ xdg.configFile."hypr/hyprpaper.conf".text = '' splash = false preload = ${wallpaper} diff --git a/hmModules/kicad/default.nix b/hmModules/kicad/default.nix index 280d450..9acc796 100644 --- a/hmModules/kicad/default.nix +++ b/hmModules/kicad/default.nix @@ -1,3 +1,4 @@ -{pkgs, ...}: { - home.packages = [pkgs.kicad-small]; +{ pkgs, ... }: +{ + home.packages = [ pkgs.kicad-small ]; } diff --git a/hmModules/kitty/default.nix b/hmModules/kitty/default.nix index 49a60e8..da36cd0 100644 --- a/hmModules/kitty/default.nix +++ b/hmModules/kitty/default.nix @@ -1,4 +1,5 @@ -{pkgs, ...}: { +{ ... }: +{ programs.kitty = { enable = true; font = { diff --git a/hmModules/lazygit/default.nix b/hmModules/lazygit/default.nix index 1689ddc..6b16376 100644 --- a/hmModules/lazygit/default.nix +++ b/hmModules/lazygit/default.nix @@ -1,4 +1,5 @@ -{pkgs, ...}: { +{ pkgs, ... }: +{ programs.lazygit = { enable = true; settings = { diff --git a/hmModules/lutris/default.nix b/hmModules/lutris/default.nix index 13c2b29..475abdf 100644 --- a/hmModules/lutris/default.nix +++ b/hmModules/lutris/default.nix @@ -1,3 +1,4 @@ -{pkgs, ...}: { - home.packages = [pkgs.lutris]; +{ pkgs, ... }: +{ + home.packages = [ pkgs.lutris ]; } diff --git a/hmModules/monero/default.nix b/hmModules/monero/default.nix index 427658b..5bf4116 100644 --- a/hmModules/monero/default.nix +++ b/hmModules/monero/default.nix @@ -1,3 +1,4 @@ -{pkgs, ...}: { - home.packages = [pkgs.monero-gui]; +{ pkgs, ... }: +{ + home.packages = [ pkgs.monero-gui ]; } diff --git a/hmModules/moonlight/default.nix b/hmModules/moonlight/default.nix index 653f421..0637001 100644 --- a/hmModules/moonlight/default.nix +++ b/hmModules/moonlight/default.nix @@ -1,3 +1,4 @@ -{pkgs, ...}: { - home.packages = [pkgs.moonlight-qt]; +{ pkgs, ... }: +{ + home.packages = [ pkgs.moonlight-qt ]; } diff --git a/hmModules/mopidy/default.nix b/hmModules/mopidy/default.nix index fa2ebcb..007cecc 100644 --- a/hmModules/mopidy/default.nix +++ b/hmModules/mopidy/default.nix @@ -1,5 +1,6 @@ # TODO: use upstream ytmusic when updated: https://github.com/OzymandiasTheGreat/mopidy-ytmusic/issues/68 -{pkgs, ...}: let +{ pkgs, ... }: +let ytmusicapi = pkgs.python310Packages.buildPythonPackage rec { pname = "ytmusicapi"; version = "0.24.0"; @@ -38,14 +39,20 @@ python310Packages.pytube ]; - pythonImportsCheck = ["mopidy_ytmusic"]; + pythonImportsCheck = [ "mopidy_ytmusic" ]; doCheck = false; }; -in { +in +{ services.mopidy = { enable = true; - extensionPackages = [mopidy-ytmusic] ++ (with pkgs; [mopidy-mpd mopidy-mpris]); + extensionPackages = + [ mopidy-ytmusic ] + ++ (with pkgs; [ + mopidy-mpd + mopidy-mpris + ]); settings = { mpd = { enabled = true; diff --git a/hmModules/nheko/default.nix b/hmModules/nheko/default.nix index 9a4a89e..b921d3a 100644 --- a/hmModules/nheko/default.nix +++ b/hmModules/nheko/default.nix @@ -1,5 +1,6 @@ -{pkgs, ...}: { - home.packages = [pkgs.nheko]; +{ pkgs, ... }: +{ + home.packages = [ pkgs.nheko ]; # systemd.user.services.nheko = { # Install.WantedBy = ["graphical-session.target"]; diff --git a/hmModules/nix-index/default.nix b/hmModules/nix-index/default.nix index 726d997..cc3440a 100644 --- a/hmModules/nix-index/default.nix +++ b/hmModules/nix-index/default.nix @@ -1,14 +1,15 @@ { - config, pkgs, fleetFlake, - lib, ... -}: { +}: +{ programs.nix-index.enable = true; systemd.user.services.nix-index-update = { - Unit = {Description = "Update nix-index";}; + Unit = { + Description = "Update nix-index"; + }; Service = { CPUSchedulingPolicy = "idle"; @@ -18,7 +19,9 @@ }; systemd.user.timers.nix-index-update = { - Unit = {Description = "Update nix-index";}; + Unit = { + Description = "Update nix-index"; + }; Timer = { Unit = "nix-index-update.service"; @@ -26,6 +29,8 @@ Persistent = true; }; - Install = {WantedBy = ["timers.target"];}; + Install = { + WantedBy = [ "timers.target" ]; + }; }; } diff --git a/hmModules/obs-studio/default.nix b/hmModules/obs-studio/default.nix index 6e527dc..91620ba 100644 --- a/hmModules/obs-studio/default.nix +++ b/hmModules/obs-studio/default.nix @@ -1,6 +1,10 @@ -{pkgs, ...}: { +{ pkgs, ... }: +{ programs.obs-studio = { enable = true; - plugins = with pkgs.obs-studio-plugins; [wlrobs input-overlay]; + plugins = with pkgs.obs-studio-plugins; [ + wlrobs + input-overlay + ]; }; } diff --git a/hmModules/openscad/default.nix b/hmModules/openscad/default.nix index aa83ca6..eac465f 100644 --- a/hmModules/openscad/default.nix +++ b/hmModules/openscad/default.nix @@ -1,3 +1,4 @@ -{pkgs, ...}: { - home.packages = [pkgs.openscad]; +{ pkgs, ... }: +{ + home.packages = [ pkgs.openscad ]; } diff --git a/hmModules/pantalaimon/default.nix b/hmModules/pantalaimon/default.nix index 36331cc..2c0a520 100644 --- a/hmModules/pantalaimon/default.nix +++ b/hmModules/pantalaimon/default.nix @@ -9,5 +9,5 @@ }; }; }; - systemd.user.services.pantalaimon.Unit.Requires = ["dbus.socket"]; + systemd.user.services.pantalaimon.Unit.Requires = [ "dbus.socket" ]; } diff --git a/hmModules/password-store/default.nix b/hmModules/password-store/default.nix index 704f123..69be6e1 100644 --- a/hmModules/password-store/default.nix +++ b/hmModules/password-store/default.nix @@ -2,12 +2,13 @@ pkgs, username, ... -}: { +}: +{ programs.password-store = { enable = true; settings = { PASSWORD_STORE_DIR = "/home/${username}/.password-store"; }; - package = pkgs.pass.withExtensions (e: [e.pass-otp]); + package = pkgs.pass.withExtensions (e: [ e.pass-otp ]); }; } diff --git a/hmModules/qutebrowser/default.nix b/hmModules/qutebrowser/default.nix index 4a4c68f..6a77ff7 100644 --- a/hmModules/qutebrowser/default.nix +++ b/hmModules/qutebrowser/default.nix @@ -2,7 +2,8 @@ pkgs, config, ... -}: let +}: +let inherit (config.programs.qutebrowser) settings; websites = { searx = "https://searx.be"; @@ -16,7 +17,8 @@ less-dark-white = "#cccccc"; blue = "#0000ff"; }; -in { +in +{ programs.qutebrowser = { enable = true; searchEngines = with websites; { @@ -41,7 +43,7 @@ in { auto_save.session = true; url = with websites; { default_page = searx; - start_pages = [searx]; + start_pages = [ searx ]; }; editor.command = [ "emacsclient" @@ -108,15 +110,13 @@ in { }; home.packages = with pkgs; [ fuzzel - ( - makeDesktopItem { - name = "qutebrowser"; - exec = "qutebrowser %u"; - comment = "Qutebrowser"; - desktopName = "qutebrowser"; - type = "Application"; - mimeTypes = ["x-scheme-handler/https"]; - } - ) + (makeDesktopItem { + name = "qutebrowser"; + exec = "qutebrowser %u"; + comment = "Qutebrowser"; + desktopName = "qutebrowser"; + type = "Application"; + mimeTypes = [ "x-scheme-handler/https" ]; + }) ]; } diff --git a/hmModules/reinstall-magisk-on-lineage/default.nix b/hmModules/reinstall-magisk-on-lineage/default.nix index 8728f93..dba5e35 100644 --- a/hmModules/reinstall-magisk-on-lineage/default.nix +++ b/hmModules/reinstall-magisk-on-lineage/default.nix @@ -1,4 +1,5 @@ -{pkgs, ...}: let +{ pkgs, ... }: +let reinstall-magisk-on-lineage = pkgs.stdenv.mkDerivation { name = "reinstall-magisk-on-lineage"; version = "git"; @@ -21,6 +22,7 @@ --replace-fail "paste_yours_here" "\"\$1\"" ''; }; -in { - home.packages = [reinstall-magisk-on-lineage]; +in +{ + home.packages = [ reinstall-magisk-on-lineage ]; } diff --git a/hmModules/remmina/default.nix b/hmModules/remmina/default.nix index abbd844..822eddf 100644 --- a/hmModules/remmina/default.nix +++ b/hmModules/remmina/default.nix @@ -1,3 +1,4 @@ -{pkgs, ...}: { - home.packages = [pkgs.remmina]; +{ pkgs, ... }: +{ + home.packages = [ pkgs.remmina ]; } diff --git a/hmModules/shell/default.nix b/hmModules/shell/default.nix index 9c1ca0f..cf7f76a 100644 --- a/hmModules/shell/default.nix +++ b/hmModules/shell/default.nix @@ -4,7 +4,8 @@ age, hostname, ... -}: { +}: +{ programs.bat.enable = true; programs.direnv = { @@ -31,7 +32,9 @@ systemd.user.services.atuind = { Unit.Description = "Atuin daemon"; - Install = {WantedBy = ["default.target"];}; + Install = { + WantedBy = [ "default.target" ]; + }; Service.ExecStart = "${lib.getExe pkgs.atuin} daemon"; }; @@ -116,25 +119,29 @@ xdg.configFile = { "dracula-theme" = { target = "fish/themes/dracula.theme"; - source = let - theme = pkgs.fetchFromGitHub { - owner = "dracula"; - repo = "fish"; - rev = "269cd7d76d5104fdc2721db7b8848f6224bdf554"; - hash = "sha256-Hyq4EfSmWmxwCYhp3O8agr7VWFAflcUe8BUKh50fNfY="; - }; - in "${theme}/themes/Dracula\ Official.theme"; + source = + let + theme = pkgs.fetchFromGitHub { + owner = "dracula"; + repo = "fish"; + rev = "269cd7d76d5104fdc2721db7b8848f6224bdf554"; + hash = "sha256-Hyq4EfSmWmxwCYhp3O8agr7VWFAflcUe8BUKh50fNfY="; + }; + in + "${theme}/themes/Dracula\ Official.theme"; }; "catppuccin-theme" = { target = "fish/themes/Catppuccin\ Mocha.theme"; - source = let - theme = pkgs.fetchFromGitHub { - owner = "catppuccin"; - repo = "fish"; - rev = "a3b9eb5eaf2171ba1359fe98f20d226c016568cf"; - hash = "sha256-shQxlyoauXJACoZWtRUbRMxmm10R8vOigXwjxBhG8ng="; - }; - in "${theme}/themes/Catppuccin\ Mocha.theme"; + source = + let + theme = pkgs.fetchFromGitHub { + owner = "catppuccin"; + repo = "fish"; + rev = "a3b9eb5eaf2171ba1359fe98f20d226c016568cf"; + hash = "sha256-shQxlyoauXJACoZWtRUbRMxmm10R8vOigXwjxBhG8ng="; + }; + in + "${theme}/themes/Catppuccin\ Mocha.theme"; }; }; @@ -227,7 +234,8 @@ # ''; # }; - home.packages = with pkgs; + home.packages = + with pkgs; [ thefuck htop-vim @@ -240,12 +248,18 @@ carapace # used by nushell neovim ] - ++ (lib.optionals (builtins.elem hostname ["kirk" "picard"]) [ - nixd # TODO probably not the best place - terraform-lsp # TODO probably not best place - python3Packages.jedi-language-server # TODO probably not best place - nodePackages.typescript-language-server # TODO probably not best place - cntr # TODO probably not best place - nom # FIXME disable on aarch64-linux, breaks everything :( - ]); + ++ (lib.optionals + (builtins.elem hostname [ + "kirk" + "picard" + ]) + [ + nixd # TODO probably not the best place + terraform-lsp # TODO probably not best place + python3Packages.jedi-language-server # TODO probably not best place + nodePackages.typescript-language-server # TODO probably not best place + cntr # TODO probably not best place + nom # FIXME disable on aarch64-linux, breaks everything :( + ] + ); } diff --git a/hmModules/slack/default.nix b/hmModules/slack/default.nix index bb7e3b1..4ff5f05 100644 --- a/hmModules/slack/default.nix +++ b/hmModules/slack/default.nix @@ -1,3 +1,4 @@ -{pkgs, ...}: { - home.packages = [pkgs.slack]; +{ pkgs, ... }: +{ + home.packages = [ pkgs.slack ]; } diff --git a/hmModules/spotify/default.nix b/hmModules/spotify/default.nix index fb7c2e7..59b2edd 100644 --- a/hmModules/spotify/default.nix +++ b/hmModules/spotify/default.nix @@ -2,17 +2,19 @@ lib, pkgs, ... -}: let - spotify-adblocked = pkgs.callPackage ../../packages/spotify-adblocked {}; -in { - home.packages = [spotify-adblocked]; +}: +let + spotify-adblocked = pkgs.callPackage ../../packages/spotify-adblocked { }; +in +{ + home.packages = [ spotify-adblocked ]; systemd.user.services.spotify-adblocked = { - Install.WantedBy = ["graphical-session.target"]; + Install.WantedBy = [ "graphical-session.target" ]; Unit = { Description = "Spotify"; - PartOf = ["graphical-session.target"]; + PartOf = [ "graphical-session.target" ]; }; Service = { diff --git a/hmModules/steam-run/default.nix b/hmModules/steam-run/default.nix index 42db3d4..7ea2faf 100644 --- a/hmModules/steam-run/default.nix +++ b/hmModules/steam-run/default.nix @@ -1,3 +1,4 @@ -{pkgs, ...}: { - home.packages = [pkgs.steam-run]; +{ pkgs, ... }: +{ + home.packages = [ pkgs.steam-run ]; } diff --git a/hmModules/sway/default.nix b/hmModules/sway/default.nix index af49d1c..26fee7a 100644 --- a/hmModules/sway/default.nix +++ b/hmModules/sway/default.nix @@ -3,7 +3,8 @@ lib, config, ... -}: { +}: +{ imports = [ ../waybar ../swayidle @@ -12,7 +13,7 @@ ../kitty ]; config = { - home.packages = with pkgs; [wl-clipboard]; + home.packages = with pkgs; [ wl-clipboard ]; systemd.user.sessionVariables = { NIXOS_OZONE_WL = "1"; @@ -35,98 +36,100 @@ }; wayland = { - windowManager.sway = let - modifier = "Mod4"; - in { - enable = true; - wrapperFeatures.gtk = true; - config = { - inherit modifier; - menu = "${pkgs.fuzzel}/bin/fuzzel --background-color=253559cc --border-radius=5 --border-width=0"; - output = let - bg = "${./wallpaper.svg} fill"; - in { - DP-2 = { - res = "1900x1200"; - pos = "0 0"; - inherit bg; - transform = "90"; + windowManager.sway = + let + modifier = "Mod4"; + in + { + enable = true; + wrapperFeatures.gtk = true; + config = { + inherit modifier; + menu = "${pkgs.fuzzel}/bin/fuzzel --background-color=253559cc --border-radius=5 --border-width=0"; + output = + let + bg = "${./wallpaper.svg} fill"; + in + { + DP-2 = { + res = "1900x1200"; + pos = "0 0"; + inherit bg; + transform = "90"; + }; + DP-1 = { + res = "2560x1440"; + pos = "1200 230"; + inherit bg; + }; + eDP-1 = { + res = "1920x1080"; + pos = "3760 230"; + inherit bg; + }; + }; + terminal = "${config.programs.kitty.package}/bin/kitty ${config.programs.kitty.package}/bin/kitty +kitten ssh mothership.fleet"; + bars = [ + { + mode = "hide"; + position = "top"; + command = "${pkgs.waybar}/bin/waybar"; + } + ]; + gaps = { + smartBorders = "on"; }; - DP-1 = { - res = "2560x1440"; - pos = "1200 230"; - inherit bg; + assigns = { + "1" = [ + { title = ".*Mozilla Firefox$"; } + { title = ".*qutebrowser$"; } + ]; + "2" = [ { title = "^((?!qutebrowser-editor).)*Emacs$"; } ]; + "3" = [ { title = "Slack.*"; } ]; + "9" = [ { title = "^Element.*"; } ]; }; - eDP-1 = { - res = "1920x1080"; - pos = "3760 230"; - inherit bg; + floating.criteria = [ + { title = "MetaMask Notification.*"; } + { title = "Volume Control"; } # pavucontrol + { title = "^.*editor - qutebrowser$"; } # Emacs opened by qutebrowser + ]; + input = { + "*" = { + xkb_layout = "us"; + xkb_variant = "altgr-intl"; + }; }; + keybindings = + let + screenshotScript = pkgs.writeShellScript "screenshot.sh" '' + filename="$HOME/shots/$(date --iso-8601=seconds).png" + coords="$(${pkgs.slurp}/bin/slurp)" + ${pkgs.grim}/bin/grim -t png -g "$coords" "$filename" + wl-copy -t image/png < $filename + ''; + in + lib.mkOptionDefault { + "${modifier}+x" = "exec emacsclient -c"; + "${modifier}+y" = "exec ${pkgs.waypipe}/bin/waypipe --compress lz4=10 ssh mothership.fleet emacsclient -c"; + "${modifier}+b" = "exec qutebrowser"; + "${modifier}+s" = "exec ${screenshotScript}"; + # "${modifier}+g" = "exec ${screenrecordingScript}"; # FIXME + "${modifier}+t" = '' + exec emacsclient -c -F "\'(name . \\"VTerm\\"))" -q --eval '(vterm (getenv "SHELL"))' + ''; + "${modifier}+u" = '' + exec ${pkgs.waypipe}/bin/waypipe --compress lz4=10 ssh mothership.fleet emacsclient -c -F "\'(name . \\"VTerm\\"))" -q --eval '(eat (getenv "SHELL"))' + ''; + "XF86MonBrightnessUp" = "exec ${pkgs.brightnessctl}/bin/brightnessctl s +5%"; + "XF86MonBrightnessDown" = "exec ${pkgs.brightnessctl}/bin/brightnessctl s 5%-"; + }; }; - terminal = "${config.programs.kitty.package}/bin/kitty ${config.programs.kitty.package}/bin/kitty +kitten ssh mothership.fleet"; - bars = [ - { - mode = "hide"; - position = "top"; - command = "${pkgs.waybar}/bin/waybar"; - } - ]; - gaps = { - smartBorders = "on"; - }; - assigns = { - "1" = [{title = ".*Mozilla Firefox$";} {title = ".*qutebrowser$";}]; - "2" = [{title = "^((?!qutebrowser-editor).)*Emacs$";}]; - "3" = [{title = "Slack.*";}]; - "9" = [{title = "^Element.*";}]; - }; - floating.criteria = [ - {title = "MetaMask Notification.*";} - {title = "Volume Control";} # pavucontrol - {title = "^.*editor - qutebrowser$";} # Emacs opened by qutebrowser - ]; - input = { - "*" = { - xkb_layout = "us"; - xkb_variant = "altgr-intl"; - }; - }; - keybindings = let - screenshotScript = pkgs.writeShellScript "screenshot.sh" '' - filename="$HOME/shots/$(date --iso-8601=seconds).png" - coords="$(${pkgs.slurp}/bin/slurp)" - ${pkgs.grim}/bin/grim -t png -g "$coords" "$filename" - wl-copy -t image/png < $filename - ''; - screenrecordingScript = pkgs.writeShellScript "screenrecorder.sh" '' - filename="$HOME/shots/recording-$(date --iso-8601=seconds).mp4" - coords="$(${pkgs.slurp}/bin/slurp)" - ${pkgs.wf-recorder}/bin/wf-recorder -g "$coords" -f "$filename" - wl-copy -t video/mp4 < $filename - ''; - in - lib.mkOptionDefault { - "${modifier}+x" = "exec emacsclient -c"; - "${modifier}+y" = "exec ${pkgs.waypipe}/bin/waypipe --compress lz4=10 ssh mothership.fleet emacsclient -c"; - "${modifier}+b" = "exec qutebrowser"; - "${modifier}+s" = "exec ${screenshotScript}"; - # "${modifier}+g" = "exec ${screenrecordingScript}"; # FIXME - "${modifier}+t" = '' - exec emacsclient -c -F "\'(name . \\"VTerm\\"))" -q --eval '(vterm (getenv "SHELL"))' - ''; - "${modifier}+u" = '' - exec ${pkgs.waypipe}/bin/waypipe --compress lz4=10 ssh mothership.fleet emacsclient -c -F "\'(name . \\"VTerm\\"))" -q --eval '(eat (getenv "SHELL"))' - ''; - "XF86MonBrightnessUp" = "exec ${pkgs.brightnessctl}/bin/brightnessctl s +5%"; - "XF86MonBrightnessDown" = "exec ${pkgs.brightnessctl}/bin/brightnessctl s 5%-"; - }; + extraConfig = '' + bindsym ${modifier}+p move workspace to output right + ''; + xwayland = true; + systemdIntegration = true; }; - extraConfig = '' - bindsym ${modifier}+p move workspace to output right - ''; - xwayland = true; - systemdIntegration = true; - }; }; }; } diff --git a/hmModules/swayidle/default.nix b/hmModules/swayidle/default.nix index bc26718..60e3ed0 100644 --- a/hmModules/swayidle/default.nix +++ b/hmModules/swayidle/default.nix @@ -2,53 +2,56 @@ pkgs, lib, ... -}: { - services.swayidle = let - swaylockWithArgs = pkgs.writeScriptBin "swaylockWithArgs" '' - ${pkgs.swaylock-effects}/bin/swaylock \ - --daemonize \ - --screenshots \ - --clock \ - --indicator \ - --indicator-radius 100 \ - --indicator-thickness 7 \ - --effect-blur 7x5 \ - --effect-vignette 0.5:0.5 \ - --ring-color bb00cc \ - --key-hl-color 880033 \ - --line-color 00000000 \ - --inside-color 00000088 \ - --separator-color 00000000 \ - --fade-in 0.2 - ''; - swaylockCommand = "${swaylockWithArgs}/bin/swaylockWithArgs"; - in { - enable = true; - events = [ - { - event = "before-sleep"; - command = swaylockCommand; - } - { - event = "lock"; - command = swaylockCommand; - } - ]; - timeouts = [ - { - timeout = 600; - command = swaylockCommand; - } - { - timeout = 720; - command = "${pkgs.systemd}/bin/systemctl suspend"; - } - ]; - }; +}: +{ + services.swayidle = + let + swaylockWithArgs = pkgs.writeScriptBin "swaylockWithArgs" '' + ${pkgs.swaylock-effects}/bin/swaylock \ + --daemonize \ + --screenshots \ + --clock \ + --indicator \ + --indicator-radius 100 \ + --indicator-thickness 7 \ + --effect-blur 7x5 \ + --effect-vignette 0.5:0.5 \ + --ring-color bb00cc \ + --key-hl-color 880033 \ + --line-color 00000000 \ + --inside-color 00000088 \ + --separator-color 00000000 \ + --fade-in 0.2 + ''; + swaylockCommand = "${swaylockWithArgs}/bin/swaylockWithArgs"; + in + { + enable = true; + events = [ + { + event = "before-sleep"; + command = swaylockCommand; + } + { + event = "lock"; + command = swaylockCommand; + } + ]; + timeouts = [ + { + timeout = 600; + command = swaylockCommand; + } + { + timeout = 720; + command = "${pkgs.systemd}/bin/systemctl suspend"; + } + ]; + }; # Otherwise it will start only after Sway and will not work with Hyprland systemd.user.services.swayidle = { - Unit.PartOf = lib.mkForce []; - Install.WantedBy = lib.mkForce ["hyprland-session.target"]; + Unit.PartOf = lib.mkForce [ ]; + Install.WantedBy = lib.mkForce [ "hyprland-session.target" ]; }; } diff --git a/hmModules/teams/default.nix b/hmModules/teams/default.nix index 217685e..9f643c1 100644 --- a/hmModules/teams/default.nix +++ b/hmModules/teams/default.nix @@ -1,3 +1,4 @@ -{pkgs, ...}: { - home.packages = [pkgs.teams-for-linux]; +{ pkgs, ... }: +{ + home.packages = [ pkgs.teams-for-linux ]; } diff --git a/hmModules/thunderbird/default.nix b/hmModules/thunderbird/default.nix index 9eb89c8..2b3ba1e 100644 --- a/hmModules/thunderbird/default.nix +++ b/hmModules/thunderbird/default.nix @@ -1,14 +1,14 @@ { - imports = [../email]; + imports = [ ../email ]; config = { accounts.email.accounts = { autistici.thunderbird = { enable = true; - profiles = ["default"]; + profiles = [ "default" ]; }; mlabs.thunderbird = { enable = true; - profiles = ["default"]; + profiles = [ "default" ]; }; }; programs.thunderbird = { diff --git a/hmModules/tor-browser/default.nix b/hmModules/tor-browser/default.nix index 7b56e78..59796db 100644 --- a/hmModules/tor-browser/default.nix +++ b/hmModules/tor-browser/default.nix @@ -1,3 +1,4 @@ -{pkgs, ...}: { - home.packages = [pkgs.tor-browser]; +{ pkgs, ... }: +{ + home.packages = [ pkgs.tor-browser ]; } diff --git a/hmModules/tremotesf/default.nix b/hmModules/tremotesf/default.nix index 37c75d9..a3569a1 100644 --- a/hmModules/tremotesf/default.nix +++ b/hmModules/tremotesf/default.nix @@ -2,11 +2,12 @@ pkgs, lib, ... -}: { - home.packages = [pkgs.tremotesf]; +}: +{ + home.packages = [ pkgs.tremotesf ]; systemd.user.services.tremotesf = { - Install.WantedBy = ["graphical-session.target"]; + Install.WantedBy = [ "graphical-session.target" ]; Unit = { Description = "tremotesf"; diff --git a/hmModules/vscode/default.nix b/hmModules/vscode/default.nix index e34d82c..f04f149 100644 --- a/hmModules/vscode/default.nix +++ b/hmModules/vscode/default.nix @@ -1,4 +1,5 @@ -{pkgs, ...}: { +{ pkgs, ... }: +{ programs.vscode = { enable = true; # For a few reasons sometimes I'm forced to use VSCode and I don't have time to nixifiy even its configuration. diff --git a/hmModules/waybar/default.nix b/hmModules/waybar/default.nix index f7ac1be..5705986 100644 --- a/hmModules/waybar/default.nix +++ b/hmModules/waybar/default.nix @@ -2,7 +2,8 @@ pkgs, lib, ... -}: { +}: +{ programs.waybar = { enable = true; systemd.enable = true; @@ -18,7 +19,7 @@ "wlr/mode" "hyprland/workspaces" ]; - modules-center = ["wlr/window"]; + modules-center = [ "wlr/window" ]; modules-right = [ "network" "tray" @@ -46,9 +47,13 @@ # sort-by-number = true; }; - "wlr/mode" = {tooltip = false;}; + "wlr/mode" = { + tooltip = false; + }; - "wlr/window" = {max_length = 50;}; + "wlr/window" = { + max_length = 50; + }; tray = { spacing = 10; }; @@ -56,7 +61,13 @@ format = "{capacity}% {icon}"; format-alt = "{time} {icon}"; format-charging = "{capacity}% "; - format-icons = [" " " " " " " " " "]; + format-icons = [ + " " + " " + " " + " " + " " + ]; format-plugged = "{capacity}%  "; states = { critical = 15; @@ -71,7 +82,9 @@ format = "{usage}% "; tooltip = false; }; - memory = {format = "{}% ";}; + memory = { + format = "{}% "; + }; network = { interval = 1; format-alt = "{ifname}: {ipaddr}/{cidr}"; @@ -86,7 +99,11 @@ format-bluetooth-muted = " {icon} {format_source}"; format-icons = { car = ""; - default = [" " " " " "]; + default = [ + " " + " " + " " + ]; handsfree = ""; headphones = " "; headset = ""; @@ -98,23 +115,32 @@ format-source-muted = ""; on-click = "${pkgs.pavucontrol}/bin/pavucontrol"; }; - "wlr/mode" = {format = ''{}'';}; + "wlr/mode" = { + format = ''{}''; + }; temperature = { critical-threshold = 80; format = "{temperatureC}°C {icon}"; - format-icons = ["" "" ""]; + format-icons = [ + "" + "" + "" + ]; hwmon-path = "/sys/class/hwmon/hwmon2/temp1_input"; # picard FIXME # hwmon-path = "/sys/class/thermal/thermal_zone4/temp"; # thinkpad }; backlight = { device = "ddcci2"; format = "{percent}% {icon}"; - format-icons = [" " " "]; + format-icons = [ + " " + " " + ]; }; }; }; }; # waybar needs the hyprctl binary in PATH when started in hyprland - systemd.user.services.waybar.Service.Environment = "PATH=${lib.makeBinPath [pkgs.hyprland]}"; + systemd.user.services.waybar.Service.Environment = "PATH=${lib.makeBinPath [ pkgs.hyprland ]}"; } diff --git a/hmModules/wayvnc/default.nix b/hmModules/wayvnc/default.nix index 5f9e090..ccccd7b 100644 --- a/hmModules/wayvnc/default.nix +++ b/hmModules/wayvnc/default.nix @@ -4,13 +4,14 @@ vpn, hostname, ... -}: { +}: +{ systemd.user.services.wayvnc = { - Install.WantedBy = ["graphical-session.target"]; + Install.WantedBy = [ "graphical-session.target" ]; Unit = { Description = "WayVNC"; - PartOf = ["graphical-session.target"]; + PartOf = [ "graphical-session.target" ]; }; Service = { diff --git a/hmModules/wezterm/default.nix b/hmModules/wezterm/default.nix index f6b0fcf..f7baef1 100644 --- a/hmModules/wezterm/default.nix +++ b/hmModules/wezterm/default.nix @@ -2,12 +2,12 @@ pkgs, hostname, ... -}: { +}: +{ programs.wezterm = { enable = true; package = - if hostname == "pircard" - then + if hostname == "pircard" then (pkgs.wezterm.overrideAttrs (old: rec { pname = "wezterm"; version = "20240406-cce0706"; @@ -24,43 +24,40 @@ "xcb-imdkit-0.3.0" = "sha256-fTpJ6uNhjmCWv7dZqVgYuS2Uic36XNYTbqlaly5QBjI="; }; }; - patches = - (old.patches or []) - ++ [ - (pkgs.fetchpatch { - # fix(wayland): ensure repaint event is sent in show - url = "https://patch-diff.githubusercontent.com/raw/wez/wezterm/pull/5264.patch"; - hash = "sha256-c+frVaBEL0h3PJvNu3AW2iap+uUXBY8olbm7Wsxuh4Q="; - }) - (pkgs.writeText - "wezterm-remove_capabilities.patch" - '' - diff --git a/window/src/os/wayland/seat.rs b/window/src/os/wayland/seat.rs - index 3798f4259..e91591130 100644 - --- a/window/src/os/wayland/seat.rs - +++ b/window/src/os/wayland/seat.rs - @@ -65,9 +65,15 @@ impl SeatHandler for WaylandState { - _conn: &Connection, - _qh: &QueueHandle, - _seat: WlSeat, - - _capability: smithay_client_toolkit::seat::Capability, - + capability: smithay_client_toolkit::seat::Capability, - ) { - - todo!() - + if capability == Capability::Keyboard && self.keyboard.is_some() { - + self.keyboard.take().unwrap().release(); - + } - + - + if capability == Capability::Pointer && self.pointer.is_some() { - + self.pointer = None; - + } - } + patches = (old.patches or [ ]) ++ [ + (pkgs.fetchpatch { + # fix(wayland): ensure repaint event is sent in show + url = "https://patch-diff.githubusercontent.com/raw/wez/wezterm/pull/5264.patch"; + hash = "sha256-c+frVaBEL0h3PJvNu3AW2iap+uUXBY8olbm7Wsxuh4Q="; + }) + (pkgs.writeText "wezterm-remove_capabilities.patch" '' + diff --git a/window/src/os/wayland/seat.rs b/window/src/os/wayland/seat.rs + index 3798f4259..e91591130 100644 + --- a/window/src/os/wayland/seat.rs + +++ b/window/src/os/wayland/seat.rs + @@ -65,9 +65,15 @@ impl SeatHandler for WaylandState { + _conn: &Connection, + _qh: &QueueHandle, + _seat: WlSeat, + - _capability: smithay_client_toolkit::seat::Capability, + + capability: smithay_client_toolkit::seat::Capability, + ) { + - todo!() + + if capability == Capability::Keyboard && self.keyboard.is_some() { + + self.keyboard.take().unwrap().release(); + + } + + + + if capability == Capability::Pointer && self.pointer.is_some() { + + self.pointer = None; + + } + } - fn remove_seat(&mut self, _conn: &Connection, _qh: &QueueHandle, _seat: WlSeat) { - '') - ]; + fn remove_seat(&mut self, _conn: &Connection, _qh: &QueueHandle, _seat: WlSeat) { + '') + ]; })) - else pkgs.wezterm; + else + pkgs.wezterm; extraConfig = '' return { diff --git a/hmModules/whatsapp/default.nix b/hmModules/whatsapp/default.nix index 5d0335a..b3f0a90 100644 --- a/hmModules/whatsapp/default.nix +++ b/hmModules/whatsapp/default.nix @@ -1,12 +1,13 @@ -{pkgs, ...}: { - home.packages = [pkgs.whatsapp-for-linux]; +{ pkgs, ... }: +{ + home.packages = [ pkgs.whatsapp-for-linux ]; systemd.user.services.whatsapp = { - Install.WantedBy = ["graphical-session.target"]; + Install.WantedBy = [ "graphical-session.target" ]; Unit = { Description = "Whatsapp"; - PartOf = ["graphical-session.target"]; + PartOf = [ "graphical-session.target" ]; }; Service = { diff --git a/hmModules/wine/default.nix b/hmModules/wine/default.nix index e1f674a..a499a37 100644 --- a/hmModules/wine/default.nix +++ b/hmModules/wine/default.nix @@ -1,4 +1,5 @@ -{pkgs, ...}: { +{ pkgs, ... }: +{ home.packages = with pkgs; [ winetricks wineWowPackages.waylandFull diff --git a/hmModules/xdg/default.nix b/hmModules/xdg/default.nix index 858798f..bdcfdeb 100644 --- a/hmModules/xdg/default.nix +++ b/hmModules/xdg/default.nix @@ -1,11 +1,12 @@ -{pkgs, ...}: { +{ pkgs, ... }: +{ xdg = { enable = true; mimeApps.enable = true; mimeApps.defaultApplications = { - "text/html" = ["firefox.desktop"]; - "x-scheme-handler/http" = ["firefox.desktop"]; - "x-scheme-handler/https" = ["firefox.desktop"]; + "text/html" = [ "firefox.desktop" ]; + "x-scheme-handler/http" = [ "firefox.desktop" ]; + "x-scheme-handler/https" = [ "firefox.desktop" ]; }; desktopEntries = { org-protocol = { @@ -13,16 +14,20 @@ genericName = "Org protocol"; exec = "emacsclient -- %u"; terminal = false; - mimeType = ["x-scheme-handler/org-protocol"]; + mimeType = [ "x-scheme-handler/org-protocol" ]; }; firefox = { name = "firefox"; genericName = "Firefox protocol"; exec = "firefox -- %U"; terminal = false; - mimeType = ["text/html" "text/xml" "text/uri"]; + mimeType = [ + "text/html" + "text/xml" + "text/uri" + ]; }; }; }; - home.packages = [pkgs.xdg-utils]; + home.packages = [ pkgs.xdg-utils ]; } diff --git a/hmModules/zmkbatx/default.nix b/hmModules/zmkbatx/default.nix index 64771fc..b7f9065 100644 --- a/hmModules/zmkbatx/default.nix +++ b/hmModules/zmkbatx/default.nix @@ -2,11 +2,15 @@ pkgs, lib, ... -}: { - home.packages = [pkgs.zmkBATx]; +}: +{ + home.packages = [ pkgs.zmkBATx ]; systemd.user.services.zmkBATx = { - Install.WantedBy = ["graphical-session.target" "waybar.service"]; + Install.WantedBy = [ + "graphical-session.target" + "waybar.service" + ]; Unit = { Description = "zmkBATx"; diff --git a/hmModules/zulip/default.nix b/hmModules/zulip/default.nix index f598162..40cdfb2 100644 --- a/hmModules/zulip/default.nix +++ b/hmModules/zulip/default.nix @@ -1,3 +1,4 @@ -{pkgs, ...}: { - home.packages = [pkgs.zulip]; +{ pkgs, ... }: +{ + home.packages = [ pkgs.zulip ]; } diff --git a/hosts/archer/default.nix b/hosts/archer/default.nix index 9437ec4..de91621 100644 --- a/hosts/archer/default.nix +++ b/hosts/archer/default.nix @@ -1,4 +1,5 @@ -{pkgs, ...}: { +{ pkgs, ... }: +{ environment.systemPackages = [ pkgs.vim ]; diff --git a/hosts/beebox/default.nix b/hosts/beebox/default.nix index d99b8b1..538b6cf 100644 --- a/hosts/beebox/default.nix +++ b/hosts/beebox/default.nix @@ -1,9 +1,8 @@ { fleetModules, - pkgs, - lib, ... -}: { +}: +{ imports = [ ./hardware-configuration.nix diff --git a/hosts/beebox/hardware-configuration.nix b/hosts/beebox/hardware-configuration.nix index 5ea0dce..56c4753 100644 --- a/hosts/beebox/hardware-configuration.nix +++ b/hosts/beebox/hardware-configuration.nix @@ -7,15 +7,22 @@ pkgs, modulesPath, ... -}: { +}: +{ imports = [ (modulesPath + "/installer/scan/not-detected.nix") ]; - boot.initrd.availableKernelModules = ["ahci" "xhci_pci" "usb_storage" "usbhid" "sd_mod"]; - boot.initrd.kernelModules = []; - boot.kernelModules = ["kvm-intel"]; - boot.extraModulePackages = []; + boot.initrd.availableKernelModules = [ + "ahci" + "xhci_pci" + "usb_storage" + "usbhid" + "sd_mod" + ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ "kvm-intel" ]; + boot.extraModulePackages = [ ]; boot.loader.systemd-boot.enable = true; boot.loader.efi.canTouchEfiVariables = true; @@ -31,7 +38,7 @@ }; swapDevices = [ - {device = "/dev/disk/by-label/swap";} + { device = "/dev/disk/by-label/swap"; } ]; # Enables DHCP on each ethernet and wireless interface. In case of scripted networking diff --git a/hosts/default.nix b/hosts/default.nix index a96b64b..748d6a4 100644 --- a/hosts/default.nix +++ b/hosts/default.nix @@ -1,16 +1,14 @@ { - self, - lib, - config, inputs, ... -}: { - imports = [./module.nix]; +}: +{ + imports = [ ./module.nix ]; fleet = { - darwinHosts.archer = {}; + darwinHosts.archer = { }; - nixOnDroidHosts.janeway = {}; + nixOnDroidHosts.janeway = { }; hosts = { # thinkpad = { @@ -74,10 +72,11 @@ # }; deltaflyer = { - nixpkgs = let - # keep in sync with https://github.com/NixOS/mobile-nixos/blob/development/pkgs.nix - rev = "44d0940ea560dee511026a53f0e2e2cde489b4d4"; - in + nixpkgs = + let + # keep in sync with https://github.com/NixOS/mobile-nixos/blob/development/pkgs.nix + rev = "44d0940ea560dee511026a53f0e2e2cde489b4d4"; + in builtins.getFlake "github:NixOS/nixpkgs/${rev}"; extraHmModules = [ # inputs.ccrEmacs.hmModules.default @@ -88,10 +87,10 @@ }; homeManager = builtins.getFlake "github:nix-community/home-manager/670d9ecc3e46a6e3265c203c2d136031a3d3548e"; extraModules = [ - (import "${inputs.mobile-nixos}/lib/configuration.nix" {device = "oneplus-fajita";}) + (import "${inputs.mobile-nixos}/lib/configuration.nix" { device = "oneplus-fajita"; }) ]; secrets = { - "deltaflyer-wireguard-private-key" = {}; + "deltaflyer-wireguard-private-key" = { }; "chatgpt-token".owner = "ccr"; }; }; @@ -111,12 +110,12 @@ "${inputs.homeManagerGitWorkspace}/modules/services/git-workspace.nix" ]; secrets = { - "kirk-wireguard-private-key" = {}; + "kirk-wireguard-private-key" = { }; "chatgpt-token".owner = "ccr"; "cachix-personal-token".owner = "ccr"; "git-workspace-tokens".owner = "ccr"; "autistici-password".owner = "ccr"; - "restic-hetzner-password" = {}; + "restic-hetzner-password" = { }; }; }; @@ -137,7 +136,7 @@ inputs.vscode-server.nixosModules.home ]; secrets = { - "picard-wireguard-private-key" = {}; + "picard-wireguard-private-key" = { }; "chatgpt-token".owner = "ccr"; "cachix-personal-token".owner = "ccr"; "hercules-ci-join-token".owner = "hercules-ci-agent"; @@ -145,7 +144,7 @@ "hercules-ci-secrets-json".owner = "hercules-ci-agent"; "git-workspace-tokens".owner = "ccr"; "autistici-password".owner = "ccr"; - "restic-hetzner-password" = {}; + "restic-hetzner-password" = { }; "aws-credentials".owner = "hercules-ci-agent"; "forgejo-runners-token".owner = "nixuser"; "forgejo-nix-access-tokens".owner = "nixuser"; @@ -166,7 +165,7 @@ # rock5b.nixosModules.default ]; secrets = { - "sisko-wireguard-private-key" = {}; + "sisko-wireguard-private-key" = { }; "hercules-ci-join-token".owner = "hercules-ci-agent"; "hercules-ci-binary-caches".owner = "hercules-ci-agent"; "hercules-ci-secrets-json".owner = "hercules-ci-agent"; @@ -174,8 +173,8 @@ "home-planimetry".owner = "hass"; "home-assistant-token".owner = "prometheus"; "grafana-password".owner = "grafana"; - "cloudflare-dyndns-api-token" = {}; - "restic-hetzner-password" = {}; + "cloudflare-dyndns-api-token" = { }; + "restic-hetzner-password" = { }; # "minio-credentials".owner = "minio"; # "aws-credentials".owner = "hercules-ci-agent"; "hass-ssh-key".owner = "hass"; diff --git a/hosts/deltaflyer/default.nix b/hosts/deltaflyer/default.nix index 915f695..70f479f 100644 --- a/hosts/deltaflyer/default.nix +++ b/hosts/deltaflyer/default.nix @@ -3,7 +3,8 @@ lib, pkgs, ... -}: { +}: +{ imports = fleetModules [ "common" @@ -41,7 +42,10 @@ # Networking, modem and misc. { # Ensures any rndis config from stage-1 is not clobbered by NetworkManager - networking.networkmanager.unmanaged = ["rndis0" "usb0"]; + networking.networkmanager.unmanaged = [ + "rndis0" + "usb0" + ]; # Setup USB gadget networking in initrd... mobile.boot.stage-1.networking.enable = lib.mkDefault true; @@ -75,13 +79,14 @@ "video" "wheel" ]; - backupPaths = []; + backupPaths = [ ]; }; } { system.stateVersion = "24.11"; - nixpkgs.config.allowUnfreePredicate = pkg: + nixpkgs.config.allowUnfreePredicate = + pkg: builtins.elem (lib.getName pkg) [ "oneplus-sdm845-firmware-zstd" "oneplus-sdm845-firmware-xz" @@ -106,21 +111,23 @@ bind = $mod, r, exec, rotate-screen hor bind = $mod SHIFT, r, exec, rotate-screen ver ''; - home.packages = let - rotateScript = pkgs.writeShellApplication { - name = "rotate-screen"; - runtimeInputs = [pkgs.hyprland]; - text = '' - if [[ "$1" == "hor" ]]; then - hyprctl keyword monitor DSI-1,1080x2340,0x0,2,transform,1 - hyprctl keyword input:touchdevice:transform 1 - elif [[ "$1" == "ver" ]]; then - hyprctl keyword monitor DSI-1,1080x2340,0x0,2,transform,0 - hyprctl keyword input:touchdevice:transform 0 - fi - ''; - }; - in [rotateScript]; + home.packages = + let + rotateScript = pkgs.writeShellApplication { + name = "rotate-screen"; + runtimeInputs = [ pkgs.hyprland ]; + text = '' + if [[ "$1" == "hor" ]]; then + hyprctl keyword monitor DSI-1,1080x2340,0x0,2,transform,1 + hyprctl keyword input:touchdevice:transform 1 + elif [[ "$1" == "ver" ]]; then + hyprctl keyword monitor DSI-1,1080x2340,0x0,2,transform,0 + hyprctl keyword input:touchdevice:transform 0 + fi + ''; + }; + in + [ rotateScript ]; services.swayidle.enable = lib.mkForce false; } ]; @@ -138,7 +145,13 @@ zramSwap.enable = lib.mkDefault true; - boot.binfmt.emulatedSystems = lib.mkForce ["x86_64-linux" "i686-linux" "i386-linux" "i486-linux" "i586-linux"]; + boot.binfmt.emulatedSystems = lib.mkForce [ + "x86_64-linux" + "i686-linux" + "i386-linux" + "i486-linux" + "i586-linux" + ]; } ]; } diff --git a/hosts/deltaflyer/plasma-mobile.nix b/hosts/deltaflyer/plasma-mobile.nix index 7206c5e..35c6f86 100644 --- a/hosts/deltaflyer/plasma-mobile.nix +++ b/hosts/deltaflyer/plasma-mobile.nix @@ -2,11 +2,10 @@ # Minimum config used to enable Plasma Mobile. # { - config, lib, - pkgs, ... -}: { +}: +{ mobile.beautification = { silentBoot = lib.mkDefault false; splash = lib.mkDefault false; diff --git a/hosts/devbox/default.nix b/hosts/devbox/default.nix index a3b3793..599bc62 100644 --- a/hosts/devbox/default.nix +++ b/hosts/devbox/default.nix @@ -4,7 +4,8 @@ lib, pkgs, ... -}: { +}: +{ imports = [ (modulesPath + "/installer/scan/not-detected.nix") @@ -42,17 +43,29 @@ }; fonts = { - fonts = with pkgs; [powerline-fonts dejavu_fonts fira-code fira-code-symbols emacs-all-the-icons-fonts nerdfonts joypixels etBook]; + fonts = with pkgs; [ + powerline-fonts + dejavu_fonts + fira-code + fira-code-symbols + emacs-all-the-icons-fonts + nerdfonts + joypixels + etBook + ]; fontconfig.defaultFonts = { - monospace = ["DejaVu Sans Mono for Powerline"]; - sansSerif = ["DejaVu Sans"]; - serif = ["DejaVu Serif"]; + monospace = [ "DejaVu Sans Mono for Powerline" ]; + sansSerif = [ "DejaVu Sans" ]; + serif = [ "DejaVu Serif" ]; }; }; nixpkgs.config.joypixels.acceptLicense = true; - environment.systemPackages = with pkgs; [waypipe firefox]; + environment.systemPackages = with pkgs; [ + waypipe + firefox + ]; programs.mosh.enable = true; @@ -61,7 +74,7 @@ }; boot.loader.grub = { - devices = ["/dev/sda"]; + devices = [ "/dev/sda" ]; efiSupport = true; efiInstallAsRemovable = true; }; diff --git a/hosts/devbox/disko.nix b/hosts/devbox/disko.nix index bdf06b4..0a891ca 100644 --- a/hosts/devbox/disko.nix +++ b/hosts/devbox/disko.nix @@ -1,9 +1,10 @@ # Example to create a bios compatible gpt partition { lib, - disks ? ["/dev/sda"], + disks ? [ "/dev/sda" ], ... -}: { +}: +{ disk = lib.genAttrs disks (dev: { device = dev; type = "disk"; @@ -17,7 +18,7 @@ start = "0"; end = "1M"; part-type = "primary"; - flags = ["bios_grub"]; + flags = [ "bios_grub" ]; } { type = "partition"; diff --git a/hosts/hs/default.nix b/hosts/hs/default.nix index d1bbafb..407d8f6 100644 --- a/hosts/hs/default.nix +++ b/hosts/hs/default.nix @@ -4,7 +4,8 @@ lib, config, ... -}: { +}: +{ imports = [ ./hardware-configuration.nix @@ -21,7 +22,7 @@ "shell" "git" ]; - packages = []; + packages = [ ]; extraGroups = [ "wheel" "fuse" @@ -31,7 +32,7 @@ systemd.services.standby-sdb = { description = "Set spindown time (sleep) for /dev/sdb "; - wantedBy = ["multi-user.target"]; + wantedBy = [ "multi-user.target" ]; serviceConfig = { Type = "oneshot"; ExecStart = "${pkgs.hdparm}/bin/hdparm -B 127 -S 241 /dev/sdb"; @@ -40,7 +41,7 @@ systemd.services.standby-sdc = { description = "Set spindown time (sleep) for /dev/sdc "; - wantedBy = ["multi-user.target"]; + wantedBy = [ "multi-user.target" ]; serviceConfig = { Type = "oneshot"; ExecStart = "${pkgs.hdparm}/bin/hdparm -B 127 -S 241 /dev/sdc"; @@ -54,7 +55,7 @@ isSystemUser = true; group = "amule"; }; - users.groups."amule" = {}; + users.groups."amule" = { }; services = { samba-wsdd = { @@ -261,33 +262,35 @@ }; }; - systemd.services.ydns = let - ydnsUpdater = pkgs.writeScriptBin "ydnsUpdater" '' - USER="andrea.ciceri@autistici.org" - PASSWORD=$(cat /home/ccr/.ydns-password) - DOMAIN="ccr.ydns.eu" - for SUBDOMAIN in "books" "music" "sync" "torrent" "gate" - do - HOST="$SUBDOMAIN.$DOMAIN" - ${pkgs.curl}/bin/curl --basic -u "$USER:$PASSWORD" --silent https://ydns.io/api/v1/update/?host=$HOST - done - ${pkgs.curl}/bin/curl --basic -u "$USER:$PASSWORD" --silent https://ydns.io/api/v1/update/?host=$DOMAIN - ''; - in { - description = "YDNS IP updater"; - wantedBy = ["multi-user.target"]; - after = ["network.target"]; - serviceConfig = { - User = "root"; - Type = "oneshot"; - ExecStart = "${pkgs.bash}/bin/bash ${ydnsUpdater}/bin/ydnsUpdater"; + systemd.services.ydns = + let + ydnsUpdater = pkgs.writeScriptBin "ydnsUpdater" '' + USER="andrea.ciceri@autistici.org" + PASSWORD=$(cat /home/ccr/.ydns-password) + DOMAIN="ccr.ydns.eu" + for SUBDOMAIN in "books" "music" "sync" "torrent" "gate" + do + HOST="$SUBDOMAIN.$DOMAIN" + ${pkgs.curl}/bin/curl --basic -u "$USER:$PASSWORD" --silent https://ydns.io/api/v1/update/?host=$HOST + done + ${pkgs.curl}/bin/curl --basic -u "$USER:$PASSWORD" --silent https://ydns.io/api/v1/update/?host=$DOMAIN + ''; + in + { + description = "YDNS IP updater"; + wantedBy = [ "multi-user.target" ]; + after = [ "network.target" ]; + serviceConfig = { + User = "root"; + Type = "oneshot"; + ExecStart = "${pkgs.bash}/bin/bash ${ydnsUpdater}/bin/ydnsUpdater"; + }; }; - }; systemd.services.wstunnel = { description = "WSTunnel"; - wantedBy = ["multi-user.target"]; - after = ["network.target"]; + wantedBy = [ "multi-user.target" ]; + after = [ "network.target" ]; serviceConfig = { User = "root"; Type = "oneshot"; @@ -297,8 +300,8 @@ # TODO It seems to not work systemd.timers.ydnsUpdater = { - wantedBy = ["timers.target"]; - partOf = ["ydnsUpdater.service"]; + wantedBy = [ "timers.target" ]; + partOf = [ "ydnsUpdater.service" ]; timerConfig = { OnCalendar = "*-*-* *:00:00"; # hourly Unit = "ydnsUpdater.service"; @@ -330,13 +333,13 @@ networking.nat.enable = true; networking.nat.externalInterface = "enp0s10"; - networking.nat.internalInterfaces = ["wg0"]; + networking.nat.internalInterfaces = [ "wg0" ]; networking.wireguard.interfaces = { # "wg0" is the network interface name. You can name the interface arbitrarily. wg0 = { # Determines the IP address and subnet of the server's end of the tunnel interface. - ips = ["10.100.0.1/24"]; + ips = [ "10.100.0.1/24" ]; # The port that WireGuard listens to. Must be accessible by the client. listenPort = 51820; @@ -366,7 +369,7 @@ # Public key of the peer (not a file path). publicKey = "fCwjd75CefC9A7WqO7s3xfOk2nRcoTKfnAzDT6Lc5AA="; # List of IPs assigned to this peer within the tunnel subnet. Used to configure routing. - allowedIPs = ["10.100.0.2/32"]; + allowedIPs = [ "10.100.0.2/32" ]; } ]; }; diff --git a/hosts/hs/hardware-configuration.nix b/hosts/hs/hardware-configuration.nix index e573bf0..308318a 100644 --- a/hosts/hs/hardware-configuration.nix +++ b/hosts/hs/hardware-configuration.nix @@ -1,6 +1,14 @@ -{lib, ...}: { +{ lib, ... }: +{ boot = { - initrd.availableKernelModules = ["ohci_pci" "ehci_pci" "ahci" "usb_storage" "usbhid" "sd_mod"]; + initrd.availableKernelModules = [ + "ohci_pci" + "ehci_pci" + "ahci" + "usb_storage" + "usbhid" + "sd_mod" + ]; loader.grub = lib.mkForce { enable = true; version = 2; @@ -23,5 +31,5 @@ }; }; - swapDevices = [{device = "/dev/disk/by-label/swap";}]; + swapDevices = [ { device = "/dev/disk/by-label/swap"; } ]; } diff --git a/hosts/janeway/default.nix b/hosts/janeway/default.nix index ecaee5a..150e4e0 100644 --- a/hosts/janeway/default.nix +++ b/hosts/janeway/default.nix @@ -1,14 +1,15 @@ { config, - lib, pkgs, fleetFlake, ... -}: let +}: +let sshdTmpDirectory = "${config.user.home}/sshd-tmp"; sshdDirectory = "${config.user.home}/sshd"; port = 8022; -in { +in +{ # Backup etc files instead of failing to activate generation if a file already exists in /etc environment.etcBackupExtension = ".bak"; @@ -23,54 +24,60 @@ in { # Set your time zone time.timeZone = "Europe/Rome"; - home-manager.config = {pkgs, ...}: { - home.stateVersion = "24.05"; - _module.args = { - hostname = "janeway"; - age.secrets = {}; + home-manager.config = + { ... }: + { + home.stateVersion = "24.05"; + _module.args = { + hostname = "janeway"; + age.secrets = { }; + }; + imports = [ ../../hmModules/shell ]; }; - imports = [../../hmModules/shell]; - }; - build.activation.sshd = let - keys = (builtins.import ../../lib).keys; - inherit (keys) hosts users; - in '' - $DRY_RUN_CMD mkdir $VERBOSE_ARG --parents "${config.user.home}/.ssh" - $DRY_RUN_CMD echo ${hosts.picard} > "${config.user.home}/.ssh/authorized_keys" - $DRY_RUN_CMD echo ${hosts.sisko} >> "${config.user.home}/.ssh/authorized_keys" - $DRY_RUN_CMD echo ${hosts.kirk} >> "${config.user.home}/.ssh/authorized_keys" - $DRY_RUN_CMD echo ${users.ccr-ssh} >> "${config.user.home}/.ssh/authorized_keys" - $DRY_RUN_CMD echo ${users.ccr-gpg} >> "${config.user.home}/.ssh/authorized_keys" + build.activation.sshd = + let + keys = (builtins.import ../../lib).keys; + inherit (keys) hosts users; + in + '' + $DRY_RUN_CMD mkdir $VERBOSE_ARG --parents "${config.user.home}/.ssh" + $DRY_RUN_CMD echo ${hosts.picard} > "${config.user.home}/.ssh/authorized_keys" + $DRY_RUN_CMD echo ${hosts.sisko} >> "${config.user.home}/.ssh/authorized_keys" + $DRY_RUN_CMD echo ${hosts.kirk} >> "${config.user.home}/.ssh/authorized_keys" + $DRY_RUN_CMD echo ${users.ccr-ssh} >> "${config.user.home}/.ssh/authorized_keys" + $DRY_RUN_CMD echo ${users.ccr-gpg} >> "${config.user.home}/.ssh/authorized_keys" - if [[ ! -d "${sshdDirectory}" ]]; then - $DRY_RUN_CMD rm $VERBOSE_ARG --recursive --force "${sshdTmpDirectory}" - $DRY_RUN_CMD mkdir $VERBOSE_ARG --parents "${sshdTmpDirectory}" + if [[ ! -d "${sshdDirectory}" ]]; then + $DRY_RUN_CMD rm $VERBOSE_ARG --recursive --force "${sshdTmpDirectory}" + $DRY_RUN_CMD mkdir $VERBOSE_ARG --parents "${sshdTmpDirectory}" - $VERBOSE_ECHO "Generating host keys..." - $DRY_RUN_CMD ${pkgs.openssh}/bin/ssh-keygen -t rsa -b 4096 -f "${sshdTmpDirectory}/ssh_host_rsa_key" -N "" + $VERBOSE_ECHO "Generating host keys..." + $DRY_RUN_CMD ${pkgs.openssh}/bin/ssh-keygen -t rsa -b 4096 -f "${sshdTmpDirectory}/ssh_host_rsa_key" -N "" - $VERBOSE_ECHO "Writing sshd_config..." - $DRY_RUN_CMD echo -e "HostKey ${sshdDirectory}/ssh_host_rsa_key\nPort ${toString port}\n" > "${sshdTmpDirectory}/sshd_config" + $VERBOSE_ECHO "Writing sshd_config..." + $DRY_RUN_CMD echo -e "HostKey ${sshdDirectory}/ssh_host_rsa_key\nPort ${toString port}\n" > "${sshdTmpDirectory}/sshd_config" - $DRY_RUN_CMD mv $VERBOSE_ARG "${sshdTmpDirectory}" "${sshdDirectory}" - fi - ''; + $DRY_RUN_CMD mv $VERBOSE_ARG "${sshdTmpDirectory}" "${sshdDirectory}" + fi + ''; - environment.packages = let - inherit (fleetFlake.inputs.ccrEmacs.packages.aarch64-linux) ccrEmacs; - in [ - pkgs.bottom - pkgs.helix - pkgs.stress - pkgs.openssh - pkgs.git - pkgs.btop - ccrEmacs - (pkgs.writeScriptBin "sshd-start" '' - #!${pkgs.runtimeShell} - echo "Starting sshd in non-daemonized way on port ${toString port}" - ${pkgs.openssh}/bin/sshd -f "${sshdDirectory}/sshd_config" -D - '') - ]; + environment.packages = + let + inherit (fleetFlake.inputs.ccrEmacs.packages.aarch64-linux) ccrEmacs; + in + [ + pkgs.bottom + pkgs.helix + pkgs.stress + pkgs.openssh + pkgs.git + pkgs.btop + ccrEmacs + (pkgs.writeScriptBin "sshd-start" '' + #!${pkgs.runtimeShell} + echo "Starting sshd in non-daemonized way on port ${toString port}" + ${pkgs.openssh}/bin/sshd -f "${sshdDirectory}/sshd_config" -D + '') + ]; } diff --git a/hosts/kirk/default.nix b/hosts/kirk/default.nix index 64873e6..e1fb82d 100644 --- a/hosts/kirk/default.nix +++ b/hosts/kirk/default.nix @@ -1,10 +1,10 @@ { fleetModules, lib, - pkgs, config, ... -}: { +}: +{ imports = fleetModules [ "common" @@ -67,11 +67,11 @@ "zulip" "calibre" ]; - extraGroups = []; - backupPaths = []; + extraGroups = [ ]; + backupPaths = [ ]; }; - boot.initrd.kernelModules = ["i915"]; + boot.initrd.kernelModules = [ "i915" ]; boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" diff --git a/hosts/module.nix b/hosts/module.nix index cfc1bdd..03cc8d6 100644 --- a/hosts/module.nix +++ b/hosts/module.nix @@ -8,107 +8,208 @@ config, inputs, ... -} @ flakePartsArgs: let +}: +let cfg = config.fleet; -in { +in +{ options.fleet = { darwinHosts = lib.mkOption { - type = lib.types.attrsOf (lib.types.submodule ({name, ...}: { - options = { - name = lib.mkOption { - description = "Host name"; - type = lib.types.strMatching "^$|^[[:alnum:]]([[:alnum:]_-]{0,61}[[:alnum:]])?$"; - default = name; - }; - system = lib.mkOption { - description = "NixOS architecture (a.k.a. system)"; - type = lib.types.str; - default = "x86_64-darwin"; - }; - nixpkgs = lib.mkOption { - description = "Used nixpkgs"; - type = lib.types.anything; - default = inputs.nixpkgs; - }; - extraModules = lib.mkOption { - description = "Extra NixOS modules"; - type = lib.types.listOf lib.types.deferredModule; - default = []; - }; - overlays = lib.mkOption { - description = "Enabled Nixpkgs overlays"; - type = lib.types.listOf (lib.mkOptionType { - name = "nixpkgs-overlay"; - description = "nixpkgs overlay"; - check = lib.isFunction; - merge = lib.mergeOneOption; - }); - default = []; - }; - }; - })); + type = lib.types.attrsOf ( + lib.types.submodule ( + { name, ... }: + { + options = { + name = lib.mkOption { + description = "Host name"; + type = lib.types.strMatching "^$|^[[:alnum:]]([[:alnum:]_-]{0,61}[[:alnum:]])?$"; + default = name; + }; + system = lib.mkOption { + description = "NixOS architecture (a.k.a. system)"; + type = lib.types.str; + default = "x86_64-darwin"; + }; + nixpkgs = lib.mkOption { + description = "Used nixpkgs"; + type = lib.types.anything; + default = inputs.nixpkgs; + }; + extraModules = lib.mkOption { + description = "Extra NixOS modules"; + type = lib.types.listOf lib.types.deferredModule; + default = [ ]; + }; + overlays = lib.mkOption { + description = "Enabled Nixpkgs overlays"; + type = lib.types.listOf ( + lib.mkOptionType { + name = "nixpkgs-overlay"; + description = "nixpkgs overlay"; + check = lib.isFunction; + merge = lib.mergeOneOption; + } + ); + default = [ ]; + }; + }; + } + ) + ); }; nixOnDroidHosts = lib.mkOption { - type = lib.types.attrsOf (lib.types.submodule ({name, ...}: { - options = { - name = lib.mkOption { - description = "Host name"; - type = lib.types.strMatching "^$|^[[:alnum:]]([[:alnum:]_-]{0,61}[[:alnum:]])?$"; - default = name; - }; - system = lib.mkOption { - description = "NixOS architecture (a.k.a. system)"; - type = lib.types.str; - default = "aarch64-linux"; - }; - nixpkgs = lib.mkOption { - description = "Used nixpkgs"; - type = lib.types.anything; - default = inputs.nixpkgs; - }; - extraModules = lib.mkOption { - description = "Extra NixOS modules"; - type = lib.types.listOf lib.types.deferredModule; - default = []; - }; - overlays = lib.mkOption { - description = "Enabled Nixpkgs overlays"; - type = lib.types.listOf (lib.mkOptionType { - name = "nixpkgs-overlay"; - description = "nixpkgs overlay"; - check = lib.isFunction; - merge = lib.mergeOneOption; - }); - default = []; - }; - }; - })); + type = lib.types.attrsOf ( + lib.types.submodule ( + { name, ... }: + { + options = { + name = lib.mkOption { + description = "Host name"; + type = lib.types.strMatching "^$|^[[:alnum:]]([[:alnum:]_-]{0,61}[[:alnum:]])?$"; + default = name; + }; + system = lib.mkOption { + description = "NixOS architecture (a.k.a. system)"; + type = lib.types.str; + default = "aarch64-linux"; + }; + nixpkgs = lib.mkOption { + description = "Used nixpkgs"; + type = lib.types.anything; + default = inputs.nixpkgs; + }; + extraModules = lib.mkOption { + description = "Extra NixOS modules"; + type = lib.types.listOf lib.types.deferredModule; + default = [ ]; + }; + overlays = lib.mkOption { + description = "Enabled Nixpkgs overlays"; + type = lib.types.listOf ( + lib.mkOptionType { + name = "nixpkgs-overlay"; + description = "nixpkgs overlay"; + check = lib.isFunction; + merge = lib.mergeOneOption; + } + ); + default = [ ]; + }; + }; + } + ) + ); }; hosts = lib.mkOption { description = "Host configuration"; - type = lib.types.attrsOf (lib.types.submodule ({name, ...}: { - options = { - name = lib.mkOption { - description = "Host name"; - type = lib.types.strMatching "^$|^[[:alnum:]]([[:alnum:]_-]{0,61}[[:alnum:]])?$"; - default = name; - }; - system = lib.mkOption { - description = "NixOS architecture (a.k.a. system)"; - type = lib.types.str; - default = "x86_64-linux"; - }; - nixpkgs = lib.mkOption { - description = "Used nixpkgs"; - type = lib.types.anything; - default = inputs.nixpkgs; - }; - homeManager = lib.mkOption { - description = "Used home-manager"; - type = lib.types.anything; - default = inputs.homeManager; - }; - vpn = { + type = lib.types.attrsOf ( + lib.types.submodule ( + { name, ... }: + { + options = { + name = lib.mkOption { + description = "Host name"; + type = lib.types.strMatching "^$|^[[:alnum:]]([[:alnum:]_-]{0,61}[[:alnum:]])?$"; + default = name; + }; + system = lib.mkOption { + description = "NixOS architecture (a.k.a. system)"; + type = lib.types.str; + default = "x86_64-linux"; + }; + nixpkgs = lib.mkOption { + description = "Used nixpkgs"; + type = lib.types.anything; + default = inputs.nixpkgs; + }; + homeManager = lib.mkOption { + description = "Used home-manager"; + type = lib.types.anything; + default = inputs.homeManager; + }; + vpn = { + ip = lib.mkOption { + description = "Wireguard VPN ip"; + type = lib.types.str; + }; + publicKey = lib.mkOption { + description = "Wireguard public key"; + type = lib.types.str; + }; + }; + secrets = lib.mkOption { + description = "List of secrets names in the `secrets` folder"; + type = lib.types.attrsOf ( + lib.types.submodule ( + { name, ... }: + { + options = { + owner = lib.mkOption { + type = lib.types.str; + default = "root"; + }; + group = lib.mkOption { + type = lib.types.str; + default = "root"; + }; + file = lib.mkOption { + type = lib.types.path; + default = "${self.outPath}/secrets/${name}.age"; + }; + mode = lib.mkOption { + # TODO improve type + type = lib.types.str; + default = "0440"; + }; + }; + } + ) + ); + default = { }; + }; + enableHomeManager = lib.mkOption { + description = "Enable home-manager module"; + type = lib.types.bool; + default = true; + }; + overlays = lib.mkOption { + description = "Enabled Nixpkgs overlays"; + type = lib.types.listOf ( + lib.mkOptionType { + name = "nixpkgs-overlay"; + description = "nixpkgs overlay"; + check = lib.isFunction; + merge = lib.mergeOneOption; + } + ); + default = [ ]; + }; + extraModules = lib.mkOption { + description = "Extra NixOS modules"; + type = lib.types.listOf lib.types.deferredModule; + default = [ ]; + }; + extraHmModules = lib.mkOption { + description = "Extra home-manager modules"; + type = lib.types.listOf lib.types.deferredModule; + default = [ ]; + }; + extraHmModulesUser = lib.mkOption { + description = "User for which to import extraHmModulesUser"; + type = lib.types.str; + default = "ccr"; + }; + }; + config.overlays = with inputs; cfg.overlays; + } + ) + ); + default = { }; + }; + vpnExtra = lib.mkOption { + type = lib.types.attrsOf ( + lib.types.submodule { + options = { ip = lib.mkOption { description = "Wireguard VPN ip"; type = lib.types.str; @@ -118,138 +219,81 @@ in { type = lib.types.str; }; }; - secrets = lib.mkOption { - description = "List of secrets names in the `secrets` folder"; - type = lib.types.attrsOf (lib.types.submodule ({name, ...}: { - options = { - owner = lib.mkOption { - type = lib.types.str; - default = "root"; - }; - group = lib.mkOption { - type = lib.types.str; - default = "root"; - }; - file = lib.mkOption { - type = lib.types.path; - default = "${self.outPath}/secrets/${name}.age"; - }; - mode = lib.mkOption { - # TODO improve type - type = lib.types.str; - default = "0440"; - }; - }; - })); - default = {}; - }; - enableHomeManager = lib.mkOption { - description = "Enable home-manager module"; - type = lib.types.bool; - default = true; - }; - overlays = lib.mkOption { - description = "Enabled Nixpkgs overlays"; - type = lib.types.listOf (lib.mkOptionType { - name = "nixpkgs-overlay"; - description = "nixpkgs overlay"; - check = lib.isFunction; - merge = lib.mergeOneOption; - }); - default = []; - }; - extraModules = lib.mkOption { - description = "Extra NixOS modules"; - type = lib.types.listOf lib.types.deferredModule; - default = []; - }; - extraHmModules = lib.mkOption { - description = "Extra home-manager modules"; - type = lib.types.listOf lib.types.deferredModule; - default = []; - }; - extraHmModulesUser = lib.mkOption { - description = "User for which to import extraHmModulesUser"; - type = lib.types.str; - default = "ccr"; - }; - }; - config.overlays = with inputs; cfg.overlays; - })); - default = {}; - }; - vpnExtra = lib.mkOption { - type = lib.types.attrsOf (lib.types.submodule { - options = { - ip = lib.mkOption { - description = "Wireguard VPN ip"; - type = lib.types.str; - }; - publicKey = lib.mkOption { - description = "Wireguard public key"; - type = lib.types.str; - }; - }; - }); - default = {}; + } + ); + default = { }; }; _mkNixosConfiguration = lib.mkOption { description = "Function returning a proper NixOS configuration"; type = lib.types.functionTo (lib.types.functionTo lib.types.attrs); # TODO improve this type internal = true; - default = hostname: config: + default = + hostname: config: config.nixpkgs.lib.nixosSystem { inherit (config) system; modules = [ - ({lib, ...}: { - networking.hostName = lib.mkForce hostname; - nixpkgs.overlays = config.overlays; - }) + ( + { lib, ... }: + { + networking.hostName = lib.mkForce hostname; + nixpkgs.overlays = config.overlays; + } + ) "${self.outPath}/hosts/${hostname}" ] - ++ (lib.optionals (config.secrets != []) [ + ++ (lib.optionals (config.secrets != [ ]) [ inputs.agenix.nixosModules.default - ({lib, ...}: let - allSecrets = lib.mapAttrs' (name: value: { - name = lib.removeSuffix ".age" name; - inherit value; - }) (import "${self.outPath}/secrets/secrets.nix"); - filteredSecrets = - lib.filterAttrs - (name: _: builtins.hasAttr name config.secrets) - allSecrets; - in { - age.secrets = - lib.mapAttrs' (name: _: { + ( + { lib, ... }: + let + allSecrets = lib.mapAttrs' (name: value: { + name = lib.removeSuffix ".age" name; + inherit value; + }) (import "${self.outPath}/secrets/secrets.nix"); + filteredSecrets = lib.filterAttrs (name: _: builtins.hasAttr name config.secrets) allSecrets; + in + { + age.secrets = lib.mapAttrs' (name: _: { name = builtins.baseNameOf name; value = { - inherit (config.secrets.${name}) owner group file mode; + inherit (config.secrets.${name}) + owner + group + file + mode + ; }; - }) - filteredSecrets; - }) + }) filteredSecrets; + } + ) ]) - ++ (lib.optionals config.enableHomeManager (let - user = config.extraHmModulesUser; - extraHmModules = config.extraHmModules; - in [ - config.homeManager.nixosModule - ({ - config, - pkgs, - ... - }: { - home-manager.users."${user}" = { - imports = extraHmModules; - _module.args = { - age = config.age or {}; - fleetFlake = self; - pkgsStable = inputs.nixpkgsStable.legacyPackages.${pkgs.system}; - }; - }; - }) - ])) + ++ (lib.optionals config.enableHomeManager ( + let + user = config.extraHmModulesUser; + extraHmModules = config.extraHmModules; + in + [ + config.homeManager.nixosModule + ( + { + config, + pkgs, + ... + }: + { + home-manager.users."${user}" = { + imports = extraHmModules; + _module.args = { + age = config.age or { }; + fleetFlake = self; + pkgsStable = inputs.nixpkgsStable.legacyPackages.${pkgs.system}; + }; + }; + } + ) + ] + )) ++ config.extraModules; specialArgs = { fleetModules = builtins.map (moduleName: "${self.outPath}/modules/${moduleName}"); @@ -263,18 +307,21 @@ in { description = "Function returning a proper Darwin configuration"; type = lib.types.functionTo (lib.types.functionTo lib.types.attrs); # TODO improve this type internal = true; - default = hostname: config: + default = + hostname: config: inputs.nixDarwin.lib.darwinSystem { modules = [ - ({ - lib, - pkgs, - ... - }: { - networking.hostName = lib.mkForce hostname; - nixpkgs.overlays = config.overlays; - nixpkgs.hostPlatform = config.system; - }) + ( + { + lib, + ... + }: + { + networking.hostName = lib.mkForce hostname; + nixpkgs.overlays = config.overlays; + nixpkgs.hostPlatform = config.system; + } + ) "${self.outPath}/hosts/${hostname}" ]; }; @@ -284,18 +331,20 @@ in { description = "Function returning a proper nix-on-droid configuration"; type = lib.types.functionTo (lib.types.functionTo lib.types.attrs); # TODO improve this type internal = true; - default = hostname: config: + default = + hostname: config: inputs.nix-on-droid.lib.nixOnDroidConfiguration { pkgs = inputs.nixpkgs.legacyPackages.aarch64-linux; modules = [ - ({ - lib, - pkgs, - ... - }: { - nixpkgs.overlays = config.overlays; - _module.args.fleetFlake = self; - }) + ( + { + ... + }: + { + nixpkgs.overlays = config.overlays; + _module.args.fleetFlake = self; + } + ) "${self.outPath}/hosts/${hostname}" ]; }; @@ -303,19 +352,10 @@ in { }; config = { - flake.nixosConfigurations = - lib.mapAttrs - config.fleet._mkNixosConfiguration - config.fleet.hosts; + flake.nixosConfigurations = lib.mapAttrs config.fleet._mkNixosConfiguration config.fleet.hosts; - flake.darwinConfigurations = - lib.mapAttrs - config.fleet._mkDarwinConfiguration - config.fleet.darwinHosts; + flake.darwinConfigurations = lib.mapAttrs config.fleet._mkDarwinConfiguration config.fleet.darwinHosts; - flake.nixOnDroidConfigurations = - lib.mapAttrs - config.fleet._mkNixOnDroidConfiguration - config.fleet.nixOnDroidHosts; + flake.nixOnDroidConfigurations = lib.mapAttrs config.fleet._mkNixOnDroidConfiguration config.fleet.nixOnDroidHosts; }; } diff --git a/hosts/mothership/default.nix b/hosts/mothership/default.nix index 5b0562f..dc0f9ba 100644 --- a/hosts/mothership/default.nix +++ b/hosts/mothership/default.nix @@ -5,7 +5,8 @@ pkgs, config, ... -}: { +}: +{ imports = fleetModules [ "common" "wireguard-server" @@ -57,11 +58,20 @@ }; fonts = { - fonts = with pkgs; [powerline-fonts dejavu_fonts fira-code fira-code-symbols emacs-all-the-icons-fonts nerdfonts joypixels etBook]; + fonts = with pkgs; [ + powerline-fonts + dejavu_fonts + fira-code + fira-code-symbols + emacs-all-the-icons-fonts + nerdfonts + joypixels + etBook + ]; fontconfig.defaultFonts = { - monospace = ["DejaVu Sans Mono for Powerline"]; - sansSerif = ["DejaVu Sans"]; - serif = ["DejaVu Serif"]; + monospace = [ "DejaVu Sans Mono for Powerline" ]; + sansSerif = [ "DejaVu Sans" ]; + serif = [ "DejaVu Serif" ]; }; }; @@ -69,16 +79,21 @@ nixpkgs.config.joypixels.acceptLicense = true; - environment.systemPackages = with pkgs; [waypipe]; + environment.systemPackages = with pkgs; [ waypipe ]; programs.dconf.enable = true; programs.mosh.enable = true; - boot.initrd.availableKernelModules = ["xhci_pci" "ahci" "nvme" "usbhid"]; - boot.initrd.kernelModules = []; - boot.kernelModules = ["kvm-intel"]; - boot.extraModulePackages = []; + boot.initrd.availableKernelModules = [ + "xhci_pci" + "ahci" + "nvme" + "usbhid" + ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ "kvm-intel" ]; + boot.extraModulePackages = [ ]; boot.loader.efi.canTouchEfiVariables = true; boot.loader.systemd-boot = { diff --git a/hosts/mothership/disko.nix b/hosts/mothership/disko.nix index 0c71d4a..2078a8f 100644 --- a/hosts/mothership/disko.nix +++ b/hosts/mothership/disko.nix @@ -1,8 +1,11 @@ { - lib, - disks ? ["/dev/nvme0n1" "/dev/nvme1n1"], + disks ? [ + "/dev/nvme0n1" + "/dev/nvme1n1" + ], ... -}: { +}: +{ disk = { x = { type = "disk"; diff --git a/hosts/oneplus5t/default.nix b/hosts/oneplus5t/default.nix index 990d6c9..2d4a904 100644 --- a/hosts/oneplus5t/default.nix +++ b/hosts/oneplus5t/default.nix @@ -1,9 +1,7 @@ { - config, - lib, - pkgs, ... -}: { +}: +{ signing.enable = true; # apps.prebuilt = { diff --git a/hosts/pbp/default.nix b/hosts/pbp/default.nix index 71b4595..337bc66 100644 --- a/hosts/pbp/default.nix +++ b/hosts/pbp/default.nix @@ -3,7 +3,8 @@ pkgs, lib, ... -}: { +}: +{ imports = [ ./hardware-configuration.nix diff --git a/hosts/pbp/hardware-configuration.nix b/hosts/pbp/hardware-configuration.nix index e038154..ff8baac 100644 --- a/hosts/pbp/hardware-configuration.nix +++ b/hosts/pbp/hardware-configuration.nix @@ -3,11 +3,12 @@ lib, pkgs, ... -}: { - disko.devices = import ./disko.nix {}; +}: +{ + disko.devices = import ./disko.nix { }; boot = { - initrd.availableKernelModules = ["usbhid"]; + initrd.availableKernelModules = [ "usbhid" ]; extraModulePackages = with config.boot.kernelPackages; [ v4l2loopback ]; diff --git a/hosts/picard/default.nix b/hosts/picard/default.nix index 01dfa6f..e5c0374 100644 --- a/hosts/picard/default.nix +++ b/hosts/picard/default.nix @@ -4,7 +4,8 @@ config, pkgs, ... -}: { +}: +{ imports = fleetModules [ "common" @@ -85,12 +86,12 @@ "reinstall-magisk-on-lineage" "vscode-server" ]; - extraGroups = []; - backupPaths = []; + extraGroups = [ ]; + backupPaths = [ ]; }; - boot.kernelParams = ["ip=dhcp"]; - boot.initrd.kernelModules = ["amdgpu"]; + boot.kernelParams = [ "ip=dhcp" ]; + boot.initrd.kernelModules = [ "amdgpu" ]; boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" @@ -108,7 +109,7 @@ # https://github.com/NixOS/nixpkgs/issues/328909 boot.extraModulePackages = [ (config.boot.kernelPackages.ddcci-driver.overrideAttrs (old: { - patches = []; + patches = [ ]; src = pkgs.fetchFromGitLab { owner = "${old.pname}-linux"; repo = "${old.pname}-linux"; @@ -154,6 +155,6 @@ # TODO move away from here (how can the interface name be retrieved programmatically?) networking.interfaces.enp11s0.wakeOnLan = { enable = true; - policy = ["magic"]; + policy = [ "magic" ]; }; } diff --git a/hosts/sisko/default.nix b/hosts/sisko/default.nix index c6c2050..79ef8fe 100644 --- a/hosts/sisko/default.nix +++ b/hosts/sisko/default.nix @@ -1,10 +1,10 @@ { fleetModules, pkgs, - fleetFlake, config, ... -}: { +}: +{ imports = fleetModules [ "common" @@ -71,7 +71,7 @@ nixpkgs.hostPlatform = "aarch64-linux"; - swapDevices = []; + swapDevices = [ ]; boot.loader = { systemd-boot.enable = true; @@ -128,7 +128,7 @@ fileSystems."/mnt/hd" = { device = "/dev/disk/by-id/ata-WDC_WD5000AAKX-08U6AA0_WD-WCC2E5TR40FU-part1"; fsType = "ext4"; - options = ["nofail"]; + options = [ "nofail" ]; }; environment.systemPackages = with pkgs; [ diff --git a/hosts/sisko/disko.nix b/hosts/sisko/disko.nix index b1fda80..909a33b 100644 --- a/hosts/sisko/disko.nix +++ b/hosts/sisko/disko.nix @@ -1,15 +1,18 @@ let - emmc = "/dev/disk/by-id/mmc-SLD64G_0xf6be3ba0"; ssd = "/dev/disk/by-id/ata-CT240BX300SSD1_1739E1042F3C"; - # hd1 = "/dev/disk/by-id/ata-WDC_WD10EADS-22M2B0_WD-WCAV52709550"; - # hd2 = "/dev/disk/by-id/ata-WDC_WD10EADX-22TDHB0_WD-WCAV5V359530"; - hd = "/dev/disk/by-id/ata-WDC_WD10EADS-22M2B0_WD-WCAV52709550-part1"; - # old_hd = "/dev/disk/by-id/ata-WDC_WD5000AAKX-08U6AA0_WD-WCC2E5TR40FU"; -in { +in +# hd1 = "/dev/disk/by-id/ata-WDC_WD10EADS-22M2B0_WD-WCAV52709550"; +# hd2 = "/dev/disk/by-id/ata-WDC_WD10EADX-22TDHB0_WD-WCAV5V359530"; +# old_hd = "/dev/disk/by-id/ata-WDC_WD5000AAKX-08U6AA0_WD-WCC2E5TR40FU"; +{ disko.devices = { nodev."/" = { fsType = "tmpfs"; - mountOptions = ["size=1024M" "defaults" "mode=755"]; + mountOptions = [ + "size=1024M" + "defaults" + "mode=755" + ]; }; disk = { ssd = { diff --git a/hosts/test/default.nix b/hosts/test/default.nix index 34c1daf..a99e079 100644 --- a/hosts/test/default.nix +++ b/hosts/test/default.nix @@ -1,10 +1,8 @@ { fleetModules, - lib, - config, - pkgs, ... -}: { +}: +{ imports = fleetModules [ "common" diff --git a/hosts/thinkpad/default.nix b/hosts/thinkpad/default.nix index 2285cb2..40a5c56 100644 --- a/hosts/thinkpad/default.nix +++ b/hosts/thinkpad/default.nix @@ -1,10 +1,10 @@ { config, - lib, pkgs, fleetModules, ... -}: { +}: +{ imports = [ ./zfs.nix @@ -97,10 +97,15 @@ ]; }; - boot.initrd.availableKernelModules = ["xhci_pci" "nvme" "usb_storage" "sd_mod"]; - boot.initrd.kernelModules = []; - boot.kernelModules = ["kvm-intel"]; - boot.extraModulePackages = with config.boot.kernelPackages; [v4l2loopback]; + boot.initrd.availableKernelModules = [ + "xhci_pci" + "nvme" + "usb_storage" + "sd_mod" + ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ "kvm-intel" ]; + boot.extraModulePackages = with config.boot.kernelPackages; [ v4l2loopback ]; # boot.kernelPackages = pkgs.linuxPackages_zen; # Enables DHCP on each ethernet and wireless interface. In case of scripted networking @@ -126,8 +131,8 @@ useXkbConfig = true; # use xkbOptions in tty. }; - services.joycond.enable = true; #FIXME not here - services.udev.packages = [pkgs.joycond]; + services.joycond.enable = true; # FIXME not here + services.udev.packages = [ pkgs.joycond ]; # Enable the X11 windowing system. # services.xserver.enable = true; @@ -183,7 +188,7 @@ # services.openssh.enable = true; # Open ports in the firewall. - networking.firewall.allowedTCPPorts = [8000]; + networking.firewall.allowedTCPPorts = [ 8000 ]; # networking.firewall.allowedUDPPorts = [ 5000 ]; # Or disable the firewall altogether. # networking.firewall.enable = false; @@ -214,7 +219,7 @@ ]; }; - users.groups.input.members = ["ccr"]; + users.groups.input.members = [ "ccr" ]; services.udev.extraRules = '' Sunshine KERNEL=="uinput", GROUP="input", MODE="0660", OPTIONS+="static_node=uinput" diff --git a/hosts/thinkpad/hardware-configuration.nix b/hosts/thinkpad/hardware-configuration.nix index 0f97b7d..df9aa53 100644 --- a/hosts/thinkpad/hardware-configuration.nix +++ b/hosts/thinkpad/hardware-configuration.nix @@ -4,47 +4,67 @@ { config, lib, - pkgs, modulesPath, ... -}: { +}: +{ imports = [ (modulesPath + "/installer/scan/not-detected.nix") ]; - boot.initrd.availableKernelModules = ["xhci_pci" "nvme" "usb_storage" "sd_mod"]; - boot.initrd.kernelModules = []; - boot.kernelModules = ["uinput"]; - boot.extraModulePackages = []; + boot.initrd.availableKernelModules = [ + "xhci_pci" + "nvme" + "usb_storage" + "sd_mod" + ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ "uinput" ]; + boot.extraModulePackages = [ ]; fileSystems."/" = { device = "rpool/nixos/root"; fsType = "zfs"; - options = ["zfsutil" "X-mount.mkdir"]; + options = [ + "zfsutil" + "X-mount.mkdir" + ]; }; fileSystems."/home" = { device = "rpool/nixos/home"; fsType = "zfs"; - options = ["zfsutil" "X-mount.mkdir"]; + options = [ + "zfsutil" + "X-mount.mkdir" + ]; }; fileSystems."/var/lib" = { device = "rpool/nixos/var/lib"; fsType = "zfs"; - options = ["zfsutil" "X-mount.mkdir"]; + options = [ + "zfsutil" + "X-mount.mkdir" + ]; }; fileSystems."/var/log" = { device = "rpool/nixos/var/log"; fsType = "zfs"; - options = ["zfsutil" "X-mount.mkdir"]; + options = [ + "zfsutil" + "X-mount.mkdir" + ]; }; fileSystems."/boot" = { device = "bpool/nixos/root"; fsType = "zfs"; - options = ["zfsutil" "X-mount.mkdir"]; + options = [ + "zfsutil" + "X-mount.mkdir" + ]; }; fileSystems."/boot/efis/nvme-INTEL_SSDPEKKF010T8L_PHHP938405741P0D-part1" = { @@ -64,7 +84,7 @@ # }; swapDevices = [ - {device = "/dev/disk/by-label/swap";} + { device = "/dev/disk/by-label/swap"; } ]; # Enables DHCP on each ethernet and wireless interface. In case of scripted networking diff --git a/hosts/thinkpad/zfs.nix b/hosts/thinkpad/zfs.nix index dd64da1..e248e47 100644 --- a/hosts/thinkpad/zfs.nix +++ b/hosts/thinkpad/zfs.nix @@ -1,10 +1,10 @@ { - config, pkgs, lib, ... -}: { - boot.supportedFilesystems = ["zfs"]; +}: +{ + boot.supportedFilesystems = [ "zfs" ]; networking.hostId = "adf0b5e7"; boot.loader.efi.efiSysMountPoint = "/boot/efi"; boot.loader.efi.canTouchEfiVariables = false; @@ -23,7 +23,7 @@ mount /boot/efi ''; boot.loader.grub.extraInstallCommands = '' - export PATH=$PATH:${lib.makeBinPath [pkgs.coreutils]} + export PATH=$PATH:${lib.makeBinPath [ pkgs.coreutils ]} ESP_MIRROR=$(mktemp -d) cp -r /boot/efi/EFI $ESP_MIRROR for i in /boot/efis/*; do diff --git a/modules/adb/default.nix b/modules/adb/default.nix index 4ca3870..928fbe4 100644 --- a/modules/adb/default.nix +++ b/modules/adb/default.nix @@ -1,4 +1,4 @@ { programs.adb.enable = true; - ccr.extraGroups = ["adbusers"]; + ccr.extraGroups = [ "adbusers" ]; } diff --git a/modules/adguard-home/default.nix b/modules/adguard-home/default.nix index 5836d1e..988b8ca 100644 --- a/modules/adguard-home/default.nix +++ b/modules/adguard-home/default.nix @@ -6,6 +6,9 @@ openFirewall = true; }; }; - networking.firewall.allowedTCPPorts = [3000 53]; - networking.firewall.allowedUDPPorts = [53]; + networking.firewall.allowedTCPPorts = [ + 3000 + 53 + ]; + networking.firewall.allowedUDPPorts = [ 53 ]; } diff --git a/modules/atuin/default.nix b/modules/atuin/default.nix index ebbefef..d9e04f9 100644 --- a/modules/atuin/default.nix +++ b/modules/atuin/default.nix @@ -1,4 +1,5 @@ -{config, ...}: { +{ config, ... }: +{ services.atuin = { enable = true; openFirewall = false; # use only in the VPN diff --git a/modules/audio/default.nix b/modules/audio/default.nix index 8e5c841..96e68ee 100644 --- a/modules/audio/default.nix +++ b/modules/audio/default.nix @@ -1,4 +1,5 @@ -{pkgs, ...}: { +{ pkgs, ... }: +{ sound.enable = true; hardware.pulseaudio = { @@ -6,5 +7,5 @@ package = pkgs.pulseaudioFull; }; - users.extraUsers.ccr.extraGroups = ["audio"]; + users.extraUsers.ccr.extraGroups = [ "audio" ]; } diff --git a/modules/auto-upgrade/default.nix b/modules/auto-upgrade/default.nix index 72cd5c9..a9d6213 100644 --- a/modules/auto-upgrade/default.nix +++ b/modules/auto-upgrade/default.nix @@ -1,9 +1,8 @@ { config, - options, - lib, ... -}: { +}: +{ system.autoUpgrade = { enable = false; flake = "github:aciceri/nixfleet#${config.networking.hostName}"; diff --git a/modules/battery/default.nix b/modules/battery/default.nix index 2f56d8b..96c5bf3 100644 --- a/modules/battery/default.nix +++ b/modules/battery/default.nix @@ -1,10 +1,11 @@ -{config, ...}: { +{ config, ... }: +{ services.tlp.enable = true; services.upower.enable = true; nixpkgs.overlays = [ - (self: super: { + (_self: super: { tlp = super.tlp.override { enableRDW = config.networkmanager.enable; }; diff --git a/modules/binfmt/default.nix b/modules/binfmt/default.nix index b1f04cf..bd582f7 100644 --- a/modules/binfmt/default.nix +++ b/modules/binfmt/default.nix @@ -1,5 +1,9 @@ { - boot.binfmt.emulatedSystems = ["i686-linux" "aarch64-linux" "riscv64-linux"]; + boot.binfmt.emulatedSystems = [ + "i686-linux" + "aarch64-linux" + "riscv64-linux" + ]; nix.extraOptions = '' extra-platforms = aarch64-linux arm-linux i686-linux riscv64-linux ''; diff --git a/modules/bluetooth/default.nix b/modules/bluetooth/default.nix index 49fbc36..9d5ee45 100644 --- a/modules/bluetooth/default.nix +++ b/modules/bluetooth/default.nix @@ -2,7 +2,8 @@ pkgs, config, ... -}: { +}: +{ services.blueman.enable = true; hardware.pulseaudio.enable = true; hardware.bluetooth = { @@ -19,6 +20,6 @@ }; }; }; - services.dbus.packages = with pkgs; [blueman]; - ccr.extraGroups = ["bluetooth"]; + services.dbus.packages = with pkgs; [ blueman ]; + ccr.extraGroups = [ "bluetooth" ]; } diff --git a/modules/bubbleupnp/default.nix b/modules/bubbleupnp/default.nix index 64c304f..7858899 100644 --- a/modules/bubbleupnp/default.nix +++ b/modules/bubbleupnp/default.nix @@ -2,10 +2,13 @@ virtualisation.oci-containers.containers = { bubbleupnpserver = { image = "bubblesoftapps/bubbleupnpserver"; - ports = ["58050:58050"]; - extraOptions = ["--network=host" "-device /dev/dri:/dev/dri"]; + ports = [ "58050:58050" ]; + extraOptions = [ + "--network=host" + "-device /dev/dri:/dev/dri" + ]; }; }; - networking.firewall.allowedTCPPorts = [58050]; + networking.firewall.allowedTCPPorts = [ 58050 ]; } diff --git a/modules/ccr/default.nix b/modules/ccr/default.nix index 13494c5..3ffa60d 100644 --- a/modules/ccr/default.nix +++ b/modules/ccr/default.nix @@ -7,10 +7,12 @@ vpn, options, ... -}: let +}: +let cfg = config.ccr; inherit (lib) types; -in { +in +{ options.ccr = { enable = lib.mkEnableOption "ccr"; @@ -31,12 +33,12 @@ in { modules = lib.mkOption { type = types.listOf types.str; - default = []; + default = [ ]; }; packages = lib.mkOption { type = types.listOf types.package; - default = []; + default = [ ]; }; autologin = lib.mkOption { @@ -56,63 +58,74 @@ in { extraGroups = lib.mkOption { type = types.listOf types.str; - default = {}; + default = { }; }; extraModules = lib.mkOption { type = types.listOf types.deferredModule; - default = []; + default = [ ]; }; backupPaths = lib.mkOption { type = types.listOf types.str; - default = []; + default = [ ]; }; }; - config = lib.mkIf cfg.enable (lib.mkMerge [ - (lib.optionalAttrs (builtins.hasAttr "backup" options) { - backup.paths = cfg.backupPaths; - }) - { - # FIXME shouldn't set these groups by default - ccr.extraGroups = ["wheel" "fuse" "video" "dialout" "systemd-journal" "camera"]; - ccr.modules = ["shell" "git" "nix-index" "btop"]; + config = lib.mkIf cfg.enable ( + lib.mkMerge [ + (lib.optionalAttrs (builtins.hasAttr "backup" options) { + backup.paths = cfg.backupPaths; + }) + { + # FIXME shouldn't set these groups by default + ccr.extraGroups = [ + "wheel" + "fuse" + "video" + "dialout" + "systemd-journal" + "camera" + ]; + ccr.modules = [ + "shell" + "git" + "nix-index" + "btop" + ]; - users.users.${cfg.username} = { - inherit (config.ccr) hashedPassword extraGroups description; - uid = 1000; - isNormalUser = true; - shell = cfg.shell; - openssh.authorizedKeys.keys = config.ccr.authorizedKeys; - }; + users.users.${cfg.username} = { + inherit (config.ccr) hashedPassword extraGroups description; + uid = 1000; + isNormalUser = true; + shell = cfg.shell; + openssh.authorizedKeys.keys = config.ccr.authorizedKeys; + }; - programs.fish.enable = true; + programs.fish.enable = true; - services.getty.autologinUser = - if config.ccr.autologin - then cfg.username - else null; + services.getty.autologinUser = if config.ccr.autologin then cfg.username else null; - home-manager.useGlobalPkgs = true; - home-manager.useUserPackages = true; - home-manager.users.${cfg.username} = { - imports = - fleetHmModules cfg.modules - ++ [ - { - _module.args = { - inherit (config.age) secrets; - inherit (cfg) username; - inherit vpn; - hostname = config.networking.hostName; - }; - } - ] - ++ cfg.extraModules; - home.packages = cfg.packages; - home.stateVersion = config.system.stateVersion; - }; - } - ]); + home-manager.useGlobalPkgs = true; + home-manager.useUserPackages = true; + home-manager.users.${cfg.username} = { + imports = + fleetHmModules cfg.modules + ++ [ + { + _module.args = { + inherit (config.age) secrets; + inherit (cfg) username; + inherit vpn; + hostname = config.networking.hostName; + }; + } + ] + ++ cfg.extraModules; + home.packages = cfg.packages; + home.stateVersion = config.system.stateVersion; + }; + } + ] + ); } diff --git a/modules/cgit/config.nix b/modules/cgit/config.nix index ab5be50..9386a34 100644 --- a/modules/cgit/config.nix +++ b/modules/cgit/config.nix @@ -1,28 +1,31 @@ { - lib, pkgs, ... -}: let +}: +let repos-path = "/var/lib/cgit-repos"; cgit-setup-repos = - pkgs.writers.writePython3 "cgit-setup-repos" { - libraries = with pkgs.python3Packages; [PyGithub]; - } '' - from github import Github - from pathlib import Path + pkgs.writers.writePython3 "cgit-setup-repos" + { + libraries = with pkgs.python3Packages; [ PyGithub ]; + } + '' + from github import Github + from pathlib import Path - c = Path("${repos-path}") - c.unlink(missing_ok=True) + c = Path("${repos-path}") + c.unlink(missing_ok=True) - with open(c, "w") as f: - for repo in Github().get_user("aciceri").get_repos(): - f.writelines([ - f"repo.url={repo.name}\n" - f"repo.path=/home/ccr/projects/aciceri/{repo.name}/.git\n" - f"repo.desc={repo.description}\n" - ]) - ''; -in { + with open(c, "w") as f: + for repo in Github().get_user("aciceri").get_repos(): + f.writelines([ + f"repo.url={repo.name}\n" + f"repo.path=/home/ccr/projects/aciceri/{repo.name}/.git\n" + f"repo.desc={repo.description}\n" + ]) + ''; +in +{ services.nginx.virtualHosts."git.aciceri.dev" = { cgit = { enable = true; @@ -31,10 +34,12 @@ in { virtual-root = "/"; cache-size = 1000; include = [ - (builtins.toString (pkgs.writeText "cgit-extra" '' - source-filter=${pkgs.cgit-pink}/lib/cgit/filters/syntax-highlighting.py - about-filter=${pkgs.cgit-pink}/lib/cgit/filters/about-formatting.sh - '')) + (builtins.toString ( + pkgs.writeText "cgit-extra" '' + source-filter=${pkgs.cgit-pink}/lib/cgit/filters/syntax-highlighting.py + about-filter=${pkgs.cgit-pink}/lib/cgit/filters/about-formatting.sh + '' + )) repos-path ]; }; @@ -48,13 +53,13 @@ in { Type = "oneshot"; RemainAfterExit = true; }; - wantedBy = ["multi-user.target"]; + wantedBy = [ "multi-user.target" ]; script = builtins.toString cgit-setup-repos; }; systemd.timers.cgit-setup-repos = { - wantedBy = ["timers.target"]; - partOf = ["cgit-setup-repos.service"]; + wantedBy = [ "timers.target" ]; + partOf = [ "cgit-setup-repos.service" ]; timerConfig = { OnCalendar = "*-*-* 4:00:00"; # daily at 4 AM Unit = "cgit-setup-repos.service"; diff --git a/modules/cgit/default.nix b/modules/cgit/default.nix index a6439f8..20561ce 100644 --- a/modules/cgit/default.nix +++ b/modules/cgit/default.nix @@ -4,134 +4,149 @@ pkgs, ... }: -with lib; let +with lib; +let globalConfig = config; settingsFormat = { - type = with lib.types; let - value = - oneOf [int str] - // { - description = "INI-like atom (int or string)"; - }; - values = - coercedTo value lib.singleton (listOf value) - // { + type = + with lib.types; + let + value = + oneOf [ + int + str + ] + // { + description = "INI-like atom (int or string)"; + }; + values = coercedTo value lib.singleton (listOf value) // { description = value.description + " or a list of them for duplicate keys"; }; - in + in attrsOf values; - generate = name: values: - pkgs.writeText name (lib.generators.toKeyValue {listsAsDuplicateKeys = true;} values); + generate = + name: values: + pkgs.writeText name (lib.generators.toKeyValue { listsAsDuplicateKeys = true; } values); }; -in { +in +{ imports = [ ../nginx-base ./config.nix ]; options.services.nginx.virtualHosts = mkOption { - type = types.attrsOf (types.submodule ({config, ...}: let - cfg = config.cgit; + type = types.attrsOf ( + types.submodule ( + { config, ... }: + let + cfg = config.cgit; - # These are the global options for this submodule, but for nicer UX they - # are inlined into the freeform settings. Hence they MUST NOT INTERSECT - # with any settings from cgitrc! - options = { - enable = mkEnableOption "cgit"; + # These are the global options for this submodule, but for nicer UX they + # are inlined into the freeform settings. Hence they MUST NOT INTERSECT + # with any settings from cgitrc! + options = { + enable = mkEnableOption "cgit"; - location = mkOption { - default = "/"; - type = types.str; - description = '' - Location to serve cgit on. - ''; - }; - }; + location = mkOption { + default = "/"; + type = types.str; + description = '' + Location to serve cgit on. + ''; + }; + }; - # Remove the global options for serialization into cgitrc - settings = removeAttrs cfg (attrNames options); - in { - options.cgit = mkOption { - type = types.submodule { - freeformType = settingsFormat.type; - inherit options; - config = { - css = mkDefault "/cgit.css"; - logo = mkDefault "/cgit.png"; - favicon = mkDefault "/favicon.ico"; + # Remove the global options for serialization into cgitrc + settings = removeAttrs cfg (attrNames options); + in + { + options.cgit = mkOption { + type = types.submodule { + freeformType = settingsFormat.type; + inherit options; + config = { + css = mkDefault "/cgit.css"; + logo = mkDefault "/cgit.png"; + favicon = mkDefault "/favicon.ico"; + }; + }; + default = { }; + example = literalExample '' + { + enable = true; + virtual-root = "/"; + source-filter = "''${pkgs.cgit-pink}/lib/cgit/filters/syntax-highlighting.py"; + about-filter = "''${pkgs.cgit-pink}/lib/cgit/filters/about-formatting.sh"; + cache-size = 1000; + scan-path = "/srv/git"; + include = [ + (builtins.toFile "cgitrc-extra-1" ''' + # Anything that has to be in a particular order + ''') + (builtins.toFile "cgitrc-extra-2" ''' + # Anything that has to be in a particular order + ''') + ]; + } + ''; + description = '' + Verbatim contents of the cgit runtime configuration file. Documentation + (with cgitrc example file) is available in "man cgitrc". Or online: + http://git.zx2c4.com/cgit/tree/cgitrc.5.txt + ''; }; - }; - default = {}; - example = literalExample '' - { - enable = true; - virtual-root = "/"; - source-filter = "''${pkgs.cgit-pink}/lib/cgit/filters/syntax-highlighting.py"; - about-filter = "''${pkgs.cgit-pink}/lib/cgit/filters/about-formatting.sh"; - cache-size = 1000; - scan-path = "/srv/git"; - include = [ - (builtins.toFile "cgitrc-extra-1" ''' - # Anything that has to be in a particular order - ''') - (builtins.toFile "cgitrc-extra-2" ''' - # Anything that has to be in a particular order - ''') - ]; - } - ''; - description = '' - Verbatim contents of the cgit runtime configuration file. Documentation - (with cgitrc example file) is available in "man cgitrc". Or online: - http://git.zx2c4.com/cgit/tree/cgitrc.5.txt - ''; - }; - config = let - location = removeSuffix "/" cfg.location; - in - mkIf cfg.enable { - locations."${location}/" = { - root = "${pkgs.cgit-pink}/cgit/"; - tryFiles = "$uri @cgit"; - }; - locations."~ ^${location}/(cgit.(css|png)|favicon.ico|robots.txt)$" = { - alias = "${pkgs.cgit-pink}/cgit/$1"; - }; - locations."~ ^${location}/custom.css$" = { - alias = ./custom.css; - }; - locations."@cgit" = { - extraConfig = - '' - include ${pkgs.nginx}/conf/fastcgi_params; - fastcgi_param CGIT_CONFIG ${settingsFormat.generate "cgitrc" settings}; - fastcgi_param SCRIPT_FILENAME ${pkgs.cgit-pink}/cgit/cgit.cgi; - fastcgi_param QUERY_STRING $args; - fastcgi_param HTTP_HOST $server_name; - fastcgi_pass unix:${globalConfig.services.fcgiwrap.socketAddress}; - '' - + ( - if cfg.location == "/" - then '' - fastcgi_param PATH_INFO $uri; - '' - else '' - fastcgi_split_path_info ^(${location}/)(/?.+)$; - fastcgi_param PATH_INFO $fastcgi_path_info; - '' - ); - }; - }; - })); + config = + let + location = removeSuffix "/" cfg.location; + in + mkIf cfg.enable { + locations."${location}/" = { + root = "${pkgs.cgit-pink}/cgit/"; + tryFiles = "$uri @cgit"; + }; + locations."~ ^${location}/(cgit.(css|png)|favicon.ico|robots.txt)$" = { + alias = "${pkgs.cgit-pink}/cgit/$1"; + }; + locations."~ ^${location}/custom.css$" = { + alias = ./custom.css; + }; + locations."@cgit" = { + extraConfig = + '' + include ${pkgs.nginx}/conf/fastcgi_params; + fastcgi_param CGIT_CONFIG ${settingsFormat.generate "cgitrc" settings}; + fastcgi_param SCRIPT_FILENAME ${pkgs.cgit-pink}/cgit/cgit.cgi; + fastcgi_param QUERY_STRING $args; + fastcgi_param HTTP_HOST $server_name; + fastcgi_pass unix:${globalConfig.services.fcgiwrap.socketAddress}; + '' + + ( + if cfg.location == "/" then + '' + fastcgi_param PATH_INFO $uri; + '' + else + '' + fastcgi_split_path_info ^(${location}/)(/?.+)$; + fastcgi_param PATH_INFO $fastcgi_path_info; + '' + ); + }; + }; + } + ) + ); }; - config = let - vhosts = config.services.nginx.virtualHosts; - in + config = + let + vhosts = config.services.nginx.virtualHosts; + in mkIf (any (name: vhosts.${name}.cgit.enable) (attrNames vhosts)) { # make the cgitrc manpage available - environment.systemPackages = [pkgs.cgit-pink]; + environment.systemPackages = [ pkgs.cgit-pink ]; services.fcgiwrap.enable = true; }; diff --git a/modules/cloudflare-dyndns/default.nix b/modules/cloudflare-dyndns/default.nix index 10fe6dc..b70c98d 100644 --- a/modules/cloudflare-dyndns/default.nix +++ b/modules/cloudflare-dyndns/default.nix @@ -1,4 +1,5 @@ -{config, ...}: { +{ config, ... }: +{ services.cloudflare-dyndns = { enable = true; ipv4 = true; diff --git a/modules/common/default.nix b/modules/common/default.nix index 7bd90c3..c802ddd 100644 --- a/modules/common/default.nix +++ b/modules/common/default.nix @@ -2,7 +2,8 @@ lib, fleetModules, ... -}: { +}: +{ imports = fleetModules [ "nix" "auto-upgrade" diff --git a/modules/dbus/default.nix b/modules/dbus/default.nix index b481548..a50d8d9 100644 --- a/modules/dbus/default.nix +++ b/modules/dbus/default.nix @@ -1,4 +1,5 @@ -{pkgs, ...}: { - services.dbus.packages = [pkgs.dconf]; +{ pkgs, ... }: +{ + services.dbus.packages = [ pkgs.dconf ]; programs.dconf.enable = true; } diff --git a/modules/docker/default.nix b/modules/docker/default.nix index b49ba1d..d2a0f2a 100644 --- a/modules/docker/default.nix +++ b/modules/docker/default.nix @@ -1,13 +1,16 @@ { pkgs, - config, ... -}: { +}: +{ virtualisation.podman.enable = true; # virtualisation.docker.enable = true; environment.systemPackages = with pkgs; [ docker-compose podman-compose ]; - ccr.extraGroups = ["docker" "podman"]; + ccr.extraGroups = [ + "docker" + "podman" + ]; } diff --git a/modules/fonts/default.nix b/modules/fonts/default.nix index 4fbe894..e89327a 100644 --- a/modules/fonts/default.nix +++ b/modules/fonts/default.nix @@ -1,10 +1,23 @@ -{pkgs, ...}: { +{ pkgs, ... }: +{ fonts = { - packages = with pkgs; [powerline-fonts dejavu_fonts fira-code fira-code-symbols iosevka iosevka-comfy.comfy emacs-all-the-icons-fonts nerdfonts joypixels etBook vegur]; + packages = with pkgs; [ + powerline-fonts + dejavu_fonts + fira-code + fira-code-symbols + iosevka + iosevka-comfy.comfy + emacs-all-the-icons-fonts + nerdfonts + joypixels + etBook + vegur + ]; fontconfig.defaultFonts = { - monospace = ["DejaVu Sans Mono for Powerline"]; - sansSerif = ["DejaVu Sans"]; - serif = ["DejaVu Serif"]; + monospace = [ "DejaVu Sans Mono for Powerline" ]; + sansSerif = [ "DejaVu Sans" ]; + serif = [ "DejaVu Serif" ]; }; }; nixpkgs.config.joypixels.acceptLicense = true; diff --git a/modules/forgejo-runners/default.nix b/modules/forgejo-runners/default.nix index 28b4c35..4cbb492 100644 --- a/modules/forgejo-runners/default.nix +++ b/modules/forgejo-runners/default.nix @@ -4,10 +4,27 @@ pkgs, lib, ... -}: let - storeDeps = pkgs.runCommand "store-deps" {} '' +}: +let + storeDeps = pkgs.runCommand "store-deps" { } '' mkdir -p $out/bin - for dir in ${with pkgs; builtins.toString [coreutils findutils gnugrep gawk git nix bash jq nodejs nix-fast-build curl tea]}; do + for dir in ${ + with pkgs; + builtins.toString [ + coreutils + findutils + gnugrep + gawk + git + nix + bash + jq + nodejs + nix-fast-build + curl + tea + ] + }; do for bin in "$dir"/bin/*; do ln -s "$bin" "$out/bin/$(basename "$bin")" done @@ -28,182 +45,194 @@ exec nix copy --to "s3://cache?profile=default®ion=eu-south-1&scheme=https&endpoint=cache.aciceri.dev" $OUT_PATHS ''; in - lib.mkMerge [ - { - # everything here has no dependencies on the store - systemd.services.gitea-runner-nix-image = { - wantedBy = ["multi-user.target"]; - after = ["podman.service"]; - requires = ["podman.service"]; - path = [config.virtualisation.podman.package pkgs.gnutar pkgs.shadow pkgs.getent]; - # we also include etc here because the cleanup job also wants the nixuser to be present - script = '' - set -eux -o pipefail - mkdir -p etc/nix +lib.mkMerge [ + { + # everything here has no dependencies on the store + systemd.services.gitea-runner-nix-image = { + wantedBy = [ "multi-user.target" ]; + after = [ "podman.service" ]; + requires = [ "podman.service" ]; + path = [ + config.virtualisation.podman.package + pkgs.gnutar + pkgs.shadow + pkgs.getent + ]; + # we also include etc here because the cleanup job also wants the nixuser to be present + script = '' + set -eux -o pipefail + mkdir -p etc/nix - # Create an unpriveleged user that we can use also without the run-as-user.sh script - touch etc/passwd etc/group - groupid=$(cut -d: -f3 < <(getent group nixuser)) - userid=$(cut -d: -f3 < <(getent passwd nixuser)) - groupadd --prefix $(pwd) --gid "$groupid" nixuser - emptypassword='$6$1ero.LwbisiU.h3D$GGmnmECbPotJoPQ5eoSTD6tTjKnSWZcjHoVTkxFLZP17W9hRi/XkmCiAMOfWruUwy8gMjINrBMNODc7cYEo4K.' - useradd --prefix $(pwd) -p "$emptypassword" -m -d /tmp -u "$userid" -g "$groupid" -G nixuser nixuser + # Create an unpriveleged user that we can use also without the run-as-user.sh script + touch etc/passwd etc/group + groupid=$(cut -d: -f3 < <(getent group nixuser)) + userid=$(cut -d: -f3 < <(getent passwd nixuser)) + groupadd --prefix $(pwd) --gid "$groupid" nixuser + emptypassword='$6$1ero.LwbisiU.h3D$GGmnmECbPotJoPQ5eoSTD6tTjKnSWZcjHoVTkxFLZP17W9hRi/XkmCiAMOfWruUwy8gMjINrBMNODc7cYEo4K.' + useradd --prefix $(pwd) -p "$emptypassword" -m -d /tmp -u "$userid" -g "$groupid" -G nixuser nixuser - echo -n "access-tokens = " > etc/nix/access-tokens - cat ${config.age.secrets.forgejo-nix-access-tokens.path} >> etc/nix/access-tokens + echo -n "access-tokens = " > etc/nix/access-tokens + cat ${config.age.secrets.forgejo-nix-access-tokens.path} >> etc/nix/access-tokens - cat < etc/nix/nix.conf - accept-flake-config = true - experimental-features = nix-command flakes - post-build-hook = ${pushToCache} - include access-tokens - NIX_CONFIG + cat < etc/nix/nix.conf + accept-flake-config = true + experimental-features = nix-command flakes + post-build-hook = ${pushToCache} + include access-tokens + NIX_CONFIG - cat < etc/nsswitch.conf - passwd: files mymachines systemd - group: files mymachines systemd - shadow: files + cat < etc/nsswitch.conf + passwd: files mymachines systemd + group: files mymachines systemd + shadow: files - hosts: files mymachines dns myhostname - networks: files + hosts: files mymachines dns myhostname + networks: files - ethers: files - services: files - protocols: files - rpc: files - NSSWITCH + ethers: files + services: files + protocols: files + rpc: files + NSSWITCH - # list the content as it will be imported into the container - tar -cv . | tar -tvf - - tar -cv . | podman import - gitea-runner-nix - ''; - serviceConfig = { - RuntimeDirectory = "gitea-runner-nix-image"; - WorkingDirectory = "/run/gitea-runner-nix-image"; - Type = "oneshot"; - RemainAfterExit = true; - }; + # list the content as it will be imported into the container + tar -cv . | tar -tvf - + tar -cv . | podman import - gitea-runner-nix + ''; + serviceConfig = { + RuntimeDirectory = "gitea-runner-nix-image"; + WorkingDirectory = "/run/gitea-runner-nix-image"; + Type = "oneshot"; + RemainAfterExit = true; }; + }; - users.users.nixuser = { - group = "nixuser"; - description = "Used for running nix ci jobs"; - home = "/var/empty"; - isSystemUser = true; - # extraGroups = [ "podman" ]; - }; - users.groups.nixuser = {}; - } - { - # Format of the token file: - virtualisation = { - podman.enable = true; - }; + users.users.nixuser = { + group = "nixuser"; + description = "Used for running nix ci jobs"; + home = "/var/empty"; + isSystemUser = true; + # extraGroups = [ "podman" ]; + }; + users.groups.nixuser = { }; + } + { + # Format of the token file: + virtualisation = { + podman.enable = true; + }; - # virtualisation.containers.storage.settings = { - # storage.driver = "zfs"; - # storage.graphroot = "/var/lib/containers/storage"; - # storage.runroot = "/run/containers/storage"; - # storage.options.zfs.fsname = "zroot/root/podman"; - # }; + # virtualisation.containers.storage.settings = { + # storage.driver = "zfs"; + # storage.graphroot = "/var/lib/containers/storage"; + # storage.runroot = "/run/containers/storage"; + # storage.options.zfs.fsname = "zroot/root/podman"; + # }; - # virtualisation.containers.containersConf.settings = { - # # podman seems to not work with systemd-resolved - # containers.dns_servers = [ "8.8.8.8" "8.8.4.4" ]; - # }; - } - { - systemd.services = lib.genAttrs (builtins.genList (n: "gitea-runner-nix${builtins.toString n}") numInstances) (name: { - # TODO: systemd confinment - serviceConfig = { - # Hardening (may overlap with DynamicUser=) - # The following options are only for optimizing output of systemd-analyze - AmbientCapabilities = ""; - CapabilityBoundingSet = ""; - # ProtectClock= adds DeviceAllow=char-rtc r - DeviceAllow = ""; - NoNewPrivileges = true; - PrivateDevices = true; - PrivateMounts = true; - PrivateTmp = true; - PrivateUsers = true; - ProtectClock = true; - ProtectControlGroups = true; - ProtectHome = true; - ProtectHostname = true; - ProtectKernelLogs = true; - ProtectKernelModules = true; - ProtectKernelTunables = true; - ProtectSystem = "strict"; - RemoveIPC = true; - RestrictNamespaces = true; - RestrictRealtime = true; - RestrictSUIDSGID = true; - UMask = "0066"; - ProtectProc = "invisible"; - SystemCallFilter = [ - "~@clock" - "~@cpu-emulation" - "~@module" - "~@mount" - "~@obsolete" - "~@raw-io" - "~@reboot" - "~@swap" - # needed by go? - #"~@resources" - "~@privileged" - "~capset" - "~setdomainname" - "~sethostname" - ]; - RestrictAddressFamilies = ["AF_INET" "AF_INET6" "AF_UNIX" "AF_NETLINK"]; - - # Needs network access - PrivateNetwork = false; - # Cannot be true due to Node - MemoryDenyWriteExecute = false; - - # The more restrictive "pid" option makes `nix` commands in CI emit - # "GC Warning: Couldn't read /proc/stat" - # You may want to set this to "pid" if not using `nix` commands - ProcSubset = "all"; - # Coverage programs for compiled code such as `cargo-tarpaulin` disable - # ASLR (address space layout randomization) which requires the - # `personality` syscall - # You may want to set this to `true` if not using coverage tooling on - # compiled code - LockPersonality = false; - - # Note that this has some interactions with the User setting; so you may - # want to consult the systemd docs if using both. - DynamicUser = true; - }; - }); - - services.gitea-actions-runner = { - package = pkgs.forgejo-actions-runner; - instances = lib.genAttrs (builtins.genList (n: "nix${builtins.toString n}") numInstances) (name: { - enable = true; - name = "nix-runner"; - # take the git root url from the gitea config - # only possible if you've also configured your gitea though the same nix config - # otherwise you need to set it manually - url = "https://git.aciceri.dev"; - # use your favourite nix secret manager to get a path for this - tokenFile = config.age.secrets.forgejo-runners-token.path; - labels = ["nix:docker://gitea-runner-nix"]; - settings = { - container.options = "-e NIX_BUILD_SHELL=/bin/bash -e PAGER=cat -e PATH=/bin -e SSL_CERT_FILE=/etc/ssl/certs/ca-bundle.crt --device /dev/kvm -v /nix:/nix -v ${storeDeps}/bin:/bin -v ${storeDeps}/etc/ssl:/etc/ssl --user nixuser --device=/dev/kvm"; - # the default network that also respects our dns server settings - container.network = "host"; - container.valid_volumes = [ - "/nix" - "${storeDeps}/bin" - "${storeDeps}/etc/ssl" + # virtualisation.containers.containersConf.settings = { + # # podman seems to not work with systemd-resolved + # containers.dns_servers = [ "8.8.8.8" "8.8.4.4" ]; + # }; + } + { + systemd.services = + lib.genAttrs (builtins.genList (n: "gitea-runner-nix${builtins.toString n}") numInstances) + (_name: { + # TODO: systemd confinment + serviceConfig = { + # Hardening (may overlap with DynamicUser=) + # The following options are only for optimizing output of systemd-analyze + AmbientCapabilities = ""; + CapabilityBoundingSet = ""; + # ProtectClock= adds DeviceAllow=char-rtc r + DeviceAllow = ""; + NoNewPrivileges = true; + PrivateDevices = true; + PrivateMounts = true; + PrivateTmp = true; + PrivateUsers = true; + ProtectClock = true; + ProtectControlGroups = true; + ProtectHome = true; + ProtectHostname = true; + ProtectKernelLogs = true; + ProtectKernelModules = true; + ProtectKernelTunables = true; + ProtectSystem = "strict"; + RemoveIPC = true; + RestrictNamespaces = true; + RestrictRealtime = true; + RestrictSUIDSGID = true; + UMask = "0066"; + ProtectProc = "invisible"; + SystemCallFilter = [ + "~@clock" + "~@cpu-emulation" + "~@module" + "~@mount" + "~@obsolete" + "~@raw-io" + "~@reboot" + "~@swap" + # needed by go? + #"~@resources" + "~@privileged" + "~capset" + "~setdomainname" + "~sethostname" ]; + RestrictAddressFamilies = [ + "AF_INET" + "AF_INET6" + "AF_UNIX" + "AF_NETLINK" + ]; + + # Needs network access + PrivateNetwork = false; + # Cannot be true due to Node + MemoryDenyWriteExecute = false; + + # The more restrictive "pid" option makes `nix` commands in CI emit + # "GC Warning: Couldn't read /proc/stat" + # You may want to set this to "pid" if not using `nix` commands + ProcSubset = "all"; + # Coverage programs for compiled code such as `cargo-tarpaulin` disable + # ASLR (address space layout randomization) which requires the + # `personality` syscall + # You may want to set this to `true` if not using coverage tooling on + # compiled code + LockPersonality = false; + + # Note that this has some interactions with the User setting; so you may + # want to consult the systemd docs if using both. + DynamicUser = true; }; }); - }; - } - ] + + services.gitea-actions-runner = { + package = pkgs.forgejo-actions-runner; + instances = lib.genAttrs (builtins.genList (n: "nix${builtins.toString n}") numInstances) (name: { + enable = true; + name = "nix-runner"; + # take the git root url from the gitea config + # only possible if you've also configured your gitea though the same nix config + # otherwise you need to set it manually + url = "https://git.aciceri.dev"; + # use your favourite nix secret manager to get a path for this + tokenFile = config.age.secrets.forgejo-runners-token.path; + labels = [ "nix:docker://gitea-runner-nix" ]; + settings = { + container.options = "-e NIX_BUILD_SHELL=/bin/bash -e PAGER=cat -e PATH=/bin -e SSL_CERT_FILE=/etc/ssl/certs/ca-bundle.crt --device /dev/kvm -v /nix:/nix -v ${storeDeps}/bin:/bin -v ${storeDeps}/etc/ssl:/etc/ssl --user nixuser --device=/dev/kvm"; + # the default network that also respects our dns server settings + container.network = "host"; + container.valid_volumes = [ + "/nix" + "${storeDeps}/bin" + "${storeDeps}/etc/ssl" + ]; + }; + }); + }; + } +] diff --git a/modules/forgejo/default.nix b/modules/forgejo/default.nix index 1365115..ae7f0c4 100644 --- a/modules/forgejo/default.nix +++ b/modules/forgejo/default.nix @@ -1,8 +1,8 @@ { config, - pkgs, ... -}: { +}: +{ services.forgejo = { enable = true; settings = { @@ -37,7 +37,7 @@ config.services.forgejo.stateDir ]; - imports = [../nginx-base]; + imports = [ ../nginx-base ]; services.nginx.virtualHosts = { "git.aciceri.dev" = { diff --git a/modules/fprintd/default.nix b/modules/fprintd/default.nix index 85508db..dcb13ec 100644 --- a/modules/fprintd/default.nix +++ b/modules/fprintd/default.nix @@ -1,5 +1,5 @@ { - imports = [../pam]; + imports = [ ../pam ]; services.fprintd = { enable = false; # temporarily disable diff --git a/modules/garmin-collector/default.nix b/modules/garmin-collector/default.nix index b4ac0e1..5b0a72d 100644 --- a/modules/garmin-collector/default.nix +++ b/modules/garmin-collector/default.nix @@ -4,19 +4,20 @@ fleetFlake, config, ... -}: { +}: +{ users.users.garmin-collector = { isSystemUser = true; group = "garmin-collector"; - extraGroups = ["garmin-collector"]; + extraGroups = [ "garmin-collector" ]; home = "/var/lib/garmin-collector"; }; - users.groups.garmin-collector = {}; + users.groups.garmin-collector = { }; systemd.services.garmin-collector = { description = "Garmin collector pushing to Prometheus Pushgateway"; - wantedBy = ["multi-user.target"]; + wantedBy = [ "multi-user.target" ]; environment = { PUSHGATEWAY_ADDRESS = config.services.prometheus.pushgateway.web.listen-address; }; @@ -32,7 +33,7 @@ }; systemd.timers."garmin-collector" = { - wantedBy = ["timers.target"]; + wantedBy = [ "timers.target" ]; timerConfig = { OnBootSec = "5m"; OnUnitActiveSec = "4h"; diff --git a/modules/grafana/default.nix b/modules/grafana/default.nix index 33d93f7..a95e543 100644 --- a/modules/grafana/default.nix +++ b/modules/grafana/default.nix @@ -1,6 +1,8 @@ -{config, ...}: let +{ config, ... }: +let cfg = config.services.grafana; -in { +in +{ services.grafana = { enable = true; settings = { diff --git a/modules/greetd/default.nix b/modules/greetd/default.nix index d8ee546..5a6e826 100644 --- a/modules/greetd/default.nix +++ b/modules/greetd/default.nix @@ -2,7 +2,8 @@ pkgs, lib, ... -}: let +}: +let sessions = builtins.concatStringsSep ":" [ (pkgs.writeTextFile { name = "xorg-session.desktop"; @@ -23,7 +24,8 @@ ''; }) ]; -in { +in +{ services.greetd = { enable = true; vt = 2; diff --git a/modules/grocy/default.nix b/modules/grocy/default.nix index 72ba8bc..16d730e 100644 --- a/modules/grocy/default.nix +++ b/modules/grocy/default.nix @@ -2,10 +2,11 @@ pkgs, config, ... -}: { +}: +{ nixpkgs.overlays = [ - (self: super: { - grocy = super.grocy.overrideAttrs (old: { + (_self: super: { + grocy = super.grocy.overrideAttrs (_old: { meta.broken = false; version = "4.0.1"; src = pkgs.fetchFromGitHub { diff --git a/modules/hass-poweroff/default.nix b/modules/hass-poweroff/default.nix index 4312093..d9ad3a2 100644 --- a/modules/hass-poweroff/default.nix +++ b/modules/hass-poweroff/default.nix @@ -1,14 +1,17 @@ -{pkgs, ...}: { +{ pkgs, ... }: +{ # Creates an user that home assistant can log in as to power off the system users.users.hass = { - openssh.authorizedKeys.keys = ["ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFcoVVrMFili8UBjziIu2wyFgcDGTlT1avBh2nLTa9aM"]; + openssh.authorizedKeys.keys = [ + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFcoVVrMFili8UBjziIu2wyFgcDGTlT1avBh2nLTa9aM" + ]; isNormalUser = true; isSystemUser = false; group = "hass"; createHome = false; }; - users.groups.hass = {}; + users.groups.hass = { }; security.sudo.extraConfig = '' hass ALL=NOPASSWD:${pkgs.systemd}/bin/systemctl diff --git a/modules/hercules-ci/default.nix b/modules/hercules-ci/default.nix index f2cc077..8160afd 100644 --- a/modules/hercules-ci/default.nix +++ b/modules/hercules-ci/default.nix @@ -1,4 +1,5 @@ -{config, ...}: { +{ config, ... }: +{ services.hercules-ci-agent = { enable = true; settings = { diff --git a/modules/home-assistant/default.nix b/modules/home-assistant/default.nix index efab59b..cebc663 100644 --- a/modules/home-assistant/default.nix +++ b/modules/home-assistant/default.nix @@ -2,36 +2,26 @@ pkgs, config, ... -}: let - smartthings-fork = pkgs.fetchFromGitHub { - owner = "veista"; - repo = "smartthings"; - rev = "ba1a6f33c6ac37d81f4263073571628803e79697"; - sha256 = "sha256-X3SYkg0B5pzEich7/4iUmlADJneVuT8HTVnIiC7odRE="; - }; +}: +let pun_sensor = pkgs.fetchFromGitHub { owner = "virtualdj"; repo = "pun_sensor"; rev = "51b216fab5c0d454d66060647c36e81bebfaf059"; hash = "sha256-bGVJx3bObXdf4AiC6bDvafs53NGS2aufRcTUmXy8nAI="; }; - cozy_life = pkgs.fetchFromGitHub { - owner = "yangqian"; - repo = "hass-cozylife"; - rev = "9a40a2fa09b0f74aee0b278e2858f5600b3487a9"; - hash = "sha256-i+82EUamV1Fhwhb1vhRqn9aA9dJ0FxSSMD734domyhw="; - }; garmin_connect = pkgs.fetchFromGitHub { owner = "cyberjunky"; repo = "home-assistant-garmin_connect"; rev = "d42edcabc67ba6a7f960e849c8aaec1aabef87c0"; hash = "sha256-KqbP6TpH9B0/AjtsW5TcWSNgUhND+w8rO6X8fHqtsDI="; }; -in { +in +{ services.home-assistant = { enable = true; openFirewall = true; - package = pkgs.home-assistant.overrideAttrs (old: { + package = pkgs.home-assistant.overrideAttrs (_old: { doInstallCheck = false; # prePatch = # '' @@ -61,8 +51,8 @@ in { "wake_on_lan" "prometheus" ]; - extraPackages = python3Packages: - with python3Packages; [ + extraPackages = + python3Packages: with python3Packages; [ # used by pun_sensor holidays beautifulsoup4 @@ -72,10 +62,13 @@ in { tzlocal ]; config = { - default_config = {}; + default_config = { }; http = { use_x_forwarded_for = true; - trusted_proxies = ["127.0.0.1" "::1"]; + trusted_proxies = [ + "127.0.0.1" + "::1" + ]; }; # ffmpeg = {}; # camera = [ @@ -105,7 +98,7 @@ in { # data.mac = "20:28:bc:74:14:c2"; # }; # }]; - wake_on_lan = {}; + wake_on_lan = { }; switch = [ { name = "Picard"; @@ -164,7 +157,7 @@ in { containers = { whisper = { image = "rhasspy/wyoming-whisper:latest"; - ports = ["10300:10300"]; + ports = [ "10300:10300" ]; cmd = [ "--model" "medium-int8" @@ -174,7 +167,7 @@ in { }; piper = { image = "rhasspy/wyoming-piper:latest"; - ports = ["10200:10200"]; + ports = [ "10200:10200" ]; cmd = [ "--voice" "it_IT-riccardo-x_low" diff --git a/modules/hydra/config.nix b/modules/hydra/config.nix index 39e8e7e..dc0ed77 100644 --- a/modules/hydra/config.nix +++ b/modules/hydra/config.nix @@ -1,8 +1,8 @@ { services.my-hydra.repos = { - emacs = {}; - nixfleet = {}; - trotten = {}; - blog = {}; + emacs = { }; + nixfleet = { }; + trotten = { }; + blog = { }; }; } diff --git a/modules/hydra/default.nix b/modules/hydra/default.nix index c95fdd8..d0331fd 100644 --- a/modules/hydra/default.nix +++ b/modules/hydra/default.nix @@ -3,58 +3,63 @@ config, pkgs, ... -}: let +}: +let cfg = config.services.my-hydra; - toSpec = { - name, - owner, - ... - }: let - spec = { - enabled = 1; - hidden = false; - description = "Declarative specification jobset automatically generated"; - checkinterval = 120; - schedulingshares = 10000; - enableemail = false; - emailoverride = ""; - keepnr = 1; - nixexprinput = "src"; - nixexprpath = "jobsets.nix"; - inputs = { - src = { - type = "path"; - value = pkgs.writeTextFile { - name = "src"; - text = builtins.readFile ./jobsets.nix; - destination = "/jobsets.nix"; - }; - emailresponsible = false; - }; - repoInfoPath = { - type = "path"; - value = pkgs.writeTextFile { - name = "repo"; - text = builtins.toJSON { - inherit name owner; + toSpec = + { + name, + owner, + ... + }: + let + spec = { + enabled = 1; + hidden = false; + description = "Declarative specification jobset automatically generated"; + checkinterval = 120; + schedulingshares = 10000; + enableemail = false; + emailoverride = ""; + keepnr = 1; + nixexprinput = "src"; + nixexprpath = "jobsets.nix"; + inputs = { + src = { + type = "path"; + value = pkgs.writeTextFile { + name = "src"; + text = builtins.readFile ./jobsets.nix; + destination = "/jobsets.nix"; }; + emailresponsible = false; + }; + repoInfoPath = { + type = "path"; + value = pkgs.writeTextFile { + name = "repo"; + text = builtins.toJSON { + inherit name owner; + }; + }; + emailresponsible = false; + }; + prs = { + type = "githubpulls"; + value = "${owner} ${name}"; + emailresponsible = false; }; - emailresponsible = false; - }; - prs = { - type = "githubpulls"; - value = "${owner} ${name}"; - emailresponsible = false; }; }; - }; - drv = pkgs.writeTextFile { - name = "hydra-jobset-specification-${name}"; - text = builtins.toJSON spec; - destination = "/spec.json"; - }; - in "${drv}"; -in { + drv = pkgs.writeTextFile { + name = "hydra-jobset-specification-${name}"; + text = builtins.toJSON spec; + destination = "/spec.json"; + }; + in + "${drv}"; +in +{ imports = [ ./config.nix ../nginx-base @@ -66,35 +71,40 @@ in { default = "hydra.aciceri.dev"; }; repos = lib.mkOption { - type = lib.types.attrsOf (lib.types.submodule ({ - name, - config, - ... - }: { - options = { - name = lib.mkOption { - type = lib.types.str; - default = name; - }; - owner = lib.mkOption { - type = lib.types.str; - default = "aciceri"; - }; - description = lib.mkOption { - type = lib.types.str; - default = config.homepage; - }; - homepage = lib.mkOption { - type = lib.types.str; - default = "https://github.com/${config.owner}/${config.name}"; - }; - reportStatus = lib.mkOption { - type = lib.types.bool; - default = true; - }; - }; - })); - default = {}; + type = lib.types.attrsOf ( + lib.types.submodule ( + { + name, + config, + ... + }: + { + options = { + name = lib.mkOption { + type = lib.types.str; + default = name; + }; + owner = lib.mkOption { + type = lib.types.str; + default = "aciceri"; + }; + description = lib.mkOption { + type = lib.types.str; + default = config.homepage; + }; + homepage = lib.mkOption { + type = lib.types.str; + default = "https://github.com/${config.owner}/${config.name}"; + }; + reportStatus = lib.mkOption { + type = lib.types.bool; + default = true; + }; + }; + } + ) + ); + default = { }; }; }; @@ -115,28 +125,38 @@ in { include ${config.age.secrets.hydra-github-token.path} '' - + (lib.concatMapStrings (repo: - lib.optionalString repo.reportStatus - '' + + (lib.concatMapStrings ( + repo: + lib.optionalString repo.reportStatus '' jobs = ${repo.name}.* excludeBuildFromContext = 1 useShortContext = 1 - '') (builtins.attrValues cfg.repos)); + '' + ) (builtins.attrValues cfg.repos)); }; systemd.services.hydra-setup = { description = "Hydra CI setup"; serviceConfig.Type = "oneshot"; serviceConfig.RemainAfterExit = true; - wantedBy = ["multi-user.target"]; - requires = ["hydra-init.service"]; - after = ["hydra-init.service"]; - environment = builtins.removeAttrs (config.systemd.services.hydra-init.environment) ["PATH"]; + wantedBy = [ "multi-user.target" ]; + requires = [ "hydra-init.service" ]; + after = [ "hydra-init.service" ]; + environment = builtins.removeAttrs (config.systemd.services.hydra-init.environment) [ "PATH" ]; script = '' - PATH=$PATH:${lib.makeBinPath (with pkgs; [yq-go curl config.services.hydra.package])} + PATH=$PATH:${ + lib.makeBinPath ( + with pkgs; + [ + yq-go + curl + config.services.hydra.package + ] + ) + } PASSWORD="$(cat ${config.age.secrets.hydra-admin-password.path})" if [ ! -e ~hydra/.setup-is-complete ]; then hydra-create-user admin \ diff --git a/modules/hydra/jobsets.nix b/modules/hydra/jobsets.nix index fed7df8..f44a79f 100644 --- a/modules/hydra/jobsets.nix +++ b/modules/hydra/jobsets.nix @@ -2,42 +2,45 @@ repoInfoPath, prs, ... -}: let +}: +let minutes = 60; - hours = 60 * minutes; - days = 24 * hours; - filterAttrs = pred: set: - builtins.listToAttrs (builtins.concatMap (name: let - v = set.${name}; + mapAttrs' = f: set: builtins.listToAttrs (map (attr: f attr set.${attr}) (builtins.attrNames set)); + + mkJobset = + { + enabled ? 1, + hidden ? false, + type ? 1, + description ? "", + checkinterval ? 5 * minutes, + schedulingshares ? 100, + enableemail ? false, + emailoverride ? "", + keepnr ? 1, + flake, + }: + { + inherit + enabled + hidden + type + description + checkinterval + schedulingshares + enableemail + emailoverride + keepnr + flake + ; + }; + + mkSpec = + contents: + let + escape = builtins.replaceStrings [ ''"'' ] [ ''\"'' ]; + contentsJson = builtins.toJSON contents; in - if pred name v - then [ - { - inherit name; - value = v; - } - ] - else []) (builtins.attrNames set)); - mapAttrs' = f: set: - builtins.listToAttrs (map (attr: f attr set.${attr}) (builtins.attrNames set)); - - mkJobset = { - enabled ? 1, - hidden ? false, - type ? 1, - description ? "", - checkinterval ? 5 * minutes, - schedulingshares ? 100, - enableemail ? false, - emailoverride ? "", - keepnr ? 1, - flake, - } @ args: {inherit enabled hidden type description checkinterval schedulingshares enableemail emailoverride keepnr flake;}; - - mkSpec = contents: let - escape = builtins.replaceStrings [''"''] [''\"'']; - contentsJson = builtins.toJSON contents; - in builtins.derivation { name = "spec.json"; system = "x86_64-linux"; @@ -54,20 +57,21 @@ repo = builtins.fromJSON (builtins.readFile repoInfoPath); pullRequests = builtins.fromJSON (builtins.readFile prs); - pullRequestsToBuild = filterAttrs (n: pr: pr.head.repo != null && pr.head.repo.owner.login == repo.owner && pr.head.repo.name == repo.name) pullRequests; -in { - jobsets = mkSpec ({ +in +{ + jobsets = mkSpec ( + { master = mkJobset { description = "${repo.name}'s master branch"; flake = "git+ssh://git@github.com/${repo.owner}/${repo.name}?ref=master"; }; } // (mapAttrs' (n: pr: { - name = "pullRequest_${n}"; - value = mkJobset { - description = pr.title; - flake = "git+ssh://git@github.com/${repo.owner}/${repo.name}?ref=${pr.head.ref}"; - }; - }) - pullRequests)); + name = "pullRequest_${n}"; + value = mkJobset { + description = pr.title; + flake = "git+ssh://git@github.com/${repo.owner}/${repo.name}?ref=${pr.head.ref}"; + }; + }) pullRequests) + ); } diff --git a/modules/immich/default.nix b/modules/immich/default.nix index 61ee117..21d8bd5 100644 --- a/modules/immich/default.nix +++ b/modules/immich/default.nix @@ -1,6 +1,8 @@ -{config, ...}: let +{ config, ... }: +let nixpkgsImmich = builtins.getFlake "github:NixOS/nixpkgs/c0ee4c1770aa1ef998c977c4cc653a07ec95d9bf"; -in { +in +{ containers.nextcloud = { nixpkgs = nixpkgsImmich; autoStart = true; @@ -9,15 +11,14 @@ in { # localAddress = "192.168.100.11"; # hostAddress6 = "fc00::1"; # localAddress6 = "fc00::2"; - config = { - config, - pkgs, - lib, - ... - }: { - services.immich = { - enable = true; + config = + { + ... + }: + { + services.immich = { + enable = true; + }; }; - }; }; } diff --git a/modules/immich/module.nix b/modules/immich/module.nix index b31f11f..230691a 100644 --- a/modules/immich/module.nix +++ b/modules/immich/module.nix @@ -3,9 +3,9 @@ lib, pkgs, ... -}: let - inherit - (lib) +}: +let + inherit (lib) hasAttr hasPrefix maintainers @@ -31,17 +31,18 @@ isServerPostgresUnix = hasPrefix "/" serverCfg.postgres.host; postgresEnv = - if isServerPostgresUnix - then { - # If passwordFile is given, this will be overwritten in ExecStart - DB_URL = "socket://${serverCfg.postgres.host}?dbname=${serverCfg.postgres.database}"; - } - else { - DB_HOSTNAME = serverCfg.postgres.host; - DB_PORT = toString serverCfg.postgres.port; - DB_DATABASE_NAME = serverCfg.postgres.database; - DB_USERNAME = serverCfg.postgres.username; - }; + if isServerPostgresUnix then + { + # If passwordFile is given, this will be overwritten in ExecStart + DB_URL = "socket://${serverCfg.postgres.host}?dbname=${serverCfg.postgres.database}"; + } + else + { + DB_HOSTNAME = serverCfg.postgres.host; + DB_PORT = toString serverCfg.postgres.port; + DB_DATABASE_NAME = serverCfg.postgres.database; + DB_USERNAME = serverCfg.postgres.username; + }; typesenseEnv = { @@ -54,7 +55,8 @@ }; # Don't start a redis instance if the user sets a custom redis connection - enableRedis = !hasAttr "REDIS_URL" serverCfg.extraConfig && !hasAttr "REDIS_SOCKET" serverCfg.extraConfig; + enableRedis = + !hasAttr "REDIS_URL" serverCfg.extraConfig && !hasAttr "REDIS_SOCKET" serverCfg.extraConfig; redisServerCfg = config.services.redis.servers.immich; redisEnv = optionalAttrs enableRedis { REDIS_SOCKET = redisServerCfg.unixSocket; @@ -69,9 +71,7 @@ IMMICH_MEDIA_LOCATION = serverCfg.mediaDir; IMMICH_MACHINE_LEARNING_URL = - if serverCfg.machineLearningUrl != null - then serverCfg.machineLearningUrl - else "false"; + if serverCfg.machineLearningUrl != null then serverCfg.machineLearningUrl else "false"; }; serverStartWrapper = program: '' @@ -79,9 +79,10 @@ mkdir -p ${serverCfg.mediaDir} ${optionalString (serverCfg.postgres.passwordFile != null) ( - if isServerPostgresUnix - then ''export DB_URL="socket://${serverCfg.postgres.username}:$(cat ${serverCfg.postgres.passwordFile})@${serverCfg.postgres.host}?dbname=${serverCfg.postgres.database}"'' - else "export DB_PASSWORD=$(cat ${serverCfg.postgres.passwordFile})" + if isServerPostgresUnix then + ''export DB_URL="socket://${serverCfg.postgres.username}:$(cat ${serverCfg.postgres.passwordFile})@${serverCfg.postgres.host}?dbname=${serverCfg.postgres.database}"'' + else + "export DB_PASSWORD=$(cat ${serverCfg.postgres.passwordFile})" )} ${optionalString serverCfg.typesense.enable '' @@ -146,30 +147,27 @@ EnvironmentFile = mkIf (serverCfg.environmentFile != null) serverCfg.environmentFile; TemporaryFileSystem = "/:ro"; - BindReadOnlyPaths = - [ - "/nix/store" - "-/etc/resolv.conf" - "-/etc/nsswitch.conf" - "-/etc/hosts" - "-/etc/localtime" - "-/run/postgresql" - ] - ++ optional enableRedis redisServerCfg.unixSocket; + BindReadOnlyPaths = [ + "/nix/store" + "-/etc/resolv.conf" + "-/etc/nsswitch.conf" + "-/etc/hosts" + "-/etc/localtime" + "-/run/postgresql" + ] ++ optional enableRedis redisServerCfg.unixSocket; }; -in { +in +{ options.services.immich = { - enable = - mkEnableOption "immich" - // { - description = '' - Enables immich which consists of a backend server, microservices, - machine-learning and web ui. You can disable or reconfigure components - individually using the subsections. - ''; - }; + enable = mkEnableOption "immich" // { + description = '' + Enables immich which consists of a backend server, microservices, + machine-learning and web ui. You can disable or reconfigure components + individually using the subsections. + ''; + }; - package = mkPackageOption pkgs "immich" {}; + package = mkPackageOption pkgs "immich" { }; server = { mediaDir = mkOption { @@ -179,11 +177,9 @@ in { }; backend = { - enable = - mkEnableOption "immich backend server" - // { - default = true; - }; + enable = mkEnableOption "immich backend server" // { + default = true; + }; port = mkOption { type = types.port; default = 3001; @@ -198,7 +194,7 @@ in { extraConfig = mkOption { type = types.attrs; - default = {}; + default = { }; example = { LOG_LEVEL = "debug"; }; @@ -220,11 +216,9 @@ in { }; microservices = { - enable = - mkEnableOption "immich microservices" - // { - default = true; - }; + enable = mkEnableOption "immich microservices" // { + default = true; + }; port = mkOption { type = types.port; @@ -240,7 +234,7 @@ in { extraConfig = mkOption { type = types.attrs; - default = {}; + default = { }; example = { REVERSE_GEOCODING_PRECISION = 1; }; @@ -262,11 +256,9 @@ in { }; typesense = { - enable = - mkEnableOption "typesense" - // { - default = true; - }; + enable = mkEnableOption "typesense" // { + default = true; + }; host = mkOption { type = types.str; @@ -343,7 +335,7 @@ in { extraConfig = mkOption { type = types.attrs; - default = {}; + default = { }; example = { REDIS_SOCKET = "/run/custom-redis"; }; @@ -365,11 +357,9 @@ in { }; web = { - enable = - mkEnableOption "immich web frontend" - // { - default = true; - }; + enable = mkEnableOption "immich web frontend" // { + default = true; + }; port = mkOption { type = types.port; @@ -398,7 +388,7 @@ in { extraConfig = mkOption { type = types.attrs; - default = {}; + default = { }; example = { PUBLIC_LOGIN_PAGE_MESSAGE = "My awesome Immich instance!"; }; @@ -410,11 +400,9 @@ in { }; machineLearning = { - enable = - mkEnableOption "immich machine-learning server" - // { - default = true; - }; + enable = mkEnableOption "immich machine-learning server" // { + default = true; + }; port = mkOption { type = types.port; @@ -430,7 +418,7 @@ in { extraConfig = mkOption { type = types.attrs; - default = {}; + default = { }; example = { MACHINE_LEARNING_MODEL_TTL = 600; }; @@ -451,10 +439,10 @@ in { ]; networking.firewall.allowedTCPPorts = mkMerge [ - (mkIf (backendCfg.enable && backendCfg.openFirewall) [backendCfg.port]) - (mkIf (microservicesCfg.enable && microservicesCfg.openFirewall) [microservicesCfg.port]) - (mkIf (webCfg.enable && webCfg.openFirewall) [webCfg.port]) - (mkIf (mlCfg.enable && mlCfg.openFirewall) [mlCfg.port]) + (mkIf (backendCfg.enable && backendCfg.openFirewall) [ backendCfg.port ]) + (mkIf (microservicesCfg.enable && microservicesCfg.openFirewall) [ microservicesCfg.port ]) + (mkIf (webCfg.enable && webCfg.openFirewall) [ webCfg.port ]) + (mkIf (mlCfg.enable && mlCfg.openFirewall) [ mlCfg.port ]) ]; services.redis.servers.immich.enable = mkIf enableRedis true; @@ -462,15 +450,13 @@ in { systemd.services.immich-server = mkIf backendCfg.enable { description = "Immich backend server (Self-hosted photo and video backup solution)"; - after = - [ - "network.target" - "typesense.service" - "postgresql.service" - "immich-machine-learning.service" - ] - ++ optional enableRedis "redis-immich.service"; - wantedBy = ["multi-user.target"]; + after = [ + "network.target" + "typesense.service" + "postgresql.service" + "immich-machine-learning.service" + ] ++ optional enableRedis "redis-immich.service"; + wantedBy = [ "multi-user.target" ]; environment = serverEnv @@ -491,15 +477,13 @@ in { systemd.services.immich-microservices = mkIf microservicesCfg.enable { description = "Immich microservices (Self-hosted photo and video backup solution)"; - after = - [ - "network.target" - "typesense.service" - "postgresql.service" - "immich-machine-learning.service" - ] - ++ optional enableRedis "redis-immich.service"; - wantedBy = ["multi-user.target"]; + after = [ + "network.target" + "typesense.service" + "postgresql.service" + "immich-machine-learning.service" + ] ++ optional enableRedis "redis-immich.service"; + wantedBy = [ "multi-user.target" ]; environment = serverEnv @@ -524,16 +508,14 @@ in { "network.target" "immich-server.service" ]; - wantedBy = ["multi-user.target"]; + wantedBy = [ "multi-user.target" ]; - environment = - { - NODE_ENV = "production"; - PORT = toString webCfg.port; - IMMICH_SERVER_URL = webCfg.serverUrl; - IMMICH_API_URL_EXTERNAL = webCfg.apiUrlExternal; - } - // mapAttrs (_: toString) webCfg.extraConfig; + environment = { + NODE_ENV = "production"; + PORT = toString webCfg.port; + IMMICH_SERVER_URL = webCfg.serverUrl; + IMMICH_API_URL_EXTERNAL = webCfg.apiUrlExternal; + } // mapAttrs (_: toString) webCfg.extraConfig; script = '' set -euo pipefail @@ -541,68 +523,62 @@ in { export PUBLIC_IMMICH_API_URL_EXTERNAL=$IMMICH_API_URL_EXTERNAL exec ${cfg.package.web}/bin/web ''; - serviceConfig = - commonServiceConfig - // { - DynamicUser = true; - User = "immich-web"; - Group = "immich-web"; + serviceConfig = commonServiceConfig // { + DynamicUser = true; + User = "immich-web"; + Group = "immich-web"; - MemoryDenyWriteExecute = false; # nodejs requires this. + MemoryDenyWriteExecute = false; # nodejs requires this. - TemporaryFileSystem = "/:ro"; - BindReadOnlyPaths = [ - "/nix/store" - "-/etc/resolv.conf" - "-/etc/nsswitch.conf" - "-/etc/hosts" - "-/etc/localtime" - ]; - }; + TemporaryFileSystem = "/:ro"; + BindReadOnlyPaths = [ + "/nix/store" + "-/etc/resolv.conf" + "-/etc/nsswitch.conf" + "-/etc/hosts" + "-/etc/localtime" + ]; + }; }; systemd.services.immich-machine-learning = mkIf mlCfg.enable { description = "Immich machine learning (Self-hosted photo and video backup solution)"; - after = ["network.target"]; - wantedBy = ["multi-user.target"]; + after = [ "network.target" ]; + wantedBy = [ "multi-user.target" ]; - environment = - { - NODE_ENV = "production"; - MACHINE_LEARNING_PORT = toString mlCfg.port; + environment = { + NODE_ENV = "production"; + MACHINE_LEARNING_PORT = toString mlCfg.port; - MACHINE_LEARNING_CACHE_FOLDER = "/var/cache/immich-ml"; - TRANSFORMERS_CACHE = "/var/cache/immich-ml"; - } - // mapAttrs (_: toString) mlCfg.extraConfig; + MACHINE_LEARNING_CACHE_FOLDER = "/var/cache/immich-ml"; + TRANSFORMERS_CACHE = "/var/cache/immich-ml"; + } // mapAttrs (_: toString) mlCfg.extraConfig; - serviceConfig = - commonServiceConfig - // { - ExecStart = "${cfg.package.machine-learning}/bin/machine-learning"; - DynamicUser = true; - User = "immich-ml"; - Group = "immich-ml"; + serviceConfig = commonServiceConfig // { + ExecStart = "${cfg.package.machine-learning}/bin/machine-learning"; + DynamicUser = true; + User = "immich-ml"; + Group = "immich-ml"; - MemoryDenyWriteExecute = false; # onnxruntime_pybind11 requires this. - ProcSubset = "all"; # Needs /proc/cpuinfo + MemoryDenyWriteExecute = false; # onnxruntime_pybind11 requires this. + ProcSubset = "all"; # Needs /proc/cpuinfo - CacheDirectory = "immich-ml"; - CacheDirectoryMode = "0700"; + CacheDirectory = "immich-ml"; + CacheDirectoryMode = "0700"; - # TODO gpu access + # TODO gpu access - TemporaryFileSystem = "/:ro"; - BindReadOnlyPaths = [ - "/nix/store" - "-/etc/resolv.conf" - "-/etc/nsswitch.conf" - "-/etc/hosts" - "-/etc/localtime" - ]; - }; + TemporaryFileSystem = "/:ro"; + BindReadOnlyPaths = [ + "/nix/store" + "-/etc/resolv.conf" + "-/etc/nsswitch.conf" + "-/etc/hosts" + "-/etc/localtime" + ]; + }; }; - meta.maintainers = with maintainers; [oddlama]; + meta.maintainers = with maintainers; [ oddlama ]; }; } diff --git a/modules/jellyfin/default.nix b/modules/jellyfin/default.nix index 1615176..33e1cd1 100644 --- a/modules/jellyfin/default.nix +++ b/modules/jellyfin/default.nix @@ -3,5 +3,5 @@ enable = true; }; - users.users.jellyfin.extraGroups = ["transmission"]; + users.users.jellyfin.extraGroups = [ "transmission" ]; } diff --git a/modules/kodi/default.nix b/modules/kodi/default.nix index 1eb104e..41708a1 100644 --- a/modules/kodi/default.nix +++ b/modules/kodi/default.nix @@ -1,20 +1,20 @@ { - config, - lib, pkgs, ... -}: { +}: +{ services.xserver = { enable = true; desktopManager.kodi = { enable = true; - package = pkgs.kodi.withPackages (ps: - with ps; [ + package = pkgs.kodi.withPackages ( + ps: with ps; [ joystick youtube libretro libretro-mgba - ]); + ] + ); }; displayManager.autoLogin = { enable = true; @@ -28,8 +28,8 @@ }; networking.firewall = { - allowedTCPPorts = [8080]; - allowedUDPPorts = [8080]; + allowedTCPPorts = [ 8080 ]; + allowedUDPPorts = [ 8080 ]; }; # environment.systemPackages = with pkgs; [xboxdrv cifs-utils]; diff --git a/modules/loki/default.nix b/modules/loki/default.nix index 79d9738..01d9bc3 100644 --- a/modules/loki/default.nix +++ b/modules/loki/default.nix @@ -1,6 +1,8 @@ -{config, ...}: let +{ config, ... }: +let cfg = config.services.loki; -in { +in +{ services.loki = { enable = true; configuration = { diff --git a/modules/macos-ventura/default.nix b/modules/macos-ventura/default.nix index 128729b..919e4c8 100644 --- a/modules/macos-ventura/default.nix +++ b/modules/macos-ventura/default.nix @@ -1,11 +1,12 @@ -{fleetFlake, ...}: { +{ fleetFlake, ... }: +{ services.macos-ventura = { enable = true; cores = 8; threads = 8; mem = "8G"; vncListenAddr = "0.0.0.0"; - extraQemuFlags = ["-nographic"]; + extraQemuFlags = [ "-nographic" ]; sshPort = 2021; installNix = true; stateless = true; diff --git a/modules/mara/default.nix b/modules/mara/default.nix index 1888ef2..8696519 100644 --- a/modules/mara/default.nix +++ b/modules/mara/default.nix @@ -5,7 +5,8 @@ fleetHmModules, fleetFlake, ... -}: { +}: +{ options.mara = { enable = lib.mkOption { type = lib.types.bool; @@ -14,12 +15,15 @@ modules = lib.mkOption { type = with lib.types; listOf str; - default = ["shell" "git"]; + default = [ + "shell" + "git" + ]; }; packages = lib.mkOption { type = with lib.types; listOf package; - default = []; + default = [ ]; }; autologin = lib.mkOption { @@ -39,7 +43,12 @@ extraGroups = lib.mkOption { type = with lib.types; listOf str; - default = ["wheel" "fuse" "networkmanager" "dialout"]; + default = [ + "wheel" + "fuse" + "networkmanager" + "dialout" + ]; }; }; @@ -54,10 +63,7 @@ openssh.authorizedKeys.keys = config.mara.authorizedKeys; }; - services.getty.autologinUser = - if config.mara.autologin - then "mara" - else null; + services.getty.autologinUser = if config.mara.autologin then "mara" else null; home-manager.useGlobalPkgs = true; home-manager.useUserPackages = true; diff --git a/modules/matrix/default.nix b/modules/matrix/default.nix index 5fc24b1..b80803d 100644 --- a/modules/matrix/default.nix +++ b/modules/matrix/default.nix @@ -3,7 +3,8 @@ lib, pkgs, ... -}: let +}: +let clientConfig = { "m.homeserver".base_url = "https://matrix.aciceri.dev"; "org.matrix.msc3575.proxy".url = "https://syncv3.matrix.aciceri.dev"; @@ -14,8 +15,9 @@ add_header Access-Control-Allow-Origin *; return 200 '${builtins.toJSON data}'; ''; -in { - imports = [../nginx-base]; +in +{ + imports = [ ../nginx-base ]; services.nginx.virtualHosts = { "aciceri.dev" = { @@ -58,20 +60,23 @@ in { listeners = [ { port = 8008; - bind_addresses = ["127.0.0.1"]; + bind_addresses = [ "127.0.0.1" ]; type = "http"; tls = false; x_forwarded = true; resources = [ { - names = ["client" "federation"]; + names = [ + "client" + "federation" + ]; compress = true; } ]; } ]; }; - extraConfigFiles = [config.age.secrets.matrix-registration-shared-secret.path]; + extraConfigFiles = [ config.age.secrets.matrix-registration-shared-secret.path ]; }; backup.paths = [ @@ -81,7 +86,7 @@ in { services.postgresqlBackup = { enable = true; - databases = ["matrix-synapse"]; + databases = [ "matrix-synapse" ]; }; services.matrix-sliding-sync = { diff --git a/modules/mediatomb/default.nix b/modules/mediatomb/default.nix index e09bd65..5608e81 100644 --- a/modules/mediatomb/default.nix +++ b/modules/mediatomb/default.nix @@ -11,5 +11,5 @@ ]; }; - users.users.mediatomb.extraGroups = ["transmission"]; + users.users.mediatomb.extraGroups = [ "transmission" ]; } diff --git a/modules/minidlna/default.nix b/modules/minidlna/default.nix index 6a813bd..e5ffae8 100644 --- a/modules/minidlna/default.nix +++ b/modules/minidlna/default.nix @@ -1,4 +1,5 @@ -{config, ...}: { +{ config, ... }: +{ services.minidlna = { enable = true; openFirewall = true; @@ -11,6 +12,6 @@ }; }; - ccr.extraGroups = ["minidlna"]; - users.users.minidlna.extraGroups = ["transmission"]; + ccr.extraGroups = [ "minidlna" ]; + users.users.minidlna.extraGroups = [ "transmission" ]; } diff --git a/modules/minio/default.nix b/modules/minio/default.nix index 1f503af..8f378c3 100644 --- a/modules/minio/default.nix +++ b/modules/minio/default.nix @@ -2,14 +2,15 @@ config, lib, ... -}: { - imports = [../nginx-base]; +}: +{ + imports = [ ../nginx-base ]; services.minio = { enable = true; rootCredentialsFile = config.age.secrets.minio-credentials.path; region = "eu-south-1"; - dataDir = lib.mkForce ["/mnt/hd/minio"]; + dataDir = lib.mkForce [ "/mnt/hd/minio" ]; }; services.nginx.virtualHosts."cache.aciceri.dev" = { @@ -25,8 +26,7 @@ ''; locations."/" = { proxyPass = "http://127.0.0.1:9000"; - extraConfig = '' - ''; + extraConfig = ''''; }; }; } diff --git a/modules/mothership-proxy/default.nix b/modules/mothership-proxy/default.nix index bf9bef4..a1df867 100644 --- a/modules/mothership-proxy/default.nix +++ b/modules/mothership-proxy/default.nix @@ -1,5 +1,6 @@ -{config, ...}: { - imports = [../nginx-base]; +{ ... }: +{ + imports = [ ../nginx-base ]; services.nginx.virtualHosts = { "home.aciceri.dev" = { forceSSL = true; diff --git a/modules/mount-rock5b/default.nix b/modules/mount-rock5b/default.nix index 680c42b..a31eb1c 100644 --- a/modules/mount-rock5b/default.nix +++ b/modules/mount-rock5b/default.nix @@ -2,15 +2,20 @@ pkgs, config, ... -}: { +}: +{ fileSystems."/home/${config.ccr.username}/torrent" = { device = "//sisko.fleet/torrent"; fsType = "cifs"; - options = let - credentials = pkgs.writeText "credentials" '' - username=guest - password= - ''; - in ["credentials=${credentials},x-systemd.automount,noauto,x-systemd.idle-timeout=60,x-systemd.device-timeout=5s,x-systemd.mount-timeout=5s"]; + options = + let + credentials = pkgs.writeText "credentials" '' + username=guest + password= + ''; + in + [ + "credentials=${credentials},x-systemd.automount,noauto,x-systemd.idle-timeout=60,x-systemd.device-timeout=5s,x-systemd.mount-timeout=5s" + ]; }; } diff --git a/modules/networkmanager/default.nix b/modules/networkmanager/default.nix index c5e2c48..7259900 100644 --- a/modules/networkmanager/default.nix +++ b/modules/networkmanager/default.nix @@ -1,5 +1,6 @@ -{lib, ...}: { +{ lib, ... }: +{ networking.networkmanager.enable = true; - ccr.extraGroups = ["networkmanager"]; + ccr.extraGroups = [ "networkmanager" ]; networking.useDHCP = lib.mkDefault true; } diff --git a/modules/nextcloud/default.nix b/modules/nextcloud/default.nix index 0346551..37340e4 100644 --- a/modules/nextcloud/default.nix +++ b/modules/nextcloud/default.nix @@ -2,14 +2,13 @@ config, pkgs, ... -}: let - cfg = config.services.nextcloud; -in { +}: +{ systemd.tmpfiles.rules = [ "d /mnt/raid/nextcloud 770 nextcloud nextcloud" ]; - ccr.extraGroups = ["nextcloud"]; + ccr.extraGroups = [ "nextcloud" ]; services.nextcloud = { enable = true; @@ -23,5 +22,5 @@ in { }; }; - networking.firewall.allowedTCPPorts = [80]; + networking.firewall.allowedTCPPorts = [ 80 ]; } diff --git a/modules/nix-serve/default.nix b/modules/nix-serve/default.nix index bcb1bd5..261b517 100644 --- a/modules/nix-serve/default.nix +++ b/modules/nix-serve/default.nix @@ -2,10 +2,12 @@ config, lib, ... -}: let +}: +let cfg = config.services.my-nix-serve; -in { - imports = [../nginx-base]; +in +{ + imports = [ ../nginx-base ]; options.services.my-nix-serve = { domain = lib.mkOption { type = lib.types.str; diff --git a/modules/nix/default.nix b/modules/nix/default.nix index 737eb63..550aadf 100644 --- a/modules/nix/default.nix +++ b/modules/nix/default.nix @@ -2,9 +2,9 @@ config, lib, fleetFlake, - pkgs, ... -}: { +}: +{ nix = { optimise.automatic = true; @@ -35,7 +35,7 @@ # deprecated-features = [ "url-literals" ]; }; - nixPath = ["nixpkgs=${fleetFlake.inputs.nixpkgs}"]; + nixPath = [ "nixpkgs=${fleetFlake.inputs.nixpkgs}" ]; extraOptions = '' experimental-features = nix-command flakes impure-derivations @@ -48,7 +48,8 @@ options = "--delete-older-than 180d"; }; - registry = lib.mkForce ({ + registry = lib.mkForce ( + { nixpkgs.to = { type = "path"; path = fleetFlake.inputs.nixpkgs; @@ -71,7 +72,8 @@ type = "path"; path = "/home/${config.ccr.username}/.config/emacs"; }; - })); + }) + ); distributedBuilds = true; buildMachines = @@ -79,7 +81,12 @@ hostName = "sisko.fleet"; system = "aarch64-linux"; maxJobs = 7; - supportedFeatures = ["kvm" "nixos-test" "big-parallel" "benchmark"]; + supportedFeatures = [ + "kvm" + "nixos-test" + "big-parallel" + "benchmark" + ]; protocol = "ssh-ng"; sshUser = "root"; sshKey = "/home/${config.ccr.username}/.ssh/id_rsa"; @@ -88,7 +95,12 @@ hostName = "mac.staging.mlabs.city?remote-program=/run/current-system/sw/bin/nix-store"; system = "x86_64-darwin"; maxJobs = 4; - supportedFeatures = ["kvm" "nixos-test" "big-parallel" "benchmark"]; + supportedFeatures = [ + "kvm" + "nixos-test" + "big-parallel" + "benchmark" + ]; protocol = "ssh"; sshUser = "root"; sshKey = "/home/${config.ccr.username}/.ssh/id_rsa"; diff --git a/modules/org-roam-ui/default.nix b/modules/org-roam-ui/default.nix index f3abe34..7b932a4 100644 --- a/modules/org-roam-ui/default.nix +++ b/modules/org-roam-ui/default.nix @@ -1,10 +1,11 @@ -{...}: { +{ ... }: +{ networking.firewall.interfaces."wg0" = { allowedTCPPorts = [ 35901 ]; }; - imports = [../nginx-base]; + imports = [ ../nginx-base ]; services.nginx.virtualHosts = { "roam.aciceri.dev" = { forceSSL = true; diff --git a/modules/paperless/default.nix b/modules/paperless/default.nix index b1c0e6f..6770ce5 100644 --- a/modules/paperless/default.nix +++ b/modules/paperless/default.nix @@ -1,4 +1,5 @@ -{config, ...}: { +{ config, ... }: +{ services.paperless = { enable = true; address = "0.0.0.0"; @@ -7,7 +8,10 @@ consumptionDir = "/mnt/hd/paperless/consume"; settings = { PAPERLESS_OCR_LANGUAGE = "ita+eng"; - PAPERLESS_CONSUMER_IGNORE_PATTERN = builtins.toJSON [".DS_STORE/*" "desktop.ini"]; + PAPERLESS_CONSUMER_IGNORE_PATTERN = builtins.toJSON [ + ".DS_STORE/*" + "desktop.ini" + ]; PAPERLESS_OCR_USER_ARGS = builtins.toJSON { optimize = 1; pdfa_image_compression = "lossless"; diff --git a/modules/pipewire/default.nix b/modules/pipewire/default.nix index b2d9a1b..8b69935 100644 --- a/modules/pipewire/default.nix +++ b/modules/pipewire/default.nix @@ -1,4 +1,5 @@ -{lib, ...}: { +{ lib, ... }: +{ services.pipewire.enable = true; hardware.pulseaudio = { diff --git a/modules/plex/default.nix b/modules/plex/default.nix index 650a29a..dcf446b 100644 --- a/modules/plex/default.nix +++ b/modules/plex/default.nix @@ -9,5 +9,5 @@ "d /mnt/raid/plex 770 plex plex" ]; - users.users.plex.extraGroups = ["transmission"]; + users.users.plex.extraGroups = [ "transmission" ]; } diff --git a/modules/printing/default.nix b/modules/printing/default.nix index 10c1539..254ec26 100644 --- a/modules/printing/default.nix +++ b/modules/printing/default.nix @@ -1,4 +1,5 @@ -{pkgs, ...}: { +{ pkgs, ... }: +{ services.avahi = { enable = true; # Important to resolve .local domains of printers, otherwise you get an error @@ -11,7 +12,7 @@ services.printing = { enable = true; drivers = [ - (pkgs.callPackage ./driver.nix {}) + (pkgs.callPackage ./driver.nix { }) ]; }; } diff --git a/modules/printing/driver.nix b/modules/printing/driver.nix index e2c5c2d..46a4d96 100644 --- a/modules/printing/driver.nix +++ b/modules/printing/driver.nix @@ -12,8 +12,13 @@ coreutils, gnugrep, which, -}: let - arches = ["x86_64" "i686" "armv7l"]; +}: +let + arches = [ + "x86_64" + "i686" + "armv7l" + ]; runtimeDeps = [ ghostscript @@ -24,63 +29,67 @@ which ]; in - stdenv.mkDerivation rec { - pname = "cups-brother-mfcl2710dw"; - version = "4.0.0-1"; +stdenv.mkDerivation rec { + pname = "cups-brother-mfcl2710dw"; + version = "4.0.0-1"; - nativeBuildInputs = [dpkg makeWrapper autoPatchelfHook]; - buildInputs = [perl]; + nativeBuildInputs = [ + dpkg + makeWrapper + autoPatchelfHook + ]; + buildInputs = [ perl ]; - dontUnpack = true; + dontUnpack = true; - src = fetchurl { - url = "https://download.brother.com/welcome/dlf103526/mfcl2710dwpdrv-${version}.i386.deb"; - hash = "sha256-OOTvbCuyxw4k01CTMuBqG2boMN13q5xC7LacaweGmyw="; - }; + src = fetchurl { + url = "https://download.brother.com/welcome/dlf103526/mfcl2710dwpdrv-${version}.i386.deb"; + hash = "sha256-OOTvbCuyxw4k01CTMuBqG2boMN13q5xC7LacaweGmyw="; + }; - installPhase = - '' - runHook preInstall + installPhase = + '' + runHook preInstall - mkdir -p $out - dpkg-deb -x $src $out + mkdir -p $out + dpkg-deb -x $src $out - # delete unnecessary files for the current architecture - '' - + lib.concatMapStrings (arch: '' - echo Deleting files for ${arch} - rm -r "$out/opt/brother/Printers/MFCL2710DW/lpd/${arch}" - '') (builtins.filter (arch: arch != stdenv.hostPlatform.linuxArch) arches) - + '' + # delete unnecessary files for the current architecture + '' + + lib.concatMapStrings (arch: '' + echo Deleting files for ${arch} + rm -r "$out/opt/brother/Printers/MFCL2710DW/lpd/${arch}" + '') (builtins.filter (arch: arch != stdenv.hostPlatform.linuxArch) arches) + + '' - # bundled scripts don't understand the arch subdirectories for some reason - ln -s \ - "$out/opt/brother/Printers/MFCL2710DW/lpd/${stdenv.hostPlatform.linuxArch}/"* \ - "$out/opt/brother/Printers/MFCL2710DW/lpd/" + # bundled scripts don't understand the arch subdirectories for some reason + ln -s \ + "$out/opt/brother/Printers/MFCL2710DW/lpd/${stdenv.hostPlatform.linuxArch}/"* \ + "$out/opt/brother/Printers/MFCL2710DW/lpd/" - # Fix global references and replace auto discovery mechanism with hardcoded values - substituteInPlace $out/opt/brother/Printers/MFCL2710DW/lpd/lpdfilter \ - --replace /opt "$out/opt" \ - --replace "my \$BR_PRT_PATH =" "my \$BR_PRT_PATH = \"$out/opt/brother/Printers/MFCL2710DW\"; #" \ - --replace "PRINTER =~" "PRINTER = \"MFCL2710DW\"; #" + # Fix global references and replace auto discovery mechanism with hardcoded values + substituteInPlace $out/opt/brother/Printers/MFCL2710DW/lpd/lpdfilter \ + --replace /opt "$out/opt" \ + --replace "my \$BR_PRT_PATH =" "my \$BR_PRT_PATH = \"$out/opt/brother/Printers/MFCL2710DW\"; #" \ + --replace "PRINTER =~" "PRINTER = \"MFCL2710DW\"; #" - # Make sure all executables have the necessary runtime dependencies available - find "$out" -executable -and -type f | while read file; do - wrapProgram "$file" --prefix PATH : "${lib.makeBinPath runtimeDeps}" - done + # Make sure all executables have the necessary runtime dependencies available + find "$out" -executable -and -type f | while read file; do + wrapProgram "$file" --prefix PATH : "${lib.makeBinPath runtimeDeps}" + done - # Symlink filter and ppd into a location where CUPS will discover it - mkdir -p $out/lib/cups/filter - mkdir -p $out/share/cups/model + # Symlink filter and ppd into a location where CUPS will discover it + mkdir -p $out/lib/cups/filter + mkdir -p $out/share/cups/model - ln -s \ - $out/opt/brother/Printers/MFCL2710DW/lpd/lpdfilter \ - $out/lib/cups/filter/brother_lpdwrapper_MFCL2710DW + ln -s \ + $out/opt/brother/Printers/MFCL2710DW/lpd/lpdfilter \ + $out/lib/cups/filter/brother_lpdwrapper_MFCL2710DW - ln -s \ - $out/opt/brother/Printers/MFCL2710DW/cupswrapper/brother-MFCL2710DW-cups-en.ppd \ - $out/share/cups/model/ + ln -s \ + $out/opt/brother/Printers/MFCL2710DW/cupswrapper/brother-MFCL2710DW-cups-en.ppd \ + $out/share/cups/model/ - runHook postInstall - ''; - } + runHook postInstall + ''; +} diff --git a/modules/prometheus-exporters/default.nix b/modules/prometheus-exporters/default.nix index f183852..4d1a70e 100644 --- a/modules/prometheus-exporters/default.nix +++ b/modules/prometheus-exporters/default.nix @@ -1,56 +1,89 @@ { config, - pkgs, lib, ... -}: let +}: +let hostname = config.networking.hostName; mkFor = hosts: lib.mkIf (builtins.elem hostname hosts); -in { +in +{ services.prometheus.exporters = { - node = mkFor ["sisko" "picard" "kirk"] { - enable = true; - enabledCollectors = [ - "cpu" - "conntrack" - "diskstats" - "entropy" - "filefd" - "filesystem" - "loadavg" - "mdadm" - "meminfo" - "netdev" - "netstat" - "stat" - "time" - "vmstat" - "systemd" - "logind" - "interrupts" - "ksmd" - "textfile" - "pressure" - ]; - extraFlags = ["--collector.ethtool" "--collector.softirqs" "--collector.tcpstat" "--collector.wifi"]; - }; - wireguard = mkFor ["sisko" "picard" "kirk"] { - enable = true; - }; - zfs = mkFor ["picard" "kirk"] { - enable = true; - }; + node = + mkFor + [ + "sisko" + "picard" + "kirk" + ] + { + enable = true; + enabledCollectors = [ + "cpu" + "conntrack" + "diskstats" + "entropy" + "filefd" + "filesystem" + "loadavg" + "mdadm" + "meminfo" + "netdev" + "netstat" + "stat" + "time" + "vmstat" + "systemd" + "logind" + "interrupts" + "ksmd" + "textfile" + "pressure" + ]; + extraFlags = [ + "--collector.ethtool" + "--collector.softirqs" + "--collector.tcpstat" + "--collector.wifi" + ]; + }; + wireguard = + mkFor + [ + "sisko" + "picard" + "kirk" + ] + { + enable = true; + }; + zfs = + mkFor + [ + "picard" + "kirk" + ] + { + enable = true; + }; # restic = mkFor ["sisko"] { # enable = true; # }; - postgres = mkFor ["sisko"] { + postgres = mkFor [ "sisko" ] { enable = true; }; - nginx = mkFor ["sisko"] { - enable = true; - }; - smartctl = mkFor ["sisko" "picard" "kirk"] { + nginx = mkFor [ "sisko" ] { enable = true; }; + smartctl = + mkFor + [ + "sisko" + "picard" + "kirk" + ] + { + enable = true; + }; }; } diff --git a/modules/prometheus/default.nix b/modules/prometheus/default.nix index cd52e90..382d4e8 100644 --- a/modules/prometheus/default.nix +++ b/modules/prometheus/default.nix @@ -1,6 +1,8 @@ -{config, ...}: let +{ config, ... }: +let cfg = config.services.prometheus; -in { +in +{ services.prometheus = { enable = true; pushgateway = { @@ -19,7 +21,9 @@ in { bearer_token_file = config.age.secrets.home-assistant-token.path; static_configs = [ { - targets = ["sisko.fleet:${builtins.toString config.services.home-assistant.config.http.server_port}"]; + targets = [ + "sisko.fleet:${builtins.toString config.services.home-assistant.config.http.server_port}" + ]; } ]; } @@ -27,7 +31,7 @@ in { job_name = "pushgateway"; static_configs = [ { - targets = [cfg.pushgateway.web.listen-address]; + targets = [ cfg.pushgateway.web.listen-address ]; } ]; } @@ -35,7 +39,11 @@ in { job_name = "node"; static_configs = [ { - targets = builtins.map (host: "${host}.fleet:9100") ["sisko" "picard" "kirk"]; + targets = builtins.map (host: "${host}.fleet:9100") [ + "sisko" + "picard" + "kirk" + ]; } ]; } @@ -43,7 +51,10 @@ in { job_name = "wireguard"; static_configs = [ { - targets = builtins.map (host: "${host}.fleet:9586") ["picard" "kirk"]; + targets = builtins.map (host: "${host}.fleet:9586") [ + "picard" + "kirk" + ]; } ]; } @@ -51,7 +62,10 @@ in { job_name = "zfs"; static_configs = [ { - targets = builtins.map (host: "${host}.fleet:9134") ["picard" "kirk"]; + targets = builtins.map (host: "${host}.fleet:9134") [ + "picard" + "kirk" + ]; } ]; } @@ -59,7 +73,7 @@ in { job_name = "restic"; static_configs = [ { - targets = builtins.map (host: "${host}.fleet:9753") ["sisko"]; + targets = builtins.map (host: "${host}.fleet:9753") [ "sisko" ]; } ]; } @@ -67,7 +81,7 @@ in { job_name = "postgres"; static_configs = [ { - targets = builtins.map (host: "${host}.fleet:9187") ["sisko"]; + targets = builtins.map (host: "${host}.fleet:9187") [ "sisko" ]; } ]; } @@ -75,7 +89,7 @@ in { job_name = "nginx"; static_configs = [ { - targets = builtins.map (host: "${host}.fleet:9117") ["sisko"]; + targets = builtins.map (host: "${host}.fleet:9117") [ "sisko" ]; } ]; } @@ -83,7 +97,11 @@ in { job_name = "smartctl"; static_configs = [ { - targets = builtins.map (host: "${host}.fleet:9633") ["sisko" "kirk" "picard"]; + targets = builtins.map (host: "${host}.fleet:9633") [ + "sisko" + "kirk" + "picard" + ]; } ]; } diff --git a/modules/promtail/default.nix b/modules/promtail/default.nix index f6d7621..f2ab2ef 100644 --- a/modules/promtail/default.nix +++ b/modules/promtail/default.nix @@ -3,7 +3,8 @@ lib, config, ... -}: let +}: +let conf = { server = { http_listen_port = 28183; @@ -11,7 +12,9 @@ }; clients = [ { - url = "http://sisko.fleet:${builtins.toString config.services.loki.configuration.server.http_listen_port or 3100}/loki/api/v1/push"; + url = "http://sisko.fleet:${ + builtins.toString config.services.loki.configuration.server.http_listen_port or 3100 + }/loki/api/v1/push"; } ]; positions = { @@ -29,7 +32,7 @@ }; relabel_configs = [ { - source_labels = ["__journal__systemd_unit"]; + source_labels = [ "__journal__systemd_unit" ]; target_label = "unit"; } ]; @@ -38,12 +41,13 @@ }; configFile = pkgs.writeTextFile { name = "promtail.yaml"; - text = lib.generators.toYAML {} conf; + text = lib.generators.toYAML { } conf; }; -in { +in +{ systemd.services.promtail = { description = "Promtail service for Loki"; - wantedBy = ["multi-user.target"]; + wantedBy = [ "multi-user.target" ]; serviceConfig = { ExecStart = '' diff --git a/modules/qmk-udev/default.nix b/modules/qmk-udev/default.nix index 8a9b4ba..5bfd1e6 100644 --- a/modules/qmk-udev/default.nix +++ b/modules/qmk-udev/default.nix @@ -1,3 +1,4 @@ -{pkgs, ...}: { - services.udev.packages = [pkgs.qmk-udev-rules]; +{ pkgs, ... }: +{ + services.udev.packages = [ pkgs.qmk-udev-rules ]; } diff --git a/modules/remote-xfce/default.nix b/modules/remote-xfce/default.nix index af0b332..c9889f7 100644 --- a/modules/remote-xfce/default.nix +++ b/modules/remote-xfce/default.nix @@ -1,8 +1,8 @@ { pkgs, - config, ... -}: { +}: +{ # nixpkgs.config.pulseaudio = true; # services.xrdp = { # enable = true; @@ -16,11 +16,14 @@ # }; # displayManager.defaultSession = "xfce"; # }; - environment.systemPackages = with pkgs; [sunshine superTuxKart]; + environment.systemPackages = with pkgs; [ + sunshine + superTuxKart + ]; - boot.kernelModules = ["uinput"]; + boot.kernelModules = [ "uinput" ]; - users.groups.input.members = ["ccr"]; + users.groups.input.members = [ "ccr" ]; services.udev.extraRules = '' KERNEL=="uinput", SUBSYSTEM=="misc", OPTIONS+="static_node=uinput", TAG+="uaccess"' | diff --git a/modules/restic/default.nix b/modules/restic/default.nix index 52da5cf..0d082b3 100644 --- a/modules/restic/default.nix +++ b/modules/restic/default.nix @@ -3,11 +3,13 @@ pkgs, lib, ... -}: let +}: +let user = "u382036-sub1"; host = "u382036.your-storagebox.de"; port = "23"; -in { +in +{ age.secrets = { HETZNER_STORAGE_BOX_SISKO_SSH_PASSWORD = { file = ../../secrets/hetzner-storage-box-sisko-ssh-password.age; @@ -19,10 +21,12 @@ in { }; }; - services.openssh.knownHosts."${host}".publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIICf9svRenC/PLKIL9nk6K/pxQgoiFC41wTNvoIncOxs"; + services.openssh.knownHosts."${ + host + }".publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIICf9svRenC/PLKIL9nk6K/pxQgoiFC41wTNvoIncOxs"; services.restic.backups.sisko = { - paths = ["/persist"]; + paths = [ "/persist" ]; passwordFile = config.age.secrets.SISKO_RESTIC_PASSWORD.path; extraOptions = [ "sftp.command='${lib.getExe pkgs.sshpass} -f ${config.age.secrets.HETZNER_STORAGE_BOX_SISKO_SSH_PASSWORD.path} ssh -p${port} ${user}@${host} -s sftp'" diff --git a/modules/rock5b-proxy/default.nix b/modules/rock5b-proxy/default.nix index 6e51923..926f664 100644 --- a/modules/rock5b-proxy/default.nix +++ b/modules/rock5b-proxy/default.nix @@ -1,7 +1,8 @@ -{config, ...}: { - imports = [../nginx-base]; +{ config, ... }: +{ + imports = [ ../nginx-base ]; services.nginx.virtualHosts = { - localhost.listen = [{addr = "127.0.0.1";}]; + localhost.listen = [ { addr = "127.0.0.1"; } ]; "home.aciceri.dev" = { forceSSL = true; enableACME = true; diff --git a/modules/rock5b-samba/default.nix b/modules/rock5b-samba/default.nix index e26c8b8..3791c92 100644 --- a/modules/rock5b-samba/default.nix +++ b/modules/rock5b-samba/default.nix @@ -36,7 +36,10 @@ }; networking.firewall = { - allowedTCPPorts = [139 445]; - allowedUDPPorts = [138]; + allowedTCPPorts = [ + 139 + 445 + ]; + allowedUDPPorts = [ 138 ]; }; } diff --git a/modules/searx/default.nix b/modules/searx/default.nix index 8d18188..85f616f 100644 --- a/modules/searx/default.nix +++ b/modules/searx/default.nix @@ -1,10 +1,14 @@ -{pkgs, ...}: { +{ pkgs, ... }: +{ services.searx = { enable = true; package = pkgs.searxng; settings = { server.secret_key = "secret"; - search.formats = ["html" "json"]; + search.formats = [ + "html" + "json" + ]; }; }; } diff --git a/modules/ssh-initrd/default.nix b/modules/ssh-initrd/default.nix index 07b7c5a..79a936d 100644 --- a/modules/ssh-initrd/default.nix +++ b/modules/ssh-initrd/default.nix @@ -2,7 +2,8 @@ config, pkgs, ... -}: { +}: +{ # For unlocking the disk connect using ssh and type # systemctl start initrd-nixos-activation boot.initrd = { diff --git a/modules/ssh/default.nix b/modules/ssh/default.nix index 8f8033a..fdcb9ad 100644 --- a/modules/ssh/default.nix +++ b/modules/ssh/default.nix @@ -1,4 +1,5 @@ -{fleetFlake, ...}: { +{ fleetFlake, ... }: +{ services = { openssh = { enable = true; @@ -15,5 +16,7 @@ }; # This makes sense only because I'm the only user for these machines - users.users.root.openssh.authorizedKeys.keys = builtins.attrValues (with (import "${fleetFlake}/lib"); keys.users // keys.hosts); + users.users.root.openssh.authorizedKeys.keys = builtins.attrValues ( + with (import "${fleetFlake}/lib"); keys.users // keys.hosts + ); } diff --git a/modules/syncthing/default.nix b/modules/syncthing/default.nix index 0acb3dc..b857df4 100644 --- a/modules/syncthing/default.nix +++ b/modules/syncthing/default.nix @@ -1,4 +1,5 @@ -{config, ...}: { +{ config, ... }: +{ services = { syncthing = { enable = true; @@ -45,7 +46,12 @@ kirk = "/home/${config.ccr.username}/org"; } .${config.networking.hostName}; - devices = ["picard" "sisko" "kirk" "oneplus8t"]; + devices = [ + "picard" + "sisko" + "kirk" + "oneplus8t" + ]; }; sync = { path = @@ -55,7 +61,11 @@ kirk = "/home/${config.ccr.username}/sync"; } .${config.networking.hostName}; - devices = ["picard" "sisko" "kirk"]; + devices = [ + "picard" + "sisko" + "kirk" + ]; }; }; }; diff --git a/modules/teamviewer/default.nix b/modules/teamviewer/default.nix index 6ed6177..e4f20e2 100644 --- a/modules/teamviewer/default.nix +++ b/modules/teamviewer/default.nix @@ -1,4 +1,5 @@ -{pkgs, ...}: { +{ pkgs, ... }: +{ services.teamviewer.enable = true; - ccr.packages = [pkgs.teamviewer]; + ccr.packages = [ pkgs.teamviewer ]; } diff --git a/modules/transmission/default.nix b/modules/transmission/default.nix index c1bcc3d..2a1f3cb 100644 --- a/modules/transmission/default.nix +++ b/modules/transmission/default.nix @@ -1,4 +1,5 @@ -{config, ...}: { +{ config, ... }: +{ services.transmission = { enable = true; openRPCPort = true; @@ -44,7 +45,7 @@ "d /mnt/hd/torrent/.incomplete 770 transmission transmission" ]; - ccr.extraGroups = ["transmission"]; + ccr.extraGroups = [ "transmission" ]; environment.persistence."/persist".directories = [ config.services.transmission.home diff --git a/modules/virt-manager/default.nix b/modules/virt-manager/default.nix index 08097fe..37863e6 100644 --- a/modules/virt-manager/default.nix +++ b/modules/virt-manager/default.nix @@ -1,6 +1,7 @@ -{config, ...}: { +{ config, ... }: +{ programs.virt-manager.enable = true; virtualisation.libvirtd.enable = true; - users.users."${config.ccr.username}".extraGroups = ["libvirtd"]; + users.users."${config.ccr.username}".extraGroups = [ "libvirtd" ]; virtualisation.libvirtd.qemu.swtpm.enable = true; } diff --git a/modules/vm-mara/default.nix b/modules/vm-mara/default.nix index b1e8051..ff3e7c9 100644 --- a/modules/vm-mara/default.nix +++ b/modules/vm-mara/default.nix @@ -1,10 +1,10 @@ { - config, pkgs, # lib, # fleetFlake, ... -}: { +}: +{ security.polkit.enable = true; virtualisation.libvirtd.enable = true; @@ -117,35 +117,37 @@ # -audiodev alsa,id=snd0,out.try-poll=off -device ich9-intel-hda -device hda-output,audiodev=snd0 \ # -device vfio-pci,host=00:02.0 \ - systemd.services.vm-mara = let - start-vm = pkgs.writeShellApplication { - name = "start-vm"; - runtimeInputs = with pkgs; [qemu]; - text = '' - [ ! -f /var/lib/vm-mara/w10.qcow2 ] && \ - qemu-img create -f qcow2 /var/lib/vm-mara/w10.qcow2 50G + systemd.services.vm-mara = + let + start-vm = pkgs.writeShellApplication { + name = "start-vm"; + runtimeInputs = with pkgs; [ qemu ]; + text = '' + [ ! -f /var/lib/vm-mara/w10.qcow2 ] && \ + qemu-img create -f qcow2 /var/lib/vm-mara/w10.qcow2 50G - qemu-system-x86_64 \ - -enable-kvm \ - -cpu host,kvm=off,hv-spinlocks=819,hv-vapic=on,hv-relaxed=on,hv-vendor-id="IrisXE" \ - -smp 4 \ - -m 8192 \ - -nic user,model=virtio-net-pci,hostfwd=tcp::3389-:3389,hostfwd=tcp::47989-:47989,hostfwd=tcp::47990-:47990,hostfwd=tcp::47984-:47984,hostfwd=tcp::48010-:48010,hostfwd=udp::47998-:47988,hostfwd=udp::47999-:47999,hostfwd=udp::48000-:48000,hostfwd=udp::48002-:48002,hostfwd=udp::48003-:48003,hostfwd=udp::48004-:48004,hostfwd=udp::48005-:48005,hostfwd=udp::48006-:48006,hostfwd=udp::48007-:48007,hostfwd=udp::48008-:48008,hostfwd=udp::48009-:48009,hostfwd=udp::48010-:48010 \ - -cdrom /var/lib/vm-mara/virtio-win.iso \ - -device nec-usb-xhci,id=usb,bus=pci.0,addr=0x4 \ - -device usb-tablet \ - -vnc :0 \ - -nographic \ - -vga none \ - -drive file=/var/lib/vm-mara/w10.qcow2 \ - -device vfio-pci,host=00:02.0,addr=03.0,x-vga=on,multifunction=on,romfile=${./adls_dmc_ver2_01.bin} - ''; + qemu-system-x86_64 \ + -enable-kvm \ + -cpu host,kvm=off,hv-spinlocks=819,hv-vapic=on,hv-relaxed=on,hv-vendor-id="IrisXE" \ + -smp 4 \ + -m 8192 \ + -nic user,model=virtio-net-pci,hostfwd=tcp::3389-:3389,hostfwd=tcp::47989-:47989,hostfwd=tcp::47990-:47990,hostfwd=tcp::47984-:47984,hostfwd=tcp::48010-:48010,hostfwd=udp::47998-:47988,hostfwd=udp::47999-:47999,hostfwd=udp::48000-:48000,hostfwd=udp::48002-:48002,hostfwd=udp::48003-:48003,hostfwd=udp::48004-:48004,hostfwd=udp::48005-:48005,hostfwd=udp::48006-:48006,hostfwd=udp::48007-:48007,hostfwd=udp::48008-:48008,hostfwd=udp::48009-:48009,hostfwd=udp::48010-:48010 \ + -cdrom /var/lib/vm-mara/virtio-win.iso \ + -device nec-usb-xhci,id=usb,bus=pci.0,addr=0x4 \ + -device usb-tablet \ + -vnc :0 \ + -nographic \ + -vga none \ + -drive file=/var/lib/vm-mara/w10.qcow2 \ + -device vfio-pci,host=00:02.0,addr=03.0,x-vga=on,multifunction=on,romfile=${./adls_dmc_ver2_01.bin} + ''; + }; + in + { + wantedBy = [ "multi-user.target" ]; + after = [ "network.target" ]; + serviceConfig = { + ExecStart = "${start-vm}/bin/start-vm"; + }; }; - in { - wantedBy = ["multi-user.target"]; - after = ["network.target"]; - serviceConfig = { - ExecStart = "${start-vm}/bin/start-vm"; - }; - }; } diff --git a/modules/vm-mara/i915-sriov-dkms.nix b/modules/vm-mara/i915-sriov-dkms.nix index 894ee01..892b4ae 100644 --- a/modules/vm-mara/i915-sriov-dkms.nix +++ b/modules/vm-mara/i915-sriov-dkms.nix @@ -2,9 +2,9 @@ stdenv, kernel, fetchFromGitHub, - runCommand, ... -}: let +}: +let m = stdenv.mkDerivation rec { name = "i915-sriov-dkms"; version = "4d89a1d5ba8c66308e3276c5297eda838c70cc31"; @@ -22,32 +22,29 @@ export sourceRoot=$(pwd)/source ''; - makeFlags = - kernel.makeFlags - ++ [ - "-C" - "${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" - "M=$(sourceRoot)" - "KVER=${kernel.version}" - ]; + makeFlags = kernel.makeFlags ++ [ + "-C" + "${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" + "M=$(sourceRoot)" + "KVER=${kernel.version}" + ]; # installPhase = '' # install -D i915.ko $out/lib/modules/${kernel.modDirVersion}/kernel/drivers/gpu/drm/i915/i915.ko # ''; - installFlags = ["INSTALL_MOD_PATH=${placeholder "out"}"]; + installFlags = [ "INSTALL_MOD_PATH=${placeholder "out"}" ]; - installTargets = ["modules_install"]; + installTargets = [ "modules_install" ]; enableParallelBuilding = true; # meta.priority = -10; }; in - m +m # in runCommand "test" {} '' # # mkdir -p $out/lib/modules/6.1.30/kernel/drivers/gpu/drm/i915 # mkdir -p $out/lib/modules/6.1.30/extra # cp ${m}/lib/modules/6.1.30/extra/i915.ko.xz $out/lib/modules/6.1.30/extra/foo.ko.xz # '' - diff --git a/modules/vm-sala/default.nix b/modules/vm-sala/default.nix index 4dc5457..5702a2a 100644 --- a/modules/vm-sala/default.nix +++ b/modules/vm-sala/default.nix @@ -1,9 +1,9 @@ { pkgs, - lib, fleetFlake, ... -}: { +}: +{ security.polkit.enable = true; virtualisation.libvirtd.enable = true; @@ -11,7 +11,7 @@ 2222 ]; - imports = [../nginx-base]; + imports = [ ../nginx-base ]; services.nginx.virtualHosts."git.slavni.aciceri.dev" = { forceSSL = true; @@ -21,67 +21,74 @@ }; }; - systemd.services.vm-sala = let - initial-config = fleetFlake.inputs.nixos-generators.nixosGenerate { - system = "x86_64-linux"; - modules = [ - # fleetFlake.inputs.nixos-vscode-server.nixosModule - ({ - modulesPath, - lib, - config, - ... - }: { - # services.vscode-server = { - # enable = true; - # enableFHS = true; - # }; - system.build.qcow = lib.mkForce (import "${toString modulesPath}/../lib/make-disk-image.nix" { - inherit lib config pkgs; - diskSize = 50 * 1024; - format = "qcow2"; - partitionTableType = "hybrid"; - }); - services.openssh.enable = true; - environment.systemPackages = with pkgs; [ - vim - git - htop - ]; - users.users.root = { - password = "password"; - openssh.authorizedKeys.keys = [ - (import "${fleetFlake.outPath}/lib").keys.users.ccr-ssh - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC7qikwR0a4LDoMQIVvtX+gyJ41OsAOWe8RcXc4ksIBP9x1nCcSrItlgC2soADB77QGIgyeyLGmnTCtMj5/s8NdREAycPeXLii1WRakbT7oZ/hTEmvAgObpadeYJn3LhaUDNtmsnAqqh2pRpCpSsAdhfIt+YyV4VgRYSfaa12Ozp/H6NI9bJMNttmG8TmY9V4zyskV9bE+up9y8Yuck2bZV/GjQe6UWgxsiC3XPSrFFGuxyaFMRGsc8h86xVwTAmwaHESEFhRvHD4EtdPNss0jqmSI6m4AoSZQ2wq7eiH8ZiYzERF0FnEFf4UsyOTM7j78bfogNLfKrdcEIPLrNNFFc3Iarfe9CJn3DdSnwwPnhFU1MBBXSbGOp1IyN3+gpjHwLMPzozlDAVqOwx6XpnpF78VpeknFBHCbkcKC/R0MXzqf900wH3i2HvfB7v9e9EUFzCQ0vUC+1Og+BFw3F5VSo0QtZyLc4BJ/akBs5mEE6TnuWQa/GhlY8Lz7wbcV1AaBOAQdx+NTbL/+Q31SJ1XsXtGtXCrwMY9noUTyVfpGVXo7Mn4HSslmeQ9SKfYKjyetkBR/1f8a47O3rCggjBy1AlfLjgbERnXy+0Ma4T8lnPZAKt3s9Ya1JupZ7SO7D5j7WfPKP+60c372/RrX1wXsxEeLvBJ0jd8GnSCXDOuvHTQ==" - ]; - }; - }) - ]; - format = "qcow"; - }; - image = "${initial-config}/nixos.qcow2"; - start-vm = pkgs.writeShellApplication { - name = "start-vm"; - runtimeInputs = with pkgs; [qemu]; - text = '' - [ ! -f /var/lib/vm-sala/nixos.qcow2 ] && \ - install ${image} /var/lib/vm-sala + systemd.services.vm-sala = + let + initial-config = fleetFlake.inputs.nixos-generators.nixosGenerate { + system = "x86_64-linux"; + modules = [ + # fleetFlake.inputs.nixos-vscode-server.nixosModule + ( + { + modulesPath, + lib, + config, + ... + }: + { + # services.vscode-server = { + # enable = true; + # enableFHS = true; + # }; + system.build.qcow = lib.mkForce ( + import "${toString modulesPath}/../lib/make-disk-image.nix" { + inherit lib config pkgs; + diskSize = 50 * 1024; + format = "qcow2"; + partitionTableType = "hybrid"; + } + ); + services.openssh.enable = true; + environment.systemPackages = with pkgs; [ + vim + git + htop + ]; + users.users.root = { + password = "password"; + openssh.authorizedKeys.keys = [ + (import "${fleetFlake.outPath}/lib").keys.users.ccr-ssh + "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC7qikwR0a4LDoMQIVvtX+gyJ41OsAOWe8RcXc4ksIBP9x1nCcSrItlgC2soADB77QGIgyeyLGmnTCtMj5/s8NdREAycPeXLii1WRakbT7oZ/hTEmvAgObpadeYJn3LhaUDNtmsnAqqh2pRpCpSsAdhfIt+YyV4VgRYSfaa12Ozp/H6NI9bJMNttmG8TmY9V4zyskV9bE+up9y8Yuck2bZV/GjQe6UWgxsiC3XPSrFFGuxyaFMRGsc8h86xVwTAmwaHESEFhRvHD4EtdPNss0jqmSI6m4AoSZQ2wq7eiH8ZiYzERF0FnEFf4UsyOTM7j78bfogNLfKrdcEIPLrNNFFc3Iarfe9CJn3DdSnwwPnhFU1MBBXSbGOp1IyN3+gpjHwLMPzozlDAVqOwx6XpnpF78VpeknFBHCbkcKC/R0MXzqf900wH3i2HvfB7v9e9EUFzCQ0vUC+1Og+BFw3F5VSo0QtZyLc4BJ/akBs5mEE6TnuWQa/GhlY8Lz7wbcV1AaBOAQdx+NTbL/+Q31SJ1XsXtGtXCrwMY9noUTyVfpGVXo7Mn4HSslmeQ9SKfYKjyetkBR/1f8a47O3rCggjBy1AlfLjgbERnXy+0Ma4T8lnPZAKt3s9Ya1JupZ7SO7D5j7WfPKP+60c372/RrX1wXsxEeLvBJ0jd8GnSCXDOuvHTQ==" + ]; + }; + } + ) + ]; + format = "qcow"; + }; + image = "${initial-config}/nixos.qcow2"; + start-vm = pkgs.writeShellApplication { + name = "start-vm"; + runtimeInputs = with pkgs; [ qemu ]; + text = '' + [ ! -f /var/lib/vm-sala/nixos.qcow2 ] && \ + install ${image} /var/lib/vm-sala - qemu-system-x86_64 \ - -enable-kvm \ - -cpu host \ - -smp 2 \ - -m 4096 \ - -nic user,model=virtio-net-pci,hostfwd=tcp::2222-:22,hostfwd=tcp::13000-:3000 \ - -nographic \ - -drive file=/var/lib/vm-sala/nixos.qcow2 - ''; + qemu-system-x86_64 \ + -enable-kvm \ + -cpu host \ + -smp 2 \ + -m 4096 \ + -nic user,model=virtio-net-pci,hostfwd=tcp::2222-:22,hostfwd=tcp::13000-:3000 \ + -nographic \ + -drive file=/var/lib/vm-sala/nixos.qcow2 + ''; + }; + in + { + wantedBy = [ "multi-user.target" ]; + after = [ "network.target" ]; + serviceConfig = { + ExecStart = "${start-vm}/bin/start-vm"; + }; }; - in { - wantedBy = ["multi-user.target"]; - after = ["network.target"]; - serviceConfig = { - ExecStart = "${start-vm}/bin/start-vm"; - }; - }; } diff --git a/modules/vm-ubuntu/default.nix b/modules/vm-ubuntu/default.nix index 9c07fe5..f7c4518 100644 --- a/modules/vm-ubuntu/default.nix +++ b/modules/vm-ubuntu/default.nix @@ -1,4 +1,5 @@ -{pkgs, ...}: { +{ pkgs, ... }: +{ virtualisation.libvirtd.enable = true; networking.firewall.interfaces."wg0" = { @@ -10,25 +11,27 @@ ]; }; - systemd.services.vm-ubuntu = let - start-vm = pkgs.writeShellApplication { - name = "start-vm"; - runtimeInputs = with pkgs; [qemu]; - text = '' - qemu-system-x86_64 \ - -enable-kvm \ - -cpu host,kvm=on,hv-vendor_id="GenuineIntel" \ - -smp 4 \ - -m 8192 \ - -nic user,model=virtio-net-pci,hostfwd=tcp::60022-:22,hostfwd=tcp::8545-:8545 \ - -drive file=/var/lib/vm-ubuntu/ubuntu.qcow2 - ''; + systemd.services.vm-ubuntu = + let + start-vm = pkgs.writeShellApplication { + name = "start-vm"; + runtimeInputs = with pkgs; [ qemu ]; + text = '' + qemu-system-x86_64 \ + -enable-kvm \ + -cpu host,kvm=on,hv-vendor_id="GenuineIntel" \ + -smp 4 \ + -m 8192 \ + -nic user,model=virtio-net-pci,hostfwd=tcp::60022-:22,hostfwd=tcp::8545-:8545 \ + -drive file=/var/lib/vm-ubuntu/ubuntu.qcow2 + ''; + }; + in + { + wantedBy = [ "multi-user.target" ]; + after = [ "network.target" ]; + serviceConfig = { + ExecStart = "${start-vm}/bin/start-vm"; + }; }; - in { - wantedBy = ["multi-user.target"]; - after = ["network.target"]; - serviceConfig = { - ExecStart = "${start-vm}/bin/start-vm"; - }; - }; } diff --git a/modules/wireguard-client/default.nix b/modules/wireguard-client/default.nix index 9a93f17..352aa40 100644 --- a/modules/wireguard-client/default.nix +++ b/modules/wireguard-client/default.nix @@ -2,16 +2,17 @@ config, vpn, ... -}: { - imports = [../wireguard-common]; +}: +{ + imports = [ ../wireguard-common ]; networking.wireguard.interfaces.wg0 = { mtu = 1200; - ips = ["${vpn.${config.networking.hostName}.ip}/32"]; + ips = [ "${vpn.${config.networking.hostName}.ip}/32" ]; peers = [ { publicKey = vpn.sisko.publicKey; - allowedIPs = ["10.100.0.0/24"]; + allowedIPs = [ "10.100.0.0/24" ]; endpoint = "vpn.aciceri.dev:51820"; persistentKeepalive = 25; } diff --git a/modules/wireguard-common/default.nix b/modules/wireguard-common/default.nix index 9ebfc78..ad50ad8 100644 --- a/modules/wireguard-common/default.nix +++ b/modules/wireguard-common/default.nix @@ -3,7 +3,8 @@ config, vpn, ... -}: { +}: +{ networking.firewall.interfaces.wg0 = { allowedUDPPortRanges = [ { @@ -24,11 +25,8 @@ listenPort = 51820; }; - networking.hosts = - lib.mapAttrs' - (hostname: vpnConfig: { - name = vpnConfig.ip; - value = ["${hostname}.fleet"]; - }) - vpn; + networking.hosts = lib.mapAttrs' (hostname: vpnConfig: { + name = vpnConfig.ip; + value = [ "${hostname}.fleet" ]; + }) vpn; } diff --git a/modules/wireguard-server/default.nix b/modules/wireguard-server/default.nix index 7c4b7c7..27c8a8a 100644 --- a/modules/wireguard-server/default.nix +++ b/modules/wireguard-server/default.nix @@ -3,20 +3,19 @@ lib, vpn, ... -}: { - imports = [../wireguard-common]; +}: +{ + imports = [ ../wireguard-common ]; networking.nat.enable = true; - networking.firewall.allowedUDPPorts = [config.networking.wireguard.interfaces.wg0.listenPort]; # FIXME move this to wireguard-server + networking.firewall.allowedUDPPorts = [ config.networking.wireguard.interfaces.wg0.listenPort ]; # FIXME move this to wireguard-server networking.wireguard.interfaces.wg0 = { - ips = ["${vpn.${config.networking.hostName}.ip}/24"]; - peers = - lib.mapAttrsToList (hostname: vpnConfig: { - publicKey = vpnConfig.publicKey; - allowedIPs = ["${vpnConfig.ip}/32"]; - }) - vpn; + ips = [ "${vpn.${config.networking.hostName}.ip}/24" ]; + peers = lib.mapAttrsToList (_hostname: vpnConfig: { + publicKey = vpnConfig.publicKey; + allowedIPs = [ "${vpnConfig.ip}/32" ]; + }) vpn; }; } diff --git a/modules/xdg/default.nix b/modules/xdg/default.nix index 5631915..0a07d40 100644 --- a/modules/xdg/default.nix +++ b/modules/xdg/default.nix @@ -1,4 +1,5 @@ -{pkgs, ...}: { +{ pkgs, ... }: +{ xdg = { portal = { enable = true; diff --git a/packages/default.nix b/packages/default.nix index 9aedeba..ace7ede 100644 --- a/packages/default.nix +++ b/packages/default.nix @@ -4,16 +4,18 @@ config, self, ... -}: { +}: +{ options.fleet = { - overlays = let - overlayType = lib.mkOptionType { - name = "nixpkgs-overlay"; - description = "nixpkgs overlay"; - check = lib.isFunction; - merge = lib.mergeOneOption; - }; - in + overlays = + let + overlayType = lib.mkOptionType { + name = "nixpkgs-overlay"; + description = "nixpkgs overlay"; + check = lib.isFunction; + merge = lib.mergeOneOption; + }; + in lib.mkOption { description = "Nixpkgs overlays to apply at flake level (not in hosts)"; type = lib.types.listOf overlayType; @@ -30,27 +32,25 @@ description = "Packages that are broken on a given system"; type = lib.types.attrsOf (lib.types.listOf lib.types.str); default = { - aarch64-linux = ["llm-workflow-engine"]; - x86_64-linux = []; + aarch64-linux = [ "llm-workflow-engine" ]; + x86_64-linux = [ ]; }; }; }; - config.perSystem = { - system, - lib, - pkgs, - ... - }: { - _module.args.pkgs = - lib.foldl - (legacyPackages: legacyPackages.extend) - inputs.nixpkgs.legacyPackages.${system} - config.fleet.overlays; + config.perSystem = + { + system, + lib, + pkgs, + ... + }: + { + _module.args.pkgs = lib.foldl ( + legacyPackages: legacyPackages.extend + ) inputs.nixpkgs.legacyPackages.${system} config.fleet.overlays; - packages = - builtins.removeAttrs - (lib.mapAttrs' + packages = builtins.removeAttrs (lib.mapAttrs' (name: value: { inherit name; value = pkgs.callPackage "${self}/packages/${name}" { @@ -60,9 +60,7 @@ packagePath = "packages/${name}"; }; }) - (lib.filterAttrs - (_: type: type == "directory") - (builtins.readDir "${self}/packages"))) - config.fleet.brokenPackages.${system}; - }; + (lib.filterAttrs (_: type: type == "directory") (builtins.readDir "${self}/packages")) + ) config.fleet.brokenPackages.${system}; + }; } diff --git a/packages/deploy/default.nix b/packages/deploy/default.nix index e7cfd57..058993b 100644 --- a/packages/deploy/default.nix +++ b/packages/deploy/default.nix @@ -6,5 +6,5 @@ writeShellApplication { name = "deploy"; text = builtins.readFile ./deploy.sh; - runtimeInputs = [nixos-rebuild]; + runtimeInputs = [ nixos-rebuild ]; } diff --git a/packages/garmin-collector/default.nix b/packages/garmin-collector/default.nix index 2e19330..8f911a4 100644 --- a/packages/garmin-collector/default.nix +++ b/packages/garmin-collector/default.nix @@ -8,5 +8,5 @@ writers.writePython3Bin "garmin-collector" { prometheus-client garminconnect ]; - flakeIgnore = ["E501"]; + flakeIgnore = [ "E501" ]; } (builtins.readFile ./garmin-collector.py) diff --git a/packages/llm-workflow-engine/default.nix b/packages/llm-workflow-engine/default.nix index 486eded..307d133 100644 --- a/packages/llm-workflow-engine/default.nix +++ b/packages/llm-workflow-engine/default.nix @@ -5,60 +5,63 @@ packagePath, fetchFromGitHub, ... -}: let +}: +let src = fetchFromGitHub { owner = "llm-workflow-engine"; repo = "llm-workflow-engine"; rev = "v0.18.10"; hash = "sha256-q9tCPQvGtufSL+E0h5gB0pA1CaKB9nUL1Hf5cmImZz8"; }; - module = { - config, - lib, - dream2nix, - ... - }: { - imports = [ - dream2nix.modules.dream2nix.pip - ]; - - name = "llm-workflow-engine"; - version = "0.18.10"; - - paths = { - inherit projectRoot; - package = packagePath; - }; - - mkDerivation = { - src = src; - propagatedBuildInputs = [ - config.pip.drvs.setuptools.public + module = + { + config, + lib, + dream2nix, + ... + }: + { + imports = [ + dream2nix.modules.dream2nix.pip ]; - }; - buildPythonPackage = { - format = lib.mkForce "pyproject"; - pythonImportsCheck = [ - "lwe" - ]; - catchConflicts = false; - }; + name = "llm-workflow-engine"; + version = "0.18.10"; - pip = { - pypiSnapshotDate = "2024-04-25"; - requirementsFiles = [ - "${src}/requirements.txt" - ]; - requirementsList = [ - "setuptools" - ]; - flattenDependencies = true; + paths = { + inherit projectRoot; + package = packagePath; + }; + + mkDerivation = { + src = src; + propagatedBuildInputs = [ + config.pip.drvs.setuptools.public + ]; + }; + + buildPythonPackage = { + format = lib.mkForce "pyproject"; + pythonImportsCheck = [ + "lwe" + ]; + catchConflicts = false; + }; + + pip = { + pypiSnapshotDate = "2024-04-25"; + requirementsFiles = [ + "${src}/requirements.txt" + ]; + requirementsList = [ + "setuptools" + ]; + flattenDependencies = true; + }; }; - }; in - dream2nix.lib.evalModules { - specialArgs.dream2nix = dream2nix; - packageSets.nixpkgs = pkgs; - modules = [module]; - } +dream2nix.lib.evalModules { + specialArgs.dream2nix = dream2nix; + packageSets.nixpkgs = pkgs; + modules = [ module ]; +} diff --git a/packages/spotify-adblocked/default.nix b/packages/spotify-adblocked/default.nix index 18cb8c5..94df5c9 100644 --- a/packages/spotify-adblocked/default.nix +++ b/packages/spotify-adblocked/default.nix @@ -4,7 +4,8 @@ fetchFromGitHub, zip, unzip, -}: let +}: +let spotify-adblock = rustPlatform.buildRustPackage { pname = "spotify-adblock"; version = "1.0.3"; @@ -33,21 +34,22 @@ ''; }; in - spotify.overrideAttrs ( - old: { - buildInputs = (old.buildInputs or []) ++ [zip unzip]; - postInstall = - (old.postInstall or "") - + '' - ln -s ${spotify-adblock}/lib/libspotifyadblock.so $libdir - sed -i "s:^Name=Spotify.*:Name=Spotify-adblock:" "$out/share/spotify/spotify.desktop" - wrapProgram $out/bin/spotify \ - --set LD_PRELOAD "${spotify-adblock}/lib/libspotifyadblock.so" +spotify.overrideAttrs (old: { + buildInputs = (old.buildInputs or [ ]) ++ [ + zip + unzip + ]; + postInstall = + (old.postInstall or "") + + '' + ln -s ${spotify-adblock}/lib/libspotifyadblock.so $libdir + sed -i "s:^Name=Spotify.*:Name=Spotify-adblock:" "$out/share/spotify/spotify.desktop" + wrapProgram $out/bin/spotify \ + --set LD_PRELOAD "${spotify-adblock}/lib/libspotifyadblock.so" - # Hide placeholder for advert banner - ${unzip}/bin/unzip -p $out/share/spotify/Apps/xpui.spa xpui.js | sed 's/adsEnabled:\!0/adsEnabled:false/' > $out/share/spotify/Apps/xpui.js - ${zip}/bin/zip --junk-paths --update $out/share/spotify/Apps/xpui.spa $out/share/spotify/Apps/xpui.js - rm $out/share/spotify/Apps/xpui.js - ''; - } - ) + # Hide placeholder for advert banner + ${unzip}/bin/unzip -p $out/share/spotify/Apps/xpui.spa xpui.js | sed 's/adsEnabled:\!0/adsEnabled:false/' > $out/share/spotify/Apps/xpui.js + ${zip}/bin/zip --junk-paths --update $out/share/spotify/Apps/xpui.spa $out/share/spotify/Apps/xpui.js + rm $out/share/spotify/Apps/xpui.js + ''; +}) diff --git a/secrets/secrets.nix b/secrets/secrets.nix index b41e70e..e5e95f4 100644 --- a/secrets/secrets.nix +++ b/secrets/secrets.nix @@ -1,39 +1,186 @@ let keys = (import ../lib).keys; in - with keys.hosts; - with keys.users; { - "cachix-personal-token.age".publicKeys = [ccr-ssh ccr-gpg mothership kirk sisko pbp picard]; - "magit-forge-github-token.age".publicKeys = [ccr-ssh ccr-gpg mothership kirk]; - "git-workspace-tokens.age".publicKeys = [ccr-ssh ccr-gpg mothership kirk picard]; - "hydra-admin-password.age".publicKeys = [ccr-ssh ccr-gpg mothership]; - "hydra-github-token.age".publicKeys = [ccr-ssh ccr-gpg mothership]; - "cache-private-key.age".publicKeys = [ccr-ssh ccr-gpg mothership]; - "autistici-password.age".publicKeys = [ccr-ssh ccr-gpg kirk picard sisko]; - "hercules-ci-join-token.age".publicKeys = [ccr-ssh ccr-gpg mothership sisko picard]; - "hercules-ci-binary-caches.age".publicKeys = [ccr-ssh ccr-gpg mothership sisko picard]; - "hercules-ci-secrets-json.age".publicKeys = [ccr-ssh ccr-gpg mothership sisko picard]; - "minio-credentials.age".publicKeys = [ccr-ssh ccr-gpg picard sisko]; - "aws-credentials.age".publicKeys = [ccr-ssh ccr-gpg picard sisko]; - "nextcloud-admin-pass.age".publicKeys = [ccr-ssh ccr-gpg sisko]; - "home-planimetry.age".publicKeys = [ccr-ssh ccr-gpg sisko]; - "home-assistant-token.age".publicKeys = [ccr-ssh ccr-gpg sisko]; - "chatgpt-token.age".publicKeys = [ccr-ssh ccr-gpg kirk mothership picard deltaflyer]; - "cloudflare-dyndns-api-token.age".publicKeys = [ccr-ssh ccr-gpg sisko]; - "restic-hetzner-password.age".publicKeys = [ccr-ssh ccr-gpg picard sisko kirk]; - "hass-ssh-key.age".publicKeys = [ccr-ssh ccr-gpg sisko]; - "grafana-password.age".publicKeys = [ccr-ssh ccr-gpg sisko]; - "matrix-registration-shared-secret.age".publicKeys = [ccr-ssh ccr-gpg sisko]; - "matrix-sliding-sync-secret.age".publicKeys = [ccr-ssh ccr-gpg sisko]; - "forgejo-runners-token.age".publicKeys = [ccr-ssh ccr-gpg picard]; - "forgejo-nix-access-tokens.age".publicKeys = [ccr-ssh ccr-gpg picard]; - "garmin-collector-environment.age".publicKeys = [ccr-ssh ccr-gpg sisko]; - "hetzner-storage-box-sisko-ssh-password.age".publicKeys = [ccr-ssh ccr-gpg sisko]; - "sisko-restic-password.age".publicKeys = [ccr-ssh ccr-gpg sisko]; +with keys.hosts; +with keys.users; +{ + "cachix-personal-token.age".publicKeys = [ + ccr-ssh + ccr-gpg + mothership + kirk + sisko + pbp + picard + ]; + "magit-forge-github-token.age".publicKeys = [ + ccr-ssh + ccr-gpg + mothership + kirk + ]; + "git-workspace-tokens.age".publicKeys = [ + ccr-ssh + ccr-gpg + mothership + kirk + picard + ]; + "hydra-admin-password.age".publicKeys = [ + ccr-ssh + ccr-gpg + mothership + ]; + "hydra-github-token.age".publicKeys = [ + ccr-ssh + ccr-gpg + mothership + ]; + "cache-private-key.age".publicKeys = [ + ccr-ssh + ccr-gpg + mothership + ]; + "autistici-password.age".publicKeys = [ + ccr-ssh + ccr-gpg + kirk + picard + sisko + ]; + "hercules-ci-join-token.age".publicKeys = [ + ccr-ssh + ccr-gpg + mothership + sisko + picard + ]; + "hercules-ci-binary-caches.age".publicKeys = [ + ccr-ssh + ccr-gpg + mothership + sisko + picard + ]; + "hercules-ci-secrets-json.age".publicKeys = [ + ccr-ssh + ccr-gpg + mothership + sisko + picard + ]; + "minio-credentials.age".publicKeys = [ + ccr-ssh + ccr-gpg + picard + sisko + ]; + "aws-credentials.age".publicKeys = [ + ccr-ssh + ccr-gpg + picard + sisko + ]; + "nextcloud-admin-pass.age".publicKeys = [ + ccr-ssh + ccr-gpg + sisko + ]; + "home-planimetry.age".publicKeys = [ + ccr-ssh + ccr-gpg + sisko + ]; + "home-assistant-token.age".publicKeys = [ + ccr-ssh + ccr-gpg + sisko + ]; + "chatgpt-token.age".publicKeys = [ + ccr-ssh + ccr-gpg + kirk + mothership + picard + deltaflyer + ]; + "cloudflare-dyndns-api-token.age".publicKeys = [ + ccr-ssh + ccr-gpg + sisko + ]; + "restic-hetzner-password.age".publicKeys = [ + ccr-ssh + ccr-gpg + picard + sisko + kirk + ]; + "hass-ssh-key.age".publicKeys = [ + ccr-ssh + ccr-gpg + sisko + ]; + "grafana-password.age".publicKeys = [ + ccr-ssh + ccr-gpg + sisko + ]; + "matrix-registration-shared-secret.age".publicKeys = [ + ccr-ssh + ccr-gpg + sisko + ]; + "matrix-sliding-sync-secret.age".publicKeys = [ + ccr-ssh + ccr-gpg + sisko + ]; + "forgejo-runners-token.age".publicKeys = [ + ccr-ssh + ccr-gpg + picard + ]; + "forgejo-nix-access-tokens.age".publicKeys = [ + ccr-ssh + ccr-gpg + picard + ]; + "garmin-collector-environment.age".publicKeys = [ + ccr-ssh + ccr-gpg + sisko + ]; + "hetzner-storage-box-sisko-ssh-password.age".publicKeys = [ + ccr-ssh + ccr-gpg + sisko + ]; + "sisko-restic-password.age".publicKeys = [ + ccr-ssh + ccr-gpg + sisko + ]; - # WireGuard - "picard-wireguard-private-key.age".publicKeys = [ccr-ssh ccr-gpg picard]; - "sisko-wireguard-private-key.age".publicKeys = [ccr-ssh ccr-gpg sisko]; - "kirk-wireguard-private-key.age".publicKeys = [ccr-ssh ccr-gpg kirk]; - "deltaflyer-wireguard-private-key.age".publicKeys = [ccr-ssh ccr-gpg deltaflyer]; - } + # WireGuard + "picard-wireguard-private-key.age".publicKeys = [ + ccr-ssh + ccr-gpg + picard + ]; + "sisko-wireguard-private-key.age".publicKeys = [ + ccr-ssh + ccr-gpg + sisko + ]; + "kirk-wireguard-private-key.age".publicKeys = [ + ccr-ssh + ccr-gpg + kirk + ]; + "deltaflyer-wireguard-private-key.age".publicKeys = [ + ccr-ssh + ccr-gpg + deltaflyer + ]; +} diff --git a/shell/default.nix b/shell/default.nix index 38c8fc6..4bb67b2 100644 --- a/shell/default.nix +++ b/shell/default.nix @@ -1,23 +1,25 @@ { - perSystem = { pkgs, config, ... }: { - devShells.default = pkgs.mkShell { - name = "fleet-shell"; - buildInputs = with pkgs; [ - git - agenix - age - deadnix - statix - alejandra - disko - deploy - colmena - nixos-anywhere - ]; - shellHook = '' - export RULES="$(git rev-parse --show-toplevel)/secrets/secrets.nix"; - ${config.pre-commit.installationScript} - ''; + perSystem = + { pkgs, config, ... }: + { + devShells.default = pkgs.mkShell { + name = "fleet-shell"; + buildInputs = with pkgs; [ + git + agenix + age + deadnix + statix + alejandra + disko + deploy + colmena + nixos-anywhere + ]; + shellHook = '' + export RULES="$(git rev-parse --show-toplevel)/secrets/secrets.nix"; + ${config.pre-commit.installationScript} + ''; + }; }; - }; } From 3ff06fa2bce786097ac8ea56f7238bb951e172d9 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 20 Sep 2024 21:26:56 +0200 Subject: [PATCH 032/492] Add zk at home-manager level --- hmModules/zk/default.nix | 42 ++++++++++++++++++++++++++++++++++++++++ hosts/picard/default.nix | 1 + 2 files changed, 43 insertions(+) create mode 100644 hmModules/zk/default.nix diff --git a/hmModules/zk/default.nix b/hmModules/zk/default.nix new file mode 100644 index 0000000..1f65116 --- /dev/null +++ b/hmModules/zk/default.nix @@ -0,0 +1,42 @@ +{ + programs.bat.enable = true; + programs.fzf.enable = true; + programs.zk = { + enable = true; + settings = { + notebook.dir = "~/notebook"; + note = { + language = "en"; + default-title = "Untitled"; + filename = "{{id}}"; + extension = "md"; + template = "default.md"; + }; + group.journal = { + paths = [ "journal" ]; + note = { + filename = "{{format-date now}}"; + template = "journal.md"; + }; + }; + format.markdown = { + hashtags = false; + colon-tags = true; + multiword-tags = false; + }; + tool = { + pager = "less -FIRX"; + fzf-preview = "bat --color always {-1}"; + }; + lsp.diagnostics = { + wiki-title = "hint"; + dead-link = "error"; + }; + lsp.completion = { + note-label = "{{title-or-path}}"; + note-filter-text = "{{title}} {{path}}"; + note-detail = "{{filename-stem}}"; + }; + }; + }; +} diff --git a/hosts/picard/default.nix b/hosts/picard/default.nix index e5c0374..8f4be62 100644 --- a/hosts/picard/default.nix +++ b/hosts/picard/default.nix @@ -85,6 +85,7 @@ "calibre" "reinstall-magisk-on-lineage" "vscode-server" + "zk" ]; extraGroups = [ ]; backupPaths = [ ]; From e703451af2feda7f76e316937907cec0fd9c99fd Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 20 Sep 2024 21:27:14 +0200 Subject: [PATCH 033/492] Move LSP servers --- hmModules/helix/default.nix | 15 +++++++++++---- hmModules/shell/default.nix | 5 ----- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/hmModules/helix/default.nix b/hmModules/helix/default.nix index 4e724e2..5816637 100644 --- a/hmModules/helix/default.nix +++ b/hmModules/helix/default.nix @@ -1,4 +1,13 @@ +{ pkgs, ... }: { + home.packages = with pkgs; [ + zk + nixd + terraform-ls + python3Packages.python-lsp-server + nodePackages.typescript-language-server + ]; + programs.helix = { enable = true; defaultEditor = true; @@ -11,6 +20,7 @@ normal = "block"; select = "underline"; }; + color-modes = true; true-color = true; # to make colors coherent when in ssh # inline-diagnostic = { # cursor-line = "hint"; @@ -23,6 +33,7 @@ { name = "nix"; language-servers = [ "nixd" ]; + formatter.command = "nixfmt"; } { name = "markdown"; @@ -35,10 +46,6 @@ ]; language-server = { nixd.command = "nixd"; - vtsls = { - command = "vtsls"; - args = [ "--stdio" ]; - }; zk = { command = "zk"; args = [ "lsp" ]; diff --git a/hmModules/shell/default.nix b/hmModules/shell/default.nix index cf7f76a..64f955e 100644 --- a/hmModules/shell/default.nix +++ b/hmModules/shell/default.nix @@ -254,12 +254,7 @@ "picard" ]) [ - nixd # TODO probably not the best place - terraform-lsp # TODO probably not best place - python3Packages.jedi-language-server # TODO probably not best place - nodePackages.typescript-language-server # TODO probably not best place cntr # TODO probably not best place - nom # FIXME disable on aarch64-linux, breaks everything :( ] ); } From 43a76ca3d75931429f236cd14a0136e68e89ba6a Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 20 Sep 2024 21:49:45 +0200 Subject: [PATCH 034/492] Enable prometheus exporters on `kirk` --- hosts/kirk/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/hosts/kirk/default.nix b/hosts/kirk/default.nix index e1fb82d..f2ee46a 100644 --- a/hosts/kirk/default.nix +++ b/hosts/kirk/default.nix @@ -33,6 +33,7 @@ "mount-rock5b" "adb" "binfmt" + "prometheus-exporters" ] ++ [ ./disko.nix From 42c594e32e329520b232302f925eaffd1e02b22b Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Sun, 22 Sep 2024 10:17:30 +0200 Subject: [PATCH 035/492] Enable secure boot on `picard` --- flake.lock | 180 +++++++++++++++++++++++++++++++++++++-- flake.nix | 4 + hosts/picard/default.nix | 7 +- 3 files changed, 184 insertions(+), 7 deletions(-) diff --git a/flake.lock b/flake.lock index 6037f2b..c430f78 100644 --- a/flake.lock +++ b/flake.lock @@ -21,6 +21,27 @@ "type": "github" } }, + "crane": { + "inputs": { + "nixpkgs": [ + "lanzaboote", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1721842668, + "narHash": "sha256-k3oiD2z2AAwBFLa4+xfU+7G5fisRXfkvrMTCJrjZzXo=", + "owner": "ipetkov", + "repo": "crane", + "rev": "529c1a0b1f29f0d78fa3086b8f6a134c71ef3aaf", + "type": "github" + }, + "original": { + "owner": "ipetkov", + "repo": "crane", + "type": "github" + } + }, "darwin": { "inputs": { "nixpkgs": [ @@ -115,7 +136,44 @@ "type": "github" } }, + "flake-compat_2": { + "flake": false, + "locked": { + "lastModified": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, "flake-parts": { + "inputs": { + "nixpkgs-lib": [ + "lanzaboote", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1719994518, + "narHash": "sha256-pQMhCCHyQGRzdfAkdJ4cIWiw+JNuWsTX7f0ZYSyz0VY=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "9227223f6d922fee3c7b190b2cc238a99527bbb7", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "flake-parts_2": { "inputs": { "nixpkgs-lib": "nixpkgs-lib_2" }, @@ -133,7 +191,7 @@ "type": "github" } }, - "flake-parts_2": { + "flake-parts_3": { "inputs": { "nixpkgs-lib": [ "nixThePlanet", @@ -154,7 +212,7 @@ "type": "indirect" } }, - "flake-parts_3": { + "flake-parts_4": { "inputs": { "nixpkgs-lib": "nixpkgs-lib_3" }, @@ -285,9 +343,31 @@ "type": "github" } }, + "gitignore_2": { + "inputs": { + "nixpkgs": [ + "lanzaboote", + "pre-commit-hooks-nix", + "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" + } + }, "hercules-ci-effects": { "inputs": { - "flake-parts": "flake-parts_2", + "flake-parts": "flake-parts_3", "nixpkgs": "nixpkgs_4" }, "locked": { @@ -419,6 +499,31 @@ "type": "github" } }, + "lanzaboote": { + "inputs": { + "crane": "crane", + "flake-compat": "flake-compat_2", + "flake-parts": "flake-parts", + "nixpkgs": [ + "nixpkgs" + ], + "pre-commit-hooks-nix": "pre-commit-hooks-nix", + "rust-overlay": "rust-overlay" + }, + "locked": { + "lastModified": 1725379389, + "narHash": "sha256-qS1H/5/20ewJIXmf8FN2A5KTOKKU9elWvCPwdBi1P/U=", + "owner": "nix-community", + "repo": "lanzaboote", + "rev": "e7bd94e0b5ff3c1e686f2101004ebf4fcea9d871", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "lanzaboote", + "type": "github" + } + }, "lix": { "flake": false, "locked": { @@ -547,7 +652,7 @@ }, "nixThePlanet": { "inputs": { - "flake-parts": "flake-parts", + "flake-parts": "flake-parts_2", "hercules-ci-effects": "hercules-ci-effects", "nixpkgs": [ "nixpkgs" @@ -712,6 +817,22 @@ "type": "github" } }, + "nixpkgs-stable_2": { + "locked": { + "lastModified": 1720386169, + "narHash": "sha256-NGKVY4PjzwAa4upkGtAMz1npHGoRzWotlSnVlqI40mo=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "194846768975b7ad2c4988bdb82572c00222c0d7", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-24.05", + "repo": "nixpkgs", + "type": "github" + } + }, "nixpkgs_2": { "locked": { "lastModified": 1720181791, @@ -874,6 +995,33 @@ "type": "gitlab" } }, + "pre-commit-hooks-nix": { + "inputs": { + "flake-compat": [ + "lanzaboote", + "flake-compat" + ], + "gitignore": "gitignore_2", + "nixpkgs": [ + "lanzaboote", + "nixpkgs" + ], + "nixpkgs-stable": "nixpkgs-stable_2" + }, + "locked": { + "lastModified": 1721042469, + "narHash": "sha256-6FPUl7HVtvRHCCBQne7Ylp4p+dpP3P/OYuzjztZ4s70=", + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "rev": "f451c19376071a90d8c58ab1a953c6e9840527fd", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "type": "github" + } + }, "purescript-overlay": { "inputs": { "nixpkgs": [ @@ -916,7 +1064,7 @@ "rock5b": { "inputs": { "fan-control": "fan-control", - "flake-parts": "flake-parts_3", + "flake-parts": "flake-parts_4", "kernel-src": "kernel-src", "nixpkgs": "nixpkgs_6", "nixpkgs-kernel": "nixpkgs-kernel", @@ -948,6 +1096,7 @@ "homeManager": "homeManager", "homeManagerGitWorkspace": "homeManagerGitWorkspace", "impermanence": "impermanence", + "lanzaboote": "lanzaboote", "lix": "lix", "lix-module": "lix-module", "mobile-nixos": "mobile-nixos", @@ -961,6 +1110,27 @@ "vscode-server": "vscode-server" } }, + "rust-overlay": { + "inputs": { + "nixpkgs": [ + "lanzaboote", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1722219664, + "narHash": "sha256-xMOJ+HW4yj6e69PvieohUJ3dBSdgCfvI0nnCEe6/yVc=", + "owner": "oxalica", + "repo": "rust-overlay", + "rev": "a6fbda5d9a14fb5f7c69b8489d24afeb349c7bb4", + "type": "github" + }, + "original": { + "owner": "oxalica", + "repo": "rust-overlay", + "type": "github" + } + }, "scss-reset": { "flake": false, "locked": { diff --git a/flake.nix b/flake.nix index d4bf146..65cf299 100644 --- a/flake.nix +++ b/flake.nix @@ -55,6 +55,10 @@ }; impermanence.url = "github:nix-community/impermanence"; vscode-server.url = "github:nix-community/nixos-vscode-server"; + lanzaboote = { + url = "github:nix-community/lanzaboote"; + inputs.nixpkgs.follows = "nixpkgs"; + }; }; outputs = diff --git a/hosts/picard/default.nix b/hosts/picard/default.nix index 8f4be62..3af3ce5 100644 --- a/hosts/picard/default.nix +++ b/hosts/picard/default.nix @@ -129,12 +129,15 @@ boot.loader.efi.canTouchEfiVariables = true; boot.loader.systemd-boot = { + enable = lib.mkForce false; # needed by lanzaboote + }; + boot.lanzaboote = { enable = true; + pkiBundle = "/etc/secureboot"; configurationLimit = 20; }; - # boot.kernelPackages = pkgs.linuxKernel.packages.linux_6_8; - boot.kernelPackages = config.boot.zfs.package.latestCompatibleLinuxPackages; + boot.kernelPackages = pkgs.linuxKernel.packages.linux_6_10; networking.hostId = "5b02e763"; From 48ba1729e674c26876a0d7a6a4c0655017c15ba4 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Sun, 22 Sep 2024 10:17:42 +0200 Subject: [PATCH 036/492] Cleanings --- hosts/default.nix | 77 +--------------------------------------- hosts/picard/default.nix | 1 - 2 files changed, 1 insertion(+), 77 deletions(-) diff --git a/hosts/default.nix b/hosts/default.nix index 748d6a4..18e0bc7 100644 --- a/hosts/default.nix +++ b/hosts/default.nix @@ -11,66 +11,6 @@ nixOnDroidHosts.janeway = { }; hosts = { - # thinkpad = { - # extraModules = with inputs; [ - # nixosHardware.nixosModules.lenovo-thinkpad-x1-7th-gen - # buildbot-nix.nixosModules.buildbot-master - # buildbot-nix.nixosModules.buildbot-worker - # ]; - # extraHmModules = with inputs; [ - # ccrEmacs.hmModules.default - # { - # # TODO: remove after https://github.com/nix-community/home-manager/pull/3811 - # imports = let - # hmModules = "${inputs.homeManagerGitWorkspace}/modules"; - # in [ - # "${hmModules}/services/git-workspace.nix" - # ]; - # } - # ]; - # overlays = [inputs.nil.overlays.default]; - # secrets = { - # "thinkpad-wireguard-private-key" = {}; - # "cachix-personal-token".owner = "ccr"; - # "autistici-password".owner = "ccr"; - # "git-workspace-tokens".owner = "ccr"; - # "chatgpt-token".owner = "ccr"; - # }; - # }; - # rock5b = { - # system = "aarch64-linux"; - # extraModules = with inputs; [ - # disko.nixosModules.disko - # rock5b.nixosModules.default - # ]; - # secrets = { - # "rock5b-wireguard-private-key" = {}; - # "hercules-ci-join-token".owner = "hercules-ci-agent"; - # "hercules-ci-binary-caches".owner = "hercules-ci-agent"; - # "cachix-personal-token".owner = "ccr"; - # "home-planimetry".owner = "hass"; - # "cloudflare-dyndns-api-token" = {}; - # # "nextcloud-admin-pass".owner = "nextcloud"; - # # "aws-credentials" = {}; - # }; - # colmena.deployment.buildOnTarget = true; - # }; - # pbp = { - # system = "aarch64-linux"; - # extraModules = with inputs; [ - # nixosHardware.nixosModules.pine64-pinebook-pro - # disko.nixosModules.disko - # ]; - # extraHmModules = [ - # inputs.ccrEmacs.hmModules.default - # ]; - # secrets = { - # "pbp-wireguard-private-key" = {}; - # "cachix-personal-token".owner = "ccr"; - # "chatgpt-token".owner = "ccr"; - # }; - # }; - deltaflyer = { nixpkgs = let @@ -106,7 +46,6 @@ inputs.lix-module.nixosModules.default ]; extraHmModules = [ - # inputs.ccrEmacs.hmModules.default "${inputs.homeManagerGitWorkspace}/modules/services/git-workspace.nix" ]; secrets = { @@ -128,7 +67,7 @@ inputs.disko.nixosModules.disko inputs.nixThePlanet.nixosModules.macos-ventura inputs.lix-module.nixosModules.default - # inputs.hercules-ci-agent.nixosModules.agent-service + inputs.lanzaboote.nixosModules.lanzaboote ]; extraHmModules = [ # inputs.ccrEmacs.hmModules.default @@ -139,13 +78,9 @@ "picard-wireguard-private-key" = { }; "chatgpt-token".owner = "ccr"; "cachix-personal-token".owner = "ccr"; - "hercules-ci-join-token".owner = "hercules-ci-agent"; - "hercules-ci-binary-caches".owner = "hercules-ci-agent"; - "hercules-ci-secrets-json".owner = "hercules-ci-agent"; "git-workspace-tokens".owner = "ccr"; "autistici-password".owner = "ccr"; "restic-hetzner-password" = { }; - "aws-credentials".owner = "hercules-ci-agent"; "forgejo-runners-token".owner = "nixuser"; "forgejo-nix-access-tokens".owner = "nixuser"; }; @@ -160,26 +95,16 @@ extraModules = with inputs; [ disko.nixosModules.disko impermanence.nixosModules.impermanence - # lix-module.nixosModules.default - # inputs.hercules-ci-agent.nixosModules.agent-service; - # rock5b.nixosModules.default ]; secrets = { "sisko-wireguard-private-key" = { }; - "hercules-ci-join-token".owner = "hercules-ci-agent"; - "hercules-ci-binary-caches".owner = "hercules-ci-agent"; - "hercules-ci-secrets-json".owner = "hercules-ci-agent"; "cachix-personal-token".owner = "ccr"; "home-planimetry".owner = "hass"; "home-assistant-token".owner = "prometheus"; "grafana-password".owner = "grafana"; "cloudflare-dyndns-api-token" = { }; "restic-hetzner-password" = { }; - # "minio-credentials".owner = "minio"; - # "aws-credentials".owner = "hercules-ci-agent"; "hass-ssh-key".owner = "hass"; - # "matrix-registration-shared-secret".owner = "matrix-synapse"; - # "matrix-sliding-sync-secret".owner = "matrix-synapse"; "autistici-password" = { # FIXME terrible, should create a third ad-hoc group owner = "grafana"; diff --git a/hosts/picard/default.nix b/hosts/picard/default.nix index 3af3ce5..509a13a 100644 --- a/hosts/picard/default.nix +++ b/hosts/picard/default.nix @@ -26,7 +26,6 @@ "waydroid" "virt-manager" "ssh-initrd" - "hercules-ci" "printing" "pam" "wireguard-client" From 60d5495bed73db913e3c60aba6fa40d196f645df Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Mon, 23 Sep 2024 09:54:07 +0200 Subject: [PATCH 037/492] Removed unused emacs --- hosts/picard/default.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/hosts/picard/default.nix b/hosts/picard/default.nix index 509a13a..baf46b0 100644 --- a/hosts/picard/default.nix +++ b/hosts/picard/default.nix @@ -58,7 +58,6 @@ "element" "zmkbatx" "tremotesf" - # "emacs" "firefox" "gpg" "mpv" From b1a17f605d2e500cf73726967d0a8fba4bd370c9 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Mon, 23 Sep 2024 09:54:40 +0200 Subject: [PATCH 038/492] Remove wezterm patch Still doesn't work but at least it starts now --- hmModules/wezterm/Cargo.lock | 7319 --------------------------------- hmModules/wezterm/default.nix | 58 - 2 files changed, 7377 deletions(-) delete mode 100644 hmModules/wezterm/Cargo.lock diff --git a/hmModules/wezterm/Cargo.lock b/hmModules/wezterm/Cargo.lock deleted file mode 100644 index 2122da7..0000000 --- a/hmModules/wezterm/Cargo.lock +++ /dev/null @@ -1,7319 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 3 - -[[package]] -name = "addr2line" -version = "0.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" -dependencies = [ - "gimli", -] - -[[package]] -name = "adler" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" - -[[package]] -name = "adler32" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234" - -[[package]] -name = "ahash" -version = "0.8.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" -dependencies = [ - "cfg-if", - "getrandom", - "once_cell", - "version_check", - "zerocopy", -] - -[[package]] -name = "aho-corasick" -version = "1.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" -dependencies = [ - "memchr", -] - -[[package]] -name = "aligned-vec" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4aa90d7ce82d4be67b64039a3d588d38dbcc6736577de4a847025ce5b0c468d1" - -[[package]] -name = "allocator-api2" -version = "0.2.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" - -[[package]] -name = "android-tzdata" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" - -[[package]] -name = "android_system_properties" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" -dependencies = [ - "libc", -] - -[[package]] -name = "anes" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299" - -[[package]] -name = "anstream" -version = "0.6.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "418c75fa768af9c03be99d17643f93f79bbba589895012a80e3452a19ddda15b" -dependencies = [ - "anstyle", - "anstyle-parse", - "anstyle-query", - "anstyle-wincon", - "colorchoice", - "is_terminal_polyfill", - "utf8parse", -] - -[[package]] -name = "anstyle" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "038dfcf04a5feb68e9c60b21c9625a54c2c0616e79b72b0fd87075a056ae1d1b" - -[[package]] -name = "anstyle-parse" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c03a11a9034d92058ceb6ee011ce58af4a9bf61491aa7e1e59ecd24bd40d22d4" -dependencies = [ - "utf8parse", -] - -[[package]] -name = "anstyle-query" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a64c907d4e79225ac72e2a354c9ce84d50ebb4586dee56c82b3ee73004f537f5" -dependencies = [ - "windows-sys 0.52.0", -] - -[[package]] -name = "anstyle-wincon" -version = "3.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61a38449feb7068f52bb06c12759005cf459ee52bb4adc1d5a7c4322d716fb19" -dependencies = [ - "anstyle", - "windows-sys 0.52.0", -] - -[[package]] -name = "anyhow" -version = "1.0.86" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da" - -[[package]] -name = "arbitrary" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d5a26814d8dcb93b0e5a0ff3c6d80a8843bafb21b39e8e18a6f05471870e110" - -[[package]] -name = "arg_enum_proc_macro" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ae92a5119aa49cdbcf6b9f893fe4e1d98b04ccbf82ee0584ad948a44a734dea" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.65", -] - -[[package]] -name = "arrayref" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545" - -[[package]] -name = "arrayvec" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" - -[[package]] -name = "as-raw-xcb-connection" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "175571dd1d178ced59193a6fc02dde1b972eb0bc56c892cde9beeceac5bf0f6b" - -[[package]] -name = "ash" -version = "0.37.3+1.3.251" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e9c3835d686b0a6084ab4234fcd1b07dbf6e4767dce60874b12356a25ecd4a" -dependencies = [ - "libloading 0.7.4", -] - -[[package]] -name = "assert_fs" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2cd762e110c8ed629b11b6cde59458cc1c71de78ebbcc30099fc8e0403a2a2ec" -dependencies = [ - "anstyle", - "doc-comment", - "globwalk", - "predicates", - "predicates-core", - "predicates-tree", - "tempfile", -] - -[[package]] -name = "async-broadcast" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "258b52a1aa741b9f09783b2d86cf0aeeb617bbf847f6933340a39644227acbdb" -dependencies = [ - "event-listener 5.3.0", - "event-listener-strategy 0.5.2", - "futures-core", - "pin-project-lite", -] - -[[package]] -name = "async-channel" -version = "2.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89b47800b0be77592da0afd425cc03468052844aff33b84e33cc696f64e77b6a" -dependencies = [ - "concurrent-queue", - "event-listener-strategy 0.5.2", - "futures-core", - "pin-project-lite", -] - -[[package]] -name = "async-executor" -version = "1.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b10202063978b3351199d68f8b22c4e47e4b1b822f8d43fd862d5ea8c006b29a" -dependencies = [ - "async-task", - "concurrent-queue", - "fastrand", - "futures-lite", - "slab", -] - -[[package]] -name = "async-fs" -version = "2.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebcd09b382f40fcd159c2d695175b2ae620ffa5f3bd6f664131efff4e8b9e04a" -dependencies = [ - "async-lock", - "blocking", - "futures-lite", -] - -[[package]] -name = "async-io" -version = "2.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcccb0f599cfa2f8ace422d3555572f47424da5648a4382a9dd0310ff8210884" -dependencies = [ - "async-lock", - "cfg-if", - "concurrent-queue", - "futures-io", - "futures-lite", - "parking", - "polling", - "rustix 0.38.34", - "slab", - "tracing", - "windows-sys 0.52.0", -] - -[[package]] -name = "async-lock" -version = "3.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d034b430882f8381900d3fe6f0aaa3ad94f2cb4ac519b429692a1bc2dda4ae7b" -dependencies = [ - "event-listener 4.0.3", - "event-listener-strategy 0.4.0", - "pin-project-lite", -] - -[[package]] -name = "async-net" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b948000fad4873c1c9339d60f2623323a0cfd3816e5181033c6a5cb68b2accf7" -dependencies = [ - "async-io", - "blocking", - "futures-lite", -] - -[[package]] -name = "async-process" -version = "2.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a53fc6301894e04a92cb2584fedde80cb25ba8e02d9dc39d4a87d036e22f397d" -dependencies = [ - "async-channel", - "async-io", - "async-lock", - "async-signal", - "async-task", - "blocking", - "cfg-if", - "event-listener 5.3.0", - "futures-lite", - "rustix 0.38.34", - "tracing", - "windows-sys 0.52.0", -] - -[[package]] -name = "async-recursion" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.65", -] - -[[package]] -name = "async-signal" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afe66191c335039c7bb78f99dc7520b0cbb166b3a1cb33a03f53d8a1c6f2afda" -dependencies = [ - "async-io", - "async-lock", - "atomic-waker", - "cfg-if", - "futures-core", - "futures-io", - "rustix 0.38.34", - "signal-hook-registry", - "slab", - "windows-sys 0.52.0", -] - -[[package]] -name = "async-task" -version = "4.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" - -[[package]] -name = "async-trait" -version = "0.1.80" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6fa2087f2753a7da8cc1c0dbfcf89579dd57458e36769de5ac750b4671737ca" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.65", -] - -[[package]] -name = "async_ossl" -version = "0.1.0" -dependencies = [ - "async-io", - "openssl", -] - -[[package]] -name = "atomic" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c59bdb34bc650a32731b31bd8f0829cc15d24a708ee31559e0bb34f2bc320cba" - -[[package]] -name = "atomic-waker" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" - -[[package]] -name = "autocfg" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" - -[[package]] -name = "av1-grain" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6678909d8c5d46a42abcf571271e15fdbc0a225e3646cf23762cd415046c78bf" -dependencies = [ - "anyhow", - "arrayvec", - "log", - "nom", - "num-rational", - "v_frame", -] - -[[package]] -name = "avif-serialize" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "876c75a42f6364451a033496a14c44bffe41f5f4a8236f697391f11024e596d2" -dependencies = [ - "arrayvec", -] - -[[package]] -name = "az" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b7e4c2464d97fe331d41de9d5db0def0a96f4d823b8b32a2efd503578988973" - -[[package]] -name = "backtrace" -version = "0.3.71" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26b05800d2e817c8b3b4b54abd461726265fa9789ae34330622f2db9ee696f9d" -dependencies = [ - "addr2line", - "cc", - "cfg-if", - "libc", - "miniz_oxide", - "object", - "rustc-demangle", -] - -[[package]] -name = "base64" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" - -[[package]] -name = "base64" -version = "0.21.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" - -[[package]] -name = "base64" -version = "0.22.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" - -[[package]] -name = "base91" -version = "0.1.0" - -[[package]] -name = "battery" -version = "0.1.0" -dependencies = [ - "anyhow", - "config", - "luahelper", - "starship-battery", - "wezterm-dynamic", -] - -[[package]] -name = "benchmarking" -version = "0.4.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c335a9de639ba6a3e4107fe7763c9dcd4eb9422575f1191c2b8f2009f03fe4a" - -[[package]] -name = "bintree" -version = "0.1.0" - -[[package]] -name = "bit-set" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" -dependencies = [ - "bit-vec", -] - -[[package]] -name = "bit-vec" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" - -[[package]] -name = "bit_field" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc827186963e592360843fb5ba4b973e145841266c1357f7180c43526f2e5b61" - -[[package]] -name = "bitflags" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" - -[[package]] -name = "bitflags" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" -dependencies = [ - "serde", -] - -[[package]] -name = "bitstream-io" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c12d1856e42f0d817a835fe55853957c85c8c8a470114029143d3f12671446e" - -[[package]] -name = "block" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" - -[[package]] -name = "block-buffer" -version = "0.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" -dependencies = [ - "generic-array", -] - -[[package]] -name = "blocking" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "495f7104e962b7356f0aeb34247aca1fe7d2e783b346582db7f2904cb5717e88" -dependencies = [ - "async-channel", - "async-lock", - "async-task", - "futures-io", - "futures-lite", - "piper", -] - -[[package]] -name = "bstr" -version = "1.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05efc5cfd9110c8416e471df0e96702d58690178e206e61b7173706673c93706" -dependencies = [ - "memchr", - "regex-automata", - "serde", -] - -[[package]] -name = "built" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41bfbdb21256b87a8b5e80fab81a8eed158178e812fd7ba451907518b2742f16" - -[[package]] -name = "bumpalo" -version = "3.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" - -[[package]] -name = "bytemuck" -version = "1.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78834c15cb5d5efe3452d58b1e8ba890dd62d21907f867f383358198e56ebca5" -dependencies = [ - "bytemuck_derive", -] - -[[package]] -name = "bytemuck_derive" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4da9a32f3fed317401fa3c862968128267c3106685286e15d5aaa3d7389c2f60" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.65", -] - -[[package]] -name = "byteorder" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" - -[[package]] -name = "byteorder-lite" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f1fe948ff07f4bd06c30984e69f5b4899c516a3ef74f34df92a2df2ab535495" - -[[package]] -name = "bytes" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9" - -[[package]] -name = "cairo-rs" -version = "0.18.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ca26ef0159422fb77631dc9d17b102f253b876fe1586b03b803e63a309b4ee2" -dependencies = [ - "bitflags 2.5.0", - "cairo-sys-rs", - "libc", - "once_cell", - "thiserror", -] - -[[package]] -name = "cairo-sys-rs" -version = "0.18.0" -dependencies = [ - "cc", - "libc", -] - -[[package]] -name = "camino" -version = "1.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0ec6b951b160caa93cc0c7b209e5a3bff7aae9062213451ac99493cd844c239" - -[[package]] -name = "cassowary" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df8670b8c7b9dae1793364eafadf7239c40d669904660c5960d74cfd80b46a53" - -[[package]] -name = "cast" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" - -[[package]] -name = "cc" -version = "1.0.98" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41c270e7540d725e65ac7f1b212ac8ce349719624d7bcff99f8e2e488e8cf03f" -dependencies = [ - "jobserver", - "libc", - "once_cell", -] - -[[package]] -name = "cfg-expr" -version = "0.15.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d067ad48b8650848b989a59a86c6c36a995d02d2bf778d45c3c5d57bc2718f02" -dependencies = [ - "smallvec", - "target-lexicon", -] - -[[package]] -name = "cfg-if" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" - -[[package]] -name = "cfg_aliases" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" - -[[package]] -name = "cgl" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ced0551234e87afee12411d535648dd89d2e7f34c78b753395567aff3d447ff" -dependencies = [ - "libc", -] - -[[package]] -name = "chrono" -version = "0.4.38" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401" -dependencies = [ - "android-tzdata", - "iana-time-zone", - "num-traits", - "pure-rust-locales", - "serde", - "windows-targets 0.52.5", -] - -[[package]] -name = "ciborium" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42e69ffd6f0917f5c029256a24d0161db17cea3997d185db0d35926308770f0e" -dependencies = [ - "ciborium-io", - "ciborium-ll", - "serde", -] - -[[package]] -name = "ciborium-io" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05afea1e0a06c9be33d539b876f1ce3692f4afea2cb41f740e7743225ed1c757" - -[[package]] -name = "ciborium-ll" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57663b653d948a338bfb3eeba9bb2fd5fcfaecb9e199e87e1eda4d9e8b240fd9" -dependencies = [ - "ciborium-io", - "half", -] - -[[package]] -name = "clap" -version = "4.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90bc066a67923782aa8515dbaea16946c5bcc5addbd668bb80af688e53e548a0" -dependencies = [ - "clap_builder", - "clap_derive", -] - -[[package]] -name = "clap_builder" -version = "4.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae129e2e766ae0ec03484e609954119f123cc1fe650337e155d03b022f24f7b4" -dependencies = [ - "anstream", - "anstyle", - "clap_lex", - "strsim", - "terminal_size 0.3.0", -] - -[[package]] -name = "clap_complete" -version = "4.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd79504325bf38b10165b02e89b4347300f855f273c4cb30c4a3209e6583275e" -dependencies = [ - "clap", -] - -[[package]] -name = "clap_complete_fig" -version = "4.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54b3e65f91fabdd23cac3d57d39d5d938b4daabd070c335c006dccb866a61110" -dependencies = [ - "clap", - "clap_complete", -] - -[[package]] -name = "clap_derive" -version = "4.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "528131438037fd55894f62d6e9f068b8f45ac57ffa77517819645d10aed04f64" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "syn 2.0.65", -] - -[[package]] -name = "clap_lex" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce" - -[[package]] -name = "clipboard-win" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3a093d6fed558e5fe24c3dfc85a68bb68f1c824f440d3ba5aca189e2998786b" -dependencies = [ - "winapi", -] - -[[package]] -name = "cocoa" -version = "0.25.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6140449f97a6e97f9511815c5632d84c8aacf8ac271ad77c559218161a1373c" -dependencies = [ - "bitflags 1.3.2", - "block", - "cocoa-foundation", - "core-foundation", - "core-graphics", - "foreign-types 0.5.0", - "libc", - "objc", -] - -[[package]] -name = "cocoa-foundation" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c6234cbb2e4c785b456c0644748b1ac416dd045799740356f8363dfe00c93f7" -dependencies = [ - "bitflags 1.3.2", - "block", - "core-foundation", - "core-graphics-types", - "libc", - "objc", -] - -[[package]] -name = "codec" -version = "0.1.0" -dependencies = [ - "anyhow", - "base91", - "config", - "leb128", - "log", - "metrics", - "mux", - "portable-pty", - "rangeset", - "serde", - "smol", - "termwiz", - "thiserror", - "varbincode", - "wezterm-term", - "zstd", -] - -[[package]] -name = "codespan-reporting" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" -dependencies = [ - "termcolor", - "unicode-width", -] - -[[package]] -name = "color-funcs" -version = "0.1.0" -dependencies = [ - "anyhow", - "config", - "csscolorparser", - "deltae", - "image", - "lazy_static", - "log", - "lru", - "luahelper", - "plist", - "serde", - "serde_json", - "serde_yaml", - "wezterm-dynamic", - "wezterm-term", -] - -[[package]] -name = "color_quant" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" - -[[package]] -name = "colorchoice" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b6a852b24ab71dffc585bcb46eaf7959d175cb865a7152e35b348d1b2960422" - -[[package]] -name = "colored" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbf2150cce219b664a8a70df7a1f933836724b503f8a413af9365b4dcc4d90b8" -dependencies = [ - "lazy_static", - "windows-sys 0.48.0", -] - -[[package]] -name = "colorgrad" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a5f405d474b9d05e0a093d3120e77e9bf26461b57a84b40aa2a221ac5617fb6" -dependencies = [ - "csscolorparser", -] - -[[package]] -name = "com-rs" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf43edc576402991846b093a7ca18a3477e0ef9c588cde84964b5d3e43016642" - -[[package]] -name = "concurrent-queue" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" -dependencies = [ - "crossbeam-utils", -] - -[[package]] -name = "config" -version = "0.1.0" -dependencies = [ - "anyhow", - "bitflags 1.3.2", - "colorgrad", - "dirs-next", - "enum-display-derive", - "env_logger 0.11.3", - "hostname", - "lazy_static", - "libc", - "log", - "luahelper", - "mlua", - "nix", - "notify", - "once_cell", - "ordered-float", - "portable-pty", - "promise", - "serde", - "serde_json", - "shlex", - "smol", - "termwiz", - "toml 0.8.13", - "umask", - "wezterm-bidi", - "wezterm-config-derive", - "wezterm-dynamic", - "wezterm-input-types", - "wezterm-ssh", - "wezterm-term", - "winapi", -] - -[[package]] -name = "core-foundation" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "core-foundation-sys" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" - -[[package]] -name = "core-graphics" -version = "0.23.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c07782be35f9e1140080c6b96f0d44b739e2278479f64e02fdab4e32dfd8b081" -dependencies = [ - "bitflags 1.3.2", - "core-foundation", - "core-graphics-types", - "foreign-types 0.5.0", - "libc", -] - -[[package]] -name = "core-graphics-types" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45390e6114f68f718cc7a830514a96f903cccd70d02a8f6d9f643ac4ba45afaf" -dependencies = [ - "bitflags 1.3.2", - "core-foundation", - "libc", -] - -[[package]] -name = "core-text" -version = "20.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9d2790b5c08465d49f8dc05c8bcae9fea467855947db39b0f8145c091aaced5" -dependencies = [ - "core-foundation", - "core-graphics", - "foreign-types 0.5.0", - "libc", -] - -[[package]] -name = "core2" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b49ba7ef1ad6107f8824dbe97de947cbaac53c44e7f9756a1fba0d37c1eec505" -dependencies = [ - "memchr", -] - -[[package]] -name = "cpufeatures" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" -dependencies = [ - "libc", -] - -[[package]] -name = "crc32fast" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3855a8a784b474f333699ef2bbca9db2c4a1f6d9088a90a2d25b1eb53111eaa" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "criterion" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2b12d017a929603d80db1831cd3a24082f8137ce19c69e6447f54f5fc8d692f" -dependencies = [ - "anes", - "cast", - "ciborium", - "clap", - "criterion-plot", - "is-terminal", - "itertools 0.10.5", - "num-traits", - "once_cell", - "oorandom", - "plotters", - "rayon", - "regex", - "serde", - "serde_derive", - "serde_json", - "tinytemplate", - "walkdir", -] - -[[package]] -name = "criterion-plot" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b50826342786a51a89e2da3a28f1c32b06e387201bc2d19791f622c673706b1" -dependencies = [ - "cast", - "itertools 0.10.5", -] - -[[package]] -name = "crossbeam" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1137cd7e7fc0fb5d3c5a8678be38ec56e819125d8d7907411fe24ccb943faca8" -dependencies = [ - "crossbeam-channel", - "crossbeam-deque", - "crossbeam-epoch", - "crossbeam-queue", - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-channel" -version = "0.5.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33480d6946193aa8033910124896ca395333cae7e2d1113d1fef6c3272217df2" -dependencies = [ - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-deque" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" -dependencies = [ - "crossbeam-epoch", - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-epoch" -version = "0.9.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" -dependencies = [ - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-queue" -version = "0.3.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df0346b5d5e76ac2fe4e327c5fd1118d6be7c51dfb18f9b7922923f287471e35" -dependencies = [ - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-utils" -version = "0.8.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" - -[[package]] -name = "crunchy" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" - -[[package]] -name = "crypto-common" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" -dependencies = [ - "generic-array", - "typenum", -] - -[[package]] -name = "csscolorparser" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb2a7d3066da2de787b7f032c736763eb7ae5d355f81a68bab2675a96008b0bf" -dependencies = [ - "lab", - "phf", -] - -[[package]] -name = "cursor-icon" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96a6ac251f4a2aca6b3f91340350eab87ae57c3f127ffeb585e92bd336717991" - -[[package]] -name = "d3d12" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e16e44ab292b1dddfdaf7be62cfd8877df52f2f3fde5858d95bab606be259f20" -dependencies = [ - "bitflags 2.5.0", - "libloading 0.8.3", - "winapi", -] - -[[package]] -name = "darling" -version = "0.20.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83b2eb4d90d12bdda5ed17de686c2acb4c57914f8f921b8da7e112b5a36f3fe1" -dependencies = [ - "darling_core", - "darling_macro", -] - -[[package]] -name = "darling_core" -version = "0.20.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "622687fe0bac72a04e5599029151f5796111b90f1baaa9b544d807a5e31cd120" -dependencies = [ - "fnv", - "ident_case", - "proc-macro2", - "quote", - "strsim", - "syn 2.0.65", -] - -[[package]] -name = "darling_macro" -version = "0.20.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "733cabb43482b1a1b53eee8583c2b9e8684d592215ea83efd305dd31bc2f0178" -dependencies = [ - "darling_core", - "quote", - "syn 2.0.65", -] - -[[package]] -name = "dary_heap" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7762d17f1241643615821a8455a0b2c3e803784b058693d990b11f2dce25a0ca" - -[[package]] -name = "data-encoding" -version = "2.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8566979429cf69b49a5c740c60791108e86440e8be149bbea4fe54d2c32d6e2" - -[[package]] -name = "deltae" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5729f5117e208430e437df2f4843f5e5952997175992d1414f94c57d61e270b4" - -[[package]] -name = "deranged" -version = "0.3.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" -dependencies = [ - "powerfmt", - "serde", -] - -[[package]] -name = "dhat" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98cd11d84628e233de0ce467de10b8633f4ddaecafadefc86e13b84b8739b827" -dependencies = [ - "backtrace", - "lazy_static", - "mintex", - "parking_lot 0.12.2", - "rustc-hash", - "serde", - "serde_json", - "thousands", -] - -[[package]] -name = "diff" -version = "0.1.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56254986775e3233ffa9c4d7d3faaf6d36a2c09d30b20687e9f88bc8bafc16c8" - -[[package]] -name = "difflib" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6184e33543162437515c2e2b48714794e37845ec9851711914eec9d308f6ebe8" - -[[package]] -name = "digest" -version = "0.10.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" -dependencies = [ - "block-buffer", - "crypto-common", -] - -[[package]] -name = "dirs-next" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1" -dependencies = [ - "cfg-if", - "dirs-sys-next", -] - -[[package]] -name = "dirs-sys-next" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" -dependencies = [ - "libc", - "redox_users", - "winapi", -] - -[[package]] -name = "dlib" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "330c60081dcc4c72131f8eb70510f1ac07223e5d4163db481a04a0befcffa412" -dependencies = [ - "libloading 0.8.3", -] - -[[package]] -name = "doc-comment" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10" - -[[package]] -name = "downcast-rs" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2" - -[[package]] -name = "dwrote" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "439a1c2ba5611ad3ed731280541d36d2e9c4ac5e7fb818a27b604bdc5a6aa65b" -dependencies = [ - "lazy_static", - "libc", - "serde", - "serde_derive", - "winapi", - "wio", -] - -[[package]] -name = "either" -version = "1.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3dca9240753cf90908d7e4aac30f630662b02aebaa1b58a3cadabdb23385b58b" - -[[package]] -name = "embed-resource" -version = "1.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e62abb876c07e4754fae5c14cafa77937841f01740637e17d78dc04352f32a5e" -dependencies = [ - "cc", - "rustc_version", - "toml 0.5.11", - "vswhom", - "winreg 0.10.1", -] - -[[package]] -name = "emojis" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f619a926616ae7149a0d82610b051134a0d6c4ae2962d990c06c847a445c5d9" -dependencies = [ - "phf", -] - -[[package]] -name = "encoding_rs" -version = "0.8.34" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "endi" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3d8a32ae18130a3c84dd492d4215c3d913c3b07c6b63c2eb3eb7ff1101ab7bf" - -[[package]] -name = "enum-display-derive" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f16ef37b2a9b242295d61a154ee91ae884afff6b8b933b486b12481cc58310ca" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "enumflags2" -version = "0.7.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3278c9d5fb675e0a51dabcf4c0d355f692b064171535ba72361be1528a9d8e8d" -dependencies = [ - "enumflags2_derive", - "serde", -] - -[[package]] -name = "enumflags2_derive" -version = "0.7.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c785274071b1b420972453b306eeca06acf4633829db4223b58a2a8c5953bc4" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.65", -] - -[[package]] -name = "env-bootstrap" -version = "0.1.0" -dependencies = [ - "backtrace", - "battery", - "chrono", - "cocoa", - "color-funcs", - "config", - "dirs-next", - "env_logger 0.10.2", - "filesystem", - "lazy_static", - "libc", - "log", - "logging", - "mux-lua", - "objc", - "plugin", - "procinfo-funcs", - "serde-funcs", - "share-data", - "spawn-funcs", - "ssh-funcs", - "termwiz", - "termwiz-funcs", - "time-funcs", - "url-funcs", - "wezterm-version", - "winapi", -] - -[[package]] -name = "env_filter" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a009aa4810eb158359dda09d0c87378e4bbb89b5a801f016885a4707ba24f7ea" -dependencies = [ - "log", - "regex", -] - -[[package]] -name = "env_logger" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cd405aab171cb85d6735e5c8d9db038c17d3ca007a4d2c25f337935c3d90580" -dependencies = [ - "humantime", - "is-terminal", - "log", - "regex", - "termcolor", -] - -[[package]] -name = "env_logger" -version = "0.11.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38b35839ba51819680ba087cd351788c9a3c476841207e0b8cee0b04722343b9" -dependencies = [ - "anstream", - "anstyle", - "env_filter", - "humantime", - "log", -] - -[[package]] -name = "equivalent" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" - -[[package]] -name = "errno" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" -dependencies = [ - "libc", - "windows-sys 0.52.0", -] - -[[package]] -name = "euclid" -version = "0.22.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87f253bc5c813ca05792837a0ff4b3a580336b224512d48f7eda1d7dd9210787" -dependencies = [ - "num-traits", -] - -[[package]] -name = "event-listener" -version = "4.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67b215c49b2b248c855fb73579eb1f4f26c38ffdc12973e20e07b91d78d5646e" -dependencies = [ - "concurrent-queue", - "parking", - "pin-project-lite", -] - -[[package]] -name = "event-listener" -version = "5.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d9944b8ca13534cdfb2800775f8dd4902ff3fc75a50101466decadfdf322a24" -dependencies = [ - "concurrent-queue", - "parking", - "pin-project-lite", -] - -[[package]] -name = "event-listener-strategy" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "958e4d70b6d5e81971bebec42271ec641e7ff4e170a6fa605f2b8a8b65cb97d3" -dependencies = [ - "event-listener 4.0.3", - "pin-project-lite", -] - -[[package]] -name = "event-listener-strategy" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f214dc438f977e6d4e3500aaa277f5ad94ca83fbbd9b1a15713ce2344ccc5a1" -dependencies = [ - "event-listener 5.3.0", - "pin-project-lite", -] - -[[package]] -name = "exr" -version = "1.72.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "887d93f60543e9a9362ef8a21beedd0a833c5d9610e18c67abe15a5963dcb1a4" -dependencies = [ - "bit_field", - "flume", - "half", - "lebe", - "miniz_oxide", - "rayon-core", - "smallvec", - "zune-inflate", -] - -[[package]] -name = "fallible-iterator" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2acce4a10f12dc2fb14a218589d4f1f62ef011b2d0cc4b3cb1bba8e94da14649" - -[[package]] -name = "fallible-streaming-iterator" -version = "0.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7360491ce676a36bf9bb3c56c1aa791658183a54d2744120f27285738d90465a" - -[[package]] -name = "fancy-regex" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b95f7c0680e4142284cf8b22c14a476e87d61b004a3a0861872b32ef7ead40a2" -dependencies = [ - "bit-set", - "regex", -] - -[[package]] -name = "fastrand" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a" - -[[package]] -name = "fdeflate" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f9bfee30e4dedf0ab8b422f03af778d9612b63f502710fc500a334ebe2de645" -dependencies = [ - "simd-adler32", -] - -[[package]] -name = "filedescriptor" -version = "0.8.3" -dependencies = [ - "libc", - "thiserror", - "winapi", -] - -[[package]] -name = "filenamegen" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f40529622e8c4e7c28f600abb501b0ca07047d4e15d576aff1837cca8318ab6" -dependencies = [ - "anyhow", - "bstr", - "regex", - "walkdir", -] - -[[package]] -name = "filesystem" -version = "0.1.0" -dependencies = [ - "anyhow", - "config", - "filenamegen", - "luahelper", - "smol", -] - -[[package]] -name = "filetime" -version = "0.2.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ee447700ac8aa0b2f2bd7bc4462ad686ba06baa6727ac149a2d6277f0d240fd" -dependencies = [ - "cfg-if", - "libc", - "redox_syscall 0.4.1", - "windows-sys 0.52.0", -] - -[[package]] -name = "finl_unicode" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fcfdc7a0362c9f4444381a9e697c79d435fe65b52a37466fc2c1184cee9edc6" - -[[package]] -name = "fixed" -version = "1.27.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fc715d38bea7b5bf487fcd79bcf8c209f0b58014f3018a7a19c2b855f472048" -dependencies = [ - "az", - "bytemuck", - "half", - "typenum", -] - -[[package]] -name = "fixedbitset" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" - -[[package]] -name = "flate2" -version = "1.0.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f54427cfd1c7829e2a139fcefea601bf088ebca651d2bf53ebc600eac295dae" -dependencies = [ - "crc32fast", - "miniz_oxide", -] - -[[package]] -name = "float-cmp" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98de4bbd547a563b716d8dfa9aad1cb19bfab00f4fa09a6a4ed21dbcf44ce9c4" -dependencies = [ - "num-traits", -] - -[[package]] -name = "flume" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55ac459de2512911e4b674ce33cf20befaba382d05b62b008afc1c8b57cbf181" -dependencies = [ - "futures-core", - "futures-sink", - "nanorand", - "spin", -] - -[[package]] -name = "fnv" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" - -[[package]] -name = "fontconfig" -version = "0.1.0" -dependencies = [ - "libc", - "pkg-config", -] - -[[package]] -name = "foreign-types" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" -dependencies = [ - "foreign-types-shared 0.1.1", -] - -[[package]] -name = "foreign-types" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965" -dependencies = [ - "foreign-types-macros", - "foreign-types-shared 0.3.1", -] - -[[package]] -name = "foreign-types-macros" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.65", -] - -[[package]] -name = "foreign-types-shared" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" - -[[package]] -name = "foreign-types-shared" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b" - -[[package]] -name = "form_urlencoded" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" -dependencies = [ - "percent-encoding", -] - -[[package]] -name = "frecency" -version = "0.1.0" -dependencies = [ - "chrono", - "serde", - "serde_json", - "serde_with", -] - -[[package]] -name = "freetype" -version = "0.1.0" -dependencies = [ - "cc", - "fixed", -] - -[[package]] -name = "fsevent-sys" -version = "4.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76ee7a02da4d231650c7cea31349b889be2f45ddb3ef3032d2ec8185f6313fd2" -dependencies = [ - "libc", -] - -[[package]] -name = "futures" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0" -dependencies = [ - "futures-channel", - "futures-core", - "futures-executor", - "futures-io", - "futures-sink", - "futures-task", - "futures-util", -] - -[[package]] -name = "futures-channel" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" -dependencies = [ - "futures-core", - "futures-sink", -] - -[[package]] -name = "futures-core" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" - -[[package]] -name = "futures-executor" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" -dependencies = [ - "futures-core", - "futures-task", - "futures-util", -] - -[[package]] -name = "futures-io" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" - -[[package]] -name = "futures-lite" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52527eb5074e35e9339c6b4e8d12600c7128b68fb25dcb9fa9dec18f7c25f3a5" -dependencies = [ - "fastrand", - "futures-core", - "futures-io", - "parking", - "pin-project-lite", -] - -[[package]] -name = "futures-macro" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.65", -] - -[[package]] -name = "futures-sink" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" - -[[package]] -name = "futures-task" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" - -[[package]] -name = "futures-timer" -version = "3.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24" - -[[package]] -name = "futures-util" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" -dependencies = [ - "futures-channel", - "futures-core", - "futures-io", - "futures-macro", - "futures-sink", - "futures-task", - "memchr", - "pin-project-lite", - "pin-utils", - "slab", -] - -[[package]] -name = "fuzzy-matcher" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54614a3312934d066701a80f20f15fa3b56d67ac7722b39eea5b4c9dd1d66c94" -dependencies = [ - "thread_local", -] - -[[package]] -name = "generate-bidi" -version = "0.1.0" -dependencies = [ - "anyhow", -] - -[[package]] -name = "generic-array" -version = "0.14.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" -dependencies = [ - "typenum", - "version_check", -] - -[[package]] -name = "gethostname" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0176e0459c2e4a1fe232f984bca6890e681076abb9934f6cea7c326f3fc47818" -dependencies = [ - "libc", - "windows-targets 0.48.5", -] - -[[package]] -name = "getrandom" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" -dependencies = [ - "cfg-if", - "js-sys", - "libc", - "wasi", - "wasm-bindgen", -] - -[[package]] -name = "gif" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fb2d69b19215e18bb912fa30f7ce15846e301408695e44e0ef719f1da9e19f2" -dependencies = [ - "color_quant", - "weezl", -] - -[[package]] -name = "gimli" -version = "0.28.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" - -[[package]] -name = "git2" -version = "0.18.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "232e6a7bfe35766bf715e55a88b39a700596c0ccfd88cd3680b4cdb40d66ef70" -dependencies = [ - "bitflags 2.5.0", - "libc", - "libgit2-sys", - "log", - "openssl-probe", - "openssl-sys", - "url", -] - -[[package]] -name = "gl_generator" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a95dfc23a2b4a9a2f5ab41d194f8bfda3cabec42af4e39f08c339eb2a0c124d" -dependencies = [ - "khronos_api", - "log", - "xml-rs", -] - -[[package]] -name = "glium" -version = "0.34.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94d5813c960a54b76e20fe4ef7e54fbeb12545776a11ecf14f42a946a1c65964" -dependencies = [ - "backtrace", - "fnv", - "gl_generator", - "lazy_static", - "memoffset", - "smallvec", - "takeable-option", -] - -[[package]] -name = "glob" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" - -[[package]] -name = "globset" -version = "0.4.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57da3b9b5b85bd66f31093f8c408b90a74431672542466497dcbdfdc02034be1" -dependencies = [ - "aho-corasick", - "bstr", - "log", - "regex-automata", - "regex-syntax", -] - -[[package]] -name = "globwalk" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bf760ebf69878d9fd8f110c89703d90ce35095324d1f1edcb595c63945ee757" -dependencies = [ - "bitflags 2.5.0", - "ignore", - "walkdir", -] - -[[package]] -name = "glow" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd348e04c43b32574f2de31c8bb397d96c9fcfa1371bd4ca6d8bdc464ab121b1" -dependencies = [ - "js-sys", - "slotmap", - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "glutin_wgl_sys" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c8098adac955faa2d31079b65dc48841251f69efd3ac25477903fc424362ead" -dependencies = [ - "gl_generator", -] - -[[package]] -name = "governor" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c390a940a5d157878dd057c78680a33ce3415bcd05b4799509ea44210914b4d5" -dependencies = [ - "cfg-if", - "futures", - "futures-timer", - "no-std-compat", - "nonzero_ext", - "parking_lot 0.12.2", - "smallvec", -] - -[[package]] -name = "gpu-alloc" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbcd2dba93594b227a1f57ee09b8b9da8892c34d55aa332e034a228d0fe6a171" -dependencies = [ - "bitflags 2.5.0", - "gpu-alloc-types", -] - -[[package]] -name = "gpu-alloc-types" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98ff03b468aa837d70984d55f5d3f846f6ec31fe34bbb97c4f85219caeee1ca4" -dependencies = [ - "bitflags 2.5.0", -] - -[[package]] -name = "gpu-allocator" -version = "0.23.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40fe17c8a05d60c38c0a4e5a3c802f2f1ceb66b76c67d96ffb34bef0475a7fad" -dependencies = [ - "backtrace", - "log", - "presser", - "thiserror", - "winapi", - "windows 0.51.1", -] - -[[package]] -name = "gpu-descriptor" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc11df1ace8e7e564511f53af41f3e42ddc95b56fd07b3f4445d2a6048bc682c" -dependencies = [ - "bitflags 2.5.0", - "gpu-descriptor-types", - "hashbrown 0.14.5", -] - -[[package]] -name = "gpu-descriptor-types" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6bf0b36e6f090b7e1d8a4b49c0cb81c1f8376f72198c65dd3ad9ff3556b8b78c" -dependencies = [ - "bitflags 2.5.0", -] - -[[package]] -name = "guillotiere" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b62d5865c036cb1393e23c50693df631d3f5d7bcca4c04fe4cc0fd592e74a782" -dependencies = [ - "euclid", - "svg_fmt", -] - -[[package]] -name = "h2" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa82e28a107a8cc405f0839610bdc9b15f1e25ec7d696aa5cf173edbcb1486ab" -dependencies = [ - "atomic-waker", - "bytes", - "fnv", - "futures-core", - "futures-sink", - "http", - "indexmap 2.2.6", - "slab", - "tokio", - "tokio-util", - "tracing", -] - -[[package]] -name = "half" -version = "2.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6dd08c532ae367adf81c312a4580bc67f1d0fe8bc9c460520283f4c0ff277888" -dependencies = [ - "cfg-if", - "crunchy", -] - -[[package]] -name = "harfbuzz" -version = "0.1.0" -dependencies = [ - "cc", - "freetype", -] - -[[package]] -name = "hashbrown" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" - -[[package]] -name = "hashbrown" -version = "0.14.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" -dependencies = [ - "ahash", - "allocator-api2", -] - -[[package]] -name = "hashlink" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8094feaf31ff591f651a2664fb9cfd92bba7a60ce3197265e9482ebe753c8f7" -dependencies = [ - "hashbrown 0.14.5", -] - -[[package]] -name = "hassle-rs" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1397650ee315e8891a0df210707f0fc61771b0cc518c3023896064c5407cb3b0" -dependencies = [ - "bitflags 1.3.2", - "com-rs", - "libc", - "libloading 0.7.4", - "thiserror", - "widestring", - "winapi", -] - -[[package]] -name = "hdrhistogram" -version = "7.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "765c9198f173dd59ce26ff9f95ef0aafd0a0fe01fb9d72841bc5066a4c06511d" -dependencies = [ - "base64 0.21.7", - "byteorder", - "crossbeam-channel", - "flate2", - "nom", - "num-traits", -] - -[[package]] -name = "heck" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" - -[[package]] -name = "hermit-abi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" - -[[package]] -name = "hex" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" - -[[package]] -name = "hexf-parse" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfa686283ad6dd069f105e5ab091b04c62850d3e4cf5d67debad1933f55023df" - -[[package]] -name = "home" -version = "0.5.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5" -dependencies = [ - "windows-sys 0.52.0", -] - -[[package]] -name = "hostname" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9c7c7c8ac16c798734b8a24560c1362120597c40d5e1459f09498f8f6c8f2ba" -dependencies = [ - "cfg-if", - "libc", - "windows 0.52.0", -] - -[[package]] -name = "http" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" -dependencies = [ - "bytes", - "fnv", - "itoa", -] - -[[package]] -name = "http-body" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cac85db508abc24a2e48553ba12a996e87244a0395ce011e62b37158745d643" -dependencies = [ - "bytes", - "http", -] - -[[package]] -name = "http-body-util" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0475f8b2ac86659c21b64320d5d653f9efe42acd2a4e560073ec61a155a34f1d" -dependencies = [ - "bytes", - "futures-core", - "http", - "http-body", - "pin-project-lite", -] - -[[package]] -name = "http_req" -version = "0.10.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d9a9b34d2d0a2440774af1b1c09b045fe82ccdc4f4f37d089fbc4cc8a03104e" -dependencies = [ - "native-tls", - "unicase", -] - -[[package]] -name = "httparse" -version = "1.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" - -[[package]] -name = "humansize" -version = "2.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6cb51c9a029ddc91b07a787f1d86b53ccfa49b0e86688c946ebe8d3555685dd7" -dependencies = [ - "libm", -] - -[[package]] -name = "humantime" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" - -[[package]] -name = "hyper" -version = "1.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe575dd17d0862a9a33781c8c4696a55c320909004a67a00fb286ba8b1bc496d" -dependencies = [ - "bytes", - "futures-channel", - "futures-util", - "h2", - "http", - "http-body", - "httparse", - "itoa", - "pin-project-lite", - "smallvec", - "tokio", - "want", -] - -[[package]] -name = "hyper-tls" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" -dependencies = [ - "bytes", - "http-body-util", - "hyper", - "hyper-util", - "native-tls", - "tokio", - "tokio-native-tls", - "tower-service", -] - -[[package]] -name = "hyper-util" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca38ef113da30126bbff9cd1705f9273e15d45498615d138b0c20279ac7a76aa" -dependencies = [ - "bytes", - "futures-channel", - "futures-util", - "http", - "http-body", - "hyper", - "pin-project-lite", - "socket2", - "tokio", - "tower", - "tower-service", - "tracing", -] - -[[package]] -name = "iana-time-zone" -version = "0.1.60" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141" -dependencies = [ - "android_system_properties", - "core-foundation-sys", - "iana-time-zone-haiku", - "js-sys", - "wasm-bindgen", - "windows-core 0.52.0", -] - -[[package]] -name = "iana-time-zone-haiku" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" -dependencies = [ - "cc", -] - -[[package]] -name = "ident_case" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" - -[[package]] -name = "idna" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" -dependencies = [ - "unicode-bidi", - "unicode-normalization", -] - -[[package]] -name = "ignore" -version = "0.4.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b46810df39e66e925525d6e38ce1e7f6e1d208f72dc39757880fcb66e2c58af1" -dependencies = [ - "crossbeam-deque", - "globset", - "log", - "memchr", - "regex-automata", - "same-file", - "walkdir", - "winapi-util", -] - -[[package]] -name = "image" -version = "0.25.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd54d660e773627692c524beaad361aca785a4f9f5730ce91f42aabe5bce3d11" -dependencies = [ - "bytemuck", - "byteorder", - "color_quant", - "exr", - "gif", - "image-webp", - "num-traits", - "png", - "qoi", - "ravif", - "rayon", - "rgb", - "tiff", - "zune-core", - "zune-jpeg", -] - -[[package]] -name = "image-webp" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d730b085583c4d789dfd07fdcf185be59501666a90c97c40162b37e4fdad272d" -dependencies = [ - "byteorder-lite", - "thiserror", -] - -[[package]] -name = "imgref" -version = "1.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44feda355f4159a7c757171a77de25daf6411e217b4cabd03bd6650690468126" - -[[package]] -name = "indexmap" -version = "1.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" -dependencies = [ - "autocfg", - "hashbrown 0.12.3", - "serde", -] - -[[package]] -name = "indexmap" -version = "2.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" -dependencies = [ - "equivalent", - "hashbrown 0.14.5", -] - -[[package]] -name = "inotify" -version = "0.9.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8069d3ec154eb856955c1c0fbffefbf5f3c40a104ec912d4797314c1801abff" -dependencies = [ - "bitflags 1.3.2", - "inotify-sys", - "libc", -] - -[[package]] -name = "inotify-sys" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e05c02b5e89bff3b946cedeca278abc628fe811e604f027c45a8aa3cf793d0eb" -dependencies = [ - "libc", -] - -[[package]] -name = "instant" -version = "0.1.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "interpolate_name" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c34819042dc3d3971c46c2190835914dfbe0c3c13f61449b2997f4e9722dfa60" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.65", -] - -[[package]] -name = "intrusive-collections" -version = "0.9.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b694dc9f70c3bda874626d2aed13b780f137aab435f4e9814121955cf706122e" -dependencies = [ - "memoffset", -] - -[[package]] -name = "io-lifetimes" -version = "1.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" -dependencies = [ - "hermit-abi", - "libc", - "windows-sys 0.48.0", -] - -[[package]] -name = "ioctl-rs" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7970510895cee30b3e9128319f2cefd4bde883a39f38baa279567ba3a7eb97d" -dependencies = [ - "libc", -] - -[[package]] -name = "ipnet" -version = "2.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" - -[[package]] -name = "is-terminal" -version = "0.4.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f23ff5ef2b80d608d61efee834934d862cd92461afc0560dedf493e4c033738b" -dependencies = [ - "hermit-abi", - "libc", - "windows-sys 0.52.0", -] - -[[package]] -name = "is_terminal_polyfill" -version = "1.70.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8478577c03552c21db0e2724ffb8986a5ce7af88107e6be5d2ee6e158c12800" - -[[package]] -name = "itertools" -version = "0.10.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" -dependencies = [ - "either", -] - -[[package]] -name = "itertools" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" -dependencies = [ - "either", -] - -[[package]] -name = "itoa" -version = "1.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" - -[[package]] -name = "jobserver" -version = "0.1.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2b099aaa34a9751c5bf0878add70444e1ed2dd73f347be99003d4577277de6e" -dependencies = [ - "libc", -] - -[[package]] -name = "jpeg-decoder" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5d4a7da358eff58addd2877a45865158f0d78c911d43a5784ceb7bbf52833b0" - -[[package]] -name = "js-sys" -version = "0.3.69" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d" -dependencies = [ - "wasm-bindgen", -] - -[[package]] -name = "k9" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "088bcebb5b68b1b14b64d7f05b0f802719250b97fdc0338ec42529ea777ed614" -dependencies = [ - "anyhow", - "colored", - "diff", - "lazy_static", - "libc", - "proc-macro2", - "regex", - "syn 2.0.65", - "terminal_size 0.2.6", -] - -[[package]] -name = "khronos-egl" -version = "6.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6aae1df220ece3c0ada96b8153459b67eebe9ae9212258bb0134ae60416fdf76" -dependencies = [ - "libc", - "libloading 0.8.3", - "pkg-config", -] - -[[package]] -name = "khronos_api" -version = "3.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2db585e1d738fc771bf08a151420d3ed193d9d895a36df7f6f8a9456b911ddc" - -[[package]] -name = "kqueue" -version = "1.0.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7447f1ca1b7b563588a205fe93dea8df60fd981423a768bc1c0ded35ed147d0c" -dependencies = [ - "kqueue-sys", - "libc", -] - -[[package]] -name = "kqueue-sys" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed9625ffda8729b85e45cf04090035ac368927b8cebc34898e7c120f52e4838b" -dependencies = [ - "bitflags 1.3.2", - "libc", -] - -[[package]] -name = "lab" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf36173d4167ed999940f804952e6b08197cae5ad5d572eb4db150ce8ad5d58f" - -[[package]] -name = "lazy_static" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" - -[[package]] -name = "lazycell" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" - -[[package]] -name = "leb128" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "884e2677b40cc8c339eaefcb701c32ef1fd2493d71118dc0ca4b6a736c93bd67" - -[[package]] -name = "lebe" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03087c2bad5e1034e8cace5926dec053fb3790248370865f5117a7d0213354c8" - -[[package]] -name = "lfucache" -version = "0.1.0" -dependencies = [ - "ahash", - "config", - "fnv", - "intrusive-collections", - "k9", - "metrics", -] - -[[package]] -name = "libc" -version = "0.2.155" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" - -[[package]] -name = "libflate" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45d9dfdc14ea4ef0900c1cddbc8dcd553fbaacd8a4a282cf4018ae9dd04fb21e" -dependencies = [ - "adler32", - "core2", - "crc32fast", - "dary_heap", - "libflate_lz77", -] - -[[package]] -name = "libflate_lz77" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6e0d73b369f386f1c44abd9c570d5318f55ccde816ff4b562fa452e5182863d" -dependencies = [ - "core2", - "hashbrown 0.14.5", - "rle-decode-fast", -] - -[[package]] -name = "libfuzzer-sys" -version = "0.4.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a96cfd5557eb82f2b83fed4955246c988d331975a002961b07c81584d107e7f7" -dependencies = [ - "arbitrary", - "cc", - "once_cell", -] - -[[package]] -name = "libgit2-sys" -version = "0.16.2+1.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee4126d8b4ee5c9d9ea891dd875cfdc1e9d0950437179104b183d7d8a74d24e8" -dependencies = [ - "cc", - "libc", - "libz-sys", - "openssl-sys", - "pkg-config", -] - -[[package]] -name = "libloading" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f" -dependencies = [ - "cfg-if", - "winapi", -] - -[[package]] -name = "libloading" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c2a198fb6b0eada2a8df47933734e6d35d350665a33a3593d7164fa52c75c19" -dependencies = [ - "cfg-if", - "windows-targets 0.52.5", -] - -[[package]] -name = "libm" -version = "0.2.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" - -[[package]] -name = "libredox" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" -dependencies = [ - "bitflags 2.5.0", - "libc", -] - -[[package]] -name = "libsqlite3-sys" -version = "0.27.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf4e226dcd58b4be396f7bd3c20da8fdee2911400705297ba7d2d7cc2c30f716" -dependencies = [ - "cc", - "pkg-config", - "vcpkg", -] - -[[package]] -name = "libssh-rs" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d46682cfd8dc53c52471cfed5eedcc9248c318f3c8df174ec1b8c4f41565f98" -dependencies = [ - "bitflags 1.3.2", - "libc", - "libssh-rs-sys", - "openssl-sys", - "thiserror", -] - -[[package]] -name = "libssh-rs-sys" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "205ceca5947f473c76f34175de70b15d9e8fadbbdb1bba45d4973037bbdb5fc7" -dependencies = [ - "cc", - "libz-sys", - "openssl-sys", - "pkg-config", -] - -[[package]] -name = "libssh2-sys" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dc8a030b787e2119a731f1951d6a773e2280c660f8ec4b0f5e1505a386e71ee" -dependencies = [ - "cc", - "libc", - "libz-sys", - "openssl-sys", - "pkg-config", - "vcpkg", -] - -[[package]] -name = "libz-sys" -version = "1.1.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e143b5e666b2695d28f6bca6497720813f699c9602dd7f5cac91008b8ada7f9" -dependencies = [ - "cc", - "libc", - "pkg-config", - "vcpkg", -] - -[[package]] -name = "line-wrap" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd1bc4d24ad230d21fb898d1116b1801d7adfc449d42026475862ab48b11e70e" - -[[package]] -name = "line_drawing" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15cb10f27ad3eac84fdb70f0ea6dfe3bc33f7d6f3aa575f32d1ced3a342049a1" -dependencies = [ - "num-traits", -] - -[[package]] -name = "linux-raw-sys" -version = "0.3.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" - -[[package]] -name = "linux-raw-sys" -version = "0.4.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" - -[[package]] -name = "lock_api" -version = "0.4.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" -dependencies = [ - "autocfg", - "scopeguard", -] - -[[package]] -name = "log" -version = "0.4.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c" - -[[package]] -name = "logging" -version = "0.1.0" -dependencies = [ - "anyhow", - "config", - "log", - "luahelper", -] - -[[package]] -name = "loop9" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fae87c125b03c1d2c0150c90365d7d6bcc53fb73a9acaef207d2d065860f062" -dependencies = [ - "imgref", -] - -[[package]] -name = "lru" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3262e75e648fce39813cb56ac41f3c3e3f65217ebf3844d818d1f9398cfb0dc" -dependencies = [ - "hashbrown 0.14.5", -] - -[[package]] -name = "lua-src" -version = "546.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2da0daa7eee611a4c30c8f5ee31af55266e26e573971ba9336d2993e2da129b2" -dependencies = [ - "cc", -] - -[[package]] -name = "luahelper" -version = "0.1.0" -dependencies = [ - "bstr", - "log", - "mlua", - "wezterm-dynamic", -] - -[[package]] -name = "luajit-src" -version = "210.5.8+5790d25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "441f18d9ad792e871fc2f7f2cb8902c386f6f56fdbddef3b835b61475e375346" -dependencies = [ - "cc", - "which", -] - -[[package]] -name = "mac_address" -version = "1.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aa12182b93606fff55b70a5cfe6130eaf7407c2ea4f2c2bcc8b113b67c9928f" -dependencies = [ - "nix", - "winapi", -] - -[[package]] -name = "mach2" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19b955cdeb2a02b9117f121ce63aa52d08ade45de53e48fe6a38b39c10f6f709" -dependencies = [ - "libc", -] - -[[package]] -name = "malloc_buf" -version = "0.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb" -dependencies = [ - "libc", -] - -[[package]] -name = "maplit" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d" - -[[package]] -name = "maybe-rayon" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ea1f30cedd69f0a2954655f7188c6a834246d2bcf1e315e2ac40c4b24dc9519" -dependencies = [ - "cfg-if", - "rayon", -] - -[[package]] -name = "memchr" -version = "2.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d" - -[[package]] -name = "memmap2" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43a5a03cefb0d953ec0be133036f14e109412fa594edc2f77227249db66cc3ed" -dependencies = [ - "libc", -] - -[[package]] -name = "memmap2" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe751422e4a8caa417e13c3ea66452215d7d63e19e604f4980461212f3ae1322" -dependencies = [ - "libc", -] - -[[package]] -name = "memmem" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a64a92489e2744ce060c349162be1c5f33c6969234104dbd99ddb5feb08b8c15" - -[[package]] -name = "memoffset" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a" -dependencies = [ - "autocfg", -] - -[[package]] -name = "metal" -version = "0.27.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c43f73953f8cbe511f021b58f18c3ce1c3d1ae13fe953293e13345bf83217f25" -dependencies = [ - "bitflags 2.5.0", - "block", - "core-graphics-types", - "foreign-types 0.5.0", - "log", - "objc", - "paste", -] - -[[package]] -name = "metrics" -version = "0.22.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2be3cbd384d4e955b231c895ce10685e3d8260c5ccffae898c96c723b0772835" -dependencies = [ - "ahash", - "portable-atomic", -] - -[[package]] -name = "mime" -version = "0.3.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" - -[[package]] -name = "minimal-lexical" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" - -[[package]] -name = "miniz_oxide" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87dfd01fe195c66b572b37921ad8803d010623c0aca821bea2302239d155cdae" -dependencies = [ - "adler", - "simd-adler32", -] - -[[package]] -name = "mintex" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9bec4598fddb13cc7b528819e697852653252b760f1228b7642679bf2ff2cd07" - -[[package]] -name = "mio" -version = "0.8.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c" -dependencies = [ - "libc", - "log", - "wasi", - "windows-sys 0.48.0", -] - -[[package]] -name = "mlua" -version = "0.9.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e340c022072f3208a4105458286f4985ba5355bfe243c3073afe45cbe9ecf491" -dependencies = [ - "bstr", - "futures-util", - "mlua-sys", - "num-traits", - "once_cell", - "rustc-hash", -] - -[[package]] -name = "mlua-sys" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5552e7e4e22ada0463dfdeee6caf6dc057a189fdc83136408a8f950a5e5c5540" -dependencies = [ - "cc", - "cfg-if", - "lua-src", - "luajit-src", - "pkg-config", -] - -[[package]] -name = "mux" -version = "0.1.0" -dependencies = [ - "anyhow", - "async-trait", - "base64 0.21.7", - "bintree", - "bitflags 1.3.2", - "chrono", - "config", - "crossbeam", - "downcast-rs", - "fancy-regex", - "filedescriptor", - "finl_unicode", - "hostname", - "k9", - "lazy_static", - "libc", - "log", - "luahelper", - "metrics", - "mlua", - "names", - "nix", - "ntapi", - "parking_lot 0.12.2", - "percent-encoding", - "portable-pty", - "procinfo", - "promise", - "rangeset", - "serde", - "serial", - "shell-words", - "smol", - "terminfo", - "termwiz", - "termwiz-funcs", - "textwrap", - "thiserror", - "url", - "wezterm-dynamic", - "wezterm-ssh", - "wezterm-term", - "winapi", -] - -[[package]] -name = "mux-lua" -version = "0.1.0" -dependencies = [ - "anyhow", - "config", - "libc", - "log", - "luahelper", - "mux", - "parking_lot 0.12.2", - "portable-pty", - "smol", - "termwiz", - "termwiz-funcs", - "url-funcs", - "wezterm-dynamic", - "wezterm-term", -] - -[[package]] -name = "naga" -version = "0.14.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae585df4b6514cf8842ac0f1ab4992edc975892704835b549cf818dc0191249e" -dependencies = [ - "bit-set", - "bitflags 2.5.0", - "codespan-reporting", - "hexf-parse", - "indexmap 2.2.6", - "log", - "num-traits", - "rustc-hash", - "spirv", - "termcolor", - "thiserror", - "unicode-xid", -] - -[[package]] -name = "names" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10a8690bf09abf659851e58cd666c3d37ac6af07c2bd7a9e332cfba471715775" -dependencies = [ - "rand", -] - -[[package]] -name = "nanorand" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a51313c5820b0b02bd422f4b44776fbf47961755c74ce64afc73bfad10226c3" -dependencies = [ - "getrandom", -] - -[[package]] -name = "native-tls" -version = "0.2.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e" -dependencies = [ - "lazy_static", - "libc", - "log", - "openssl", - "openssl-probe", - "openssl-sys", - "schannel", - "security-framework", - "security-framework-sys", - "tempfile", -] - -[[package]] -name = "new_debug_unreachable" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" - -[[package]] -name = "nix" -version = "0.28.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab2156c4fce2f8df6c499cc1c763e4394b7482525bf2a9701c9d79d215f519e4" -dependencies = [ - "bitflags 2.5.0", - "cfg-if", - "cfg_aliases", - "libc", - "memoffset", -] - -[[package]] -name = "no-std-compat" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b93853da6d84c2e3c7d730d6473e8817692dd89be387eb01b94d7f108ecb5b8c" - -[[package]] -name = "nom" -version = "7.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" -dependencies = [ - "memchr", - "minimal-lexical", -] - -[[package]] -name = "nonzero_ext" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38bf9645c8b145698bb0b18a4637dcacbc421ea49bef2317e4fd8065a387cf21" - -[[package]] -name = "noop_proc_macro" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0676bb32a98c1a483ce53e500a81ad9c3d5b3f7c920c28c24e9cb0980d0b5bc8" - -[[package]] -name = "normalize-line-endings" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be" - -[[package]] -name = "notify" -version = "5.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "729f63e1ca555a43fe3efa4f3efdf4801c479da85b432242a7b726f353c88486" -dependencies = [ - "bitflags 1.3.2", - "crossbeam-channel", - "filetime", - "fsevent-sys", - "inotify", - "kqueue", - "libc", - "mio", - "walkdir", - "windows-sys 0.45.0", -] - -[[package]] -name = "ntapi" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8a3895c6391c39d7fe7ebc444a87eb2991b2a0bc718fdabd071eec617fc68e4" -dependencies = [ - "winapi", -] - -[[package]] -name = "num" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35bd024e8b2ff75562e5f34e7f4905839deb4b22955ef5e73d2fea1b9813cb23" -dependencies = [ - "num-bigint", - "num-complex", - "num-integer", - "num-iter", - "num-rational", - "num-traits", -] - -[[package]] -name = "num-bigint" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c165a9ab64cf766f73521c0dd2cfdff64f488b8f0b3e621face3462d3db536d7" -dependencies = [ - "num-integer", - "num-traits", -] - -[[package]] -name = "num-complex" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495" -dependencies = [ - "num-traits", -] - -[[package]] -name = "num-conv" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" - -[[package]] -name = "num-derive" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.65", -] - -[[package]] -name = "num-integer" -version = "0.1.46" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" -dependencies = [ - "num-traits", -] - -[[package]] -name = "num-iter" -version = "0.1.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf" -dependencies = [ - "autocfg", - "num-integer", - "num-traits", -] - -[[package]] -name = "num-rational" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824" -dependencies = [ - "num-bigint", - "num-integer", - "num-traits", -] - -[[package]] -name = "num-traits" -version = "0.2.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" -dependencies = [ - "autocfg", -] - -[[package]] -name = "num_cpus" -version = "1.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" -dependencies = [ - "hermit-abi", - "libc", -] - -[[package]] -name = "objc" -version = "0.2.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1" -dependencies = [ - "malloc_buf", - "objc_exception", -] - -[[package]] -name = "objc_exception" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad970fb455818ad6cba4c122ad012fae53ae8b4795f86378bce65e4f6bab2ca4" -dependencies = [ - "cc", -] - -[[package]] -name = "object" -version = "0.32.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441" -dependencies = [ - "memchr", -] - -[[package]] -name = "once_cell" -version = "1.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" - -[[package]] -name = "oorandom" -version = "11.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ab1bc2a289d34bd04a330323ac98a1b4bc82c9d9fcb1e66b63caa84da26b575" - -[[package]] -name = "openssl" -version = "0.10.64" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95a0481286a310808298130d22dd1fef0fa571e05a8f44ec801801e84b216b1f" -dependencies = [ - "bitflags 2.5.0", - "cfg-if", - "foreign-types 0.3.2", - "libc", - "once_cell", - "openssl-macros", - "openssl-sys", -] - -[[package]] -name = "openssl-macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.65", -] - -[[package]] -name = "openssl-probe" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" - -[[package]] -name = "openssl-src" -version = "300.2.3+3.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cff92b6f71555b61bb9315f7c64da3ca43d87531622120fea0195fc761b4843" -dependencies = [ - "cc", -] - -[[package]] -name = "openssl-sys" -version = "0.9.102" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c597637d56fbc83893a35eb0dd04b2b8e7a50c91e64e9493e398b5df4fb45fa2" -dependencies = [ - "cc", - "libc", - "openssl-src", - "pkg-config", - "vcpkg", -] - -[[package]] -name = "ordered-float" -version = "4.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a76df7075c7d4d01fdcb46c912dd17fba5b60c78ea480b475f2b6ab6f666584e" -dependencies = [ - "num-traits", - "rand", - "serde", -] - -[[package]] -name = "ordered-stream" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9aa2b01e1d916879f73a53d01d1d6cee68adbb31d6d9177a8cfce093cced1d50" -dependencies = [ - "futures-core", - "pin-project-lite", -] - -[[package]] -name = "parking" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae" - -[[package]] -name = "parking_lot" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" -dependencies = [ - "instant", - "lock_api", - "parking_lot_core 0.8.6", -] - -[[package]] -name = "parking_lot" -version = "0.12.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e4af0ca4f6caed20e900d564c242b8e5d4903fdacf31d3daf527b66fe6f42fb" -dependencies = [ - "lock_api", - "parking_lot_core 0.9.10", -] - -[[package]] -name = "parking_lot_core" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc" -dependencies = [ - "cfg-if", - "instant", - "libc", - "redox_syscall 0.2.16", - "smallvec", - "winapi", -] - -[[package]] -name = "parking_lot_core" -version = "0.9.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" -dependencies = [ - "cfg-if", - "libc", - "redox_syscall 0.5.1", - "smallvec", - "windows-targets 0.52.5", -] - -[[package]] -name = "paste" -version = "1.0.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" - -[[package]] -name = "pem" -version = "3.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e459365e590736a54c3fa561947c84837534b8e9af6fc5bf781307e82658fae" -dependencies = [ - "base64 0.22.1", - "serde", -] - -[[package]] -name = "percent-encoding" -version = "2.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" - -[[package]] -name = "pest" -version = "2.7.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "560131c633294438da9f7c4b08189194b20946c8274c6b9e38881a7874dc8ee8" -dependencies = [ - "memchr", - "thiserror", - "ucd-trie", -] - -[[package]] -name = "pest_derive" -version = "2.7.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26293c9193fbca7b1a3bf9b79dc1e388e927e6cacaa78b4a3ab705a1d3d41459" -dependencies = [ - "pest", - "pest_generator", -] - -[[package]] -name = "pest_generator" -version = "2.7.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ec22af7d3fb470a85dd2ca96b7c577a1eb4ef6f1683a9fe9a8c16e136c04687" -dependencies = [ - "pest", - "pest_meta", - "proc-macro2", - "quote", - "syn 2.0.65", -] - -[[package]] -name = "pest_meta" -version = "2.7.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7a240022f37c361ec1878d646fc5b7d7c4d28d5946e1a80ad5a7a4f4ca0bdcd" -dependencies = [ - "once_cell", - "pest", - "sha2", -] - -[[package]] -name = "phf" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc" -dependencies = [ - "phf_macros", - "phf_shared", -] - -[[package]] -name = "phf_codegen" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8d39688d359e6b34654d328e262234662d16cc0f60ec8dcbe5e718709342a5a" -dependencies = [ - "phf_generator", - "phf_shared", -] - -[[package]] -name = "phf_generator" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0" -dependencies = [ - "phf_shared", - "rand", -] - -[[package]] -name = "phf_macros" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3444646e286606587e49f3bcf1679b8cef1dc2c5ecc29ddacaffc305180d464b" -dependencies = [ - "phf_generator", - "phf_shared", - "proc-macro2", - "quote", - "syn 2.0.65", -] - -[[package]] -name = "phf_shared" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b" -dependencies = [ - "siphasher", -] - -[[package]] -name = "pin-project" -version = "1.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3" -dependencies = [ - "pin-project-internal", -] - -[[package]] -name = "pin-project-internal" -version = "1.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.65", -] - -[[package]] -name = "pin-project-lite" -version = "0.2.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" - -[[package]] -name = "pin-utils" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" - -[[package]] -name = "piper" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "464db0c665917b13ebb5d453ccdec4add5658ee1adc7affc7677615356a8afaf" -dependencies = [ - "atomic-waker", - "fastrand", - "futures-io", -] - -[[package]] -name = "pkg-config" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" - -[[package]] -name = "plist" -version = "1.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9d34169e64b3c7a80c8621a48adaf44e0cf62c78a9b25dd9dd35f1881a17cf9" -dependencies = [ - "base64 0.21.7", - "indexmap 2.2.6", - "line-wrap", - "quick-xml 0.31.0", - "serde", - "time", -] - -[[package]] -name = "plotters" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2c224ba00d7cadd4d5c660deaf2098e5e80e07846537c51f9cfa4be50c1fd45" -dependencies = [ - "num-traits", - "plotters-backend", - "plotters-svg", - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "plotters-backend" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e76628b4d3a7581389a35d5b6e2139607ad7c75b17aed325f210aa91f4a9609" - -[[package]] -name = "plotters-svg" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38f6d39893cca0701371e3c27294f09797214b86f1fb951b89ade8ec04e2abab" -dependencies = [ - "plotters-backend", -] - -[[package]] -name = "plugin" -version = "0.1.0" -dependencies = [ - "anyhow", - "config", - "git2", - "log", - "luahelper", - "tempfile", - "wezterm-dynamic", -] - -[[package]] -name = "png" -version = "0.17.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06e4b0d3d1312775e782c86c91a111aa1f910cbb65e1337f9975b5f9a554b5e1" -dependencies = [ - "bitflags 1.3.2", - "crc32fast", - "fdeflate", - "flate2", - "miniz_oxide", -] - -[[package]] -name = "polling" -version = "3.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "645493cf344456ef24219d02a768cf1fb92ddf8c92161679ae3d91b91a637be3" -dependencies = [ - "cfg-if", - "concurrent-queue", - "hermit-abi", - "pin-project-lite", - "rustix 0.38.34", - "tracing", - "windows-sys 0.52.0", -] - -[[package]] -name = "portable-atomic" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7170ef9988bc169ba16dd36a7fa041e5c4cbeb6a35b76d4c03daded371eae7c0" - -[[package]] -name = "portable-pty" -version = "0.8.1" -dependencies = [ - "anyhow", - "bitflags 1.3.2", - "downcast-rs", - "filedescriptor", - "futures", - "lazy_static", - "libc", - "log", - "nix", - "serde", - "serde_derive", - "serial", - "shared_library", - "shell-words", - "smol", - "winapi", - "winreg 0.10.1", -] - -[[package]] -name = "powerfmt" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" - -[[package]] -name = "ppv-lite86" -version = "0.2.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" - -[[package]] -name = "predicates" -version = "3.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68b87bfd4605926cdfefc1c3b5f8fe560e3feca9d5552cf68c466d3d8236c7e8" -dependencies = [ - "anstyle", - "difflib", - "float-cmp", - "normalize-line-endings", - "predicates-core", - "regex", -] - -[[package]] -name = "predicates-core" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b794032607612e7abeb4db69adb4e33590fa6cf1149e95fd7cb00e634b92f174" - -[[package]] -name = "predicates-tree" -version = "1.0.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "368ba315fb8c5052ab692e68a0eefec6ec57b23a36959c14496f0b0df2c0cecf" -dependencies = [ - "predicates-core", - "termtree", -] - -[[package]] -name = "presser" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8cf8e6a8aa66ce33f63993ffc4ea4271eb5b0530a9002db8455ea6050c77bfa" - -[[package]] -name = "proc-macro-crate" -version = "3.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284" -dependencies = [ - "toml_edit 0.21.1", -] - -[[package]] -name = "proc-macro2" -version = "1.0.83" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b33eb56c327dec362a9e55b3ad14f9d2f0904fb5a5b03b513ab5465399e9f43" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "procinfo" -version = "0.1.0" -dependencies = [ - "libc", - "log", - "luahelper", - "ntapi", - "wezterm-dynamic", - "winapi", -] - -[[package]] -name = "procinfo-funcs" -version = "0.1.0" -dependencies = [ - "anyhow", - "config", - "libc", - "luahelper", - "procinfo", - "wezterm-dynamic", -] - -[[package]] -name = "profiling" -version = "1.0.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43d84d1d7a6ac92673717f9f6d1518374ef257669c24ebc5ac25d5033828be58" -dependencies = [ - "profiling-procmacros", -] - -[[package]] -name = "profiling-procmacros" -version = "1.0.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8021cf59c8ec9c432cfc2526ac6b8aa508ecaf29cd415f271b8406c1b851c3fd" -dependencies = [ - "quote", - "syn 2.0.65", -] - -[[package]] -name = "promise" -version = "0.2.0" -dependencies = [ - "anyhow", - "async-executor", - "async-io", - "async-task", - "flume", - "lazy_static", - "thiserror", -] - -[[package]] -name = "pure-rust-locales" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1190fd18ae6ce9e137184f207593877e70f39b015040156b1e05081cdfe3733a" - -[[package]] -name = "qoi" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f6d64c71eb498fe9eae14ce4ec935c555749aef511cca85b5568910d6e48001" -dependencies = [ - "bytemuck", -] - -[[package]] -name = "quick-error" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a993555f31e5a609f617c12db6250dedcac1b0a85076912c436e6fc9b2c8e6a3" - -[[package]] -name = "quick-xml" -version = "0.30.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eff6510e86862b57b210fd8cbe8ed3f0d7d600b9c2863cd4549a2e033c66e956" -dependencies = [ - "memchr", -] - -[[package]] -name = "quick-xml" -version = "0.31.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1004a344b30a54e2ee58d66a71b32d2db2feb0a31f9a2d302bf0536f15de2a33" -dependencies = [ - "memchr", -] - -[[package]] -name = "quote" -version = "1.0.36" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "rand" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" -dependencies = [ - "libc", - "rand_chacha", - "rand_core", - "serde", -] - -[[package]] -name = "rand_chacha" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" -dependencies = [ - "ppv-lite86", - "rand_core", -] - -[[package]] -name = "rand_core" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" -dependencies = [ - "getrandom", - "serde", -] - -[[package]] -name = "range-alloc" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8a99fddc9f0ba0a85884b8d14e3592853e787d581ca1816c91349b10e4eeab" - -[[package]] -name = "rangeset" -version = "0.1.0" -dependencies = [ - "criterion", - "num", -] - -[[package]] -name = "ratelim" -version = "0.1.0" -dependencies = [ - "config", - "governor", -] - -[[package]] -name = "rav1e" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd87ce80a7665b1cce111f8a16c1f3929f6547ce91ade6addf4ec86a8dda5ce9" -dependencies = [ - "arbitrary", - "arg_enum_proc_macro", - "arrayvec", - "av1-grain", - "bitstream-io", - "built", - "cfg-if", - "interpolate_name", - "itertools 0.12.1", - "libc", - "libfuzzer-sys", - "log", - "maybe-rayon", - "new_debug_unreachable", - "noop_proc_macro", - "num-derive", - "num-traits", - "once_cell", - "paste", - "profiling", - "rand", - "rand_chacha", - "simd_helpers", - "system-deps", - "thiserror", - "v_frame", - "wasm-bindgen", -] - -[[package]] -name = "ravif" -version = "0.11.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc13288f5ab39e6d7c9d501759712e6969fcc9734220846fc9ed26cae2cc4234" -dependencies = [ - "avif-serialize", - "imgref", - "loop9", - "quick-error", - "rav1e", - "rayon", - "rgb", -] - -[[package]] -name = "raw-window-handle" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2ff9a1f06a88b01621b7ae906ef0211290d1c8a168a15542486a8f61c0833b9" - -[[package]] -name = "rayon" -version = "1.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" -dependencies = [ - "either", - "rayon-core", -] - -[[package]] -name = "rayon-core" -version = "1.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" -dependencies = [ - "crossbeam-deque", - "crossbeam-utils", -] - -[[package]] -name = "rcgen" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48406db8ac1f3cbc7dcdb56ec355343817958a356ff430259bb07baf7607e1e1" -dependencies = [ - "pem", - "ring", - "time", - "yasna", -] - -[[package]] -name = "redox_syscall" -version = "0.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" -dependencies = [ - "bitflags 1.3.2", -] - -[[package]] -name = "redox_syscall" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" -dependencies = [ - "bitflags 1.3.2", -] - -[[package]] -name = "redox_syscall" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "469052894dcb553421e483e4209ee581a45100d31b4018de03e5a7ad86374a7e" -dependencies = [ - "bitflags 2.5.0", -] - -[[package]] -name = "redox_users" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd283d9651eeda4b2a83a43c1c91b266c40fd76ecd39a50a8c630ae69dc72891" -dependencies = [ - "getrandom", - "libredox", - "thiserror", -] - -[[package]] -name = "regex" -version = "1.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c" -dependencies = [ - "aho-corasick", - "memchr", - "regex-automata", - "regex-syntax", -] - -[[package]] -name = "regex-automata" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea" -dependencies = [ - "aho-corasick", - "memchr", - "regex-syntax", -] - -[[package]] -name = "regex-syntax" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56" - -[[package]] -name = "relative-path" -version = "1.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba39f3699c378cd8970968dcbff9c43159ea4cfbd88d43c00b22f2ef10a435d2" - -[[package]] -name = "renderdoc-sys" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19b30a45b0cd0bcca8037f3d0dc3421eaf95327a17cad11964fb8179b4fc4832" - -[[package]] -name = "reqwest" -version = "0.12.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "566cafdd92868e0939d3fb961bd0dc25fcfaaed179291093b3d43e6b3150ea10" -dependencies = [ - "base64 0.22.1", - "bytes", - "encoding_rs", - "futures-core", - "futures-util", - "h2", - "http", - "http-body", - "http-body-util", - "hyper", - "hyper-tls", - "hyper-util", - "ipnet", - "js-sys", - "log", - "mime", - "native-tls", - "once_cell", - "percent-encoding", - "pin-project-lite", - "rustls-pemfile", - "serde", - "serde_json", - "serde_urlencoded", - "sync_wrapper", - "system-configuration", - "tokio", - "tokio-native-tls", - "tower-service", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "winreg 0.52.0", -] - -[[package]] -name = "resize" -version = "0.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2a08c42ea86684dc00256494c4eb8b54707890ddac50c05060a717f29669029" -dependencies = [ - "rgb", -] - -[[package]] -name = "rgb" -version = "0.8.37" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05aaa8004b64fd573fc9d002f4e632d51ad4f026c2b5ba95fcb6c2f32c2c47d8" -dependencies = [ - "bytemuck", -] - -[[package]] -name = "ring" -version = "0.17.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" -dependencies = [ - "cc", - "cfg-if", - "getrandom", - "libc", - "spin", - "untrusted", - "windows-sys 0.52.0", -] - -[[package]] -name = "rle-decode-fast" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3582f63211428f83597b51b2ddb88e2a91a9d52d12831f9d08f5e624e8977422" - -[[package]] -name = "rstest" -version = "0.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d5316d2a1479eeef1ea21e7f9ddc67c191d497abc8fc3ba2467857abbb68330" -dependencies = [ - "futures", - "futures-timer", - "rstest_macros", - "rustc_version", -] - -[[package]] -name = "rstest_macros" -version = "0.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04a9df72cc1f67020b0d63ad9bfe4a323e459ea7eb68e03bd9824db49f9a4c25" -dependencies = [ - "cfg-if", - "glob", - "proc-macro2", - "quote", - "regex", - "relative-path", - "rustc_version", - "syn 2.0.65", - "unicode-ident", -] - -[[package]] -name = "rusqlite" -version = "0.30.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a78046161564f5e7cd9008aff3b2990b3850dc8e0349119b98e8f251e099f24d" -dependencies = [ - "bitflags 2.5.0", - "fallible-iterator", - "fallible-streaming-iterator", - "hashlink", - "libsqlite3-sys", - "smallvec", -] - -[[package]] -name = "rustc-demangle" -version = "0.1.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" - -[[package]] -name = "rustc-hash" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" - -[[package]] -name = "rustc_version" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" -dependencies = [ - "semver", -] - -[[package]] -name = "rustix" -version = "0.37.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fea8ca367a3a01fe35e6943c400addf443c0f57670e6ec51196f71a4b8762dd2" -dependencies = [ - "bitflags 1.3.2", - "errno", - "io-lifetimes", - "libc", - "linux-raw-sys 0.3.8", - "windows-sys 0.48.0", -] - -[[package]] -name = "rustix" -version = "0.38.34" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f" -dependencies = [ - "bitflags 2.5.0", - "errno", - "libc", - "linux-raw-sys 0.4.14", - "windows-sys 0.52.0", -] - -[[package]] -name = "rustls-pemfile" -version = "2.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29993a25686778eb88d4189742cd713c9bce943bc54251a33509dc63cbacf73d" -dependencies = [ - "base64 0.22.1", - "rustls-pki-types", -] - -[[package]] -name = "rustls-pki-types" -version = "1.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "976295e77ce332211c0d24d92c0e83e50f5c5f046d11082cea19f3df13a3562d" - -[[package]] -name = "ryu" -version = "1.0.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" - -[[package]] -name = "same-file" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" -dependencies = [ - "winapi-util", -] - -[[package]] -name = "schannel" -version = "0.1.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534" -dependencies = [ - "windows-sys 0.52.0", -] - -[[package]] -name = "scoped-tls" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" - -[[package]] -name = "scopeguard" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" - -[[package]] -name = "security-framework" -version = "2.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c627723fd09706bacdb5cf41499e95098555af3c3c29d014dc3c458ef6be11c0" -dependencies = [ - "bitflags 2.5.0", - "core-foundation", - "core-foundation-sys", - "libc", - "security-framework-sys", -] - -[[package]] -name = "security-framework-sys" -version = "2.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "317936bbbd05227752583946b9e66d7ce3b489f84e11a94a510b4437fef407d7" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "semver" -version = "1.0.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" - -[[package]] -name = "serde" -version = "1.0.202" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "226b61a0d411b2ba5ff6d7f73a476ac4f8bb900373459cd00fab8512828ba395" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde-funcs" -version = "0.1.0" -dependencies = [ - "anyhow", - "config", - "luahelper", - "serde_json", - "serde_yaml", - "toml 0.8.13", - "wezterm-dynamic", -] - -[[package]] -name = "serde_derive" -version = "1.0.202" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6048858004bcff69094cd972ed40a32500f153bd3be9f716b2eed2e8217c4838" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.65", -] - -[[package]] -name = "serde_json" -version = "1.0.117" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "455182ea6142b14f93f4bc5320a2b31c1f266b66a4a5c858b013302a5d8cbfc3" -dependencies = [ - "itoa", - "ryu", - "serde", -] - -[[package]] -name = "serde_repr" -version = "0.1.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.65", -] - -[[package]] -name = "serde_spanned" -version = "0.6.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79e674e01f999af37c49f70a6ede167a8a60b2503e56c5599532a65baa5969a0" -dependencies = [ - "serde", -] - -[[package]] -name = "serde_urlencoded" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" -dependencies = [ - "form_urlencoded", - "itoa", - "ryu", - "serde", -] - -[[package]] -name = "serde_with" -version = "2.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07ff71d2c147a7b57362cead5e22f772cd52f6ab31cfcd9edcd7f6aeb2a0afbe" -dependencies = [ - "base64 0.13.1", - "chrono", - "hex", - "indexmap 1.9.3", - "serde", - "serde_json", - "serde_with_macros", - "time", -] - -[[package]] -name = "serde_with_macros" -version = "2.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "881b6f881b17d13214e5d494c939ebab463d01264ce1811e9d4ac3a882e7695f" -dependencies = [ - "darling", - "proc-macro2", - "quote", - "syn 2.0.65", -] - -[[package]] -name = "serde_yaml" -version = "0.9.34+deprecated" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47" -dependencies = [ - "indexmap 2.2.6", - "itoa", - "ryu", - "serde", - "unsafe-libyaml", -] - -[[package]] -name = "serial" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1237a96570fc377c13baa1b88c7589ab66edced652e43ffb17088f003db3e86" -dependencies = [ - "serial-core", - "serial-unix", - "serial-windows", -] - -[[package]] -name = "serial-core" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f46209b345401737ae2125fe5b19a77acce90cd53e1658cda928e4fe9a64581" -dependencies = [ - "libc", -] - -[[package]] -name = "serial-unix" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f03fbca4c9d866e24a459cbca71283f545a37f8e3e002ad8c70593871453cab7" -dependencies = [ - "ioctl-rs", - "libc", - "serial-core", - "termios 0.2.2", -] - -[[package]] -name = "serial-windows" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15c6d3b776267a75d31bbdfd5d36c0ca051251caafc285827052bc53bcdc8162" -dependencies = [ - "libc", - "serial-core", -] - -[[package]] -name = "sha1" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest", -] - -[[package]] -name = "sha2" -version = "0.10.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest", -] - -[[package]] -name = "share-data" -version = "0.1.0" -dependencies = [ - "anyhow", - "config", - "lazy_static", - "luahelper", - "ordered-float", - "wezterm-dynamic", -] - -[[package]] -name = "shared_library" -version = "0.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a9e7e0f2bfae24d8a5b5a66c5b257a83c7412304311512a0c054cd5e619da11" -dependencies = [ - "lazy_static", - "libc", -] - -[[package]] -name = "shell-words" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24188a676b6ae68c3b2cb3a01be17fbf7240ce009799bb56d5b1409051e78fde" - -[[package]] -name = "shlex" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" - -[[package]] -name = "signal-hook" -version = "0.3.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8621587d4798caf8eb44879d42e56b9a93ea5dcd315a6487c357130095b62801" -dependencies = [ - "libc", - "signal-hook-registry", -] - -[[package]] -name = "signal-hook-registry" -version = "1.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1" -dependencies = [ - "libc", -] - -[[package]] -name = "simd-adler32" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" - -[[package]] -name = "simd_helpers" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95890f873bec569a0362c235787f3aca6e1e887302ba4840839bcc6459c42da6" -dependencies = [ - "quote", -] - -[[package]] -name = "siphasher" -version = "0.3.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" - -[[package]] -name = "slab" -version = "0.4.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" -dependencies = [ - "autocfg", -] - -[[package]] -name = "slotmap" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbff4acf519f630b3a3ddcfaea6c06b42174d9a44bc70c620e9ed1649d58b82a" -dependencies = [ - "version_check", -] - -[[package]] -name = "smallvec" -version = "1.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" - -[[package]] -name = "smawk" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7c388c1b5e93756d0c740965c41e8822f866621d41acbdf6336a6a168f8840c" - -[[package]] -name = "smithay-client-toolkit" -version = "0.18.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "922fd3eeab3bd820d76537ce8f582b1cf951eceb5475c28500c7457d9d17f53a" -dependencies = [ - "bitflags 2.5.0", - "cursor-icon", - "libc", - "log", - "memmap2 0.9.4", - "rustix 0.38.34", - "thiserror", - "wayland-backend", - "wayland-client", - "wayland-csd-frame", - "wayland-cursor", - "wayland-protocols", - "wayland-protocols-wlr", - "wayland-scanner", - "xkeysym", -] - -[[package]] -name = "smol" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e635339259e51ef85ac7aa29a1cd991b957047507288697a690e80ab97d07cad" -dependencies = [ - "async-channel", - "async-executor", - "async-fs", - "async-io", - "async-lock", - "async-net", - "async-process", - "blocking", - "futures-lite", -] - -[[package]] -name = "socket2" -version = "0.5.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" -dependencies = [ - "libc", - "windows-sys 0.52.0", -] - -[[package]] -name = "spa" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab074195b3f78a133cd7b7998142cf39dfaac71f6e990eaeecd14f5524db009a" -dependencies = [ - "chrono", -] - -[[package]] -name = "spawn-funcs" -version = "0.1.0" -dependencies = [ - "anyhow", - "bstr", - "config", - "log", - "luahelper", - "smol", - "wezterm-dynamic", - "wezterm-open-url", - "winapi", -] - -[[package]] -name = "spin" -version = "0.9.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" -dependencies = [ - "lock_api", -] - -[[package]] -name = "spirv" -version = "0.2.0+1.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "246bfa38fe3db3f1dfc8ca5a2cdeb7348c78be2112740cc0ec8ef18b6d94f830" -dependencies = [ - "bitflags 1.3.2", - "num-traits", -] - -[[package]] -name = "sqlite-cache" -version = "0.1.3" -source = "git+https://github.com/losfair/sqlite-cache?rev=0961b50385ff189bb12742716331c05ed0bf7805#0961b50385ff189bb12742716331c05ed0bf7805" -dependencies = [ - "data-encoding", - "futures", - "rusqlite", - "tracing", -] - -[[package]] -name = "ssh-funcs" -version = "0.1.0" -dependencies = [ - "anyhow", - "config", - "luahelper", - "wezterm-ssh", -] - -[[package]] -name = "ssh2" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7fe461910559f6d5604c3731d00d2aafc4a83d1665922e280f42f9a168d5455" -dependencies = [ - "bitflags 1.3.2", - "libc", - "libssh2-sys", - "parking_lot 0.11.2", -] - -[[package]] -name = "starship-battery" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "725bc1c7374f435ef65746eb1a5789cb7d02b8e997f9a3edf979bfb42da68311" -dependencies = [ - "cfg-if", - "core-foundation", - "lazycell", - "libc", - "mach2", - "nix", - "num-traits", - "uom", - "winapi", -] - -[[package]] -name = "static_assertions" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" - -[[package]] -name = "strict-num" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6637bab7722d379c8b41ba849228d680cc12d0a45ba1fa2b48f2a30577a06731" - -[[package]] -name = "strip-ansi-escapes" -version = "0.1.0" -dependencies = [ - "clap", - "termwiz", -] - -[[package]] -name = "strsim" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" - -[[package]] -name = "svg_fmt" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20e16a0f46cf5fd675563ef54f26e83e20f2366bcf027bcb3cc3ed2b98aaf2ca" - -[[package]] -name = "syn" -version = "1.0.109" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "syn" -version = "2.0.65" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2863d96a84c6439701d7a38f9de935ec562c8832cc55d1dde0f513b52fad106" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "sync-color-schemes" -version = "0.1.0" -dependencies = [ - "anyhow", - "color-funcs", - "config", - "env_logger 0.11.3", - "futures", - "lazy_static", - "libflate", - "log", - "reqwest", - "rusqlite", - "serde", - "serde_json", - "serde_yaml", - "sqlite-cache", - "tar", - "tempfile", - "tokio", - "toml 0.8.13", - "wezterm-dynamic", -] - -[[package]] -name = "sync_wrapper" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" - -[[package]] -name = "system-configuration" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" -dependencies = [ - "bitflags 1.3.2", - "core-foundation", - "system-configuration-sys", -] - -[[package]] -name = "system-configuration-sys" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "system-deps" -version = "6.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3e535eb8dded36d55ec13eddacd30dec501792ff23a0b1682c38601b8cf2349" -dependencies = [ - "cfg-expr", - "heck", - "pkg-config", - "toml 0.8.13", - "version-compare", -] - -[[package]] -name = "tabout" -version = "0.3.0" -dependencies = [ - "termwiz", -] - -[[package]] -name = "takeable-option" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36ae8932fcfea38b7d3883ae2ab357b0d57a02caaa18ebb4f5ece08beaec4aa0" - -[[package]] -name = "tar" -version = "0.4.40" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b16afcea1f22891c49a00c751c7b63b2233284064f11a200fc624137c51e2ddb" -dependencies = [ - "filetime", - "libc", - "xattr", -] - -[[package]] -name = "target-lexicon" -version = "0.12.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1fc403891a21bcfb7c37834ba66a547a8f402146eba7265b5a6d88059c9ff2f" - -[[package]] -name = "tempfile" -version = "3.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" -dependencies = [ - "cfg-if", - "fastrand", - "rustix 0.38.34", - "windows-sys 0.52.0", -] - -[[package]] -name = "termcolor" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" -dependencies = [ - "winapi-util", -] - -[[package]] -name = "terminal_size" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e6bf6f19e9f8ed8d4048dc22981458ebcf406d67e94cd422e5ecd73d63b3237" -dependencies = [ - "rustix 0.37.27", - "windows-sys 0.48.0", -] - -[[package]] -name = "terminal_size" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21bebf2b7c9e0a515f6e0f8c51dc0f8e4696391e6f1ff30379559f8365fb0df7" -dependencies = [ - "rustix 0.38.34", - "windows-sys 0.48.0", -] - -[[package]] -name = "terminfo" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4ea810f0692f9f51b382fff5893887bb4580f5fa246fde546e0b13e7fcee662" -dependencies = [ - "fnv", - "nom", - "phf", - "phf_codegen", -] - -[[package]] -name = "termios" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5d9cf598a6d7ce700a4e6a9199da127e6819a61e64b68609683cc9a01b5683a" -dependencies = [ - "libc", -] - -[[package]] -name = "termios" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "411c5bf740737c7918b8b1fe232dca4dc9f8e754b8ad5e20966814001ed0ac6b" -dependencies = [ - "libc", -] - -[[package]] -name = "termtree" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76" - -[[package]] -name = "termwiz" -version = "0.22.0" -dependencies = [ - "anyhow", - "base64 0.21.7", - "bitflags 2.5.0", - "cassowary", - "criterion", - "env_logger 0.11.3", - "fancy-regex", - "filedescriptor", - "finl_unicode", - "fixedbitset", - "fnv", - "hex", - "image", - "k9", - "lazy_static", - "libc", - "log", - "memmem", - "nix", - "num-derive", - "num-traits", - "ordered-float", - "pest", - "pest_derive", - "phf", - "serde", - "sha2", - "signal-hook", - "siphasher", - "tempfile", - "terminfo", - "termios 0.3.3", - "thiserror", - "ucd-trie", - "unicode-segmentation", - "varbincode", - "vtparse", - "wezterm-bidi", - "wezterm-blob-leases", - "wezterm-color-types", - "wezterm-dynamic", - "wezterm-input-types", - "winapi", -] - -[[package]] -name = "termwiz-funcs" -version = "0.1.0" -dependencies = [ - "anyhow", - "config", - "finl_unicode", - "lazy_static", - "luahelper", - "terminfo", - "termwiz", - "wezterm-dynamic", - "wezterm-input-types", -] - -[[package]] -name = "textwrap" -version = "0.16.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23d434d3f8967a09480fb04132ebe0a3e088c173e6d0ee7897abbdf4eab0f8b9" -dependencies = [ - "smawk", - "unicode-linebreak", - "unicode-width", -] - -[[package]] -name = "thiserror" -version = "1.0.61" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c546c80d6be4bc6a00c0f01730c08df82eaa7a7a61f11d656526506112cc1709" -dependencies = [ - "thiserror-impl", -] - -[[package]] -name = "thiserror-impl" -version = "1.0.61" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.65", -] - -[[package]] -name = "thousands" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3bf63baf9f5039dadc247375c29eb13706706cfde997d0330d05aa63a77d8820" - -[[package]] -name = "thread_local" -version = "1.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" -dependencies = [ - "cfg-if", - "once_cell", -] - -[[package]] -name = "tiff" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba1310fcea54c6a9a4fd1aad794ecc02c31682f6bfbecdf460bf19533eed1e3e" -dependencies = [ - "flate2", - "jpeg-decoder", - "weezl", -] - -[[package]] -name = "time" -version = "0.3.36" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" -dependencies = [ - "deranged", - "itoa", - "num-conv", - "powerfmt", - "serde", - "time-core", - "time-macros", -] - -[[package]] -name = "time-core" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" - -[[package]] -name = "time-funcs" -version = "0.1.0" -dependencies = [ - "anyhow", - "chrono", - "config", - "lazy_static", - "luahelper", - "promise", - "smol", - "spa", - "wezterm-dynamic", -] - -[[package]] -name = "time-macros" -version = "0.2.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" -dependencies = [ - "num-conv", - "time-core", -] - -[[package]] -name = "tiny-skia" -version = "0.11.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83d13394d44dae3207b52a326c0c85a8bf87f1541f23b0d143811088497b09ab" -dependencies = [ - "arrayref", - "arrayvec", - "bytemuck", - "cfg-if", - "log", - "png", - "tiny-skia-path", -] - -[[package]] -name = "tiny-skia-path" -version = "0.11.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c9e7fc0c2e86a30b117d0462aa261b72b7a99b7ebd7deb3a14ceda95c5bdc93" -dependencies = [ - "arrayref", - "bytemuck", - "strict-num", -] - -[[package]] -name = "tinytemplate" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be4d6b5f19ff7664e8c98d03e2139cb510db9b0a60b55f8e8709b689d939b6bc" -dependencies = [ - "serde", - "serde_json", -] - -[[package]] -name = "tinyvec" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" -dependencies = [ - "tinyvec_macros", -] - -[[package]] -name = "tinyvec_macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" - -[[package]] -name = "tokio" -version = "1.37.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1adbebffeca75fcfd058afa480fb6c0b81e165a0323f9c9d39c9697e37c46787" -dependencies = [ - "backtrace", - "bytes", - "libc", - "mio", - "num_cpus", - "pin-project-lite", - "socket2", - "tokio-macros", - "windows-sys 0.48.0", -] - -[[package]] -name = "tokio-macros" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.65", -] - -[[package]] -name = "tokio-native-tls" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" -dependencies = [ - "native-tls", - "tokio", -] - -[[package]] -name = "tokio-util" -version = "0.7.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1" -dependencies = [ - "bytes", - "futures-core", - "futures-sink", - "pin-project-lite", - "tokio", -] - -[[package]] -name = "toml" -version = "0.5.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" -dependencies = [ - "serde", -] - -[[package]] -name = "toml" -version = "0.8.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4e43f8cc456c9704c851ae29c67e17ef65d2c30017c17a9765b89c382dc8bba" -dependencies = [ - "serde", - "serde_spanned", - "toml_datetime", - "toml_edit 0.22.13", -] - -[[package]] -name = "toml_datetime" -version = "0.6.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4badfd56924ae69bcc9039335b2e017639ce3f9b001c393c1b2d1ef846ce2cbf" -dependencies = [ - "serde", -] - -[[package]] -name = "toml_edit" -version = "0.21.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" -dependencies = [ - "indexmap 2.2.6", - "toml_datetime", - "winnow 0.5.40", -] - -[[package]] -name = "toml_edit" -version = "0.22.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c127785850e8c20836d49732ae6abfa47616e60bf9d9f57c43c250361a9db96c" -dependencies = [ - "indexmap 2.2.6", - "serde", - "serde_spanned", - "toml_datetime", - "winnow 0.6.8", -] - -[[package]] -name = "tower" -version = "0.4.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" -dependencies = [ - "futures-core", - "futures-util", - "pin-project", - "pin-project-lite", - "tokio", - "tower-layer", - "tower-service", - "tracing", -] - -[[package]] -name = "tower-layer" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0" - -[[package]] -name = "tower-service" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" - -[[package]] -name = "tracing" -version = "0.1.40" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" -dependencies = [ - "log", - "pin-project-lite", - "tracing-attributes", - "tracing-core", -] - -[[package]] -name = "tracing-attributes" -version = "0.1.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.65", -] - -[[package]] -name = "tracing-core" -version = "0.1.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" -dependencies = [ - "once_cell", -] - -[[package]] -name = "try-lock" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" - -[[package]] -name = "typenum" -version = "1.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" - -[[package]] -name = "ucd-trie" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9" - -[[package]] -name = "uds_windows" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89daebc3e6fd160ac4aa9fc8b3bf71e1f74fbf92367ae71fb83a037e8bf164b9" -dependencies = [ - "memoffset", - "tempfile", - "winapi", -] - -[[package]] -name = "umask" -version = "0.1.0" -dependencies = [ - "lazy_static", - "libc", -] - -[[package]] -name = "unicase" -version = "2.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7d2d4dafb69621809a81864c9c1b864479e1235c0dd4e199924b9742439ed89" -dependencies = [ - "version_check", -] - -[[package]] -name = "unicode-bidi" -version = "0.3.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" - -[[package]] -name = "unicode-ident" -version = "1.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" - -[[package]] -name = "unicode-linebreak" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f" - -[[package]] -name = "unicode-normalization" -version = "0.1.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5" -dependencies = [ - "tinyvec", -] - -[[package]] -name = "unicode-segmentation" -version = "1.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202" - -[[package]] -name = "unicode-width" -version = "0.1.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68f5e5f3158ecfd4b8ff6fe086db7c8467a2dfdac97fe420f2b7c4aa97af66d6" - -[[package]] -name = "unicode-xid" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" - -[[package]] -name = "unsafe-libyaml" -version = "0.2.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "673aac59facbab8a9007c7f6108d11f63b603f7cabff99fabf650fea5c32b861" - -[[package]] -name = "untrusted" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" - -[[package]] -name = "uom" -version = "0.36.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffd36e5350a65d112584053ee91843955826bf9e56ec0d1351214e01f6d7cd9c" -dependencies = [ - "num-traits", - "typenum", -] - -[[package]] -name = "url" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633" -dependencies = [ - "form_urlencoded", - "idna", - "percent-encoding", -] - -[[package]] -name = "url-funcs" -version = "0.1.0" -dependencies = [ - "anyhow", - "config", - "luahelper", - "percent-encoding", - "url", - "wezterm-dynamic", -] - -[[package]] -name = "utf8parse" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" - -[[package]] -name = "uuid" -version = "1.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a183cf7feeba97b4dd1c0d46788634f6221d87fa961b305bed08c851829efcc0" -dependencies = [ - "atomic", - "getrandom", - "serde", -] - -[[package]] -name = "v_frame" -version = "0.3.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6f32aaa24bacd11e488aa9ba66369c7cd514885742c9fe08cfe85884db3e92b" -dependencies = [ - "aligned-vec", - "num-traits", - "wasm-bindgen", -] - -[[package]] -name = "varbincode" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b712fa900b441e2d5226a094ca37ca70c0d26d26b79822a5cf34a853a9e26f9f" -dependencies = [ - "byteorder", - "leb128", - "serde", -] - -[[package]] -name = "vcpkg" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" - -[[package]] -name = "version-compare" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "852e951cb7832cb45cb1169900d19760cfa39b82bc0ea9c0e5a14ae88411c98b" - -[[package]] -name = "version_check" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" - -[[package]] -name = "vswhom" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be979b7f07507105799e854203b470ff7c78a1639e330a58f183b5fea574608b" -dependencies = [ - "libc", - "vswhom-sys", -] - -[[package]] -name = "vswhom-sys" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3b17ae1f6c8a2b28506cd96d412eebf83b4a0ff2cbefeeb952f2f9dfa44ba18" -dependencies = [ - "cc", - "libc", -] - -[[package]] -name = "vtparse" -version = "0.6.2" -dependencies = [ - "k9", - "utf8parse", -] - -[[package]] -name = "walkdir" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" -dependencies = [ - "same-file", - "winapi-util", -] - -[[package]] -name = "want" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" -dependencies = [ - "try-lock", -] - -[[package]] -name = "wasi" -version = "0.11.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" - -[[package]] -name = "wasite" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8dad83b4f25e74f184f64c43b150b91efe7647395b42289f38e50566d82855b" - -[[package]] -name = "wasm-bindgen" -version = "0.2.92" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" -dependencies = [ - "cfg-if", - "wasm-bindgen-macro", -] - -[[package]] -name = "wasm-bindgen-backend" -version = "0.2.92" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da" -dependencies = [ - "bumpalo", - "log", - "once_cell", - "proc-macro2", - "quote", - "syn 2.0.65", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-futures" -version = "0.4.42" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0" -dependencies = [ - "cfg-if", - "js-sys", - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "wasm-bindgen-macro" -version = "0.2.92" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726" -dependencies = [ - "quote", - "wasm-bindgen-macro-support", -] - -[[package]] -name = "wasm-bindgen-macro-support" -version = "0.2.92" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.65", - "wasm-bindgen-backend", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-shared" -version = "0.2.92" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" - -[[package]] -name = "wayland-backend" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d50fa61ce90d76474c87f5fc002828d81b32677340112b4ef08079a9d459a40" -dependencies = [ - "cc", - "downcast-rs", - "rustix 0.38.34", - "scoped-tls", - "smallvec", - "wayland-sys", -] - -[[package]] -name = "wayland-client" -version = "0.31.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82fb96ee935c2cea6668ccb470fb7771f6215d1691746c2d896b447a00ad3f1f" -dependencies = [ - "bitflags 2.5.0", - "rustix 0.38.34", - "wayland-backend", - "wayland-scanner", -] - -[[package]] -name = "wayland-csd-frame" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "625c5029dbd43d25e6aa9615e88b829a5cad13b2819c4ae129fdbb7c31ab4c7e" -dependencies = [ - "bitflags 2.5.0", - "cursor-icon", - "wayland-backend", -] - -[[package]] -name = "wayland-cursor" -version = "0.31.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71ce5fa868dd13d11a0d04c5e2e65726d0897be8de247c0c5a65886e283231ba" -dependencies = [ - "rustix 0.38.34", - "wayland-client", - "xcursor", -] - -[[package]] -name = "wayland-egl" -version = "0.32.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "355f652e5a24ae02d2ad536c8fc2d3dcc6c2bd635027cd6103a193e7d75eeda2" -dependencies = [ - "wayland-backend", - "wayland-sys", -] - -[[package]] -name = "wayland-protocols" -version = "0.31.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f81f365b8b4a97f422ac0e8737c438024b5951734506b0e1d775c73030561f4" -dependencies = [ - "bitflags 2.5.0", - "wayland-backend", - "wayland-client", - "wayland-scanner", -] - -[[package]] -name = "wayland-protocols-wlr" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad1f61b76b6c2d8742e10f9ba5c3737f6530b4c243132c2a2ccc8aa96fe25cd6" -dependencies = [ - "bitflags 2.5.0", - "wayland-backend", - "wayland-client", - "wayland-protocols", - "wayland-scanner", -] - -[[package]] -name = "wayland-scanner" -version = "0.31.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63b3a62929287001986fb58c789dce9b67604a397c15c611ad9f747300b6c283" -dependencies = [ - "proc-macro2", - "quick-xml 0.31.0", - "quote", -] - -[[package]] -name = "wayland-sys" -version = "0.31.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15a0c8eaff5216d07f226cb7a549159267f3467b289d9a2e52fd3ef5aae2b7af" -dependencies = [ - "dlib", - "log", - "pkg-config", -] - -[[package]] -name = "web-sys" -version = "0.3.64" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b85cbef8c220a6abc02aefd892dfc0fc23afb1c6a426316ec33253a3877249b" -dependencies = [ - "js-sys", - "wasm-bindgen", -] - -[[package]] -name = "weezl" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53a85b86a771b1c87058196170769dd264f66c0782acf1ae6cc51bfd64b39082" - -[[package]] -name = "wezterm" -version = "0.1.0" -dependencies = [ - "anyhow", - "cc", - "chrono", - "clap", - "clap_complete", - "clap_complete_fig", - "codec", - "config", - "embed-resource", - "env-bootstrap", - "filedescriptor", - "hostname", - "humantime", - "image", - "libc", - "log", - "mux", - "portable-pty", - "promise", - "serde", - "serde_json", - "shell-words", - "smol", - "tabout", - "tempfile", - "termios 0.3.3", - "termwiz", - "termwiz-funcs", - "textwrap", - "umask", - "url", - "wezterm-client", - "wezterm-gui-subcommands", - "wezterm-term", - "winapi", -] - -[[package]] -name = "wezterm-bidi" -version = "0.2.3" -dependencies = [ - "env_logger 0.11.3", - "k9", - "log", - "wezterm-dynamic", -] - -[[package]] -name = "wezterm-blob-leases" -version = "0.1.0" -dependencies = [ - "getrandom", - "mac_address", - "once_cell", - "serde", - "sha2", - "tempfile", - "thiserror", - "uuid", -] - -[[package]] -name = "wezterm-client" -version = "0.1.0" -dependencies = [ - "anyhow", - "async-io", - "async-trait", - "async_ossl", - "codec", - "config", - "filedescriptor", - "futures", - "lazy_static", - "libc", - "log", - "lru", - "metrics", - "mux", - "openssl", - "parking_lot 0.12.2", - "portable-pty", - "promise", - "rangeset", - "ratelim", - "smol", - "termwiz", - "textwrap", - "thiserror", - "umask", - "url", - "wezterm-dynamic", - "wezterm-ssh", - "wezterm-term", - "wezterm-uds", - "winapi", -] - -[[package]] -name = "wezterm-color-types" -version = "0.3.0" -dependencies = [ - "csscolorparser", - "deltae", - "lazy_static", - "serde", - "wezterm-dynamic", -] - -[[package]] -name = "wezterm-config-derive" -version = "0.1.0" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "wezterm-dynamic" -version = "0.2.0" -dependencies = [ - "log", - "maplit", - "ordered-float", - "strsim", - "thiserror", - "wezterm-dynamic-derive", -] - -[[package]] -name = "wezterm-dynamic-derive" -version = "0.1.0" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "wezterm-font" -version = "0.1.0" -dependencies = [ - "anyhow", - "cairo-rs", - "cocoa", - "config", - "core-foundation", - "core-text", - "dwrote", - "encoding_rs", - "enum-display-derive", - "env_logger 0.11.3", - "euclid", - "finl_unicode", - "fontconfig", - "freetype", - "harfbuzz", - "image", - "k9", - "lazy_static", - "lfucache", - "log", - "memmap2 0.9.4", - "metrics", - "objc", - "ordered-float", - "rangeset", - "termwiz", - "thiserror", - "walkdir", - "wezterm-bidi", - "wezterm-color-types", - "wezterm-input-types", - "wezterm-term", - "wezterm-toast-notification", - "winapi", -] - -[[package]] -name = "wezterm-gui" -version = "0.1.0" -dependencies = [ - "anyhow", - "benchmarking", - "bitflags 1.3.2", - "bytemuck", - "cc", - "chrono", - "clap", - "codec", - "colorgrad", - "config", - "dhat", - "dirs-next", - "downcast-rs", - "embed-resource", - "emojis", - "env-bootstrap", - "env_logger 0.11.3", - "euclid", - "fastrand", - "filedescriptor", - "finl_unicode", - "frecency", - "futures", - "fuzzy-matcher", - "hdrhistogram", - "http_req", - "image", - "k9", - "lazy_static", - "lfucache", - "libc", - "log", - "luahelper", - "metrics", - "mlua", - "mux", - "mux-lua", - "once_cell", - "ordered-float", - "parking_lot 0.12.2", - "portable-pty", - "promise", - "rangeset", - "ratelim", - "rayon", - "regex", - "serde", - "serde_json", - "shared_library", - "shlex", - "smol", - "tabout", - "tempfile", - "terminfo", - "termwiz", - "termwiz-funcs", - "textwrap", - "thiserror", - "tiny-skia", - "umask", - "unicode-normalization", - "unicode-segmentation", - "unicode-width", - "url", - "url-funcs", - "walkdir", - "wezterm-bidi", - "wezterm-blob-leases", - "wezterm-client", - "wezterm-dynamic", - "wezterm-font", - "wezterm-gui-subcommands", - "wezterm-mux-server-impl", - "wezterm-open-url", - "wezterm-ssh", - "wezterm-term", - "wezterm-toast-notification", - "wgpu", - "winapi", - "window", - "window-funcs", - "windows 0.33.0", -] - -[[package]] -name = "wezterm-gui-subcommands" -version = "0.1.0" -dependencies = [ - "anyhow", - "clap", - "config", -] - -[[package]] -name = "wezterm-input-types" -version = "0.1.0" -dependencies = [ - "bitflags 1.3.2", - "euclid", - "lazy_static", - "serde", - "wezterm-dynamic", -] - -[[package]] -name = "wezterm-mux-server" -version = "0.1.0" -dependencies = [ - "anyhow", - "async_ossl", - "cc", - "clap", - "config", - "embed-resource", - "env-bootstrap", - "libc", - "log", - "mlua", - "mux", - "openssl", - "portable-pty", - "promise", - "umask", - "wezterm-blob-leases", - "wezterm-gui-subcommands", - "wezterm-mux-server-impl", - "wezterm-term", - "winapi", -] - -[[package]] -name = "wezterm-mux-server-impl" -version = "0.1.0" -dependencies = [ - "anyhow", - "async-io", - "async_ossl", - "codec", - "config", - "futures", - "hostname", - "lazy_static", - "log", - "mux", - "portable-pty", - "promise", - "rangeset", - "rcgen", - "smol", - "termwiz", - "url", - "wezterm-client", - "wezterm-term", - "wezterm-uds", - "winapi", -] - -[[package]] -name = "wezterm-open-url" -version = "0.1.0" -dependencies = [ - "winapi", -] - -[[package]] -name = "wezterm-ssh" -version = "0.4.0" -dependencies = [ - "anyhow", - "assert_fs", - "async_ossl", - "base64 0.22.1", - "bitflags 1.3.2", - "camino", - "clap", - "dirs-next", - "env_logger 0.11.3", - "filedescriptor", - "filenamegen", - "gethostname", - "k9", - "libc", - "libssh-rs", - "log", - "once_cell", - "portable-pty", - "predicates", - "regex", - "rstest", - "shell-words", - "smol", - "socket2", - "ssh2", - "termwiz", - "thiserror", - "wezterm-uds", - "whoami", -] - -[[package]] -name = "wezterm-term" -version = "0.1.0" -dependencies = [ - "anyhow", - "bitflags 1.3.2", - "csscolorparser", - "downcast-rs", - "env_logger 0.11.3", - "finl_unicode", - "hex", - "humansize", - "image", - "k9", - "lazy_static", - "log", - "lru", - "miniz_oxide", - "num-traits", - "ordered-float", - "serde", - "terminfo", - "termwiz", - "unicode-normalization", - "url", - "wezterm-bidi", - "wezterm-dynamic", -] - -[[package]] -name = "wezterm-toast-notification" -version = "0.1.0" -dependencies = [ - "async-io", - "cocoa", - "core-foundation", - "futures-util", - "log", - "objc", - "serde", - "wezterm-open-url", - "windows 0.33.0", - "xml-rs", - "zbus", - "zvariant", -] - -[[package]] -name = "wezterm-uds" -version = "0.1.0" -dependencies = [ - "async-io", - "uds_windows", -] - -[[package]] -name = "wezterm-version" -version = "0.1.0" -dependencies = [ - "git2", -] - -[[package]] -name = "wgpu" -version = "0.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30e7d227c9f961f2061c26f4cb0fbd4df0ef37e056edd0931783599d6c94ef24" -dependencies = [ - "arrayvec", - "cfg-if", - "flume", - "js-sys", - "log", - "naga", - "parking_lot 0.12.2", - "profiling", - "raw-window-handle", - "smallvec", - "static_assertions", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "wgpu-core", - "wgpu-hal", - "wgpu-types", -] - -[[package]] -name = "wgpu-core" -version = "0.18.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef91c1d62d1e9e81c79e600131a258edf75c9531cbdbde09c44a011a47312726" -dependencies = [ - "arrayvec", - "bit-vec", - "bitflags 2.5.0", - "codespan-reporting", - "log", - "naga", - "parking_lot 0.12.2", - "profiling", - "raw-window-handle", - "rustc-hash", - "smallvec", - "thiserror", - "web-sys", - "wgpu-hal", - "wgpu-types", -] - -[[package]] -name = "wgpu-hal" -version = "0.18.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b84ecc802da3eb67b4cf3dd9ea6fe45bbb47ef13e6c49c5c3240868a9cc6cdd9" -dependencies = [ - "android_system_properties", - "arrayvec", - "ash", - "bit-set", - "bitflags 2.5.0", - "block", - "core-graphics-types", - "d3d12", - "glow", - "glutin_wgl_sys", - "gpu-alloc", - "gpu-allocator", - "gpu-descriptor", - "hassle-rs", - "js-sys", - "khronos-egl", - "libc", - "libloading 0.8.3", - "log", - "metal", - "naga", - "objc", - "once_cell", - "parking_lot 0.12.2", - "profiling", - "range-alloc", - "raw-window-handle", - "renderdoc-sys", - "rustc-hash", - "smallvec", - "thiserror", - "wasm-bindgen", - "web-sys", - "wgpu-types", - "winapi", -] - -[[package]] -name = "wgpu-types" -version = "0.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d5ed5f0edf0de351fe311c53304986315ce866f394a2e6df0c4b3c70774bcdd" -dependencies = [ - "bitflags 2.5.0", - "js-sys", - "web-sys", -] - -[[package]] -name = "which" -version = "6.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8211e4f58a2b2805adfbefbc07bab82958fc91e3836339b1ab7ae32465dce0d7" -dependencies = [ - "either", - "home", - "rustix 0.38.34", - "winsafe", -] - -[[package]] -name = "whoami" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a44ab49fad634e88f55bf8f9bb3abd2f27d7204172a112c7c9987e01c1c94ea9" -dependencies = [ - "redox_syscall 0.4.1", - "wasite", - "web-sys", -] - -[[package]] -name = "widestring" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7219d36b6eac893fa81e84ebe06485e7dcbb616177469b142df14f1f4deb1311" - -[[package]] -name = "winapi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" -dependencies = [ - "winapi-i686-pc-windows-gnu", - "winapi-x86_64-pc-windows-gnu", -] - -[[package]] -name = "winapi-i686-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" - -[[package]] -name = "winapi-util" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d4cc384e1e73b93bafa6fb4f1df8c41695c8a91cf9c4c64358067d15a7b6c6b" -dependencies = [ - "windows-sys 0.52.0", -] - -[[package]] -name = "winapi-x86_64-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" - -[[package]] -name = "window" -version = "0.1.0" -dependencies = [ - "anyhow", - "async-channel", - "async-io", - "async-task", - "async-trait", - "bitflags 1.3.2", - "bytes", - "cgl", - "clipboard-win", - "cocoa", - "config", - "core-foundation", - "core-graphics", - "dirs-next", - "downcast-rs", - "euclid", - "filedescriptor", - "futures-lite", - "futures-util", - "gl_generator", - "glium", - "guillotiere", - "k9", - "lazy_static", - "libc", - "libloading 0.8.3", - "line_drawing", - "log", - "metrics", - "mio", - "objc", - "plist", - "promise", - "raw-window-handle", - "resize", - "serde", - "shared_library", - "shlex", - "smithay-client-toolkit", - "thiserror", - "tiny-skia", - "url", - "wayland-client", - "wayland-egl", - "wayland-protocols", - "wezterm-bidi", - "wezterm-color-types", - "wezterm-font", - "wezterm-input-types", - "winapi", - "windows 0.33.0", - "winreg 0.10.1", - "x11", - "xcb", - "xcb-imdkit", - "xkbcommon", - "zbus", - "zvariant", -] - -[[package]] -name = "window-funcs" -version = "0.1.0" -dependencies = [ - "anyhow", - "config", - "luahelper", - "wezterm-dynamic", - "window", -] - -[[package]] -name = "windows" -version = "0.33.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0128fa8e65e0616e45033d68dc0b7fbd521080b7844e5cad3a4a4d201c4b2bd2" -dependencies = [ - "windows_aarch64_msvc 0.33.0", - "windows_i686_gnu 0.33.0", - "windows_i686_msvc 0.33.0", - "windows_x86_64_gnu 0.33.0", - "windows_x86_64_msvc 0.33.0", -] - -[[package]] -name = "windows" -version = "0.51.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca229916c5ee38c2f2bc1e9d8f04df975b4bd93f9955dc69fabb5d91270045c9" -dependencies = [ - "windows-core 0.51.1", - "windows-targets 0.48.5", -] - -[[package]] -name = "windows" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be" -dependencies = [ - "windows-core 0.52.0", - "windows-targets 0.52.5", -] - -[[package]] -name = "windows-core" -version = "0.51.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1f8cf84f35d2db49a46868f947758c7a1138116f7fac3bc844f43ade1292e64" -dependencies = [ - "windows-targets 0.48.5", -] - -[[package]] -name = "windows-core" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" -dependencies = [ - "windows-targets 0.52.5", -] - -[[package]] -name = "windows-sys" -version = "0.45.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" -dependencies = [ - "windows-targets 0.42.2", -] - -[[package]] -name = "windows-sys" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" -dependencies = [ - "windows-targets 0.48.5", -] - -[[package]] -name = "windows-sys" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" -dependencies = [ - "windows-targets 0.52.5", -] - -[[package]] -name = "windows-targets" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" -dependencies = [ - "windows_aarch64_gnullvm 0.42.2", - "windows_aarch64_msvc 0.42.2", - "windows_i686_gnu 0.42.2", - "windows_i686_msvc 0.42.2", - "windows_x86_64_gnu 0.42.2", - "windows_x86_64_gnullvm 0.42.2", - "windows_x86_64_msvc 0.42.2", -] - -[[package]] -name = "windows-targets" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" -dependencies = [ - "windows_aarch64_gnullvm 0.48.5", - "windows_aarch64_msvc 0.48.5", - "windows_i686_gnu 0.48.5", - "windows_i686_msvc 0.48.5", - "windows_x86_64_gnu 0.48.5", - "windows_x86_64_gnullvm 0.48.5", - "windows_x86_64_msvc 0.48.5", -] - -[[package]] -name = "windows-targets" -version = "0.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb" -dependencies = [ - "windows_aarch64_gnullvm 0.52.5", - "windows_aarch64_msvc 0.52.5", - "windows_i686_gnu 0.52.5", - "windows_i686_gnullvm", - "windows_i686_msvc 0.52.5", - "windows_x86_64_gnu 0.52.5", - "windows_x86_64_gnullvm 0.52.5", - "windows_x86_64_msvc 0.52.5", -] - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.33.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd761fd3eb9ab8cc1ed81e56e567f02dd82c4c837e48ac3b2181b9ffc5060807" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6" - -[[package]] -name = "windows_i686_gnu" -version = "0.33.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cab0cf703a96bab2dc0c02c0fa748491294bf9b7feb27e1f4f96340f208ada0e" - -[[package]] -name = "windows_i686_gnu" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" - -[[package]] -name = "windows_i686_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" - -[[package]] -name = "windows_i686_gnu" -version = "0.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670" - -[[package]] -name = "windows_i686_gnullvm" -version = "0.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9" - -[[package]] -name = "windows_i686_msvc" -version = "0.33.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8cfdbe89cc9ad7ce618ba34abc34bbb6c36d99e96cae2245b7943cd75ee773d0" - -[[package]] -name = "windows_i686_msvc" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" - -[[package]] -name = "windows_i686_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" - -[[package]] -name = "windows_i686_msvc" -version = "0.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.33.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4dd9b0c0e9ece7bb22e84d70d01b71c6d6248b81a3c60d11869451b4cb24784" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.33.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff1e4aa646495048ec7f3ffddc411e1d829c026a2ec62b39da15c1055e406eaa" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.52.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0" - -[[package]] -name = "winnow" -version = "0.5.40" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" -dependencies = [ - "memchr", -] - -[[package]] -name = "winnow" -version = "0.6.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3c52e9c97a68071b23e836c9380edae937f17b9c4667bd021973efc689f618d" -dependencies = [ - "memchr", -] - -[[package]] -name = "winreg" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d" -dependencies = [ - "winapi", -] - -[[package]] -name = "winreg" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a277a57398d4bfa075df44f501a17cfdf8542d224f0d36095a2adc7aee4ef0a5" -dependencies = [ - "cfg-if", - "windows-sys 0.48.0", -] - -[[package]] -name = "winsafe" -version = "0.0.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d135d17ab770252ad95e9a872d365cf3090e3be864a34ab46f48555993efc904" - -[[package]] -name = "wio" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d129932f4644ac2396cb456385cbf9e63b5b30c6e8dc4820bdca4eb082037a5" -dependencies = [ - "winapi", -] - -[[package]] -name = "x11" -version = "2.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "502da5464ccd04011667b11c435cb992822c2c0dbde1770c988480d312a0db2e" -dependencies = [ - "libc", - "pkg-config", -] - -[[package]] -name = "xattr" -version = "1.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8da84f1a25939b27f6820d92aed108f83ff920fdf11a7b19366c27c4cda81d4f" -dependencies = [ - "libc", - "linux-raw-sys 0.4.14", - "rustix 0.38.34", -] - -[[package]] -name = "xcb" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02e75181b5a62b6eeaa72f303d3cef7dbb841e22885bf6d3e66fe23e88c55dc6" -dependencies = [ - "as-raw-xcb-connection", - "bitflags 1.3.2", - "libc", - "quick-xml 0.30.0", - "x11", -] - -[[package]] -name = "xcb-imdkit" -version = "0.3.0" -source = "git+https://github.com/wez/xcb-imdkit-rs.git?rev=358e226573461fe540efb920e2aad740e3c6fab1#358e226573461fe540efb920e2aad740e3c6fab1" -dependencies = [ - "bitflags 1.3.2", - "cc", - "lazy_static", - "pkg-config", - "xcb", -] - -[[package]] -name = "xcursor" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a0ccd7b4a5345edfcd0c3535718a4e9ff7798ffc536bb5b5a0e26ff84732911" - -[[package]] -name = "xdg-home" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21e5a325c3cb8398ad6cf859c1135b25dd29e186679cf2da7581d9679f63b38e" -dependencies = [ - "libc", - "winapi", -] - -[[package]] -name = "xkbcommon" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13867d259930edc7091a6c41b4ce6eee464328c6ff9659b7e4c668ca20d4c91e" -dependencies = [ - "as-raw-xcb-connection", - "libc", - "memmap2 0.8.0", - "xkeysym", -] - -[[package]] -name = "xkeysym" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "054a8e68b76250b253f671d1268cb7f1ae089ec35e195b2efb2a4e9a836d0621" - -[[package]] -name = "xml-rs" -version = "0.8.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "791978798f0597cfc70478424c2b4fdc2b7a8024aaff78497ef00f24ef674193" - -[[package]] -name = "yasna" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e17bb3549cc1321ae1296b9cdc2698e2b6cb1992adfa19a8c72e5b7a738f44cd" -dependencies = [ - "time", -] - -[[package]] -name = "zbus" -version = "4.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5915716dff34abef1351d2b10305b019c8ef33dcf6c72d31a6e227d5d9d7a21" -dependencies = [ - "async-broadcast", - "async-executor", - "async-fs", - "async-io", - "async-lock", - "async-process", - "async-recursion", - "async-task", - "async-trait", - "blocking", - "enumflags2", - "event-listener 5.3.0", - "futures-core", - "futures-sink", - "futures-util", - "hex", - "nix", - "ordered-stream", - "rand", - "serde", - "serde_repr", - "sha1", - "static_assertions", - "tracing", - "uds_windows", - "windows-sys 0.52.0", - "xdg-home", - "zbus_macros", - "zbus_names", - "zvariant", -] - -[[package]] -name = "zbus_macros" -version = "4.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66fceb36d0c1c4a6b98f3ce40f410e64e5a134707ed71892e1b178abc4c695d4" -dependencies = [ - "proc-macro-crate", - "proc-macro2", - "quote", - "syn 1.0.109", - "zvariant_utils", -] - -[[package]] -name = "zbus_names" -version = "3.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b9b1fef7d021261cc16cba64c351d291b715febe0fa10dc3a443ac5a5022e6c" -dependencies = [ - "serde", - "static_assertions", - "zvariant", -] - -[[package]] -name = "zerocopy" -version = "0.7.34" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae87e3fcd617500e5d106f0380cf7b77f3c6092aae37191433159dda23cfb087" -dependencies = [ - "zerocopy-derive", -] - -[[package]] -name = "zerocopy-derive" -version = "0.7.34" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15e934569e47891f7d9411f1a451d947a60e000ab3bd24fbb970f000387d1b3b" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.65", -] - -[[package]] -name = "zstd" -version = "0.11.2+zstd.1.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20cc960326ece64f010d2d2107537f26dc589a6573a316bd5b1dba685fa5fde4" -dependencies = [ - "zstd-safe", -] - -[[package]] -name = "zstd-safe" -version = "5.0.2+zstd.1.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d2a5585e04f9eea4b2a3d1eca508c4dee9592a89ef6f450c11719da0726f4db" -dependencies = [ - "libc", - "zstd-sys", -] - -[[package]] -name = "zstd-sys" -version = "2.0.10+zstd.1.5.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c253a4914af5bafc8fa8c86ee400827e83cf6ec01195ec1f1ed8441bf00d65aa" -dependencies = [ - "cc", - "pkg-config", -] - -[[package]] -name = "zune-core" -version = "0.4.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f423a2c17029964870cfaabb1f13dfab7d092a62a29a89264f4d36990ca414a" - -[[package]] -name = "zune-inflate" -version = "0.2.54" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73ab332fe2f6680068f3582b16a24f90ad7096d5d39b974d1c0aff0125116f02" -dependencies = [ - "simd-adler32", -] - -[[package]] -name = "zune-jpeg" -version = "0.4.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec866b44a2a1fd6133d363f073ca1b179f438f99e7e5bfb1e33f7181facfe448" -dependencies = [ - "zune-core", -] - -[[package]] -name = "zvariant" -version = "4.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "877ef94e5e82b231d2a309c531f191a8152baba8241a7939ee04bd76b0171308" -dependencies = [ - "endi", - "enumflags2", - "serde", - "static_assertions", - "zvariant_derive", -] - -[[package]] -name = "zvariant_derive" -version = "4.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7ca98581cc6a8120789d8f1f0997e9053837d6aa5346cbb43454d7121be6e39" -dependencies = [ - "proc-macro-crate", - "proc-macro2", - "quote", - "syn 1.0.109", - "zvariant_utils", -] - -[[package]] -name = "zvariant_utils" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75fa7291bdd68cd13c4f97cc9d78cbf16d96305856dfc7ac942aeff4c2de7d5a" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] diff --git a/hmModules/wezterm/default.nix b/hmModules/wezterm/default.nix index f7baef1..10c90af 100644 --- a/hmModules/wezterm/default.nix +++ b/hmModules/wezterm/default.nix @@ -1,64 +1,6 @@ -{ - pkgs, - hostname, - ... -}: { programs.wezterm = { enable = true; - package = - if hostname == "pircard" then - (pkgs.wezterm.overrideAttrs (old: rec { - pname = "wezterm"; - version = "20240406-cce0706"; - src = pkgs.fetchFromGitHub { - owner = "wez"; - repo = "${pname}"; - rev = "cce0706b1f2a9e2d1f02c57f2d1cd367c91df1ae"; - fetchSubmodules = true; - hash = "sha256-BBPxidOpFrw/tIRTqMSREyJF3QEWOwlIoVRT3FD62sQ="; - }; - cargoDeps = pkgs.rustPlatform.importCargoLock { - lockFile = "${src}/Cargo.lock"; - outputHashes = { - "xcb-imdkit-0.3.0" = "sha256-fTpJ6uNhjmCWv7dZqVgYuS2Uic36XNYTbqlaly5QBjI="; - }; - }; - patches = (old.patches or [ ]) ++ [ - (pkgs.fetchpatch { - # fix(wayland): ensure repaint event is sent in show - url = "https://patch-diff.githubusercontent.com/raw/wez/wezterm/pull/5264.patch"; - hash = "sha256-c+frVaBEL0h3PJvNu3AW2iap+uUXBY8olbm7Wsxuh4Q="; - }) - (pkgs.writeText "wezterm-remove_capabilities.patch" '' - diff --git a/window/src/os/wayland/seat.rs b/window/src/os/wayland/seat.rs - index 3798f4259..e91591130 100644 - --- a/window/src/os/wayland/seat.rs - +++ b/window/src/os/wayland/seat.rs - @@ -65,9 +65,15 @@ impl SeatHandler for WaylandState { - _conn: &Connection, - _qh: &QueueHandle, - _seat: WlSeat, - - _capability: smithay_client_toolkit::seat::Capability, - + capability: smithay_client_toolkit::seat::Capability, - ) { - - todo!() - + if capability == Capability::Keyboard && self.keyboard.is_some() { - + self.keyboard.take().unwrap().release(); - + } - + - + if capability == Capability::Pointer && self.pointer.is_some() { - + self.pointer = None; - + } - } - - fn remove_seat(&mut self, _conn: &Connection, _qh: &QueueHandle, _seat: WlSeat) { - '') - ]; - })) - else - pkgs.wezterm; - extraConfig = '' return { -- enable_wayland = false; -- https://github.com/wez/wezterm/issues/4483 From 7d5c1d1860bddb30bfa80c2e019e74d9937acb34 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Mon, 23 Sep 2024 13:45:09 +0200 Subject: [PATCH 039/492] Add `catppuccin` flake input --- flake.lock | 22 +++++++++++++++++++--- flake.nix | 1 + 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/flake.lock b/flake.lock index c430f78..fd7d351 100644 --- a/flake.lock +++ b/flake.lock @@ -21,6 +21,21 @@ "type": "github" } }, + "catppuccin": { + "locked": { + "lastModified": 1726952185, + "narHash": "sha256-l/HbsQjJMT6tlf8KCooFYi3J6wjIips3n6/aWAoLY4g=", + "owner": "catppuccin", + "repo": "nix", + "rev": "630b559cc1cb4c0bdd525af506935323e4ccd5d1", + "type": "github" + }, + "original": { + "owner": "catppuccin", + "repo": "nix", + "type": "github" + } + }, "crane": { "inputs": { "nixpkgs": [ @@ -433,11 +448,11 @@ ] }, "locked": { - "lastModified": 1725863684, - "narHash": "sha256-HmdTBpuCsw35Ii35JUKO6AE6nae+kJliQb0XGd4hoLE=", + "lastModified": 1726985855, + "narHash": "sha256-NJPGK030Y3qETpWBhj9oobDQRbXdXOPxtu+YgGvZ84o=", "owner": "nix-community", "repo": "home-manager", - "rev": "be47a2bdf278c57c2d05e747a13ed31cef54a037", + "rev": "04213d1ce4221f5d9b40bcee30706ce9a91d148d", "type": "github" }, "original": { @@ -1089,6 +1104,7 @@ "root": { "inputs": { "agenix": "agenix", + "catppuccin": "catppuccin", "disko": "disko", "dream2nix": "dream2nix", "flakeParts": "flakeParts", diff --git a/flake.nix b/flake.nix index 65cf299..79dd5bc 100644 --- a/flake.nix +++ b/flake.nix @@ -59,6 +59,7 @@ url = "github:nix-community/lanzaboote"; inputs.nixpkgs.follows = "nixpkgs"; }; + catppuccin.url = "github:catppuccin/nix"; }; outputs = From 4caa879c4e5302f5ce8737cd34b8cc0616a0448d Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Mon, 23 Sep 2024 13:47:17 +0200 Subject: [PATCH 040/492] Enable `catppuccin` on `picard` --- hmModules/btop/default.nix | 12 ------ hmModules/catppuccin/default.nix | 39 +++++++++++++++++ hmModules/foot/default.nix | 73 ++++++++++++++------------------ hmModules/helix/default.nix | 1 - hmModules/hyprland/default.nix | 13 +++--- hmModules/shell/default.nix | 40 ++--------------- hmModules/sway/default.nix | 2 +- hosts/default.nix | 2 + hosts/picard/default.nix | 1 + 9 files changed, 84 insertions(+), 99 deletions(-) create mode 100644 hmModules/catppuccin/default.nix diff --git a/hmModules/btop/default.nix b/hmModules/btop/default.nix index d3568da..5d23dec 100644 --- a/hmModules/btop/default.nix +++ b/hmModules/btop/default.nix @@ -1,21 +1,9 @@ -{ pkgs, ... }: { programs.btop = { enable = true; settings = { update_ms = 100; theme_background = false; - # color_theme = "${config.programs.btop.package}/share/btop/themes/dracula.theme"; - color_theme = - let - catppuccin-theme = pkgs.fetchFromGitHub { - owner = "catppuccin"; - repo = "btop"; - rev = "21b8d5956a8b07fa52519e3267fb3a2d2e693d17"; - hash = "sha256-UXeTypc15MhjgGUiCrDUZ40m32yH2o1N+rcrEgY6sME="; - }; - in - "${catppuccin-theme}/themes/catppuccin_mocha.theme"; }; }; } diff --git a/hmModules/catppuccin/default.nix b/hmModules/catppuccin/default.nix new file mode 100644 index 0000000..7b00ca9 --- /dev/null +++ b/hmModules/catppuccin/default.nix @@ -0,0 +1,39 @@ +{ lib, ... }: +{ + catppuccin = { + enable = true; + flavor = "mocha"; + accent = "sapphire"; + }; + + qt = { + platformTheme.name = lib.mkForce "kvantum"; + style.name = lib.mkForce "kvantum"; + }; + + # TODO move away + programs.alacritty = { + enable = true; + settings = { + font = { + normal = { + family = "Fira Code"; + style = "Regular"; + }; + bold = { + family = "Fira Code"; + style = "Bold"; + }; + italic = { + family = "Cascadia Code"; + style = "Italic"; + }; + bold_italic = { + family = "Fira Code"; + style = "Bold Italic"; + }; + size = 13; + }; + }; + }; +} diff --git a/hmModules/foot/default.nix b/hmModules/foot/default.nix index 620e385..620d5f8 100644 --- a/hmModules/foot/default.nix +++ b/hmModules/foot/default.nix @@ -1,59 +1,50 @@ { lib, - pkgs, config, ... }: lib.mkMerge [ { - programs.foot = - let - catppuccin = pkgs.fetchFromGitHub { - owner = "catppuccin"; - repo = "foot"; - rev = "307611230661b7b1787feb7f9d122e851bae97e9"; - hash = "sha256-mkPYHDJtfdfDnqLr1YOjaBpn4lCceok36LrnkUkNIE4="; - }; - in - { - enable = true; - server.enable = true; - settings = { - main = { - term = "xterm-256color"; - login-shell = "yes"; - dpi-aware = "no"; - horizontal-letter-offset = "1"; - include = "${catppuccin}/themes/catppuccin-mocha.ini"; - font = - let - size = "13"; - in + programs.foot = { + enable = true; + server.enable = true; + settings = { + main = { + term = "xterm-256color"; + login-shell = "yes"; + dpi-aware = "no"; + horizontal-letter-offset = "1"; + font = + let + size = "13"; + in + lib.mkForce ( lib.concatStringsSep ", " [ "Iosevka Comfy:size=${size}" "Symbols Nerd Font:size=${size}" "JoyPixels:size=${size}" - ]; - }; - cursor = { - blink = true; - }; - tweak = { - overflowing-glyphs = true; - }; + ] + ); + }; + cursor = { + blink = true; + }; + tweak = { + overflowing-glyphs = true; + }; - key-bindings = { - scrollback-up-page = "Control+Shift+k"; - scrollback-down-page = "Control+Shift+j"; - search-start = "Control+Shift+s"; - pipe-command-output = ''[sh -c 'f=$(mktemp); cat - > $f; footclient hx $f; rm $f'] Control+Shift+g''; - }; + key-bindings = { + scrollback-up-page = "Control+Shift+k"; + scrollback-down-page = "Control+Shift+j"; + search-start = "Control+Shift+s"; + pipe-command-output = ''[sh -c 'f=$(mktemp); cat - > $f; footclient hx $f; rm $f'] Control+Shift+g''; + }; - mouse = { - hide-when-typing = "yes"; - }; + mouse = { + hide-when-typing = "yes"; }; }; + }; } (lib.mkIf config.programs.fish.enable { programs.fish.functions = { diff --git a/hmModules/helix/default.nix b/hmModules/helix/default.nix index 5816637..c6ef610 100644 --- a/hmModules/helix/default.nix +++ b/hmModules/helix/default.nix @@ -12,7 +12,6 @@ enable = true; defaultEditor = true; settings = { - theme = "catppuccin_mocha"; editor = { indent-guides.render = true; cursor-shape = { diff --git a/hmModules/hyprland/default.nix b/hmModules/hyprland/default.nix index 646254c..92ffe67 100644 --- a/hmModules/hyprland/default.nix +++ b/hmModules/hyprland/default.nix @@ -56,21 +56,20 @@ in gtk = { enable = true; - font.name = "Sans,Symbols Nerd Font"; + # font.name = lib.mkForce "Sans,Symbols Nerd Font"; iconTheme = { name = "Adwaita"; package = pkgs.adwaita-icon-theme; }; - cursorTheme = { - name = "catppuccin-mocha-sapphire"; - package = pkgs.catppuccin-cursors; - size = 48; - }; + # cursorTheme = { + # name = "catppuccin-mocha-sapphire"; + # package = pkgs.catppuccin-cursors; + # size = 48; + # }; }; qt = { enable = true; - platformTheme.name = "gtk3"; }; # services.kanshi = { diff --git a/hmModules/shell/default.nix b/hmModules/shell/default.nix index 64f955e..d1e8fc4 100644 --- a/hmModules/shell/default.nix +++ b/hmModules/shell/default.nix @@ -116,45 +116,11 @@ # ''; # }; - xdg.configFile = { - "dracula-theme" = { - target = "fish/themes/dracula.theme"; - source = - let - theme = pkgs.fetchFromGitHub { - owner = "dracula"; - repo = "fish"; - rev = "269cd7d76d5104fdc2721db7b8848f6224bdf554"; - hash = "sha256-Hyq4EfSmWmxwCYhp3O8agr7VWFAflcUe8BUKh50fNfY="; - }; - in - "${theme}/themes/Dracula\ Official.theme"; - }; - "catppuccin-theme" = { - target = "fish/themes/Catppuccin\ Mocha.theme"; - source = - let - theme = pkgs.fetchFromGitHub { - owner = "catppuccin"; - repo = "fish"; - rev = "a3b9eb5eaf2171ba1359fe98f20d226c016568cf"; - hash = "sha256-shQxlyoauXJACoZWtRUbRMxmm10R8vOigXwjxBhG8ng="; - }; - in - "${theme}/themes/Catppuccin\ Mocha.theme"; - }; - }; - programs.fish = { enable = true; - shellInit = - '' - fish_config theme choose "dracula" - fish_config theme choose "Catppuccin Mocha" - '' - + lib.optionalString (builtins.hasAttr "cachix-personal-token" age.secrets) '' - export CACHIX_AUTH_TOKEN=$(cat ${age.secrets.cachix-personal-token.path}) - ''; + shellInit = lib.optionalString (builtins.hasAttr "cachix-personal-token" age.secrets) '' + export CACHIX_AUTH_TOKEN=$(cat ${age.secrets.cachix-personal-token.path}) + ''; shellAliases = { "cat" = "bat"; }; diff --git a/hmModules/sway/default.nix b/hmModules/sway/default.nix index 26fee7a..95d5bf4 100644 --- a/hmModules/sway/default.nix +++ b/hmModules/sway/default.nix @@ -28,7 +28,7 @@ gtk = { enable = true; - font.name = "Sans,Symbols Nerd Font"; + font.name = lib.mkForce "Sans,Symbols Nerd Font"; iconTheme = { name = "Adwaita"; package = pkgs.adwaita-icon-theme; diff --git a/hosts/default.nix b/hosts/default.nix index 18e0bc7..400f3ce 100644 --- a/hosts/default.nix +++ b/hosts/default.nix @@ -68,11 +68,13 @@ inputs.nixThePlanet.nixosModules.macos-ventura inputs.lix-module.nixosModules.default inputs.lanzaboote.nixosModules.lanzaboote + inputs.catppuccin.nixosModules.catppuccin ]; extraHmModules = [ # inputs.ccrEmacs.hmModules.default "${inputs.homeManagerGitWorkspace}/modules/services/git-workspace.nix" inputs.vscode-server.nixosModules.home + inputs.catppuccin.homeManagerModules.catppuccin ]; secrets = { "picard-wireguard-private-key" = { }; diff --git a/hosts/picard/default.nix b/hosts/picard/default.nix index baf46b0..def7e50 100644 --- a/hosts/picard/default.nix +++ b/hosts/picard/default.nix @@ -84,6 +84,7 @@ "reinstall-magisk-on-lineage" "vscode-server" "zk" + "catppuccin" ]; extraGroups = [ ]; backupPaths = [ ]; From 2686ad60865088b1102fabc1377810157703bbb4 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Mon, 23 Sep 2024 13:47:34 +0200 Subject: [PATCH 041/492] Re-enable `url-literals` deprecated feature --- modules/nix/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/nix/default.nix b/modules/nix/default.nix index 550aadf..cf855e4 100644 --- a/modules/nix/default.nix +++ b/modules/nix/default.nix @@ -32,7 +32,7 @@ "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" "mlabs.cachix.org-1:gStKdEqNKcrlSQw5iMW6wFCj3+b+1ASpBVY2SYuNV2M=" ]; - # deprecated-features = [ "url-literals" ]; + deprecated-features = [ "url-literals" ]; }; nixPath = [ "nixpkgs=${fleetFlake.inputs.nixpkgs}" ]; From 59cc5c791e39804fb1c415dc14210e6f22cca505 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Wed, 25 Sep 2024 14:15:57 +0200 Subject: [PATCH 042/492] Remove `impermanence` locked revision --- flake.lock | 83 +++++++++++++++++++++++++++--------------------------- flake.nix | 4 +-- 2 files changed, 43 insertions(+), 44 deletions(-) diff --git a/flake.lock b/flake.lock index fd7d351..1168cce 100644 --- a/flake.lock +++ b/flake.lock @@ -86,11 +86,11 @@ ] }, "locked": { - "lastModified": 1725377834, - "narHash": "sha256-tqoAO8oT6zEUDXte98cvA1saU9+1dLJQe3pMKLXv8ps=", + "lastModified": 1727156717, + "narHash": "sha256-Ef7UgoTdOB4PGQKSkHGu6SOxnTiArPHGcRf8qGFC39o=", "owner": "nix-community", "repo": "disko", - "rev": "e55f9a8678adc02024a4877c2a403e3f6daf24fe", + "rev": "c61e50b63ad50dda5797b1593ad7771be496efbb", "type": "github" }, "original": { @@ -106,11 +106,11 @@ "pyproject-nix": "pyproject-nix" }, "locked": { - "lastModified": 1722526955, - "narHash": "sha256-fFS8aDnfK9Qfm2FLnQ8pqWk8FzvFEv5LvTuZTZLREnc=", + "lastModified": 1726523340, + "narHash": "sha256-Av5mdR2lAGUVdA6DJ8Anon3/FZg3DX4gl1Ff72rCpKU=", "owner": "nix-community", "repo": "dream2nix", - "rev": "3fd4c14d3683baac8d1f94286ae14fe160888b51", + "rev": "b76c529f377100516c40c5b6e239a4525fdcabe0", "type": "github" }, "original": { @@ -250,11 +250,11 @@ "systems": "systems_2" }, "locked": { - "lastModified": 1710146030, - "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", + "lastModified": 1726560853, + "narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=", "owner": "numtide", "repo": "flake-utils", - "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", + "rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a", "type": "github" }, "original": { @@ -286,11 +286,11 @@ "nixpkgs-lib": "nixpkgs-lib" }, "locked": { - "lastModified": 1725234343, - "narHash": "sha256-+ebgonl3NbiKD2UD0x4BszCZQ6sTfL4xioaM49o5B3Y=", + "lastModified": 1726153070, + "narHash": "sha256-HO4zgY0ekfwO5bX0QH/3kJ/h4KvUDFZg8YpkNwIbg1U=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "567b938d64d4b4112ee253b9274472dc3a346eb6", + "rev": "bcef6817a8b2aa20a5a6dbb19b43e63c5bf8619a", "type": "github" }, "original": { @@ -448,11 +448,11 @@ ] }, "locked": { - "lastModified": 1726985855, - "narHash": "sha256-NJPGK030Y3qETpWBhj9oobDQRbXdXOPxtu+YgGvZ84o=", + "lastModified": 1727111745, + "narHash": "sha256-EYLvFRoTPWtD+3uDg2wwQvlz88OrIr3zld+jFE5gDcY=", "owner": "nix-community", "repo": "home-manager", - "rev": "04213d1ce4221f5d9b40bcee30706ce9a91d148d", + "rev": "21c021862fa696c8199934e2153214ab57150cb6", "type": "github" }, "original": { @@ -484,11 +484,11 @@ }, "impermanence": { "locked": { - "lastModified": 1725690722, - "narHash": "sha256-4qWg9sNh5g1qPGO6d/GV2ktY+eDikkBTbWSg5/iD2nY=", + "lastModified": 1727198257, + "narHash": "sha256-/qMVI+SG9zvhLbQFOnqb4y4BH6DdK3DQHZU5qGptehc=", "owner": "nix-community", "repo": "impermanence", - "rev": "63f4d0443e32b0dd7189001ee1894066765d18a5", + "rev": "8514fff0f048557723021ffeb31ca55f69b67de3", "type": "github" }, "original": { @@ -542,11 +542,11 @@ "lix": { "flake": false, "locked": { - "lastModified": 1725846500, - "narHash": "sha256-8tzJO3PllVPc0RYE0OfXVWlgTiJxKH1nzXsQLGyFRJ4=", + "lastModified": 1726905313, + "narHash": "sha256-jsOyXonevsNaKxM9burYc2S4JVle+VMCJ8+AAp0MDCc=", "ref": "refs/heads/main", - "rev": "c14486ae8d3bbc862c625d948a6b2f4dc0927d5b", - "revCount": 16226, + "rev": "5f298f74c92402a8390b01c736463b17b36277e3", + "revCount": 16254, "type": "git", "url": "https://git@git.lix.systems/lix-project/lix" }, @@ -567,11 +567,11 @@ ] }, "locked": { - "lastModified": 1725836728, - "narHash": "sha256-dCbHCwqrzcHlEsRilMX+KM3IfRV46ieGqDyAD3GgCSs=", + "lastModified": 1726631249, + "narHash": "sha256-b2rMO8+jKjY55d8uynX7FjV4NIPu/WzPux0kWOAzwoo=", "ref": "refs/heads/main", - "rev": "353b25f0b6da5ede15206d416345a2ec4195b5c8", - "revCount": 107, + "rev": "b0e6f359500d66670cc16f521e4f62d6a0a4864e", + "revCount": 110, "type": "git", "url": "https://git.lix.systems/lix-project/nixos-module" }, @@ -583,11 +583,11 @@ "mobile-nixos": { "flake": false, "locked": { - "lastModified": 1725601293, - "narHash": "sha256-PLk1m0ZukClV+qrszd6WaNclpge8zGsSBTOAwYB9es4=", + "lastModified": 1726960027, + "narHash": "sha256-BJe+6Gpqu98Mhi1oAfrJK25SZvvQgfYqpmLaXvXgQ9g=", "owner": "NixOS", "repo": "mobile-nixos", - "rev": "672f8299e484301994858d9220921309f631d616", + "rev": "a386813d9ec46fa32e51488f7d48c0e1bde77f8e", "type": "github" }, "original": { @@ -652,11 +652,11 @@ ] }, "locked": { - "lastModified": 1725628909, - "narHash": "sha256-xI0OSqPHcs/c/utJsU0Zvcp1VhejMI9mgwr68uHHlPs=", + "lastModified": 1727003835, + "narHash": "sha256-Cfllbt/ADfO8oxbT984MhPHR6FJBaglsr1SxtDGbpec=", "owner": "LnL7", "repo": "nix-darwin", - "rev": "76559183801030451e200c90a1627c1d82bb4910", + "rev": "bd7d1e3912d40f799c5c0f7e5820ec950f1e0b3d", "type": "github" }, "original": { @@ -691,11 +691,11 @@ }, "nixosHardware": { "locked": { - "lastModified": 1725885300, - "narHash": "sha256-5RLEnou1/GJQl+Wd+Bxaj7QY7FFQ9wjnFq1VNEaxTmc=", + "lastModified": 1727040444, + "narHash": "sha256-19FNN5QT9Z11ZUMfftRplyNN+2PgcHKb3oq8KMW/hDA=", "owner": "NixOS", "repo": "nixos-hardware", - "rev": "166dee4f88a7e3ba1b7a243edb1aca822f00680e", + "rev": "d0cb432a9d28218df11cbd77d984a2a46caeb5ac", "type": "github" }, "original": { @@ -897,15 +897,16 @@ }, "nixpkgs_5": { "locked": { - "lastModified": 1726745986, - "narHash": "sha256-xB35C2fpz7iyNcj9sn0a+wM2C4CQ6DGTn5VUHogstYs=", + "lastModified": 1726937504, + "narHash": "sha256-bvGoiQBvponpZh8ClUcmJ6QnsNKw0EMrCQJARK3bI1c=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "268bb5090a3c6ac5e1615b38542a868b52ef8088", + "rev": "9357f4f23713673f310988025d9dc261c20e70c6", "type": "github" }, "original": { "owner": "NixOS", + "ref": "nixos-unstable", "repo": "nixpkgs", "type": "github" } @@ -1275,11 +1276,11 @@ ] }, "locked": { - "lastModified": 1725271838, - "narHash": "sha256-VcqxWT0O/gMaeWTTjf1r4MOyG49NaNxW4GHTO3xuThE=", + "lastModified": 1727098951, + "narHash": "sha256-gplorAc0ISAUPemUNOnRUs7jr3WiLiHZb3DJh++IkZs=", "owner": "numtide", "repo": "treefmt-nix", - "rev": "9fb342d14b69aefdf46187f6bb80a4a0d97007cd", + "rev": "35dfece10c642eb52928a48bee7ac06a59f93e9a", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 79dd5bc..001eca4 100644 --- a/flake.nix +++ b/flake.nix @@ -3,9 +3,7 @@ inputs = { flakeParts.url = "github:hercules-ci/flake-parts"; - # FIXME remove constraint - nixpkgs.url = "github:NixOS/nixpkgs"; - # nixpkgsForSisko.url = "github:NixOS/nixpkgs/0e74ca98a74bc7270d28838369593635a5db3260"; + nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; nixosHardware.url = "github:NixOS/nixos-hardware"; homeManager = { url = "github:nix-community/home-manager"; From 28afd2dc86e922faf1f241f112962afc316d9c45 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Wed, 25 Sep 2024 14:16:41 +0200 Subject: [PATCH 043/492] `cargoHash256` -> `cargoHash` --- packages/spotify-adblocked/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/spotify-adblocked/default.nix b/packages/spotify-adblocked/default.nix index 94df5c9..f44acea 100644 --- a/packages/spotify-adblocked/default.nix +++ b/packages/spotify-adblocked/default.nix @@ -15,7 +15,7 @@ let rev = "5a3281dee9f889afdeea7263558e7a715dcf5aab"; hash = "sha256-UzpHAHpQx2MlmBNKm2turjeVmgp5zXKWm3nZbEo0mYE="; }; - cargoSha256 = "sha256-wPV+ZY34OMbBrjmhvwjljbwmcUiPdWNHFU3ac7aVbIQ="; + cargoHash = "sha256-wPV+ZY34OMbBrjmhvwjljbwmcUiPdWNHFU3ac7aVbIQ="; patchPhase = '' substituteInPlace src/lib.rs \ From 7159aa535c2bc327e999a5d0ce09cbaf23a1c778 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Wed, 25 Sep 2024 14:18:06 +0200 Subject: [PATCH 044/492] Rename `immich` container --- modules/immich/default.nix | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/modules/immich/default.nix b/modules/immich/default.nix index 21d8bd5..be7e905 100644 --- a/modules/immich/default.nix +++ b/modules/immich/default.nix @@ -1,10 +1,6 @@ -{ config, ... }: -let - nixpkgsImmich = builtins.getFlake "github:NixOS/nixpkgs/c0ee4c1770aa1ef998c977c4cc653a07ec95d9bf"; -in { - containers.nextcloud = { - nixpkgs = nixpkgsImmich; + containers.immich = { + nixpkgs = builtins.getFlake "github:NixOS/nixpkgs/51296fce6f2b33717f710788af4e134aa7ff0e58"; autoStart = true; privateNetwork = true; # hostAddress = "192.168.100.10"; From 08b1521824d92d022372f5f1e77ab71b40d30cd5 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Wed, 25 Sep 2024 14:18:21 +0200 Subject: [PATCH 045/492] Use `lix` on `sisko` --- hosts/default.nix | 1 + hosts/sisko/default.nix | 8 -------- 2 files changed, 1 insertion(+), 8 deletions(-) diff --git a/hosts/default.nix b/hosts/default.nix index 400f3ce..480c37d 100644 --- a/hosts/default.nix +++ b/hosts/default.nix @@ -97,6 +97,7 @@ extraModules = with inputs; [ disko.nixosModules.disko impermanence.nixosModules.impermanence + lix-module.nixosModules.default ]; secrets = { "sisko-wireguard-private-key" = { }; diff --git a/hosts/sisko/default.nix b/hosts/sisko/default.nix index 79ef8fe..8341327 100644 --- a/hosts/sisko/default.nix +++ b/hosts/sisko/default.nix @@ -21,14 +21,7 @@ "invidious" "searx" "rock5b-samba" - # "paperless" - # "restic" - # "syncthing" - # "minio" - # # "matrix" "forgejo" - # # "jellyfin" - # "immich" "prometheus" "grafana" "prometheus-exporters" @@ -36,7 +29,6 @@ "promtail" "garmin-collector" "restic" - # "immich" "atuin" ] ++ [ From 27fdc7a92e0a9f0bcf90eb16bd53e7396679fbe1 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Wed, 25 Sep 2024 14:18:30 +0200 Subject: [PATCH 046/492] Enable `freecad` on `picard` --- hmModules/freecad/default.nix | 4 ++++ hosts/picard/default.nix | 1 + 2 files changed, 5 insertions(+) create mode 100644 hmModules/freecad/default.nix diff --git a/hmModules/freecad/default.nix b/hmModules/freecad/default.nix new file mode 100644 index 0000000..ef86027 --- /dev/null +++ b/hmModules/freecad/default.nix @@ -0,0 +1,4 @@ +{ pkgs, ... }: +{ + home.packages = [ pkgs.freecad-wayland ]; +} diff --git a/hosts/picard/default.nix b/hosts/picard/default.nix index def7e50..be7d2f8 100644 --- a/hosts/picard/default.nix +++ b/hosts/picard/default.nix @@ -85,6 +85,7 @@ "vscode-server" "zk" "catppuccin" + "freecad" ]; extraGroups = [ ]; backupPaths = [ ]; From d97229fa112b6f2900176fe7f999a14f92f1334f Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Wed, 25 Sep 2024 14:18:52 +0200 Subject: [PATCH 047/492] Fix `waybar` startup latency problem --- hmModules/tremotesf/default.nix | 4 +++- hmModules/zmkbatx/default.nix | 3 +-- modules/xdg/default.nix | 15 +++++++++------ 3 files changed, 13 insertions(+), 9 deletions(-) diff --git a/hmModules/tremotesf/default.nix b/hmModules/tremotesf/default.nix index a3569a1..82c1336 100644 --- a/hmModules/tremotesf/default.nix +++ b/hmModules/tremotesf/default.nix @@ -7,7 +7,9 @@ home.packages = [ pkgs.tremotesf ]; systemd.user.services.tremotesf = { - Install.WantedBy = [ "graphical-session.target" ]; + Install.WantedBy = [ + "waybar.service" + ]; Unit = { Description = "tremotesf"; diff --git a/hmModules/zmkbatx/default.nix b/hmModules/zmkbatx/default.nix index b7f9065..0070092 100644 --- a/hmModules/zmkbatx/default.nix +++ b/hmModules/zmkbatx/default.nix @@ -8,7 +8,6 @@ systemd.user.services.zmkBATx = { Install.WantedBy = [ - "graphical-session.target" "waybar.service" ]; @@ -17,7 +16,7 @@ }; Service = { - ExecStart = lib.getExe pkgs.zmkBATx; + ExecStart = "sleep 5 && ${lib.getExe pkgs.zmkBATx}"; Restart = "on-failure"; RestartSec = 3; }; diff --git a/modules/xdg/default.nix b/modules/xdg/default.nix index 0a07d40..c1aa55a 100644 --- a/modules/xdg/default.nix +++ b/modules/xdg/default.nix @@ -3,15 +3,18 @@ xdg = { portal = { enable = true; - extraPortals = with pkgs; [ + configPackages = with pkgs; [ + xdg-desktop-portal-wlr xdg-desktop-portal-gtk xdg-desktop-portal-hyprland ]; - config.common.default = "*"; + extraPortals = with pkgs; [ + xdg-desktop-portal-wlr + xdg-desktop-portal-gtk + xdg-desktop-portal-hyprland + ]; + xdgOpenUsePortal = true; + wlr.enable = true; }; }; - - environment.sessionVariables = { - GTK_USE_PORTAL = "1"; - }; } From 5ec6b664bf231c8b9c257080de8f1122dd3a5373 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Wed, 25 Sep 2024 14:19:15 +0200 Subject: [PATCH 048/492] Use default editor in the `EDITOR` env variable --- hmModules/git/default.nix | 2 -- 1 file changed, 2 deletions(-) diff --git a/hmModules/git/default.nix b/hmModules/git/default.nix index fcec555..8b1dfd4 100644 --- a/hmModules/git/default.nix +++ b/hmModules/git/default.nix @@ -27,8 +27,6 @@ in user.signingKey = "/home/${username}/.ssh/id_rsa"; gpg.format = "ssh"; commit.gpgsign = true; - - core.editor = "emacsclient"; }; userName = config.name; From c17fb32a289e8a38096cebe8894d613756a3edaa Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Wed, 25 Sep 2024 14:20:30 +0200 Subject: [PATCH 049/492] Enable `ranger` --- hmModules/shell/default.nix | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/hmModules/shell/default.nix b/hmModules/shell/default.nix index d1e8fc4..e9916d9 100644 --- a/hmModules/shell/default.nix +++ b/hmModules/shell/default.nix @@ -8,6 +8,13 @@ { programs.bat.enable = true; + programs.ranger = { + enable = true; + settings = { + "preview_images" = true; + "preview_images_method" = "sixel"; + }; + }; programs.direnv = { enable = true; config = { From 404f022701801f76764080d597102d09a9d43d7f Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Wed, 25 Sep 2024 14:20:39 +0200 Subject: [PATCH 050/492] Enable `fzf` --- hmModules/shell/default.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/hmModules/shell/default.nix b/hmModules/shell/default.nix index e9916d9..3ab806f 100644 --- a/hmModules/shell/default.nix +++ b/hmModules/shell/default.nix @@ -15,6 +15,8 @@ "preview_images_method" = "sixel"; }; }; + + programs.fzf.enable = true; programs.direnv = { enable = true; config = { From f0698e809b15ef611673ca191b213b8f9d914b67 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Wed, 25 Sep 2024 14:20:50 +0200 Subject: [PATCH 051/492] Enable `ripgrep` --- hmModules/shell/default.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/hmModules/shell/default.nix b/hmModules/shell/default.nix index 3ab806f..5af72fd 100644 --- a/hmModules/shell/default.nix +++ b/hmModules/shell/default.nix @@ -17,6 +17,9 @@ }; programs.fzf.enable = true; + + programs.ripgrep.enable = true; + programs.direnv = { enable = true; config = { From df27f03c62e23a310ee636bc8222d108550565f0 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Wed, 25 Sep 2024 14:21:07 +0200 Subject: [PATCH 052/492] Use `lsd` instead of `exa` --- hmModules/shell/default.nix | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/hmModules/shell/default.nix b/hmModules/shell/default.nix index 5af72fd..39dbdb8 100644 --- a/hmModules/shell/default.nix +++ b/hmModules/shell/default.nix @@ -28,12 +28,10 @@ nix-direnv.enable = true; }; - # programs.exa = { - # enable = false; - # enableAliases = true; - # }; - - # programs.fzf.enable = false; + programs.lsd = { + enable = false; + enableAliases = true; + }; programs.vim.enable = true; From ec10309491e3957f56b5d765fe8b07740fd2a72f Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Wed, 25 Sep 2024 14:21:18 +0200 Subject: [PATCH 053/492] Remove unused stuff --- hmModules/shell/default.nix | 66 ------------------------------------- 1 file changed, 66 deletions(-) diff --git a/hmModules/shell/default.nix b/hmModules/shell/default.nix index 39dbdb8..8a5dd2c 100644 --- a/hmModules/shell/default.nix +++ b/hmModules/shell/default.nix @@ -60,72 +60,6 @@ }; }; - # programs.starship = { - # enable = false; - # settings = { - # character = { - # success_symbol = "[👌](bold green)"; - # error_symbol = "[🤌](bold red)"; - # }; - # nix_shell = { - # symbol = "❄ "; - # }; - # }; - # }; - - # Playing with it sometimes - # programs.nushell = { - # enable = false; - # configFile.text = '' - # let carapace_completer = {|spans| - # carapace $spans.0 nushell $spans | from json - # } - # let-env config = { - # show_banner: false - # ls: { - # use_ls_colors: true # use the LS_COLORS environment variable to colorize output - # clickable_links: true # enable or disable clickable links. Your terminal has to support links. - # } - # rm: { - # always_trash: true # always act as if -t was given. Can be overridden with -p - # } - # cd: { - # abbreviations: true # allows `cd s/o/f` to expand to `cd some/other/folder` - # } - # table: { - # mode: compact # basic, compact, compact_double, light, thin, with_love, rounded, reinforced, heavy, none, other - # index_mode: always # "always" show indexes, "never" show indexes, "auto" = show indexes when a table has "index" column - # trim: { - # methodology: wrapping # wrapping or truncating - # wrapping_try_keep_words: true # A strategy used by the 'wrapping' methodology - # truncating_suffix: "..." # A suffix used by the 'truncating' methodology - # } - # } - # history: { - # max_size: 10000 # Session has to be reloaded for this to take effect - # sync_on_enter: true # Enable to share history between multiple sessions, else you have to close the session to write history to file - # file_format: "plaintext" # "sqlite" or "plaintext" - # } - # completions: { - # case_sensitive: false # set to true to enable case-sensitive completions - # quick: true # set this to false to prevent auto-selecting completions when only one remains - # partial: true # set this to false to prevent partial filling of the prompt - # algorithm: "fuzzy" # prefix or fuzzy - # external: { - # enable: true # set to false to prevent nushell looking into $env.PATH to find more suggestions, `false` recommended for WSL users as this look up my be very slow - # max_results: 100 # setting it lower can improve completion performance at the cost of omitting some options - # completer: $carapace_completer # check 'carapace_completer' above as an example - # } - # } - # filesize: { - # metric: true # true => KB, MB, GB (ISO standard), false => KiB, MiB, GiB (Windows standard) - # format: "auto" # b, kb, kib, mb, mib, gb, gib, tb, tib, pb, pib, eb, eib, zb, zib, auto - # } - # buffer_editor: "${config.programs.helix.package}/bin/helix" - # } - # ''; - # }; - programs.fish = { enable = true; shellInit = lib.optionalString (builtins.hasAttr "cachix-personal-token" age.secrets) '' From 6cab6c0bf1e15cfe74a9ecf559ff8d0b42d163b9 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Wed, 25 Sep 2024 14:21:52 +0200 Subject: [PATCH 054/492] Use VI keybindings in fish shell --- hmModules/shell/default.nix | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/hmModules/shell/default.nix b/hmModules/shell/default.nix index 8a5dd2c..8baf4d8 100644 --- a/hmModules/shell/default.nix +++ b/hmModules/shell/default.nix @@ -62,9 +62,13 @@ programs.fish = { enable = true; - shellInit = lib.optionalString (builtins.hasAttr "cachix-personal-token" age.secrets) '' - export CACHIX_AUTH_TOKEN=$(cat ${age.secrets.cachix-personal-token.path}) - ''; + shellInit = + '' + fish_vi_key_bindings + '' + + lib.optionalString (builtins.hasAttr "cachix-personal-token" age.secrets) '' + export CACHIX_AUTH_TOKEN=$(cat ${age.secrets.cachix-personal-token.path}) + ''; shellAliases = { "cat" = "bat"; }; From db480ac857ab807aa01d412da58d34b3da3a9dc7 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Wed, 25 Sep 2024 14:22:16 +0200 Subject: [PATCH 055/492] Remove unused stuff --- hmModules/shell/default.nix | 80 ------------------------------------- 1 file changed, 80 deletions(-) diff --git a/hmModules/shell/default.nix b/hmModules/shell/default.nix index 8baf4d8..3c129e9 100644 --- a/hmModules/shell/default.nix +++ b/hmModules/shell/default.nix @@ -74,93 +74,13 @@ }; }; - # programs.zsh = { - # enable = false; # Playing xswith fish at the moment - # enableAutosuggestions = true; - # enableCompletion = true; - # enableSyntaxHighlighting = true; - # enableVteIntegration = true; - # autocd = true; - # oh-my-zsh = { - # enable = true; - # plugins = [ - # "ag" - # "cabal" - # "colored-man-pages" - # "colorize" - # "command-not-found" - # "fzf" - # "git" - # "nomad" - # "pass" - # "python" - # "sudo" - # "terraform" - # "thefuck" - # ]; - # }; - # plugins = [ - # { - # name = "fzf-tab"; - # src = pkgs.fetchFromGitHub { - # owner = "Aloxaf"; - # repo = "fzf-tab"; - # rev = "c2b4aa5ad2532cca91f23908ac7f00efb7ff09c9"; - # sha256 = "sha256-gvZp8P3quOtcy1Xtt1LAW1cfZ/zCtnAmnWqcwrKel6w="; - # }; - # } - # { - # name = "fzf-tab"; - # src = pkgs.fetchFromGitHub { - # owner = "Aloxaf"; - # repo = "fzf-tab"; - # rev = "c2b4aa5ad2532cca91f23908ac7f00efb7ff09c9"; - # sha256 = "sha256-gvZp8P3quOtcy1Xtt1LAW1cfZ/zCtnAmnWqcwrKel6w="; - # }; - # } - # { - # name = "fast-syntax-highlighting"; - # src = pkgs.fetchFromGitHub { - # owner = "zdharma-continuum"; - # repo = "fast-syntax-highlighting"; - # rev = "13d7b4e63468307b6dcb2dadf6150818f242cbff"; - # sha256 = "sha256-AmsexwVombgVmRvl4O9Kd/WbnVJHPTXETxBv18PDHz4="; - # }; - # } - # ]; - # shellAliases = { - # "cat" = "bat"; - # "em" = "TERM=wezterm emacsclient -nw"; - # }; - # loginExtra = "[[ -z $DISPLAY && $TTY = /dev/tty1 ]] && exec dbus-run-session Hyprland"; - # envExtra = '' - # # [ $TERM = "dumb" ] && unsetopt zle && PS1='$ ' # for Emacs TRAMP mode - # ''; - # initExtra = '' - # export CACHIX_AUTH_TOKEN=$(cat ${age.secrets.cachix-personal-token.path}) - - # # Don't enable VIM emulation when in Emacs - # [[ -z $INSIDE_EMACS ]] && source ${pkgs.zsh-vi-mode}/share/zsh-vi-mode/zsh-vi-mode.plugin.zsh - - # # When enabling starship, home-manager add an `initExtra` rule to disable it when in Emacs but not with VTerm, - # # since I use also `eat` besides `vterm` the following line is needed - # [[ "$INSIDE_EMACS" =~ "eat" ]] && eval "$(${config.home.profileDirectory}/bin/starship init zsh)" - # ''; - # }; - home.packages = with pkgs; [ thefuck - htop-vim - bottom dig.dnsutils lsof - zsh-completions - nix-zsh-completions comma - carapace # used by nushell - neovim ] ++ (lib.optionals (builtins.elem hostname [ From 516f3a3d3e214dae1040d567ab9adf9548edb8e5 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Wed, 25 Sep 2024 14:22:24 +0200 Subject: [PATCH 056/492] Add generic utils --- hmModules/shell/default.nix | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/hmModules/shell/default.nix b/hmModules/shell/default.nix index 3c129e9..32f4a8f 100644 --- a/hmModules/shell/default.nix +++ b/hmModules/shell/default.nix @@ -81,6 +81,11 @@ dig.dnsutils lsof comma + ffmpeg-headless + jless + nix-melt + jq + yq-go ] ++ (lib.optionals (builtins.elem hostname [ From 7d3c774e4ef356c1671210f6a2460d2f31dce10a Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Wed, 25 Sep 2024 14:23:33 +0200 Subject: [PATCH 057/492] Add padding --- hmModules/foot/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/hmModules/foot/default.nix b/hmModules/foot/default.nix index 620d5f8..e8ac8d3 100644 --- a/hmModules/foot/default.nix +++ b/hmModules/foot/default.nix @@ -14,6 +14,7 @@ lib.mkMerge [ login-shell = "yes"; dpi-aware = "no"; horizontal-letter-offset = "1"; + pad = "1x1"; font = let size = "13"; From ad844d92665a0a8ddf768f12584e2783ecf40db9 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 26 Sep 2024 22:18:45 +0200 Subject: [PATCH 058/492] Add `fzf-pass` custom util --- hmModules/password-store/default.nix | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/hmModules/password-store/default.nix b/hmModules/password-store/default.nix index 69be6e1..69dbc78 100644 --- a/hmModules/password-store/default.nix +++ b/hmModules/password-store/default.nix @@ -3,6 +3,14 @@ username, ... }: +let + fzfpass = pkgs.writeShellApplication { + name = "fzfpass"; + text = '' + find "$PASSWORD_STORE_DIR" -name "*.gpg" | sed "s|$PASSWORD_STORE_DIR/||; s|\.gpg||" | fzf --border --info=inline | xargs pass "$@" + ''; + }; +in { programs.password-store = { enable = true; @@ -11,4 +19,5 @@ }; package = pkgs.pass.withExtensions (e: [ e.pass-otp ]); }; + home.packages = [ fzfpass ]; } From 243f5b5607b81918b183985f24bab8b91db6e8a4 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 26 Sep 2024 22:19:05 +0200 Subject: [PATCH 059/492] Improve shell --- hmModules/shell/default.nix | 109 +++++++++++++++++++++++++++++++++++- 1 file changed, 108 insertions(+), 1 deletion(-) diff --git a/hmModules/shell/default.nix b/hmModules/shell/default.nix index 32f4a8f..b270b08 100644 --- a/hmModules/shell/default.nix +++ b/hmModules/shell/default.nix @@ -20,6 +20,97 @@ programs.ripgrep.enable = true; + programs.fd.enable = true; + + programs.zellij = + let + zjstatus = pkgs.fetchurl { + url = "https://github.com/dj95/zjstatus/releases/download/v0.17.0/zjstatus.wasm"; + hash = "sha256-IgTfSl24Eap+0zhfiwTvmdVy/dryPxfEF7LhVNVXe+U="; + }; + layout = pkgs.writeText "layout.kdl" '' + layout { + default_tab_template { + pane size=1 borderless=true { + plugin location="file:${zjstatus}" { + // Nord theme + color_fg "#cdd6f4" + color_bg "#1e1e2e" + color_black "#45475a" + color_red "#f38ba8" + color_green "#a6e3a1" + color_yellow "#f9e2af" + color_blue "#89b4fa" + color_magenta "#f5c2e7" + color_cyan "#94e2d5" + color_white "#bac2de" + + format_left "{mode}#[bg=$bg] {tabs}" + format_center "#[bg=$bg,fg=$fg] Zellij: #[bg=$bg,fg=$fg]{session}" + format_right "{datetime}" + format_space "#[bg=$bg]" + format_hide_on_overlength "true" + format_precedence "crl" + + border_enabled "false" + border_char "─" + border_format "#[fg=#6C7086]{char}" + border_position "top" + + hide_frame_for_single_pane "true" + + mode_normal "#[bg=$green,fg=$bg,bold] NORMAL #[bg=$bg,fg=$green]" + mode_locked "#[bg=$red,fg=$bg,bold] LOCKED  #[bg=$bg,fg=$red]" + mode_resize "#[bg=$blue,fg=$bg,bold] RESIZE #[bg=$bg,fg=$blue]" + mode_pane "#[bg=$blue,fg=$bg,bold] PANE #[bg=$bg,fg=$blue]" + mode_tab "#[bg=$yellow,fg=$bg,bold] TAB #[bg=$bg,fg=$yellow]" + mode_scroll "#[bg=$blue,fg=$bg,bold] SCROLL #[bg=$bg,fg=$blue]" + mode_enter_search "#[bg=$yellow,fg=$bg,bold] ENT-SEARCH #[bg=$bg,fg=$yellow]" + mode_search "#[bg=$yellow,fg=$bg,bold] SEARCHARCH #[bg=$bg,fg=$yellow]" + mode_rename_tab "#[bg=$yellow,fg=$bg,bold] RENAME-TAB #[bg=$bg,fg=$yellow]" + mode_rename_pane "#[bg=$blue,fg=$bg,bold] RENAME-PANE #[bg=$bg,fg=$blue]" + mode_session "#[bg=$blue,fg=$bg,bold] SESSION #[bg=$bg,fg=$blue]" + mode_move "#[bg=$blue,fg=$bg,bold] MOVE #[bg=$bg,fg=$blue]" + mode_prompt "#[bg=$blue,fg=$bg,bold] PROMPT #[bg=$bg,fg=$blue]" + mode_tmux "#[bg=$magenta,fg=$bg,bold] TMUX #[bg=$bg,fg=$magenta]" + + // formatting for inactive tabs + tab_normal "#[bg=$bg,fg=$cyan]#[bg=$cyan,fg=$bg,bold]{index} #[bg=$bg,fg=$cyan,bold] {name}{floating_indicator}#[bg=$bg,fg=$bg,bold]" + tab_normal_fullscreen "#[bg=$bg,fg=$cyan]#[bg=$cyan,fg=$bg,bold]{index} #[bg=$bg,fg=$cyan,bold] {name}{fullscreen_indicator}#[bg=$bg,fg=$bg,bold]" + tab_normal_sync "#[bg=$bg,fg=$cyan]#[bg=$cyan,fg=$bg,bold]{index} #[bg=$bg,fg=$cyan,bold] {name}{sync_indicator}#[bg=$bg,fg=$bg,bold]" + + // formatting for the current active tab + tab_active "#[bg=$bg,fg=$yellow]#[bg=$yellow,fg=$bg,bold]{index} #[bg=$bg,fg=$yellow,bold] {name}{floating_indicator}#[bg=$bg,fg=$bg,bold]" + tab_active_fullscreen "#[bg=$bg,fg=$yellow]#[bg=$yellow,fg=$bg,bold]{index} #[bg=$bg,fg=$yellow,bold] {name}{fullscreen_indicator}#[bg=$bg,fg=$bg,bold]" + tab_active_sync "#[bg=$bg,fg=$yellow]#[bg=$yellow,fg=$bg,bold]{index} #[bg=$bg,fg=$yellow,bold] {name}{sync_indicator}#[bg=$bg,fg=$bg,bold]" + + // separator between the tabs + tab_separator "#[bg=$bg] " + + // indicators + tab_sync_indicator " " + tab_fullscreen_indicator " 󰊓" + tab_floating_indicator " 󰹙" + + datetime "#[fg=$fg] {format} " + datetime_format "%Y-%m-%d %H:%M" + datetime_timezone "Europe/Rome" + } + } + children + } + } + ''; + in + { + enable = true; + enableFishIntegration = true; + settings = { + default_layout = "${layout}"; + pane_frames = false; + }; + }; + programs.direnv = { enable = true; config = { @@ -29,7 +120,7 @@ }; programs.lsd = { - enable = false; + enable = true; enableAliases = true; }; @@ -62,6 +153,16 @@ programs.fish = { enable = true; + plugins = [ + { + name = "fifc"; + src = pkgs.fishPlugins.fifc.src; + } + { + name = "z"; + src = pkgs.fishPlugins.fifc.src; + } + ]; shellInit = '' fish_vi_key_bindings @@ -84,8 +185,14 @@ ffmpeg-headless jless nix-melt + nurl jq yq-go + procs + chafa + hexyl + broot + file ] ++ (lib.optionals (builtins.elem hostname [ From 9df249c52d85a8bcd0c17287734b994ebaabc6c0 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 26 Sep 2024 22:19:16 +0200 Subject: [PATCH 060/492] Improve firefox --- hmModules/firefox/catppuccin.css | 187 +++++++++++++++++++++++++++++++ hmModules/firefox/default.nix | 90 +++++++++++---- hmModules/firefox/userchrome.css | 67 +++++++++++ 3 files changed, 323 insertions(+), 21 deletions(-) create mode 100644 hmModules/firefox/catppuccin.css create mode 100644 hmModules/firefox/userchrome.css diff --git a/hmModules/firefox/catppuccin.css b/hmModules/firefox/catppuccin.css new file mode 100644 index 0000000..8cad578 --- /dev/null +++ b/hmModules/firefox/catppuccin.css @@ -0,0 +1,187 @@ +:root { /* Catppuccin Colors */ + --bg: #1e1e2e; + --currentline: #302D41; + --fg: #d9e0ee; + --comment: #575268; + --flamingo: #f2cdcd; + --mauve: #ddb6f2; + --pink: #f5c2e7; + --maroon: #e8a2af; + --red: #f28fad; + --peach: #f8bd96; + --yellow: #fae3b0; + --green: #abe9b3; + --teal: #b5e8e0; + --blue: #96cdfb; + --sky: #89dceb; + --lavender: #c9cbff; + --rosewater: #f5e0dc; + --font: monospace; /*"FiraCode Nerd Font Mono";*/ + + /* vimium theme uses colors: flamingo, peach, rosewater, green, blue, lavender */ + --tridactyl-fg: var(--fg); + --tridactyl-bg: var(--bg); + --tridactyl-url-fg: var(--rosewater); + --tridactyl-url-bg: var(--bg); + --tridactyl-highlight-box-bg: var(--currentline); + --tridactyl-highlight-box-fg: var(--fg); + --tridactyl-of-fg: var(--fg); + --tridactyl-of-bg: var(--currentline); + --tridactyl-cmdl-fg: var(--bg); + --tridactyl-cmdl-font-family: var(--font); + --tridactyl-cmplt-font-family: var(--font); + --tridactyl-hintspan-font-family: var(--font); + + /* Hint character tags */ + --tridactyl-hintspan-fg: var(--bg) !important; + --tridactyl-hintspan-bg: var(--green) !important; + + /* Element Highlights */ + --tridactyl-hint-active-fg: none; + --tridactyl-hint-active-bg: none; + --tridactyl-hint-active-outline: none; + --tridactyl-hint-bg: none; + --tridactyl-hint-outline: none; +} + +#command-line-holder { + order: 1; + border: 2px solid var(--lavender); + background: var(--tridactyl-bg); +} + +#tridactyl-input { + padding: 1rem; + color: var(--tridactyl-fg); + width: 90%; + font-size: 1.5rem; + line-height: 1.5; + background: var(--tridactyl-bg); + padding-left: unset; + padding: 1rem; +} + +#completions table { + font-size: 0.8rem; + font-weight: 200; + border-spacing: 0; + table-layout: fixed; + padding: 1rem 0; + /* padding-top: 1rem; */ + /* padding-bottom: 1rem; */ +} + +#completions > div { + max-height: calc(20 * var(--option-height)); + min-height: calc(10 * var(--option-height)); +} + +/* COMPLETIONS */ + +#completions { + --option-height: 1.4em; + color: var(--tridactyl-fg); + background: var(--tridactyl-bg); + display: inline-block; + font-size: unset; + font-weight: 200; + overflow: hidden; + width: 100%; + border-top: unset; + order: 2; +} + +/* Olie doesn't know how CSS inheritance works */ +#completions .HistoryCompletionSource { + max-height: unset; + min-height: unset; +} + +#completions .HistoryCompletionSource table { + width: 100%; + font-size: 9pt; + border-spacing: 0; + table-layout: fixed; +} + +/* redundancy 2: redundancy 2: more redundancy */ +#completions .BmarkCompletionSource { + max-height: unset; + min-height: unset; +} + +#completions table tr td.prefix,#completions table tr td.privatewindow,#completions table tr td.container,#completions table tr td.icon { + display: none; +} + +#completions .BufferCompletionSource table { + width: unset; + font-size: unset; + border-spacing: unset; + table-layout: unset; +} + +#completions table tr .title, #completions table tr td.excmd { + width: 50%; + padding-left: 1rem; + color: var(--blue); +} + +#completions table tr .content, #completions table tr td.documentation { + padding-right: 1rem; +} + +#completions table tr { + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} + +#completions table tr td { + padding: .5rem 0; +} + +#completions .sectionHeader { + background: unset; + font-weight: bold; + border-bottom: unset; + padding: 1rem 1rem 0 !important; + padding-left: unset; + padding-bottom: 0.2rem; + color: var(--peach); +} + +#cmdline_iframe { + position: fixed !important; + bottom: unset; + top: 25% !important; + left: 10% !important; + z-index: 2147483647 !important; + width: 80% !important; + box-shadow: rgba(0, 0, 0, 0.5) 0px 0px 20px !important; +} + +.TridactylStatusIndicator { + position: fixed !important; + bottom: 0 !important; + background: var(--tridactyl-bg) !important; + border: unset !important; + border: 1px var(--purple) solid !important; + font-size: 12pt !important; + /*font-weight: 200 !important;*/ + padding: 0.8ex !important; +} + +#completions .focused { + background: var(--currentline); + /* color: var(--blue); */ + font-weight: bold; +} +#completions .focused td.title { + color: var(--pink); +} + +#completions .focused .url { + background: var(--currentline); + color: var(--green); +} diff --git a/hmModules/firefox/default.nix b/hmModules/firefox/default.nix index f6ae31e..4f0a3c2 100644 --- a/hmModules/firefox/default.nix +++ b/hmModules/firefox/default.nix @@ -1,30 +1,69 @@ { pkgs, - username, ... }: +let + mkExtension = shortId: uuid: { + name = uuid; + value = { + install_url = "https://addons.mozilla.org/en-US/firefox/downloads/latest/${shortId}/latest.xpi"; + installation_mode = "normal_installed"; + }; + }; +in { programs.firefox = { enable = true; - package = pkgs.wrapFirefox pkgs.firefox-unwrapped { - extraPolicies = { - ExtensionSettings = { }; + nativeMessagingHosts = [ pkgs.tridactyl-native ]; + policies = { + DisableTelemetry = true; + DisableFirefoxStudies = true; + + EnableTrackingProtection = { + Value = true; + Locked = true; + Cryptomining = true; + Fingerprinting = true; + EmailTracking = true; }; - nativeMessagingHosts = [ pkgs.tridactyl-native ]; + HardwareAcceleration = true; + FirefoxHome = { + TopSites = false; + SponsoredTopSites = false; + Highlights = false; + Pocket = false; + SponsoredPocket = false; + Snippets = false; + Locked = false; + }; + FirefoxSuggest = { + WebSuggestions = true; + SponsoredSuggestions = false; + ImproveSuggest = false; + Locked = true; + }; + OverrideFirstRunPage = ""; + OverridePostUpdatePage = ""; + DontCheckDefaultBrowser = true; + DisplayMenuBar = "default-off"; # alternatives: "always", "never" or "default-on" + SearchBar = "unified"; # alternative: "separate" + HttpsOnlyMode = "force_enabled"; + NoDefaultBookmarks = true; + OfferToSaveLogins = false; + OfferToSaveLoginsDefault = false; + PasswordManagerEnabled = true; + DefaultDownloadDirectory = "\${home}/Downloads"; + PromptForDownloadLocation = false; + RequestedLocales = "en-US"; + + ExtensionSettings = builtins.listToAttrs [ + (mkExtension "ublock-origin" "uBlock0@raymondhill.net") + (mkExtension "tridactyl-vim" "tridactyl.vim@cmcaine.co.uk") + (mkExtension "styl-us" "7a7a4a92-a2a0-41d1-9fd7-1e92480d612d") + ]; }; - profiles.${username} = { - settings = { - "browser.startup.homepage" = "https://google.it"; - "browser.search.region" = "IT"; - "browser.search.isUS" = false; - "distribution.searchplugins.defaultLocale" = "it-IT"; - "general.useragent.locale" = "it-IT"; - "browser.bookmarks.showMobileBookmarks" = true; - "browser.download.folderList" = 2; - "browser.download.lastDir" = "/home/${username}/Downloads/"; - "browser.shell.checkDefaultBrowser" = false; - }; - search.force = true; + profiles.default = { + search.default = "DuckDuckGo"; search.engines = { "Searx" = { urls = [ @@ -40,10 +79,19 @@ ]; }; }; + bookmarks = [ ]; + extensions = [ ]; + userChrome = builtins.readFile ./userchrome.css; }; }; - home.sessionVariables = { - MOZ_ENABLE_WAYLAND = 1; - NIXOS_OZONE_WL = 1; + + xdg.configFile."tridactyl/tridactylrc".text = '' + set editorcmd footclient -e hx %f + + colors catppuccin + ''; + + xdg.configFile."tridactyl/themes/catppuccin.css" = { + source = ./catppuccin.css; }; } diff --git a/hmModules/firefox/userchrome.css b/hmModules/firefox/userchrome.css new file mode 100644 index 0000000..7abb436 --- /dev/null +++ b/hmModules/firefox/userchrome.css @@ -0,0 +1,67 @@ + +/* * Do not remove the @namespace line -- it's required for correct functioning */ +/* set default namespace to XUL */ +@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"); + +/* Remove Back button when there's nothing to go Back to */ +#back-button[disabled="true"] { display: none; } + +/* Remove Forward button when there's nothing to go Forward to */ +#forward-button[disabled="true"] { display: none; } + +/* Remove Home button (never use it) */ +#home-button { display: none; } + +.titlebar-spacer { + display: none !important; +} + +/* Remove import bookmarks button */ +#import-button { + display: none; +} + +/* Remove bookmark toolbar */ +toolbarbutton.bookmark-item:not(.subviewbutton) { + display: none; +} + +/* Remove whitespace in toolbar */ +#nav-bar toolbarpaletteitem[id^="wrapper-customizableui-special-spring"], #nav-bar toolbarspring { + display: none; +} + +/* Hide dumb Firefox View button */ +#firefox-view-button { + visibility: hidden; +} + +/* Hide Firefox tab icon */ +.tab-icon-image { + display: none; +} + +/* Linux stuff to keep GNOME system theme */ +.titlebar-min { + appearance: auto !important; + -moz-default-appearance: -moz-window-button-minimize !important; +} + +.titlebar-max { + appearance: auto !important; + -moz-default-appearance: -moz-window-button-maximize !important; +} + +.titlebar-restore { + appearance: auto !important; + -moz-default-appearance: -moz-window-button-restore !important; +} + +.titlebar-close { + appearance: auto !important; + -moz-default-appearance: -moz-window-button-close !important; +} + +.titlebar-button { + list-style-image: none !important; +} From 60b8c06011ffba541c0f8ed70f94be77ce116c9d Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Sat, 28 Sep 2024 23:59:38 +0200 Subject: [PATCH 061/492] Bump `NixThePlanet` flake input --- flake.lock | 11 +++++------ flake.nix | 2 +- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/flake.lock b/flake.lock index 1168cce..50c6096 100644 --- a/flake.lock +++ b/flake.lock @@ -675,16 +675,15 @@ "osx-kvm": "osx-kvm" }, "locked": { - "lastModified": 1708168451, - "narHash": "sha256-loWlwexnfQGFsEHeJbXpWbnmeDFkBwZB38+4BkUcGhM=", - "owner": "aciceri", + "lastModified": 1727105240, + "narHash": "sha256-FEuqbcZ4TDUMwCpTA/E3J5L7pLD4U+zXPnZbmXSmaJo=", + "owner": "MatthewCroughan", "repo": "NixThePlanet", - "rev": "e8c91035d01f5082ccf30e351dcd993a5b480a72", + "rev": "2f622af217807da78e44a5a15f620743dac57f46", "type": "github" }, "original": { - "owner": "aciceri", - "ref": "nix-in-darwin", + "owner": "MatthewCroughan", "repo": "NixThePlanet", "type": "github" } diff --git a/flake.nix b/flake.nix index 001eca4..28b3f03 100644 --- a/flake.nix +++ b/flake.nix @@ -30,7 +30,7 @@ }; dream2nix.url = "github:nix-community/dream2nix"; nixThePlanet = { - url = "github:aciceri/NixThePlanet/nix-in-darwin"; + url = "github:MatthewCroughan/NixThePlanet/"; inputs.nixpkgs.follows = "nixpkgs"; }; nixDarwin = { From af395cafcbc65c590e8480a968410427a2c5af53 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Sat, 28 Sep 2024 23:59:59 +0200 Subject: [PATCH 062/492] Custom emails watcher --- hmModules/email/default.nix | 17 +++++++-- packages/emails-watcher/default.nix | 12 +++++++ packages/emails-watcher/emails-watcher.py | 43 +++++++++++++++++++++++ 3 files changed, 69 insertions(+), 3 deletions(-) create mode 100644 packages/emails-watcher/default.nix create mode 100644 packages/emails-watcher/emails-watcher.py diff --git a/hmModules/email/default.nix b/hmModules/email/default.nix index 648bbc8..829f6c7 100644 --- a/hmModules/email/default.nix +++ b/hmModules/email/default.nix @@ -1,6 +1,8 @@ { pkgs, secrets, + fleetFlake, + lib, ... }: { @@ -175,9 +177,6 @@ compose = { no-attachment-warning = "^[^>]*attach(ed|ment)"; }; - triggers = { - email-received = ''exec notify-send "New email from %n" "%s"''; - }; filters = { "text/plain" = "colorize"; "text/html" = "html"; @@ -188,6 +187,18 @@ }; }; }; + + systemd.user.services.emails-watcher = { + Unit.Description = "Send notifications when new emails arrive"; + Install = { + WantedBy = [ "default.target" ]; + }; + Service = { + ExecStart = "${lib.getExe fleetFlake.packages.${pkgs.system}.emails-watcher}"; + Environment = [ "INBOX_NEW=~/Maildir/autistici/Inbox/new" ]; + }; + }; + accounts.email = { accounts.autistici = { aerc.enable = true; diff --git a/packages/emails-watcher/default.nix b/packages/emails-watcher/default.nix new file mode 100644 index 0000000..965086f --- /dev/null +++ b/packages/emails-watcher/default.nix @@ -0,0 +1,12 @@ +{ + writers, + python3Packages, + ... +}: +writers.writePython3Bin "emails-watcher" { + libraries = with python3Packages; [ + watchdog + desktop-notifier + ]; + flakeIgnore = [ ]; +} (builtins.readFile ./emails-watcher.py) diff --git a/packages/emails-watcher/emails-watcher.py b/packages/emails-watcher/emails-watcher.py new file mode 100644 index 0000000..b9716da --- /dev/null +++ b/packages/emails-watcher/emails-watcher.py @@ -0,0 +1,43 @@ +import os +from watchdog.observers import Observer +from watchdog.events import FileSystemEventHandler +from email import message_from_file +from desktop_notifier import DesktopNotifierSync, DEFAULT_SOUND, Icon + + +class MaildirHandler(FileSystemEventHandler): + def __init__(self, notifier): + super().__init__() + self.notifier = notifier + + def on_created(self, event): + if not event.is_directory: + print(f"New email found: {event.src_path}") + with open(event.src_path, 'r') as email_file: + msg = message_from_file(email_file) + print(f'{msg["From"]}: {msg["Subject"]}') + self.notifier.send( + title=msg["From"], + message=msg["Subject"], + sound=DEFAULT_SOUND, + icon=Icon(name="mail-message-new"), + timeout=20 + ) + + +if __name__ == "__main__": + maildir_new = os.path.expanduser(os.environ.get("INBOX_NEW")) + notifier = DesktopNotifierSync( + app_name="Mails", + notification_limit=10 + ) + + event_handler = MaildirHandler(notifier) + observer = Observer() + + observer.schedule(event_handler, maildir_new, recursive=False) + + print(f"Monitoring {maildir_new} for new emails...") + + observer.start() + observer.join() From 9c9cc992b8b1b940b6b96bbb6f71d4e74538e1f4 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 3 Oct 2024 21:52:16 +0200 Subject: [PATCH 063/492] Do not use `home-manager` on `sisko` --- hosts/default.nix | 8 +++++++- hosts/sisko/default.nix | 23 ----------------------- modules/ssh-initrd/default.nix | 7 ++++--- modules/transmission/default.nix | 2 -- 4 files changed, 11 insertions(+), 29 deletions(-) diff --git a/hosts/default.nix b/hosts/default.nix index 480c37d..0498e19 100644 --- a/hosts/default.nix +++ b/hosts/default.nix @@ -44,9 +44,11 @@ inputs.disko.nixosModules.disko inputs.nixosHardware.nixosModules.lenovo-thinkpad-x1-7th-gen inputs.lix-module.nixosModules.default + inputs.catppuccin.nixosModules.catppuccin ]; extraHmModules = [ "${inputs.homeManagerGitWorkspace}/modules/services/git-workspace.nix" + inputs.catppuccin.homeManagerModules.catppuccin ]; secrets = { "kirk-wireguard-private-key" = { }; @@ -90,6 +92,7 @@ sisko = { system = "aarch64-linux"; + enableHomeManager = false; vpn = { ip = "10.100.0.1"; publicKey = "bc5giljukT1+ChbbyTLdOfejfR3c8RZ4XoXmQM54nTY="; @@ -101,7 +104,6 @@ ]; secrets = { "sisko-wireguard-private-key" = { }; - "cachix-personal-token".owner = "ccr"; "home-planimetry".owner = "hass"; "home-assistant-token".owner = "prometheus"; "grafana-password".owner = "grafana"; @@ -123,6 +125,10 @@ ip = "10.100.0.4"; publicKey = "9ccx4C4xvPC6lPgTZAHDSfK4FS2BP2i4D57u9IZjw18="; }; + macos-ventura = { + ip = "10.100.0.6"; + publicKey = "/Eee1V0PsjZSzj7un1NxHKtFR+TpUIgJ7VAdIAzmvzQ="; + }; }; }; } diff --git a/hosts/sisko/default.nix b/hosts/sisko/default.nix index 8341327..44277c3 100644 --- a/hosts/sisko/default.nix +++ b/hosts/sisko/default.nix @@ -1,7 +1,6 @@ { fleetModules, pkgs, - config, ... }: { @@ -9,7 +8,6 @@ fleetModules [ "common" "ssh" - "ccr" "wireguard-server" "mediatomb" "transmission" @@ -35,32 +33,12 @@ ./disko.nix ]; - # boot.kernelPackages = pkgs.linuxKernel.packages.linux_6_8; boot.kernelPackages = pkgs.linuxPackagesFor pkgs.linux_6_10; - # boot.kernelPackages = let - # pkgs = fleetFlake.inputs.nixpkgsForSisko.legacyPackages.aarch64-linux; - # in - # pkgs.linuxPackagesFor pkgs.linux_testing; - # boot.kernelPackages = pkgs.linuxPackagesFor (pkgs.linux_6_9.override { - # argsOverride = { - # src = pkgs.fetchFromGitLab { - # domain = "gitlab.collabora.com"; - # owner = "hardware-enablement/rockchip-3588"; - # repo = "linux"; - # rev = "23bb9c65a88c114bbe945b7ef5366bb02d3d9b80"; - # sha256 = "sha256-6TygOl5r7/N2jlcPznWlvJfVVeXKSR8yMoGuTDbIdTA="; - # }; - # version = "6.9"; - # modDirVersion = "6.9.0"; - # }; - # }); system.stateVersion = "24.05"; powerManagement.cpuFreqGovernor = "schedutil"; - ccr.enable = true; - nixpkgs.hostPlatform = "aarch64-linux"; swapDevices = [ ]; @@ -98,7 +76,6 @@ "/var/log" "/var/lib/containers" "/var/lib/postgresql" - "/home/${config.ccr.username}/.ssh" ]; files = [ "/etc/machine-id" diff --git a/modules/ssh-initrd/default.nix b/modules/ssh-initrd/default.nix index 79a936d..a67e1f3 100644 --- a/modules/ssh-initrd/default.nix +++ b/modules/ssh-initrd/default.nix @@ -14,9 +14,10 @@ extraConfig = '' HostKey /ssh_initrd_host_ed25519_key ''; - authorizedKeys = with (import ../../lib).keys.users; [ - ccr-gpg - ccr-ssh + authorizedKeys = with (import ../../lib).keys; [ + users.ccr-gpg + users.ccr-ssh + hosts.sisko ]; }; }; diff --git a/modules/transmission/default.nix b/modules/transmission/default.nix index 2a1f3cb..2052b37 100644 --- a/modules/transmission/default.nix +++ b/modules/transmission/default.nix @@ -45,8 +45,6 @@ "d /mnt/hd/torrent/.incomplete 770 transmission transmission" ]; - ccr.extraGroups = [ "transmission" ]; - environment.persistence."/persist".directories = [ config.services.transmission.home ]; From 1d4f9fecdc26b9c272be2ee42b969d4ffa146323 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 3 Oct 2024 21:53:05 +0200 Subject: [PATCH 064/492] Improve virtualized macos-ventura settings Allow ssh into it on the standard port --- modules/macos-ventura/default.nix | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/modules/macos-ventura/default.nix b/modules/macos-ventura/default.nix index 919e4c8..b3824a5 100644 --- a/modules/macos-ventura/default.nix +++ b/modules/macos-ventura/default.nix @@ -1,15 +1,24 @@ -{ fleetFlake, ... }: +{ lib, ... }: { services.macos-ventura = { enable = true; cores = 8; threads = 8; - mem = "8G"; + mem = "16G"; vncListenAddr = "0.0.0.0"; + sshListenAddr = "127.0.0.1"; extraQemuFlags = [ "-nographic" ]; - sshPort = 2021; - installNix = true; - stateless = true; - darwinConfig = fleetFlake.darwinConfigurations.archer; + sshPort = 2022; + vncDisplayNumber = 1; # means port 59001 + stateless = false; + openFirewall = true; + autoStart = false; }; + + programs.ssh.extraConfig = lib.mkAfter '' + Host macos-ventura + Hostname localhost + Port 2022 + Compression yes + ''; } From 916cc95918163e719f27fab7cac5ab80af47f8f9 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 3 Oct 2024 21:53:22 +0200 Subject: [PATCH 065/492] Fix zmkBATx at startup --- hmModules/zmkbatx/default.nix | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/hmModules/zmkbatx/default.nix b/hmModules/zmkbatx/default.nix index 0070092..ff8c992 100644 --- a/hmModules/zmkbatx/default.nix +++ b/hmModules/zmkbatx/default.nix @@ -16,7 +16,9 @@ }; Service = { - ExecStart = "sleep 5 && ${lib.getExe pkgs.zmkBATx}"; + ExecStart = '' + ${pkgs.runtimeShell} -l -c "${lib.getExe' pkgs.busybox "sleep"} 5 && ${lib.getExe pkgs.zmkBATx}" + ''; Restart = "on-failure"; RestartSec = 3; }; From 5658f13955e13117d920c848636c16b7c7b10a72 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 3 Oct 2024 21:53:40 +0200 Subject: [PATCH 066/492] Remove test settings --- hmModules/catppuccin/default.nix | 26 -------------------------- 1 file changed, 26 deletions(-) diff --git a/hmModules/catppuccin/default.nix b/hmModules/catppuccin/default.nix index 7b00ca9..4d485ac 100644 --- a/hmModules/catppuccin/default.nix +++ b/hmModules/catppuccin/default.nix @@ -10,30 +10,4 @@ platformTheme.name = lib.mkForce "kvantum"; style.name = lib.mkForce "kvantum"; }; - - # TODO move away - programs.alacritty = { - enable = true; - settings = { - font = { - normal = { - family = "Fira Code"; - style = "Regular"; - }; - bold = { - family = "Fira Code"; - style = "Bold"; - }; - italic = { - family = "Cascadia Code"; - style = "Italic"; - }; - bold_italic = { - family = "Fira Code"; - style = "Bold Italic"; - }; - size = 13; - }; - }; - }; } From 72a1d720a768de5cdf807f7fbf8cef7007b072ad Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 3 Oct 2024 21:54:27 +0200 Subject: [PATCH 067/492] Things --- hmModules/hyprland/hyprland.conf | 3 +- hmModules/imv/default.nix | 3 + hmModules/shell/default.nix | 99 ++-------------------------- hmModules/zellij/default.nix | 108 +++++++++++++++++++++++++++++++ hosts/kirk/default.nix | 4 ++ hosts/picard/default.nix | 5 +- 6 files changed, 126 insertions(+), 96 deletions(-) create mode 100644 hmModules/imv/default.nix create mode 100644 hmModules/zellij/default.nix diff --git a/hmModules/hyprland/hyprland.conf b/hmModules/hyprland/hyprland.conf index cfc9db7..c953fc6 100644 --- a/hmModules/hyprland/hyprland.conf +++ b/hmModules/hyprland/hyprland.conf @@ -30,7 +30,8 @@ windowrulev2 = workspace 9, class:^(Spotify)$ windowrulev2 = float, title:^(floating)$ bind = $mod, b, exec, firefox -bind = $mod, t, exec, footclient +bind = $mod, t, exec, footclient $SHELL -C "zellij" +bind = $mod, Return, exec, footclient bind = $mod, y, exec, waypipe --compress lz4=10 ssh picard.fleet emacsclient -c bind = $mod, d, exec, fuzzel --background-color=253559cc --border-radius=5 --border-width=0 bind = $mod, s, exec, screenshot.sh diff --git a/hmModules/imv/default.nix b/hmModules/imv/default.nix new file mode 100644 index 0000000..02ebcb3 --- /dev/null +++ b/hmModules/imv/default.nix @@ -0,0 +1,3 @@ +{ + programs.imv.enable = true; +} diff --git a/hmModules/shell/default.nix b/hmModules/shell/default.nix index b270b08..22ced2b 100644 --- a/hmModules/shell/default.nix +++ b/hmModules/shell/default.nix @@ -22,95 +22,6 @@ programs.fd.enable = true; - programs.zellij = - let - zjstatus = pkgs.fetchurl { - url = "https://github.com/dj95/zjstatus/releases/download/v0.17.0/zjstatus.wasm"; - hash = "sha256-IgTfSl24Eap+0zhfiwTvmdVy/dryPxfEF7LhVNVXe+U="; - }; - layout = pkgs.writeText "layout.kdl" '' - layout { - default_tab_template { - pane size=1 borderless=true { - plugin location="file:${zjstatus}" { - // Nord theme - color_fg "#cdd6f4" - color_bg "#1e1e2e" - color_black "#45475a" - color_red "#f38ba8" - color_green "#a6e3a1" - color_yellow "#f9e2af" - color_blue "#89b4fa" - color_magenta "#f5c2e7" - color_cyan "#94e2d5" - color_white "#bac2de" - - format_left "{mode}#[bg=$bg] {tabs}" - format_center "#[bg=$bg,fg=$fg] Zellij: #[bg=$bg,fg=$fg]{session}" - format_right "{datetime}" - format_space "#[bg=$bg]" - format_hide_on_overlength "true" - format_precedence "crl" - - border_enabled "false" - border_char "─" - border_format "#[fg=#6C7086]{char}" - border_position "top" - - hide_frame_for_single_pane "true" - - mode_normal "#[bg=$green,fg=$bg,bold] NORMAL #[bg=$bg,fg=$green]" - mode_locked "#[bg=$red,fg=$bg,bold] LOCKED  #[bg=$bg,fg=$red]" - mode_resize "#[bg=$blue,fg=$bg,bold] RESIZE #[bg=$bg,fg=$blue]" - mode_pane "#[bg=$blue,fg=$bg,bold] PANE #[bg=$bg,fg=$blue]" - mode_tab "#[bg=$yellow,fg=$bg,bold] TAB #[bg=$bg,fg=$yellow]" - mode_scroll "#[bg=$blue,fg=$bg,bold] SCROLL #[bg=$bg,fg=$blue]" - mode_enter_search "#[bg=$yellow,fg=$bg,bold] ENT-SEARCH #[bg=$bg,fg=$yellow]" - mode_search "#[bg=$yellow,fg=$bg,bold] SEARCHARCH #[bg=$bg,fg=$yellow]" - mode_rename_tab "#[bg=$yellow,fg=$bg,bold] RENAME-TAB #[bg=$bg,fg=$yellow]" - mode_rename_pane "#[bg=$blue,fg=$bg,bold] RENAME-PANE #[bg=$bg,fg=$blue]" - mode_session "#[bg=$blue,fg=$bg,bold] SESSION #[bg=$bg,fg=$blue]" - mode_move "#[bg=$blue,fg=$bg,bold] MOVE #[bg=$bg,fg=$blue]" - mode_prompt "#[bg=$blue,fg=$bg,bold] PROMPT #[bg=$bg,fg=$blue]" - mode_tmux "#[bg=$magenta,fg=$bg,bold] TMUX #[bg=$bg,fg=$magenta]" - - // formatting for inactive tabs - tab_normal "#[bg=$bg,fg=$cyan]#[bg=$cyan,fg=$bg,bold]{index} #[bg=$bg,fg=$cyan,bold] {name}{floating_indicator}#[bg=$bg,fg=$bg,bold]" - tab_normal_fullscreen "#[bg=$bg,fg=$cyan]#[bg=$cyan,fg=$bg,bold]{index} #[bg=$bg,fg=$cyan,bold] {name}{fullscreen_indicator}#[bg=$bg,fg=$bg,bold]" - tab_normal_sync "#[bg=$bg,fg=$cyan]#[bg=$cyan,fg=$bg,bold]{index} #[bg=$bg,fg=$cyan,bold] {name}{sync_indicator}#[bg=$bg,fg=$bg,bold]" - - // formatting for the current active tab - tab_active "#[bg=$bg,fg=$yellow]#[bg=$yellow,fg=$bg,bold]{index} #[bg=$bg,fg=$yellow,bold] {name}{floating_indicator}#[bg=$bg,fg=$bg,bold]" - tab_active_fullscreen "#[bg=$bg,fg=$yellow]#[bg=$yellow,fg=$bg,bold]{index} #[bg=$bg,fg=$yellow,bold] {name}{fullscreen_indicator}#[bg=$bg,fg=$bg,bold]" - tab_active_sync "#[bg=$bg,fg=$yellow]#[bg=$yellow,fg=$bg,bold]{index} #[bg=$bg,fg=$yellow,bold] {name}{sync_indicator}#[bg=$bg,fg=$bg,bold]" - - // separator between the tabs - tab_separator "#[bg=$bg] " - - // indicators - tab_sync_indicator " " - tab_fullscreen_indicator " 󰊓" - tab_floating_indicator " 󰹙" - - datetime "#[fg=$fg] {format} " - datetime_format "%Y-%m-%d %H:%M" - datetime_timezone "Europe/Rome" - } - } - children - } - } - ''; - in - { - enable = true; - enableFishIntegration = true; - settings = { - default_layout = "${layout}"; - pane_frames = false; - }; - }; - programs.direnv = { enable = true; config = { @@ -154,13 +65,13 @@ programs.fish = { enable = true; plugins = [ - { - name = "fifc"; - src = pkgs.fishPlugins.fifc.src; - } + # { + # name = "fifc"; + # src = pkgs.fishPlugins.fifc.src; + # } { name = "z"; - src = pkgs.fishPlugins.fifc.src; + src = pkgs.fishPlugins.z.src; } ]; shellInit = diff --git a/hmModules/zellij/default.nix b/hmModules/zellij/default.nix new file mode 100644 index 0000000..45a8487 --- /dev/null +++ b/hmModules/zellij/default.nix @@ -0,0 +1,108 @@ +{ + config, + pkgs, + lib, + ... +}: +let + zjstatus = pkgs.fetchurl { + url = "https://github.com/dj95/zjstatus/releases/download/v0.17.0/zjstatus.wasm"; + hash = "sha256-IgTfSl24Eap+0zhfiwTvmdVy/dryPxfEF7LhVNVXe+U="; + }; + cfg = config.programs.fzf.catppuccin; + palette = (lib.importJSON "${config.catppuccin.sources.palette}/palette.json").${cfg.flavor}.colors; + selectColor = color: palette.${color}.hex; + color_fg = selectColor "text"; + color_bg = selectColor "mantle"; + color_black = selectColor "surface1"; + color_red = selectColor "red"; + color_green = selectColor "green"; + color_yellow = selectColor "yellow"; + color_blue = selectColor "blue"; + color_magenta = selectColor "pink"; + color_cyan = selectColor "teal"; + color_white = selectColor "subtext1"; + layout = pkgs.writeText "layout.kdl" '' + layout { + default_tab_template { + pane size=1 borderless=true { + plugin location="file:${zjstatus}" { + color_fg "${color_fg}" + color_bg "${color_bg}" + color_black "${color_black}" + color_red "${color_red}" + color_green "${color_green}" + color_yellow "${color_yellow}" + color_blue "${color_blue}" + color_magenta "${color_magenta}" + color_cyan "${color_cyan}" + color_white "${color_white}" + + format_left "{mode}#[bg=$bg] {tabs}" + // format_center "#[bg=$bg,fg=$fg] Zellij: #[bg=$bg,fg=$fg]{session}" + // format_right "{datetime}" + format_right "#[bg=$bg,fg=$fg] Zellij: #[bg=$bg,fg=$fg]{session} " + format_space "#[bg=$bg]" + format_hide_on_overlength "true" + format_precedence "crl" + + border_enabled "false" + border_char "─" + border_format "#[fg=#6C7086]{char}" + border_position "top" + + hide_frame_for_single_pane "true" + + mode_normal "#[bg=$green,fg=$bg,bold] NORMAL #[bg=$bg,fg=$green]" + mode_locked "#[bg=$red,fg=$bg,bold] LOCKED  #[bg=$bg,fg=$red]" + mode_resize "#[bg=$blue,fg=$bg,bold] RESIZE #[bg=$bg,fg=$blue]" + mode_pane "#[bg=$blue,fg=$bg,bold] PANE #[bg=$bg,fg=$blue]" + mode_tab "#[bg=$yellow,fg=$bg,bold] TAB #[bg=$bg,fg=$yellow]" + mode_scroll "#[bg=$blue,fg=$bg,bold] SCROLL #[bg=$bg,fg=$blue]" + mode_enter_search "#[bg=$yellow,fg=$bg,bold] ENT-SEARCH #[bg=$bg,fg=$yellow]" + mode_search "#[bg=$yellow,fg=$bg,bold] SEARCHARCH #[bg=$bg,fg=$yellow]" + mode_rename_tab "#[bg=$yellow,fg=$bg,bold] RENAME-TAB #[bg=$bg,fg=$yellow]" + mode_rename_pane "#[bg=$blue,fg=$bg,bold] RENAME-PANE #[bg=$bg,fg=$blue]" + mode_session "#[bg=$blue,fg=$bg,bold] SESSION #[bg=$bg,fg=$blue]" + mode_move "#[bg=$blue,fg=$bg,bold] MOVE #[bg=$bg,fg=$blue]" + mode_prompt "#[bg=$blue,fg=$bg,bold] PROMPT #[bg=$bg,fg=$blue]" + mode_tmux "#[bg=$magenta,fg=$bg,bold] TMUX #[bg=$bg,fg=$magenta]" + + // formatting for inactive tabs + tab_normal "#[bg=$bg,fg=$cyan] #[bg=$cyan,fg=$bg,bold] {index} {floating_indicator}#[bg=$bg,fg=$bg,bold]" + tab_normal_fullscreen "#[bg=$bg,fg=$cyan] #[bg=$cyan,fg=$bg,bold] {index} {fullscreen_indicator}#[bg=$bg,fg=$bg,bold]" + tab_normal_sync "#[bg=$bg,fg=$cyan] #[bg=$cyan,fg=$bg,bold] {index} {sync_indicator}#[bg=$bg,fg=$bg,bold]" + + // formatting for the current active tab + tab_active "#[bg=$bg,fg=$yellow] #[bg=$yellow,fg=$bg,bold] {index} {floating_indicator}#[bg=$bg,fg=$bg,bold]" + tab_active_fullscreen "#[bg=$bg,fg=$yellow] #[bg=$yellow,fg=$bg,bold] {index} {fullscreen_indicator}#[bg=$bg,fg=$bg,bold]" + tab_active_sync "#[bg=$bg,fg=$yellow] #[bg=$yellow,fg=$bg,bold] {index} {sync_indicator}#[bg=$bg,fg=$bg,bold]" + + // separator between the tabs + tab_separator "#[bg=$bg] " + + // indicators + tab_sync_indicator " " + tab_fullscreen_indicator " 󰊓" + tab_floating_indicator " 󰹙" + + datetime "#[fg=$fg] {format} " + datetime_format "%Y-%m-%d %H:%M" + datetime_timezone "Europe/Rome" + } + } + children + } + } + ''; +in +{ + programs.zellij = { + enable = true; + enableFishIntegration = false; + settings = { + default_layout = "${layout}"; + pane_frames = false; + }; + }; +} diff --git a/hosts/kirk/default.nix b/hosts/kirk/default.nix index f2ee46a..7838975 100644 --- a/hosts/kirk/default.nix +++ b/hosts/kirk/default.nix @@ -47,6 +47,7 @@ "git-workspace" "helix" "shell" + "zellij" "element" "firefox" "gpg" @@ -67,6 +68,9 @@ "remmina" "zulip" "calibre" + "zathura" + "imv" + "catppuccin" ]; extraGroups = [ ]; backupPaths = [ ]; diff --git a/hosts/picard/default.nix b/hosts/picard/default.nix index be7d2f8..ded359d 100644 --- a/hosts/picard/default.nix +++ b/hosts/picard/default.nix @@ -35,7 +35,7 @@ "hass-poweroff" "forgejo-runners" "teamviewer" - # "macos-ventura" + "macos-ventura" "sunshine" "mount-rock5b" "adb" @@ -55,6 +55,7 @@ "git-workspace" "helix" "shell" + "zellij" "element" "zmkbatx" "tremotesf" @@ -86,6 +87,8 @@ "zk" "catppuccin" "freecad" + "zathura" + "imv" ]; extraGroups = [ ]; backupPaths = [ ]; From bc88e102b627458fe0c429121ab720d0b2f51b7a Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 10 Oct 2024 16:55:35 +0200 Subject: [PATCH 068/492] Install `libreoffice` on `picard` --- hmModules/libreoffice/default.nix | 4 ++++ hosts/picard/default.nix | 1 + 2 files changed, 5 insertions(+) create mode 100644 hmModules/libreoffice/default.nix diff --git a/hmModules/libreoffice/default.nix b/hmModules/libreoffice/default.nix new file mode 100644 index 0000000..1e846d4 --- /dev/null +++ b/hmModules/libreoffice/default.nix @@ -0,0 +1,4 @@ +{ pkgs, ... }: +{ + home.packages = [ pkgs.libreoffice ]; +} diff --git a/hosts/picard/default.nix b/hosts/picard/default.nix index ded359d..3cfa342 100644 --- a/hosts/picard/default.nix +++ b/hosts/picard/default.nix @@ -89,6 +89,7 @@ "freecad" "zathura" "imv" + "libreoffice" ]; extraGroups = [ ]; backupPaths = [ ]; From 7fcc87b549f0211f6b382d63001bf475a18fe633 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 10 Oct 2024 16:56:37 +0200 Subject: [PATCH 069/492] Install `logseq` and enable it on `picard` --- hmModules/hyprland/hyprland.conf | 3 ++- hmModules/logseq/default.nix | 14 ++++++++++++++ hosts/picard/default.nix | 1 + 3 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 hmModules/logseq/default.nix diff --git a/hmModules/hyprland/hyprland.conf b/hmModules/hyprland/hyprland.conf index c953fc6..c8c20af 100644 --- a/hmModules/hyprland/hyprland.conf +++ b/hmModules/hyprland/hyprland.conf @@ -32,9 +32,10 @@ windowrulev2 = float, title:^(floating)$ bind = $mod, b, exec, firefox bind = $mod, t, exec, footclient $SHELL -C "zellij" bind = $mod, Return, exec, footclient -bind = $mod, y, exec, waypipe --compress lz4=10 ssh picard.fleet emacsclient -c +bind = $mod, m, exec, footclient $SHELL -C "aerc" bind = $mod, d, exec, fuzzel --background-color=253559cc --border-radius=5 --border-width=0 bind = $mod, s, exec, screenshot.sh +bind = $mod, n, exec, logseq bind = , XF86MonBrightnessUp, exec, brightnessctl s +5% bind = , XF86MonBrightnessDown, exec, brightnessctl s 5%- bind = $mod, code:60, exec, brightnessctl s +5% diff --git a/hmModules/logseq/default.nix b/hmModules/logseq/default.nix new file mode 100644 index 0000000..10c295c --- /dev/null +++ b/hmModules/logseq/default.nix @@ -0,0 +1,14 @@ +{ pkgs, ... }: +let + logseq = pkgs.appimageTools.wrapType2 { + name = "logseq"; + version = "nightly-20240909"; + src = pkgs.fetchurl { + url = "https://github.com/logseq/logseq/releases/download/nightly/Logseq-linux-x64-0.10.10-alpha+nightly.20240909.AppImage"; + hash = "sha256-Hy/zk8ZCkWajsMRUMsewLvkKpMpsBZYnFootPU9y6Z0="; + }; + }; +in +{ + home.packages = [ logseq ]; +} diff --git a/hosts/picard/default.nix b/hosts/picard/default.nix index 3cfa342..c4128f7 100644 --- a/hosts/picard/default.nix +++ b/hosts/picard/default.nix @@ -90,6 +90,7 @@ "zathura" "imv" "libreoffice" + "logseq" ]; extraGroups = [ ]; backupPaths = [ ]; From cad15d88fd44c97853aea46237f61e65c83c1637 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 10 Oct 2024 17:05:01 +0200 Subject: [PATCH 070/492] Remove empty line --- hmModules/firefox/default.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/hmModules/firefox/default.nix b/hmModules/firefox/default.nix index 4f0a3c2..43d60a3 100644 --- a/hmModules/firefox/default.nix +++ b/hmModules/firefox/default.nix @@ -18,7 +18,6 @@ in policies = { DisableTelemetry = true; DisableFirefoxStudies = true; - EnableTrackingProtection = { Value = true; Locked = true; From 34b7c07297a18a1a691652e49b184ac9d7f76dc8 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 10 Oct 2024 17:05:32 +0200 Subject: [PATCH 071/492] Use linux 6.11 on `sisko` (cpufreq e thermal support) --- hosts/sisko/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hosts/sisko/default.nix b/hosts/sisko/default.nix index 44277c3..e1e89e5 100644 --- a/hosts/sisko/default.nix +++ b/hosts/sisko/default.nix @@ -33,7 +33,7 @@ ./disko.nix ]; - boot.kernelPackages = pkgs.linuxPackagesFor pkgs.linux_6_10; + boot.kernelPackages = pkgs.linuxPackagesFor pkgs.linux_6_11; system.stateVersion = "24.05"; From 180e5743cc2308ae3182b07bfa9361f939fe03a6 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 10 Oct 2024 17:05:46 +0200 Subject: [PATCH 072/492] Use new hard disk on `sisko` --- hosts/sisko/default.nix | 8 ++---- hosts/sisko/disko.nix | 61 +++++++++++++++++++++++++++++++++++++++-- 2 files changed, 60 insertions(+), 9 deletions(-) diff --git a/hosts/sisko/default.nix b/hosts/sisko/default.nix index e1e89e5..8a386be 100644 --- a/hosts/sisko/default.nix +++ b/hosts/sisko/default.nix @@ -28,6 +28,8 @@ "garmin-collector" "restic" "atuin" + "rock5b-fan-control" + "immich" ] ++ [ ./disko.nix @@ -94,12 +96,6 @@ fileSystems."/persist".neededForBoot = true; boot.tmp.cleanOnBoot = true; - fileSystems."/mnt/hd" = { - device = "/dev/disk/by-id/ata-WDC_WD5000AAKX-08U6AA0_WD-WCC2E5TR40FU-part1"; - fsType = "ext4"; - options = [ "nofail" ]; - }; - environment.systemPackages = with pkgs; [ cifs-utils ]; diff --git a/hosts/sisko/disko.nix b/hosts/sisko/disko.nix index 909a33b..ba5c708 100644 --- a/hosts/sisko/disko.nix +++ b/hosts/sisko/disko.nix @@ -1,9 +1,7 @@ let ssd = "/dev/disk/by-id/ata-CT240BX300SSD1_1739E1042F3C"; + hd = "/dev/disk/by-id/ata-ST12000NM0558_ZHZ6006Q"; in -# hd1 = "/dev/disk/by-id/ata-WDC_WD10EADS-22M2B0_WD-WCAV52709550"; -# hd2 = "/dev/disk/by-id/ata-WDC_WD10EADX-22TDHB0_WD-WCAV5V359530"; -# old_hd = "/dev/disk/by-id/ata-WDC_WD5000AAKX-08U6AA0_WD-WCC2E5TR40FU"; { disko.devices = { nodev."/" = { @@ -58,6 +56,63 @@ in }; }; }; + hd = { + device = hd; + type = "disk"; + content = { + type = "gpt"; + partitions = { + root = { + size = "100%"; + content = { + type = "filesystem"; + format = "bcachefs"; + mountpoint = "/mnt/hd"; + }; + }; + }; + }; + }; + # hd = { + # type = "disk"; + # device = hd; + # content = { + # type = "gpt"; + # partitions = { + # zfs = { + # size = "100%"; + # content = { + # type = "zfs"; + # pool = "zroot"; + # }; + # }; + # }; + # }; + # }; + # }; + # zpool = { + # zroot = { + # type = "zpool"; + # rootFsOptions = { + # compression = "lz4"; + # acltype = "posixacl"; + # xattr = "sa"; + # "com.sun:auto-snapshot" = "true"; + # mountpoint = "none"; + # }; + # datasets = { + # "root" = { + # type = "zfs_fs"; + # options.mountpoint = "/mnt/hd"; + # mountpoint = "/mnt/hd"; + # }; + # "root/torrent" = { + # type = "zfs_fs"; + # options.mountpoint = "/mnt/hd/torrent"; + # mountpoint = "/mnt/hd/torrent"; + # }; + # }; + # }; }; }; } From eb09394470a06baee2bf67153852c1f9cf918b76 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 10 Oct 2024 17:06:33 +0200 Subject: [PATCH 073/492] Install `restic` on `sisko` --- modules/immich/default.nix | 111 +++++++++++++++++++++++++++++++------ modules/restic/default.nix | 11 +++- 2 files changed, 105 insertions(+), 17 deletions(-) diff --git a/modules/immich/default.nix b/modules/immich/default.nix index be7e905..ffa5968 100644 --- a/modules/immich/default.nix +++ b/modules/immich/default.nix @@ -1,20 +1,99 @@ +{ ... }: +let + vars = { + serviceConfigRoot = "/mnt/hd/immich/state"; + mainArray = "/mnt/hd/immich/"; + domainName = "photos.aciceri.dev"; + }; + directories = [ + "${vars.serviceConfigRoot}/immich" + "${vars.serviceConfigRoot}/immich/postgresql" + "${vars.serviceConfigRoot}/immich/postgresql/data" + "${vars.serviceConfigRoot}/immich/config" + "${vars.serviceConfigRoot}/immich/machine-learning" + "${vars.mainArray}/Photos" + "${vars.mainArray}/Photos/Immich" + "${vars.mainArray}/Photos/S10m" + ]; +in { - containers.immich = { - nixpkgs = builtins.getFlake "github:NixOS/nixpkgs/51296fce6f2b33717f710788af4e134aa7ff0e58"; - autoStart = true; - privateNetwork = true; - # hostAddress = "192.168.100.10"; - # localAddress = "192.168.100.11"; - # hostAddress6 = "fc00::1"; - # localAddress6 = "fc00::2"; - config = - { - ... - }: - { - services.immich = { - enable = true; - }; + systemd.tmpfiles.rules = map (x: "d ${x} 0775 root root - -") directories; + systemd.services = { + podman-immich = { + requires = [ + "podman-immich-redis.service" + "podman-immich-postgres.service" + ]; + after = [ + "podman-immich-redis.service" + "podman-immich-postgres.service" + ]; + }; + podman-immich-postgres = { + requires = [ "podman-immich-redis.service" ]; + after = [ "podman-immich-redis.service" ]; + }; + }; + + virtualisation.oci-containers.containers = { + immich = { + autoStart = true; + image = "ghcr.io/imagegenius/immich:latest"; + volumes = [ + "${vars.serviceConfigRoot}/immich/config:/config" + "${vars.mainArray}/Photos/Immich:/photos" + "${vars.mainArray}/Photos/S10m:/import:ro" + "${vars.serviceConfigRoot}/immich/machine-learning:/config/machine-learning" + ]; + # environmentFiles = [ config.age.secrets.ariaImmichDatabase.path ]; + environment = { + PUID = "994"; + PGID = "993"; + TZ = "Europe/Rome"; + DB_HOSTNAME = "immich-postgres"; + DB_USERNAME = "immich"; + DB_DATABASE_NAME = "immich"; + REDIS_HOSTNAME = "immich-redis"; + DB_PASSWORD = "password"; }; + extraOptions = [ + "--pull=newer" + "--network=container:immich-redis" + ]; + }; + + immich-redis = { + autoStart = true; + image = "redis"; + extraOptions = [ + "--pull=newer" + "-l=traefik.enable=true" + "-l=traefik.http.routers.immich.rule=Host(`photos.${vars.domainName}`)" + "-l=traefik.http.routers.immich.service=immich" + "-l=traefik.http.services.immich.loadbalancer.server.port=8080" + ]; + ports = [ + "8080:8080" + ]; + }; + + immich-postgres = { + autoStart = true; + image = "tensorchord/pgvecto-rs:pg14-v0.2.1"; + volumes = [ + "${vars.serviceConfigRoot}/immich/postgresql/data:/var/lib/postgresql/data" + ]; + # environmentFiles = [ config.age.secrets.ariaImmichDatabase.path ]; + environment = { + POSTGRES_USER = "immich"; + POSTGRES_DB = "immich"; + POSTGRES_HOST_AUTH_METHOD = "trust"; + POSTGRES_PASSWORD = "password"; + }; + extraOptions = [ + "--pull=newer" + "--network=container:immich-redis" + ]; + }; }; } diff --git a/modules/restic/default.nix b/modules/restic/default.nix index 0d082b3..3edb52d 100644 --- a/modules/restic/default.nix +++ b/modules/restic/default.nix @@ -26,13 +26,22 @@ in }".publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIICf9svRenC/PLKIL9nk6K/pxQgoiFC41wTNvoIncOxs"; services.restic.backups.sisko = { - paths = [ "/persist" ]; + paths = [ + "/persist" + "/mnt/hd/immich" + ]; + exclude = [ " /persist/var/lib/containers" ]; passwordFile = config.age.secrets.SISKO_RESTIC_PASSWORD.path; extraOptions = [ "sftp.command='${lib.getExe pkgs.sshpass} -f ${config.age.secrets.HETZNER_STORAGE_BOX_SISKO_SSH_PASSWORD.path} ssh -p${port} ${user}@${host} -s sftp'" ]; repository = "sftp://${user}@${host}:${port}/"; initialize = true; + pruneOpts = [ + "--keep-yearly 1" + "--keep-monthly 2" + "--keep-daily 7" + ]; timerConfig.OnCalendar = "daily"; timerConfig.RandomizedDelaySec = "1h"; }; From c35c00bf75e188bcbbd52070008ef004379537d5 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 10 Oct 2024 17:06:42 +0200 Subject: [PATCH 074/492] Still doesn't work --- modules/mount-rock5b/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/mount-rock5b/default.nix b/modules/mount-rock5b/default.nix index a31eb1c..5ae34a0 100644 --- a/modules/mount-rock5b/default.nix +++ b/modules/mount-rock5b/default.nix @@ -15,7 +15,7 @@ ''; in [ - "credentials=${credentials},x-systemd.automount,noauto,x-systemd.idle-timeout=60,x-systemd.device-timeout=5s,x-systemd.mount-timeout=5s" + "credentials=${credentials},x-systemd.automount,noauto,x-systemd.idle-timeout=60,x-systemd.device-timeout=5s,x-systemd.mount-timeout=5s,uid=1000,gid=1000" ]; }; } From f5091547bb4757ace5ef6ee09fe2d3f592021163 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 10 Oct 2024 17:06:54 +0200 Subject: [PATCH 075/492] Update nextcloud module --- modules/nextcloud/default.nix | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/modules/nextcloud/default.nix b/modules/nextcloud/default.nix index 37340e4..77d6230 100644 --- a/modules/nextcloud/default.nix +++ b/modules/nextcloud/default.nix @@ -8,11 +8,9 @@ "d /mnt/raid/nextcloud 770 nextcloud nextcloud" ]; - ccr.extraGroups = [ "nextcloud" ]; - services.nextcloud = { enable = true; - package = pkgs.nextcloud26; + package = pkgs.nextcloud_30; database.createLocally = true; home = "/mnt/raid/nextcloud"; hostName = "nextcloud.aciceri.dev"; @@ -21,6 +19,4 @@ overwriteProtocol = "https"; }; }; - - networking.firewall.allowedTCPPorts = [ 80 ]; } From d122f9061aca5b47f974cc83d972f8ff8484af7e Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 10 Oct 2024 17:07:04 +0200 Subject: [PATCH 076/492] Enable reverse proxy for `immich` --- modules/rock5b-proxy/default.nix | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/modules/rock5b-proxy/default.nix b/modules/rock5b-proxy/default.nix index 926f664..3a324ef 100644 --- a/modules/rock5b-proxy/default.nix +++ b/modules/rock5b-proxy/default.nix @@ -36,17 +36,17 @@ proxyPass = "http://localhost:${builtins.toString config.services.invidious.port}"; }; }; - # "photos.aciceri.dev" = { - # extraConfig = '' - # client_max_body_size 50000M; - # ''; - # forceSSL = true; - # enableACME = true; - # locations."/" = { - # proxyPass = "http://localhost:2283"; - # proxyWebsockets = true; - # }; - # }; + "photos.aciceri.dev" = { + extraConfig = '' + client_max_body_size 50000M; + ''; + forceSSL = true; + enableACME = true; + locations."/" = { + proxyPass = "http://localhost:8080"; + proxyWebsockets = true; + }; + }; # "jellyfin.aciceri.dev" = { # forceSSL = true; From 72f21229f3d9b724a065fdf27522c2f5fa96228d Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 10 Oct 2024 17:07:12 +0200 Subject: [PATCH 077/492] Trying to fix samba --- modules/rock5b-samba/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/rock5b-samba/default.nix b/modules/rock5b-samba/default.nix index 3791c92..9350089 100644 --- a/modules/rock5b-samba/default.nix +++ b/modules/rock5b-samba/default.nix @@ -9,7 +9,7 @@ samba = { enable = true; - securityType = "user"; + # global.security = "user"; settings.global = { "workgroup" = "WORKGROUP"; "server string" = "rock5b"; @@ -21,7 +21,7 @@ "recycle:keeptree" = "yes"; "recycle:versions" = "yes"; }; - shares = { + settings = { torrent = { path = "/mnt/hd/torrent"; comment = "torrent"; From d71063827895daaecf1942f0a31590180e406ddd Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 10 Oct 2024 17:07:38 +0200 Subject: [PATCH 078/492] Decrease torrents ratio (probably the old disk died because of this) --- modules/transmission/default.nix | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/modules/transmission/default.nix b/modules/transmission/default.nix index 2052b37..15db1d1 100644 --- a/modules/transmission/default.nix +++ b/modules/transmission/default.nix @@ -4,8 +4,6 @@ enable = true; openRPCPort = true; openPeerPorts = true; - # FIXME remove after https://github.com/NixOS/nixpkgs/issues/279049 - webHome = "${config.services.transmission.package}/share/transmission/web"; settings = { download-dir = "/mnt/hd/torrent"; incomplete-dir = "/mnt/hd/torrent/.incomplete"; @@ -32,7 +30,7 @@ alt-speed-time-day = 127; # all days, bitmap, 0111110 is weekends and 1000001 is weekdays ratio-limit-enabled = true; - ratio-limit = 100; # I am a generous god + ratio-limit = 2; }; }; From a0307ebb97224f8c458857ae25ede5d3b926dcd6 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 10 Oct 2024 17:08:29 +0200 Subject: [PATCH 079/492] Don't follow the `nixpkgs` input for `nix-darwin`, otherwise it rebuilds the vm every time --- flake.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/flake.nix b/flake.nix index 28b3f03..bc75454 100644 --- a/flake.nix +++ b/flake.nix @@ -35,7 +35,6 @@ }; nixDarwin = { url = "github:LnL7/nix-darwin"; - inputs.nixpkgs.follows = "nixpkgs"; }; nix-on-droid.url = "github:nix-community/nix-on-droid"; lix = { From f774f4b674fc61b1e8302fabe1644bf452055591 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 10 Oct 2024 17:08:33 +0200 Subject: [PATCH 080/492] Bump flake inputs --- flake.lock | 36 +++++++++++++++++++++++------------- 1 file changed, 23 insertions(+), 13 deletions(-) diff --git a/flake.lock b/flake.lock index 50c6096..c270768 100644 --- a/flake.lock +++ b/flake.lock @@ -383,7 +383,7 @@ "hercules-ci-effects": { "inputs": { "flake-parts": "flake-parts_3", - "nixpkgs": "nixpkgs_4" + "nixpkgs": "nixpkgs_5" }, "locked": { "lastModified": 1701009247, @@ -647,9 +647,7 @@ }, "nixDarwin": { "inputs": { - "nixpkgs": [ - "nixpkgs" - ] + "nixpkgs": "nixpkgs_4" }, "locked": { "lastModified": 1727003835, @@ -879,6 +877,18 @@ } }, "nixpkgs_4": { + "locked": { + "lastModified": 0, + "narHash": "sha256-bvGoiQBvponpZh8ClUcmJ6QnsNKw0EMrCQJARK3bI1c=", + "path": "/nix/store/y6205wq8hxvpqvl8l9d1n9xah01kg0lq-source", + "type": "path" + }, + "original": { + "id": "nixpkgs", + "type": "indirect" + } + }, + "nixpkgs_5": { "locked": { "lastModified": 1697723726, "narHash": "sha256-SaTWPkI8a5xSHX/rrKzUe+/uVNy6zCGMXgoeMb7T9rg=", @@ -894,13 +904,13 @@ "type": "github" } }, - "nixpkgs_5": { + "nixpkgs_6": { "locked": { - "lastModified": 1726937504, - "narHash": "sha256-bvGoiQBvponpZh8ClUcmJ6QnsNKw0EMrCQJARK3bI1c=", + "lastModified": 1728241625, + "narHash": "sha256-yumd4fBc/hi8a9QgA9IT8vlQuLZ2oqhkJXHPKxH/tRw=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "9357f4f23713673f310988025d9dc261c20e70c6", + "rev": "c31898adf5a8ed202ce5bea9f347b1c6871f32d1", "type": "github" }, "original": { @@ -910,7 +920,7 @@ "type": "github" } }, - "nixpkgs_6": { + "nixpkgs_7": { "locked": { "lastModified": 1678470307, "narHash": "sha256-OEeMUr3ueLIXyW/OaFUX5jUdimyQwMg/7e+/Q0gC/QE=", @@ -926,7 +936,7 @@ "type": "github" } }, - "nixpkgs_7": { + "nixpkgs_8": { "locked": { "lastModified": 1682134069, "narHash": "sha256-TnI/ZXSmRxQDt2sjRYK/8j8iha4B4zP2cnQCZZ3vp7k=", @@ -1081,7 +1091,7 @@ "fan-control": "fan-control", "flake-parts": "flake-parts_4", "kernel-src": "kernel-src", - "nixpkgs": "nixpkgs_6", + "nixpkgs": "nixpkgs_7", "nixpkgs-kernel": "nixpkgs-kernel", "panfork": "panfork", "tow-boot": "tow-boot", @@ -1120,7 +1130,7 @@ "nixDarwin": "nixDarwin", "nixThePlanet": "nixThePlanet", "nixosHardware": "nixosHardware", - "nixpkgs": "nixpkgs_5", + "nixpkgs": "nixpkgs_6", "rock5b": "rock5b", "treefmt-nix": "treefmt-nix_2", "vscode-server": "vscode-server" @@ -1291,7 +1301,7 @@ "vscode-server": { "inputs": { "flake-utils": "flake-utils_2", - "nixpkgs": "nixpkgs_7" + "nixpkgs": "nixpkgs_8" }, "locked": { "lastModified": 1713958148, From 56caaa41128e43d28a0f69d95565581ce3865344 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 10 Oct 2024 17:57:32 +0200 Subject: [PATCH 081/492] Forgot to remove --- hosts/sisko/default.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/hosts/sisko/default.nix b/hosts/sisko/default.nix index 8a386be..298eb78 100644 --- a/hosts/sisko/default.nix +++ b/hosts/sisko/default.nix @@ -28,7 +28,6 @@ "garmin-collector" "restic" "atuin" - "rock5b-fan-control" "immich" ] ++ [ From d7189f1d82564a5ba7891e52217b39a48bc46a75 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 11 Oct 2024 00:54:19 +0200 Subject: [PATCH 082/492] Rename MediaTomb server --- modules/mediatomb/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/mediatomb/default.nix b/modules/mediatomb/default.nix index 5608e81..d3e85b0 100644 --- a/modules/mediatomb/default.nix +++ b/modules/mediatomb/default.nix @@ -2,7 +2,7 @@ services.mediatomb = { enable = true; openFirewall = true; - serverName = "Rock 5B"; + serverName = "Sisko"; mediaDirectories = [ { path = "/mnt/hd/torrent"; From 3add3c5d4976806d22297950bc08fcf5897f5e98 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 11 Oct 2024 10:52:17 +0200 Subject: [PATCH 083/492] Logseq as wayland app --- hmModules/logseq/default.nix | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/hmModules/logseq/default.nix b/hmModules/logseq/default.nix index 10c295c..f8ff624 100644 --- a/hmModules/logseq/default.nix +++ b/hmModules/logseq/default.nix @@ -1,4 +1,4 @@ -{ pkgs, ... }: +{ pkgs, lib, ... }: let logseq = pkgs.appimageTools.wrapType2 { name = "logseq"; @@ -8,7 +8,8 @@ let hash = "sha256-Hy/zk8ZCkWajsMRUMsewLvkKpMpsBZYnFootPU9y6Z0="; }; }; + logseq-wayland = pkgs.writeScriptBin "logseq" "${lib.getExe logseq} --enable-features=UseOzonePlatform --ozone-platform=wayland"; in { - home.packages = [ logseq ]; + home.packages = [ logseq-wayland ]; } From 9dabfa7771d1ed535ad26c9d5e2d1ccca46fae00 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 17 Oct 2024 23:16:22 +0200 Subject: [PATCH 084/492] Delete/rename modules --- modules/immich/env | 5 - modules/immich/module.nix | 584 ------------------ .../{mount-rock5b => mount-sisko}/default.nix | 0 .../{rock5b-proxy => sisko-proxy}/default.nix | 13 +- .../{rock5b-samba => sisko-samba}/default.nix | 0 5 files changed, 8 insertions(+), 594 deletions(-) delete mode 100644 modules/immich/env delete mode 100644 modules/immich/module.nix rename modules/{mount-rock5b => mount-sisko}/default.nix (100%) rename modules/{rock5b-proxy => sisko-proxy}/default.nix (92%) rename modules/{rock5b-samba => sisko-samba}/default.nix (100%) diff --git a/modules/immich/env b/modules/immich/env deleted file mode 100644 index 5c8b109..0000000 --- a/modules/immich/env +++ /dev/null @@ -1,5 +0,0 @@ -PUBLIC_LOGIN_PAGE_MESSAGE= - -IMMICH_WEB_URL=http://immich-web:3000 -IMMICH_SERVER_URL=http://immich-server:3001 -IMMICH_MACHINE_LEARNING_URL=http://immich-machine-learning:3003 \ No newline at end of file diff --git a/modules/immich/module.nix b/modules/immich/module.nix deleted file mode 100644 index 230691a..0000000 --- a/modules/immich/module.nix +++ /dev/null @@ -1,584 +0,0 @@ -{ - config, - lib, - pkgs, - ... -}: -let - inherit (lib) - hasAttr - hasPrefix - maintainers - mapAttrs - mkDefault - mkEnableOption - mkIf - mkMerge - mkOption - mkPackageOption - optional - optionalAttrs - optionalString - types - ; - - cfg = config.services.immich; - serverCfg = config.services.immich.server; - backendCfg = serverCfg.backend; - microservicesCfg = serverCfg.microservices; - webCfg = cfg.web; - mlCfg = cfg.machineLearning; - - isServerPostgresUnix = hasPrefix "/" serverCfg.postgres.host; - postgresEnv = - if isServerPostgresUnix then - { - # If passwordFile is given, this will be overwritten in ExecStart - DB_URL = "socket://${serverCfg.postgres.host}?dbname=${serverCfg.postgres.database}"; - } - else - { - DB_HOSTNAME = serverCfg.postgres.host; - DB_PORT = toString serverCfg.postgres.port; - DB_DATABASE_NAME = serverCfg.postgres.database; - DB_USERNAME = serverCfg.postgres.username; - }; - - typesenseEnv = - { - TYPESENSE_ENABLED = toString serverCfg.typesense.enable; - } - // optionalAttrs serverCfg.typesense.enable { - TYPESENSE_HOST = serverCfg.typesense.host; - TYPESENSE_PORT = toString serverCfg.typesense.port; - TYPESENSE_PROTOCOL = serverCfg.typesense.protocol; - }; - - # Don't start a redis instance if the user sets a custom redis connection - enableRedis = - !hasAttr "REDIS_URL" serverCfg.extraConfig && !hasAttr "REDIS_SOCKET" serverCfg.extraConfig; - redisServerCfg = config.services.redis.servers.immich; - redisEnv = optionalAttrs enableRedis { - REDIS_SOCKET = redisServerCfg.unixSocket; - }; - - serverEnv = - postgresEnv - // typesenseEnv - // redisEnv - // { - NODE_ENV = "production"; - - IMMICH_MEDIA_LOCATION = serverCfg.mediaDir; - IMMICH_MACHINE_LEARNING_URL = - if serverCfg.machineLearningUrl != null then serverCfg.machineLearningUrl else "false"; - }; - - serverStartWrapper = program: '' - set -euo pipefail - mkdir -p ${serverCfg.mediaDir} - - ${optionalString (serverCfg.postgres.passwordFile != null) ( - if isServerPostgresUnix then - ''export DB_URL="socket://${serverCfg.postgres.username}:$(cat ${serverCfg.postgres.passwordFile})@${serverCfg.postgres.host}?dbname=${serverCfg.postgres.database}"'' - else - "export DB_PASSWORD=$(cat ${serverCfg.postgres.passwordFile})" - )} - - ${optionalString serverCfg.typesense.enable '' - export TYPESENSE_API_KEY=$(cat ${serverCfg.typesense.apiKeyFile}) - ''} - - exec ${program} - ''; - - commonServiceConfig = { - Restart = "on-failure"; - - # Hardening - CapabilityBoundingSet = ""; - LockPersonality = true; - MemoryDenyWriteExecute = true; - NoNewPrivileges = true; - PrivateUsers = true; - PrivateTmp = true; - PrivateDevices = true; - PrivateMounts = true; - ProtectClock = true; - ProtectControlGroups = true; - ProtectHome = true; - ProtectHostname = true; - ProtectKernelLogs = true; - ProtectKernelModules = true; - ProtectKernelTunables = true; - ProtectProc = "invisible"; - ProcSubset = "pid"; - # Would re-mount paths ignored by temporary root - # TODO ProtectSystem = "strict"; - RemoveIPC = true; - RestrictAddressFamilies = [ - "AF_INET" - "AF_INET6" - "AF_UNIX" - ]; - RestrictNamespaces = true; - RestrictRealtime = true; - RestrictSUIDSGID = true; - SystemCallArchitectures = "native"; - SystemCallFilter = [ - "@system-service" - "~@privileged" - "@pkey" - ]; - UMask = "0077"; - }; - - serverServiceConfig = { - DynamicUser = true; - User = "immich"; - Group = "immich"; - SupplementaryGroups = optional enableRedis redisServerCfg.user; - - StateDirectory = "immich"; - StateDirectoryMode = "0750"; - WorkingDirectory = "/var/lib/immich"; - - MemoryDenyWriteExecute = false; # nodejs requires this. - EnvironmentFile = mkIf (serverCfg.environmentFile != null) serverCfg.environmentFile; - - TemporaryFileSystem = "/:ro"; - BindReadOnlyPaths = [ - "/nix/store" - "-/etc/resolv.conf" - "-/etc/nsswitch.conf" - "-/etc/hosts" - "-/etc/localtime" - "-/run/postgresql" - ] ++ optional enableRedis redisServerCfg.unixSocket; - }; -in -{ - options.services.immich = { - enable = mkEnableOption "immich" // { - description = '' - Enables immich which consists of a backend server, microservices, - machine-learning and web ui. You can disable or reconfigure components - individually using the subsections. - ''; - }; - - package = mkPackageOption pkgs "immich" { }; - - server = { - mediaDir = mkOption { - type = types.str; - default = "/var/lib/immich/media"; - description = "Directory used to store media files."; - }; - - backend = { - enable = mkEnableOption "immich backend server" // { - default = true; - }; - port = mkOption { - type = types.port; - default = 3001; - description = "Port to bind to."; - }; - - openFirewall = mkOption { - default = false; - type = types.bool; - description = "Whether to open the firewall for the specified port."; - }; - - extraConfig = mkOption { - type = types.attrs; - default = { }; - example = { - LOG_LEVEL = "debug"; - }; - description = '' - Extra configuration options (environment variables). - Refer to [the documented variables](https://documentation.immich.app/docs/install/environment-variables) tagged with 'server' for available options. - ''; - }; - - environmentFile = mkOption { - type = types.nullOr types.path; - default = null; - description = '' - Environment file as defined in systemd.exec(5). May be used to provide - additional secret variables to the service without adding them to the - world-readable Nix store. - ''; - }; - }; - - microservices = { - enable = mkEnableOption "immich microservices" // { - default = true; - }; - - port = mkOption { - type = types.port; - default = 3002; - description = "Port to bind to."; - }; - - openFirewall = mkOption { - default = false; - type = types.bool; - description = "Whether to open the firewall for the specified port."; - }; - - extraConfig = mkOption { - type = types.attrs; - default = { }; - example = { - REVERSE_GEOCODING_PRECISION = 1; - }; - description = '' - Extra configuration options (environment variables). - Refer to [the documented variables](https://documentation.immich.app/docs/install/environment-variables) tagged with 'microservices' for available options. - ''; - }; - - environmentFile = mkOption { - type = types.nullOr types.path; - default = null; - description = '' - Environment file as defined in systemd.exec(5). May be used to provide - additional secret variables to the service without adding them to the - world-readable Nix store. - ''; - }; - }; - - typesense = { - enable = mkEnableOption "typesense" // { - default = true; - }; - - host = mkOption { - type = types.str; - default = "127.0.0.1"; - example = "typesense.example.com"; - description = "Hostname/address of the typesense server to use."; - }; - - port = mkOption { - type = types.port; - default = 8108; - description = "The port of the typesense server to use."; - }; - - protocol = mkOption { - type = types.str; - default = "http"; - description = "The protocol to use when connecting to the typesense server."; - }; - - apiKeyFile = mkOption { - type = types.path; - description = "Sets the api key for authentication with typesense."; - }; - }; - - postgres = { - host = mkOption { - type = types.str; - default = "/run/postgresql"; - description = "Hostname/address of the postgres server to use. If an absolute path is given here, it will be interpreted as a unix socket path."; - }; - - port = mkOption { - type = types.port; - default = 5432; - description = "The port of the postgres server to use."; - }; - - username = mkOption { - type = types.str; - default = "immich"; - description = "The postgres username to use."; - }; - - passwordFile = mkOption { - type = types.nullOr types.path; - default = null; - description = '' - Sets the password for authentication with postgres. - May be unset when using socket authentication. - ''; - }; - - database = mkOption { - type = types.str; - default = "immich"; - description = "The postgres database to use."; - }; - }; - - useMachineLearning = mkOption { - description = "Use the given machine learning server endpoint to enable ML functionality in immich."; - default = true; - type = types.bool; - }; - - machineLearningUrl = mkOption { - type = types.str; - default = "http://127.0.0.1:3003"; - example = "https://immich-ml.internal.example.com"; - description = "The machine learning server endpoint to use."; - }; - - extraConfig = mkOption { - type = types.attrs; - default = { }; - example = { - REDIS_SOCKET = "/run/custom-redis"; - }; - description = '' - Extra configuration options (environment variables) for both backend and microservices. - Refer to [the documented variables](https://documentation.immich.app/docs/install/environment-variables) tagged with both 'server' and 'microservices' for available options. - ''; - }; - - environmentFile = mkOption { - type = types.nullOr types.path; - default = null; - description = '' - Environment file as defined in systemd.exec(5). May be used to provide - additional secret variables to the backend and microservices servers without - adding them to the world-readable Nix store. - ''; - }; - }; - - web = { - enable = mkEnableOption "immich web frontend" // { - default = true; - }; - - port = mkOption { - type = types.port; - default = 3000; - description = "Port to bind to."; - }; - - openFirewall = mkOption { - default = false; - type = types.bool; - description = "Whether to open the firewall for the specified port."; - }; - - serverUrl = mkOption { - type = types.str; - default = "http://127.0.0.1:3001"; - example = "https://immich-backend.internal.example.com"; - description = "The backend server url to use."; - }; - - apiUrlExternal = mkOption { - type = types.str; - default = "/web"; - description = "The api url to use for external requests."; - }; - - extraConfig = mkOption { - type = types.attrs; - default = { }; - example = { - PUBLIC_LOGIN_PAGE_MESSAGE = "My awesome Immich instance!"; - }; - description = '' - Extra configuration options (environment variables). - Refer to [the documented variables](https://documentation.immich.app/docs/install/environment-variables) tagged with 'web' for available options. - ''; - }; - }; - - machineLearning = { - enable = mkEnableOption "immich machine-learning server" // { - default = true; - }; - - port = mkOption { - type = types.port; - default = 3003; - description = "Port to bind to."; - }; - - openFirewall = mkOption { - default = false; - type = types.bool; - description = "Whether to open the firewall for the specified port."; - }; - - extraConfig = mkOption { - type = types.attrs; - default = { }; - example = { - MACHINE_LEARNING_MODEL_TTL = 600; - }; - description = '' - Extra configuration options (environment variables). - Refer to [the documented variables](https://documentation.immich.app/docs/install/environment-variables) tagged with 'machine learning' for available options. - ''; - }; - }; - }; - - config = mkIf cfg.enable { - assertions = [ - { - assertion = !isServerPostgresUnix -> serverCfg.postgres.passwordFile != null; - message = "A database password must be provided when unix sockets are not used."; - } - ]; - - networking.firewall.allowedTCPPorts = mkMerge [ - (mkIf (backendCfg.enable && backendCfg.openFirewall) [ backendCfg.port ]) - (mkIf (microservicesCfg.enable && microservicesCfg.openFirewall) [ microservicesCfg.port ]) - (mkIf (webCfg.enable && webCfg.openFirewall) [ webCfg.port ]) - (mkIf (mlCfg.enable && mlCfg.openFirewall) [ mlCfg.port ]) - ]; - - services.redis.servers.immich.enable = mkIf enableRedis true; - services.redis.vmOverCommit = mkIf enableRedis (mkDefault true); - - systemd.services.immich-server = mkIf backendCfg.enable { - description = "Immich backend server (Self-hosted photo and video backup solution)"; - after = [ - "network.target" - "typesense.service" - "postgresql.service" - "immich-machine-learning.service" - ] ++ optional enableRedis "redis-immich.service"; - wantedBy = [ "multi-user.target" ]; - - environment = - serverEnv - // { - SERVER_PORT = toString backendCfg.port; - } - // mapAttrs (_: toString) serverCfg.extraConfig - // mapAttrs (_: toString) backendCfg.extraConfig; - - script = serverStartWrapper "${cfg.package}/bin/server"; - serviceConfig = mkMerge [ - (commonServiceConfig // serverServiceConfig) - { - EnvironmentFile = mkIf (backendCfg.environmentFile != null) backendCfg.environmentFile; - } - ]; - }; - - systemd.services.immich-microservices = mkIf microservicesCfg.enable { - description = "Immich microservices (Self-hosted photo and video backup solution)"; - after = [ - "network.target" - "typesense.service" - "postgresql.service" - "immich-machine-learning.service" - ] ++ optional enableRedis "redis-immich.service"; - wantedBy = [ "multi-user.target" ]; - - environment = - serverEnv - // { - MICROSERVICES_PORT = toString microservicesCfg.port; - } - // mapAttrs (_: toString) serverCfg.extraConfig - // mapAttrs (_: toString) microservicesCfg.extraConfig; - - script = serverStartWrapper "${cfg.package}/bin/microservices"; - serviceConfig = mkMerge [ - (commonServiceConfig // serverServiceConfig) - { - EnvironmentFile = mkIf (microservicesCfg.environmentFile != null) microservicesCfg.environmentFile; - } - ]; - }; - - systemd.services.immich-web = mkIf webCfg.enable { - description = "Immich web (Self-hosted photo and video backup solution)"; - after = [ - "network.target" - "immich-server.service" - ]; - wantedBy = [ "multi-user.target" ]; - - environment = { - NODE_ENV = "production"; - PORT = toString webCfg.port; - IMMICH_SERVER_URL = webCfg.serverUrl; - IMMICH_API_URL_EXTERNAL = webCfg.apiUrlExternal; - } // mapAttrs (_: toString) webCfg.extraConfig; - - script = '' - set -euo pipefail - export PUBLIC_IMMICH_SERVER_URL=$IMMICH_SERVER_URL - export PUBLIC_IMMICH_API_URL_EXTERNAL=$IMMICH_API_URL_EXTERNAL - exec ${cfg.package.web}/bin/web - ''; - serviceConfig = commonServiceConfig // { - DynamicUser = true; - User = "immich-web"; - Group = "immich-web"; - - MemoryDenyWriteExecute = false; # nodejs requires this. - - TemporaryFileSystem = "/:ro"; - BindReadOnlyPaths = [ - "/nix/store" - "-/etc/resolv.conf" - "-/etc/nsswitch.conf" - "-/etc/hosts" - "-/etc/localtime" - ]; - }; - }; - - systemd.services.immich-machine-learning = mkIf mlCfg.enable { - description = "Immich machine learning (Self-hosted photo and video backup solution)"; - after = [ "network.target" ]; - wantedBy = [ "multi-user.target" ]; - - environment = { - NODE_ENV = "production"; - MACHINE_LEARNING_PORT = toString mlCfg.port; - - MACHINE_LEARNING_CACHE_FOLDER = "/var/cache/immich-ml"; - TRANSFORMERS_CACHE = "/var/cache/immich-ml"; - } // mapAttrs (_: toString) mlCfg.extraConfig; - - serviceConfig = commonServiceConfig // { - ExecStart = "${cfg.package.machine-learning}/bin/machine-learning"; - DynamicUser = true; - User = "immich-ml"; - Group = "immich-ml"; - - MemoryDenyWriteExecute = false; # onnxruntime_pybind11 requires this. - ProcSubset = "all"; # Needs /proc/cpuinfo - - CacheDirectory = "immich-ml"; - CacheDirectoryMode = "0700"; - - # TODO gpu access - - TemporaryFileSystem = "/:ro"; - BindReadOnlyPaths = [ - "/nix/store" - "-/etc/resolv.conf" - "-/etc/nsswitch.conf" - "-/etc/hosts" - "-/etc/localtime" - ]; - }; - }; - - meta.maintainers = with maintainers; [ oddlama ]; - }; -} diff --git a/modules/mount-rock5b/default.nix b/modules/mount-sisko/default.nix similarity index 100% rename from modules/mount-rock5b/default.nix rename to modules/mount-sisko/default.nix diff --git a/modules/rock5b-proxy/default.nix b/modules/sisko-proxy/default.nix similarity index 92% rename from modules/rock5b-proxy/default.nix rename to modules/sisko-proxy/default.nix index 3a324ef..c6c1a7b 100644 --- a/modules/rock5b-proxy/default.nix +++ b/modules/sisko-proxy/default.nix @@ -47,13 +47,16 @@ proxyWebsockets = true; }; }; - - # "jellyfin.aciceri.dev" = { + "paper.aciceri.dev" = { + forceSSL = true; + enableACME = true; + locations."/" = { + proxyPass = "http://localhost:${builtins.toString config.services.paperless.port}"; + }; + }; + # "${config.services.nextcloud.hostName}" = { # forceSSL = true; # enableACME = true; - # locations."/" = { - # proxyPass = "http://localhost:8096"; - # }; # }; # "sevenofnix.aciceri.dev" = { # forceSSL = true; diff --git a/modules/rock5b-samba/default.nix b/modules/sisko-samba/default.nix similarity index 100% rename from modules/rock5b-samba/default.nix rename to modules/sisko-samba/default.nix From 2874437ab968e2ce57acabe3002548ad4bf89029 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 17 Oct 2024 23:17:41 +0200 Subject: [PATCH 085/492] Remove unused `pkgsStable` argument and add a more useful `inputs` --- packages/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/default.nix b/packages/default.nix index ace7ede..258985d 100644 --- a/packages/default.nix +++ b/packages/default.nix @@ -54,10 +54,10 @@ (name: value: { inherit name; value = pkgs.callPackage "${self}/packages/${name}" { - pkgsStable = inputs.nixpkgsStable.legacyPackages.${system}; dream2nix = inputs.dream2nix; projectRoot = self.outPath; packagePath = "packages/${name}"; + inherit inputs; }; }) (lib.filterAttrs (_: type: type == "directory") (builtins.readDir "${self}/packages")) From a8cc32d0e068a40970580eb00f0e1f66cd34f4a3 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 17 Oct 2024 23:20:28 +0200 Subject: [PATCH 086/492] Enable `syncthing` on `sisko` --- hosts/kirk/default.nix | 1 + modules/syncthing/default.nix | 23 ++++++++++++----------- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/hosts/kirk/default.nix b/hosts/kirk/default.nix index 7838975..aaf03b0 100644 --- a/hosts/kirk/default.nix +++ b/hosts/kirk/default.nix @@ -34,6 +34,7 @@ "adb" "binfmt" "prometheus-exporters" + "syncthing" ] ++ [ ./disko.nix diff --git a/modules/syncthing/default.nix b/modules/syncthing/default.nix index b857df4..eb25947 100644 --- a/modules/syncthing/default.nix +++ b/modules/syncthing/default.nix @@ -4,12 +4,13 @@ syncthing = { enable = true; guiAddress = "${config.networking.hostName}.fleet:8434"; - user = config.ccr.username; - dataDir = "/home/${config.ccr.username}"; + # TODO Use the home-manager module instead of the following conditions + user = if config.networking.hostName == "sisko" then "syncthing" else "ccr"; + dataDir = if config.networking.hostName == "sisko" then "/mnt/hd/syncthing" else "/home/ccr"; settings = { options = { urAccepted = 1; # anonymous usage data report - globalAnnounceEnabled = false; # Only sync on the VPN + globalAnnounceEnabled = false; # Only sync when connected to the VPN }; devices = { picard = { @@ -19,7 +20,7 @@ ]; }; sisko = { - id = "L5RAQXR-6U3ANNK-UJJ5AVN-37VKQRB-UK6HXSU-NN3V6HF-JNZEVA5-NI6UEAP"; + id = "5JYQLMP-KNBMSOE-I452UDU-UTKPXJI-K27X2DI-MSCSRCG-6V54Q6U-NVGXPQA"; addresses = [ "tcp://sisko.fleet" ]; @@ -31,7 +32,7 @@ ]; }; oneplus8t = { - id = "76BJ2ZE-FPFDWUZ-3UZIENZ-TS6YBGG-EZSF6UE-GLHRBQ2-KTHTRMI-3JWNRAT"; + id = "KMB2YRF-DGTWU24-SLITU23-5TN7BMQ-6PFAQQZ-CZ7J2QL-PIGVBTU-VRFRMQV"; addresses = [ "tcp://oneplus8t.fleet" ]; @@ -41,9 +42,9 @@ org = { path = { - picard = "/home/${config.ccr.username}/org"; - sisko = "/home/${config.ccr.username}/org"; - kirk = "/home/${config.ccr.username}/org"; + picard = "/home/ccr/org"; + sisko = "/mnt/hd/syncthing/org"; + kirk = "/home/ccr/org"; } .${config.networking.hostName}; devices = [ @@ -56,9 +57,9 @@ sync = { path = { - picard = "/home/${config.ccr.username}/sync"; - sisko = "/home/${config.ccr.username}/sync"; - kirk = "/home/${config.ccr.username}/sync"; + picard = "/home/ccr/sync"; + sisko = "/mnt/hd/syncthing/sync"; + kirk = "/home/ccr/sync"; } .${config.networking.hostName}; devices = [ From 4ffc9224198882c3794181cfd0e7a3d6a713bd5b Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 17 Oct 2024 23:21:58 +0200 Subject: [PATCH 087/492] Backup also the postgres db and paperless --- modules/restic/default.nix | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/modules/restic/default.nix b/modules/restic/default.nix index 3edb52d..c3ba948 100644 --- a/modules/restic/default.nix +++ b/modules/restic/default.nix @@ -25,10 +25,21 @@ in host }".publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIICf9svRenC/PLKIL9nk6K/pxQgoiFC41wTNvoIncOxs"; + services.postgresqlBackup = { + enable = true; + backupAll = true; + location = "/var/backup/postgresql"; + }; + + environment.persistence."/persist".directories = [ + config.services.postgresqlBackup.location + ]; + services.restic.backups.sisko = { paths = [ "/persist" "/mnt/hd/immich" + "/mnt/hd/paperless" ]; exclude = [ " /persist/var/lib/containers" ]; passwordFile = config.age.secrets.SISKO_RESTIC_PASSWORD.path; From 494542e1d216a62535fa5d8e32899ef499c368d2 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 17 Oct 2024 23:22:34 +0200 Subject: [PATCH 088/492] Re-enable `paperless` on `sisko` --- hosts/sisko/default.nix | 1 + modules/paperless/default.nix | 6 +++--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/hosts/sisko/default.nix b/hosts/sisko/default.nix index 298eb78..9e97a42 100644 --- a/hosts/sisko/default.nix +++ b/hosts/sisko/default.nix @@ -29,6 +29,7 @@ "restic" "atuin" "immich" + "paperless" ] ++ [ ./disko.nix diff --git a/modules/paperless/default.nix b/modules/paperless/default.nix index 6770ce5..4918ed7 100644 --- a/modules/paperless/default.nix +++ b/modules/paperless/default.nix @@ -4,8 +4,7 @@ enable = true; address = "0.0.0.0"; passwordFile = builtins.toFile "paperless-initial-password" "paperless"; - mediaDir = "/mnt/hd/paperless/media"; - consumptionDir = "/mnt/hd/paperless/consume"; + mediaDir = "/mnt/hd/paperless/"; settings = { PAPERLESS_OCR_LANGUAGE = "ita+eng"; PAPERLESS_CONSUMER_IGNORE_PATTERN = builtins.toJSON [ @@ -15,11 +14,12 @@ PAPERLESS_OCR_USER_ARGS = builtins.toJSON { optimize = 1; pdfa_image_compression = "lossless"; + invalidate_digital_signatures = true; }; }; }; - backup.paths = [ + environment.persistence."/persist".directories = [ config.services.paperless.dataDir ]; } From 688ec82cafb2ff812ee9f3442d6c3182fb9f8e4e Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 17 Oct 2024 23:23:13 +0200 Subject: [PATCH 089/492] Migrate CIFS to NFS --- modules/mount-sisko/default.nix | 32 +++++++++++++++++++------------- modules/sisko-nfs/default.nix | 20 ++++++++++++++++++++ 2 files changed, 39 insertions(+), 13 deletions(-) create mode 100644 modules/sisko-nfs/default.nix diff --git a/modules/mount-sisko/default.nix b/modules/mount-sisko/default.nix index 5ae34a0..61671a5 100644 --- a/modules/mount-sisko/default.nix +++ b/modules/mount-sisko/default.nix @@ -4,18 +4,24 @@ ... }: { - fileSystems."/home/${config.ccr.username}/torrent" = { - device = "//sisko.fleet/torrent"; - fsType = "cifs"; - options = - let - credentials = pkgs.writeText "credentials" '' - username=guest - password= - ''; - in - [ - "credentials=${credentials},x-systemd.automount,noauto,x-systemd.idle-timeout=60,x-systemd.device-timeout=5s,x-systemd.mount-timeout=5s,uid=1000,gid=1000" - ]; + environment.systemPackages = with pkgs; [ nfs-utils ]; + boot.supportedFilesystems = [ "nfs" ]; + services.rpcbind.enable = true; + + security.wrappers."mount.nfs" = { + setuid = true; + owner = "root"; + group = "root"; + source = "${pkgs.nfs-utils.out}/bin/mount.nfs"; + }; + + fileSystems."/home/${config.ccr.username}/nas" = { + device = "sisko.fleet:/hd"; + fsType = "nfs"; + options = [ + "x-systemd.automount" + "noauto" + "user" + ]; }; } diff --git a/modules/sisko-nfs/default.nix b/modules/sisko-nfs/default.nix new file mode 100644 index 0000000..7e9b82b --- /dev/null +++ b/modules/sisko-nfs/default.nix @@ -0,0 +1,20 @@ +{ + systemd.tmpfiles.rules = [ + "d /export 770 nobody nogroup" + ]; + + fileSystems."/export/hd" = { + device = "/mnt/hd"; + options = [ "bind" ]; + }; + + services.nfs.server = { + enable = true; + exports = '' + /export 10.100.0.1/24(rw,fsid=0,no_subtree_check) + /export/hd 10.100.0.1/24(rw,nohide,insecure,no_subtree_check,no_root_squash) + ''; + }; + + networking.firewall.allowedTCPPorts = [ 2049 ]; +} From 13ac723ec03ffbf6a15b08aa7d9058b788e3f63c Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 17 Oct 2024 23:23:26 +0200 Subject: [PATCH 090/492] Reminder to migrate forgejo to a postgres backend It's easier to backup --- modules/forgejo/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/forgejo/default.nix b/modules/forgejo/default.nix index ae7f0c4..d67ccc5 100644 --- a/modules/forgejo/default.nix +++ b/modules/forgejo/default.nix @@ -4,6 +4,7 @@ }: { services.forgejo = { + # TODO migrate to Postgres enable = true; settings = { DEFAULT = { From 5edc79b504eb0bcf41570774765be6584c8c4cbd Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 17 Oct 2024 23:23:48 +0200 Subject: [PATCH 091/492] Remove unused domains add new ones --- modules/cloudflare-dyndns/default.nix | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/modules/cloudflare-dyndns/default.nix b/modules/cloudflare-dyndns/default.nix index b70c98d..e86c6b6 100644 --- a/modules/cloudflare-dyndns/default.nix +++ b/modules/cloudflare-dyndns/default.nix @@ -12,12 +12,10 @@ "search.aciceri.dev" "invidious.aciceri.dev" "vpn.aciceri.dev" - "cache.aciceri.dev" - "matrix.aciceri.dev" - "syncv3.matrix.aciceri.dev" - "jellyfin.aciceri.dev" "photos.aciceri.dev" "status.aciceri.dev" + "paper.aciceri.dev" + "cloud.aciceri.dev" ]; apiTokenFile = config.age.secrets.cloudflare-dyndns-api-token.path; }; From 00580c2c1feadc03dd983336ec0b5c169dbca779 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 17 Oct 2024 23:24:36 +0200 Subject: [PATCH 092/492] Remove warning about missing meta attribute --- hmModules/logseq/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hmModules/logseq/default.nix b/hmModules/logseq/default.nix index f8ff624..dffb462 100644 --- a/hmModules/logseq/default.nix +++ b/hmModules/logseq/default.nix @@ -8,7 +8,7 @@ let hash = "sha256-Hy/zk8ZCkWajsMRUMsewLvkKpMpsBZYnFootPU9y6Z0="; }; }; - logseq-wayland = pkgs.writeScriptBin "logseq" "${lib.getExe logseq} --enable-features=UseOzonePlatform --ozone-platform=wayland"; + logseq-wayland = pkgs.writeScriptBin "logseq" "${lib.getExe' logseq "logseq"} --enable-features=UseOzonePlatform --ozone-platform=wayland"; in { home.packages = [ logseq-wayland ]; From ce0732941758651fa42dacd089383129e25f5f31 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 17 Oct 2024 23:24:58 +0200 Subject: [PATCH 093/492] Re-enable shortcut for Emacs --- hmModules/hyprland/hyprland.conf | 1 + 1 file changed, 1 insertion(+) diff --git a/hmModules/hyprland/hyprland.conf b/hmModules/hyprland/hyprland.conf index c8c20af..543355b 100644 --- a/hmModules/hyprland/hyprland.conf +++ b/hmModules/hyprland/hyprland.conf @@ -36,6 +36,7 @@ bind = $mod, m, exec, footclient $SHELL -C "aerc" bind = $mod, d, exec, fuzzel --background-color=253559cc --border-radius=5 --border-width=0 bind = $mod, s, exec, screenshot.sh bind = $mod, n, exec, logseq +bind = $mod, x, exec, emacsclient -c bind = , XF86MonBrightnessUp, exec, brightnessctl s +5% bind = , XF86MonBrightnessDown, exec, brightnessctl s 5%- bind = $mod, code:60, exec, brightnessctl s +5% From a0f9a2b55d273f71ff9a8b315244c924bd081c77 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 17 Oct 2024 23:25:19 +0200 Subject: [PATCH 094/492] Improve email --- hmModules/email/default.nix | 68 ++++++++++++++++++++++++++++++++++++- 1 file changed, 67 insertions(+), 1 deletion(-) diff --git a/hmModules/email/default.nix b/hmModules/email/default.nix index 829f6c7..5ae160a 100644 --- a/hmModules/email/default.nix +++ b/hmModules/email/default.nix @@ -8,7 +8,19 @@ { programs.mbsync.enable = true; programs.msmtp.enable = true; - services.mbsync.enable = true; + services.mbsync = { + enable = true; + postExec = lib.getExe ( + pkgs.writeShellScriptBin "mbsync-post-exec" '' + ${lib.getExe pkgs.notmuch} new + for _ in _ _ + do + afew -C ~/.config/notmuch/default/config --tag --new -vv + afew -C ~/.config/notmuch/default/config --move --new -vv + done + '' + ); + }; home.file.".config/aerc/stylesets" = let @@ -188,6 +200,58 @@ }; }; + programs.notmuch = { + enable = true; + new.tags = [ "new" ]; + search.excludeTags = [ + "trash" + "deleted" + "spam" + ]; + maildir.synchronizeFlags = true; + }; + + programs.afew = { + enable = true; + extraConfig = '' + [Filter.1] + message = "Tag GitHub notifications" + tags = +github + query = from:noreply@github.com OR from:notifications@github.com + + [Filter.2] + query = "folder:autistici/Inbox" + tags = +autistici + message = "Tag personal autistici emails" + + [Filter.3] + query = "not folder:autistici/Inbox" + tag = -new + message = "Sanity check: remove the new tag for emails moved out from Inbox" + + [Filter.4] + query = "not folder:autistici/Inbox" + tag = -new + message = "Sanity check: remove the new tag for emails moved out from Inbox" + + [Filter.5] + query = "not folder:autistici/Sent" + tag = +sent + message = "Sanity check: add the sent tag for emails in Sent" + + [Filter.6] + query = "not folder:autistici/Drafts" + tag = +draft + message = "Sanity check: add the draft tag for emails in Draft" + + [MailMover] + folders = autistici/Inbox + rename = true + + autistici/Inbox = 'tag:archive':autistici/Archive 'tag:github':autistici/GitHub 'NOT tag:new':autistici/Trash + ''; + }; + systemd.user.services.emails-watcher = { Unit.Description = "Send notifications when new emails arrive"; Install = { @@ -214,6 +278,8 @@ mbsync = { enable = true; create = "maildir"; + expunge = "both"; + remove = "both"; }; msmtp.enable = true; notmuch.enable = true; From 6ead1cbc6e5fa63c70e0c4cc2ab7f23dabcd4121 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 17 Oct 2024 23:26:07 +0200 Subject: [PATCH 095/492] New modules used on `sisko` and `picard` --- hosts/kirk/default.nix | 20 ++++++++++++++------ hosts/picard/default.nix | 5 +++-- hosts/sisko/default.nix | 5 +++-- 3 files changed, 20 insertions(+), 10 deletions(-) diff --git a/hosts/kirk/default.nix b/hosts/kirk/default.nix index aaf03b0..272dd30 100644 --- a/hosts/kirk/default.nix +++ b/hosts/kirk/default.nix @@ -1,7 +1,7 @@ { fleetModules, lib, - config, + pkgs, ... }: { @@ -27,13 +27,13 @@ "printing" "pam" "wireguard-client" - "restic" "greetd" "syncthing" - "mount-rock5b" + "mount-sisko" "adb" "binfmt" "prometheus-exporters" + "promtail" "syncthing" ] ++ [ @@ -72,6 +72,9 @@ "zathura" "imv" "catppuccin" + "libreoffice" + "logseq" + "emacs" ]; extraGroups = [ ]; backupPaths = [ ]; @@ -88,7 +91,7 @@ "kvm-intel" ]; - boot.kernelPackages = config.boot.zfs.package.latestCompatibleLinuxPackages; + boot.kernelPackages = pkgs.linuxKernel.packages.linux_6_10; boot.loader.efi.canTouchEfiVariables = true; boot.loader.systemd-boot = { @@ -102,8 +105,13 @@ powerManagement.cpuFreqGovernor = lib.mkDefault "schedutil"; hardware.enableRedistributableFirmware = lib.mkDefault true; - hardware.opengl = { + hardware.graphics = { enable = true; - driSupport32Bit = true; + enable32Bit = true; + }; + + zramSwap = { + enable = true; + algorithm = "zstd"; }; } diff --git a/hosts/picard/default.nix b/hosts/picard/default.nix index c4128f7..faa6571 100644 --- a/hosts/picard/default.nix +++ b/hosts/picard/default.nix @@ -31,13 +31,13 @@ "wireguard-client" "binfmt" "greetd" - # "syncthing" + "syncthing" "hass-poweroff" "forgejo-runners" "teamviewer" "macos-ventura" "sunshine" - "mount-rock5b" + "mount-sisko" "adb" "guix" "prometheus-exporters" @@ -91,6 +91,7 @@ "imv" "libreoffice" "logseq" + "emacs" ]; extraGroups = [ ]; backupPaths = [ ]; diff --git a/hosts/sisko/default.nix b/hosts/sisko/default.nix index 9e97a42..6295c63 100644 --- a/hosts/sisko/default.nix +++ b/hosts/sisko/default.nix @@ -15,10 +15,10 @@ "home-assistant" "adguard-home" "cloudflare-dyndns" - "rock5b-proxy" + "sisko-proxy" "invidious" "searx" - "rock5b-samba" + "sisko-nfs" "forgejo" "prometheus" "grafana" @@ -30,6 +30,7 @@ "atuin" "immich" "paperless" + "syncthing" ] ++ [ ./disko.nix From 7e210d325f4fb61b6d613db1ecc27be7740e4b9e Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 17 Oct 2024 23:26:58 +0200 Subject: [PATCH 096/492] Add `emacs-overlay` flake input --- flake.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/flake.nix b/flake.nix index bc75454..72b2a1f 100644 --- a/flake.nix +++ b/flake.nix @@ -57,6 +57,7 @@ inputs.nixpkgs.follows = "nixpkgs"; }; catppuccin.url = "github:catppuccin/nix"; + emacs-overlay.url = "github:nix-community/emacs-overlay"; }; outputs = From 74880599ea5d4b7b2016aa694fc1e76db0c0fe70 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 17 Oct 2024 23:27:41 +0200 Subject: [PATCH 097/492] Update inputs --- flake.lock | 124 +++++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 105 insertions(+), 19 deletions(-) diff --git a/flake.lock b/flake.lock index c270768..8a2a579 100644 --- a/flake.lock +++ b/flake.lock @@ -119,6 +119,26 @@ "type": "github" } }, + "emacs-overlay": { + "inputs": { + "flake-utils": "flake-utils", + "nixpkgs": "nixpkgs_3", + "nixpkgs-stable": "nixpkgs-stable" + }, + "locked": { + "lastModified": 1728638138, + "narHash": "sha256-9BNhvMzh/bQmm0VhhRrl3fmiIjQnvRrVUwXIM5mtYY4=", + "owner": "nix-community", + "repo": "emacs-overlay", + "rev": "b3101a3a0f3883f97fa867ef56b0f29fa2b2b7f1", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "emacs-overlay", + "type": "github" + } + }, "fan-control": { "flake": false, "locked": { @@ -267,6 +287,24 @@ "inputs": { "systems": "systems_3" }, + "locked": { + "lastModified": 1726560853, + "narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_3": { + "inputs": { + "systems": "systems_4" + }, "locked": { "lastModified": 1681202837, "narHash": "sha256-H+Rh19JDwRtpVPAWp64F+rlEtxUWBAQW28eAi3SRSzg=", @@ -321,7 +359,7 @@ "nixpkgs": [ "nixpkgs" ], - "nixpkgs-stable": "nixpkgs-stable" + "nixpkgs-stable": "nixpkgs-stable_2" }, "locked": { "lastModified": 1726745158, @@ -383,7 +421,7 @@ "hercules-ci-effects": { "inputs": { "flake-parts": "flake-parts_3", - "nixpkgs": "nixpkgs_5" + "nixpkgs": "nixpkgs_6" }, "locked": { "lastModified": 1701009247, @@ -557,7 +595,7 @@ }, "lix-module": { "inputs": { - "flake-utils": "flake-utils", + "flake-utils": "flake-utils_2", "flakey-profile": "flakey-profile", "lix": [ "lix" @@ -626,7 +664,7 @@ "inputs": { "home-manager": "home-manager_2", "nix-formatter-pack": "nix-formatter-pack", - "nixpkgs": "nixpkgs_3", + "nixpkgs": "nixpkgs_4", "nixpkgs-docs": "nixpkgs-docs", "nixpkgs-for-bootstrap": "nixpkgs-for-bootstrap", "nmd": "nmd" @@ -647,7 +685,7 @@ }, "nixDarwin": { "inputs": { - "nixpkgs": "nixpkgs_4" + "nixpkgs": "nixpkgs_5" }, "locked": { "lastModified": 1727003835, @@ -814,6 +852,22 @@ } }, "nixpkgs-stable": { + "locked": { + "lastModified": 1728500571, + "narHash": "sha256-dOymOQ3AfNI4Z337yEwHGohrVQb4yPODCW9MDUyAc4w=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "d51c28603def282a24fa034bcb007e2bcb5b5dd0", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-24.05", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-stable_2": { "locked": { "lastModified": 1720386169, "narHash": "sha256-NGKVY4PjzwAa4upkGtAMz1npHGoRzWotlSnVlqI40mo=", @@ -829,7 +883,7 @@ "type": "github" } }, - "nixpkgs-stable_2": { + "nixpkgs-stable_3": { "locked": { "lastModified": 1720386169, "narHash": "sha256-NGKVY4PjzwAa4upkGtAMz1npHGoRzWotlSnVlqI40mo=", @@ -862,6 +916,22 @@ } }, "nixpkgs_3": { + "locked": { + "lastModified": 1728492678, + "narHash": "sha256-9UTxR8eukdg+XZeHgxW5hQA9fIKHsKCdOIUycTryeVw=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "5633bcff0c6162b9e4b5f1264264611e950c8ec7", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_4": { "locked": { "lastModified": 1708172716, "narHash": "sha256-3M94oln0b61m3dUmLyECCA9hYAHXZEszM4saE3CmQO4=", @@ -876,7 +946,7 @@ "type": "github" } }, - "nixpkgs_4": { + "nixpkgs_5": { "locked": { "lastModified": 0, "narHash": "sha256-bvGoiQBvponpZh8ClUcmJ6QnsNKw0EMrCQJARK3bI1c=", @@ -888,7 +958,7 @@ "type": "indirect" } }, - "nixpkgs_5": { + "nixpkgs_6": { "locked": { "lastModified": 1697723726, "narHash": "sha256-SaTWPkI8a5xSHX/rrKzUe+/uVNy6zCGMXgoeMb7T9rg=", @@ -904,13 +974,13 @@ "type": "github" } }, - "nixpkgs_6": { + "nixpkgs_7": { "locked": { - "lastModified": 1728241625, - "narHash": "sha256-yumd4fBc/hi8a9QgA9IT8vlQuLZ2oqhkJXHPKxH/tRw=", + "lastModified": 1728492678, + "narHash": "sha256-9UTxR8eukdg+XZeHgxW5hQA9fIKHsKCdOIUycTryeVw=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "c31898adf5a8ed202ce5bea9f347b1c6871f32d1", + "rev": "5633bcff0c6162b9e4b5f1264264611e950c8ec7", "type": "github" }, "original": { @@ -920,7 +990,7 @@ "type": "github" } }, - "nixpkgs_7": { + "nixpkgs_8": { "locked": { "lastModified": 1678470307, "narHash": "sha256-OEeMUr3ueLIXyW/OaFUX5jUdimyQwMg/7e+/Q0gC/QE=", @@ -936,7 +1006,7 @@ "type": "github" } }, - "nixpkgs_8": { + "nixpkgs_9": { "locked": { "lastModified": 1682134069, "narHash": "sha256-TnI/ZXSmRxQDt2sjRYK/8j8iha4B4zP2cnQCZZ3vp7k=", @@ -1031,7 +1101,7 @@ "lanzaboote", "nixpkgs" ], - "nixpkgs-stable": "nixpkgs-stable_2" + "nixpkgs-stable": "nixpkgs-stable_3" }, "locked": { "lastModified": 1721042469, @@ -1091,7 +1161,7 @@ "fan-control": "fan-control", "flake-parts": "flake-parts_4", "kernel-src": "kernel-src", - "nixpkgs": "nixpkgs_7", + "nixpkgs": "nixpkgs_8", "nixpkgs-kernel": "nixpkgs-kernel", "panfork": "panfork", "tow-boot": "tow-boot", @@ -1117,6 +1187,7 @@ "catppuccin": "catppuccin", "disko": "disko", "dream2nix": "dream2nix", + "emacs-overlay": "emacs-overlay", "flakeParts": "flakeParts", "git-hooks-nix": "git-hooks-nix", "homeManager": "homeManager", @@ -1130,7 +1201,7 @@ "nixDarwin": "nixDarwin", "nixThePlanet": "nixThePlanet", "nixosHardware": "nixosHardware", - "nixpkgs": "nixpkgs_6", + "nixpkgs": "nixpkgs_7", "rock5b": "rock5b", "treefmt-nix": "treefmt-nix_2", "vscode-server": "vscode-server" @@ -1240,6 +1311,21 @@ "type": "github" } }, + "systems_4": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, "tow-boot": { "flake": false, "locked": { @@ -1300,8 +1386,8 @@ }, "vscode-server": { "inputs": { - "flake-utils": "flake-utils_2", - "nixpkgs": "nixpkgs_8" + "flake-utils": "flake-utils_3", + "nixpkgs": "nixpkgs_9" }, "locked": { "lastModified": 1713958148, From 87b886bfb07f40946f6aecc5b6e710634944ae5d Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 17 Oct 2024 23:32:00 +0200 Subject: [PATCH 098/492] Disable deadnix check It's too annoying --- checks/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/checks/default.nix b/checks/default.nix index d4de7c0..1ea5427 100644 --- a/checks/default.nix +++ b/checks/default.nix @@ -17,13 +17,13 @@ projectRootFile = ".git/config"; programs = { nixfmt-rfc-style.enable = true; - deadnix.enable = true; + deadnix.enable = false; }; }; pre-commit.settings.hooks = { nixfmt-rfc-style.enable = true; - deadnix.enable = true; + deadnix.enable = false; }; }; From 911cc18e6594fc1bc9c40b319fcc54ee9fb3fcbe Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 17 Oct 2024 23:32:16 +0200 Subject: [PATCH 099/492] Vendor emacs --- hmModules/emacs/default.nix | 47 ++++++++++++++-- packages/emacs/default.nix | 35 ++++++++++++ packages/emacs/packages.nix | 108 ++++++++++++++++++++++++++++++++++++ 3 files changed, 186 insertions(+), 4 deletions(-) create mode 100644 packages/emacs/default.nix create mode 100644 packages/emacs/packages.nix diff --git a/hmModules/emacs/default.nix b/hmModules/emacs/default.nix index 98463cc..fa8d312 100644 --- a/hmModules/emacs/default.nix +++ b/hmModules/emacs/default.nix @@ -1,10 +1,49 @@ { lib, - age, + fleetFlake, + pkgs, ... }: +let + emacs = fleetFlake.packages.${pkgs.system}.emacs; +in { - ccrEmacs.enable = true; - home.sessionVariables.EDITOR = lib.mkForce "emacsclient"; - systemd.user.services.emacs.Service.EnvironmentFile = age.secrets.chatgpt-token.path; + home.sessionVariables.EDITOR = lib.mkForce "emacsclient -c"; + programs.emacs = { + enable = true; + package = emacs; + }; + services.emacs = { + enable = true; + client.enable = true; + defaultEditor = true; + socketActivation.enable = false; + startWithUserSession = true; + package = emacs; + }; + home.packages = + with pkgs; + [ + binutils + delta + (ripgrep.override { withPCRE2 = true; }) + gnutls + fd + hunspell + python3 + imagemagick + ghostscript_headless + mupdf-headless + poppler_utils + ffmpegthumbnailer + mediainfo + unzipNLS + nodejs_20 + pkgs.qadwaitadecorations + pkgs.kdePackages.qtwayland + ] + ++ (with hunspellDicts; [ + en_US-large + it_IT + ]); } diff --git a/packages/emacs/default.nix b/packages/emacs/default.nix new file mode 100644 index 0000000..fe77b46 --- /dev/null +++ b/packages/emacs/default.nix @@ -0,0 +1,35 @@ +{ + lib, + inputs, + pkgs, + ... +}: +let + pkgs' = pkgs.extend ( + lib.composeManyExtensions [ + inputs.emacs-overlay.overlays.package + inputs.emacs-overlay.overlays.emacs + ] + ); + all-grammars = pkgs'.tree-sitter.withPlugins builtins.attrValues; + treesitGrammars = pkgs'.runCommand "treesit-grammars" { } '' + mkdir $out + for f in ${all-grammars}/* + do + cp $f $out/"libtree-sitter-$(basename $f)" + done + ''; + emacsWithoutPackages = pkgs'.emacs-git.override { + withSQLite3 = true; + withWebP = true; + withPgtk = true; + }; + emacs = (pkgs'.emacsPackagesFor emacsWithoutPackages).emacsWithPackages ( + import ./packages.nix pkgs' + ); +in +emacs.overrideAttrs { + passthru = { + inherit treesitGrammars; + }; +} diff --git a/packages/emacs/packages.nix b/packages/emacs/packages.nix new file mode 100644 index 0000000..7baa25f --- /dev/null +++ b/packages/emacs/packages.nix @@ -0,0 +1,108 @@ +pkgs: epkgs: +let + inherit (epkgs) melpaPackages nongnuPackages elpaPackages; + + # *Attrset* containig extra emacs packages from flake inputs + + # *List* containing emacs packages from (M)ELPA + mainPackages = + # builtins.filter + # if an extra package has the same name then give precedence to it + # (package: ! builtins.elem package.pname (builtins.attrNames extraPackages)) + (with melpaPackages; [ + meow + meow-tree-sitter + dracula-theme + nord-theme + catppuccin-theme + modus-themes + # solaire-mode + nerd-icons + nerd-icons-completion + nerd-icons-ibuffer + nerd-icons-dired + ligature + treemacs-nerd-icons + eshell-syntax-highlighting + fish-completion # fish completion for eshell + eshell-prompt-extras + eshell-atuin + eshell-command-not-found + clipetty + sideline + consult-eglot + # sideline-flymake + rainbow-delimiters + vertico + marginalia + consult + orderless + embark + embark-consult + magit + magit-delta + magit-todos + difftastic + with-editor + diff-hl + corfu + cape + which-key + nix-mode + nix-ts-mode + agenix + zig-mode + unisonlang-mode + purescript-mode + dhall-mode + envrc + inheritenv + popper + paredit + yaml-mode + hl-todo + markdown-mode + haskell-mode + terraform-mode + diredfl + org-modern + org-roam + org-roam-ql + visual-fill-column + consult-org-roam + pass + password-store-otp + eldoc-box + go-translate + notmuch + consult-notmuch + poly-org + casual-calc + gptel + agenix + solidity-mode + # org-re-reveal # FIXME very not nice hash mismatch when building + # gptel # TODO uncomment when there will be a new release including GPT-4o + ]) + ++ (with elpaPackages; [ + delight + kind-icon + ef-themes + indent-bars + ]) + ++ (with nongnuPackages; [ + eat + corfu-terminal + haskell-ts-mode + ]); +in +mainPackages +# ++ (builtins.attrValues extraPackages) +# Playing with EAF +++ [ + # Disabled because pymupdf was broken + # (pkgs.callPackage ./eaf.nix { + # inherit (epkgs) melpaBuild; + # inherit (melpaPackages) ctable deferred epc s; + # }) +] From 0026a64c7ccff72a457ad3d6e9d845e49639f6c7 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Mon, 28 Oct 2024 12:13:03 +0100 Subject: [PATCH 100/492] Add `vial` home-manager module --- hmModules/vial/default.nix | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 hmModules/vial/default.nix diff --git a/hmModules/vial/default.nix b/hmModules/vial/default.nix new file mode 100644 index 0000000..af49514 --- /dev/null +++ b/hmModules/vial/default.nix @@ -0,0 +1,4 @@ +{ pkgs, ... }: +{ + home.packages = [ pkgs.vial ]; +} From 4c6a9fc358429e4828e53938c5462ede83b1eafd Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Mon, 28 Oct 2024 12:13:16 +0100 Subject: [PATCH 101/492] Enable `vial` on `picard` --- hosts/picard/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/hosts/picard/default.nix b/hosts/picard/default.nix index faa6571..c5773d4 100644 --- a/hosts/picard/default.nix +++ b/hosts/picard/default.nix @@ -92,6 +92,7 @@ "libreoffice" "logseq" "emacs" + "vial" ]; extraGroups = [ ]; backupPaths = [ ]; From e226364c3f6df31b21ce17a1571cbca54d7f5914 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Wed, 30 Oct 2024 14:49:21 +0100 Subject: [PATCH 102/492] Using Emacs again :) --- hmModules/helix/default.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/hmModules/helix/default.nix b/hmModules/helix/default.nix index c6ef610..ee9cc32 100644 --- a/hmModules/helix/default.nix +++ b/hmModules/helix/default.nix @@ -10,7 +10,6 @@ programs.helix = { enable = true; - defaultEditor = true; settings = { editor = { indent-guides.render = true; From f81c7ce64869a884a678a938db75edbedbe07dcf Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Wed, 30 Oct 2024 14:49:29 +0100 Subject: [PATCH 103/492] Update OpenAI token --- secrets/chatgpt-token.age | Bin 2032 -> 2130 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/secrets/chatgpt-token.age b/secrets/chatgpt-token.age index 1356565233337bfbeec3e22fb97e2c3130c75a58..65223f0f3ae50a13fd42e584cb11acb07ebfedf9 100644 GIT binary patch delta 2074 zcmeyse@S41M!mC#f4E1YX|X|gsHa<%he@DIiEn9{e_^t5vPD61Mnpu8vvxsRSWZ=P zxJ9LYa-n-wfvZoMVPH~OKzLfJdoEX|w_}i_VUnMFv9q6xWn@%pNLr*vVxWXO=;xaY0C6X}XucXGUm-2Un%1 zW3r1uke_p~x0$i0N2W`9p<_gDrM`1!s#CgUnoF5MaFnZuYlMeSX{nJ(R$yXyk)=KtZ6f zez?9_ppQ|WZ&HLul$Vo!g=v6xj$ud`SFTZ^fp2P}w|}~?fnQ=!mXlv$j#Fu2k#DwN zUQn{Bt53MUW3iEmnNg~KqDf_TxvQsRmbQ7hcYU&BMnPgkU#XdhGhho zce;T~YQAw$sJDqpQAUb)k&j=dNuZ~xpHr1nRi1%CP*PD!xLLZlwx@BRS+;4uSwKKl zRDD`SR#8}xpFyU7CRbFVueZ5du~(|UucLlNM5(!NRDqjCnOBa1Nr;Pfv4^LRMP-$9 zUWj9=rFU_Nep0x$U$C)jRJpHcadC!jQE{R|phuChz9Uy* zv2S^0n7^-2Xi7zZS+=%iiEC(Sn5joalyh-#d7*ZWtGAO|l4H4Fm{E$mqe-!|cD<89 zW=U~SSU^fZUT$z1mwTa6N=~_nV@PnOxru>szHzy`XMshAX>oybs<)Yud1{%FvyXGA zNm60CbC8Q=d4!)=XjYm*xvz(5Ms}gO7gs@HqHB7Jv7wVkNM%Wqt7mqQsavG8dsS3^ zX+UIDVQ@uKl6Pcjez|v^i+@GFQN3ASg>Q05rMIC;l8b9WU}-*AX+U6wSyFmLzOP$g zMyPSRzIUZ%fxoL+RiZ(le|liJNa^UVUhwt9w;s zVzRcjfq8MJp}9qcy9Zafxs!2Wa7c)gn~{OBZ-tj@h=GY;v3X&7g;{b`g?X}Jwn1`4 zU~xu~rCDxSzHeDZN?Db0T86PtQKY+{i)jv5m3el0R!(wMVOd3SltoIBpHD$pu1B&( zNq(t$Kxt%!L8e!jiBV}rc71qyX<$~4c7=bYr)RpSe{oW|eqw2EC09^HO1e>6dO&(o zlvh%2c14bFx^I|)Z;p0EP;hy8Vpg)HMPZVDKz6WGc!<7hYMPUWze{3{xl_XZWTb8(( z8z#C(npT*(L>Wh6?+Ao*iLm zVxpbm6;%B?yK)o zUY2H@VOkMX?yiEGjvz%E;KjH^s->JH#z5Jj|m! z+$=fWufjdhEHX96lgp$eJ-jf#$T!?6A|kY^D9bpYD%r~~G$+@$+{`k-t31lm*VQA) zDA&()@;f$(`U;D1$AG9v^T=sN@RIz^V$D!i-?gU^7SWe1CIaE?r$+1@B_l z6d&y@cOUm$Gs7Tr@2GP93S+;}l!DM4{cL^xyt2UL`rxFrj9?F+P_7A*BFwG_^p>`m z76%_av9f51)#*bkw(IA+_Xp<&rN1&x+Hrq+md0~|NH0&tjT`5AMuqCH z7K`c)Fb?`wcfwD{t90-4!&V1F+n%*deP!D&pp~Wj{s?=FxA+pzJPpyQ6)aZF*EeN~ tf80H%@$KRy&eGMt9?de=+x9AY?dF^EXS|mdXxAN1I2M#KDabhS2>@B*!At-E delta 1975 zcmca4@PU7VMty3LZ)LiBW>`SBVUTfENTy>*lxJB;gmHjtfpKD#bCG#im0@6JMxaq% zc8-^2a&bwqdys2Xk#UxJuxnCEL>8BKXt<$Cx^t$Bcc@>uNmz+xaCkswwuiB^Q?j#B zadBi&mY0`to|jpKp?gVQl)H;_if>?qM@D5~UZk&kS$$?2SFuZwM@5uRkw;{Dh>2Tq zR$6eenX{2ore#2mTZv&ta%Gl*xnHT1Pq|BJQK*Mgq;_gRN@i%9cXnZ*v!$`C6IV%) zi*ZtZcu|IHV0eg0YDj5#v9F;^rlWhhk*U5{j=8&cu2WH-xtmL9pnh6WhKYM#VzHO2 zM^<=PV!cmBP=za3MPh29ew0CSa$Zh=acaI#W|4PNaa4(!i)VVWpL39fd4y4kb7`qh zR90nahHpixesOq_OKG`Bm7_K}RZ4hOc$tY?a#DVBXhvv?SB9H&QE5o1K~$l+V`*qXMTW7bZ-jqQUWR*GPGt#~ zQ*NG7RJNI)b4rSNrB6j_a++bbnRAG-c6nNIk+Vr!WJS4?o4=` zR=B%%P->xnVYpjyu(zd&QJ`f&iHS*AXns{nU}9=Mm#&>cadC!jQE{R|phuChz9Uz1 zMOJvEdzyDaXtI-bQFw)Gm3L)nNm`{vmVaq@k(--kdSOs;WN3C?NLF#Uk%@jmK)sn` zaFwM?x=X2fK&pQvSEOrtL{fIDsb@%eiBGb>i?^4tslIQpeo9JdVo_SLcDRvqzL{y6 zzNKMdxu;WvcTSO4m{WFzQ*K&LWr&G|K395yv$J!MVQPSRc4erkiCd0Sxp9cUiC3_T zsb!gWpm$W7d0~=4g|V4IXq1_DKz&qUM4m}Oh`+nOS-C->Z@xZPYDH>cptGx4Myi>9 zPL#H}x3;BYRbi2MN(9xk5O8oX{vKZNquF8VQ{9U zvvGQ9R)|5Qt9fFklM7cxSwWDQZ%T?mg}zy6rmJzXON4*6nPqZ8m3FyvpkGdoiJ5;$ ziJ^gGX{v=$g->p_v7uvSNP&xfnV*G6fRP!Oi(6n;M4EQGM|n>Dn~6t7SgK!f zlA(p4Pnl<+kylA-lv7oSdA(Djo3UeFmUF7Jw|;ttzCn1gnM+V+8JBlrM0iT1TYjR2 zd1_8}ZeXdAlX+5VZbn6kX--B}Nl2()iNB9aa%pZwUS?24PPm6tp+%5ox__a8fm42N zwilOCgokf&u}es1gtvD}dR3xpg@Ku~yJ?bsdQ^&WUaC`4c20R=MSWO?lV3qdl4EI- zVTw^jSdmFeqDN7cd5T*Om!r8+xv5E*r=d@Nm0^XmVTns>cA>keZ$(&+cWHQFX-Iis zMo2}dyMLCeS$a;Mw^Mm!Sw^H&N`$wOX<@p430FvEdTDTJxl4Iws!5=!Pei19Qf7K$ zs=tMqTd9*vsZVIGTYZH|YEZd*VmT}|r=}R0ni^Uv=vVrrxCbhDWLcPpC%Y6?`I{P8 zR(a)ERO$zYmpd8;`{$;nqlqwn8I)R4+G&J1bETACLGQz1m zyCktNIXEcaBq+<3D>EtBC^080%Fj2@#6Q(NuQ0XJIoCV1EG)}7FW98Kw6LTq$jdJ{ zCp&-gJ2r{>5);ePVBfq@@A3#AAEN@3iju&53xjOq{4~#0Cy#>A@X*|F*T4)9$I5)J zu>|@(5BIEeKg+=K;QT^;-yrv7({v9HH*XUzU0q#;&;ZxM zEU(D$EHC4%9B+Mh1LHD-6pQfC#1O;q@URdg_q2fQpn{N`bPM-#t}1oE%&#_yB8#;D zdwS=5 Date: Wed, 30 Oct 2024 14:51:53 +0100 Subject: [PATCH 104/492] Enable emacs directly from nixfleet --- hmModules/emacs/default.nix | 26 +- hmModules/emacs/init.el | 943 ++++++++++++++++++++++++++++++++++++ 2 files changed, 968 insertions(+), 1 deletion(-) create mode 100644 hmModules/emacs/init.el diff --git a/hmModules/emacs/default.nix b/hmModules/emacs/default.nix index fa8d312..e8bdebf 100644 --- a/hmModules/emacs/default.nix +++ b/hmModules/emacs/default.nix @@ -2,13 +2,18 @@ lib, fleetFlake, pkgs, + age, ... }: let emacs = fleetFlake.packages.${pkgs.system}.emacs; + inherit (emacs.passthru) treesitGrammars; in { - home.sessionVariables.EDITOR = lib.mkForce "emacsclient -c"; + systemd.user.sessionVariables = { + EDITOR = lib.mkForce "emacsclient -c"; + OPENAI_API_KEY_PATH = age.secrets.chatgpt-token.path; + }; programs.emacs = { enable = true; package = emacs; @@ -46,4 +51,23 @@ in en_US-large it_IT ]); + home.activation = { + cloneCcrEmacsFlake = lib.hm.dag.entryAfter [ "writeBoundary" ] '' + PATH=$PATH:${ + lib.makeBinPath ( + with pkgs; + [ + git + openssh + ] + ) + } + if [ ! -d "$HOME/.config/emacs" ]; then + mkdir "$HOME/.config/emacs" + $DRY_RUN_CMD ln -s "$HOME/projects/aciceri/nixfleet/hmModules/emacs/init.el" "$HOME/.config/emacs/init.el" + $DRY_RUN_CMD ln -s "$HOME/.config/emacs" "$HOME/emacs" + fi + $DRY_RUN_CMD ln -sfn ${treesitGrammars} "$HOME/.config/emacs/tree-sitter" + ''; + }; } diff --git a/hmModules/emacs/init.el b/hmModules/emacs/init.el new file mode 100644 index 0000000..e630922 --- /dev/null +++ b/hmModules/emacs/init.el @@ -0,0 +1,943 @@ +;; package --- My Emacs config -*- lexical-binding:t -*- +;; Author: Andrea Ciceri +;;; Commentary: +;; TODO +;; - org-roam +;; - org goodies +;; - persp-mode? +;; - understand how to configure cape +;;; Code: + + +(use-package flymake + :config + ;; TODO write "E", "W" or "N" in margins overriding the margin created by diff-hl + ;; (push `(before-string . ,(propertize " " 'display '((margin left-margin) "E"))) (get :error 'flymake-overlay-control)) + ;; (push `(before-string . ,(propertize " " 'display '((margin left-margin) "W"))) (get :warning 'flymake-overlay-control)) + ;; (push `(before-string . ,(propertize " " 'display '((margin left-margin) "N"))) (get :note 'flymake-overlay-control)) + ;; TODO set following only when on terminal (where wavy underlines are not shown) + ;; (set-face-attribute 'flymake-error nil :inverse-video t) + ;; (set-face-attribute 'flymake-warning nil :inverse-video t) + ;; (set-face-attribute 'flymake-note nil :inverse-video t) + :custom + (flymake-mode-line-lighter "Fly") + :hook prog-mode) + +(use-package eglot + :custom + ;; Tricks that should make Emacs faster + (eglot-events-buffer-size 0) ; disable events logging, it should be enabled only when debuggigng LSP servers + (eglot-sync-connect-nil 0) ; disable UI freeze when opening big files + (eglot-connect-timeout nil) ; never timeout + ) + +(use-package consult-eglot + :after (consult eglot embark) + :config + (require 'consult-eglot-embark) + (consult-eglot-embark-mode) + ) + +(use-package emacs + :bind (("" . scroll-down-line) + ("" . scroll-up-line) + (("C-x F" . recentf-open))) + :hook (server-after-make-frame . (lambda () (xterm-mouse-mode +1))) ;; FIXME why is this needed? + :custom + (use-dialog-box nil) + (use-short-answers t) + (native-comp-async-report-warnings-errors nil) + (inhibit-startup-message t) + (visible-bell t) + (scroll-conservatively 101) ;; more than 100 => redisplay doesn't recenter point) + (scroll-margin 3) + (temporary-file-directory "~/.emacs-saves/") + (backup-directory-alist `(("." . ,temporary-file-directory))) + (auto-save-files-name-transforms `((".*" ,temporary-file-directory t))) + (backup-by-copying t) + (focus-follows-mouse t) + (mouse-autoselect-window t) + (treesit-font-lock-level 4) + :config + (set-face-background 'vertical-border (face-background 'default)) + (set-display-table-slot standard-display-table 'vertical-border (make-glyph-code ?┃)) + (menu-bar-mode -1) + (scroll-bar-mode -1) + (xterm-mouse-mode +1) + (tool-bar-mode -1) + (global-hl-line-mode -1) + (global-auto-revert-mode t) + (show-paren-mode +1) + (column-number-mode +1) + (add-to-list 'default-frame-alist '(font . "Iosevka Comfy-13")) + (recentf-mode +1) + (fset #'jsonrpc--log-event #'ignore) ; this should be enabled only when needed, otherwise makes Emacs slower + (setq save-interprogram-paste-before-kill 't) ; system clipboard will be saved in the kill ring + (defun ccr/reload-emacs () + (interactive) + (load-file "~/.config/emacs/init.el")) + (load-theme 'catppuccin 't) + (defun ccr/nixos-rebuild () + (interactive) + (let* ((operation (completing-read "nixos-rebuild " '("switch" "boot" "test" "dry-activate"))) + (buffer-name (format "nixos-rebuild-%s" operation))) + (async-shell-command (format "sudo nixos-rebuild --flake fleet %s -L" operation) buffer-name))) + ) + +(use-package doc-view + :custom + (doc-view-scale-internally nil) + (doc-view-imenu-enabled 't) + (doc-view-continuous t)) + +(use-package tramp + :config + ;; TODO ugly `ccr' hardcoded, moreover this makes sense only when connecting to NixOS machines + (add-to-list 'tramp-remote-path "/home/ccr/.nix-profile/bin" 't) + (add-to-list 'tramp-remote-path "/etc/profiles/per-user/ccr/bin" 't) + (add-to-list 'tramp-remote-path "/run/current-system/sw/bin" 't) + (add-to-list 'tramp-remote-path 'tramp-own-remote-path) + :custom + (tramp-use-ssh-controlmaster-options nil) ;; makes tramp use ~/.ssh/config + ) + +(use-package ligature + :config + (ligature-set-ligatures 't '("www")) + (ligature-set-ligatures 'eww-mode '("ff" "fi" "ffi")) + (ligature-set-ligatures 'prog-mode '("|||>" "<|||" "<==>" "" "---" "-<<" + "<~~" "<~>" "<*>" "<||" "<|>" "<$>" "<==" "<=>" "<=<" "<->" + "<--" "<-<" "<<=" "<<-" "<<<" "<+>" "" "###" "#_(" "..<" + "..." "+++" "/==" "///" "_|_" "www" "&&" "^=" "~~" "~@" "~=" + "~>" "~-" "**" "*>" "*/" "||" "|}" "|]" "|=" "|>" "|-" "{|" + "[|" "]#" "::" ":=" ":>" ":<" "$>" "==" "=>" "!=" "!!" ">:" + ">=" ">>" ">-" "-~" "-|" "->" "--" "-<" "<~" "<*" "<|" "<:" + "<$" "<=" "<>" "<-" "<<" "<+" "" "++" "?:" + "?=" "?." "??" ";;" "/*" "/=" "/>" "//" "__" "~~" "(*" "*)" + "\\\\" "://")) + (global-ligature-mode t)) + +(use-package rainbow-delimiters + :hook (prog-mode . rainbow-delimiters-mode)) + +(use-package clipetty + :delight + :ensure t + :hook (after-init . global-clipetty-mode)) + +(use-package nerd-icons) + +(use-package nerd-icons-completion + :after marginalia + :config (nerd-icons-completion-mode +1) + :hook ( + (marginalia-mode . nerd-icons-completion-marginalia-setup) + (ibuffer-mode . nerd-icons-completion-marginalia-setup))) + +(use-package nerd-icons-ibuffer + :hook (ibuffer-mode . nerd-icons-ibuffer-mode)) + +(use-package treemacs-nerd-icons + :config + (treemacs-load-theme "nerd-icons")) + +(use-package nerd-icons-dired + :hook + (dired-mode . nerd-icons-dired-mode)) + +(use-package indent-bars + :config + (require 'indent-bars-ts) + :custom + (indent-bars-treesit-support t) + (indent-bars-spacing-override 2) + ;; (indent-bars-treesit-wrap '()) + (indent-bars-color-by-depth '(:regexp "outline-\\([0-9]+\\)" :blend 0.4)) + (indent-bars-no-stipple-char (string-to-char "┋")) + (indent-bars-prefer-character 't) ;; so it works also in terminal +) + +(use-package diredfl + :config (diredfl-global-mode)) + +(use-package treemacs + :after solaire-mode + :custom + (treemacs-show-cursor nil) + (treemacs-display-current-project-exclusively t) + (treemacs-project-followlinto-home nil) + (treemacs-display-current-project-exclusively t) + (treemacs-git-mode 'deferred) + :bind (("C-c w t" . treemacs-select-window) + ("C-c o T" . treemacs)) + ) + +(use-package meow + :hook (server-after-make-frame . (lambda () (meow--prepare-face))) + :custom + (meow-use-clipboard 't) + :config + (add-hook 'after-make-frame-functions (defun ccr/meow--prepare-face (_) + (meow--prepare-face) + (remove-hook 'after-make-frame-functions 'ccr/meow--prepare-face))) + (add-to-list 'meow-mode-state-list '(eshell-mode . insert)) + (add-to-list 'meow-mode-state-list '(eat-mode . insert)) + (add-to-list 'meow-mode-state-list '(notmuch-hello-mode . insert)) + (add-to-list 'meow-mode-state-list '(notmuch-search-mode . insert)) + :init + (meow-global-mode 1) + (meow-motion-overwrite-define-key + '("j" . meow-next) + '("k" . meow-prev) + '("" . ignore)) + (meow-leader-define-key + ;; SPC j/k will run the original command in MOTION state. + '("j" . "H-j") + '("k" . "H-k") + ;; Use SPC (0-9) for digit arguments. + '("1" . meow-digit-argument) + '("2" . meow-digit-argument) + '("3" . meow-digit-argument) + '("4" . meow-digit-argument) + '("5" . meow-digit-argument) + '("6" . meow-digit-argument) + '("7" . meow-digit-argument) + '("8" . meow-digit-argument) + '("9" . meow-digit-argument) + '("0" . meow-digit-argument) + '("/" . meow-keypad-describe-key) + '("?" . meow-cheatsheet)) + (meow-normal-define-key + '("0" . meow-expand-0) + '("9" . meow-expand-9) + '("8" . meow-expand-8) + '("7" . meow-expand-7) + '("6" . meow-expand-6) + '("5" . meow-expand-5) + '("4" . meow-expand-4) + '("3" . meow-expand-3) + '("2" . meow-expand-2) + '("1" . meow-expand-1) + '("-" . negative-argument) + '(";" . meow-reverse) + '("," . meow-inner-of-thing) + '("." . meow-bounds-of-thing) + '("[" . meow-beginning-of-thing) + '("]" . meow-end-of-thing) + '(">" . indent-rigidly-right) + '("<" . indent-rigidly-left) + '("a" . meow-append) + '("A" . meow-open-below) + '("b" . meow-back-word) + '("B" . meow-back-symbol) + '("c" . meow-change) + '("d" . meow-delete) + '("D" . meow-backward-delete) + '("e" . meow-next-word) + '("E" . meow-next-symbol) + '("f" . meow-find) + '("g" . meow-cancel-selection) + '("G" . meow-grab) + '("h" . meow-left) + '("H" . meow-left-expand) + '("i" . meow-insert) + '("I" . meow-open-above) + '("j" . meow-next) + '("J" . meow-next-expand) + '("k" . meow-prev) + '("K" . meow-prev-expand) + '("l" . meow-right) + '("L" . meow-right-expand) + '("m" . meow-join) + '("n" . meow-search) + '("o" . meow-block) + '("O" . meow-to-block) + '("p" . meow-yank) + '("q" . meow-quit) + '("Q" . meow-goto-line) + '("r" . meow-replace) + '("R" . meow-swap-grab) + '("s" . meow-kill) + '("t" . meow-till) + '("u" . meow-undo) + '("U" . meow-undo-in-selection) + '("/" . meow-visit) + '("v" . meow-visit) + '("w" . meow-mark-word) + '("W" . meow-mark-symbol) + '("x" . meow-line) + '("X" . meow-goto-line) + '("y" . meow-save) + '("Y" . meow-sync-grab) + '("z" . meow-pop-selection) + '("'" . repeat) + '("" . ignore))) + + +(use-package windmove + :config + (windmove-mode +1) + (defcustom ccr/v-resize-amount 4 + "How smany rows move when calling `ccr/v-resize`" + :type 'integer + :group 'ccr) + (defcustom ccr/h-resize-amount 4 + "How many columns move when calling `ccr/h-resize`" + :type 'integer + :group 'ccr + ) + (defun ccr/v-resize (key) + "Interactively vertically resize the window" + (interactive "cHit >/< to enlarge/shrink") + (cond ((eq key (string-to-char ">")) + (enlarge-window-horizontally ccr/v-resize-amount) + (call-interactively 'ccr/v-resize)) + ((eq key (string-to-char "<")) + (enlarge-window-horizontally (- ccr/v-resize-amount)) + (call-interactively 'ccr/v-resize)) + (t (push key unread-command-events)))) + (defun ccr/h-resize (key) + "Interactively horizontally resize the window" + (interactive "cHit >/< to enlarge/shrink") + (cond ((eq key (string-to-char ">")) + (enlarge-window ccr/h-resize-amount) + (call-interactively 'ccr/h-resize)) + ((eq key (string-to-char "<")) + (enlarge-window (- ccr/h-resize-amount)) + (call-interactively 'ccr/h-resize)) + (t (push key unread-command-events)))) + :bind (("C-c w k" . windmove-up) + ("C-c w l" . windmove-right) + ("C-c w j" . windmove-down) + ("C-c w h" . windmove-left) + ("M-k" . windmove-up) + ("M-l" . windmove-right) + ("M-j" . windmove-down) + ("M-h" . windmove-left) + ("C-c w " . windmove-up) + ("C-c w " . windmove-right) + ("C-c w " . windmove-down) + ("C-c w " . windmove-left) + ("C-c w q" . delete-window) + ("C-c w K" . windmove-delete-up) + ("C-c w L" . windmove-delete-right) + ("C-c w J" . windmove-delete-down) + ("C-c w H" . windmove-delete-left) + ("C-c w x" . kill-buffer-and-window) + ("C-c w v" . split-window-right) + ("C-c w s" . split-window-below) + ("C-c w V" . ccr/v-resize) + ("C-c w S" . ccr/h-resize))) + +(use-package vertico + :custom + (vertico-mouse-mode t) + ;; (vertico-reverse-mode t) ;; FIXME breaks vertico-posframe + (vertico-count 16) + (vertico-resize t) + (vertico-cycle t) + (vertico-mode t) + :bind (:map vertico-map + (("DEL" . vertico-directory-delete-char) + ("C-DEL" . vertico-directory-delete-word)))) + +;; (use-package vertico-posframe +;; :after vertico +;; :config +;; (vertico-posframe-mode +1) +;; :custom +;; (vertico-multiform-commands +;; '((t +;; posframe +;; (vertico-posframe-poshandler . posframe-poshandler-frame-center) +;; (vertico-posframe-fallback-mode . vertico-buffer-mode)))) +;; (vertico-posframe-min-height 1) +;; ;; (vertico-posframe-min-width 80) +;; (vertico-posframe-parameters '((alpha-background . 80))) +;; ) + +(use-package marginalia + :init + (marginalia-mode +1) + :custom + (marginalia-aligh 'right)) + +(use-package consult + :bind (([remap switch-to-buffer] . consult-buffer) + ([remap goto-line] . consult-goto-line) + ([remazp imenu] . consult-imenu) + ([remap project-switch-to-buffer] . consult-project-buffer) + ("C-c b b" . consult-project-buffer) + ("C-c b B" . consult-buffer) + ("C-c g l" . consult-goto-line) + ("C-c b i" . consult-imenu) + ("C-c f f" . consult-find) + ("C-c F" . consult-ripgrep) + ("C-c f" . consult-find) + ("C-c l" . consult-line) + ("C-c m" . wconsult-mark) + ("C-c o o" . consult-outline) + ("C-c e" . consult-flymake)) + :custom + (xref-show-xrefs-function #'consult-xref) + (xref-show-definitions-function #'consult-xref)) + +(use-package orderless + :custom + (completion-styles '(orderless))) + +(use-package embark + :bind (("C-'" . embark-act) + ("C-=" . embark-dwim))) + +(use-package corfu + :config + (corfu-terminal-mode) + (corfu-popupinfo-mode) + (add-to-list 'corfu-margin-formatters #'kind-icon-margin-formatter) + :custom + (completion-cycle-threshold nil) + (tab-always-indent 'complete) + (kind-icon-default-face 'corfu-default) + :bind (:map corfu-map + (("M-d" . corfu-doc-toggle) + ("M-l" . corfu-show-location) + ("SPC" . corfu-insert-separator))) + :init + (global-corfu-mode)) + +(use-package cape + :config + (add-to-list 'completion-at-point-functions #'cape-dabbrev) + (add-to-list 'completion-at-point-functions #'cape-file)) + +(use-package prog-mode + :hook ((prog-mode . hl-line-mode) + (prog-mode . display-line-numbers-mode))) + +(use-package which-key :delight :config + (which-key-mode) + (which-key-setup-side-window-right)) + +(use-package magit + :bind (("C-c o g" . magit))) + +(use-package magit-delta + :hook (magit-mode . magit-delta-mode)) + +;; FIXME +;; (use-package magit-todos +;; :after magit +;; :custom (magit-todos-keyword-suffix "\\(?:([^)]+)\\)?:?") +;; :config (magit-todos-mode 1)) + +(use-package difftastic + :demand t + :bind (:map magit-blame-read-only-mode-map + ("D" . difftastic-magit-show) + ("S" . difftastic-magit-show)) + :config + (eval-after-load 'magit-diff + '(transient-append-suffix 'magit-diff '(-1 -1) + [("D" "Difftastic diff (dwim)" difftastic-magit-diff) + ("S" "Difftastic show" difftastic-magit-show)]))) + +;; FIXME there is something deeply wrong about how nix is configured here +;; (use-package nix-mode +;; :delight nix-prettify-mode +;; :config +;; (global-nix-prettify-mode)) + +(use-package agenix + :after envrc + :hook (agenix-pre-mode . envrc-mode)) + +(use-package nix-ts-mode + :hook ( + (nix-ts-mode . (lambda () + (require 'eglot) + (add-to-list 'eglot-server-programs + '(nix-ts-mode . ("nixd"))) + (eglot-ensure))) + (nix-ts-mode . electric-pair-mode) + (nix-ts-mode . (lambda () (setq-local indent-bars-spacing-override 2) (indent-bars-mode))) + (nix-ts-mode . (lambda () + (setq-local + treesit-font-lock-settings + (append treesit-font-lock-settings + (treesit-font-lock-rules + :language 'nix + :feature 'function + :override t + `((formal) @font-lock-type-face) + + :language 'nix + :feature 'function + `((attrpath) @font-lock-function-name-face) + ))))) + ) + :mode "\\.nix\\'" + ) + +(use-package dockerfile-ts-mode + :mode "Dockerfile\\'") + +(use-package python-ts-mode + :hook ((python-ts-mode . (lambda () + (require 'eglot) + (add-to-list 'eglot-server-programs + '(python-ts-mode . ("jedi-language-server"))) + (eglot-ensure)))) + :mode "\\.py\\'") + +(use-package typescript-ts-mode + :hook ((typescript-ts-mode . (lambda () + (require 'eglot) + (eglot-ensure)))) + :mode "\\.ts\\'") + +(use-package haskell-ts-mode + :hook ((haskell--ts-mode . eglot-ensure)) + :mode "\\.hs\\'" + :config + (add-to-list 'eglot-server-programs + '(haskell-ts-mode . ("haskell-language-server-wrapper" "--lsp")))) + +(use-package purescript-mode + :custom ((project-vc-extra-root-markers '("spago.dhall"))) + :hook ((purescript-mode . eglot-ensure) + (purescript-mode . turn-on-purescript-indentation) + (purescript-mode . (lambda () (setq project-vc-extra-root-markers '("spago.dhall")))))) + +(use-package terraform-mode + :after eglot + :config + (add-to-list 'eglot-server-programs + '(terraform-mode . ("terraform-lsp"))) + :hook ((terraform-mode . eglot-ensure) + ;; (terraform-mode . tree-sitter-hl-mode) + (terraform-mode . (lambda () (setq indent-bars-spacing-override 2) (indent-bars-mode))) + )) + +(use-package yaml-mode + :hook (yaml-mode . tree-sitter-hl-mode)) + +(use-package sh-mode + :hook (sh-mode . tree-sitter-hl-mode)) + +;; FIXME +;; (use-package mmm-mode +;; :config +;; (mmm-add-group 'nix-sh +;; '((sh-command +;; :submode sh-mode +;; :face mmm-output-submode-face +;; :front "[^'a-zA-Z]''[^']" +;; :back "''[^$\\']" +;; :include-front t +;; :front-offset 4 +;; :end-not-begin t))) +;; (mmm-add-mode-ext-class 'nix-mode "\\.nix\\'" 'nix-sh)) + +(use-package paredit + :delight + :hook ((lisp-mode . enable-paredit-mode) + (emacs-lisp-mode . enable-paredit-mode))) + +(use-package eldoc + :delight) + +(use-package eldoc-box + :after eglot + :custom + (eldoc-box-only-multiline nil) + (eldoc-box-lighter "ElBox") + :bind (("C-c h" . eldoc-box-help-at-point))) + + (use-package diff-hl + :init + (global-diff-hl-mode 1) + (diff-hl-margin-mode 1)) + +(use-package envrc + :config + (envrc-global-mode +1)) + +(use-package hl-todo + :init + (global-hl-todo-mode)) + +(use-package eat + :init + ;; FIXME if we not load eat on startup then adding more non bound keys in :config + ;; will a cause "nesting exceeds `max-lisp-eval-depth'" on (eat-reload) + (eat) + :custom + (eat-kill-buffer-on-exit t) + :config + (add-to-list 'eat-semi-char-non-bound-keys '[?\e 104]) ; M-h + (add-to-list 'eat-semi-char-non-bound-keys '[?\e 106]) ; M-j + (add-to-list 'eat-semi-char-non-bound-keys '[?\e 107]) ; M-k + (add-to-list 'eat-semi-char-non-bound-keys '[?\e 108]) ; M-l + (eat-update-semi-char-mode-map) + (eat-reload) + :hook (eat-mode . (lambda () (setq-local scroll-margin 0))) + :bind (("C-c o t" . eat-project)) + ;; FIXME doesn't work well + ;; ((eat-mode . compilation-shell-minor-mode)) + ) + +(use-package eshell + :init (require 'eshell) ;; this slows down Emacs startup but it's needed when starting eshell with + ;; emacsclient --eval before opening another eshell buffer directly from inside Emacs + (eat-eshell-mode) + (eat-eshell-visual-command-mode) + :custom ((eshell-prefer-lisp-functions t) + (eshell-history-size 10000)) + :config + (defun ccr/start-eshell () ;; Used from outside Emacs by emacsclient --eval + (eshell 'N) + (add-hook 'kill-buffer-hook 'delete-frame nil 't)) ;; destroy frame on exit + + ;; Wrapping this in order to merge histories from different shells + ;; (advice-add 'eshell-write-history + ;; :around #'ccr/wrap-eshell-write-history) + + (add-to-list 'eshell-modules-list 'eshell-tramp) ;; to use sudo in eshell + ;; (add-to-list 'eshell-modules-list 'eshell-smart) ;; plan 9 style + + (setq ccr/eshell-aliases + '((g . magit) + (gl . magit-log) + (d . dired) + (o . find-file) + (oo . find-file-other-window) + (l . (lambda () (eshell/ls '-la))) + (eshell/clear . eshell/clear-scrollback))) + + (mapc (lambda (alias) + (defalias (car alias) (cdr alias))) + ccr/eshell-aliases) + + :hook (eshell-mode . (lambda () (setq-local scroll-margin 0))) + :bind (("C-c o e" . project-eshell) + :map eshell-mode-map + ("C-r" . eshell-atuin-history))) ;; i.e. just C-r in semi-char-mode + +(use-package eshell-command-not-found + :custom ((eshell-command-not-found-command "command-not-found")) + :hook ((eshell-mode . eshell-command-not-found-mode))) + +(use-package eshell-atuin + :hook ((eshell-mode . eshell-atuin-mode))) + +(use-package fish-completion-mode + :hook ((eshell-mode . fish-completion-mode))) + +(use-package eshell-syntax-highlighting + :custom + ((eshell-syntax-highlighting-highlight-in-remote-dirs nil)) + :config + (eshell-syntax-highlighting-global-mode +1)) + +(use-package eshell-prompt-extras + :custom ((eshell-highlight-prompt nil) + (eshell-prompt-function 'epe-theme-lambda))) + +(use-package popper + :custom + (popper-reference-buffers '("\*Messages\*" + "Output\*$" + "\\*Async Shell Command\\*" + (completion-list-mode . hide) + help-mode + compilation-mode + "^\\*Nix-REPL*\\*$" nix-repl-mode ;eshell as a popup + "^\\*.+-eshell.*\\*$" eshell-mode ;eshell as a popup + "^\\*shell.*\\*$" shell-mode ;shell as a popup + "^\\*term.*\\*$" term-mode ;term as a popup + "^\\*eat.*\\*$" eat-mode ;eat as a popup + )) + (popper-window-height 0.33) + (popper-echo-lines 1) + (popper-mode-line nil) + :init + (popper-mode 1) + (popper-echo-mode 1) + :bind (("C-c t t" . popper-toggle-latest) + ("C-c t c" . popper-cycle) + ("C-c t p" . popper-toggle-type))) + +(use-package org + :hook ((org-mode . variable-pitch-mode) + (org-mode . visual-line-mode) + (org-mode . visual-fill-column-mode)) + :custom ((org-log-done 'time) + (org-return-follows-link t) + (org-hide-emphasis-markers t) + (visual-fill-column-center-text t) + (visual-fill-column-width 100) + (fill-column 100) + (org-capture-templates '( + ("j" "Work Log Entry" + entry (file+datetree "~/org/work-log.org") + "* %?" + :empty-lines 0) + ("n" "Note" + entry (file+headline "~/org/notes.org" "Random Notes") + "** %?" + :empty-lines 0) + )) + (org-auto-align-tags nil) + (org-tags-column 0) + (org-catch-invisible-edits 'show-and-error) + (org-special-ctrl-a/e t) + (org-insert-heading-respect-content t) + (org-pretty-entities t) + (org-ellipsis "…") + ) + :bind (("C-c o l" . org-store-link) + ("C-c o a" . org-agenda) + ("C-c o c" . org-capture) + ("C-c b o" . org-switchb)) + :config + (defun ccr/org-capture (key) + "Capture a note using the template KEY and close the frame when done. +This is meant to be an helper to be called from the window manager." + (interactive) + (org-capture nil key) + (add-hook 'kill-buffer-hook 'delete-frame nil 't) ;; destroy frame on exit + (delete-other-windows)) + + (dolist (face '(org-block-begin-line + org-block-end-line + org-verbatim + org-code + )) + (set-face-attribute face nil :inherit 'fixed-pitch)) + + (org-babel-do-load-languages + 'org-babel-load-languages '((haskell . t)))) + +(use-package org-agenda + :custom + (org-agenda-files '("~/org")) + (org-agenda-tags-column 0) + (org-agenda-block-separator ?─) + (org-agenda-time-grid + '((daily today require-timed) + (800 1000 1200 1400 1600 1800 2000) + " ┄┄┄┄┄ " "┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄")) + (org-agenda-current-time-string + "◀── now ─────────────────────────────────────────────────") + :bind (("C-c o a" . org-agenda))) + +(use-package org-modern + :after org + :init + (global-org-modern-mode) + ;; FIXME the following doesn't work when using the daemon, it should be executed only + ;; one time after the first frame is created + :hook (server-after-make-frame . (lambda () + (set-face-font 'variable-pitch "Dejavu Serif-14") + (set-face-font 'fixed-pitch "Iosevka Comfy-14") + (set-face-font 'org-table "Iosevka Comfy-14") + (set-face-font 'org-meta-line "Iosevka Comfy-14") + (set-face-font 'org-drawer "Iosevka Comfy-14") + (set-face-font 'org-special-keyword "Iosevka Comfy-14") + (set-face-font 'org-property-value "Iosevka Comfy-14") + (set-face-font 'org-block "Iosevka Comfy-14") + (set-face-font 'org-modern-tag "Iosevka Comfy-14") + (set-face-font 'org-modern-date-active "Iosevka Comfy-14") + (set-face-font 'org-modern-date-inactive "Iosevka Comfy-14"))) +) + +(use-package org-roam + :custom + (org-roam-v2-ack t) + (org-roam-directory (file-truename "~/org")) + (org-roam-complete-everywhere 't) + (org-roam-dailies-capture-templates + '( + ("d" "Generic entry" entry + "* %?" + :target (file+head "%<%Y-%m-%d>.org" "#+title %<%Y-%m-%d>")) + ("b" "Billable entry" entry + "* TODO ${Entry} :billable:${Client}:\n:PROPERTIES:\n:SPENT: ${Spent}\n:END:\n%?" + :target (file+head "%<%Y-%m-%d>.org" "#+title %<%Y-%m-%d>") + :create-id t)) + ) + :config + (require 'org-roam-dailies) + (org-roam-db-autosync-mode) + + ;; In order to automatically add an org id for some capture templates (using the :create-id keyword) + (defun ccr/org-capture-maybe-create-id () + (when (org-capture-get :create-id) + (org-id-get-create))) + (add-hook 'org-capture-mode-hook #'ccr/org-capture-maybe-create-id) + + ;; The following functions name are relevant because org-roam-ql columns in queries use their suffix + (defun org-roam-node-spent (node) + "Return the hours spent as number" + (string-to-number (cdr (assoc "SPENT" (org-roam-node-properties node))))) + (defun org-roam-node-date (node) + "Return the org datestring when a node was created (obtained from the filename)" + (format "<%s>" (file-name-sans-extension (file-name-nondirectory (org-roam-node-file node))))) + + (defun ccr/org-roam-spent-hours (client) + "Return the total spent hours on something (usually a client)" + (apply #'+(mapcar #'org-roam-node-spent (org-roam-ql-nodes `(tags ,client "billable"))))) + ) + +(use-package org-roam-ql + :after org-roam + :bind ((:map org-roam-mode-map + ("v" . org-roam-ql-buffer-dispatch) + :map minibuffer-mode-map + ("C-c n i" . org-roam-ql-insert-node-title)))) + +(use-package consult-org-roam + :delight + :after org-roam + :init + (require 'consult-org-roam) + ;; Activate the minor mode + (consult-org-roam-mode 1) + :custom + (consutl-org-roam-grep-func #'consult-ripgrep) + (consult-org-roam-buffer-narrow-key ?r) + (consult-org-roam-buffer-after-buffers t) + (setq org-roam-database-connector 'sqlite-builtin) + :config + (consult-customize + consult-org-roam-forward-links + :preview-key (kbd "M-.")) + :bind + ("C-c n f" . consult-org-roam-file-find) + ("C-c n b" . consult-org-roam-backlinks) + ("C-c n l" . consult-org-roam-forward-links) + ("C-c n s" . consult-org-roam-search)) + +(use-package gptel + :custom + (gptel-api-key (lambda () (require 'f) (f-read-text (getenv "OPENAI_API_KEY_PATH")))) + (gptel-model "gpt-4o") + :config + (require 'gptel-curl) + + (add-hook 'gptel-post-response-functions 'gptel-end-of-response) + (add-hook 'gptel-post-stream-hook 'gptel-auto-scroll) + + (defun ccr/suggest-eshell-command () + (interactive) + (save-excursion + (eshell-bol) + (let ((start-pos (point)) + (end-pos (line-end-position))) + (gptel-request + (buffer-substring-no-properties start-pos end-pos) ;the prompt + :system "You are proficient with emacs shell (eshell), translate the following to something I could directly prompt to the shell. Your responses should only be code, without explanation or formatting." + :buffer (current-buffer) + :context (cons (set-marker (make-marker) start-pos) + (set-marker (make-marker) end-pos)) + :callback + (lambda (response info) + (if (not response) + (message "ChatGPT response failed with: %s" (plist-get info :status)) + (kill-region start-pos end-pos) + (insert response))))))) + + (add-to-list 'display-buffer-alist + '("^\\*ChatGPT\\*" + (display-buffer-full-frame) + (name . "floating"))) + + (defun ccr/start-chatgpt () ;; Used from outside Emacs by emacsclient --eval + (display-buffer (gptel "*ChatGPT*")) + (set-frame-name "floating") + ;; (delete-other-windows) + ;; (add-hook 'kill-buffer-hook 'delete-frame nil 't) + ) ;; destroy frame on exit + ) + +(use-package pass + :config + (require 'password-store-otp) ;; FIXME use `use-pacakge' idiomatic way + + :bind (("C-c p p" . password-store-copy) + ("C-c p o" . password-store-otp-token-copy) + ("C-c p e" . password-store-edit) + ("C-c p i" . password-store-insert))) + +(use-package with-editor + :init (shell-command-with-editor-mode +1)) + +(use-package go-translate + :custom + (gts-translate-list '(("it" "en") ("en" "it"))) + (gts-default-translator + (gts-translator + :picker (gts-prompt-picker) + :engines `(,(gts-bing-engine) + ,(gts-google-engine :parser (gts-google-summary-parser))) + :render (gts-buffer-render))) + (gts-buffer-follow-p 't) + :bind (("C-c T t" . gts-do-translate))) + +(use-package message + :custom + (message-send-mail-function 'smtpmail-send-it) + (send-mail-function 'smtpmail-send-it) + (user-mail-address "andrea.ciceri@autistici.org") + (smtpmail-smtp-server "mail.autistici.org") + (smtpmail-stream-type 'ssl) + (smtpmail-smtp-service 465) + ;; also the following line is needeed in ~/.authinfo.gpg + ;; machine mail.autistici.org login andrea.ciceri@autistici.org password + ) + +(use-package notmuch + :custom + (notmuch-show-logo nil) + (send-mail-function 'sendmail-send-it) + (notmuch-archive-tags '("-new")) + (notmuch-saved-searches + '((:name "Inbox" :query "tag:new" :key "i") + (:name "Sent" :query "tag:sent" :key "s") + (:name "Draft" :query "tag:draft" :key "s") + (:name "GitHub" :query "tag:github" :key "g") + (:name "Trash" :query "tag:trash" :key "t")))) + +(provide 'init) +;;; init.el ends here +(custom-set-variables + ;; custom-set-variables was added by Custom. + ;; If you edit it by hand, you could mess it up, so be careful. + ;; Your init file should contain only one such instance. + ;; If there is more than one, they won't work right. + '(custom-safe-themes + '("5bafdfa3e21f921abf9b9fd77e1e0ce032e62e3a6f8f13ec8ce7945727c654e9" + "5f92b9fc442528b6f106eaefa18bb5e7bfa0d737164e18f1214410fef2a6678d" + "b7f70bd00f79099f11d67a25c592d70593377488a263bb3dd73dee99b0549dba" + "7d10494665024176a90895ff7836a8e810d9549a9872c17db8871900add93d5c" + "b5c3c59e2fff6877030996eadaa085a5645cc7597f8876e982eadc923f597aca" default)) + '(magit-todos-insert-after '(bottom) nil nil "Changed by setter of obsolete option `magit-todos-insert-at'") + '(org-fold-catch-invisible-edits 'show-and-error nil nil "Customized with use-package org") + '(safe-local-variable-values + '((eval progn (require 'org-re-reveal) + (add-hook 'after-save-hook #'org-re-reveal-export-to-html nil t)) + (copilot-mode 0) (copilot-mode -1)))) + +(custom-set-faces + ;; custom-set-faces was added by Custom. + ;; If you edit it by hand, you could mess it up, so be careful. + ;; Your init file should contain only one such instance. + ;; If there is more than one, they won't work right. + ) +;; Local Variables: +;; byte-compile-warnings: (not free-vars noruntime unresolved) +;; End: From b5842746331fb528d3de870dced317014557ceeb Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Wed, 30 Oct 2024 14:52:08 +0100 Subject: [PATCH 105/492] Use EAT as main terminal emulator (again) --- hmModules/hyprland/hyprland.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hmModules/hyprland/hyprland.conf b/hmModules/hyprland/hyprland.conf index 543355b..473e740 100644 --- a/hmModules/hyprland/hyprland.conf +++ b/hmModules/hyprland/hyprland.conf @@ -31,7 +31,7 @@ windowrulev2 = float, title:^(floating)$ bind = $mod, b, exec, firefox bind = $mod, t, exec, footclient $SHELL -C "zellij" -bind = $mod, Return, exec, footclient +bind = $mod, RETURN, exec, emacsclient -c --eval "(ccr/start-eshell)" bind = $mod, m, exec, footclient $SHELL -C "aerc" bind = $mod, d, exec, fuzzel --background-color=253559cc --border-radius=5 --border-width=0 bind = $mod, s, exec, screenshot.sh From 9034479a244067f96e2cc34f0c2275fd0adc0e13 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Wed, 30 Oct 2024 15:06:03 +0100 Subject: [PATCH 106/492] Fix CI --- modules/forgejo-runners/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/forgejo-runners/default.nix b/modules/forgejo-runners/default.nix index 4cbb492..1d88c82 100644 --- a/modules/forgejo-runners/default.nix +++ b/modules/forgejo-runners/default.nix @@ -115,6 +115,7 @@ lib.mkMerge [ # extraGroups = [ "podman" ]; }; users.groups.nixuser = { }; + nix.settings.trusted-users = [ "nixuser" ]; } { # Format of the token file: From 22d72054137c6962ef7b73ee2c18f38ac388bb4b Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Mon, 4 Nov 2024 11:19:09 +0100 Subject: [PATCH 107/492] New `org-roam-ql` predicate --- hmModules/emacs/init.el | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/hmModules/emacs/init.el b/hmModules/emacs/init.el index e630922..435ad0a 100644 --- a/hmModules/emacs/init.el +++ b/hmModules/emacs/init.el @@ -787,11 +787,30 @@ This is meant to be an helper to be called from the window manager." (defun org-roam-node-date (node) "Return the org datestring when a node was created (obtained from the filename)" (format "<%s>" (file-name-sans-extension (file-name-nondirectory (org-roam-node-file node))))) + + (org-roam-ql-defpred + 'date-range + "Check if node was created in given time range" + #'org-roam-node-date + #'(lambda (node-date start-date end-date) + (let ((node-date (condition-case nil + ;; if the entry is not from the journal (i.e. the filename is not something like "2024-10-10.org") + ;; then it's always discarded (the epoch time is given to it) + (encode-time (org-parse-time-string node-date)) + (error (encode-time (org-parse-time-string "<1970-01-01>"))))) + (start-date (encode-time (org-parse-time-string start-date))) + (end-date (encode-time (org-parse-time-string end-date)))) + (and (time-less-p start-date node-date) + (time-less-p node-date end-date))) + )) - (defun ccr/org-roam-spent-hours (client) + (defun ccr/org-roam-spent-hours (client &optional date-start date-end) "Return the total spent hours on something (usually a client)" - (apply #'+(mapcar #'org-roam-node-spent (org-roam-ql-nodes `(tags ,client "billable"))))) - ) + (let* ((query-tags `(tags ,client "billable")) + (query (if (and date-start date-end) + `(and ,query-tags (date-range ,date-start ,date-end)) + query-tags))) + (apply #'+(mapcar #'org-roam-node-spent (org-roam-ql-nodes query)))))) (use-package org-roam-ql :after org-roam From 45aa2c98fd3ff1050c89a7a60477626f56a04bf4 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Mon, 4 Nov 2024 11:19:54 +0100 Subject: [PATCH 108/492] Remove aerc stuff --- hmModules/email/default.nix | 306 ++++++++++++++++++------------------ 1 file changed, 153 insertions(+), 153 deletions(-) diff --git a/hmModules/email/default.nix b/hmModules/email/default.nix index 5ae160a..ab37b05 100644 --- a/hmModules/email/default.nix +++ b/hmModules/email/default.nix @@ -22,183 +22,183 @@ ); }; - home.file.".config/aerc/stylesets" = - let - catppuccin-aerc = pkgs.fetchFromGitHub { - owner = "catppuccin"; - repo = "aerc"; - rev = "ca404a9f2d125ef12db40db663d43c9d94116a05"; - hash = "sha256-OWIkHsKFts/zkrDUtbBPXHVSrHL/F0v3LB1rnlFAKmE="; - }; - in - { - source = "${catppuccin-aerc}/dist"; - recursive = true; - }; + # home.file.".config/aerc/stylesets" = + # let + # catppuccin-aerc = pkgs.fetchFromGitHub { + # owner = "catppuccin"; + # repo = "aerc"; + # rev = "ca404a9f2d125ef12db40db663d43c9d94116a05"; + # hash = "sha256-OWIkHsKFts/zkrDUtbBPXHVSrHL/F0v3LB1rnlFAKmE="; + # }; + # in + # { + # source = "${catppuccin-aerc}/dist"; + # recursive = true; + # }; - programs.aerc = { - enable = true; - extraBinds = { - global = { - "" = ":prev-tab"; - "" = ":next-tab"; - "?" = ":help keys"; - }; + # programs.aerc = { + # enable = true; + # extraBinds = { + # global = { + # "" = ":prev-tab"; + # "" = ":next-tab"; + # "?" = ":help keys"; + # }; - messages = { - "h" = ":prev-tab"; - "l" = ":next-tab"; + # messages = { + # "h" = ":prev-tab"; + # "l" = ":next-tab"; - "j" = ":next"; - "" = ":next"; - "" = ":next 50%"; - "" = ":next 100%"; - "" = ":next 100%"; + # "j" = ":next"; + # "" = ":next"; + # "" = ":next 50%"; + # "" = ":next 100%"; + # "" = ":next 100%"; - "k" = ":prev"; - "" = ":prev"; - "" = ":prev 50%"; - "" = ":prev 100%"; - "" = ":prev 100%"; - "g" = ":select 0"; - "G" = ":select -1"; + # "k" = ":prev"; + # "" = ":prev"; + # "" = ":prev 50%"; + # "" = ":prev 100%"; + # "" = ":prev 100%"; + # "g" = ":select 0"; + # "G" = ":select -1"; - "J" = ":next-folder"; - "K" = ":prev-folder"; - "H" = ":collapse-folder"; - "L" = ":expand-folder"; + # "J" = ":next-folder"; + # "K" = ":prev-folder"; + # "H" = ":collapse-folder"; + # "L" = ":expand-folder"; - "v" = ":mark -t"; - "x" = ":mark -t:next"; - "V" = ":mark -v"; + # "v" = ":mark -t"; + # "x" = ":mark -t:next"; + # "V" = ":mark -v"; - "T" = ":toggle-threads"; + # "T" = ":toggle-threads"; - "" = ":view"; - "d" = ":prompt 'Really delete this message?' 'delete-message'"; - "D" = ":delete"; - "A" = ":archive flat"; + # "" = ":view"; + # "d" = ":prompt 'Really delete this message?' 'delete-message'"; + # "D" = ":delete"; + # "A" = ":archive flat"; - "C" = ":compose"; + # "C" = ":compose"; - "rr" = ":reply -a"; - "rq" = ":reply -aq"; - "Rr" = ":reply"; - "Rq" = ":reply -q"; + # "rr" = ":reply -a"; + # "rq" = ":reply -aq"; + # "Rr" = ":reply"; + # "Rq" = ":reply -q"; - "c" = ":cf"; - "$" = ":term"; - "!" = ":term"; - "|" = ":pipe"; + # "c" = ":cf"; + # "$" = ":term"; + # "!" = ":term"; + # "|" = ":pipe"; - "/" = ":search"; - "\\" = ":filter"; - "n" = ":next-result"; - "N" = ":prev-result"; - "" = ":clear"; - }; + # "/" = ":search"; + # "\\" = ":filter"; + # "n" = ":next-result"; + # "N" = ":prev-result"; + # "" = ":clear"; + # }; - "messages:folder=Drafts" = { - "" = ":recall"; - }; + # "messages:folder=Drafts" = { + # "" = ":recall"; + # }; - view = { - "/" = ":toggle-key-passthrough/"; - "q" = ":close"; - "O" = ":open"; - "S" = ":save"; - "|" = ":pipe"; - "D" = ":delete"; - "A" = ":archive flat"; + # view = { + # "/" = ":toggle-key-passthrough/"; + # "q" = ":close"; + # "O" = ":open"; + # "S" = ":save"; + # "|" = ":pipe"; + # "D" = ":delete"; + # "A" = ":archive flat"; - "" = ":open-link "; + # "" = ":open-link "; - "f" = ":forward"; - "rr" = ":reply -a"; - "rq" = ":reply -aq"; - "Rr" = ":reply"; - "Rq" = ":reply -q"; + # "f" = ":forward"; + # "rr" = ":reply -a"; + # "rq" = ":reply -aq"; + # "Rr" = ":reply"; + # "Rq" = ":reply -q"; - "H" = ":toggle-headers"; - "" = ":prev-part"; - "" = ":next-part"; - "J" = ":next"; - "K" = ":prev"; - }; + # "H" = ":toggle-headers"; + # "" = ":prev-part"; + # "" = ":next-part"; + # "J" = ":next"; + # "K" = ":prev"; + # }; - "view::passthrough" = { - "$noinherit" = true; - "$ex" = ""; - "" = ":toggle-key-passthrough"; - }; + # "view::passthrough" = { + # "$noinherit" = true; + # "$ex" = ""; + # "" = ":toggle-key-passthrough"; + # }; - compose = { - "$noinherit" = "true"; - "$ex" = ""; - "" = ":prev-field"; - "" = ":next-field"; - "" = ":switch-account -p"; - "" = ":switch-account -n"; - "" = ":next-field"; - "" = ":prev-tab"; - "" = ":next-tab"; - }; + # compose = { + # "$noinherit" = "true"; + # "$ex" = ""; + # "" = ":prev-field"; + # "" = ":next-field"; + # "" = ":switch-account -p"; + # "" = ":switch-account -n"; + # "" = ":next-field"; + # "" = ":prev-tab"; + # "" = ":next-tab"; + # }; - "compose::editor" = { - "$noinherit" = "true"; - "$ex" = ""; - "" = ":prev-field"; - "" = ":next-field"; - "" = ":prev-tab"; - "" = ":next-tab"; - }; + # "compose::editor" = { + # "$noinherit" = "true"; + # "$ex" = ""; + # "" = ":prev-field"; + # "" = ":next-field"; + # "" = ":prev-tab"; + # "" = ":next-tab"; + # }; - "compose::review" = { - "y" = ":send"; - "n" = ":abort"; - "p" = ":postpone"; - "q" = ":choose -o d discard abort -o p postpone postpone"; - "e" = ":edit"; - "a" = ":attach"; - "d" = ":detach"; - }; + # "compose::review" = { + # "y" = ":send"; + # "n" = ":abort"; + # "p" = ":postpone"; + # "q" = ":choose -o d discard abort -o p postpone postpone"; + # "e" = ":edit"; + # "a" = ":attach"; + # "d" = ":detach"; + # }; - terminal = { - "$noinherit" = "true"; - "$ex" = ""; + # terminal = { + # "$noinherit" = "true"; + # "$ex" = ""; - "" = ":prev-tab"; - "" = ":next-tab"; - }; - }; - extraConfig = { - general.unsafe-accounts-conf = true; - ui = { - styleset-name = "catppuccin-mocha"; - this-day-time-format = ''" 15:04"''; - this-year-time-format = "Mon Jan 02 15:04"; - timestamp-format = "2006-01-02 15:04"; + # "" = ":prev-tab"; + # "" = ":next-tab"; + # }; + # }; + # extraConfig = { + # general.unsafe-accounts-conf = true; + # ui = { + # styleset-name = "catppuccin-mocha"; + # this-day-time-format = ''" 15:04"''; + # this-year-time-format = "Mon Jan 02 15:04"; + # timestamp-format = "2006-01-02 15:04"; - spinner = "[ ⡿ ],[ ⣟ ],[ ⣯ ],[ ⣷ ],[ ⣾ ],[ ⣽ ],[ ⣻ ],[ ⢿ ]"; - border-char-vertical = "┃"; - border-char-horizontal = "━"; - }; - viewer = { - always-show-mime = true; - }; - compose = { - no-attachment-warning = "^[^>]*attach(ed|ment)"; - }; - filters = { - "text/plain" = "colorize"; - "text/html" = "html"; - "text/calendar" = "calendar"; - "message/delivery-status" = "colorize"; - "message/rfc822" = "colorize"; - "image/*" = "${pkgs.catimg}/bin/catimg -"; - }; - }; - }; + # spinner = "[ ⡿ ],[ ⣟ ],[ ⣯ ],[ ⣷ ],[ ⣾ ],[ ⣽ ],[ ⣻ ],[ ⢿ ]"; + # border-char-vertical = "┃"; + # border-char-horizontal = "━"; + # }; + # viewer = { + # always-show-mime = true; + # }; + # compose = { + # no-attachment-warning = "^[^>]*attach(ed|ment)"; + # }; + # filters = { + # "text/plain" = "colorize"; + # "text/html" = "html"; + # "text/calendar" = "calendar"; + # "message/delivery-status" = "colorize"; + # "message/rfc822" = "colorize"; + # "image/*" = "${pkgs.catimg}/bin/catimg -"; + # }; + # }; + # }; programs.notmuch = { enable = true; From f92a7d0bc9f18f34ad67d5c4835819e62fc81171 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Mon, 4 Nov 2024 11:20:03 +0100 Subject: [PATCH 109/492] Use `xterm-direct` in foot (emacs in shell works well now) --- hmModules/foot/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hmModules/foot/default.nix b/hmModules/foot/default.nix index e8ac8d3..840b866 100644 --- a/hmModules/foot/default.nix +++ b/hmModules/foot/default.nix @@ -10,7 +10,7 @@ lib.mkMerge [ server.enable = true; settings = { main = { - term = "xterm-256color"; + term = "xterm-direct"; login-shell = "yes"; dpi-aware = "no"; horizontal-letter-offset = "1"; From b97907ebcd0e08780117d72a5d8d8f0244d4e271 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Mon, 4 Nov 2024 11:20:28 +0100 Subject: [PATCH 110/492] Fix atuin when the system doesn't power off properly --- hmModules/shell/default.nix | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/hmModules/shell/default.nix b/hmModules/shell/default.nix index 22ced2b..048a65f 100644 --- a/hmModules/shell/default.nix +++ b/hmModules/shell/default.nix @@ -3,6 +3,7 @@ pkgs, age, hostname, + config, ... }: { @@ -47,13 +48,19 @@ Install = { WantedBy = [ "default.target" ]; }; - Service.ExecStart = "${lib.getExe pkgs.atuin} daemon"; + Service = { + # ExecStartPre = "${lib.getExe' pkgs.toybox "rm"} -f ${config.programs.atuin.settings.daemon.socket_path}"; + ExecStart = "${lib.getExe pkgs.atuin} daemon"; + }; }; programs.atuin = { enable = true; settings = { - daemon.enabled = true; + daemon = { + enabled = true; + socket_path = "/home/ccr/.local/share/atuin/atuin.sock"; # FIXME using ~ or $HOME doesn't work: https://github.com/atuinsh/atuin/issues/2289 + }; auto_sync = true; sync_frequency = "5m"; sync_address = "http://sisko.fleet:8889"; From 04d19cb17d71ddeb567bb36c8d8b2dd0d3e8cd69 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Mon, 4 Nov 2024 11:21:24 +0100 Subject: [PATCH 111/492] Disabling `garmin-collector` --- hosts/default.nix | 1 - hosts/sisko/default.nix | 1 - 2 files changed, 2 deletions(-) diff --git a/hosts/default.nix b/hosts/default.nix index 0498e19..5636017 100644 --- a/hosts/default.nix +++ b/hosts/default.nix @@ -115,7 +115,6 @@ owner = "grafana"; group = "forgejo"; }; - "garmin-collector-environment".owner = "garmin-collector"; }; }; }; diff --git a/hosts/sisko/default.nix b/hosts/sisko/default.nix index 6295c63..7fc9233 100644 --- a/hosts/sisko/default.nix +++ b/hosts/sisko/default.nix @@ -25,7 +25,6 @@ "prometheus-exporters" "loki" "promtail" - "garmin-collector" "restic" "atuin" "immich" From c4a7c09930c31c5ad8e4b3d460e18215b6cd4037 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Mon, 4 Nov 2024 11:21:39 +0100 Subject: [PATCH 112/492] New syncthing id for sisko --- modules/syncthing/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/syncthing/default.nix b/modules/syncthing/default.nix index eb25947..b1b9857 100644 --- a/modules/syncthing/default.nix +++ b/modules/syncthing/default.nix @@ -20,7 +20,7 @@ ]; }; sisko = { - id = "5JYQLMP-KNBMSOE-I452UDU-UTKPXJI-K27X2DI-MSCSRCG-6V54Q6U-NVGXPQA"; + id = "TOC7QXZ-JLB4LYP-VNIJAV5-DCKVGFN-UE45SPX-PPFJHSG-O3UHFCK-2PEMAQ6"; addresses = [ "tcp://sisko.fleet" ]; From aa3ccc9a9d4bec632619db75f50ed9bd32201c40 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Mon, 4 Nov 2024 11:22:25 +0100 Subject: [PATCH 113/492] Fix serial for `sisko` --- hosts/sisko/default.nix | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/hosts/sisko/default.nix b/hosts/sisko/default.nix index 7fc9233..ba45c12 100644 --- a/hosts/sisko/default.nix +++ b/hosts/sisko/default.nix @@ -62,10 +62,18 @@ ]; boot.kernelParams = [ + "earlycon" + "consoleblank=0" "console=tty1" - "console=ttyS0,1500000" + "console=ttyS2,1500000" ]; + systemd.services."serial-getty@ttyS2" = { + enable = true; + wantedBy = [ "getty.target" ]; + serviceConfig.restart = "always"; + }; + environment.persistence."/persist" = { hideMounts = true; directories = [ From 5fe4764f01822479214a7aca9a3c49402b6013bc Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Mon, 4 Nov 2024 11:22:37 +0100 Subject: [PATCH 114/492] Stop and restart services during restic backups --- modules/restic/default.nix | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/modules/restic/default.nix b/modules/restic/default.nix index c3ba948..7aedfcd 100644 --- a/modules/restic/default.nix +++ b/modules/restic/default.nix @@ -55,5 +55,19 @@ in ]; timerConfig.OnCalendar = "daily"; timerConfig.RandomizedDelaySec = "1h"; + backupPrepareCommand = '' + ${pkgs.systemd}/bin/systemctl stop podman-* + ${pkgs.systemd}/bin/systemctl stop syncthing + ${pkgs.systemd}/bin/systemctl stop paperless-* + ${pkgs.systemd}/bin/systemctl stop forgejo + ${pkgs.systemd}/bin/systemctl stop home-assistant + ''; + backupCleanupCommand = '' + ${pkgs.systemd}/bin/systemctl start --no-block --all "podman-*" + ${pkgs.systemd}/bin/systemctl start syncthing + ${pkgs.systemd}/bin/systemctl start --no-block --all "paperless-*" + ${pkgs.systemd}/bin/systemctl start forgejo + ${pkgs.systemd}/bin/systemctl start home-assistant + ''; }; } From d5cf98310f2fea93a541a00315c8fb5a54be8077 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Mon, 4 Nov 2024 21:07:01 +0100 Subject: [PATCH 115/492] Add `ement.el` (matrix client) --- packages/emacs/packages.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/emacs/packages.nix b/packages/emacs/packages.nix index 7baa25f..9ed79db 100644 --- a/packages/emacs/packages.nix +++ b/packages/emacs/packages.nix @@ -89,6 +89,7 @@ let kind-icon ef-themes indent-bars + ement ]) ++ (with nongnuPackages; [ eat From e23c78fdb5778b6454b9773a44de1abc06a24f95 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Mon, 4 Nov 2024 21:07:23 +0100 Subject: [PATCH 116/492] Disable `logseq` --- hosts/kirk/default.nix | 1 - hosts/picard/default.nix | 1 - 2 files changed, 2 deletions(-) diff --git a/hosts/kirk/default.nix b/hosts/kirk/default.nix index 272dd30..e2321fa 100644 --- a/hosts/kirk/default.nix +++ b/hosts/kirk/default.nix @@ -73,7 +73,6 @@ "imv" "catppuccin" "libreoffice" - "logseq" "emacs" ]; extraGroups = [ ]; diff --git a/hosts/picard/default.nix b/hosts/picard/default.nix index c5773d4..0fa47b5 100644 --- a/hosts/picard/default.nix +++ b/hosts/picard/default.nix @@ -90,7 +90,6 @@ "zathura" "imv" "libreoffice" - "logseq" "emacs" "vial" ]; From bd8e6a0715fe66fd87efb54d226b0e80de673522 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Mon, 4 Nov 2024 21:07:33 +0100 Subject: [PATCH 117/492] Fix ddcci workaround on `picard` --- hosts/picard/default.nix | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/hosts/picard/default.nix b/hosts/picard/default.nix index 0fa47b5..60677ff 100644 --- a/hosts/picard/default.nix +++ b/hosts/picard/default.nix @@ -35,7 +35,7 @@ "hass-poweroff" "forgejo-runners" "teamviewer" - "macos-ventura" + # "macos-ventura" "sunshine" "mount-sisko" "adb" @@ -127,10 +127,15 @@ ]; systemd.services.ddcci = { - serviceConfig.Type = "oneshot"; script = '' echo 'ddcci 0x37' > /sys/bus/i2c/devices/i2c-2/new_device ''; + wantedBy = [ "graphical.target" ]; + restartIfChanged = false; + serviceConfig = { + Type = "oneshot"; + RemainAfterExit = true; + }; }; boot.loader.efi.canTouchEfiVariables = true; From 115aa92dddb7d6236466106d6edbd5db76d102c3 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Mon, 4 Nov 2024 21:10:56 +0100 Subject: [PATCH 118/492] Workaround for when atuind is not well stopped --- hmModules/shell/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hmModules/shell/default.nix b/hmModules/shell/default.nix index 048a65f..c5d9af0 100644 --- a/hmModules/shell/default.nix +++ b/hmModules/shell/default.nix @@ -49,7 +49,7 @@ WantedBy = [ "default.target" ]; }; Service = { - # ExecStartPre = "${lib.getExe' pkgs.toybox "rm"} -f ${config.programs.atuin.settings.daemon.socket_path}"; + ExecStartPre = "${lib.getExe' pkgs.toybox "rm"} -f ${config.programs.atuin.settings.daemon.socket_path}"; ExecStart = "${lib.getExe pkgs.atuin} daemon"; }; }; From f30f235f195559ec1a44de7dc61ebfff53ad907f Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Mon, 4 Nov 2024 21:11:57 +0100 Subject: [PATCH 119/492] Disable VI mode for Fish --- hmModules/shell/default.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/hmModules/shell/default.nix b/hmModules/shell/default.nix index c5d9af0..fb10d92 100644 --- a/hmModules/shell/default.nix +++ b/hmModules/shell/default.nix @@ -83,7 +83,8 @@ ]; shellInit = '' - fish_vi_key_bindings + # fish_vi_key_bindings + fish_default_key_bindings '' + lib.optionalString (builtins.hasAttr "cachix-personal-token" age.secrets) '' export CACHIX_AUTH_TOKEN=$(cat ${age.secrets.cachix-personal-token.path}) From 9dea0100c937ef5c540652ad314dc929f733e153 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Mon, 4 Nov 2024 21:13:30 +0100 Subject: [PATCH 120/492] Disable zellij and Emacs Notmuch instead of aerc --- hmModules/hyprland/hyprland.conf | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/hmModules/hyprland/hyprland.conf b/hmModules/hyprland/hyprland.conf index 473e740..068a65f 100644 --- a/hmModules/hyprland/hyprland.conf +++ b/hmModules/hyprland/hyprland.conf @@ -30,9 +30,10 @@ windowrulev2 = workspace 9, class:^(Spotify)$ windowrulev2 = float, title:^(floating)$ bind = $mod, b, exec, firefox -bind = $mod, t, exec, footclient $SHELL -C "zellij" +# bind = $mod, t, exec, footclient $SHELL -C "zellij" +bind = $mod, t, exec, footclient $SHELL bind = $mod, RETURN, exec, emacsclient -c --eval "(ccr/start-eshell)" -bind = $mod, m, exec, footclient $SHELL -C "aerc" +bind = $mod, m, exec, emacsclient -c --eval '(notmuch-search "tag:new")' bind = $mod, d, exec, fuzzel --background-color=253559cc --border-radius=5 --border-width=0 bind = $mod, s, exec, screenshot.sh bind = $mod, n, exec, logseq From 939f79f04d4fc9cad5eaa764d01f70f1dd274f45 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Mon, 4 Nov 2024 21:13:58 +0100 Subject: [PATCH 121/492] Force search.json recreation --- hmModules/firefox/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/hmModules/firefox/default.nix b/hmModules/firefox/default.nix index 43d60a3..bb04ac5 100644 --- a/hmModules/firefox/default.nix +++ b/hmModules/firefox/default.nix @@ -62,6 +62,7 @@ in ]; }; profiles.default = { + search.force = true; search.default = "DuckDuckGo"; search.engines = { "Searx" = { From dd626c2fc05b4d108cee10edbdd84b32614ef407 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Mon, 4 Nov 2024 21:19:55 +0100 Subject: [PATCH 122/492] Formatting --- hmModules/emacs/default.nix | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/hmModules/emacs/default.nix b/hmModules/emacs/default.nix index e8bdebf..54ff7dc 100644 --- a/hmModules/emacs/default.nix +++ b/hmModules/emacs/default.nix @@ -51,23 +51,23 @@ in en_US-large it_IT ]); - home.activation = { - cloneCcrEmacsFlake = lib.hm.dag.entryAfter [ "writeBoundary" ] '' - PATH=$PATH:${ - lib.makeBinPath ( - with pkgs; - [ - git - openssh - ] - ) - } - if [ ! -d "$HOME/.config/emacs" ]; then - mkdir "$HOME/.config/emacs" - $DRY_RUN_CMD ln -s "$HOME/projects/aciceri/nixfleet/hmModules/emacs/init.el" "$HOME/.config/emacs/init.el" - $DRY_RUN_CMD ln -s "$HOME/.config/emacs" "$HOME/emacs" - fi - $DRY_RUN_CMD ln -sfn ${treesitGrammars} "$HOME/.config/emacs/tree-sitter" + home.activation.cloneCcrEmacsFlake = + let + path = lib.makeBinPath ( + with pkgs; + [ + git + openssh + ] + ); + in + lib.hm.dag.entryAfter [ "writeBoundary" ] '' + PATH=$PATH:${path} + if [ ! -d "$HOME/.config/emacs" ]; then + mkdir "$HOME/.config/emacs" + $DRY_RUN_CMD ln -s "$HOME/projects/aciceri/nixfleet/hmModules/emacs/init.el" "$HOME/.config/emacs/init.el" + $DRY_RUN_CMD ln -s "$HOME/.config/emacs" "$HOME/emacs" + fi + $DRY_RUN_CMD ln -sfn ${treesitGrammars} "$HOME/.config/emacs/tree-sitter" ''; - }; } From 4061273babcce783157ae512a3d3d00b90a93efc Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Tue, 5 Nov 2024 22:18:36 +0100 Subject: [PATCH 123/492] Add `org-roam-ui` --- hmModules/emacs/init.el | 10 ++++++++++ packages/emacs/packages.nix | 1 + 2 files changed, 11 insertions(+) diff --git a/hmModules/emacs/init.el b/hmModules/emacs/init.el index 435ad0a..1dee394 100644 --- a/hmModules/emacs/init.el +++ b/hmModules/emacs/init.el @@ -841,6 +841,16 @@ This is meant to be an helper to be called from the window manager." ("C-c n l" . consult-org-roam-forward-links) ("C-c n s" . consult-org-roam-search)) +(use-package org-roam-ui + :straight + :after org-roam + :hook (after-init . org-roam-ui-mode) ;; don't care about startup time since I'm using Emacs daemonized + :config + (setq org-roam-ui-sync-theme t + org-roam-ui-follow t + org-roam-ui-update-on-save t + org-roam-ui-open-on-start t)) + (use-package gptel :custom (gptel-api-key (lambda () (require 'f) (f-read-text (getenv "OPENAI_API_KEY_PATH")))) diff --git a/packages/emacs/packages.nix b/packages/emacs/packages.nix index 9ed79db..ea483fd 100644 --- a/packages/emacs/packages.nix +++ b/packages/emacs/packages.nix @@ -68,6 +68,7 @@ let org-modern org-roam org-roam-ql + org-roam-ui visual-fill-column consult-org-roam pass From b740fa3e93cb0348bd0b16e0a0a064c711c7f37c Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Tue, 5 Nov 2024 22:18:43 +0100 Subject: [PATCH 124/492] Enable `macos-ventura` --- hosts/picard/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hosts/picard/default.nix b/hosts/picard/default.nix index 60677ff..0501993 100644 --- a/hosts/picard/default.nix +++ b/hosts/picard/default.nix @@ -35,7 +35,7 @@ "hass-poweroff" "forgejo-runners" "teamviewer" - # "macos-ventura" + "macos-ventura" "sunshine" "mount-sisko" "adb" From e58e5439d8dd4387f1c21a770b4218231877a8ca Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Tue, 5 Nov 2024 22:18:49 +0100 Subject: [PATCH 125/492] GPTel hyprland keybinding --- hmModules/hyprland/hyprland.conf | 1 + 1 file changed, 1 insertion(+) diff --git a/hmModules/hyprland/hyprland.conf b/hmModules/hyprland/hyprland.conf index 068a65f..79ef97a 100644 --- a/hmModules/hyprland/hyprland.conf +++ b/hmModules/hyprland/hyprland.conf @@ -34,6 +34,7 @@ bind = $mod, b, exec, firefox bind = $mod, t, exec, footclient $SHELL bind = $mod, RETURN, exec, emacsclient -c --eval "(ccr/start-eshell)" bind = $mod, m, exec, emacsclient -c --eval '(notmuch-search "tag:new")' +bind = $mod, g, exec, emacsclient -c --eval '(switch-to-buffer (gptel "*ChatGPT*"))' bind = $mod, d, exec, fuzzel --background-color=253559cc --border-radius=5 --border-width=0 bind = $mod, s, exec, screenshot.sh bind = $mod, n, exec, logseq From 8af20e204ac8c4a73fe6a5916b50a3c4c2c5854c Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 8 Nov 2024 10:15:31 +0100 Subject: [PATCH 126/492] Bump inputs and fix nix-eval-jobs --- flake.lock | 356 ++++++++++++++++++++++++---------------- flake.nix | 23 +-- modules/nix/default.nix | 92 +++++------ 3 files changed, 265 insertions(+), 206 deletions(-) diff --git a/flake.lock b/flake.lock index 8a2a579..a5198a6 100644 --- a/flake.lock +++ b/flake.lock @@ -23,11 +23,11 @@ }, "catppuccin": { "locked": { - "lastModified": 1726952185, - "narHash": "sha256-l/HbsQjJMT6tlf8KCooFYi3J6wjIips3n6/aWAoLY4g=", + "lastModified": 1730458408, + "narHash": "sha256-JQ+SphQn13bdibKUrBBBznYehXX4xJrxD1ifBp6vSWw=", "owner": "catppuccin", "repo": "nix", - "rev": "630b559cc1cb4c0bdd525af506935323e4ccd5d1", + "rev": "191fbf2d81a63fad8f62f1233c0051f09b75d0ad", "type": "github" }, "original": { @@ -37,18 +37,12 @@ } }, "crane": { - "inputs": { - "nixpkgs": [ - "lanzaboote", - "nixpkgs" - ] - }, "locked": { - "lastModified": 1721842668, - "narHash": "sha256-k3oiD2z2AAwBFLa4+xfU+7G5fisRXfkvrMTCJrjZzXo=", + "lastModified": 1730652660, + "narHash": "sha256-+XVYfmVXAiYA0FZT7ijHf555dxCe+AoAT5A6RU+6vSo=", "owner": "ipetkov", "repo": "crane", - "rev": "529c1a0b1f29f0d78fa3086b8f6a134c71ef3aaf", + "rev": "a4ca93905455c07cb7e3aca95d4faf7601cba458", "type": "github" }, "original": { @@ -86,11 +80,11 @@ ] }, "locked": { - "lastModified": 1727156717, - "narHash": "sha256-Ef7UgoTdOB4PGQKSkHGu6SOxnTiArPHGcRf8qGFC39o=", + "lastModified": 1730751873, + "narHash": "sha256-sdY29RWz0S7VbaoTwSy6RummdHKf0wUTaBlqPxrtvmQ=", "owner": "nix-community", "repo": "disko", - "rev": "c61e50b63ad50dda5797b1593ad7771be496efbb", + "rev": "856a2902156ba304efebd4c1096dbf7465569454", "type": "github" }, "original": { @@ -106,11 +100,11 @@ "pyproject-nix": "pyproject-nix" }, "locked": { - "lastModified": 1726523340, - "narHash": "sha256-Av5mdR2lAGUVdA6DJ8Anon3/FZg3DX4gl1Ff72rCpKU=", + "lastModified": 1730723587, + "narHash": "sha256-3ewuvm7VB/q3sxn9vzzQ0902PlSdqKqqagr8XbC1hIo=", "owner": "nix-community", "repo": "dream2nix", - "rev": "b76c529f377100516c40c5b6e239a4525fdcabe0", + "rev": "51943fca6b95cb9649236bacf5d7c8d9af4c3bec", "type": "github" }, "original": { @@ -121,16 +115,15 @@ }, "emacs-overlay": { "inputs": { - "flake-utils": "flake-utils", "nixpkgs": "nixpkgs_3", "nixpkgs-stable": "nixpkgs-stable" }, "locked": { - "lastModified": 1728638138, - "narHash": "sha256-9BNhvMzh/bQmm0VhhRrl3fmiIjQnvRrVUwXIM5mtYY4=", + "lastModified": 1730826798, + "narHash": "sha256-QE7sHcAIolvAMbHSWZQ5nB2R17C2R/9YB5Q6CR70Hug=", "owner": "nix-community", "repo": "emacs-overlay", - "rev": "b3101a3a0f3883f97fa867ef56b0f29fa2b2b7f1", + "rev": "1febd5c1ad7e798543c886756c598e0fb8d473fd", "type": "github" }, "original": { @@ -187,6 +180,22 @@ "type": "github" } }, + "flake-compat_3": { + "flake": false, + "locked": { + "lastModified": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, "flake-parts": { "inputs": { "nixpkgs-lib": [ @@ -195,11 +204,11 @@ ] }, "locked": { - "lastModified": 1719994518, - "narHash": "sha256-pQMhCCHyQGRzdfAkdJ4cIWiw+JNuWsTX7f0ZYSyz0VY=", + "lastModified": 1730504689, + "narHash": "sha256-hgmguH29K2fvs9szpq2r3pz2/8cJd2LPS+b4tfNFCwE=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "9227223f6d922fee3c7b190b2cc238a99527bbb7", + "rev": "506278e768c2a08bec68eb62932193e341f55c90", "type": "github" }, "original": { @@ -209,6 +218,27 @@ } }, "flake-parts_2": { + "inputs": { + "nixpkgs-lib": [ + "lix-eval-jobs", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1730504689, + "narHash": "sha256-hgmguH29K2fvs9szpq2r3pz2/8cJd2LPS+b4tfNFCwE=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "506278e768c2a08bec68eb62932193e341f55c90", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "flake-parts_3": { "inputs": { "nixpkgs-lib": "nixpkgs-lib_2" }, @@ -226,7 +256,7 @@ "type": "github" } }, - "flake-parts_3": { + "flake-parts_4": { "inputs": { "nixpkgs-lib": [ "nixThePlanet", @@ -247,7 +277,7 @@ "type": "indirect" } }, - "flake-parts_4": { + "flake-parts_5": { "inputs": { "nixpkgs-lib": "nixpkgs-lib_3" }, @@ -287,24 +317,6 @@ "inputs": { "systems": "systems_3" }, - "locked": { - "lastModified": 1726560853, - "narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "flake-utils_3": { - "inputs": { - "systems": "systems_4" - }, "locked": { "lastModified": 1681202837, "narHash": "sha256-H+Rh19JDwRtpVPAWp64F+rlEtxUWBAQW28eAi3SRSzg=", @@ -324,11 +336,11 @@ "nixpkgs-lib": "nixpkgs-lib" }, "locked": { - "lastModified": 1726153070, - "narHash": "sha256-HO4zgY0ekfwO5bX0QH/3kJ/h4KvUDFZg8YpkNwIbg1U=", + "lastModified": 1730504689, + "narHash": "sha256-hgmguH29K2fvs9szpq2r3pz2/8cJd2LPS+b4tfNFCwE=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "bcef6817a8b2aa20a5a6dbb19b43e63c5bf8619a", + "rev": "506278e768c2a08bec68eb62932193e341f55c90", "type": "github" }, "original": { @@ -354,7 +366,7 @@ }, "git-hooks-nix": { "inputs": { - "flake-compat": "flake-compat", + "flake-compat": "flake-compat_2", "gitignore": "gitignore", "nixpkgs": [ "nixpkgs" @@ -362,11 +374,11 @@ "nixpkgs-stable": "nixpkgs-stable_2" }, "locked": { - "lastModified": 1726745158, - "narHash": "sha256-D5AegvGoEjt4rkKedmxlSEmC+nNLMBPWFxvmYnVLhjk=", + "lastModified": 1730814269, + "narHash": "sha256-fWPHyhYE6xvMI1eGY3pwBTq85wcy1YXqdzTZF+06nOg=", "owner": "cachix", "repo": "git-hooks.nix", - "rev": "4e743a6920eab45e8ba0fbe49dc459f1423a4b74", + "rev": "d70155fdc00df4628446352fc58adc640cd705c2", "type": "github" }, "original": { @@ -420,7 +432,7 @@ }, "hercules-ci-effects": { "inputs": { - "flake-parts": "flake-parts_3", + "flake-parts": "flake-parts_4", "nixpkgs": "nixpkgs_6" }, "locked": { @@ -486,11 +498,11 @@ ] }, "locked": { - "lastModified": 1727111745, - "narHash": "sha256-EYLvFRoTPWtD+3uDg2wwQvlz88OrIr3zld+jFE5gDcY=", + "lastModified": 1730633670, + "narHash": "sha256-ZFJqIXpvVKvzOVFKWNRDyIyAo+GYdmEPaYi1bZB6uf0=", "owner": "nix-community", "repo": "home-manager", - "rev": "21c021862fa696c8199934e2153214ab57150cb6", + "rev": "8f6ca7855d409aeebe2a582c6fd6b6a8d0bf5661", "type": "github" }, "original": { @@ -522,11 +534,11 @@ }, "impermanence": { "locked": { - "lastModified": 1727198257, - "narHash": "sha256-/qMVI+SG9zvhLbQFOnqb4y4BH6DdK3DQHZU5qGptehc=", + "lastModified": 1730403150, + "narHash": "sha256-W1FH5aJ/GpRCOA7DXT/sJHFpa5r8sq2qAUncWwRZ3Gg=", "owner": "nix-community", "repo": "impermanence", - "rev": "8514fff0f048557723021ffeb31ca55f69b67de3", + "rev": "0d09341beeaa2367bac5d718df1404bf2ce45e6f", "type": "github" }, "original": { @@ -555,7 +567,7 @@ "lanzaboote": { "inputs": { "crane": "crane", - "flake-compat": "flake-compat_2", + "flake-compat": "flake-compat_3", "flake-parts": "flake-parts", "nixpkgs": [ "nixpkgs" @@ -564,11 +576,11 @@ "rust-overlay": "rust-overlay" }, "locked": { - "lastModified": 1725379389, - "narHash": "sha256-qS1H/5/20ewJIXmf8FN2A5KTOKKU9elWvCPwdBi1P/U=", + "lastModified": 1730739295, + "narHash": "sha256-aYeJ/P/9AuK6Kee63ZdsmDjEwhnksF+gIv/OyGtlBJE=", "owner": "nix-community", "repo": "lanzaboote", - "rev": "e7bd94e0b5ff3c1e686f2101004ebf4fcea9d871", + "rev": "cef39a78679c266300874e7a7000b4da066228d4", "type": "github" }, "original": { @@ -580,22 +592,49 @@ "lix": { "flake": false, "locked": { - "lastModified": 1726905313, - "narHash": "sha256-jsOyXonevsNaKxM9burYc2S4JVle+VMCJ8+AAp0MDCc=", + "lastModified": 1728951119, + "narHash": "sha256-vUBgL8zJBDyj2serxdEVbNqe6pBN4YgWwhtg3XP8mpQ=", "ref": "refs/heads/main", - "rev": "5f298f74c92402a8390b01c736463b17b36277e3", - "revCount": 16254, + "rev": "f6077314fa6aff862758095bb55fe844e9162a1d", + "revCount": 16344, "type": "git", "url": "https://git@git.lix.systems/lix-project/lix" }, "original": { + "rev": "f6077314fa6aff862758095bb55fe844e9162a1d", "type": "git", "url": "https://git@git.lix.systems/lix-project/lix" } }, + "lix-eval-jobs": { + "inputs": { + "flake-parts": "flake-parts_2", + "lix": [ + "lix" + ], + "nix-github-actions": "nix-github-actions", + "nixpkgs": [ + "nixpkgs" + ], + "treefmt-nix": "treefmt-nix" + }, + "locked": { + "lastModified": 1723579251, + "narHash": "sha256-xnHtfw0gRhV+2S9U7hQwvp2klTy1Iv7FlMMO0/WiMVc=", + "ref": "refs/heads/main", + "rev": "42a160bce2fd9ffebc3809746bc80cc7208f9b08", + "revCount": 609, + "type": "git", + "url": "https://git.lix.systems/lix-project/nix-eval-jobs" + }, + "original": { + "type": "git", + "url": "https://git.lix.systems/lix-project/nix-eval-jobs" + } + }, "lix-module": { "inputs": { - "flake-utils": "flake-utils_2", + "flake-utils": "flake-utils", "flakey-profile": "flakey-profile", "lix": [ "lix" @@ -605,11 +644,11 @@ ] }, "locked": { - "lastModified": 1726631249, - "narHash": "sha256-b2rMO8+jKjY55d8uynX7FjV4NIPu/WzPux0kWOAzwoo=", + "lastModified": 1727752861, + "narHash": "sha256-jowmo2aEzrEpPSM96IWtajuogdJm7DjAWxFTEb7Ct0s=", "ref": "refs/heads/main", - "rev": "b0e6f359500d66670cc16f521e4f62d6a0a4864e", - "revCount": 110, + "rev": "fd186f535a4ac7ae35d98c1dd5d79f0a81b7976d", + "revCount": 116, "type": "git", "url": "https://git.lix.systems/lix-project/nixos-module" }, @@ -621,11 +660,11 @@ "mobile-nixos": { "flake": false, "locked": { - "lastModified": 1726960027, - "narHash": "sha256-BJe+6Gpqu98Mhi1oAfrJK25SZvvQgfYqpmLaXvXgQ9g=", + "lastModified": 1730307383, + "narHash": "sha256-EJYo2VPXVMGQbY+bI4Xav14fXXioBt3KICtXNI6i76o=", "owner": "NixOS", "repo": "mobile-nixos", - "rev": "a386813d9ec46fa32e51488f7d48c0e1bde77f8e", + "rev": "0516be85630befa2c1e8042ac873342ce186b2f6", "type": "github" }, "original": { @@ -660,6 +699,27 @@ "type": "github" } }, + "nix-github-actions": { + "inputs": { + "nixpkgs": [ + "lix-eval-jobs", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1729742964, + "narHash": "sha256-B4mzTcQ0FZHdpeWcpDYPERtyjJd/NIuaQ9+BV1h+MpA=", + "owner": "nix-community", + "repo": "nix-github-actions", + "rev": "e04df33f62cdcf93d73e9a04142464753a16db67", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nix-github-actions", + "type": "github" + } + }, "nix-on-droid": { "inputs": { "home-manager": "home-manager_2", @@ -688,11 +748,11 @@ "nixpkgs": "nixpkgs_5" }, "locked": { - "lastModified": 1727003835, - "narHash": "sha256-Cfllbt/ADfO8oxbT984MhPHR6FJBaglsr1SxtDGbpec=", + "lastModified": 1730779758, + "narHash": "sha256-5WI9AnsBwhLzVRnQm3Qn9oAbROnuLDQTpaXeyZCK8qw=", "owner": "LnL7", "repo": "nix-darwin", - "rev": "bd7d1e3912d40f799c5c0f7e5820ec950f1e0b3d", + "rev": "0e3f3f017c14467085f15d42343a3aaaacd89bcb", "type": "github" }, "original": { @@ -703,7 +763,7 @@ }, "nixThePlanet": { "inputs": { - "flake-parts": "flake-parts_2", + "flake-parts": "flake-parts_3", "hercules-ci-effects": "hercules-ci-effects", "nixpkgs": [ "nixpkgs" @@ -726,11 +786,11 @@ }, "nixosHardware": { "locked": { - "lastModified": 1727040444, - "narHash": "sha256-19FNN5QT9Z11ZUMfftRplyNN+2PgcHKb3oq8KMW/hDA=", + "lastModified": 1730828750, + "narHash": "sha256-XrnZLkLiBYNlwV5gus/8DT7nncF1TS5la6Be7rdVOpI=", "owner": "NixOS", "repo": "nixos-hardware", - "rev": "d0cb432a9d28218df11cbd77d984a2a46caeb5ac", + "rev": "2e78b1af8025108ecd6edaa3ab09695b8a4d3d55", "type": "github" }, "original": { @@ -805,14 +865,14 @@ }, "nixpkgs-lib": { "locked": { - "lastModified": 1725233747, - "narHash": "sha256-Ss8QWLXdr2JCBPcYChJhz4xJm+h/xjl4G0c0XlP6a74=", + "lastModified": 1730504152, + "narHash": "sha256-lXvH/vOfb4aGYyvFmZK/HlsNsr/0CVWlwYvo2rxJk3s=", "type": "tarball", - "url": "https://github.com/NixOS/nixpkgs/archive/356624c12086a18f2ea2825fed34523d60ccc4e3.tar.gz" + "url": "https://github.com/NixOS/nixpkgs/archive/cc2f28000298e1269cea6612cd06ec9979dd5d7f.tar.gz" }, "original": { "type": "tarball", - "url": "https://github.com/NixOS/nixpkgs/archive/356624c12086a18f2ea2825fed34523d60ccc4e3.tar.gz" + "url": "https://github.com/NixOS/nixpkgs/archive/cc2f28000298e1269cea6612cd06ec9979dd5d7f.tar.gz" } }, "nixpkgs-lib_2": { @@ -853,11 +913,11 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1728500571, - "narHash": "sha256-dOymOQ3AfNI4Z337yEwHGohrVQb4yPODCW9MDUyAc4w=", + "lastModified": 1730741070, + "narHash": "sha256-edm8WG19kWozJ/GqyYx2VjW99EdhjKwbY3ZwdlPAAlo=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "d51c28603def282a24fa034bcb007e2bcb5b5dd0", + "rev": "d063c1dd113c91ab27959ba540c0d9753409edf3", "type": "github" }, "original": { @@ -869,11 +929,11 @@ }, "nixpkgs-stable_2": { "locked": { - "lastModified": 1720386169, - "narHash": "sha256-NGKVY4PjzwAa4upkGtAMz1npHGoRzWotlSnVlqI40mo=", + "lastModified": 1730741070, + "narHash": "sha256-edm8WG19kWozJ/GqyYx2VjW99EdhjKwbY3ZwdlPAAlo=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "194846768975b7ad2c4988bdb82572c00222c0d7", + "rev": "d063c1dd113c91ab27959ba540c0d9753409edf3", "type": "github" }, "original": { @@ -901,11 +961,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1720181791, - "narHash": "sha256-i4vJL12/AdyuQuviMMd1Hk2tsGt02hDNhA0Zj1m16N8=", + "lastModified": 1729850857, + "narHash": "sha256-WvLXzNNnnw+qpFOmgaM3JUlNEH+T4s22b5i2oyyCpXE=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "4284c2b73c8bce4b46a6adf23e16d9e2ec8da4bb", + "rev": "41dea55321e5a999b17033296ac05fe8a8b5a257", "type": "github" }, "original": { @@ -917,11 +977,11 @@ }, "nixpkgs_3": { "locked": { - "lastModified": 1728492678, - "narHash": "sha256-9UTxR8eukdg+XZeHgxW5hQA9fIKHsKCdOIUycTryeVw=", + "lastModified": 1730531603, + "narHash": "sha256-Dqg6si5CqIzm87sp57j5nTaeBbWhHFaVyG7V6L8k3lY=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "5633bcff0c6162b9e4b5f1264264611e950c8ec7", + "rev": "7ffd9ae656aec493492b44d0ddfb28e79a1ea25d", "type": "github" }, "original": { @@ -948,10 +1008,12 @@ }, "nixpkgs_5": { "locked": { - "lastModified": 0, - "narHash": "sha256-bvGoiQBvponpZh8ClUcmJ6QnsNKw0EMrCQJARK3bI1c=", - "path": "/nix/store/y6205wq8hxvpqvl8l9d1n9xah01kg0lq-source", - "type": "path" + "lastModified": 1718149104, + "narHash": "sha256-Ds1QpobBX2yoUDx9ZruqVGJ/uQPgcXoYuobBguyKEh8=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "e913ae340076bbb73d9f4d3d065c2bca7caafb16", + "type": "github" }, "original": { "id": "nixpkgs", @@ -976,11 +1038,11 @@ }, "nixpkgs_7": { "locked": { - "lastModified": 1728492678, - "narHash": "sha256-9UTxR8eukdg+XZeHgxW5hQA9fIKHsKCdOIUycTryeVw=", + "lastModified": 1730531603, + "narHash": "sha256-Dqg6si5CqIzm87sp57j5nTaeBbWhHFaVyG7V6L8k3lY=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "5633bcff0c6162b9e4b5f1264264611e950c8ec7", + "rev": "7ffd9ae656aec493492b44d0ddfb28e79a1ea25d", "type": "github" }, "original": { @@ -1104,11 +1166,11 @@ "nixpkgs-stable": "nixpkgs-stable_3" }, "locked": { - "lastModified": 1721042469, - "narHash": "sha256-6FPUl7HVtvRHCCBQne7Ylp4p+dpP3P/OYuzjztZ4s70=", + "lastModified": 1730302582, + "narHash": "sha256-W1MIJpADXQCgosJZT8qBYLRuZls2KSiKdpnTVdKBuvU=", "owner": "cachix", "repo": "pre-commit-hooks.nix", - "rev": "f451c19376071a90d8c58ab1a953c6e9840527fd", + "rev": "af8a16fe5c264f5e9e18bcee2859b40a656876cf", "type": "github" }, "original": { @@ -1119,6 +1181,7 @@ }, "purescript-overlay": { "inputs": { + "flake-compat": "flake-compat", "nixpkgs": [ "dream2nix", "nixpkgs" @@ -1126,11 +1189,11 @@ "slimlock": "slimlock" }, "locked": { - "lastModified": 1696022621, - "narHash": "sha256-eMjFmsj2G1E0Q5XiibUNgFjTiSz0GxIeSSzzVdoN730=", + "lastModified": 1728546539, + "narHash": "sha256-Sws7w0tlnjD+Bjck1nv29NjC5DbL6nH5auL9Ex9Iz2A=", "owner": "thomashoneyman", "repo": "purescript-overlay", - "rev": "047c7933abd6da8aa239904422e22d190ce55ead", + "rev": "4ad4c15d07bd899d7346b331f377606631eb0ee4", "type": "github" }, "original": { @@ -1159,13 +1222,13 @@ "rock5b": { "inputs": { "fan-control": "fan-control", - "flake-parts": "flake-parts_4", + "flake-parts": "flake-parts_5", "kernel-src": "kernel-src", "nixpkgs": "nixpkgs_8", "nixpkgs-kernel": "nixpkgs-kernel", "panfork": "panfork", "tow-boot": "tow-boot", - "treefmt-nix": "treefmt-nix" + "treefmt-nix": "treefmt-nix_2" }, "locked": { "lastModified": 1685695782, @@ -1195,6 +1258,7 @@ "impermanence": "impermanence", "lanzaboote": "lanzaboote", "lix": "lix", + "lix-eval-jobs": "lix-eval-jobs", "lix-module": "lix-module", "mobile-nixos": "mobile-nixos", "nix-on-droid": "nix-on-droid", @@ -1203,7 +1267,7 @@ "nixosHardware": "nixosHardware", "nixpkgs": "nixpkgs_7", "rock5b": "rock5b", - "treefmt-nix": "treefmt-nix_2", + "treefmt-nix": "treefmt-nix_3", "vscode-server": "vscode-server" } }, @@ -1215,11 +1279,11 @@ ] }, "locked": { - "lastModified": 1722219664, - "narHash": "sha256-xMOJ+HW4yj6e69PvieohUJ3dBSdgCfvI0nnCEe6/yVc=", + "lastModified": 1730601085, + "narHash": "sha256-Sgax33jGuvVHTjl1P78IwzlhAGyOxtx5Q26inKja8S4=", "owner": "oxalica", "repo": "rust-overlay", - "rev": "a6fbda5d9a14fb5f7c69b8489d24afeb349c7bb4", + "rev": "8d1b40f8dfd7539aaa3de56e207e22b3cc451825", "type": "github" }, "original": { @@ -1253,11 +1317,11 @@ ] }, "locked": { - "lastModified": 1688610262, - "narHash": "sha256-Wg0ViDotFWGWqKIQzyYCgayeH8s4U1OZcTiWTQYdAp4=", + "lastModified": 1688756706, + "narHash": "sha256-xzkkMv3neJJJ89zo3o2ojp7nFeaZc2G0fYwNXNJRFlo=", "owner": "thomashoneyman", "repo": "slimlock", - "rev": "b5c6cdcaf636ebbebd0a1f32520929394493f1a6", + "rev": "cf72723f59e2340d24881fd7bf61cb113b4c407c", "type": "github" }, "original": { @@ -1311,21 +1375,6 @@ "type": "github" } }, - "systems_4": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - }, "tow-boot": { "flake": false, "locked": { @@ -1344,6 +1393,27 @@ } }, "treefmt-nix": { + "inputs": { + "nixpkgs": [ + "lix-eval-jobs", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1730321837, + "narHash": "sha256-vK+a09qq19QNu2MlLcvN4qcRctJbqWkX7ahgPZ/+maI=", + "owner": "numtide", + "repo": "treefmt-nix", + "rev": "746901bb8dba96d154b66492a29f5db0693dbfcc", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "treefmt-nix", + "type": "github" + } + }, + "treefmt-nix_2": { "inputs": { "nixpkgs": [ "rock5b", @@ -1364,18 +1434,18 @@ "type": "github" } }, - "treefmt-nix_2": { + "treefmt-nix_3": { "inputs": { "nixpkgs": [ "nixpkgs" ] }, "locked": { - "lastModified": 1727098951, - "narHash": "sha256-gplorAc0ISAUPemUNOnRUs7jr3WiLiHZb3DJh++IkZs=", + "lastModified": 1730321837, + "narHash": "sha256-vK+a09qq19QNu2MlLcvN4qcRctJbqWkX7ahgPZ/+maI=", "owner": "numtide", "repo": "treefmt-nix", - "rev": "35dfece10c642eb52928a48bee7ac06a59f93e9a", + "rev": "746901bb8dba96d154b66492a29f5db0693dbfcc", "type": "github" }, "original": { @@ -1386,15 +1456,15 @@ }, "vscode-server": { "inputs": { - "flake-utils": "flake-utils_3", + "flake-utils": "flake-utils_2", "nixpkgs": "nixpkgs_9" }, "locked": { - "lastModified": 1713958148, - "narHash": "sha256-8PDNi/dgoI2kyM7uSiU4eoLBqUKoA+3TXuz+VWmuCOc=", + "lastModified": 1729422940, + "narHash": "sha256-DlvJv33ml5UTKgu4b0HauOfFIoDx6QXtbqUF3vWeRCY=", "owner": "nix-community", "repo": "nixos-vscode-server", - "rev": "fc900c16efc6a5ed972fb6be87df018bcf3035bc", + "rev": "8b6db451de46ecf9b4ab3d01ef76e59957ff549f", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 72b2a1f..098e393 100644 --- a/flake.nix +++ b/flake.nix @@ -1,5 +1,6 @@ { - description = "A complete, declarative, and reproducible configuration of my entire Nix fleet"; + description = + "A complete, declarative, and reproducible configuration of my entire Nix fleet"; inputs = { flakeParts.url = "github:hercules-ci/flake-parts"; @@ -33,12 +34,11 @@ url = "github:MatthewCroughan/NixThePlanet/"; inputs.nixpkgs.follows = "nixpkgs"; }; - nixDarwin = { - url = "github:LnL7/nix-darwin"; - }; + nixDarwin = { url = "github:LnL7/nix-darwin"; }; nix-on-droid.url = "github:nix-community/nix-on-droid"; lix = { - url = "git+https://git@git.lix.systems/lix-project/lix"; + url = + "git+https://git@git.lix.systems/lix-project/lix?rev=f6077314fa6aff862758095bb55fe844e9162a1d"; # FIXME update flake = false; }; lix-module = { @@ -46,6 +46,11 @@ inputs.lix.follows = "lix"; inputs.nixpkgs.follows = "nixpkgs"; }; + lix-eval-jobs = { + url = "git+https://git.lix.systems/lix-project/nix-eval-jobs"; + inputs.lix.follows = "lix"; + inputs.nixpkgs.follows = "nixpkgs"; + }; mobile-nixos = { url = "github:NixOS/mobile-nixos"; flake = false; @@ -60,8 +65,7 @@ emacs-overlay.url = "github:nix-community/emacs-overlay"; }; - outputs = - inputs@{ flakeParts, ... }: + outputs = inputs@{ flakeParts, ... }: flakeParts.lib.mkFlake { inherit inputs; } { imports = [ # TODO export modules as flake outputs @@ -72,9 +76,6 @@ ./shell ./checks ]; - systems = [ - "x86_64-linux" - "aarch64-linux" - ]; + systems = [ "x86_64-linux" "aarch64-linux" ]; }; } diff --git a/modules/nix/default.nix b/modules/nix/default.nix index cf855e4..a565803 100644 --- a/modules/nix/default.nix +++ b/modules/nix/default.nix @@ -1,10 +1,14 @@ -{ - config, - lib, - fleetFlake, - ... -}: -{ +{ config, lib, fleetFlake, ... }: { + nixpkgs.overlays = [ + (final: _: { + nix-eval-job = + fleetFlake.inputs.lix-eval-jobs.packages.${final.system}.nix-eval-jobs + // { + nix = final.nix; + }; + }) + ]; + nix = { optimise.automatic = true; @@ -13,10 +17,7 @@ settings = { auto-optimise-store = true; - trusted-users = [ - "root" - "@wheel" - ]; + trusted-users = [ "root" "@wheel" ]; netrc-file = "/etc/nix/netrc"; substituters = [ # "s3://cache?profile=default®ion=eu-south-1&scheme=https&endpoint=cache.aciceri.dev" @@ -48,32 +49,29 @@ options = "--delete-older-than 180d"; }; - registry = lib.mkForce ( - { - nixpkgs.to = { - type = "path"; - path = fleetFlake.inputs.nixpkgs; - }; - n.to = { - type = "path"; - path = fleetFlake.inputs.nixpkgs; - }; - } - // (lib.optionalAttrs (builtins.hasAttr "ccr" config) { - nixfleet.to = { - type = "path"; - path = "/home/${config.ccr.username}/projects/aciceri/nixfleet"; - }; - fleet.to = { - type = "path"; - path = "/home/${config.ccr.username}/projects/aciceri/nixfleet"; - }; - ccrEmacs.to = { - type = "path"; - path = "/home/${config.ccr.username}/.config/emacs"; - }; - }) - ); + registry = lib.mkForce ({ + nixpkgs.to = { + type = "path"; + path = fleetFlake.inputs.nixpkgs; + }; + n.to = { + type = "path"; + path = fleetFlake.inputs.nixpkgs; + }; + } // (lib.optionalAttrs (builtins.hasAttr "ccr" config) { + nixfleet.to = { + type = "path"; + path = "/home/${config.ccr.username}/projects/aciceri/nixfleet"; + }; + fleet.to = { + type = "path"; + path = "/home/${config.ccr.username}/projects/aciceri/nixfleet"; + }; + ccrEmacs.to = { + type = "path"; + path = "/home/${config.ccr.username}/.config/emacs"; + }; + })); distributedBuilds = true; buildMachines = @@ -81,26 +79,16 @@ hostName = "sisko.fleet"; system = "aarch64-linux"; maxJobs = 7; - supportedFeatures = [ - "kvm" - "nixos-test" - "big-parallel" - "benchmark" - ]; + supportedFeatures = [ "kvm" "nixos-test" "big-parallel" "benchmark" ]; protocol = "ssh-ng"; sshUser = "root"; sshKey = "/home/${config.ccr.username}/.ssh/id_rsa"; - } - ++ (lib.lists.optional (config.networking.hostName == "picard") { - hostName = "mac.staging.mlabs.city?remote-program=/run/current-system/sw/bin/nix-store"; + } ++ (lib.lists.optional (config.networking.hostName == "picard") { + hostName = + "mac.staging.mlabs.city?remote-program=/run/current-system/sw/bin/nix-store"; system = "x86_64-darwin"; maxJobs = 4; - supportedFeatures = [ - "kvm" - "nixos-test" - "big-parallel" - "benchmark" - ]; + supportedFeatures = [ "kvm" "nixos-test" "big-parallel" "benchmark" ]; protocol = "ssh"; sshUser = "root"; sshKey = "/home/${config.ccr.username}/.ssh/id_rsa"; From 2a213c6b285448a236405d7b8101cbaa506369a8 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 8 Nov 2024 10:16:54 +0100 Subject: [PATCH 127/492] Move back to linux LTS (remove ddcci workaround) --- hosts/kirk/default.nix | 86 +++++++++++----------------- hosts/picard/default.nix | 121 +++++++++++++++++---------------------- 2 files changed, 88 insertions(+), 119 deletions(-) diff --git a/hosts/kirk/default.nix b/hosts/kirk/default.nix index e2321fa..ec647ef 100644 --- a/hosts/kirk/default.nix +++ b/hosts/kirk/default.nix @@ -1,44 +1,34 @@ -{ - fleetModules, - lib, - pkgs, - ... -}: -{ - imports = - fleetModules [ - "common" - "ssh" - "ccr" - "nix" - "networkmanager" - "bluetooth" - "dbus" - "docker" - "fonts" - "qmk-udev" - "mosh" - "udisks2" - "xdg" - "pipewire" - "nix-development" - "virt-manager" - "ssh-initrd" - "printing" - "pam" - "wireguard-client" - "greetd" - "syncthing" - "mount-sisko" - "adb" - "binfmt" - "prometheus-exporters" - "promtail" - "syncthing" - ] - ++ [ - ./disko.nix - ]; +{ fleetModules, lib, pkgs, ... }: { + imports = fleetModules [ + "common" + "ssh" + "ccr" + "nix" + "networkmanager" + "bluetooth" + "dbus" + "docker" + "fonts" + "qmk-udev" + "mosh" + "udisks2" + "xdg" + "pipewire" + "nix-development" + "virt-manager" + "ssh-initrd" + "printing" + "pam" + "wireguard-client" + "greetd" + "syncthing" + "mount-sisko" + "adb" + "binfmt" + "prometheus-exporters" + "promtail" + "syncthing" + ] ++ [ ./disko.nix ]; ccr = { enable = true; @@ -80,17 +70,11 @@ }; boot.initrd.kernelModules = [ "i915" ]; - boot.initrd.availableKernelModules = [ - "nvme" - "xhci_pci" - "usb_storage" - "sd_mod" - ]; - boot.kernelModules = [ - "kvm-intel" - ]; + boot.initrd.availableKernelModules = + [ "nvme" "xhci_pci" "usb_storage" "sd_mod" ]; + boot.kernelModules = [ "kvm-intel" ]; - boot.kernelPackages = pkgs.linuxKernel.packages.linux_6_10; + boot.kernelPackages = pkgs.linuxPackages; boot.loader.efi.canTouchEfiVariables = true; boot.loader.systemd-boot = { diff --git a/hosts/picard/default.nix b/hosts/picard/default.nix index 0501993..3ecc2ef 100644 --- a/hosts/picard/default.nix +++ b/hosts/picard/default.nix @@ -1,51 +1,40 @@ -{ - fleetModules, - lib, - config, - pkgs, - ... -}: -{ - imports = - fleetModules [ - "common" - "ssh" - "ccr" - "nix" - "networkmanager" - "bluetooth" - "dbus" - "docker" - "fonts" - "qmk-udev" - "mosh" - "udisks2" - "xdg" - "pipewire" - "nix-development" - "waydroid" - "virt-manager" - "ssh-initrd" - "printing" - "pam" - "wireguard-client" - "binfmt" - "greetd" - "syncthing" - "hass-poweroff" - "forgejo-runners" - "teamviewer" - "macos-ventura" - "sunshine" - "mount-sisko" - "adb" - "guix" - "prometheus-exporters" - "promtail" - ] - ++ [ - ./disko.nix - ]; +{ fleetModules, lib, config, pkgs, ... }: { + imports = fleetModules [ + "common" + "ssh" + "ccr" + "nix" + "networkmanager" + "bluetooth" + "dbus" + "docker" + "fonts" + "qmk-udev" + "mosh" + "udisks2" + "xdg" + "pipewire" + "nix-development" + "waydroid" + "virt-manager" + "ssh-initrd" + "printing" + "pam" + "wireguard-client" + "binfmt" + "greetd" + "syncthing" + "hass-poweroff" + "forgejo-runners" + "teamviewer" + "macos-ventura" + "sunshine" + "mount-sisko" + "adb" + "guix" + "prometheus-exporters" + "promtail" + ] ++ [ ./disko.nix ]; ccr = { enable = true; @@ -99,13 +88,8 @@ boot.kernelParams = [ "ip=dhcp" ]; boot.initrd.kernelModules = [ "amdgpu" ]; - boot.initrd.availableKernelModules = [ - "nvme" - "xhci_pci" - "ahci" - "usbhid" - "r8169" - ]; + boot.initrd.availableKernelModules = + [ "nvme" "xhci_pci" "ahci" "usbhid" "r8169" ]; boot.kernelModules = [ "kvm-amd" "ddcci" @@ -126,17 +110,17 @@ })) ]; - systemd.services.ddcci = { - script = '' - echo 'ddcci 0x37' > /sys/bus/i2c/devices/i2c-2/new_device - ''; - wantedBy = [ "graphical.target" ]; - restartIfChanged = false; - serviceConfig = { - Type = "oneshot"; - RemainAfterExit = true; - }; - }; + # systemd.services.ddcci = { + # script = '' + # echo 'ddcci 0x37' > /sys/bus/i2c/devices/i2c-2/new_device + # ''; + # wantedBy = [ "graphical.target" ]; + # restartIfChanged = false; + # serviceConfig = { + # Type = "oneshot"; + # RemainAfterExit = true; + # }; + # }; boot.loader.efi.canTouchEfiVariables = true; boot.loader.systemd-boot = { @@ -148,13 +132,14 @@ configurationLimit = 20; }; - boot.kernelPackages = pkgs.linuxKernel.packages.linux_6_10; + boot.kernelPackages = pkgs.linuxPackages; networking.hostId = "5b02e763"; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; powerManagement.cpuFreqGovernor = lib.mkDefault "schedutil"; - hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; + hardware.cpu.amd.updateMicrocode = + lib.mkDefault config.hardware.enableRedistributableFirmware; hardware.enableRedistributableFirmware = lib.mkDefault true; hardware.graphics = { From 795b5a05cedb090ff15648bc67953126e57804cb Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 8 Nov 2024 10:17:57 +0100 Subject: [PATCH 128/492] `nixfmt-rf-style` is now called just `nixfmt` --- checks/default.nix | 55 +++++++++++++++++----------------------------- 1 file changed, 20 insertions(+), 35 deletions(-) diff --git a/checks/default.nix b/checks/default.nix index 1ea5427..0b5677e 100644 --- a/checks/default.nix +++ b/checks/default.nix @@ -1,42 +1,27 @@ -{ - inputs, - self, - lib, - ... -}: -{ - imports = [ - inputs.treefmt-nix.flakeModule - inputs.git-hooks-nix.flakeModule - ]; +{ inputs, self, lib, ... }: { + imports = [ inputs.treefmt-nix.flakeModule inputs.git-hooks-nix.flakeModule ]; - perSystem = - { ... }: - { - treefmt.config = { - projectRootFile = ".git/config"; - programs = { - nixfmt-rfc-style.enable = true; - deadnix.enable = false; - }; - }; - - pre-commit.settings.hooks = { - nixfmt-rfc-style.enable = true; + perSystem = { ... }: { + treefmt.config = { + projectRootFile = ".git/config"; + programs = { + nixfmt.enable = true; deadnix.enable = false; }; }; - flake.checks = - let - build = _: nc: nc.config.system.build.toplevel; - in - { - x86_64-linux = lib.mapAttrs build { - inherit (self.nixosConfigurations) picard; - }; - aarch64-linux = lib.mapAttrs build { - inherit (self.nixosConfigurations) sisko; # pbp; - }; + pre-commit.settings.hooks = { + nixfmt.enable = true; + deadnix.enable = false; }; + }; + + flake.checks = let build = _: nc: nc.config.system.build.toplevel; + in { + x86_64-linux = + lib.mapAttrs build { inherit (self.nixosConfigurations) picard; }; + aarch64-linux = lib.mapAttrs build { + inherit (self.nixosConfigurations) sisko; # pbp; + }; + }; } From 59e132964480cd022a235b0704105bd63a2a6d85 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 8 Nov 2024 10:20:22 +0100 Subject: [PATCH 129/492] New Hyprland keybinding, disable wayvnc and fix cursor --- hmModules/hyprland/default.nix | 37 +++++++++++--------------------- hmModules/hyprland/hyprland.conf | 5 +++-- 2 files changed, 16 insertions(+), 26 deletions(-) diff --git a/hmModules/hyprland/default.nix b/hmModules/hyprland/default.nix index 92ffe67..e10dbf0 100644 --- a/hmModules/hyprland/default.nix +++ b/hmModules/hyprland/default.nix @@ -1,8 +1,4 @@ -{ - config, - pkgs, - ... -}: +{ config, pkgs, ... }: let screenshotScript = pkgs.writeShellScriptBin "screenshot.sh" '' filename="$HOME/shots/$(date --iso-8601=seconds).png" @@ -20,15 +16,14 @@ let fi fi ''; -in -{ +in { imports = [ ./hyprpaper.nix ../waybar ../swayidle ../gammastep # ../wezterm - ../wayvnc + # ../wayvnc ../swaync ../foot ]; @@ -43,9 +38,7 @@ in brightnessctl ]; - systemd.user.sessionVariables = { - NIXOS_OZONE_WL = "1"; - }; + systemd.user.sessionVariables = { NIXOS_OZONE_WL = "1"; }; services.network-manager-applet.enable = true; services.blueman-applet.enable = true; @@ -61,16 +54,14 @@ in name = "Adwaita"; package = pkgs.adwaita-icon-theme; }; - # cursorTheme = { - # name = "catppuccin-mocha-sapphire"; - # package = pkgs.catppuccin-cursors; - # size = 48; - # }; + cursorTheme = { + name = "catppuccin-mocha-sapphire"; + package = pkgs.catppuccin-cursors; + size = 40; + }; }; - qt = { - enable = true; - }; + qt = { enable = true; }; # services.kanshi = { # enable = true; @@ -100,16 +91,14 @@ in # }; home.file.".icons/catppuccin-mocha-sapphire" = { - source = "${pkgs.catppuccin-cursors.mochaSapphire}/share/icons/catppuccin-mocha-sapphire-cursors"; + source = + "${pkgs.catppuccin-cursors.mochaSapphire}/share/icons/catppuccin-mocha-sapphire-cursors"; recursive = true; }; wayland.windowManager.hyprland = { enable = true; - plugins = with pkgs.hyprlandPlugins; [ - hy3 - hyprspace - ]; + plugins = with pkgs.hyprlandPlugins; [ hy3 hyprspace ]; # TODO migrate to structured options extraConfig = builtins.readFile ./hyprland.conf; }; diff --git a/hmModules/hyprland/hyprland.conf b/hmModules/hyprland/hyprland.conf index 79ef97a..1243b85 100644 --- a/hmModules/hyprland/hyprland.conf +++ b/hmModules/hyprland/hyprland.conf @@ -5,9 +5,9 @@ cursor { } env = HYPRCURSOR_THEME,catppuccin-mocha-sapphire -env = HYPRCURSOR_SIZE,48 +env = HYPRCURSOR_SIZE,40 env = XCURSOR_THEME,catppuccin-mocha-sapphire -env = XCURSOR_SIZE,48 +env = XCURSOR_SIZE,40 $mod = SUPER @@ -35,6 +35,7 @@ bind = $mod, t, exec, footclient $SHELL bind = $mod, RETURN, exec, emacsclient -c --eval "(ccr/start-eshell)" bind = $mod, m, exec, emacsclient -c --eval '(notmuch-search "tag:new")' bind = $mod, g, exec, emacsclient -c --eval '(switch-to-buffer (gptel "*ChatGPT*"))' +bind = $mod, c, exec, emacsclient -c --eval '(org-roam-dailies-capture-today)' bind = $mod, d, exec, fuzzel --background-color=253559cc --border-radius=5 --border-width=0 bind = $mod, s, exec, screenshot.sh bind = $mod, n, exec, logseq From 2114a9037f015aea26fee57437926fdab81ad0f8 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 8 Nov 2024 10:20:59 +0100 Subject: [PATCH 130/492] Track org attached files --- hmModules/emacs/init.el | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/hmModules/emacs/init.el b/hmModules/emacs/init.el index 1dee394..11c4186 100644 --- a/hmModules/emacs/init.el +++ b/hmModules/emacs/init.el @@ -720,7 +720,13 @@ This is meant to be an helper to be called from the window manager." (set-face-attribute face nil :inherit 'fixed-pitch)) (org-babel-do-load-languages - 'org-babel-load-languages '((haskell . t)))) + 'org-babel-load-languages '((haskell . t))) + + (defun ccr/org-attach-save-file-list-to-property (dir) + "Save list of attachments to ORG_ATTACH_FILES property." + (when-let* ((files (org-attach-file-list dir))) + (org-set-property "ORG_ATTACH_FILES" (mapconcat #'identity files ", ")))) + (add-hook 'org-attach-after-change-hook #'ccr/org-attach-save-file-list-to-property)) (use-package org-agenda :custom From 83aad0122738f76633078cd42bccd6c0cf8c7afb Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 8 Nov 2024 10:21:17 +0100 Subject: [PATCH 131/492] Improve prompt --- hmModules/emacs/init.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hmModules/emacs/init.el b/hmModules/emacs/init.el index 11c4186..bebc8f1 100644 --- a/hmModules/emacs/init.el +++ b/hmModules/emacs/init.el @@ -875,7 +875,7 @@ This is meant to be an helper to be called from the window manager." (end-pos (line-end-position))) (gptel-request (buffer-substring-no-properties start-pos end-pos) ;the prompt - :system "You are proficient with emacs shell (eshell), translate the following to something I could directly prompt to the shell. Your responses should only be code, without explanation or formatting." + :system "You are proficient with emacs shell (eshell), translate the following to something I could directly prompt to the shell. Your responses should only be code, without explanation or formatting or quoting." :buffer (current-buffer) :context (cons (set-marker (make-marker) start-pos) (set-marker (make-marker) end-pos)) From 6554122847d59c34629e8816c1061bb95d68423c Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 8 Nov 2024 10:21:25 +0100 Subject: [PATCH 132/492] Forgot colon --- hmModules/emacs/init.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hmModules/emacs/init.el b/hmModules/emacs/init.el index bebc8f1..4d01e94 100644 --- a/hmModules/emacs/init.el +++ b/hmModules/emacs/init.el @@ -770,7 +770,7 @@ This is meant to be an helper to be called from the window manager." '( ("d" "Generic entry" entry "* %?" - :target (file+head "%<%Y-%m-%d>.org" "#+title %<%Y-%m-%d>")) + :target (file+head "%<%Y-%m-%d>.org" "#+TITLE: %<%Y-%m-%d>")) ("b" "Billable entry" entry "* TODO ${Entry} :billable:${Client}:\n:PROPERTIES:\n:SPENT: ${Spent}\n:END:\n%?" :target (file+head "%<%Y-%m-%d>.org" "#+title %<%Y-%m-%d>") From e671f7a375e27dbbfed5416e675120a23732eda4 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 8 Nov 2024 10:21:36 +0100 Subject: [PATCH 133/492] Update TODO list --- hmModules/emacs/init.el | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/hmModules/emacs/init.el b/hmModules/emacs/init.el index 4d01e94..154a4bc 100644 --- a/hmModules/emacs/init.el +++ b/hmModules/emacs/init.el @@ -1,11 +1,10 @@ ;; package --- My Emacs config -*- lexical-binding:t -*- ;; Author: Andrea Ciceri ;;; Commentary: -;; TODO -;; - org-roam -;; - org goodies -;; - persp-mode? -;; - understand how to configure cape +;; TODO org goodies +;; TODO understand how to configure cape +;; TODO org-roam-protocol to capture notes from the browser +;; TODO attach documents (like PDFs) to my Zettelkasten notes ;;; Code: From a0f97d1a10ce7c813f8b85213720be4f11b998d5 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 8 Nov 2024 10:21:49 +0100 Subject: [PATCH 134/492] Support extra packages again --- packages/emacs/packages.nix | 57 ++++++++++++++++++------------------- 1 file changed, 28 insertions(+), 29 deletions(-) diff --git a/packages/emacs/packages.nix b/packages/emacs/packages.nix index ea483fd..6342214 100644 --- a/packages/emacs/packages.nix +++ b/packages/emacs/packages.nix @@ -2,13 +2,33 @@ pkgs: epkgs: let inherit (epkgs) melpaPackages nongnuPackages elpaPackages; - # *Attrset* containig extra emacs packages from flake inputs + buildEmacsPackage = args: + epkgs.trivialBuild { + pname = args.name; + inherit (args) src; + version = args.src.rev; + propagatedUserEnvPkgs = args.deps; + buildInputs = args.deps; + }; + + # *Attrset* containig extra emacs packages + extraPackages = { + combobulate = buildEmacsPackage { + name = "combobulate"; + src = pkgs.fetchFromGitHub { + owner = "mickeynp"; + repo = "combobulate"; + rev = "e9c5be84062e8183f556d7133d5a477a57e37e51"; + hash = "sha256-r6jObsYx7RRTJUmrCN5h3+0WcHqJA67emhr4/W3rBrM="; + }; + deps = [ ]; + }; + }; # *List* containing emacs packages from (M)ELPA - mainPackages = - # builtins.filter + mainPackages = builtins.filter # if an extra package has the same name then give precedence to it - # (package: ! builtins.elem package.pname (builtins.attrNames extraPackages)) + (package: !builtins.elem package.pname (builtins.attrNames extraPackages)) (with melpaPackages; [ meow meow-tree-sitter @@ -78,33 +98,12 @@ let notmuch consult-notmuch poly-org - casual-calc + casual gptel agenix solidity-mode # org-re-reveal # FIXME very not nice hash mismatch when building # gptel # TODO uncomment when there will be a new release including GPT-4o - ]) - ++ (with elpaPackages; [ - delight - kind-icon - ef-themes - indent-bars - ement - ]) - ++ (with nongnuPackages; [ - eat - corfu-terminal - haskell-ts-mode - ]); -in -mainPackages -# ++ (builtins.attrValues extraPackages) -# Playing with EAF -++ [ - # Disabled because pymupdf was broken - # (pkgs.callPackage ./eaf.nix { - # inherit (epkgs) melpaBuild; - # inherit (melpaPackages) ctable deferred epc s; - # }) -] + ]) ++ (with elpaPackages; [ delight kind-icon ef-themes indent-bars ement ]) + ++ (with nongnuPackages; [ eat corfu-terminal haskell-ts-mode ]); +in mainPackages ++ (builtins.attrValues extraPackages) From 43c06ae4c4d584f11f374391a354835868684405 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 8 Nov 2024 10:22:50 +0100 Subject: [PATCH 135/492] `pre-commit` still refers to the new formatter as `nixfmt-rfc-style` --- checks/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/checks/default.nix b/checks/default.nix index 0b5677e..cd7d5cd 100644 --- a/checks/default.nix +++ b/checks/default.nix @@ -11,7 +11,7 @@ }; pre-commit.settings.hooks = { - nixfmt.enable = true; + nixfmt-rfc-style.enable = true; deadnix.enable = false; }; }; From 8b7d68b29688614e76c9c29acee412fc866f8948 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 8 Nov 2024 10:24:16 +0100 Subject: [PATCH 136/492] Format --- checks/default.nix | 53 ++++++---- flake.nix | 18 ++-- hmModules/hyprland/default.nix | 19 ++-- hosts/kirk/default.nix | 78 ++++++++------ hosts/picard/default.nix | 95 +++++++++-------- modules/nix/default.nix | 90 +++++++++------- packages/emacs/packages.nix | 181 ++++++++++++++++++--------------- 7 files changed, 310 insertions(+), 224 deletions(-) diff --git a/checks/default.nix b/checks/default.nix index cd7d5cd..376d792 100644 --- a/checks/default.nix +++ b/checks/default.nix @@ -1,27 +1,40 @@ -{ inputs, self, lib, ... }: { - imports = [ inputs.treefmt-nix.flakeModule inputs.git-hooks-nix.flakeModule ]; +{ + inputs, + self, + lib, + ... +}: +{ + imports = [ + inputs.treefmt-nix.flakeModule + inputs.git-hooks-nix.flakeModule + ]; - perSystem = { ... }: { - treefmt.config = { - projectRootFile = ".git/config"; - programs = { - nixfmt.enable = true; + perSystem = + { ... }: + { + treefmt.config = { + projectRootFile = ".git/config"; + programs = { + nixfmt.enable = true; + deadnix.enable = false; + }; + }; + + pre-commit.settings.hooks = { + nixfmt-rfc-style.enable = true; deadnix.enable = false; }; }; - pre-commit.settings.hooks = { - nixfmt-rfc-style.enable = true; - deadnix.enable = false; + flake.checks = + let + build = _: nc: nc.config.system.build.toplevel; + in + { + x86_64-linux = lib.mapAttrs build { inherit (self.nixosConfigurations) picard; }; + aarch64-linux = lib.mapAttrs build { + inherit (self.nixosConfigurations) sisko; # pbp; + }; }; - }; - - flake.checks = let build = _: nc: nc.config.system.build.toplevel; - in { - x86_64-linux = - lib.mapAttrs build { inherit (self.nixosConfigurations) picard; }; - aarch64-linux = lib.mapAttrs build { - inherit (self.nixosConfigurations) sisko; # pbp; - }; - }; } diff --git a/flake.nix b/flake.nix index 098e393..e62a744 100644 --- a/flake.nix +++ b/flake.nix @@ -1,6 +1,5 @@ { - description = - "A complete, declarative, and reproducible configuration of my entire Nix fleet"; + description = "A complete, declarative, and reproducible configuration of my entire Nix fleet"; inputs = { flakeParts.url = "github:hercules-ci/flake-parts"; @@ -34,11 +33,12 @@ url = "github:MatthewCroughan/NixThePlanet/"; inputs.nixpkgs.follows = "nixpkgs"; }; - nixDarwin = { url = "github:LnL7/nix-darwin"; }; + nixDarwin = { + url = "github:LnL7/nix-darwin"; + }; nix-on-droid.url = "github:nix-community/nix-on-droid"; lix = { - url = - "git+https://git@git.lix.systems/lix-project/lix?rev=f6077314fa6aff862758095bb55fe844e9162a1d"; # FIXME update + url = "git+https://git@git.lix.systems/lix-project/lix?rev=f6077314fa6aff862758095bb55fe844e9162a1d"; # FIXME update flake = false; }; lix-module = { @@ -65,7 +65,8 @@ emacs-overlay.url = "github:nix-community/emacs-overlay"; }; - outputs = inputs@{ flakeParts, ... }: + outputs = + inputs@{ flakeParts, ... }: flakeParts.lib.mkFlake { inherit inputs; } { imports = [ # TODO export modules as flake outputs @@ -76,6 +77,9 @@ ./shell ./checks ]; - systems = [ "x86_64-linux" "aarch64-linux" ]; + systems = [ + "x86_64-linux" + "aarch64-linux" + ]; }; } diff --git a/hmModules/hyprland/default.nix b/hmModules/hyprland/default.nix index e10dbf0..bcc035e 100644 --- a/hmModules/hyprland/default.nix +++ b/hmModules/hyprland/default.nix @@ -16,7 +16,8 @@ let fi fi ''; -in { +in +{ imports = [ ./hyprpaper.nix ../waybar @@ -38,7 +39,9 @@ in { brightnessctl ]; - systemd.user.sessionVariables = { NIXOS_OZONE_WL = "1"; }; + systemd.user.sessionVariables = { + NIXOS_OZONE_WL = "1"; + }; services.network-manager-applet.enable = true; services.blueman-applet.enable = true; @@ -61,7 +64,9 @@ in { }; }; - qt = { enable = true; }; + qt = { + enable = true; + }; # services.kanshi = { # enable = true; @@ -91,14 +96,16 @@ in { # }; home.file.".icons/catppuccin-mocha-sapphire" = { - source = - "${pkgs.catppuccin-cursors.mochaSapphire}/share/icons/catppuccin-mocha-sapphire-cursors"; + source = "${pkgs.catppuccin-cursors.mochaSapphire}/share/icons/catppuccin-mocha-sapphire-cursors"; recursive = true; }; wayland.windowManager.hyprland = { enable = true; - plugins = with pkgs.hyprlandPlugins; [ hy3 hyprspace ]; + plugins = with pkgs.hyprlandPlugins; [ + hy3 + hyprspace + ]; # TODO migrate to structured options extraConfig = builtins.readFile ./hyprland.conf; }; diff --git a/hosts/kirk/default.nix b/hosts/kirk/default.nix index ec647ef..3b17a67 100644 --- a/hosts/kirk/default.nix +++ b/hosts/kirk/default.nix @@ -1,34 +1,42 @@ -{ fleetModules, lib, pkgs, ... }: { - imports = fleetModules [ - "common" - "ssh" - "ccr" - "nix" - "networkmanager" - "bluetooth" - "dbus" - "docker" - "fonts" - "qmk-udev" - "mosh" - "udisks2" - "xdg" - "pipewire" - "nix-development" - "virt-manager" - "ssh-initrd" - "printing" - "pam" - "wireguard-client" - "greetd" - "syncthing" - "mount-sisko" - "adb" - "binfmt" - "prometheus-exporters" - "promtail" - "syncthing" - ] ++ [ ./disko.nix ]; +{ + fleetModules, + lib, + pkgs, + ... +}: +{ + imports = + fleetModules [ + "common" + "ssh" + "ccr" + "nix" + "networkmanager" + "bluetooth" + "dbus" + "docker" + "fonts" + "qmk-udev" + "mosh" + "udisks2" + "xdg" + "pipewire" + "nix-development" + "virt-manager" + "ssh-initrd" + "printing" + "pam" + "wireguard-client" + "greetd" + "syncthing" + "mount-sisko" + "adb" + "binfmt" + "prometheus-exporters" + "promtail" + "syncthing" + ] + ++ [ ./disko.nix ]; ccr = { enable = true; @@ -70,8 +78,12 @@ }; boot.initrd.kernelModules = [ "i915" ]; - boot.initrd.availableKernelModules = - [ "nvme" "xhci_pci" "usb_storage" "sd_mod" ]; + boot.initrd.availableKernelModules = [ + "nvme" + "xhci_pci" + "usb_storage" + "sd_mod" + ]; boot.kernelModules = [ "kvm-intel" ]; boot.kernelPackages = pkgs.linuxPackages; diff --git a/hosts/picard/default.nix b/hosts/picard/default.nix index 3ecc2ef..fd17130 100644 --- a/hosts/picard/default.nix +++ b/hosts/picard/default.nix @@ -1,40 +1,49 @@ -{ fleetModules, lib, config, pkgs, ... }: { - imports = fleetModules [ - "common" - "ssh" - "ccr" - "nix" - "networkmanager" - "bluetooth" - "dbus" - "docker" - "fonts" - "qmk-udev" - "mosh" - "udisks2" - "xdg" - "pipewire" - "nix-development" - "waydroid" - "virt-manager" - "ssh-initrd" - "printing" - "pam" - "wireguard-client" - "binfmt" - "greetd" - "syncthing" - "hass-poweroff" - "forgejo-runners" - "teamviewer" - "macos-ventura" - "sunshine" - "mount-sisko" - "adb" - "guix" - "prometheus-exporters" - "promtail" - ] ++ [ ./disko.nix ]; +{ + fleetModules, + lib, + config, + pkgs, + ... +}: +{ + imports = + fleetModules [ + "common" + "ssh" + "ccr" + "nix" + "networkmanager" + "bluetooth" + "dbus" + "docker" + "fonts" + "qmk-udev" + "mosh" + "udisks2" + "xdg" + "pipewire" + "nix-development" + "waydroid" + "virt-manager" + "ssh-initrd" + "printing" + "pam" + "wireguard-client" + "binfmt" + "greetd" + "syncthing" + "hass-poweroff" + "forgejo-runners" + "teamviewer" + "macos-ventura" + "sunshine" + "mount-sisko" + "adb" + "guix" + "prometheus-exporters" + "promtail" + ] + ++ [ ./disko.nix ]; ccr = { enable = true; @@ -88,8 +97,13 @@ boot.kernelParams = [ "ip=dhcp" ]; boot.initrd.kernelModules = [ "amdgpu" ]; - boot.initrd.availableKernelModules = - [ "nvme" "xhci_pci" "ahci" "usbhid" "r8169" ]; + boot.initrd.availableKernelModules = [ + "nvme" + "xhci_pci" + "ahci" + "usbhid" + "r8169" + ]; boot.kernelModules = [ "kvm-amd" "ddcci" @@ -138,8 +152,7 @@ nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; powerManagement.cpuFreqGovernor = lib.mkDefault "schedutil"; - hardware.cpu.amd.updateMicrocode = - lib.mkDefault config.hardware.enableRedistributableFirmware; + hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; hardware.enableRedistributableFirmware = lib.mkDefault true; hardware.graphics = { diff --git a/modules/nix/default.nix b/modules/nix/default.nix index a565803..84e36c4 100644 --- a/modules/nix/default.nix +++ b/modules/nix/default.nix @@ -1,11 +1,15 @@ -{ config, lib, fleetFlake, ... }: { +{ + config, + lib, + fleetFlake, + ... +}: +{ nixpkgs.overlays = [ (final: _: { - nix-eval-job = - fleetFlake.inputs.lix-eval-jobs.packages.${final.system}.nix-eval-jobs - // { - nix = final.nix; - }; + nix-eval-job = fleetFlake.inputs.lix-eval-jobs.packages.${final.system}.nix-eval-jobs // { + nix = final.nix; + }; }) ]; @@ -17,7 +21,10 @@ settings = { auto-optimise-store = true; - trusted-users = [ "root" "@wheel" ]; + trusted-users = [ + "root" + "@wheel" + ]; netrc-file = "/etc/nix/netrc"; substituters = [ # "s3://cache?profile=default®ion=eu-south-1&scheme=https&endpoint=cache.aciceri.dev" @@ -49,29 +56,32 @@ options = "--delete-older-than 180d"; }; - registry = lib.mkForce ({ - nixpkgs.to = { - type = "path"; - path = fleetFlake.inputs.nixpkgs; - }; - n.to = { - type = "path"; - path = fleetFlake.inputs.nixpkgs; - }; - } // (lib.optionalAttrs (builtins.hasAttr "ccr" config) { - nixfleet.to = { - type = "path"; - path = "/home/${config.ccr.username}/projects/aciceri/nixfleet"; - }; - fleet.to = { - type = "path"; - path = "/home/${config.ccr.username}/projects/aciceri/nixfleet"; - }; - ccrEmacs.to = { - type = "path"; - path = "/home/${config.ccr.username}/.config/emacs"; - }; - })); + registry = lib.mkForce ( + { + nixpkgs.to = { + type = "path"; + path = fleetFlake.inputs.nixpkgs; + }; + n.to = { + type = "path"; + path = fleetFlake.inputs.nixpkgs; + }; + } + // (lib.optionalAttrs (builtins.hasAttr "ccr" config) { + nixfleet.to = { + type = "path"; + path = "/home/${config.ccr.username}/projects/aciceri/nixfleet"; + }; + fleet.to = { + type = "path"; + path = "/home/${config.ccr.username}/projects/aciceri/nixfleet"; + }; + ccrEmacs.to = { + type = "path"; + path = "/home/${config.ccr.username}/.config/emacs"; + }; + }) + ); distributedBuilds = true; buildMachines = @@ -79,16 +89,26 @@ hostName = "sisko.fleet"; system = "aarch64-linux"; maxJobs = 7; - supportedFeatures = [ "kvm" "nixos-test" "big-parallel" "benchmark" ]; + supportedFeatures = [ + "kvm" + "nixos-test" + "big-parallel" + "benchmark" + ]; protocol = "ssh-ng"; sshUser = "root"; sshKey = "/home/${config.ccr.username}/.ssh/id_rsa"; - } ++ (lib.lists.optional (config.networking.hostName == "picard") { - hostName = - "mac.staging.mlabs.city?remote-program=/run/current-system/sw/bin/nix-store"; + } + ++ (lib.lists.optional (config.networking.hostName == "picard") { + hostName = "mac.staging.mlabs.city?remote-program=/run/current-system/sw/bin/nix-store"; system = "x86_64-darwin"; maxJobs = 4; - supportedFeatures = [ "kvm" "nixos-test" "big-parallel" "benchmark" ]; + supportedFeatures = [ + "kvm" + "nixos-test" + "big-parallel" + "benchmark" + ]; protocol = "ssh"; sshUser = "root"; sshKey = "/home/${config.ccr.username}/.ssh/id_rsa"; diff --git a/packages/emacs/packages.nix b/packages/emacs/packages.nix index 6342214..2f30f68 100644 --- a/packages/emacs/packages.nix +++ b/packages/emacs/packages.nix @@ -2,7 +2,8 @@ pkgs: epkgs: let inherit (epkgs) melpaPackages nongnuPackages elpaPackages; - buildEmacsPackage = args: + buildEmacsPackage = + args: epkgs.trivialBuild { pname = args.name; inherit (args) src; @@ -26,84 +27,100 @@ let }; # *List* containing emacs packages from (M)ELPA - mainPackages = builtins.filter - # if an extra package has the same name then give precedence to it - (package: !builtins.elem package.pname (builtins.attrNames extraPackages)) - (with melpaPackages; [ - meow - meow-tree-sitter - dracula-theme - nord-theme - catppuccin-theme - modus-themes - # solaire-mode - nerd-icons - nerd-icons-completion - nerd-icons-ibuffer - nerd-icons-dired - ligature - treemacs-nerd-icons - eshell-syntax-highlighting - fish-completion # fish completion for eshell - eshell-prompt-extras - eshell-atuin - eshell-command-not-found - clipetty - sideline - consult-eglot - # sideline-flymake - rainbow-delimiters - vertico - marginalia - consult - orderless - embark - embark-consult - magit - magit-delta - magit-todos - difftastic - with-editor - diff-hl - corfu - cape - which-key - nix-mode - nix-ts-mode - agenix - zig-mode - unisonlang-mode - purescript-mode - dhall-mode - envrc - inheritenv - popper - paredit - yaml-mode - hl-todo - markdown-mode - haskell-mode - terraform-mode - diredfl - org-modern - org-roam - org-roam-ql - org-roam-ui - visual-fill-column - consult-org-roam - pass - password-store-otp - eldoc-box - go-translate - notmuch - consult-notmuch - poly-org - casual - gptel - agenix - solidity-mode - # org-re-reveal # FIXME very not nice hash mismatch when building - # gptel # TODO uncomment when there will be a new release including GPT-4o - ]) ++ (with elpaPackages; [ delight kind-icon ef-themes indent-bars ement ]) - ++ (with nongnuPackages; [ eat corfu-terminal haskell-ts-mode ]); -in mainPackages ++ (builtins.attrValues extraPackages) + mainPackages = + builtins.filter + # if an extra package has the same name then give precedence to it + (package: !builtins.elem package.pname (builtins.attrNames extraPackages)) + ( + with melpaPackages; + [ + meow + meow-tree-sitter + dracula-theme + nord-theme + catppuccin-theme + modus-themes + # solaire-mode + nerd-icons + nerd-icons-completion + nerd-icons-ibuffer + nerd-icons-dired + ligature + treemacs-nerd-icons + eshell-syntax-highlighting + fish-completion # fish completion for eshell + eshell-prompt-extras + eshell-atuin + eshell-command-not-found + clipetty + sideline + consult-eglot + # sideline-flymake + rainbow-delimiters + vertico + marginalia + consult + orderless + embark + embark-consult + magit + magit-delta + magit-todos + difftastic + with-editor + diff-hl + corfu + cape + which-key + nix-mode + nix-ts-mode + agenix + zig-mode + unisonlang-mode + purescript-mode + dhall-mode + envrc + inheritenv + popper + paredit + yaml-mode + hl-todo + markdown-mode + haskell-mode + terraform-mode + diredfl + org-modern + org-roam + org-roam-ql + org-roam-ui + visual-fill-column + consult-org-roam + pass + password-store-otp + eldoc-box + go-translate + notmuch + consult-notmuch + poly-org + casual + gptel + agenix + solidity-mode + # org-re-reveal # FIXME very not nice hash mismatch when building + # gptel # TODO uncomment when there will be a new release including GPT-4o + ] + ) + ++ (with elpaPackages; [ + delight + kind-icon + ef-themes + indent-bars + ement + ]) + ++ (with nongnuPackages; [ + eat + corfu-terminal + haskell-ts-mode + ]); +in +mainPackages ++ (builtins.attrValues extraPackages) From 75bbfc22a14aad407390e385c6799663626c608a Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 8 Nov 2024 18:27:03 +0100 Subject: [PATCH 137/492] Add note on how to restore snapshots --- modules/restic/default.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/modules/restic/default.nix b/modules/restic/default.nix index 7aedfcd..7d743f9 100644 --- a/modules/restic/default.nix +++ b/modules/restic/default.nix @@ -1,3 +1,6 @@ +# To restore something use something like +# restic-sisko restore --include /persist/var/lib/hass --target / +# To get snaphots run restic-sisko snapshots { config, pkgs, From 3451b47e6a88ad6f8f7dc04caf32eadd1a263d38 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 15 Nov 2024 09:58:47 +0100 Subject: [PATCH 138/492] Format --- hmModules/emacs/default.nix | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/hmModules/emacs/default.nix b/hmModules/emacs/default.nix index 54ff7dc..112bbbe 100644 --- a/hmModules/emacs/default.nix +++ b/hmModules/emacs/default.nix @@ -62,12 +62,12 @@ in ); in lib.hm.dag.entryAfter [ "writeBoundary" ] '' - PATH=$PATH:${path} - if [ ! -d "$HOME/.config/emacs" ]; then - mkdir "$HOME/.config/emacs" - $DRY_RUN_CMD ln -s "$HOME/projects/aciceri/nixfleet/hmModules/emacs/init.el" "$HOME/.config/emacs/init.el" - $DRY_RUN_CMD ln -s "$HOME/.config/emacs" "$HOME/emacs" - fi - $DRY_RUN_CMD ln -sfn ${treesitGrammars} "$HOME/.config/emacs/tree-sitter" + PATH=$PATH:${path} + if [ ! -d "$HOME/.config/emacs" ]; then + mkdir "$HOME/.config/emacs" + $DRY_RUN_CMD ln -s "$HOME/projects/aciceri/nixfleet/hmModules/emacs/init.el" "$HOME/.config/emacs/init.el" + $DRY_RUN_CMD ln -s "$HOME/.config/emacs" "$HOME/emacs" + fi + $DRY_RUN_CMD ln -sfn ${treesitGrammars} "$HOME/.config/emacs/tree-sitter" ''; } From 0175810b04ff60d81f3a5766b0b220a6443d4fb0 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 15 Nov 2024 09:59:52 +0100 Subject: [PATCH 139/492] Not relevant anymore --- packages/emacs/packages.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/emacs/packages.nix b/packages/emacs/packages.nix index 2f30f68..695cf1f 100644 --- a/packages/emacs/packages.nix +++ b/packages/emacs/packages.nix @@ -107,7 +107,6 @@ let agenix solidity-mode # org-re-reveal # FIXME very not nice hash mismatch when building - # gptel # TODO uncomment when there will be a new release including GPT-4o ] ) ++ (with elpaPackages; [ From 9e4694d115f1da3633006417ec2df955ad262609 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 15 Nov 2024 10:00:24 +0100 Subject: [PATCH 140/492] Add `telega` to Emacs packages --- packages/emacs/packages.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/emacs/packages.nix b/packages/emacs/packages.nix index 695cf1f..57ceee2 100644 --- a/packages/emacs/packages.nix +++ b/packages/emacs/packages.nix @@ -106,6 +106,7 @@ let gptel agenix solidity-mode + telega # org-re-reveal # FIXME very not nice hash mismatch when building ] ) From 13a40b624d443d8f1f08d2abb8e3d02c984ff6c7 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 15 Nov 2024 10:01:01 +0100 Subject: [PATCH 141/492] Add `gptscript` to Emacs packages --- packages/emacs/packages.nix | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/packages/emacs/packages.nix b/packages/emacs/packages.nix index 57ceee2..7b1d204 100644 --- a/packages/emacs/packages.nix +++ b/packages/emacs/packages.nix @@ -24,6 +24,16 @@ let }; deps = [ ]; }; + gptscript = buildEmacsPackage { + name = "gptscript"; + src = pkgs.fetchFromGitHub { + owner = "emacs-openai"; + repo = "gptscript-mode"; + rev = "d9c6272de1288d3f42a1cbac136e5fac57e185e2"; + hash = "sha256-RM0dptx8qm2b4fvW6oQ0Lq5kshRKcapeIW2piUMAZmw="; + }; + deps = [ ]; + }; }; # *List* containing emacs packages from (M)ELPA From 9f1eeca6b4a8e54a2bad6b1e516b8c912f8eefaf Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 15 Nov 2024 10:01:29 +0100 Subject: [PATCH 142/492] New default name --- packages/deploy/deploy.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/deploy/deploy.sh b/packages/deploy/deploy.sh index 045facb..5e1b791 100644 --- a/packages/deploy/deploy.sh +++ b/packages/deploy/deploy.sh @@ -1,4 +1,4 @@ -host=${1-mothership} +host=${1-picard} nixos-rebuild switch \ --flake ".#${host}" \ From f13e48aaaf41c2b926fdef2cca08993928263b8b Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 15 Nov 2024 10:01:41 +0100 Subject: [PATCH 143/492] Not using swayvnc anymore (sunshine is better) --- hmModules/hyprland/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hmModules/hyprland/default.nix b/hmModules/hyprland/default.nix index bcc035e..884d68b 100644 --- a/hmModules/hyprland/default.nix +++ b/hmModules/hyprland/default.nix @@ -25,7 +25,7 @@ in ../gammastep # ../wezterm # ../wayvnc - ../swaync + # ../swaync ../foot ]; From 00f6fd9f6e76f96c0fee0de7ba70262a7f179fa6 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 15 Nov 2024 10:02:04 +0100 Subject: [PATCH 144/492] Proof of concept work in progress darwin deployment script --- packages/deploy-darwin/default.nix | 9 +++++++++ packages/deploy-darwin/deploy-darwin.sh | 11 +++++++++++ 2 files changed, 20 insertions(+) create mode 100644 packages/deploy-darwin/default.nix create mode 100644 packages/deploy-darwin/deploy-darwin.sh diff --git a/packages/deploy-darwin/default.nix b/packages/deploy-darwin/default.nix new file mode 100644 index 0000000..3feba21 --- /dev/null +++ b/packages/deploy-darwin/default.nix @@ -0,0 +1,9 @@ +{ + writeShellApplication, + ... +}: +writeShellApplication { + name = "deploy-darwin"; + text = builtins.readFile ./deploy-darwin.sh; + runtimeInputs = [ ]; +} diff --git a/packages/deploy-darwin/deploy-darwin.sh b/packages/deploy-darwin/deploy-darwin.sh new file mode 100644 index 0000000..baf540b --- /dev/null +++ b/packages/deploy-darwin/deploy-darwin.sh @@ -0,0 +1,11 @@ +CLOSURE_DRV=$(nix eval .#darwinConfigurations.archer.config.system.build.toplevel.drvPath --raw) +echo "$CLOSURE_DRV" + +nix copy --to ssh://admin@macos-ventura "$CLOSURE_DRV" + +# shellcheck disable=SC2029 +ssh admin@macos-ventura "nix build $CLOSURE_DRV^out" +ssh admin@macos-ventura "./result/activate-user" +ssh admin@macos-ventura "echo admin | sudo -S ./result/activate" +# ssh admin@macos-ventura "./result/sw/bin/darwin-rebuild activate" +ssh admin@macos-ventura "nix profile install ./result" From fb1244edcf12c141a5bfef07f401aaf192e3ef3f Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 15 Nov 2024 10:02:22 +0100 Subject: [PATCH 145/492] Tridactyl uses emacsclient as external editor --- hmModules/firefox/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hmModules/firefox/default.nix b/hmModules/firefox/default.nix index bb04ac5..400341e 100644 --- a/hmModules/firefox/default.nix +++ b/hmModules/firefox/default.nix @@ -86,7 +86,7 @@ in }; xdg.configFile."tridactyl/tridactylrc".text = '' - set editorcmd footclient -e hx %f + set editorcmd emacsclient -c %f colors catppuccin ''; From 0eff21231ba6461cd4ef6996e2bcebffbc3df4f5 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 15 Nov 2024 10:02:50 +0100 Subject: [PATCH 146/492] Packages renamed --- hmModules/emacs/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hmModules/emacs/default.nix b/hmModules/emacs/default.nix index 112bbbe..5eba7b8 100644 --- a/hmModules/emacs/default.nix +++ b/hmModules/emacs/default.nix @@ -44,8 +44,8 @@ in mediainfo unzipNLS nodejs_20 - pkgs.qadwaitadecorations - pkgs.kdePackages.qtwayland + qadwaitadecorations + kdePackages.qtwayland ] ++ (with hunspellDicts; [ en_US-large From 8f46975d54729807124405954bbaec9432cbcd54 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 15 Nov 2024 10:03:02 +0100 Subject: [PATCH 147/492] Remove `rock5b` input --- flake.lock | 185 +---------------------------------------------------- flake.nix | 1 - 2 files changed, 2 insertions(+), 184 deletions(-) diff --git a/flake.lock b/flake.lock index a5198a6..b8a8446 100644 --- a/flake.lock +++ b/flake.lock @@ -132,22 +132,6 @@ "type": "github" } }, - "fan-control": { - "flake": false, - "locked": { - "lastModified": 1669548492, - "narHash": "sha256-qqPmOEF+r10VGz3izAnHZW6aJk1mOXy9BrpR9FvWSt0=", - "owner": "pymumu", - "repo": "fan-control-rock5b", - "rev": "8419990c6c0f47a3ed0b55255d7e3591cc5fdab9", - "type": "github" - }, - "original": { - "owner": "pymumu", - "repo": "fan-control-rock5b", - "type": "github" - } - }, "flake-compat": { "flake": false, "locked": { @@ -277,24 +261,6 @@ "type": "indirect" } }, - "flake-parts_5": { - "inputs": { - "nixpkgs-lib": "nixpkgs-lib_3" - }, - "locked": { - "lastModified": 1678379998, - "narHash": "sha256-TZdfNqftHhDuIFwBcN9MUThx5sQXCTeZk9je5byPKRw=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "c13d60b89adea3dc20704c045ec4d50dd964d447", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "flake-parts", - "type": "github" - } - }, "flake-utils": { "inputs": { "systems": "systems_2" @@ -547,23 +513,6 @@ "type": "github" } }, - "kernel-src": { - "flake": false, - "locked": { - "lastModified": 1676631659, - "narHash": "sha256-TjAF7BPSDy5iHSk8byp+vsKop0V+rqrmr+TXLqXLB2M=", - "owner": "radxa", - "repo": "kernel", - "rev": "a9583fb47e9b96c552f458a376207141602c0025", - "type": "github" - }, - "original": { - "owner": "radxa", - "repo": "kernel", - "rev": "a9583fb47e9b96c552f458a376207141602c0025", - "type": "github" - } - }, "lanzaboote": { "inputs": { "crane": "crane", @@ -847,22 +796,6 @@ "type": "github" } }, - "nixpkgs-kernel": { - "locked": { - "lastModified": 1656239181, - "narHash": "sha256-wW1xRFBn376yGloXZ4QzBE4hjipMawpV18Lshd9QSPw=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "f2537a505d45c31fe5d9c27ea9829b6f4c4e6ac5", - "type": "github" - }, - "original": { - "owner": "nixos", - "repo": "nixpkgs", - "rev": "f2537a505d45c31fe5d9c27ea9829b6f4c4e6ac5", - "type": "github" - } - }, "nixpkgs-lib": { "locked": { "lastModified": 1730504152, @@ -893,24 +826,6 @@ "type": "github" } }, - "nixpkgs-lib_3": { - "locked": { - "dir": "lib", - "lastModified": 1678375444, - "narHash": "sha256-XIgHfGvjFvZQ8hrkfocanCDxMefc/77rXeHvYdzBMc8=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "130fa0baaa2b93ec45523fdcde942f6844ee9f6e", - "type": "github" - }, - "original": { - "dir": "lib", - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, "nixpkgs-stable": { "locked": { "lastModified": 1730741070, @@ -1053,22 +968,6 @@ } }, "nixpkgs_8": { - "locked": { - "lastModified": 1678470307, - "narHash": "sha256-OEeMUr3ueLIXyW/OaFUX5jUdimyQwMg/7e+/Q0gC/QE=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "0c4800d579af4ed98ecc47d464a5e7b0870c4b1f", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_9": { "locked": { "lastModified": 1682134069, "narHash": "sha256-TnI/ZXSmRxQDt2sjRYK/8j8iha4B4zP2cnQCZZ3vp7k=", @@ -1136,22 +1035,6 @@ "type": "github" } }, - "panfork": { - "flake": false, - "locked": { - "lastModified": 1670633863, - "narHash": "sha256-4eZHMiYS+sRDHNBtLZTA8ELZnLns7yT3USU5YQswxQ0=", - "owner": "panfork", - "repo": "mesa", - "rev": "120202c675749c5ef81ae4c8cdc30019b4de08f4", - "type": "gitlab" - }, - "original": { - "owner": "panfork", - "repo": "mesa", - "type": "gitlab" - } - }, "pre-commit-hooks-nix": { "inputs": { "flake-compat": [ @@ -1219,31 +1102,6 @@ "type": "github" } }, - "rock5b": { - "inputs": { - "fan-control": "fan-control", - "flake-parts": "flake-parts_5", - "kernel-src": "kernel-src", - "nixpkgs": "nixpkgs_8", - "nixpkgs-kernel": "nixpkgs-kernel", - "panfork": "panfork", - "tow-boot": "tow-boot", - "treefmt-nix": "treefmt-nix_2" - }, - "locked": { - "lastModified": 1685695782, - "narHash": "sha256-zBQFjZhFWsxCA31jI4Ui3l8KhrqQaG0dHi/v/vIvZcM=", - "owner": "aciceri", - "repo": "rock5b-nixos", - "rev": "3868939df4a6d5292077e154c8cb36de1fde4d30", - "type": "github" - }, - "original": { - "owner": "aciceri", - "repo": "rock5b-nixos", - "type": "github" - } - }, "root": { "inputs": { "agenix": "agenix", @@ -1266,8 +1124,7 @@ "nixThePlanet": "nixThePlanet", "nixosHardware": "nixosHardware", "nixpkgs": "nixpkgs_7", - "rock5b": "rock5b", - "treefmt-nix": "treefmt-nix_3", + "treefmt-nix": "treefmt-nix_2", "vscode-server": "vscode-server" } }, @@ -1375,23 +1232,6 @@ "type": "github" } }, - "tow-boot": { - "flake": false, - "locked": { - "lastModified": 1677346757, - "narHash": "sha256-3SKlcZhfUaNz1bd/l/1B3D66NUk3sALVIyP8DHv41SU=", - "owner": "aciceri", - "repo": "Tow-Boot", - "rev": "85d099f3473effdeca409bd165175d64dfb37ecc", - "type": "github" - }, - "original": { - "owner": "aciceri", - "ref": "rock5b", - "repo": "Tow-Boot", - "type": "github" - } - }, "treefmt-nix": { "inputs": { "nixpkgs": [ @@ -1414,27 +1254,6 @@ } }, "treefmt-nix_2": { - "inputs": { - "nixpkgs": [ - "rock5b", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1678277086, - "narHash": "sha256-fQ1G72KhLWWf2z+ug9+4ErTEayvlcVQMul0qusKKBgk=", - "owner": "numtide", - "repo": "treefmt-nix", - "rev": "ec39cfa24342fdf0b04ae44592a191c4765f9c74", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "treefmt-nix", - "type": "github" - } - }, - "treefmt-nix_3": { "inputs": { "nixpkgs": [ "nixpkgs" @@ -1457,7 +1276,7 @@ "vscode-server": { "inputs": { "flake-utils": "flake-utils_2", - "nixpkgs": "nixpkgs_9" + "nixpkgs": "nixpkgs_8" }, "locked": { "lastModified": 1729422940, diff --git a/flake.nix b/flake.nix index e62a744..de2ff34 100644 --- a/flake.nix +++ b/flake.nix @@ -23,7 +23,6 @@ inputs.nixpkgs.follows = "nixpkgs"; }; agenix.url = "github:ryantm/agenix"; - rock5b.url = "github:aciceri/rock5b-nixos"; treefmt-nix = { url = "github:numtide/treefmt-nix"; inputs.nixpkgs.follows = "nixpkgs"; From 392e10d5c4634c50da4920ba33bbcdf8e165e49a Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 15 Nov 2024 10:03:25 +0100 Subject: [PATCH 148/492] Use external (not committed) custom file --- hmModules/emacs/init.el | 28 +--------------------------- 1 file changed, 1 insertion(+), 27 deletions(-) diff --git a/hmModules/emacs/init.el b/hmModules/emacs/init.el index 154a4bc..529cfd0 100644 --- a/hmModules/emacs/init.el +++ b/hmModules/emacs/init.el @@ -57,6 +57,7 @@ (focus-follows-mouse t) (mouse-autoselect-window t) (treesit-font-lock-level 4) + (custom-file "~/.config/emacs/custom.el") :config (set-face-background 'vertical-border (face-background 'default)) (set-display-table-slot standard-display-table 'vertical-border (make-glyph-code ?┃)) @@ -948,30 +949,3 @@ This is meant to be an helper to be called from the window manager." (provide 'init) ;;; init.el ends here -(custom-set-variables - ;; custom-set-variables was added by Custom. - ;; If you edit it by hand, you could mess it up, so be careful. - ;; Your init file should contain only one such instance. - ;; If there is more than one, they won't work right. - '(custom-safe-themes - '("5bafdfa3e21f921abf9b9fd77e1e0ce032e62e3a6f8f13ec8ce7945727c654e9" - "5f92b9fc442528b6f106eaefa18bb5e7bfa0d737164e18f1214410fef2a6678d" - "b7f70bd00f79099f11d67a25c592d70593377488a263bb3dd73dee99b0549dba" - "7d10494665024176a90895ff7836a8e810d9549a9872c17db8871900add93d5c" - "b5c3c59e2fff6877030996eadaa085a5645cc7597f8876e982eadc923f597aca" default)) - '(magit-todos-insert-after '(bottom) nil nil "Changed by setter of obsolete option `magit-todos-insert-at'") - '(org-fold-catch-invisible-edits 'show-and-error nil nil "Customized with use-package org") - '(safe-local-variable-values - '((eval progn (require 'org-re-reveal) - (add-hook 'after-save-hook #'org-re-reveal-export-to-html nil t)) - (copilot-mode 0) (copilot-mode -1)))) - -(custom-set-faces - ;; custom-set-faces was added by Custom. - ;; If you edit it by hand, you could mess it up, so be careful. - ;; Your init file should contain only one such instance. - ;; If there is more than one, they won't work right. - ) -;; Local Variables: -;; byte-compile-warnings: (not free-vars noruntime unresolved) -;; End: From 0f3d872faf2cfa0de084d299f693f30d19ce09d3 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 15 Nov 2024 10:03:39 +0100 Subject: [PATCH 149/492] Fix org capture template --- hmModules/emacs/init.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hmModules/emacs/init.el b/hmModules/emacs/init.el index 529cfd0..5295c44 100644 --- a/hmModules/emacs/init.el +++ b/hmModules/emacs/init.el @@ -773,7 +773,7 @@ This is meant to be an helper to be called from the window manager." :target (file+head "%<%Y-%m-%d>.org" "#+TITLE: %<%Y-%m-%d>")) ("b" "Billable entry" entry "* TODO ${Entry} :billable:${Client}:\n:PROPERTIES:\n:SPENT: ${Spent}\n:END:\n%?" - :target (file+head "%<%Y-%m-%d>.org" "#+title %<%Y-%m-%d>") + :target (file+head "%<%Y-%m-%d>.org" "#+TITLE: %<%Y-%m-%d>") :create-id t)) ) :config From bcbbe829062bcd27594457d107b0af712ff7690b Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 15 Nov 2024 10:04:00 +0100 Subject: [PATCH 150/492] This has to be a symbol now apparently --- hmModules/emacs/init.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hmModules/emacs/init.el b/hmModules/emacs/init.el index 5295c44..7979853 100644 --- a/hmModules/emacs/init.el +++ b/hmModules/emacs/init.el @@ -860,7 +860,7 @@ This is meant to be an helper to be called from the window manager." (use-package gptel :custom (gptel-api-key (lambda () (require 'f) (f-read-text (getenv "OPENAI_API_KEY_PATH")))) - (gptel-model "gpt-4o") + (gptel-model 'gpt-4o) :config (require 'gptel-curl) From e66b6653db8dbad34d3e786cbd3e306aff3439e9 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 15 Nov 2024 10:04:20 +0100 Subject: [PATCH 151/492] Typo --- hmModules/emacs/init.el | 1 - 1 file changed, 1 deletion(-) diff --git a/hmModules/emacs/init.el b/hmModules/emacs/init.el index 7979853..4c7c5cd 100644 --- a/hmModules/emacs/init.el +++ b/hmModules/emacs/init.el @@ -848,7 +848,6 @@ This is meant to be an helper to be called from the window manager." ("C-c n s" . consult-org-roam-search)) (use-package org-roam-ui - :straight :after org-roam :hook (after-init . org-roam-ui-mode) ;; don't care about startup time since I'm using Emacs daemonized :config From c71d2715a3235b875a8054037da123ef79da69f0 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 15 Nov 2024 10:04:32 +0100 Subject: [PATCH 152/492] Otherwise a firefox window pop up every time Emacs starts --- hmModules/emacs/init.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hmModules/emacs/init.el b/hmModules/emacs/init.el index 4c7c5cd..5cbd385 100644 --- a/hmModules/emacs/init.el +++ b/hmModules/emacs/init.el @@ -854,7 +854,7 @@ This is meant to be an helper to be called from the window manager." (setq org-roam-ui-sync-theme t org-roam-ui-follow t org-roam-ui-update-on-save t - org-roam-ui-open-on-start t)) + org-roam-ui-open-on-start nil)) (use-package gptel :custom From a031de90f48272f66c218cac4ea96785c8dc0546 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 15 Nov 2024 10:05:12 +0100 Subject: [PATCH 153/492] Enable `gptsript-mode` for `.gpt` files --- hmModules/emacs/init.el | 2 ++ 1 file changed, 2 insertions(+) diff --git a/hmModules/emacs/init.el b/hmModules/emacs/init.el index 5cbd385..adcb8c8 100644 --- a/hmModules/emacs/init.el +++ b/hmModules/emacs/init.el @@ -527,6 +527,8 @@ (use-package sh-mode :hook (sh-mode . tree-sitter-hl-mode)) +(use-package gptscript-mode + :mode "\\.gpt\\'") ;; FIXME ;; (use-package mmm-mode From ef177f1293c5df72122469227b0458bbfe1d4a42 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 15 Nov 2024 10:05:43 +0100 Subject: [PATCH 154/492] `tree-sitter-hl-mode` doesn't exist anymore --- hmModules/emacs/init.el | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/hmModules/emacs/init.el b/hmModules/emacs/init.el index adcb8c8..d69b69c 100644 --- a/hmModules/emacs/init.el +++ b/hmModules/emacs/init.el @@ -523,10 +523,11 @@ )) (use-package yaml-mode - :hook (yaml-mode . tree-sitter-hl-mode)) + :hook (yaml-mode . yaml-ts-mode)) (use-package sh-mode - :hook (sh-mode . tree-sitter-hl-mode)) + :hook (sh-mode . bash-ts-mode)) + (use-package gptscript-mode :mode "\\.gpt\\'") From 827f1d16d91236e83f35ea449dd3dc804aacb081 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 15 Nov 2024 10:06:04 +0100 Subject: [PATCH 155/492] Trying to fix nix-on-droid --- hosts/archer/default.nix | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/hosts/archer/default.nix b/hosts/archer/default.nix index de91621..6a4ac88 100644 --- a/hosts/archer/default.nix +++ b/hosts/archer/default.nix @@ -1,7 +1,9 @@ { pkgs, ... }: { - environment.systemPackages = [ - pkgs.vim + environment.systemPackages = with pkgs; [ + helix + vim + git ]; nix.settings.experimental-features = "nix-command flakes"; @@ -10,5 +12,5 @@ services.nix-daemon.enable = true; - # nixpkgs.localSystem = "x86_64-darwin"; + system.stateVersion = 5; } From 159e7a7c72154a36de45a25ac03f9550754c09b5 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 15 Nov 2024 10:06:16 +0100 Subject: [PATCH 156/492] Make `pre-commit` re-use the same config for treefmt --- checks/default.nix | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/checks/default.nix b/checks/default.nix index 376d792..741d164 100644 --- a/checks/default.nix +++ b/checks/default.nix @@ -11,19 +11,22 @@ ]; perSystem = - { ... }: + { config, ... }: { treefmt.config = { projectRootFile = ".git/config"; + flakeFormatter = true; + flakeCheck = true; programs = { nixfmt.enable = true; - deadnix.enable = false; }; }; - pre-commit.settings.hooks = { - nixfmt-rfc-style.enable = true; - deadnix.enable = false; + pre-commit.settings = { + hooks.treefmt = { + enable = true; + package = config.treefmt.build.wrapper; + }; }; }; From 457f369587f9dcfefe662b54699c15bb9ef919f1 Mon Sep 17 00:00:00 2001 From: Seven of Nine Date: Thu, 14 Nov 2024 14:01:28 +0000 Subject: [PATCH 157/492] flake.lock: Update MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Flake lock file updates: • Updated input 'catppuccin': 'github:catppuccin/nix/191fbf2d81a63fad8f62f1233c0051f09b75d0ad' (2024-11-01) → 'github:catppuccin/nix/32359bf226fe874d3b7a0a5753d291a4da9616fe' (2024-11-10) • Updated input 'disko': 'github:nix-community/disko/856a2902156ba304efebd4c1096dbf7465569454' (2024-11-04) → 'github:nix-community/disko/5fd852c4155a689098095406500d0ae3d04654a8' (2024-11-14) • Updated input 'dream2nix': 'github:nix-community/dream2nix/51943fca6b95cb9649236bacf5d7c8d9af4c3bec' (2024-11-04) → 'github:nix-community/dream2nix/44d41411686bc798876bd6d9f36a4c1143138d85' (2024-11-12) • Updated input 'emacs-overlay': 'github:nix-community/emacs-overlay/1febd5c1ad7e798543c886756c598e0fb8d473fd' (2024-11-05) → 'github:nix-community/emacs-overlay/4639038b0f5e66e7d0f3d103b8e44ded3ab7e337' (2024-11-14) • Updated input 'emacs-overlay/nixpkgs': 'github:NixOS/nixpkgs/7ffd9ae656aec493492b44d0ddfb28e79a1ea25d' (2024-11-02) → 'github:NixOS/nixpkgs/dc460ec76cbff0e66e269457d7b728432263166c' (2024-11-11) • Updated input 'emacs-overlay/nixpkgs-stable': 'github:NixOS/nixpkgs/d063c1dd113c91ab27959ba540c0d9753409edf3' (2024-11-04) → 'github:NixOS/nixpkgs/689fed12a013f56d4c4d3f612489634267d86529' (2024-11-12) • Updated input 'git-hooks-nix': 'github:cachix/git-hooks.nix/d70155fdc00df4628446352fc58adc640cd705c2' (2024-11-05) → 'github:cachix/git-hooks.nix/cd1af27aa85026ac759d5d3fccf650abe7e1bbf0' (2024-11-11) • Updated input 'homeManager': 'github:nix-community/home-manager/8f6ca7855d409aeebe2a582c6fd6b6a8d0bf5661' (2024-11-03) → 'github:nix-community/home-manager/35b055009afd0107b69c286fca34d2ad98940d57' (2024-11-13) • Updated input 'impermanence': 'github:nix-community/impermanence/0d09341beeaa2367bac5d718df1404bf2ce45e6f' (2024-10-31) → 'github:nix-community/impermanence/3ed3f0eaae9fcc0a8331e77e9319c8a4abd8a71a' (2024-11-10) • Updated input 'lix-eval-jobs': 'git+https://git.lix.systems/lix-project/nix-eval-jobs?ref=refs/heads/main&rev=42a160bce2fd9ffebc3809746bc80cc7208f9b08' (2024-08-13) → 'git+https://git.lix.systems/lix-project/nix-eval-jobs?ref=refs/heads/main&rev=57ddb99e781d19704f8a84036f9890e6ca554c41' (2024-11-09) • Updated input 'lix-eval-jobs/flake-parts': 'github:hercules-ci/flake-parts/506278e768c2a08bec68eb62932193e341f55c90' (2024-11-01) → 'github:hercules-ci/flake-parts/3d04084d54bedc3d6b8b736c70ef449225c361b1' (2024-10-01) • Updated input 'lix-eval-jobs/treefmt-nix': 'github:numtide/treefmt-nix/746901bb8dba96d154b66492a29f5db0693dbfcc' (2024-10-30) → 'github:numtide/treefmt-nix/aac86347fb5063960eccb19493e0cadcdb4205ca' (2024-10-22) • Updated input 'lix-module': 'git+https://git.lix.systems/lix-project/nixos-module?ref=refs/heads/main&rev=fd186f535a4ac7ae35d98c1dd5d79f0a81b7976d' (2024-10-01) → 'git+https://git.lix.systems/lix-project/nixos-module?ref=refs/heads/main&rev=691193879d96bdfd1e6ab5ebcca2fadc7604cf34' (2024-11-09) • Updated input 'mobile-nixos': 'github:NixOS/mobile-nixos/0516be85630befa2c1e8042ac873342ce186b2f6' (2024-10-30) → 'github:NixOS/mobile-nixos/2268e358ed407d9c0a4499ae767d105eeaeec586' (2024-11-06) • Updated input 'nixDarwin': 'github:LnL7/nix-darwin/0e3f3f017c14467085f15d42343a3aaaacd89bcb' (2024-11-05) → 'github:LnL7/nix-darwin/6c71c49e2448e51ad830ed211024e6d0edc50116' (2024-11-12) • Updated input 'nixThePlanet': 'github:MatthewCroughan/NixThePlanet/2f622af217807da78e44a5a15f620743dac57f46' (2024-09-23) → 'github:MatthewCroughan/NixThePlanet/ef5fad336a55fcbb0680ad21aa58812b2f826435' (2024-11-09) • Updated input 'nixosHardware': 'github:NixOS/nixos-hardware/2e78b1af8025108ecd6edaa3ab09695b8a4d3d55' (2024-11-05) → 'github:NixOS/nixos-hardware/f6581f1c3b137086e42a08a906bdada63045f991' (2024-11-12) • Updated input 'nixpkgs': 'github:NixOS/nixpkgs/7ffd9ae656aec493492b44d0ddfb28e79a1ea25d' (2024-11-02) → 'github:NixOS/nixpkgs/dc460ec76cbff0e66e269457d7b728432263166c' (2024-11-11) --- flake.lock | 112 ++++++++++++++++++++++++++--------------------------- 1 file changed, 56 insertions(+), 56 deletions(-) diff --git a/flake.lock b/flake.lock index b8a8446..e48dcf3 100644 --- a/flake.lock +++ b/flake.lock @@ -23,11 +23,11 @@ }, "catppuccin": { "locked": { - "lastModified": 1730458408, - "narHash": "sha256-JQ+SphQn13bdibKUrBBBznYehXX4xJrxD1ifBp6vSWw=", + "lastModified": 1731232837, + "narHash": "sha256-0aIwr/RC/oe7rYkfJb47xjdEQDSNcqpFGsEa+EPlDEs=", "owner": "catppuccin", "repo": "nix", - "rev": "191fbf2d81a63fad8f62f1233c0051f09b75d0ad", + "rev": "32359bf226fe874d3b7a0a5753d291a4da9616fe", "type": "github" }, "original": { @@ -80,11 +80,11 @@ ] }, "locked": { - "lastModified": 1730751873, - "narHash": "sha256-sdY29RWz0S7VbaoTwSy6RummdHKf0wUTaBlqPxrtvmQ=", + "lastModified": 1731549112, + "narHash": "sha256-c9I3i1CwZ10SoM5npQQVnfwgvB86jAS3lT4ZqkRoSOI=", "owner": "nix-community", "repo": "disko", - "rev": "856a2902156ba304efebd4c1096dbf7465569454", + "rev": "5fd852c4155a689098095406500d0ae3d04654a8", "type": "github" }, "original": { @@ -100,11 +100,11 @@ "pyproject-nix": "pyproject-nix" }, "locked": { - "lastModified": 1730723587, - "narHash": "sha256-3ewuvm7VB/q3sxn9vzzQ0902PlSdqKqqagr8XbC1hIo=", + "lastModified": 1731424167, + "narHash": "sha256-nKKeRwq7mxcW8cBTmPKzSg0DR/inVrtuJudVM81GISU=", "owner": "nix-community", "repo": "dream2nix", - "rev": "51943fca6b95cb9649236bacf5d7c8d9af4c3bec", + "rev": "44d41411686bc798876bd6d9f36a4c1143138d85", "type": "github" }, "original": { @@ -119,11 +119,11 @@ "nixpkgs-stable": "nixpkgs-stable" }, "locked": { - "lastModified": 1730826798, - "narHash": "sha256-QE7sHcAIolvAMbHSWZQ5nB2R17C2R/9YB5Q6CR70Hug=", + "lastModified": 1731574827, + "narHash": "sha256-QneOtCpfBNkgJCs32Y8LaKDpontw7W9ATQxIW4qb6qc=", "owner": "nix-community", "repo": "emacs-overlay", - "rev": "1febd5c1ad7e798543c886756c598e0fb8d473fd", + "rev": "4639038b0f5e66e7d0f3d103b8e44ded3ab7e337", "type": "github" }, "original": { @@ -209,11 +209,11 @@ ] }, "locked": { - "lastModified": 1730504689, - "narHash": "sha256-hgmguH29K2fvs9szpq2r3pz2/8cJd2LPS+b4tfNFCwE=", + "lastModified": 1727826117, + "narHash": "sha256-K5ZLCyfO/Zj9mPFldf3iwS6oZStJcU4tSpiXTMYaaL0=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "506278e768c2a08bec68eb62932193e341f55c90", + "rev": "3d04084d54bedc3d6b8b736c70ef449225c361b1", "type": "github" }, "original": { @@ -340,11 +340,11 @@ "nixpkgs-stable": "nixpkgs-stable_2" }, "locked": { - "lastModified": 1730814269, - "narHash": "sha256-fWPHyhYE6xvMI1eGY3pwBTq85wcy1YXqdzTZF+06nOg=", + "lastModified": 1731363552, + "narHash": "sha256-vFta1uHnD29VUY4HJOO/D6p6rxyObnf+InnSMT4jlMU=", "owner": "cachix", "repo": "git-hooks.nix", - "rev": "d70155fdc00df4628446352fc58adc640cd705c2", + "rev": "cd1af27aa85026ac759d5d3fccf650abe7e1bbf0", "type": "github" }, "original": { @@ -464,11 +464,11 @@ ] }, "locked": { - "lastModified": 1730633670, - "narHash": "sha256-ZFJqIXpvVKvzOVFKWNRDyIyAo+GYdmEPaYi1bZB6uf0=", + "lastModified": 1731535640, + "narHash": "sha256-2EckCJn4wxran/TsRiCOFcmVpep2m9EBKl99NBh2GnM=", "owner": "nix-community", "repo": "home-manager", - "rev": "8f6ca7855d409aeebe2a582c6fd6b6a8d0bf5661", + "rev": "35b055009afd0107b69c286fca34d2ad98940d57", "type": "github" }, "original": { @@ -500,11 +500,11 @@ }, "impermanence": { "locked": { - "lastModified": 1730403150, - "narHash": "sha256-W1FH5aJ/GpRCOA7DXT/sJHFpa5r8sq2qAUncWwRZ3Gg=", + "lastModified": 1731242966, + "narHash": "sha256-B3C3JLbGw0FtLSWCjBxU961gLNv+BOOBC6WvstKLYMw=", "owner": "nix-community", "repo": "impermanence", - "rev": "0d09341beeaa2367bac5d718df1404bf2ce45e6f", + "rev": "3ed3f0eaae9fcc0a8331e77e9319c8a4abd8a71a", "type": "github" }, "original": { @@ -568,11 +568,11 @@ "treefmt-nix": "treefmt-nix" }, "locked": { - "lastModified": 1723579251, - "narHash": "sha256-xnHtfw0gRhV+2S9U7hQwvp2klTy1Iv7FlMMO0/WiMVc=", + "lastModified": 1731185443, + "narHash": "sha256-9qkRZFTgbMonlBaLqL+OW6iiHLWXuBJlThISMhwQuGg=", "ref": "refs/heads/main", - "rev": "42a160bce2fd9ffebc3809746bc80cc7208f9b08", - "revCount": 609, + "rev": "57ddb99e781d19704f8a84036f9890e6ca554c41", + "revCount": 613, "type": "git", "url": "https://git.lix.systems/lix-project/nix-eval-jobs" }, @@ -593,11 +593,11 @@ ] }, "locked": { - "lastModified": 1727752861, - "narHash": "sha256-jowmo2aEzrEpPSM96IWtajuogdJm7DjAWxFTEb7Ct0s=", + "lastModified": 1731185731, + "narHash": "sha256-RNaIu43b9PoXEhW4OqXUNZKY/jezQyCYWwdv1M0VjsA=", "ref": "refs/heads/main", - "rev": "fd186f535a4ac7ae35d98c1dd5d79f0a81b7976d", - "revCount": 116, + "rev": "691193879d96bdfd1e6ab5ebcca2fadc7604cf34", + "revCount": 117, "type": "git", "url": "https://git.lix.systems/lix-project/nixos-module" }, @@ -609,11 +609,11 @@ "mobile-nixos": { "flake": false, "locked": { - "lastModified": 1730307383, - "narHash": "sha256-EJYo2VPXVMGQbY+bI4Xav14fXXioBt3KICtXNI6i76o=", + "lastModified": 1730912712, + "narHash": "sha256-T5A9I6Tfh9zrv9sRWfu/ZKN6VkE670YQ6bjC5sbpTzk=", "owner": "NixOS", "repo": "mobile-nixos", - "rev": "0516be85630befa2c1e8042ac873342ce186b2f6", + "rev": "2268e358ed407d9c0a4499ae767d105eeaeec586", "type": "github" }, "original": { @@ -697,11 +697,11 @@ "nixpkgs": "nixpkgs_5" }, "locked": { - "lastModified": 1730779758, - "narHash": "sha256-5WI9AnsBwhLzVRnQm3Qn9oAbROnuLDQTpaXeyZCK8qw=", + "lastModified": 1731454423, + "narHash": "sha256-TtwvgFxUa0wyptLhQbKaixgNW1UXf3+TDqfX3Kp63oM=", "owner": "LnL7", "repo": "nix-darwin", - "rev": "0e3f3f017c14467085f15d42343a3aaaacd89bcb", + "rev": "6c71c49e2448e51ad830ed211024e6d0edc50116", "type": "github" }, "original": { @@ -720,11 +720,11 @@ "osx-kvm": "osx-kvm" }, "locked": { - "lastModified": 1727105240, - "narHash": "sha256-FEuqbcZ4TDUMwCpTA/E3J5L7pLD4U+zXPnZbmXSmaJo=", + "lastModified": 1731194612, + "narHash": "sha256-xOvzIdIFzy1LUgGLlOcimeHruZPLJpVdeEoHVOpH7sM=", "owner": "MatthewCroughan", "repo": "NixThePlanet", - "rev": "2f622af217807da78e44a5a15f620743dac57f46", + "rev": "ef5fad336a55fcbb0680ad21aa58812b2f826435", "type": "github" }, "original": { @@ -735,11 +735,11 @@ }, "nixosHardware": { "locked": { - "lastModified": 1730828750, - "narHash": "sha256-XrnZLkLiBYNlwV5gus/8DT7nncF1TS5la6Be7rdVOpI=", + "lastModified": 1731403644, + "narHash": "sha256-T9V7CTucjRZ4Qc6pUEV/kpgNGzQbHWfGcfK6JJLfUeI=", "owner": "NixOS", "repo": "nixos-hardware", - "rev": "2e78b1af8025108ecd6edaa3ab09695b8a4d3d55", + "rev": "f6581f1c3b137086e42a08a906bdada63045f991", "type": "github" }, "original": { @@ -828,11 +828,11 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1730741070, - "narHash": "sha256-edm8WG19kWozJ/GqyYx2VjW99EdhjKwbY3ZwdlPAAlo=", + "lastModified": 1731386116, + "narHash": "sha256-lKA770aUmjPHdTaJWnP3yQ9OI1TigenUqVC3wweqZuI=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "d063c1dd113c91ab27959ba540c0d9753409edf3", + "rev": "689fed12a013f56d4c4d3f612489634267d86529", "type": "github" }, "original": { @@ -892,11 +892,11 @@ }, "nixpkgs_3": { "locked": { - "lastModified": 1730531603, - "narHash": "sha256-Dqg6si5CqIzm87sp57j5nTaeBbWhHFaVyG7V6L8k3lY=", + "lastModified": 1731319897, + "narHash": "sha256-PbABj4tnbWFMfBp6OcUK5iGy1QY+/Z96ZcLpooIbuEI=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "7ffd9ae656aec493492b44d0ddfb28e79a1ea25d", + "rev": "dc460ec76cbff0e66e269457d7b728432263166c", "type": "github" }, "original": { @@ -953,11 +953,11 @@ }, "nixpkgs_7": { "locked": { - "lastModified": 1730531603, - "narHash": "sha256-Dqg6si5CqIzm87sp57j5nTaeBbWhHFaVyG7V6L8k3lY=", + "lastModified": 1731319897, + "narHash": "sha256-PbABj4tnbWFMfBp6OcUK5iGy1QY+/Z96ZcLpooIbuEI=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "7ffd9ae656aec493492b44d0ddfb28e79a1ea25d", + "rev": "dc460ec76cbff0e66e269457d7b728432263166c", "type": "github" }, "original": { @@ -1240,11 +1240,11 @@ ] }, "locked": { - "lastModified": 1730321837, - "narHash": "sha256-vK+a09qq19QNu2MlLcvN4qcRctJbqWkX7ahgPZ/+maI=", + "lastModified": 1729613947, + "narHash": "sha256-XGOvuIPW1XRfPgHtGYXd5MAmJzZtOuwlfKDgxX5KT3s=", "owner": "numtide", "repo": "treefmt-nix", - "rev": "746901bb8dba96d154b66492a29f5db0693dbfcc", + "rev": "aac86347fb5063960eccb19493e0cadcdb4205ca", "type": "github" }, "original": { From 2fcd6ed271954984fef28b7c99481c117c190191 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 15 Nov 2024 10:22:33 +0100 Subject: [PATCH 158/492] Re-enable `swaync` MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit It's not a VNC client 😖 --- hmModules/hyprland/default.nix | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/hmModules/hyprland/default.nix b/hmModules/hyprland/default.nix index 884d68b..5a86b29 100644 --- a/hmModules/hyprland/default.nix +++ b/hmModules/hyprland/default.nix @@ -23,9 +23,7 @@ in ../waybar ../swayidle ../gammastep - # ../wezterm - # ../wayvnc - # ../swaync + ../swaync ../foot ]; From fb18de26a0c62655cb919931d5590478bc3fecdd Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 15 Nov 2024 10:32:54 +0100 Subject: [PATCH 159/492] These Hyprland options don't exist anymore? --- hmModules/hyprland/hyprland.conf | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/hmModules/hyprland/hyprland.conf b/hmModules/hyprland/hyprland.conf index 1243b85..212b560 100644 --- a/hmModules/hyprland/hyprland.conf +++ b/hmModules/hyprland/hyprland.conf @@ -99,10 +99,10 @@ general { decoration { rounding = 8 - drop_shadow = true - shadow_range = 4 - shadow_render_power = 3 - col.shadow = rgba(a8cfee11) + # drop_shadow = true + # shadow_range = 4 + # shadow_render_power = 3 + # col.shadow = rgba(a8cfee11) } animations { From 442c3cec92578fb074ca05e618fafe820cc73e6b Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 15 Nov 2024 10:33:28 +0100 Subject: [PATCH 160/492] Remove kanshi --- hmModules/hyprland/default.nix | 27 --------------------------- 1 file changed, 27 deletions(-) diff --git a/hmModules/hyprland/default.nix b/hmModules/hyprland/default.nix index 5a86b29..977132a 100644 --- a/hmModules/hyprland/default.nix +++ b/hmModules/hyprland/default.nix @@ -66,33 +66,6 @@ in enable = true; }; - # services.kanshi = { - # enable = true; - # systemdTarget = "hyprland-session.target"; - # profiles = { - # undocked = { - # outputs = [ - # { - # status = "enable"; - # criteria = "eDP-1"; - # } - # ]; - # }; - # docked = { - # outputs = [ - # { - # status = "disable"; - # criteria = "eDP-1"; - # } - # { - # status = "enable"; - # criteria = "DP-1"; - # } - # ]; - # }; - # }; - # }; - home.file.".icons/catppuccin-mocha-sapphire" = { source = "${pkgs.catppuccin-cursors.mochaSapphire}/share/icons/catppuccin-mocha-sapphire-cursors"; recursive = true; From fa3a5e4ac42b1d095ea4a5ceb3ad60ecb55b572b Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 15 Nov 2024 11:58:56 +0100 Subject: [PATCH 161/492] Test attic --- .forgejo/workflows/build.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.forgejo/workflows/build.yaml b/.forgejo/workflows/build.yaml index 925cf06..f75f6df 100644 --- a/.forgejo/workflows/build.yaml +++ b/.forgejo/workflows/build.yaml @@ -7,5 +7,7 @@ jobs: steps: - uses: actions/checkout@v4 name: Checkout repository + - name: Attic login + run: attic login sisko http://10.100.0.1:8081 ${{secrets.ATTIC_SISKO_TOKEN}} - name: Build with nix - run: nix-fast-build --no-nom --systems "x86_64-linux aarch64-linux" + run: nix-fast-build --no-nom --skip-cached --systems "x86_64-linux aarch64-linux" --attic-cache "sisko" From 24201d0db61b54ab594216823c6a742919d65908 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 21 Nov 2024 10:09:26 +0100 Subject: [PATCH 162/492] Install `attic` on `sisko` --- hosts/default.nix | 2 + hosts/sisko/default.nix | 1 + modules/atticd/default.nix | 52 +++++++++++++++++++++++ secrets/secrets.nix | 5 +++ secrets/sisko-attic-environment-file.age | Bin 0 -> 5999 bytes 5 files changed, 60 insertions(+) create mode 100644 modules/atticd/default.nix create mode 100644 secrets/sisko-attic-environment-file.age diff --git a/hosts/default.nix b/hosts/default.nix index 5636017..f86454b 100644 --- a/hosts/default.nix +++ b/hosts/default.nix @@ -110,11 +110,13 @@ "cloudflare-dyndns-api-token" = { }; "restic-hetzner-password" = { }; "hass-ssh-key".owner = "hass"; + "sisko-attic-environment-file".owner = "atticd"; "autistici-password" = { # FIXME terrible, should create a third ad-hoc group owner = "grafana"; group = "forgejo"; }; + }; }; }; diff --git a/hosts/sisko/default.nix b/hosts/sisko/default.nix index ba45c12..969f4e4 100644 --- a/hosts/sisko/default.nix +++ b/hosts/sisko/default.nix @@ -30,6 +30,7 @@ "immich" "paperless" "syncthing" + "atticd" ] ++ [ ./disko.nix diff --git a/modules/atticd/default.nix b/modules/atticd/default.nix new file mode 100644 index 0000000..507ba59 --- /dev/null +++ b/modules/atticd/default.nix @@ -0,0 +1,52 @@ +{ config, lib, ... }: +{ + services.atticd = { + enable = true; + settings = { + listen = "0.0.0.0:8081"; + allowed-hosts = [ ]; # Allow all hosts + # api-endpoint = "https://cache.staging.mlabs.city/"; + soft-delete-caches = false; + require-proof-of-possession = true; + + database.url = "sqlite://${config.services.atticd.settings.storage.path}/server.db?mode=rwc"; + + storage = { + type = "local"; + path = "/mnt/hd/atticd"; + }; + + compression = { + level = 8; + type = "zstd"; + }; + + chunking = { + nar-size-threshold = 64 * 1024; # 64 KiB + min-size = 16 * 1024; # 16 KiB + avg-size = 64 * 1024; # 64 KiB + max-size = 256 * 1024; # 256 KiB + }; + }; + environmentFile = config.age.secrets.sisko-attic-environment-file.path; + }; + + systemd.services.atticd = { + serviceConfig = { + DynamicUser = lib.mkForce false; + }; + }; + + systemd.tmpfiles.rules = [ + "d config.services.atticd.settings.storage.path 770 atticd atticd" + ]; + + users = { + groups.atticd = { }; + users.atticd = { + group = "atticd"; + home = config.services.atticd.settings.storage.path; + isSystemUser = true; + }; + }; +} diff --git a/secrets/secrets.nix b/secrets/secrets.nix index e5e95f4..52a3217 100644 --- a/secrets/secrets.nix +++ b/secrets/secrets.nix @@ -161,6 +161,11 @@ with keys.users; ccr-gpg sisko ]; + "sisko-attic-environment-file.age".publicKeys = [ + ccr-ssh + ccr-gpg + sisko + ]; # WireGuard "picard-wireguard-private-key.age".publicKeys = [ diff --git a/secrets/sisko-attic-environment-file.age b/secrets/sisko-attic-environment-file.age new file mode 100644 index 0000000000000000000000000000000000000000..97274634192fa829b29883ed306a7d3b1f4fd675 GIT binary patch literal 5999 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 literal 0 HcmV?d00001 From 312d1801f0b6321eb24205f600e1d29566bf5936 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 21 Nov 2024 10:10:06 +0100 Subject: [PATCH 163/492] Add `attic-client` to the Forgejo runner --- modules/forgejo-runners/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/forgejo-runners/default.nix b/modules/forgejo-runners/default.nix index 1d88c82..e9b52b9 100644 --- a/modules/forgejo-runners/default.nix +++ b/modules/forgejo-runners/default.nix @@ -23,6 +23,7 @@ let nix-fast-build curl tea + attic-client ] }; do for bin in "$dir"/bin/*; do From 0610fc96e90e33cefb0e26327c5ceeb315006820 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 21 Nov 2024 10:10:38 +0100 Subject: [PATCH 164/492] Use `nix-fast-build` from flake (it supports native attic pushing) --- flake.lock | 73 ++++++++++++++++++++++++++++++++++++++--- flake.nix | 4 +++ modules/nix/default.nix | 6 ++++ 3 files changed, 79 insertions(+), 4 deletions(-) diff --git a/flake.lock b/flake.lock index e48dcf3..9457803 100644 --- a/flake.lock +++ b/flake.lock @@ -223,6 +223,27 @@ } }, "flake-parts_3": { + "inputs": { + "nixpkgs-lib": [ + "nix-fast-build", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1722555600, + "narHash": "sha256-XOQkdLafnb/p9ij77byFQjDf5m5QYl9b2REiVClC+x4=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "8471fe90ad337a8074e957b69ca4d0089218391d", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "flake-parts_4": { "inputs": { "nixpkgs-lib": "nixpkgs-lib_2" }, @@ -240,7 +261,7 @@ "type": "github" } }, - "flake-parts_4": { + "flake-parts_5": { "inputs": { "nixpkgs-lib": [ "nixThePlanet", @@ -398,7 +419,7 @@ }, "hercules-ci-effects": { "inputs": { - "flake-parts": "flake-parts_4", + "flake-parts": "flake-parts_5", "nixpkgs": "nixpkgs_6" }, "locked": { @@ -622,6 +643,28 @@ "type": "github" } }, + "nix-fast-build": { + "inputs": { + "flake-parts": "flake-parts_3", + "nixpkgs": [ + "nixpkgs" + ], + "treefmt-nix": "treefmt-nix_2" + }, + "locked": { + "lastModified": 1730278911, + "narHash": "sha256-CrbqsC+lEA3w6gLfpqfDMDEKoEta2sl4sbQK6Z/gXak=", + "owner": "Mic92", + "repo": "nix-fast-build", + "rev": "8e7c9d76979381441facb8888f21408312cf177a", + "type": "github" + }, + "original": { + "owner": "Mic92", + "repo": "nix-fast-build", + "type": "github" + } + }, "nix-formatter-pack": { "inputs": { "nixpkgs": [ @@ -712,7 +755,7 @@ }, "nixThePlanet": { "inputs": { - "flake-parts": "flake-parts_3", + "flake-parts": "flake-parts_4", "hercules-ci-effects": "hercules-ci-effects", "nixpkgs": [ "nixpkgs" @@ -1119,12 +1162,13 @@ "lix-eval-jobs": "lix-eval-jobs", "lix-module": "lix-module", "mobile-nixos": "mobile-nixos", + "nix-fast-build": "nix-fast-build", "nix-on-droid": "nix-on-droid", "nixDarwin": "nixDarwin", "nixThePlanet": "nixThePlanet", "nixosHardware": "nixosHardware", "nixpkgs": "nixpkgs_7", - "treefmt-nix": "treefmt-nix_2", + "treefmt-nix": "treefmt-nix_3", "vscode-server": "vscode-server" } }, @@ -1254,6 +1298,27 @@ } }, "treefmt-nix_2": { + "inputs": { + "nixpkgs": [ + "nix-fast-build", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1723808491, + "narHash": "sha256-rhis3qNuGmJmYC/okT7Dkc4M8CeUuRCSvW6kC2f3hBc=", + "owner": "numtide", + "repo": "treefmt-nix", + "rev": "1d07739554fdc4f8481068f1b11d6ab4c1a4167a", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "treefmt-nix", + "type": "github" + } + }, + "treefmt-nix_3": { "inputs": { "nixpkgs": [ "nixpkgs" diff --git a/flake.nix b/flake.nix index de2ff34..e42bff9 100644 --- a/flake.nix +++ b/flake.nix @@ -62,6 +62,10 @@ }; catppuccin.url = "github:catppuccin/nix"; emacs-overlay.url = "github:nix-community/emacs-overlay"; + nix-fast-build = { + url = "github:Mic92/nix-fast-build"; + inputs.nixpkgs.follows = "nixpkgs"; + }; }; outputs = diff --git a/modules/nix/default.nix b/modules/nix/default.nix index 84e36c4..a46e84e 100644 --- a/modules/nix/default.nix +++ b/modules/nix/default.nix @@ -2,17 +2,23 @@ config, lib, fleetFlake, + pkgs, ... }: { nixpkgs.overlays = [ (final: _: { + nix-fast-build = fleetFlake.inputs.nix-fast-build.packages.${final.system}.nix-fast-build // { + nix = final.nix; + }; nix-eval-job = fleetFlake.inputs.lix-eval-jobs.packages.${final.system}.nix-eval-jobs // { nix = final.nix; }; }) ]; + environment.systemPackages = [ pkgs.nix-fast-build ]; + nix = { optimise.automatic = true; From 0fc04a3b18896cdce9e9d3dd1b22bb7e3a6cd017 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 21 Nov 2024 10:11:40 +0100 Subject: [PATCH 165/492] Clean `home-assistant` configuration --- modules/home-assistant/default.nix | 21 --------------------- 1 file changed, 21 deletions(-) diff --git a/modules/home-assistant/default.nix b/modules/home-assistant/default.nix index cebc663..9cde4b4 100644 --- a/modules/home-assistant/default.nix +++ b/modules/home-assistant/default.nix @@ -70,15 +70,6 @@ in "::1" ]; }; - # ffmpeg = {}; - # camera = [ - # { - # name = "EyeToy"; - # platform = "ffmpeg"; - # input = "/dev/video1"; - # extra_arguments = "-vcodec h264"; - # } - # ]; homeassistant = { unit_system = "metric"; time_zone = "Europe/Rome"; @@ -87,17 +78,6 @@ in internal_url = "http://rock5b.fleet:8123"; }; logger.default = "WARNING"; - # backup = {}; - # media_player = [{ - # platform = "webostv"; - # host = "10.1.1.213"; - # name = "TV"; - # timeout = "5"; - # turn_on_action = { - # service = "wake_on_lan.send_magic_packet"; - # data.mac = "20:28:bc:74:14:c2"; - # }; - # }]; wake_on_lan = { }; switch = [ { @@ -109,7 +89,6 @@ in } ]; shell_command.turn_off_picard = ''${pkgs.openssh}/bin/ssh -i /var/lib/hass/.ssh/id_ed25519 -o StrictHostKeyChecking=no hass@picard.fleet "exec sudo \$(readlink \$(which systemctl)) poweroff"''; - # shell_command.turn_off_picard = ''whoami''; prometheus = { namespace = "hass"; }; From f4364c6398d5815c99ecd4942e5716b4c69396e7 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 21 Nov 2024 10:14:58 +0100 Subject: [PATCH 166/492] Enable `webdav` in LAN for Kodi on the TV --- hosts/sisko/default.nix | 2 +- modules/sisko-nfs/default.nix | 20 ----------------- modules/sisko-share/default.nix | 39 +++++++++++++++++++++++++++++++++ 3 files changed, 40 insertions(+), 21 deletions(-) delete mode 100644 modules/sisko-nfs/default.nix create mode 100644 modules/sisko-share/default.nix diff --git a/hosts/sisko/default.nix b/hosts/sisko/default.nix index 969f4e4..65c5e0b 100644 --- a/hosts/sisko/default.nix +++ b/hosts/sisko/default.nix @@ -18,7 +18,7 @@ "sisko-proxy" "invidious" "searx" - "sisko-nfs" + "sisko-share" "forgejo" "prometheus" "grafana" diff --git a/modules/sisko-nfs/default.nix b/modules/sisko-nfs/default.nix deleted file mode 100644 index 7e9b82b..0000000 --- a/modules/sisko-nfs/default.nix +++ /dev/null @@ -1,20 +0,0 @@ -{ - systemd.tmpfiles.rules = [ - "d /export 770 nobody nogroup" - ]; - - fileSystems."/export/hd" = { - device = "/mnt/hd"; - options = [ "bind" ]; - }; - - services.nfs.server = { - enable = true; - exports = '' - /export 10.100.0.1/24(rw,fsid=0,no_subtree_check) - /export/hd 10.100.0.1/24(rw,nohide,insecure,no_subtree_check,no_root_squash) - ''; - }; - - networking.firewall.allowedTCPPorts = [ 2049 ]; -} diff --git a/modules/sisko-share/default.nix b/modules/sisko-share/default.nix new file mode 100644 index 0000000..41ea29b --- /dev/null +++ b/modules/sisko-share/default.nix @@ -0,0 +1,39 @@ +{ + systemd.tmpfiles.rules = [ + "d /export 770 nobody nogroup" + ]; + + fileSystems."/export/hd" = { + device = "/mnt/hd"; + options = [ "bind" ]; + }; + + services.nfs.server = { + enable = true; + exports = '' + /export 10.100.0.1/24(rw,fsid=0,no_subtree_check) + /export/hd 10.100.0.1/24(rw,nohide,insecure,no_subtree_check,no_root_squash) + ''; + }; + + services.webdav = { + enable = true; + + settings = { + address = "10.1.1.2"; # accessible only in LAN, used by Kodi installed on the TV + port = 9999; + scope = "/mnt/hd/torrent"; + modify = false; + auth = false; # TODO should we enable authentication? It's only reachable in LAN + debug = true; + users = [ ]; + }; + }; + + users.users.webdav.extraGroups = [ "transmission" ]; + + networking.firewall.allowedTCPPorts = [ + 2049 + 9999 + ]; +} From 4c3b506937c07752c066529db3c60906682467b4 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 22 Nov 2024 16:44:00 +0100 Subject: [PATCH 167/492] Test CI --- .forgejo/workflows/build.yaml | 5 ++- packages/forgejo-report-checks/default.nix | 39 +++++++++++++++++++ .../forgejo-report-checks.py | 30 ++++++++++++++ 3 files changed, 73 insertions(+), 1 deletion(-) create mode 100644 packages/forgejo-report-checks/default.nix create mode 100644 packages/forgejo-report-checks/forgejo-report-checks.py diff --git a/.forgejo/workflows/build.yaml b/.forgejo/workflows/build.yaml index f75f6df..df040c1 100644 --- a/.forgejo/workflows/build.yaml +++ b/.forgejo/workflows/build.yaml @@ -10,4 +10,7 @@ jobs: - name: Attic login run: attic login sisko http://10.100.0.1:8081 ${{secrets.ATTIC_SISKO_TOKEN}} - name: Build with nix - run: nix-fast-build --no-nom --skip-cached --systems "x86_64-linux aarch64-linux" --attic-cache "sisko" + run: nix-fast-build --no-nom --skip-cached --systems "x86_64-linux aarch64-linux" --attic-cache "sisko" --result-file result.json || true + - name: Report checks + run: report-checks + diff --git a/packages/forgejo-report-checks/default.nix b/packages/forgejo-report-checks/default.nix new file mode 100644 index 0000000..038d2ca --- /dev/null +++ b/packages/forgejo-report-checks/default.nix @@ -0,0 +1,39 @@ +{ + writers, + python3Packages, + fetchFromGitea, + ... +}: +let + pyforgejo = python3Packages.buildPythonPackage rec { + pname = "pyforgejo"; + version = "1.0.4"; + + pyproject = true; + build-system = [ python3Packages.poetry-core ]; + + src = fetchFromGitea { + domain = "codeberg.org"; + owner = "harabat"; + repo = "pyforgejo"; + rev = "3dba949bea41140a47e4dd422a84a6da9fd394e9"; + hash = "sha256-qVXlfhKrc7yBnRvL/65bLZFW9fDjC+8FNz7yA6iMPp4="; + }; + + pythonRelaxDeps = [ + "httpx" + ]; + + dependencies = with python3Packages; [ + attrs + httpx + python-dateutil + ]; + + pythonImportsCheck = [ "pyforgejo" ]; + }; +in +writers.writePython3Bin "report-checks" { + libraries = [ pyforgejo ]; + flakeIgnore = [ "E501" ]; +} (builtins.readFile ./forgejo-report-checks.py) diff --git a/packages/forgejo-report-checks/forgejo-report-checks.py b/packages/forgejo-report-checks/forgejo-report-checks.py new file mode 100644 index 0000000..7ea3f2c --- /dev/null +++ b/packages/forgejo-report-checks/forgejo-report-checks.py @@ -0,0 +1,30 @@ +from pyforgejo import AuthenticatedClient +from pyforgejo.api.repository import repo_create_status +from pyforgejo.models.create_status_option import CreateStatusOption +import json +from os import environ + +client = AuthenticatedClient(base_url=environ["GITHUB_API_URL"], token=environ["GITHUB_TOKEN"]) + +print("hello") + +with open('result.json', 'r') as file: + data = json.load(file) + +for result in data['results']: + attr = result['attr'] + success = result['success'] + type = result['type'] + print(attr) + response = repo_create_status.sync_detailed( + owner="aciceri", + repo="nixfleet", + sha=environ["GITHUB_SHA"], + client=client, + body=CreateStatusOption( + context=type, + description=attr, + target_url="https://google.com", + state="success" if success else "failure" # ma be pending,success,failure,error_message + ) + ) From 7a2dbc4a419d2d82cfcbe239a854b7544352f254 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Sun, 24 Nov 2024 14:28:29 +0100 Subject: [PATCH 168/492] `kirk` mirrors screen --- hmModules/hyprland/default.nix | 6 +++++- hmModules/hyprland/hyprland.conf | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/hmModules/hyprland/default.nix b/hmModules/hyprland/default.nix index 977132a..43d5a84 100644 --- a/hmModules/hyprland/default.nix +++ b/hmModules/hyprland/default.nix @@ -1,4 +1,8 @@ -{ config, pkgs, ... }: +{ + config, + pkgs, + ... +}: let screenshotScript = pkgs.writeShellScriptBin "screenshot.sh" '' filename="$HOME/shots/$(date --iso-8601=seconds).png" diff --git a/hmModules/hyprland/hyprland.conf b/hmModules/hyprland/hyprland.conf index 212b560..0e250d6 100644 --- a/hmModules/hyprland/hyprland.conf +++ b/hmModules/hyprland/hyprland.conf @@ -18,7 +18,7 @@ input { } monitor = HDMI-A-1, 2560x1440, 0x0, 1 # picard -monitor = eDP-1, 1920x1080, 0x0, 1 # kirk +monitor = eDP-1, 1920x1080, 0x0, 1, mirror, DP-1 # kirk bindl=,switch:off:Lid Switch,exec,switch-monitor.sh open bindl=,switch:on:Lid Switch,exec,switch-monitor.sh close From 389eb3d497556f8b3f56a6bec861c726420975f0 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Mon, 25 Nov 2024 10:38:44 +0100 Subject: [PATCH 169/492] Remove `--skip-cached` --- .forgejo/workflows/build.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.forgejo/workflows/build.yaml b/.forgejo/workflows/build.yaml index df040c1..75ec44b 100644 --- a/.forgejo/workflows/build.yaml +++ b/.forgejo/workflows/build.yaml @@ -10,7 +10,7 @@ jobs: - name: Attic login run: attic login sisko http://10.100.0.1:8081 ${{secrets.ATTIC_SISKO_TOKEN}} - name: Build with nix - run: nix-fast-build --no-nom --skip-cached --systems "x86_64-linux aarch64-linux" --attic-cache "sisko" --result-file result.json || true + run: nix-fast-build --no-nom --systems "x86_64-linux aarch64-linux" --attic-cache "sisko" --result-file result.json || true - name: Report checks run: report-checks From d6d6498ee93ad074855bac8e5d6de2509e078d1f Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 29 Nov 2024 11:12:57 +0100 Subject: [PATCH 170/492] Enable pulsar on Emacs --- hmModules/emacs/init.el | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/hmModules/emacs/init.el b/hmModules/emacs/init.el index d69b69c..82e92b7 100644 --- a/hmModules/emacs/init.el +++ b/hmModules/emacs/init.el @@ -123,9 +123,20 @@ (use-package rainbow-delimiters :hook (prog-mode . rainbow-delimiters-mode)) +(use-package pulsar + :after (consult imenu) + :config + (pulsar-global-mode) + ;; TODO use :hook (I've tried but it didn't work, why?) + (add-hook 'consult-after-jump-hook #'pulsar-recenter-top) + (add-hook 'consult-after-jump-hook #'pulsar-reveal-entry) + (add-hook 'imenu-after-jump-hook #'pulsar-recenter-top) + (add-hook 'imenu-after-jump-hook #'pulsar-reveal-entry) + (add-hook 'next-error-hook #'pulsar-pulse-line) + ) + (use-package clipetty :delight - :ensure t :hook (after-init . global-clipetty-mode)) (use-package nerd-icons) From 1bbd87d36eb40b7310f62428417e9cfd603cdbdc Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 29 Nov 2024 11:13:44 +0100 Subject: [PATCH 171/492] Try consult-focus-lines --- hmModules/emacs/init.el | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/hmModules/emacs/init.el b/hmModules/emacs/init.el index 82e92b7..f192117 100644 --- a/hmModules/emacs/init.el +++ b/hmModules/emacs/init.el @@ -388,8 +388,9 @@ ("C-c f f" . consult-find) ("C-c F" . consult-ripgrep) ("C-c f" . consult-find) - ("C-c l" . consult-line) - ("C-c m" . wconsult-mark) + ("C-c l" . consult-line) + ("C-c L" . consult-focus-lines) + ("C-c m" . consult-mark) ("C-c o o" . consult-outline) ("C-c e" . consult-flymake)) :custom From b676b70273fe40c50375e2e74f0f055f1d84936d Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 29 Nov 2024 11:14:17 +0100 Subject: [PATCH 172/492] Try vundo --- hmModules/emacs/init.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hmModules/emacs/init.el b/hmModules/emacs/init.el index f192117..aaa2856 100644 --- a/hmModules/emacs/init.el +++ b/hmModules/emacs/init.el @@ -274,7 +274,7 @@ '("s" . meow-kill) '("t" . meow-till) '("u" . meow-undo) - '("U" . meow-undo-in-selection) + '("U" . vundo) '("/" . meow-visit) '("v" . meow-visit) '("w" . meow-mark-word) From 5938a873b306036ca78c888dcc2736ec8592a900 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 29 Nov 2024 11:14:28 +0100 Subject: [PATCH 173/492] Try orderless partial-completion for files --- hmModules/emacs/init.el | 2 ++ 1 file changed, 2 insertions(+) diff --git a/hmModules/emacs/init.el b/hmModules/emacs/init.el index aaa2856..f3bc5fa 100644 --- a/hmModules/emacs/init.el +++ b/hmModules/emacs/init.el @@ -400,6 +400,8 @@ (use-package orderless :custom (completion-styles '(orderless))) + (completion-styles '(orderless basic)) + (completion-category-overrides '((file (styles basic partial-completion))))) (use-package embark :bind (("C-'" . embark-act) From ff2c16e55eb8ec4ca1facfa221a5fe186198dbbb Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 29 Nov 2024 11:14:45 +0100 Subject: [PATCH 174/492] Enable aggressive-indent for lisps --- hmModules/emacs/init.el | 3 +++ 1 file changed, 3 insertions(+) diff --git a/hmModules/emacs/init.el b/hmModules/emacs/init.el index f3bc5fa..c60fe35 100644 --- a/hmModules/emacs/init.el +++ b/hmModules/emacs/init.el @@ -564,6 +564,9 @@ :hook ((lisp-mode . enable-paredit-mode) (emacs-lisp-mode . enable-paredit-mode))) +(use-package aggressive-indent + :hook ((lisp-mode . aggressive-indent-mode) + (emacs-lisp-mode . aggressive-indent-mode))) (use-package eldoc :delight) From 6efc109f1cd775979037795d24daa3b9d3dbe3dc Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 29 Nov 2024 11:16:06 +0100 Subject: [PATCH 175/492] Format --- hmModules/emacs/init.el | 197 ++++++++++++++++++++-------------------- 1 file changed, 99 insertions(+), 98 deletions(-) diff --git a/hmModules/emacs/init.el b/hmModules/emacs/init.el index c60fe35..e1bd97a 100644 --- a/hmModules/emacs/init.el +++ b/hmModules/emacs/init.el @@ -33,8 +33,8 @@ (use-package consult-eglot :after (consult eglot embark) :config - (require 'consult-eglot-embark) - (consult-eglot-embark-mode) + (require 'consult-eglot-embark) + (consult-eglot-embark-mode) ) (use-package emacs @@ -156,8 +156,8 @@ (treemacs-load-theme "nerd-icons")) (use-package nerd-icons-dired - :hook - (dired-mode . nerd-icons-dired-mode)) + :hook + (dired-mode . nerd-icons-dired-mode)) (use-package indent-bars :config @@ -169,7 +169,7 @@ (indent-bars-color-by-depth '(:regexp "outline-\\([0-9]+\\)" :blend 0.4)) (indent-bars-no-stipple-char (string-to-char "┋")) (indent-bars-prefer-character 't) ;; so it works also in terminal -) + ) (use-package diredfl :config (diredfl-global-mode)) @@ -321,27 +321,27 @@ (call-interactively 'ccr/h-resize)) (t (push key unread-command-events)))) :bind (("C-c w k" . windmove-up) - ("C-c w l" . windmove-right) - ("C-c w j" . windmove-down) - ("C-c w h" . windmove-left) - ("M-k" . windmove-up) - ("M-l" . windmove-right) - ("M-j" . windmove-down) - ("M-h" . windmove-left) - ("C-c w " . windmove-up) - ("C-c w " . windmove-right) - ("C-c w " . windmove-down) - ("C-c w " . windmove-left) - ("C-c w q" . delete-window) - ("C-c w K" . windmove-delete-up) - ("C-c w L" . windmove-delete-right) - ("C-c w J" . windmove-delete-down) - ("C-c w H" . windmove-delete-left) - ("C-c w x" . kill-buffer-and-window) - ("C-c w v" . split-window-right) - ("C-c w s" . split-window-below) - ("C-c w V" . ccr/v-resize) - ("C-c w S" . ccr/h-resize))) + ("C-c w l" . windmove-right) + ("C-c w j" . windmove-down) + ("C-c w h" . windmove-left) + ("M-k" . windmove-up) + ("M-l" . windmove-right) + ("M-j" . windmove-down) + ("M-h" . windmove-left) + ("C-c w " . windmove-up) + ("C-c w " . windmove-right) + ("C-c w " . windmove-down) + ("C-c w " . windmove-left) + ("C-c w q" . delete-window) + ("C-c w K" . windmove-delete-up) + ("C-c w L" . windmove-delete-right) + ("C-c w J" . windmove-delete-down) + ("C-c w H" . windmove-delete-left) + ("C-c w x" . kill-buffer-and-window) + ("C-c w v" . split-window-right) + ("C-c w s" . split-window-below) + ("C-c w V" . ccr/v-resize) + ("C-c w S" . ccr/h-resize))) (use-package vertico :custom @@ -352,8 +352,8 @@ (vertico-cycle t) (vertico-mode t) :bind (:map vertico-map - (("DEL" . vertico-directory-delete-char) - ("C-DEL" . vertico-directory-delete-word)))) + (("DEL" . vertico-directory-delete-char) + ("C-DEL" . vertico-directory-delete-word)))) ;; (use-package vertico-posframe ;; :after vertico @@ -381,25 +381,24 @@ ([remap goto-line] . consult-goto-line) ([remazp imenu] . consult-imenu) ([remap project-switch-to-buffer] . consult-project-buffer) - ("C-c b b" . consult-project-buffer) - ("C-c b B" . consult-buffer) - ("C-c g l" . consult-goto-line) - ("C-c b i" . consult-imenu) - ("C-c f f" . consult-find) - ("C-c F" . consult-ripgrep) - ("C-c f" . consult-find) - ("C-c l" . consult-line) - ("C-c L" . consult-focus-lines) - ("C-c m" . consult-mark) - ("C-c o o" . consult-outline) - ("C-c e" . consult-flymake)) + ("C-c b b" . consult-project-buffer) + ("C-c b B" . consult-buffer) + ("C-c g l" . consult-goto-line) + ("C-c b i" . consult-imenu) + ("C-c f f" . consult-find) + ("C-c F" . consult-ripgrep) + ("C-c f" . consult-find) + ("C-c l" . consult-line) + ("C-c L" . consult-focus-lines) + ("C-c m" . consult-mark) + ("C-c o o" . consult-outline) + ("C-c e" . consult-flymake)) :custom (xref-show-xrefs-function #'consult-xref) (xref-show-definitions-function #'consult-xref)) (use-package orderless :custom - (completion-styles '(orderless))) (completion-styles '(orderless basic)) (completion-category-overrides '((file (styles basic partial-completion))))) @@ -417,9 +416,9 @@ (tab-always-indent 'complete) (kind-icon-default-face 'corfu-default) :bind (:map corfu-map - (("M-d" . corfu-doc-toggle) - ("M-l" . corfu-show-location) - ("SPC" . corfu-insert-separator))) + (("M-d" . corfu-doc-toggle) + ("M-l" . corfu-show-location) + ("SPC" . corfu-insert-separator))) :init (global-corfu-mode)) @@ -487,7 +486,7 @@ :feature 'function :override t `((formal) @font-lock-type-face) - + :language 'nix :feature 'function `((attrpath) @font-lock-function-name-face) @@ -509,8 +508,8 @@ (use-package typescript-ts-mode :hook ((typescript-ts-mode . (lambda () - (require 'eglot) - (eglot-ensure)))) + (require 'eglot) + (eglot-ensure)))) :mode "\\.ts\\'") (use-package haskell-ts-mode @@ -567,6 +566,7 @@ (use-package aggressive-indent :hook ((lisp-mode . aggressive-indent-mode) (emacs-lisp-mode . aggressive-indent-mode))) + (use-package eldoc :delight) @@ -577,10 +577,10 @@ (eldoc-box-lighter "ElBox") :bind (("C-c h" . eldoc-box-help-at-point))) - (use-package diff-hl - :init - (global-diff-hl-mode 1) - (diff-hl-margin-mode 1)) +(use-package diff-hl + :init + (global-diff-hl-mode 1) + (diff-hl-margin-mode 1)) (use-package envrc :config @@ -612,7 +612,7 @@ (use-package eshell :init (require 'eshell) ;; this slows down Emacs startup but it's needed when starting eshell with - ;; emacsclient --eval before opening another eshell buffer directly from inside Emacs + ;; emacsclient --eval before opening another eshell buffer directly from inside Emacs (eat-eshell-mode) (eat-eshell-visual-command-mode) :custom ((eshell-prefer-lisp-functions t) @@ -669,18 +669,19 @@ (use-package popper :custom - (popper-reference-buffers '("\*Messages\*" - "Output\*$" - "\\*Async Shell Command\\*" - (completion-list-mode . hide) - help-mode - compilation-mode - "^\\*Nix-REPL*\\*$" nix-repl-mode ;eshell as a popup - "^\\*.+-eshell.*\\*$" eshell-mode ;eshell as a popup - "^\\*shell.*\\*$" shell-mode ;shell as a popup - "^\\*term.*\\*$" term-mode ;term as a popup - "^\\*eat.*\\*$" eat-mode ;eat as a popup - )) + (popper-reference-buffers + '("\*Messages\*" + "Output\*$" + "\\*Async Shell Command\\*" + (completion-list-mode . hide) + help-mode + compilation-mode + "^\\*Nix-REPL*\\*$" nix-repl-mode + "^\\*.+-eshell.*\\*$" eshell-mode + "^\\*shell.*\\*$" shell-mode + "^\\*term.*\\*$" term-mode + "^\\*eat.*\\*$" eat-mode + )) (popper-window-height 0.33) (popper-echo-lines 1) (popper-mode-line nil) @@ -768,18 +769,18 @@ This is meant to be an helper to be called from the window manager." ;; FIXME the following doesn't work when using the daemon, it should be executed only ;; one time after the first frame is created :hook (server-after-make-frame . (lambda () - (set-face-font 'variable-pitch "Dejavu Serif-14") - (set-face-font 'fixed-pitch "Iosevka Comfy-14") - (set-face-font 'org-table "Iosevka Comfy-14") - (set-face-font 'org-meta-line "Iosevka Comfy-14") - (set-face-font 'org-drawer "Iosevka Comfy-14") - (set-face-font 'org-special-keyword "Iosevka Comfy-14") - (set-face-font 'org-property-value "Iosevka Comfy-14") - (set-face-font 'org-block "Iosevka Comfy-14") - (set-face-font 'org-modern-tag "Iosevka Comfy-14") - (set-face-font 'org-modern-date-active "Iosevka Comfy-14") - (set-face-font 'org-modern-date-inactive "Iosevka Comfy-14"))) -) + (set-face-font 'variable-pitch "Dejavu Serif-14") + (set-face-font 'fixed-pitch "Iosevka Comfy-14") + (set-face-font 'org-table "Iosevka Comfy-14") + (set-face-font 'org-meta-line "Iosevka Comfy-14") + (set-face-font 'org-drawer "Iosevka Comfy-14") + (set-face-font 'org-special-keyword "Iosevka Comfy-14") + (set-face-font 'org-property-value "Iosevka Comfy-14") + (set-face-font 'org-block "Iosevka Comfy-14") + (set-face-font 'org-modern-tag "Iosevka Comfy-14") + (set-face-font 'org-modern-date-active "Iosevka Comfy-14") + (set-face-font 'org-modern-date-inactive "Iosevka Comfy-14"))) + ) (use-package org-roam :custom @@ -812,23 +813,23 @@ This is meant to be an helper to be called from the window manager." (string-to-number (cdr (assoc "SPENT" (org-roam-node-properties node))))) (defun org-roam-node-date (node) "Return the org datestring when a node was created (obtained from the filename)" - (format "<%s>" (file-name-sans-extension (file-name-nondirectory (org-roam-node-file node))))) + (format "<%s>" (file-name-sans-extension (file-name-nondirectory (org-roam-node-file node))))) (org-roam-ql-defpred - 'date-range - "Check if node was created in given time range" - #'org-roam-node-date - #'(lambda (node-date start-date end-date) - (let ((node-date (condition-case nil - ;; if the entry is not from the journal (i.e. the filename is not something like "2024-10-10.org") - ;; then it's always discarded (the epoch time is given to it) - (encode-time (org-parse-time-string node-date)) - (error (encode-time (org-parse-time-string "<1970-01-01>"))))) - (start-date (encode-time (org-parse-time-string start-date))) - (end-date (encode-time (org-parse-time-string end-date)))) - (and (time-less-p start-date node-date) - (time-less-p node-date end-date))) - )) + 'date-range + "Check if node was created in given time range" + #'org-roam-node-date + #'(lambda (node-date start-date end-date) + (let ((node-date (condition-case nil + ;; if the entry is not from the journal (i.e. the filename is not something like "2024-10-10.org") + ;; then it's always discarded (the epoch time is given to it) + (encode-time (org-parse-time-string node-date)) + (error (encode-time (org-parse-time-string "<1970-01-01>"))))) + (start-date (encode-time (org-parse-time-string start-date))) + (end-date (encode-time (org-parse-time-string end-date)))) + (and (time-less-p start-date node-date) + (time-less-p node-date end-date))) + )) (defun ccr/org-roam-spent-hours (client &optional date-start date-end) "Return the total spent hours on something (usually a client)" @@ -868,13 +869,13 @@ This is meant to be an helper to be called from the window manager." ("C-c n s" . consult-org-roam-search)) (use-package org-roam-ui - :after org-roam - :hook (after-init . org-roam-ui-mode) ;; don't care about startup time since I'm using Emacs daemonized - :config - (setq org-roam-ui-sync-theme t - org-roam-ui-follow t - org-roam-ui-update-on-save t - org-roam-ui-open-on-start nil)) + :after org-roam + :hook (after-init . org-roam-ui-mode) ;; don't care about startup time since I'm using Emacs daemonized + :config + (setq org-roam-ui-sync-theme t + org-roam-ui-follow t + org-roam-ui-update-on-save t + org-roam-ui-open-on-start nil)) (use-package gptel :custom From da236805f58c4b57a10cf282033336934630934b Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 29 Nov 2024 11:17:35 +0100 Subject: [PATCH 176/492] Add chirp home-manager module --- hmModules/chirp/default.nix | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 hmModules/chirp/default.nix diff --git a/hmModules/chirp/default.nix b/hmModules/chirp/default.nix new file mode 100644 index 0000000..7353aee --- /dev/null +++ b/hmModules/chirp/default.nix @@ -0,0 +1,8 @@ +{ pkgs, ... }: +let +in +# nixpkgs = builtins.getFlake "github:NixOS/nixpkgs/932fc16b263f26803d3960e4400bc13dde84a972"; +# chirp = nixpkgs.legacyPackages.${pkgs.system}.chirp; +{ + home.packages = [ pkgs.chirp ]; +} From a121569f84ac91d380924b42fb66a010b72c6b49 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 29 Nov 2024 11:17:45 +0100 Subject: [PATCH 177/492] Do not use gpg for ssh keys anymore --- hmModules/gpg/default.nix | 1 - hosts/janeway/default.nix | 1 - lib/default.nix | 1 - modules/ssh-initrd/default.nix | 1 - secrets/secrets.nix | 58 +++++++++++++++------------------- 5 files changed, 26 insertions(+), 36 deletions(-) diff --git a/hmModules/gpg/default.nix b/hmModules/gpg/default.nix index 469c27a..d3aa919 100644 --- a/hmModules/gpg/default.nix +++ b/hmModules/gpg/default.nix @@ -3,7 +3,6 @@ services.gpg-agent = { enable = true; enableSshSupport = true; - sshKeys = [ "CE2FD0D9BECBD8876811714925066CC257413416" ]; extraConfig = let pinentryRofi = pkgs.writeShellApplication { diff --git a/hosts/janeway/default.nix b/hosts/janeway/default.nix index 150e4e0..59733f6 100644 --- a/hosts/janeway/default.nix +++ b/hosts/janeway/default.nix @@ -46,7 +46,6 @@ in $DRY_RUN_CMD echo ${hosts.sisko} >> "${config.user.home}/.ssh/authorized_keys" $DRY_RUN_CMD echo ${hosts.kirk} >> "${config.user.home}/.ssh/authorized_keys" $DRY_RUN_CMD echo ${users.ccr-ssh} >> "${config.user.home}/.ssh/authorized_keys" - $DRY_RUN_CMD echo ${users.ccr-gpg} >> "${config.user.home}/.ssh/authorized_keys" if [[ ! -d "${sshdDirectory}" ]]; then $DRY_RUN_CMD rm $VERBOSE_ARG --recursive --force "${sshdTmpDirectory}" diff --git a/lib/default.nix b/lib/default.nix index 7b98ca0..a923f7d 100644 --- a/lib/default.nix +++ b/lib/default.nix @@ -1,7 +1,6 @@ { keys = { users = { - ccr-gpg = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC5cEUx25pnZiH3eBrE2xNbJ92gJiKSznDUNRzcEL4ti6FlJm+75p4q0hgdqHwStR8+uCWBL6viVFCGutOVMFE5MX1Oc3A8fJdR6H9Rrwvk/1UQzqzc9tWxw1qPLKz+fnPDomjOvNofghCWQRwX3Xf1HnIqvRwELpNbR9i+/cHkDGzLJxkstbt4gol8ywMPkw02QdKk8s5MEd1vawxc+7Chs0JPW57RDqDYFErYys52JLeAViCBB9bofF+KT42LuRXKSjWlvCV9kR5TL49vUeBgzMQWMh++WQdN4m9lpqFqYyc75I49/E0HGf8LChDSS+hvRnb5MbtnVGjEA4WDHyldmJCvUNob5CUo4FjoSPRi+S/J3Ads8D4JVwaJOJEVqmMKEhiQ0Hzk4hwe3eV/VumlZj4U/QjaCrqqi4TW/iP0gNRfzcfiM+G/z5R7w1NMUpTX7oilyKjMQmGnXB857D3SSptS7dwh5OiKhVmrQMRCduooUsj236abqLU28K//RnxhOgh8kDGgoUHApnTiMZNKhgLiR42lKrubNcW1tAAqoNyFLMwwXeMLjh0iP1b5y8ntfNPNIcGb7vcwpS24z/aIjW7rQ4J7x5EBphHGhys6ne+irdhOM8c7kFr+c8+Q2oU0YAtFuMYztAFOHm1e20X00Zvys2nuee+hT9F1NungAQ== andrea.ciceri@autistici.org"; ccr-ssh = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCzCmDCtlGscpesHuoiruVWD2IjYEFtaIl9Y2JZGiOAyf3V17KPx0MikcknfmxSHi399SxppiaXQHxo/1wjGxXkXNTTv6h1fBuqwhJE6C8+ZSV+gal81vEnXX+/9w2FQqtVgnG2/mO7oJ0e3FY+6kFpOsGEhYexoGt/UxIpAZoqIN+CWNhJIASUkneaZWtgwiL8Afb59kJQ2E7WbBu+PjYZ/s5lhPobhlkz6s8rkhItvYdiSHT0DPDKvp1oEbxsxd4E4cjJFbahyS8b089NJd9gF5gs0b74H/2lUUymnl63cV37Mp4iXB4rtE69MbjqsGEBKTPumLualmc8pOGBHqWIdhAqGdZQeBajcb6VK0E3hcU0wBB+GJgm7KUzlAHGdC3azY0KlHMrLaZN0pBrgCVR6zBNWtZz2B2qMBZ8Cw+K4vut8GuspdXZscID10U578GxQvJAB9CdxNUtrzSmKX2UtZPB1udWjjIAlejzba4MG73uXgQEdv0NcuHNwaLuCWxTUT5QQF18IwlJ23Mg8aPK8ojUW5A+kGHAu9wtgZVcX1nS5cmYKSgLzcP1LA1l9fTJ1vqBSuy38GTdUzfzz7AbnkRfGPj2ALDgyx17Rc5ommjc1k0gFoeIqiLaxEs5FzDcRyo7YvZXPsGeIqNCYwQWw3+U+yUEJby8bxGb2d/6YQ== andrea.ciceri@autistici.org"; oneplus8t = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIO8da1Mf11vXFF0kVDgxocVoGwpHHMEs9emS9T+v8hLb oneplus8t"; hercules-ci-agent = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGPupm00BiveTIYF6CNwuMijF5VvEaPDMjvt+vMlAy+N hercules-ci-agent"; diff --git a/modules/ssh-initrd/default.nix b/modules/ssh-initrd/default.nix index a67e1f3..067f08d 100644 --- a/modules/ssh-initrd/default.nix +++ b/modules/ssh-initrd/default.nix @@ -15,7 +15,6 @@ HostKey /ssh_initrd_host_ed25519_key ''; authorizedKeys = with (import ../../lib).keys; [ - users.ccr-gpg users.ccr-ssh hosts.sisko ]; diff --git a/secrets/secrets.nix b/secrets/secrets.nix index 52a3217..2cebf84 100644 --- a/secrets/secrets.nix +++ b/secrets/secrets.nix @@ -6,7 +6,6 @@ with keys.users; { "cachix-personal-token.age".publicKeys = [ ccr-ssh - ccr-gpg mothership kirk sisko @@ -15,90 +14,85 @@ with keys.users; ]; "magit-forge-github-token.age".publicKeys = [ ccr-ssh - ccr-gpg mothership kirk ]; "git-workspace-tokens.age".publicKeys = [ ccr-ssh - ccr-gpg mothership kirk picard ]; "hydra-admin-password.age".publicKeys = [ ccr-ssh - ccr-gpg mothership ]; "hydra-github-token.age".publicKeys = [ ccr-ssh - ccr-gpg mothership ]; "cache-private-key.age".publicKeys = [ ccr-ssh - ccr-gpg mothership ]; "autistici-password.age".publicKeys = [ ccr-ssh - ccr-gpg + kirk picard sisko ]; "hercules-ci-join-token.age".publicKeys = [ ccr-ssh - ccr-gpg + mothership sisko picard ]; "hercules-ci-binary-caches.age".publicKeys = [ ccr-ssh - ccr-gpg + mothership sisko picard ]; "hercules-ci-secrets-json.age".publicKeys = [ ccr-ssh - ccr-gpg + mothership sisko picard ]; "minio-credentials.age".publicKeys = [ ccr-ssh - ccr-gpg + picard sisko ]; "aws-credentials.age".publicKeys = [ ccr-ssh - ccr-gpg + picard sisko ]; "nextcloud-admin-pass.age".publicKeys = [ ccr-ssh - ccr-gpg + sisko ]; "home-planimetry.age".publicKeys = [ ccr-ssh - ccr-gpg + sisko ]; "home-assistant-token.age".publicKeys = [ ccr-ssh - ccr-gpg + sisko ]; "chatgpt-token.age".publicKeys = [ ccr-ssh - ccr-gpg + kirk mothership picard @@ -106,86 +100,86 @@ with keys.users; ]; "cloudflare-dyndns-api-token.age".publicKeys = [ ccr-ssh - ccr-gpg + sisko ]; "restic-hetzner-password.age".publicKeys = [ ccr-ssh - ccr-gpg + picard sisko kirk ]; "hass-ssh-key.age".publicKeys = [ ccr-ssh - ccr-gpg + sisko ]; "grafana-password.age".publicKeys = [ ccr-ssh - ccr-gpg + sisko ]; "matrix-registration-shared-secret.age".publicKeys = [ ccr-ssh - ccr-gpg + sisko ]; "matrix-sliding-sync-secret.age".publicKeys = [ ccr-ssh - ccr-gpg + sisko ]; "forgejo-runners-token.age".publicKeys = [ ccr-ssh - ccr-gpg + picard ]; "forgejo-nix-access-tokens.age".publicKeys = [ ccr-ssh - ccr-gpg + picard ]; "garmin-collector-environment.age".publicKeys = [ ccr-ssh - ccr-gpg + sisko ]; "hetzner-storage-box-sisko-ssh-password.age".publicKeys = [ ccr-ssh - ccr-gpg + sisko ]; "sisko-restic-password.age".publicKeys = [ ccr-ssh - ccr-gpg + sisko ]; "sisko-attic-environment-file.age".publicKeys = [ ccr-ssh - ccr-gpg + sisko ]; # WireGuard "picard-wireguard-private-key.age".publicKeys = [ ccr-ssh - ccr-gpg + picard ]; "sisko-wireguard-private-key.age".publicKeys = [ ccr-ssh - ccr-gpg + sisko ]; "kirk-wireguard-private-key.age".publicKeys = [ ccr-ssh - ccr-gpg + kirk ]; "deltaflyer-wireguard-private-key.age".publicKeys = [ ccr-ssh - ccr-gpg + deltaflyer ]; } From 49f2ada271af79a0c5707e5fe26affa70e3cb26e Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 29 Nov 2024 11:18:55 +0100 Subject: [PATCH 178/492] Persist adguard-home state --- modules/adguard-home/default.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/modules/adguard-home/default.nix b/modules/adguard-home/default.nix index 988b8ca..a1ec2aa 100644 --- a/modules/adguard-home/default.nix +++ b/modules/adguard-home/default.nix @@ -2,6 +2,7 @@ services.adguardhome = { enable = true; port = 3000; + mutableSettings = true; settings = { openFirewall = true; }; @@ -11,4 +12,7 @@ 53 ]; networking.firewall.allowedUDPPorts = [ 53 ]; + environment.persistence."/persist".directories = [ + "/var/lib/AdGuardHome" + ]; } From f4feb18c9aa854a2cbfc9692edf67d211e542467 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 29 Nov 2024 11:19:15 +0100 Subject: [PATCH 179/492] Add vundo, pulsar and aggressive-indent emacs packages --- packages/emacs/packages.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/emacs/packages.nix b/packages/emacs/packages.nix index 7b1d204..cf81eca 100644 --- a/packages/emacs/packages.nix +++ b/packages/emacs/packages.nix @@ -117,6 +117,7 @@ let agenix solidity-mode telega + aggressive-indent # org-re-reveal # FIXME very not nice hash mismatch when building ] ) @@ -126,6 +127,8 @@ let ef-themes indent-bars ement + vundo + pulsar ]) ++ (with nongnuPackages; [ eat From d7000927a39c2caa4aeaf7c9b5c603402157c279 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 29 Nov 2024 11:19:47 +0100 Subject: [PATCH 180/492] Enable chirp on picard --- hosts/picard/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/hosts/picard/default.nix b/hosts/picard/default.nix index fd17130..5842bf7 100644 --- a/hosts/picard/default.nix +++ b/hosts/picard/default.nix @@ -90,6 +90,7 @@ "libreoffice" "emacs" "vial" + "chirp" ]; extraGroups = [ ]; backupPaths = [ ]; From 96bca1f66985f60ea93d15f11567c35bda367f1e Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 29 Nov 2024 11:20:08 +0100 Subject: [PATCH 181/492] Catpuccin theme for forgejo --- modules/forgejo/default.nix | 39 +++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/modules/forgejo/default.nix b/modules/forgejo/default.nix index d67ccc5..a0940ab 100644 --- a/modules/forgejo/default.nix +++ b/modules/forgejo/default.nix @@ -1,11 +1,35 @@ { config, + pkgs, + lib, ... }: +let + theme = pkgs.fetchzip { + url = "https://github.com/catppuccin/gitea/releases/download/v1.0.1/catppuccin-gitea.tar.gz"; + hash = "sha256-et5luA3SI7iOcEIQ3CVIu0+eiLs8C/8mOitYlWQa/uI="; + stripRoot = false; + }; +in { + systemd.services = { + forgejo = { + preStart = + let + inherit (config.services.forgejo) stateDir; + in + lib.mkAfter '' + rm -rf ${stateDir}/custom/public/assets + mkdir -p ${stateDir}/custom/public/assets + ln -sf ${theme} ${stateDir}/custom/public/assets/css + ''; + }; + }; + services.forgejo = { # TODO migrate to Postgres enable = true; + package = pkgs.forgejo; settings = { DEFAULT = { RUN_MODE = "prod"; # set to prod for better logs (worse performance) @@ -18,6 +42,7 @@ HTTP_PORT = 3002; ROOT_URL = "https://git.aciceri.dev"; }; + federation.ENABLED = true; mailer = { ENABLED = true; PROTOCOL = "smtp+starttls"; @@ -29,6 +54,20 @@ other = { SHOW_FOOTER_VERSION = false; }; + ui = { + DEFAULT_THEME = "catppuccin-mocha-blue"; + THEMES = builtins.concatStringsSep "," ( + [ "auto,forgejo-auto,forgejo-dark,forgejo-light,arc-gree,gitea" ] + ++ (map (name: lib.removePrefix "theme-" (lib.removeSuffix ".css" name)) ( + builtins.attrNames (builtins.readDir theme) + )) + ); + }; + "ui.meta" = { + AUTHOR = "Andrea Ciceri"; + DESCRIPTION = "My personal git forge"; + KEYWORDS = "git,self-hosted,forgejo,open-source,nix,nixos"; + }; }; secrets.mailer.PASSWD = config.age.secrets.autistici-password.path; dump.enable = true; From 4da58e8adc572af882007f6828f193ccc8873503 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 29 Nov 2024 11:20:28 +0100 Subject: [PATCH 182/492] Update garmin-connect home assistant integration --- modules/home-assistant/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/home-assistant/default.nix b/modules/home-assistant/default.nix index 9cde4b4..a7cf05f 100644 --- a/modules/home-assistant/default.nix +++ b/modules/home-assistant/default.nix @@ -13,8 +13,8 @@ let garmin_connect = pkgs.fetchFromGitHub { owner = "cyberjunky"; repo = "home-assistant-garmin_connect"; - rev = "d42edcabc67ba6a7f960e849c8aaec1aabef87c0"; - hash = "sha256-KqbP6TpH9B0/AjtsW5TcWSNgUhND+w8rO6X8fHqtsDI="; + rev = "e2deaed42b66c982b150ca9a9e543031ad51228c"; + hash = "sha256-TtrcgLGnhNRBF1SqKMkPlEi/XEBUtDAnaWfzkh50+D8="; }; in { From 45a78e44b49614bd8d16296cd7a54f75b9b68e6b Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 29 Nov 2024 11:20:41 +0100 Subject: [PATCH 183/492] Use home assistant local tuya integrations --- modules/home-assistant/default.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/modules/home-assistant/default.nix b/modules/home-assistant/default.nix index a7cf05f..b0e4a63 100644 --- a/modules/home-assistant/default.nix +++ b/modules/home-assistant/default.nix @@ -51,6 +51,10 @@ in "wake_on_lan" "prometheus" ]; + customComponents = with pkgs.home-assistant-custom-components; [ + tuya_local + localtuya + ]; extraPackages = python3Packages: with python3Packages; [ # used by pun_sensor From 54d97e55d9f97da9ffa50ab660fd8dab62189e5f Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 29 Nov 2024 11:21:00 +0100 Subject: [PATCH 184/492] CI script to report checks to forgejo --- modules/forgejo-runners/default.nix | 2 ++ .../forgejo-report-checks/forgejo-report-checks.py | 11 +++++++---- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/modules/forgejo-runners/default.nix b/modules/forgejo-runners/default.nix index e9b52b9..3234a46 100644 --- a/modules/forgejo-runners/default.nix +++ b/modules/forgejo-runners/default.nix @@ -3,6 +3,7 @@ config, pkgs, lib, + fleetFlake, ... }: let @@ -24,6 +25,7 @@ let curl tea attic-client + fleetFlake.packages.${pkgs.system}.forgejo-report-checks ] }; do for bin in "$dir"/bin/*; do diff --git a/packages/forgejo-report-checks/forgejo-report-checks.py b/packages/forgejo-report-checks/forgejo-report-checks.py index 7ea3f2c..a66a825 100644 --- a/packages/forgejo-report-checks/forgejo-report-checks.py +++ b/packages/forgejo-report-checks/forgejo-report-checks.py @@ -6,16 +6,17 @@ from os import environ client = AuthenticatedClient(base_url=environ["GITHUB_API_URL"], token=environ["GITHUB_TOKEN"]) -print("hello") - with open('result.json', 'r') as file: data = json.load(file) +print("Reporting statuses acording to the following result.json") +print(json.dumps(data, indent=2)) + for result in data['results']: attr = result['attr'] success = result['success'] type = result['type'] - print(attr) + print(f"Report status success={success} for {type} {attr}") response = repo_create_status.sync_detailed( owner="aciceri", repo="nixfleet", @@ -24,7 +25,9 @@ for result in data['results']: body=CreateStatusOption( context=type, description=attr, - target_url="https://google.com", + target_url="https://git.aciceri.dev", # FIXME state="success" if success else "failure" # ma be pending,success,failure,error_message ) ) + +print("Done reporting statuses") From b25018e39e09e1d4d314498aecbe92e8ee18b0d0 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 6 Dec 2024 11:36:59 +0100 Subject: [PATCH 185/492] Update some inputs --- flake.lock | 53 ++++++++++++++++++++++++++--------------------------- 1 file changed, 26 insertions(+), 27 deletions(-) diff --git a/flake.lock b/flake.lock index 9457803..581f5da 100644 --- a/flake.lock +++ b/flake.lock @@ -209,11 +209,11 @@ ] }, "locked": { - "lastModified": 1727826117, - "narHash": "sha256-K5ZLCyfO/Zj9mPFldf3iwS6oZStJcU4tSpiXTMYaaL0=", + "lastModified": 1730504689, + "narHash": "sha256-hgmguH29K2fvs9szpq2r3pz2/8cJd2LPS+b4tfNFCwE=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "3d04084d54bedc3d6b8b736c70ef449225c361b1", + "rev": "506278e768c2a08bec68eb62932193e341f55c90", "type": "github" }, "original": { @@ -287,11 +287,11 @@ "systems": "systems_2" }, "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": { @@ -485,11 +485,11 @@ ] }, "locked": { - "lastModified": 1731535640, - "narHash": "sha256-2EckCJn4wxran/TsRiCOFcmVpep2m9EBKl99NBh2GnM=", + "lastModified": 1733389730, + "narHash": "sha256-KZMu4ddMll5khS0rYkJsVD0hVqjMNHlhTM3PCQar0Ag=", "owner": "nix-community", "repo": "home-manager", - "rev": "35b055009afd0107b69c286fca34d2ad98940d57", + "rev": "65912bc6841cf420eb8c0a20e03df7cbbff5963f", "type": "github" }, "original": { @@ -564,7 +564,6 @@ "locked": { "lastModified": 1728951119, "narHash": "sha256-vUBgL8zJBDyj2serxdEVbNqe6pBN4YgWwhtg3XP8mpQ=", - "ref": "refs/heads/main", "rev": "f6077314fa6aff862758095bb55fe844e9162a1d", "revCount": 16344, "type": "git", @@ -589,11 +588,11 @@ "treefmt-nix": "treefmt-nix" }, "locked": { - "lastModified": 1731185443, - "narHash": "sha256-9qkRZFTgbMonlBaLqL+OW6iiHLWXuBJlThISMhwQuGg=", + "lastModified": 1732351635, + "narHash": "sha256-H94CcQ3yamG5+RMxtxXllR02YIlxQ5WD/8PcolO9yEA=", "ref": "refs/heads/main", - "rev": "57ddb99e781d19704f8a84036f9890e6ca554c41", - "revCount": 613, + "rev": "dfc286ca3dc49118c30d8d6205d6d6af76c62b7a", + "revCount": 617, "type": "git", "url": "https://git.lix.systems/lix-project/nix-eval-jobs" }, @@ -614,11 +613,11 @@ ] }, "locked": { - "lastModified": 1731185731, - "narHash": "sha256-RNaIu43b9PoXEhW4OqXUNZKY/jezQyCYWwdv1M0VjsA=", + "lastModified": 1732603698, + "narHash": "sha256-Jw2MhzgCCrKV2MJytehG0cCLIAosBX71p8qmQ6XQlR4=", "ref": "refs/heads/main", - "rev": "691193879d96bdfd1e6ab5ebcca2fadc7604cf34", - "revCount": 117, + "rev": "15b999f9c958c475f71fb8c543b9fc2f36ae8730", + "revCount": 123, "type": "git", "url": "https://git.lix.systems/lix-project/nixos-module" }, @@ -699,11 +698,11 @@ ] }, "locked": { - "lastModified": 1729742964, - "narHash": "sha256-B4mzTcQ0FZHdpeWcpDYPERtyjJd/NIuaQ9+BV1h+MpA=", + "lastModified": 1731952509, + "narHash": "sha256-p4gB3Rhw8R6Ak4eMl8pqjCPOLCZRqaehZxdZ/mbFClM=", "owner": "nix-community", "repo": "nix-github-actions", - "rev": "e04df33f62cdcf93d73e9a04142464753a16db67", + "rev": "7b5f051df789b6b20d259924d349a9ba3319b226", "type": "github" }, "original": { @@ -996,11 +995,11 @@ }, "nixpkgs_7": { "locked": { - "lastModified": 1731319897, - "narHash": "sha256-PbABj4tnbWFMfBp6OcUK5iGy1QY+/Z96ZcLpooIbuEI=", + "lastModified": 1733212471, + "narHash": "sha256-M1+uCoV5igihRfcUKrr1riygbe73/dzNnzPsmaLCmpo=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "dc460ec76cbff0e66e269457d7b728432263166c", + "rev": "55d15ad12a74eb7d4646254e13638ad0c4128776", "type": "github" }, "original": { @@ -1284,11 +1283,11 @@ ] }, "locked": { - "lastModified": 1729613947, - "narHash": "sha256-XGOvuIPW1XRfPgHtGYXd5MAmJzZtOuwlfKDgxX5KT3s=", + "lastModified": 1732292307, + "narHash": "sha256-5WSng844vXt8uytT5djmqBCkopyle6ciFgteuA9bJpw=", "owner": "numtide", "repo": "treefmt-nix", - "rev": "aac86347fb5063960eccb19493e0cadcdb4205ca", + "rev": "705df92694af7093dfbb27109ce16d828a79155f", "type": "github" }, "original": { From 4d8da4b646baea76a2937362dcf6508bfa4b3f90 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 6 Dec 2024 11:37:08 +0100 Subject: [PATCH 186/492] Argument renamed --- hmModules/cura/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hmModules/cura/default.nix b/hmModules/cura/default.nix index 7b530f3..96a2f2c 100644 --- a/hmModules/cura/default.nix +++ b/hmModules/cura/default.nix @@ -4,7 +4,7 @@ ( let cura5 = pkgs.appimageTools.wrapType2 rec { - name = "cura5"; + pname = "cura5"; version = "5.8.0"; src = pkgs.fetchurl { url = "https://github.com/Ultimaker/Cura/releases/download/${version}/UltiMaker-Cura-${version}-linux-X64.AppImage"; From 9dbc96384005843be4195be7dd1db18cc2e614fc Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 6 Dec 2024 11:37:22 +0100 Subject: [PATCH 187/492] Add `mixed-pitch` to Emacs packages --- packages/emacs/packages.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/emacs/packages.nix b/packages/emacs/packages.nix index cf81eca..65249d2 100644 --- a/packages/emacs/packages.nix +++ b/packages/emacs/packages.nix @@ -118,6 +118,7 @@ let solidity-mode telega aggressive-indent + mixed-pitch # org-re-reveal # FIXME very not nice hash mismatch when building ] ) From 73449da88fb968b86deb7cfd0113a134ffdffb73 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 6 Dec 2024 11:37:35 +0100 Subject: [PATCH 188/492] Options renamed --- modules/xfce/default.nix | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/modules/xfce/default.nix b/modules/xfce/default.nix index 2294bb4..3eeff72 100644 --- a/modules/xfce/default.nix +++ b/modules/xfce/default.nix @@ -5,10 +5,11 @@ xterm.enable = false; xfce.enable = true; }; - displayManager = { - defaultSession = "xfce"; - autoLogin.user = "mara"; - }; + }; + + services.displayManager = { + defaultSession = "xfce"; + autoLogin.user = "mara"; }; home-manager.users.mara.home.file."background-image" = { From 9dfb48ba0c929edb422fddf11dfdada609f36497 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 6 Dec 2024 11:38:21 +0100 Subject: [PATCH 189/492] Set `networkmanager` group in the `ccr` module --- modules/ccr/default.nix | 1 + modules/networkmanager/default.nix | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/ccr/default.nix b/modules/ccr/default.nix index 3ffa60d..31c7859 100644 --- a/modules/ccr/default.nix +++ b/modules/ccr/default.nix @@ -86,6 +86,7 @@ in "dialout" "systemd-journal" "camera" + "networkmanager" ]; ccr.modules = [ "shell" diff --git a/modules/networkmanager/default.nix b/modules/networkmanager/default.nix index 7259900..4e2eb66 100644 --- a/modules/networkmanager/default.nix +++ b/modules/networkmanager/default.nix @@ -1,6 +1,5 @@ { lib, ... }: { networking.networkmanager.enable = true; - ccr.extraGroups = [ "networkmanager" ]; networking.useDHCP = lib.mkDefault true; } From 8efbd6f57702d140455dfbe8db45da12f28b1008 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 6 Dec 2024 11:38:42 +0100 Subject: [PATCH 190/492] Enable `binfmt` also for `armv6l-linux` --- modules/binfmt/default.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/binfmt/default.nix b/modules/binfmt/default.nix index bd582f7..3f53722 100644 --- a/modules/binfmt/default.nix +++ b/modules/binfmt/default.nix @@ -3,9 +3,10 @@ "i686-linux" "aarch64-linux" "riscv64-linux" + "armv6l-linux" ]; nix.extraOptions = '' - extra-platforms = aarch64-linux arm-linux i686-linux riscv64-linux + extra-platforms = aarch64-linux arm-linux i686-linux riscv64-linux armv6l-linux ''; # XXX For some reason `docker buildx` isn't aware of this: From 72461214d82dd64bf374716713808551d2f5622e Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 6 Dec 2024 11:38:59 +0100 Subject: [PATCH 191/492] Format `sisko`'s hd to `xfs` --- hosts/sisko/disko.nix | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/hosts/sisko/disko.nix b/hosts/sisko/disko.nix index ba5c708..55ec848 100644 --- a/hosts/sisko/disko.nix +++ b/hosts/sisko/disko.nix @@ -66,8 +66,11 @@ in size = "100%"; content = { type = "filesystem"; - format = "bcachefs"; + format = "xfs"; mountpoint = "/mnt/hd"; + mountOptions = [ + "nofail" + ]; }; }; }; From 8ee594e06b01bf610adb247ee2f6a9eafb3db6cb Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 6 Dec 2024 11:39:16 +0100 Subject: [PATCH 192/492] Disable autologin for `kirk` --- hosts/kirk/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hosts/kirk/default.nix b/hosts/kirk/default.nix index 3b17a67..262e2b8 100644 --- a/hosts/kirk/default.nix +++ b/hosts/kirk/default.nix @@ -40,7 +40,7 @@ ccr = { enable = true; - autologin = true; + autologin = false; modules = [ "git" "git-workspace" From 796ecadf90e12c5dd54b6db49ea8eb8d1a24546d Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 6 Dec 2024 11:39:30 +0100 Subject: [PATCH 193/492] Do not use hardcoded `ccr` username --- hmModules/shell/default.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/hmModules/shell/default.nix b/hmModules/shell/default.nix index fb10d92..1d68741 100644 --- a/hmModules/shell/default.nix +++ b/hmModules/shell/default.nix @@ -4,6 +4,7 @@ age, hostname, config, + username, ... }: { @@ -59,7 +60,7 @@ settings = { daemon = { enabled = true; - socket_path = "/home/ccr/.local/share/atuin/atuin.sock"; # FIXME using ~ or $HOME doesn't work: https://github.com/atuinsh/atuin/issues/2289 + socket_path = "/home/${username}/.local/share/atuin/atuin.sock"; # FIXME using ~ or $HOME doesn't work: https://github.com/atuinsh/atuin/issues/2289 }; auto_sync = true; sync_frequency = "5m"; From 017b19cd17f8fac0eec792889f487f4c4eb3ddd4 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 6 Dec 2024 11:39:46 +0100 Subject: [PATCH 194/492] Add `chirp` and `sdrangel` modules to `kirk` --- hosts/kirk/default.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/hosts/kirk/default.nix b/hosts/kirk/default.nix index 262e2b8..9c4d30e 100644 --- a/hosts/kirk/default.nix +++ b/hosts/kirk/default.nix @@ -72,6 +72,8 @@ "catppuccin" "libreoffice" "emacs" + "chirp" + "sdrangel" ]; extraGroups = [ ]; backupPaths = [ ]; From 984ba9267dbfaf9c92106cebda4d0d73450b3a19 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 6 Dec 2024 11:40:00 +0100 Subject: [PATCH 195/492] Enable `rtl-sdr` on `kirk` --- hosts/kirk/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/hosts/kirk/default.nix b/hosts/kirk/default.nix index 9c4d30e..1e60076 100644 --- a/hosts/kirk/default.nix +++ b/hosts/kirk/default.nix @@ -101,6 +101,7 @@ nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; powerManagement.cpuFreqGovernor = lib.mkDefault "schedutil"; hardware.enableRedistributableFirmware = lib.mkDefault true; + hardware.rtl-sdr.enable = true; hardware.graphics = { enable = true; From 26187a521b0e9912f26d7afd5203d05e0c1339ce Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 6 Dec 2024 11:41:56 +0100 Subject: [PATCH 196/492] `nerdfonts` became `nerd-fonts` --- modules/fonts/default.nix | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/modules/fonts/default.nix b/modules/fonts/default.nix index e89327a..426f375 100644 --- a/modules/fonts/default.nix +++ b/modules/fonts/default.nix @@ -1,19 +1,21 @@ { pkgs, ... }: { fonts = { - packages = with pkgs; [ - powerline-fonts - dejavu_fonts - fira-code - fira-code-symbols - iosevka - iosevka-comfy.comfy - emacs-all-the-icons-fonts - nerdfonts - joypixels - etBook - vegur - ]; + packages = + with pkgs; + [ + powerline-fonts + dejavu_fonts + fira-code + fira-code-symbols + iosevka + iosevka-comfy.comfy + emacs-all-the-icons-fonts + joypixels + etBook + vegur + ] + ++ (builtins.filter lib.attrsets.isDerivation (builtins.attrValues nerd-fonts)); fontconfig.defaultFonts = { monospace = [ "DejaVu Sans Mono for Powerline" ]; sansSerif = [ "DejaVu Sans" ]; From 9191b17bff5bd67e0f8c93a4395f381142310c82 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 6 Dec 2024 11:43:08 +0100 Subject: [PATCH 197/492] Mara's laptop --- hosts/default.nix | 14 ++++ hosts/spock/default.nix | 48 +++++++++++++ hosts/tpol/default.nix | 95 ++++++++++++++++++++++++++ lib/default.nix | 1 + modules/mara/default.nix | 29 +++++++- secrets/secrets.nix | 4 ++ secrets/tpol-wireguard-private-key.age | 17 +++++ 7 files changed, 205 insertions(+), 3 deletions(-) create mode 100644 hosts/spock/default.nix create mode 100644 hosts/tpol/default.nix create mode 100644 secrets/tpol-wireguard-private-key.age diff --git a/hosts/default.nix b/hosts/default.nix index f86454b..aa8d2fb 100644 --- a/hosts/default.nix +++ b/hosts/default.nix @@ -119,6 +119,20 @@ }; }; + + tpol = { + extraModules = with inputs; [ + lix-module.nixosModules.default + ]; + secrets = { + "tpol-wireguard-private-key" = { }; + }; + vpn = { + ip = "10.100.0.7"; + publicKey = "b/Pi7koTFo5CMAAzcL2ulvQ/0dUjKzbmXpvh4Lb/Bgo="; + }; + extraHmModulesUser = "mara"; + }; }; vpnExtra = { diff --git a/hosts/spock/default.nix b/hosts/spock/default.nix new file mode 100644 index 0000000..c564f78 --- /dev/null +++ b/hosts/spock/default.nix @@ -0,0 +1,48 @@ +{ + lib, + modulesPath, + ... +}: +{ + imports = [ + "${modulesPath}/installer/sd-card/sd-image-aarch64.nix" + ]; + + sdImage.compressImage = false; + + nixpkgs = { + # hostPlatform = lib.mkDefault "armv6-linux"; + # config = { + # allowUnfree = true; + # }; + # overlays = [ + # # Workaround: https://github.com/NixOS/nixpkgs/issues/154163 + # # modprobe: FATAL: Module sun4i-drm not found in directory + # (final: super: { + # makeModulesClosure = x: + # super.makeModulesClosure (x // {allowMissing = true;}); + # }) + # ]; + }; + + fileSystems = { + "/" = { + device = "/dev/disk/by-label/NIXOS_SD"; + fsType = "ext4"; + options = [ "noatime" ]; + }; + }; + + networking = { + networkmanager.enable = false; + }; + + # Set your time zone. + time.timeZone = "Europe/Rome"; + + # Allow the user to log in as root without a password. + users.users.root.initialHashedPassword = ""; + + hardware.enableRedistributableFirmware = true; + system.stateVersion = "24.11"; +} diff --git a/hosts/tpol/default.nix b/hosts/tpol/default.nix new file mode 100644 index 0000000..9677c3d --- /dev/null +++ b/hosts/tpol/default.nix @@ -0,0 +1,95 @@ +{ + modulesPath, + fleetModules, + pkgs, + lib, + vpn, + config, + ... +}: +{ + imports = + [ (modulesPath + "/installer/scan/not-detected.nix") ] + ++ fleetModules [ + "common" + "ssh" + "nix" + "networkmanager" + "dbus" + "udisks2" + "xdg" + "printing" + "mara" + "xfce" + "battery" + "printing" + "wireguard-client" + ]; + + boot.initrd.availableKernelModules = [ + "xhci_pci" + "ehci_pci" + "ahci" + "usb_storage" + "sd_mod" + "sr_mod" + "rtsx_pci_sdmmc" + ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ "kvm-intel" ]; + boot.extraModulePackages = [ ]; + boot.loader.grub.device = "/dev/sda"; + + fileSystems."/" = { + device = "/dev/disk/by-uuid/1522f8d9-5251-408d-9b6e-ed6da7da916a"; + fsType = "btrfs"; + }; + + swapDevices = [ + { device = "/dev/disk/by-uuid/e111fbc7-8e5d-4fcb-95c9-249f53ab0adc"; } + ]; + + mara = { + enable = true; + modules = [ + "shell" + "mpv" + "firefox" + "git" + "chrome" + "udiskie" + "helix" + "remmina" + ]; + }; + + # nevertheless this is a laptop the battery is completely gone, so it works only attached to electrictiy + powerManagement.cpuFreqGovernor = lib.mkDefault "performance"; + + networking.firewall.allowedTCPPorts = [ 1234 ]; + + hardware.rtl-sdr.enable = true; + + systemd.services.rtl-tcp = { + description = "rtl_sdr over TCP"; + wantedBy = [ "multi-user.target" ]; + serviceConfig = { + ExecStart = '' + ${lib.getExe' pkgs.rtl-sdr "rtl_tcp"} -a ${vpn.${config.networking.hostName}} + ''; + }; + }; + + systemd.services.sdrangelsrv = { + description = "sdrangelsrv"; + wantedBy = [ "multi-user.target" ]; + serviceConfig = { + ExecStart = '' + ${lib.getExe' pkgs.sdrangel "sdrangelsrv"} --remote-tcp-hwtype RTLSDR --remote-tcp-port 1234 --remote-tcp-address ${ + vpn.${config.networking.hostName} + } --remote-tcp + ''; + }; + }; + +} diff --git a/lib/default.nix b/lib/default.nix index a923f7d..9f885c1 100644 --- a/lib/default.nix +++ b/lib/default.nix @@ -12,6 +12,7 @@ pbp = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFF05LScu9m5BXMlFAT1g+g/AkAi7kvq1dY6W3Rzqq3f"; picard = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJ1+1z1IsLVJ6aGarMgzw3NbmFKcpYVgdUjl7xDsewxT"; deltaflyer = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPETMwELvGTnhKJbpK0oFs4lK8vm/kV9KdgL9wufYDDQ"; + tpol = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIQxHSow2l0TDWTonBPPaGvTgVvMS/xsQOf1nHnvLSwV"; }; }; } diff --git a/modules/mara/default.nix b/modules/mara/default.nix index 8696519..df60577 100644 --- a/modules/mara/default.nix +++ b/modules/mara/default.nix @@ -4,6 +4,7 @@ pkgs, fleetHmModules, fleetFlake, + vpn, ... }: { @@ -46,20 +47,33 @@ default = [ "wheel" "fuse" - "networkmanager" + "video" "dialout" + "systemd-journal" + "camera" + "networkmanager" ]; }; }; config = lib.mkIf config.mara.enable { + + programs.fish.enable = true; + + mara.modules = [ + "shell" + "git" + "nix-index" + "btop" + ]; + users.users.mara = { uid = 1001; inherit (config.mara) hashedPassword; description = "Mara Savastano"; isNormalUser = true; inherit (config.mara) extraGroups; - shell = pkgs.nushell; + shell = pkgs.fish; openssh.authorizedKeys.keys = config.mara.authorizedKeys; }; @@ -68,7 +82,16 @@ home-manager.useGlobalPkgs = true; home-manager.useUserPackages = true; home-manager.users.mara = { - imports = fleetHmModules config.mara.modules; + imports = fleetHmModules config.mara.modules ++ [ + { + _module.args = { + inherit (config.age) secrets; + inherit vpn; + username = "mara"; + hostname = config.networking.hostName; + }; + } + ]; home.packages = config.mara.packages; home.stateVersion = config.system.stateVersion; }; diff --git a/secrets/secrets.nix b/secrets/secrets.nix index 2cebf84..a322a52 100644 --- a/secrets/secrets.nix +++ b/secrets/secrets.nix @@ -182,4 +182,8 @@ with keys.users; deltaflyer ]; + "tpol-wireguard-private-key.age".publicKeys = [ + ccr-ssh + tpol + ]; } diff --git a/secrets/tpol-wireguard-private-key.age b/secrets/tpol-wireguard-private-key.age new file mode 100644 index 0000000..f870a1d --- /dev/null +++ b/secrets/tpol-wireguard-private-key.age @@ -0,0 +1,17 @@ +age-encryption.org/v1 +-> ssh-rsa /AagBw +qUiTcrs0L+daa9FAsa80rdJsZCKCJN76KREz7mU7FF3ZBGp4VvisP4hJSjNKheWW +pfVaefXfuIsw2GvGqUjNZMGHj650gGEqMtO6nLuetMuCIWF7uTdPpnNQMK6BB2ni +Wlfu2g4rul6aV+S6KNiVBqlKJn521TOkEutsXFjaAJpnRVOG50P/8k9fPzjXNZnj +NqmMhGjOE8tDs9TM1nWM4yYDX3KMDULvcBHycV3yQRzswEJc4jq9oLS8SbyE+4Hy +dH6hkWLiRMz06Xg4F0XifGY4lglcMiQqNdNe5xMZtuR33Z1GUiY9HGU5FvXmUbQx +HTWTklzH8q0vdEmb2tFftCM8AMeodI3CLBt+DNlQ3V0+izUmOJwTGz5OGfT6SiWY +epMF5kXmZipWu5KsEoY1hv1INvGR84LyicpOT2vPV7cakx9ahlCgV5vhdmcAZy5F +CRAhnvIsZZMHwGV9lmAMI93wgPyU0ybtwjSpPbHAqv0DQj+CBrEY5ict3+HhSe5J +QrfcLRsQRox3QuR/jQvixBX63qNaezYFmpBuWP7XI7PuPj7KdUgECNfMctcVmCSb +xHKmYkf8I8Si1doFOZbYOXheiI/zNk0xLAONPI+LQ6ZemUODhpcpRSSkhcDKQdtC +srxvyTvYOk4IFjmjuk2JyE1Vp6wg+aiySZlyfFA7WQY +-> ssh-ed25519 X7Q5KQ UoryJKCMOKeAkI1dbz8On5q0wSd+XIUCdWI31gyS6D4 +exrVhh9tGzQyToDKcv5sspbeKhdTp1q0wKuHWo+onKQ +--- QkkySHHmaJFZu2BNT0ZZ9NZipUbFqyzxL32YZx5DRbQ +wc^[v$j7Lmt{`0]l聾3 {C\XZ)Z$4d/.L \ No newline at end of file From 4c6ecb05bda9d3eb3748930a6c66d51bca4b4c82 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 6 Dec 2024 11:43:15 +0100 Subject: [PATCH 198/492] Add `sdrangel` home-manager module --- hmModules/sdrangel/default.nix | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 hmModules/sdrangel/default.nix diff --git a/hmModules/sdrangel/default.nix b/hmModules/sdrangel/default.nix new file mode 100644 index 0000000..b241700 --- /dev/null +++ b/hmModules/sdrangel/default.nix @@ -0,0 +1,7 @@ +{ pkgs, ... }: +{ + home.packages = [ + pkgs.sdrangel + pkgs.kdePackages.qtlocation + ]; +} From cec92da687500d53a17554d4545d70a707d5b9df Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 6 Dec 2024 11:44:00 +0100 Subject: [PATCH 199/492] Add `ccr` to `plugdev` user group --- hosts/picard/default.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/hosts/picard/default.nix b/hosts/picard/default.nix index 5842bf7..c2cf5b9 100644 --- a/hosts/picard/default.nix +++ b/hosts/picard/default.nix @@ -91,8 +91,9 @@ "emacs" "vial" "chirp" + "sdrangel" ]; - extraGroups = [ ]; + extraGroups = [ "plugdev" ]; backupPaths = [ ]; }; From e8e1f8e7ce2e48a1aba5b08768b0e6f1fbb416e7 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 6 Dec 2024 11:44:30 +0100 Subject: [PATCH 200/492] Format --- hosts/tpol/default.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/hosts/tpol/default.nix b/hosts/tpol/default.nix index 9677c3d..7793f66 100644 --- a/hosts/tpol/default.nix +++ b/hosts/tpol/default.nix @@ -91,5 +91,4 @@ ''; }; }; - } From 2b2326a65cdadaa7da4b706b9a848b5a92fe9547 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 6 Dec 2024 11:44:46 +0100 Subject: [PATCH 201/492] Emacs stuff --- hmModules/emacs/init.el | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/hmModules/emacs/init.el b/hmModules/emacs/init.el index e1bd97a..11b765b 100644 --- a/hmModules/emacs/init.el +++ b/hmModules/emacs/init.el @@ -881,6 +881,8 @@ This is meant to be an helper to be called from the window manager." :custom (gptel-api-key (lambda () (require 'f) (f-read-text (getenv "OPENAI_API_KEY_PATH")))) (gptel-model 'gpt-4o) + (gptel-default-mode 'org-mode) + (gptel-org-branching-context 't) :config (require 'gptel-curl) @@ -919,6 +921,9 @@ This is meant to be an helper to be called from the window manager." ) ;; destroy frame on exit ) +(use-package mixed-pitch + :hook (text-mode . mixed-pitch-mode)) + (use-package pass :config (require 'password-store-otp) ;; FIXME use `use-pacakge' idiomatic way @@ -967,5 +972,26 @@ This is meant to be an helper to be called from the window manager." (:name "GitHub" :query "tag:github" :key "g") (:name "Trash" :query "tag:trash" :key "t")))) +;;; Experiments, remove from here + +(defun ccr/test () + "test" + (interactive) + (with-selected-frame + (make-frame '((name . "emacs-run-launcher") + (minibuffer . only) + (fullscreen . 0) ; no fullscreen + (undecorated . t) ; remove title bar + ;;(auto-raise . t) ; focus on this frame + ;;(tool-bar-lines . 0) + ;;(menu-bar-lines . 0) + (internal-border-width . 10) + (width . 80) + (height . 11))) + (unwind-protect + (completing-read "ciao " '("foo" "bar") nil t "") + (delete-frame)))) + + (provide 'init) ;;; init.el ends here From 31b758d8842894df0878c361e78958b286eabf08 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Tue, 10 Dec 2024 10:23:56 +0100 Subject: [PATCH 202/492] Disable `gptel-org-branching-context` --- hmModules/emacs/init.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hmModules/emacs/init.el b/hmModules/emacs/init.el index 11b765b..77c9157 100644 --- a/hmModules/emacs/init.el +++ b/hmModules/emacs/init.el @@ -882,7 +882,7 @@ This is meant to be an helper to be called from the window manager." (gptel-api-key (lambda () (require 'f) (f-read-text (getenv "OPENAI_API_KEY_PATH")))) (gptel-model 'gpt-4o) (gptel-default-mode 'org-mode) - (gptel-org-branching-context 't) + (gptel-org-branching-context nil) ;; this is cool but I don't feel comfortable with it :config (require 'gptel-curl) From 42cdcd29c1d8e6f5633ff88eccbe403effe69b2e Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Tue, 10 Dec 2024 10:24:28 +0100 Subject: [PATCH 203/492] Enable git's credential manager --- hmModules/git/default.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/hmModules/git/default.nix b/hmModules/git/default.nix index 8b1dfd4..4f1cb71 100644 --- a/hmModules/git/default.nix +++ b/hmModules/git/default.nix @@ -14,6 +14,9 @@ in ../gitui ../lazygit ]; + + home.packages = [ pkgs.git-credential-manager ]; + programs.git = { enable = true; package = pkgs.gitAndTools.gitFull; @@ -27,6 +30,9 @@ in user.signingKey = "/home/${username}/.ssh/id_rsa"; gpg.format = "ssh"; commit.gpgsign = true; + + credential.helper = "manager"; + credential.credentialStore = "cache"; }; userName = config.name; From cc66970484b519c27fdcad65c86b05a1acdf00bd Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Tue, 10 Dec 2024 10:24:40 +0100 Subject: [PATCH 204/492] Add `openai_conversation` to `home-assistant` --- modules/home-assistant/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/home-assistant/default.nix b/modules/home-assistant/default.nix index b0e4a63..9da252d 100644 --- a/modules/home-assistant/default.nix +++ b/modules/home-assistant/default.nix @@ -50,6 +50,7 @@ in "wyoming" "wake_on_lan" "prometheus" + "openai_conversation" ]; customComponents = with pkgs.home-assistant-custom-components; [ tuya_local From d5582a3371fca21191c7dd9f6745d6b851acb50b Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Tue, 10 Dec 2024 10:24:54 +0100 Subject: [PATCH 205/492] Fix missing `ip` attrset --- hosts/tpol/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hosts/tpol/default.nix b/hosts/tpol/default.nix index 7793f66..d73b62b 100644 --- a/hosts/tpol/default.nix +++ b/hosts/tpol/default.nix @@ -75,7 +75,7 @@ wantedBy = [ "multi-user.target" ]; serviceConfig = { ExecStart = '' - ${lib.getExe' pkgs.rtl-sdr "rtl_tcp"} -a ${vpn.${config.networking.hostName}} + ${lib.getExe' pkgs.rtl-sdr "rtl_tcp"} -a ${vpn.${config.networking.hostName}.ip} ''; }; }; @@ -86,7 +86,7 @@ serviceConfig = { ExecStart = '' ${lib.getExe' pkgs.sdrangel "sdrangelsrv"} --remote-tcp-hwtype RTLSDR --remote-tcp-port 1234 --remote-tcp-address ${ - vpn.${config.networking.hostName} + vpn.${config.networking.hostName}.ip } --remote-tcp ''; }; From 0f94246609c8492245aaf04b74641f154aa89928 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Tue, 10 Dec 2024 10:25:25 +0100 Subject: [PATCH 206/492] Enable the `hackrf` hardware on `picard` --- hosts/picard/default.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/hosts/picard/default.nix b/hosts/picard/default.nix index c2cf5b9..53278b2 100644 --- a/hosts/picard/default.nix +++ b/hosts/picard/default.nix @@ -172,4 +172,6 @@ enable = true; policy = [ "magic" ]; }; + + hardware.hackrf.enable = true; } From 6f9886d43feb9a50cfaa8aae190dfdf6cb516d16 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 13 Dec 2024 19:28:33 +0100 Subject: [PATCH 207/492] Add `p-search` to Emacs packages --- packages/emacs/packages.nix | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/packages/emacs/packages.nix b/packages/emacs/packages.nix index 65249d2..d326f62 100644 --- a/packages/emacs/packages.nix +++ b/packages/emacs/packages.nix @@ -34,6 +34,16 @@ let }; deps = [ ]; }; + p-search = buildEmacsPackage { + name = "p-search"; + src = pkgs.fetchFromGitHub { + owner = "zkry"; + repo = "p-search"; + rev = "3fcf06f862976433642d07d06ec911efc43d0189"; + hash = "sha256-j4JEV+uHXK5Uf6/7D2AaSMKxBr3t59U+WNZzVsJ+gkc="; + }; + deps = [ elpaPackages.heap ]; + }; }; # *List* containing emacs packages from (M)ELPA From 47b0ffed69c0861c1dac3e48944b3bc8629afbb9 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 13 Dec 2024 19:28:44 +0100 Subject: [PATCH 208/492] Add root password for `sisko` Useful when connecting through the serial cable --- hosts/sisko/default.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/hosts/sisko/default.nix b/hosts/sisko/default.nix index 65c5e0b..41ccfd3 100644 --- a/hosts/sisko/default.nix +++ b/hosts/sisko/default.nix @@ -75,6 +75,8 @@ serviceConfig.restart = "always"; }; + users.users.root.hashedPassword = "$y$j9T$mLSUS2hvJdN3s8f9Y3uLE0$sYQtJdn4DuSAZnDkhSsV0WIxNdpuqlH7ODNy1RfuRp4"; + environment.persistence."/persist" = { hideMounts = true; directories = [ From 6d01ccf4806f51b981b4a42fc340e75729b18058 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 13 Dec 2024 19:29:11 +0100 Subject: [PATCH 209/492] Enable `p-search` --- hmModules/emacs/init.el | 2 ++ 1 file changed, 2 insertions(+) diff --git a/hmModules/emacs/init.el b/hmModules/emacs/init.el index 77c9157..40b6e86 100644 --- a/hmModules/emacs/init.el +++ b/hmModules/emacs/init.el @@ -435,6 +435,8 @@ (which-key-mode) (which-key-setup-side-window-right)) +(use-package p-search) + (use-package magit :bind (("C-c o g" . magit))) From e9d20e9453f6ffa2bafdc8a13b899afaf3f9cbb1 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 13 Dec 2024 19:29:22 +0100 Subject: [PATCH 210/492] `org-roam` template for capturing from the browser --- hmModules/emacs/init.el | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/hmModules/emacs/init.el b/hmModules/emacs/init.el index 40b6e86..450ebb5 100644 --- a/hmModules/emacs/init.el +++ b/hmModules/emacs/init.el @@ -785,6 +785,12 @@ This is meant to be an helper to be called from the window manager." ) (use-package org-roam + :init + (require 'org) + (require 'org-roam) + (require 'org-roam-dailies) + (require 'org-protocol) + (require 'org-roam-protocol) :custom (org-roam-v2-ack t) (org-roam-directory (file-truename "~/org")) @@ -797,10 +803,18 @@ This is meant to be an helper to be called from the window manager." ("b" "Billable entry" entry "* TODO ${Entry} :billable:${Client}:\n:PROPERTIES:\n:SPENT: ${Spent}\n:END:\n%?" :target (file+head "%<%Y-%m-%d>.org" "#+TITLE: %<%Y-%m-%d>") - :create-id t)) + :create-id t) + ) + ) + (org-roam-capture-ref-templates + '( + ("r" "Web entry" entry + "* ${Title} \n:PROPERTIES:\n:URL: ${ref}\n:END:\n %i" + :target (file+head "daily/%<%Y-%m-%d>.org" "#+TITLE: %<%Y-%m-%d>") + :create-id t) + ) ) :config - (require 'org-roam-dailies) (org-roam-db-autosync-mode) ;; In order to automatically add an org id for some capture templates (using the :create-id keyword) From cb89698fecc8a69192c2d75cf2678f8463e30264 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Tue, 17 Dec 2024 11:12:55 +0100 Subject: [PATCH 211/492] CI test --- .forgejo/workflows/build.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.forgejo/workflows/build.yaml b/.forgejo/workflows/build.yaml index 75ec44b..148c501 100644 --- a/.forgejo/workflows/build.yaml +++ b/.forgejo/workflows/build.yaml @@ -8,9 +8,9 @@ jobs: - uses: actions/checkout@v4 name: Checkout repository - name: Attic login - run: attic login sisko http://10.100.0.1:8081 ${{secrets.ATTIC_SISKO_TOKEN}} + run: attic login nixfleet http://10.100.0.1:8081 ${{secrets.ATTIC_NIXFLEET_TOKEN}} - name: Build with nix - run: nix-fast-build --no-nom --systems "x86_64-linux aarch64-linux" --attic-cache "sisko" --result-file result.json || true + run: nix-fast-build --no-nom --systems "x86_64-linux aarch64-linux" --attic-cache "nixfleet" --skip-cached --result-file result.json || true - name: Report checks run: report-checks From 47f54d5d6f41a2be1b6bf2153de2b8ffc49ebe83 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Tue, 17 Dec 2024 11:35:18 +0100 Subject: [PATCH 212/492] Change SCSI Link policity Is it really useful? --- hosts/sisko/default.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/hosts/sisko/default.nix b/hosts/sisko/default.nix index 41ccfd3..b67b313 100644 --- a/hosts/sisko/default.nix +++ b/hosts/sisko/default.nix @@ -110,4 +110,6 @@ environment.systemPackages = with pkgs; [ cifs-utils ]; + + powerManagement.scsiLinkPolicy = "med_power_with_dipm"; } From 891c8a1f8d9778030ee3793f3e06a6287e184e41 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Tue, 17 Dec 2024 11:37:38 +0100 Subject: [PATCH 213/492] Disable attic compression --- modules/atticd/default.nix | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/modules/atticd/default.nix b/modules/atticd/default.nix index 507ba59..23d3aa8 100644 --- a/modules/atticd/default.nix +++ b/modules/atticd/default.nix @@ -16,10 +16,7 @@ path = "/mnt/hd/atticd"; }; - compression = { - level = 8; - type = "zstd"; - }; + compression.type = "none"; chunking = { nar-size-threshold = 64 * 1024; # 64 KiB From 0a403bb9e20f4e466c14916be142e00064ae38d0 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Tue, 17 Dec 2024 11:37:49 +0100 Subject: [PATCH 214/492] Change attic directory --- modules/atticd/default.nix | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/modules/atticd/default.nix b/modules/atticd/default.nix index 23d3aa8..6af974f 100644 --- a/modules/atticd/default.nix +++ b/modules/atticd/default.nix @@ -5,7 +5,7 @@ settings = { listen = "0.0.0.0:8081"; allowed-hosts = [ ]; # Allow all hosts - # api-endpoint = "https://cache.staging.mlabs.city/"; + # api-endpoint = "https://cache.aciceri.dev"; soft-delete-caches = false; require-proof-of-possession = true; @@ -13,11 +13,13 @@ storage = { type = "local"; - path = "/mnt/hd/atticd"; + path = "/mnt/hd/attic"; }; compression.type = "none"; + garbage-collection.interval = "0 hours"; # disable garbage collection + chunking = { nar-size-threshold = 64 * 1024; # 64 KiB min-size = 16 * 1024; # 16 KiB From 0057fb33788587a176abf8154011d51267ad68d1 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Tue, 17 Dec 2024 11:37:59 +0100 Subject: [PATCH 215/492] Typo --- packages/forgejo-report-checks/forgejo-report-checks.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/forgejo-report-checks/forgejo-report-checks.py b/packages/forgejo-report-checks/forgejo-report-checks.py index a66a825..538399f 100644 --- a/packages/forgejo-report-checks/forgejo-report-checks.py +++ b/packages/forgejo-report-checks/forgejo-report-checks.py @@ -26,7 +26,7 @@ for result in data['results']: context=type, description=attr, target_url="https://git.aciceri.dev", # FIXME - state="success" if success else "failure" # ma be pending,success,failure,error_message + state="success" if success else "failure" # may be pending,success,failure,error_message ) ) From 62ed33c82c57ff254e33905b94b06bfa0e6cc75f Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Tue, 17 Dec 2024 11:41:59 +0100 Subject: [PATCH 216/492] Trigger CI From a45c032180c9d6ca3f15ea7281f56b6ac9988e98 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Wed, 18 Dec 2024 14:58:20 +0100 Subject: [PATCH 217/492] Improve automatic formatting --- checks/default.nix | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/checks/default.nix b/checks/default.nix index 741d164..5bca772 100644 --- a/checks/default.nix +++ b/checks/default.nix @@ -19,7 +19,21 @@ flakeCheck = true; programs = { nixfmt.enable = true; + prettier.enable = true; + black.enable = true; + shfmt.enable = true; }; + settings.global.excludes = [ + "*.age" + "*.svg" + "*.png" + "*.jpg" + "*.bin" + "*.el" + "*.org" + ".envrc" + "*.conf" + ]; }; pre-commit.settings = { From d2237c0a1265d0f9ba42e544d77f8b9228679073 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Wed, 18 Dec 2024 14:58:39 +0100 Subject: [PATCH 218/492] Format --- .forgejo/workflows/build.yaml | 1 - .forgejo/workflows/update-flake-lock.yaml | 4 +- hmModules/firefox/catppuccin.css | 248 +++++++++--------- hmModules/firefox/userchrome.css | 22 +- hmModules/waybar/style.css | 15 +- hosts/archer/#default.nix# | 26 -- modules/cgit/custom.css | 163 ++++++++---- packages/deploy/deploy.sh | 12 +- packages/emails-watcher/emails-watcher.py | 17 +- .../forgejo-report-checks.py | 20 +- packages/garmin-collector/garmin-collector.py | 17 +- packages/llm-workflow-engine/lock.json | 199 +++----------- 12 files changed, 352 insertions(+), 392 deletions(-) delete mode 100644 hosts/archer/#default.nix# diff --git a/.forgejo/workflows/build.yaml b/.forgejo/workflows/build.yaml index 148c501..213dd15 100644 --- a/.forgejo/workflows/build.yaml +++ b/.forgejo/workflows/build.yaml @@ -13,4 +13,3 @@ jobs: run: nix-fast-build --no-nom --systems "x86_64-linux aarch64-linux" --attic-cache "nixfleet" --skip-cached --result-file result.json || true - name: Report checks run: report-checks - diff --git a/.forgejo/workflows/update-flake-lock.yaml b/.forgejo/workflows/update-flake-lock.yaml index eadba29..7a45fc4 100644 --- a/.forgejo/workflows/update-flake-lock.yaml +++ b/.forgejo/workflows/update-flake-lock.yaml @@ -1,7 +1,7 @@ name: update-flake-lock on: schedule: - - cron: '0 15 * * *' # daily at 15:00 + - cron: "0 15 * * *" # daily at 15:00 jobs: lockfile: @@ -32,4 +32,4 @@ jobs: --title "Update flake's lockfile" \ --description "Check the commit description for inputs deltas" \ --assignees aciceri \ - || echo "PR already existing" + || echo "PR already existing" diff --git a/hmModules/firefox/catppuccin.css b/hmModules/firefox/catppuccin.css index 8cad578..6085f2a 100644 --- a/hmModules/firefox/catppuccin.css +++ b/hmModules/firefox/catppuccin.css @@ -1,187 +1,193 @@ -:root { /* Catppuccin Colors */ - --bg: #1e1e2e; - --currentline: #302D41; - --fg: #d9e0ee; - --comment: #575268; - --flamingo: #f2cdcd; - --mauve: #ddb6f2; - --pink: #f5c2e7; - --maroon: #e8a2af; - --red: #f28fad; - --peach: #f8bd96; - --yellow: #fae3b0; - --green: #abe9b3; - --teal: #b5e8e0; - --blue: #96cdfb; - --sky: #89dceb; - --lavender: #c9cbff; - --rosewater: #f5e0dc; - --font: monospace; /*"FiraCode Nerd Font Mono";*/ +:root { + /* Catppuccin Colors */ + --bg: #1e1e2e; + --currentline: #302d41; + --fg: #d9e0ee; + --comment: #575268; + --flamingo: #f2cdcd; + --mauve: #ddb6f2; + --pink: #f5c2e7; + --maroon: #e8a2af; + --red: #f28fad; + --peach: #f8bd96; + --yellow: #fae3b0; + --green: #abe9b3; + --teal: #b5e8e0; + --blue: #96cdfb; + --sky: #89dceb; + --lavender: #c9cbff; + --rosewater: #f5e0dc; + --font: monospace; /*"FiraCode Nerd Font Mono";*/ - /* vimium theme uses colors: flamingo, peach, rosewater, green, blue, lavender */ - --tridactyl-fg: var(--fg); - --tridactyl-bg: var(--bg); - --tridactyl-url-fg: var(--rosewater); - --tridactyl-url-bg: var(--bg); - --tridactyl-highlight-box-bg: var(--currentline); - --tridactyl-highlight-box-fg: var(--fg); - --tridactyl-of-fg: var(--fg); - --tridactyl-of-bg: var(--currentline); - --tridactyl-cmdl-fg: var(--bg); - --tridactyl-cmdl-font-family: var(--font); - --tridactyl-cmplt-font-family: var(--font); - --tridactyl-hintspan-font-family: var(--font); + /* vimium theme uses colors: flamingo, peach, rosewater, green, blue, lavender */ + --tridactyl-fg: var(--fg); + --tridactyl-bg: var(--bg); + --tridactyl-url-fg: var(--rosewater); + --tridactyl-url-bg: var(--bg); + --tridactyl-highlight-box-bg: var(--currentline); + --tridactyl-highlight-box-fg: var(--fg); + --tridactyl-of-fg: var(--fg); + --tridactyl-of-bg: var(--currentline); + --tridactyl-cmdl-fg: var(--bg); + --tridactyl-cmdl-font-family: var(--font); + --tridactyl-cmplt-font-family: var(--font); + --tridactyl-hintspan-font-family: var(--font); - /* Hint character tags */ - --tridactyl-hintspan-fg: var(--bg) !important; - --tridactyl-hintspan-bg: var(--green) !important; + /* Hint character tags */ + --tridactyl-hintspan-fg: var(--bg) !important; + --tridactyl-hintspan-bg: var(--green) !important; - /* Element Highlights */ - --tridactyl-hint-active-fg: none; - --tridactyl-hint-active-bg: none; - --tridactyl-hint-active-outline: none; - --tridactyl-hint-bg: none; - --tridactyl-hint-outline: none; + /* Element Highlights */ + --tridactyl-hint-active-fg: none; + --tridactyl-hint-active-bg: none; + --tridactyl-hint-active-outline: none; + --tridactyl-hint-bg: none; + --tridactyl-hint-outline: none; } #command-line-holder { - order: 1; - border: 2px solid var(--lavender); - background: var(--tridactyl-bg); + order: 1; + border: 2px solid var(--lavender); + background: var(--tridactyl-bg); } #tridactyl-input { - padding: 1rem; - color: var(--tridactyl-fg); - width: 90%; - font-size: 1.5rem; - line-height: 1.5; - background: var(--tridactyl-bg); - padding-left: unset; - padding: 1rem; + padding: 1rem; + color: var(--tridactyl-fg); + width: 90%; + font-size: 1.5rem; + line-height: 1.5; + background: var(--tridactyl-bg); + padding-left: unset; + padding: 1rem; } #completions table { - font-size: 0.8rem; - font-weight: 200; - border-spacing: 0; - table-layout: fixed; - padding: 1rem 0; - /* padding-top: 1rem; */ - /* padding-bottom: 1rem; */ + font-size: 0.8rem; + font-weight: 200; + border-spacing: 0; + table-layout: fixed; + padding: 1rem 0; + /* padding-top: 1rem; */ + /* padding-bottom: 1rem; */ } #completions > div { - max-height: calc(20 * var(--option-height)); - min-height: calc(10 * var(--option-height)); + max-height: calc(20 * var(--option-height)); + min-height: calc(10 * var(--option-height)); } /* COMPLETIONS */ #completions { - --option-height: 1.4em; - color: var(--tridactyl-fg); - background: var(--tridactyl-bg); - display: inline-block; - font-size: unset; - font-weight: 200; - overflow: hidden; - width: 100%; - border-top: unset; - order: 2; + --option-height: 1.4em; + color: var(--tridactyl-fg); + background: var(--tridactyl-bg); + display: inline-block; + font-size: unset; + font-weight: 200; + overflow: hidden; + width: 100%; + border-top: unset; + order: 2; } /* Olie doesn't know how CSS inheritance works */ #completions .HistoryCompletionSource { - max-height: unset; - min-height: unset; + max-height: unset; + min-height: unset; } #completions .HistoryCompletionSource table { - width: 100%; - font-size: 9pt; - border-spacing: 0; - table-layout: fixed; + width: 100%; + font-size: 9pt; + border-spacing: 0; + table-layout: fixed; } /* redundancy 2: redundancy 2: more redundancy */ #completions .BmarkCompletionSource { - max-height: unset; - min-height: unset; + max-height: unset; + min-height: unset; } -#completions table tr td.prefix,#completions table tr td.privatewindow,#completions table tr td.container,#completions table tr td.icon { - display: none; +#completions table tr td.prefix, +#completions table tr td.privatewindow, +#completions table tr td.container, +#completions table tr td.icon { + display: none; } #completions .BufferCompletionSource table { - width: unset; - font-size: unset; - border-spacing: unset; - table-layout: unset; + width: unset; + font-size: unset; + border-spacing: unset; + table-layout: unset; } -#completions table tr .title, #completions table tr td.excmd { - width: 50%; - padding-left: 1rem; - color: var(--blue); +#completions table tr .title, +#completions table tr td.excmd { + width: 50%; + padding-left: 1rem; + color: var(--blue); } -#completions table tr .content, #completions table tr td.documentation { +#completions table tr .content, +#completions table tr td.documentation { padding-right: 1rem; } #completions table tr { - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; } #completions table tr td { - padding: .5rem 0; + padding: 0.5rem 0; } #completions .sectionHeader { - background: unset; - font-weight: bold; - border-bottom: unset; - padding: 1rem 1rem 0 !important; - padding-left: unset; - padding-bottom: 0.2rem; - color: var(--peach); + background: unset; + font-weight: bold; + border-bottom: unset; + padding: 1rem 1rem 0 !important; + padding-left: unset; + padding-bottom: 0.2rem; + color: var(--peach); } #cmdline_iframe { - position: fixed !important; - bottom: unset; - top: 25% !important; - left: 10% !important; - z-index: 2147483647 !important; - width: 80% !important; - box-shadow: rgba(0, 0, 0, 0.5) 0px 0px 20px !important; + position: fixed !important; + bottom: unset; + top: 25% !important; + left: 10% !important; + z-index: 2147483647 !important; + width: 80% !important; + box-shadow: rgba(0, 0, 0, 0.5) 0px 0px 20px !important; } .TridactylStatusIndicator { - position: fixed !important; - bottom: 0 !important; - background: var(--tridactyl-bg) !important; - border: unset !important; - border: 1px var(--purple) solid !important; - font-size: 12pt !important; - /*font-weight: 200 !important;*/ - padding: 0.8ex !important; + position: fixed !important; + bottom: 0 !important; + background: var(--tridactyl-bg) !important; + border: unset !important; + border: 1px var(--purple) solid !important; + font-size: 12pt !important; + /*font-weight: 200 !important;*/ + padding: 0.8ex !important; } #completions .focused { - background: var(--currentline); - /* color: var(--blue); */ - font-weight: bold; + background: var(--currentline); + /* color: var(--blue); */ + font-weight: bold; } #completions .focused td.title { color: var(--pink); } #completions .focused .url { - background: var(--currentline); - color: var(--green); + background: var(--currentline); + color: var(--green); } diff --git a/hmModules/firefox/userchrome.css b/hmModules/firefox/userchrome.css index 7abb436..8e27216 100644 --- a/hmModules/firefox/userchrome.css +++ b/hmModules/firefox/userchrome.css @@ -1,19 +1,24 @@ - /* * Do not remove the @namespace line -- it's required for correct functioning */ /* set default namespace to XUL */ @namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"); /* Remove Back button when there's nothing to go Back to */ -#back-button[disabled="true"] { display: none; } +#back-button[disabled="true"] { + display: none; +} /* Remove Forward button when there's nothing to go Forward to */ -#forward-button[disabled="true"] { display: none; } +#forward-button[disabled="true"] { + display: none; +} /* Remove Home button (never use it) */ -#home-button { display: none; } +#home-button { + display: none; +} .titlebar-spacer { - display: none !important; + display: none !important; } /* Remove import bookmarks button */ @@ -27,7 +32,8 @@ toolbarbutton.bookmark-item:not(.subviewbutton) { } /* Remove whitespace in toolbar */ -#nav-bar toolbarpaletteitem[id^="wrapper-customizableui-special-spring"], #nav-bar toolbarspring { +#nav-bar toolbarpaletteitem[id^="wrapper-customizableui-special-spring"], +#nav-bar toolbarspring { display: none; } @@ -53,8 +59,8 @@ toolbarbutton.bookmark-item:not(.subviewbutton) { } .titlebar-restore { - appearance: auto !important; - -moz-default-appearance: -moz-window-button-restore !important; + appearance: auto !important; + -moz-default-appearance: -moz-window-button-restore !important; } .titlebar-close { diff --git a/hmModules/waybar/style.css b/hmModules/waybar/style.css index edb1ecd..1358583 100644 --- a/hmModules/waybar/style.css +++ b/hmModules/waybar/style.css @@ -3,7 +3,6 @@ border-radius: 0; min-height: 0; font-family: Fira Code; - } window#waybar { @@ -23,7 +22,8 @@ window#waybar { box-shadow: inset 0 -5px red; } -#workspaces button.focused, #workspaces button:hover { +#workspaces button.focused, +#workspaces button:hover { box-shadow: inset 0 -5px white; } @@ -39,7 +39,16 @@ window#waybar { /* color: @unfocused_borders; */ } -#pulseaudio, #network, #cpu, #memory, #disk, #temperature, #battery, #language, #clock, #tray { +#pulseaudio, +#network, +#cpu, +#memory, +#disk, +#temperature, +#battery, +#language, +#clock, +#tray { margin: 0 4px; padding: 0 2px; } diff --git a/hosts/archer/#default.nix# b/hosts/archer/#default.nix# deleted file mode 100644 index cbde1a4..0000000 --- a/hosts/archer/#default.nix# +++ /dev/null @@ -1,26 +0,0 @@ -{pkgs, ...}: { - # $ nix-env -qaP | grep wget - environment.systemPackages = - [ pkgs.vim - ]; - - # # Auto upgrade nix package and the daemon service. - # services.nix-daemon.enable = true; - # # nix.package = pkgs.nix; - - # # Necessary for using flakes on this system. - # nix.settings.experimental-features = "nix-command flakes"; - - # # Create /etc/zshrc that loads the nix-darwin environment. - # programs.zsh.enable = true; # default shell on catalina - # # programs.fish.enable = true; - - # # # Set Git commit hash for darwin-version. - # # system.configurationRevision = self.rev or self.dirtyRev or null; - - # # Used for backwards compatibility, please read the changelog before changing. - # # $ darwin-rebuild changelog - # system.stateVersion = 4; - - # # The platform the configuration will be used on. -} diff --git a/modules/cgit/custom.css b/modules/cgit/custom.css index b3f4f42..aacb9d8 100644 --- a/modules/cgit/custom.css +++ b/modules/cgit/custom.css @@ -4,83 +4,154 @@ @import url("cgit.css"); -* { line-height: 1.25em; } +* { + line-height: 1.25em; +} div#cgit { - max-width: 117ch; - margin: auto; - font-family: monospace; - -moz-tab-size: 4; - tab-size: 4; + max-width: 117ch; + margin: auto; + font-family: monospace; + -moz-tab-size: 4; + tab-size: 4; } div#cgit table#header td.sub { - border-top: none; + border-top: none; } div#cgit table#header td.sub.right { - padding-right: 1em; + padding-right: 1em; } div#cgit table.tabs { - border-bottom: none; + border-bottom: none; } div#cgit div.content { - border-bottom: none; + border-bottom: none; } div#cgit table.list th a { - color: inherit; + color: inherit; } div#cgit table.list tr:nth-child(even) { - background: inherit; + background: inherit; } div#cgit table.list tr:hover { - background: inherit; + background: inherit; } div#cgit table.list tr.nohover-highlight:hover:nth-child(even) { - background: inherit; + background: inherit; } div#cgit table.blob td.linenumbers a:target { - color: goldenrod; - text-decoration: underline; - outline: none; + color: goldenrod; + text-decoration: underline; + outline: none; } div#cgit div#summary { - max-width: 80ch; + max-width: 80ch; } /* for hilex(1) */ -div#cgit pre .Ke { color: dimgray; } -div#cgit pre .Ma { color: green; } -div#cgit pre .Co { color: navy; } -div#cgit pre .St { color: teal; } -div#cgit pre .Fo { color: teal; font-weight: bold; } -div#cgit pre .Su { color: olive; } +div#cgit pre .Ke { + color: dimgray; +} +div#cgit pre .Ma { + color: green; +} +div#cgit pre .Co { + color: navy; +} +div#cgit pre .St { + color: teal; +} +div#cgit pre .Fo { + color: teal; + font-weight: bold; +} +div#cgit pre .Su { + color: olive; +} /* for htagml(1) */ -div#cgit pre a.tag { color: inherit; text-decoration: underline; } -div#cgit pre a.tag:target { color: goldenrod; outline: none; } +div#cgit pre a.tag { + color: inherit; + text-decoration: underline; +} +div#cgit pre a.tag:target { + color: goldenrod; + outline: none; +} /* for mandoc(1) */ -table.head, table.foot { width: 100%; } -td.head-rtitle, td.foot-os { text-align: right; } -td.head-vol { text-align: center; } -div.Pp { margin: 1ex 0ex; } -div.Nd, div.Bf, div.Op { display: inline; } -span.Pa, span.Ad { font-style: italic; } -span.Ms { font-weight: bold; } -dl.Bl-diag > dt { font-weight: bold; } -code.Nm, code.Fl, code.Cm, code.Ic, code.In, code.Fd, code.Fn, -code.Cd { font-weight: bold; font-family: inherit; } +table.head, +table.foot { + width: 100%; +} +td.head-rtitle, +td.foot-os { + text-align: right; +} +td.head-vol { + text-align: center; +} +div.Pp { + margin: 1ex 0ex; +} +div.Nd, +div.Bf, +div.Op { + display: inline; +} +span.Pa, +span.Ad { + font-style: italic; +} +span.Ms { + font-weight: bold; +} +dl.Bl-diag > dt { + font-weight: bold; +} +code.Nm, +code.Fl, +code.Cm, +code.Ic, +code.In, +code.Fd, +code.Fn, +code.Cd { + font-weight: bold; + font-family: inherit; +} -h1.Sh { font-size: 1.5em; } -table.Nm td:first-child { padding-right: 1ch; } -code.Fl { white-space: nowrap; } -span.RsT { font-style: italic; } -dl.Bl-tag:not(.Bl-compact) > dt { margin-top: 1em; } -ul.Bl-bullet:not(.Bl-compact) > li { margin-top: 1em; } -div.Bd-indent { margin-left: 4ch; } -table.Bl-column { width: 100%; } -table.foot { margin-top: 1em; } +h1.Sh { + font-size: 1.5em; +} +table.Nm td:first-child { + padding-right: 1ch; +} +code.Fl { + white-space: nowrap; +} +span.RsT { + font-style: italic; +} +dl.Bl-tag:not(.Bl-compact) > dt { + margin-top: 1em; +} +ul.Bl-bullet:not(.Bl-compact) > li { + margin-top: 1em; +} +div.Bd-indent { + margin-left: 4ch; +} +table.Bl-column { + width: 100%; +} +table.foot { + margin-top: 1em; +} -div#cgit a.permalink { color: inherit; } +div#cgit a.permalink { + color: inherit; +} diff --git a/packages/deploy/deploy.sh b/packages/deploy/deploy.sh index 5e1b791..9e9715b 100644 --- a/packages/deploy/deploy.sh +++ b/packages/deploy/deploy.sh @@ -1,9 +1,9 @@ host=${1-picard} nixos-rebuild switch \ - --flake ".#${host}" \ - --target-host "root@${host}.fleet" \ - --build-host "root@${host}.fleet" \ - --option warn-dirty false \ - --fast \ - "${@:2}" + --flake ".#${host}" \ + --target-host "root@${host}.fleet" \ + --build-host "root@${host}.fleet" \ + --option warn-dirty false \ + --fast \ + "${@:2}" diff --git a/packages/emails-watcher/emails-watcher.py b/packages/emails-watcher/emails-watcher.py index b9716da..7188082 100644 --- a/packages/emails-watcher/emails-watcher.py +++ b/packages/emails-watcher/emails-watcher.py @@ -13,24 +13,21 @@ class MaildirHandler(FileSystemEventHandler): def on_created(self, event): if not event.is_directory: print(f"New email found: {event.src_path}") - with open(event.src_path, 'r') as email_file: + with open(event.src_path, "r") as email_file: msg = message_from_file(email_file) print(f'{msg["From"]}: {msg["Subject"]}') self.notifier.send( - title=msg["From"], - message=msg["Subject"], - sound=DEFAULT_SOUND, - icon=Icon(name="mail-message-new"), - timeout=20 + title=msg["From"], + message=msg["Subject"], + sound=DEFAULT_SOUND, + icon=Icon(name="mail-message-new"), + timeout=20, ) if __name__ == "__main__": maildir_new = os.path.expanduser(os.environ.get("INBOX_NEW")) - notifier = DesktopNotifierSync( - app_name="Mails", - notification_limit=10 - ) + notifier = DesktopNotifierSync(app_name="Mails", notification_limit=10) event_handler = MaildirHandler(notifier) observer = Observer() diff --git a/packages/forgejo-report-checks/forgejo-report-checks.py b/packages/forgejo-report-checks/forgejo-report-checks.py index 538399f..52004c4 100644 --- a/packages/forgejo-report-checks/forgejo-report-checks.py +++ b/packages/forgejo-report-checks/forgejo-report-checks.py @@ -4,18 +4,20 @@ from pyforgejo.models.create_status_option import CreateStatusOption import json from os import environ -client = AuthenticatedClient(base_url=environ["GITHUB_API_URL"], token=environ["GITHUB_TOKEN"]) +client = AuthenticatedClient( + base_url=environ["GITHUB_API_URL"], token=environ["GITHUB_TOKEN"] +) -with open('result.json', 'r') as file: +with open("result.json", "r") as file: data = json.load(file) print("Reporting statuses acording to the following result.json") print(json.dumps(data, indent=2)) -for result in data['results']: - attr = result['attr'] - success = result['success'] - type = result['type'] +for result in data["results"]: + attr = result["attr"] + success = result["success"] + type = result["type"] print(f"Report status success={success} for {type} {attr}") response = repo_create_status.sync_detailed( owner="aciceri", @@ -26,8 +28,10 @@ for result in data['results']: context=type, description=attr, target_url="https://git.aciceri.dev", # FIXME - state="success" if success else "failure" # may be pending,success,failure,error_message - ) + state=( + "success" if success else "failure" + ), # may be pending,success,failure,error_message + ), ) print("Done reporting statuses") diff --git a/packages/garmin-collector/garmin-collector.py b/packages/garmin-collector/garmin-collector.py index f296638..a61b4d3 100644 --- a/packages/garmin-collector/garmin-collector.py +++ b/packages/garmin-collector/garmin-collector.py @@ -66,8 +66,19 @@ class GarminCollector: def collect(self): try: body = self.api.get_daily_weigh_ins(today.isoformat())["totalAverage"] - metric_gauge = GaugeMetricFamily("body_composition", "Body composition and weight", labels=["metric"]) - for k in ["weight", "bmi", "bodyFat", "bodyWater", "boneMass", "muscleMass", "physiqueRating", "visceralFat"]: + metric_gauge = GaugeMetricFamily( + "body_composition", "Body composition and weight", labels=["metric"] + ) + for k in [ + "weight", + "bmi", + "bodyFat", + "bodyWater", + "boneMass", + "muscleMass", + "physiqueRating", + "visceralFat", + ]: metric_gauge.add_metric([k], body[k]) except Exception as e: print(f"Something went wrong while fetching body composition data\n{e}") @@ -79,4 +90,4 @@ if __name__ == "__main__": registry = CollectorRegistry() registry.register(GarminCollector()) - push_to_gateway(gateway_address, job='garmin', registry=registry) + push_to_gateway(gateway_address, job="garmin", registry=registry) diff --git a/packages/llm-workflow-engine/lock.json b/packages/llm-workflow-engine/lock.json index 061111f..c1c3e18 100644 --- a/packages/llm-workflow-engine/lock.json +++ b/packages/llm-workflow-engine/lock.json @@ -653,25 +653,11 @@ }, "targets": { "default": { - "aiohttp": [ - "aiosignal", - "attrs", - "frozenlist", - "multidict", - "yarl" - ], - "aiosignal": [ - "frozenlist" - ], - "alembic": [ - "mako", - "sqlalchemy", - "typing-extensions" - ], + "aiohttp": ["aiosignal", "attrs", "frozenlist", "multidict", "yarl"], + "aiosignal": ["frozenlist"], + "alembic": ["mako", "sqlalchemy", "typing-extensions"], "annotated-types": [], - "ansible": [ - "ansible-core" - ], + "ansible": ["ansible-core"], "ansible-core": [ "cryptography", "jinja2", @@ -679,45 +665,27 @@ "pyyaml", "resolvelib" ], - "anyio": [ - "idna", - "sniffio" - ], + "anyio": ["idna", "sniffio"], "argcomplete": [], "attrs": [], - "beautifulsoup4": [ - "soupsieve" - ], - "build": [ - "packaging", - "pyproject-hooks" - ], + "beautifulsoup4": ["soupsieve"], + "build": ["packaging", "pyproject-hooks"], "certifi": [], - "cffi": [ - "pycparser" - ], + "cffi": ["pycparser"], "chardet": [], "charset-normalizer": [], "click": [], "colorclass": [], "compressed-rtf": [], - "cryptography": [ - "cffi" - ], - "dataclasses-json": [ - "marshmallow", - "typing-inspect" - ], + "cryptography": ["cffi"], + "dataclasses-json": ["marshmallow", "typing-inspect"], "distro": [], "dnspython": [], "docutils": [], "docx2txt": [], "easygui": [], "ebcdic": [], - "email-validator": [ - "dnspython", - "idna" - ], + "email-validator": ["dnspython", "idna"], "et-xmlfile": [], "extract-msg": [ "beautifulsoup4", @@ -731,25 +699,12 @@ "frozenlist": [], "greenlet": [], "h11": [], - "httpcore": [ - "certifi", - "h11" - ], - "httpx": [ - "anyio", - "certifi", - "httpcore", - "idna", - "sniffio" - ], + "httpcore": ["certifi", "h11"], + "httpx": ["anyio", "certifi", "httpcore", "idna", "sniffio"], "idna": [], "iniconfig": [], - "jinja2": [ - "markupsafe" - ], - "jsonpatch": [ - "jsonpointer" - ], + "jinja2": ["markupsafe"], + "jsonpatch": ["jsonpointer"], "jsonpointer": [], "langchain": [ "aiohttp", @@ -785,42 +740,21 @@ "pyyaml", "tenacity" ], - "langchain-openai": [ - "langchain-core", - "openai", - "tiktoken" - ], - "langchain-text-splitters": [ - "langchain-core" - ], - "langsmith": [ - "orjson", - "pydantic", - "requests" - ], + "langchain-openai": ["langchain-core", "openai", "tiktoken"], + "langchain-text-splitters": ["langchain-core"], + "langsmith": ["orjson", "pydantic", "requests"], "lark": [], "lxml": [], - "mako": [ - "markupsafe" - ], - "markdown-it-py": [ - "mdurl" - ], + "mako": ["markupsafe"], + "markdown-it-py": ["mdurl"], "markupsafe": [], - "marshmallow": [ - "packaging" - ], + "marshmallow": ["packaging"], "mdurl": [], - "msoffcrypto-tool": [ - "cryptography", - "olefile" - ], + "msoffcrypto-tool": ["cryptography", "olefile"], "multidict": [], "mypy-extensions": [], "names": [], - "numexpr": [ - "numpy" - ], + "numexpr": ["numpy"], "numpy": [], "olefile": [], "oletools": [ @@ -840,16 +774,11 @@ "tqdm", "typing-extensions" ], - "openpyxl": [ - "et-xmlfile" - ], + "openpyxl": ["et-xmlfile"], "orjson": [], "packaging": [], "pcodedmp": [], - "pdfminer-six": [ - "charset-normalizer", - "cryptography" - ], + "pdfminer-six": ["charset-normalizer", "cryptography"], "pillow": [], "pip": [], "pip-tools": [ @@ -861,68 +790,31 @@ "wheel" ], "pluggy": [], - "prompt-toolkit": [ - "wcwidth" - ], + "prompt-toolkit": ["wcwidth"], "pycparser": [], - "pydantic": [ - "annotated-types", - "pydantic-core", - "typing-extensions" - ], - "pydantic-core": [ - "typing-extensions" - ], + "pydantic": ["annotated-types", "pydantic-core", "typing-extensions"], + "pydantic-core": ["typing-extensions"], "pygments": [], "pyparsing": [], "pyperclip": [], "pyproject-hooks": [], - "pytest": [ - "iniconfig", - "packaging", - "pluggy" - ], - "pytest-datadir": [ - "pytest" - ], - "python-frontmatter": [ - "pyyaml" - ], - "python-pptx": [ - "lxml", - "pillow", - "xlsxwriter" - ], + "pytest": ["iniconfig", "packaging", "pluggy"], + "pytest-datadir": ["pytest"], + "python-frontmatter": ["pyyaml"], + "python-pptx": ["lxml", "pillow", "xlsxwriter"], "pyyaml": [], "red-black-tree-mod": [], "regex": [], - "requests": [ - "certifi", - "charset-normalizer", - "idna", - "urllib3" - ], + "requests": ["certifi", "charset-normalizer", "idna", "urllib3"], "resolvelib": [], - "rich": [ - "markdown-it-py", - "pygments" - ], - "rtfde": [ - "lark", - "oletools" - ], + "rich": ["markdown-it-py", "pygments"], + "rtfde": ["lark", "oletools"], "setuptools": [], "six": [], "sniffio": [], "soupsieve": [], - "speechrecognition": [ - "requests", - "typing-extensions" - ], - "sqlalchemy": [ - "greenlet", - "typing-extensions" - ], + "speechrecognition": ["requests", "typing-extensions"], + "sqlalchemy": ["greenlet", "typing-extensions"], "tenacity": [], "textract": [ "argcomplete", @@ -937,29 +829,20 @@ "speechrecognition", "xlrd" ], - "tiktoken": [ - "regex", - "requests" - ], + "tiktoken": ["regex", "requests"], "tqdm": [], "typing-extensions": [], - "typing-inspect": [ - "mypy-extensions", - "typing-extensions" - ], + "typing-inspect": ["mypy-extensions", "typing-extensions"], "tzlocal": [], "urllib3": [], "wcwidth": [], "wheel": [], "xlrd": [], "xlsxwriter": [], - "yarl": [ - "idna", - "multidict" - ] + "yarl": ["idna", "multidict"] }, "dev": {} } }, "invalidationHash": "a27986828c1132303158dcfbfb7a64c0e01d82c698db3ac241b87bd30305aa83" -} \ No newline at end of file +} From 23e3c53693ef6588cf475b47db9168bea5b64a8b Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Mon, 30 Dec 2024 17:04:50 +0100 Subject: [PATCH 219/492] Add `copilot-node-server` to global shell --- hmModules/emacs/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/hmModules/emacs/default.nix b/hmModules/emacs/default.nix index 5eba7b8..b1d061c 100644 --- a/hmModules/emacs/default.nix +++ b/hmModules/emacs/default.nix @@ -46,6 +46,7 @@ in nodejs_20 qadwaitadecorations kdePackages.qtwayland + copilot-node-server ] ++ (with hunspellDicts; [ en_US-large From 49c94bcd62eea2340bf03c4f7f90bc5fcb5240ca Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Mon, 30 Dec 2024 17:05:03 +0100 Subject: [PATCH 220/492] Re-install `copilot` on emacs --- hmModules/emacs/init.el | 7 +++++++ packages/emacs/packages.nix | 16 ++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/hmModules/emacs/init.el b/hmModules/emacs/init.el index 450ebb5..42bd91b 100644 --- a/hmModules/emacs/init.el +++ b/hmModules/emacs/init.el @@ -171,6 +171,13 @@ (indent-bars-prefer-character 't) ;; so it works also in terminal ) +(use-package copilot + :custom + (copilot-max-char -1) + (copilot-indent-offset-warning-disable 't) + :hook (prog-mode org-mode) + :bind (("C-" . copilot-accept-completion))) + (use-package diredfl :config (diredfl-global-mode)) diff --git a/packages/emacs/packages.nix b/packages/emacs/packages.nix index d326f62..9abb207 100644 --- a/packages/emacs/packages.nix +++ b/packages/emacs/packages.nix @@ -44,6 +44,22 @@ let }; deps = [ elpaPackages.heap ]; }; + copilot = buildEmacsPackage { + name = "copilot"; + src = pkgs.fetchFromGitHub { + owner = "copilot-emacs"; + repo = "copilot.el"; + rev = "b7bff7b934837744688fd74191ecffb83b3bcc05"; + hash = "sha256-MEsjXQIeiTI6NXN5rTW7HfFPC18IZnhAssma2BZa0ks="; + }; + deps = with epkgs; [ + s + dash + editorconfig + jsonrpc + f + ]; + }; }; # *List* containing emacs packages from (M)ELPA From 16bcd5e813c46fd959990ca07c95a4aa69c6272c Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Mon, 30 Dec 2024 17:05:58 +0100 Subject: [PATCH 221/492] Enable `solidity-mode` on Emacs --- hmModules/emacs/init.el | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/hmModules/emacs/init.el b/hmModules/emacs/init.el index 42bd91b..f33aa1d 100644 --- a/hmModules/emacs/init.el +++ b/hmModules/emacs/init.el @@ -515,6 +515,15 @@ (eglot-ensure)))) :mode "\\.py\\'") +(use-package solidity-mode + :hook ((solidity-mode . (lambda () + (require 'eglot) + (add-to-list 'eglot-server-programs + '(solidity-mode . ("nomicfoundation-solidity-language-server" "--stdio"))) + (eglot-ensure)))) + :mode "\\.sol\\'") + + (use-package typescript-ts-mode :hook ((typescript-ts-mode . (lambda () (require 'eglot) From 6b795f755791495152512758db476e75057eb05e Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Mon, 30 Dec 2024 17:06:17 +0100 Subject: [PATCH 222/492] Enable `jellyfin` on `sisko` --- hosts/sisko/default.nix | 1 + modules/cloudflare-dyndns/default.nix | 3 +-- modules/jellyfin/default.nix | 14 ++++++++++++++ 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/hosts/sisko/default.nix b/hosts/sisko/default.nix index b67b313..e5d6e87 100644 --- a/hosts/sisko/default.nix +++ b/hosts/sisko/default.nix @@ -31,6 +31,7 @@ "paperless" "syncthing" "atticd" + "jellyfin" ] ++ [ ./disko.nix diff --git a/modules/cloudflare-dyndns/default.nix b/modules/cloudflare-dyndns/default.nix index e86c6b6..9aaab39 100644 --- a/modules/cloudflare-dyndns/default.nix +++ b/modules/cloudflare-dyndns/default.nix @@ -14,8 +14,7 @@ "vpn.aciceri.dev" "photos.aciceri.dev" "status.aciceri.dev" - "paper.aciceri.dev" - "cloud.aciceri.dev" + "jelly.aciceri.dev" ]; apiTokenFile = config.age.secrets.cloudflare-dyndns-api-token.path; }; diff --git a/modules/jellyfin/default.nix b/modules/jellyfin/default.nix index 33e1cd1..51e066a 100644 --- a/modules/jellyfin/default.nix +++ b/modules/jellyfin/default.nix @@ -1,7 +1,21 @@ +{ config, ... }: { services.jellyfin = { enable = true; + openFirewall = true; }; users.users.jellyfin.extraGroups = [ "transmission" ]; + + environment.persistence."/persist".directories = [ + config.services.jellyfin.dataDir + ]; + + services.nginx.virtualHosts = { + "jelly.aciceri.dev" = { + enableACME = true; + forceSSL = true; + locations."/".proxyPass = "http://127.0.0.1:8096"; + }; + }; } From 57be38c32f6d91d4cf9e2f0104865dfbba127dfe Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Tue, 31 Dec 2024 10:23:00 +0100 Subject: [PATCH 223/492] Update flake inputs --- flake.lock | 462 ++++++++++++++++++++++++++++++++++++++--------------- flake.nix | 7 +- 2 files changed, 338 insertions(+), 131 deletions(-) diff --git a/flake.lock b/flake.lock index 581f5da..4ccd5fb 100644 --- a/flake.lock +++ b/flake.lock @@ -22,12 +22,21 @@ } }, "catppuccin": { + "inputs": { + "catppuccin-v1_1": "catppuccin-v1_1", + "catppuccin-v1_2": "catppuccin-v1_2", + "home-manager": "home-manager_2", + "home-manager-stable": "home-manager-stable", + "nixpkgs": "nixpkgs_2", + "nixpkgs-stable": "nixpkgs-stable", + "nuscht-search": "nuscht-search" + }, "locked": { - "lastModified": 1731232837, - "narHash": "sha256-0aIwr/RC/oe7rYkfJb47xjdEQDSNcqpFGsEa+EPlDEs=", + "lastModified": 1735569271, + "narHash": "sha256-4CIClg4LMcmcCRIXSTcHDe6ujPzlxMtbCjMH7ntV784=", "owner": "catppuccin", "repo": "nix", - "rev": "32359bf226fe874d3b7a0a5753d291a4da9616fe", + "rev": "7413a65b3ed37964c16e2fbe20145b55bcda8281", "type": "github" }, "original": { @@ -36,13 +45,41 @@ "type": "github" } }, + "catppuccin-v1_1": { + "locked": { + "lastModified": 1734055249, + "narHash": "sha256-pCWJgwo77KD7EJpwynwKrWPZ//dwypHq2TfdzZWqK68=", + "rev": "7221d6ca17ac36ed20588e1c3a80177ac5843fa7", + "revCount": 326, + "type": "tarball", + "url": "https://api.flakehub.com/f/pinned/catppuccin/nix/1.1.1/0193bdc0-b045-7eed-bbec-95611a8ecdf5/source.tar.gz" + }, + "original": { + "type": "tarball", + "url": "https://flakehub.com/f/catppuccin/nix/1.1.%2A.tar.gz" + } + }, + "catppuccin-v1_2": { + "locked": { + "lastModified": 1734728407, + "narHash": "sha256-Let3uJo4YDyfqbqaw66dpZxhJB2TrDyZWSFd5rpPLJA=", + "rev": "23ee86dbf4ed347878115a78971d43025362fab1", + "revCount": 341, + "type": "tarball", + "url": "https://api.flakehub.com/f/pinned/catppuccin/nix/1.2.0/0193e5e0-33b7-7149-a362-bfe56b20f64e/source.tar.gz" + }, + "original": { + "type": "tarball", + "url": "https://flakehub.com/f/catppuccin/nix/1.2.%2A.tar.gz" + } + }, "crane": { "locked": { - "lastModified": 1730652660, - "narHash": "sha256-+XVYfmVXAiYA0FZT7ijHf555dxCe+AoAT5A6RU+6vSo=", + "lastModified": 1731098351, + "narHash": "sha256-HQkYvKvaLQqNa10KEFGgWHfMAbWBfFp+4cAgkut+NNE=", "owner": "ipetkov", "repo": "crane", - "rev": "a4ca93905455c07cb7e3aca95d4faf7601cba458", + "rev": "ef80ead953c1b28316cc3f8613904edc2eb90c28", "type": "github" }, "original": { @@ -80,11 +117,11 @@ ] }, "locked": { - "lastModified": 1731549112, - "narHash": "sha256-c9I3i1CwZ10SoM5npQQVnfwgvB86jAS3lT4ZqkRoSOI=", + "lastModified": 1735468753, + "narHash": "sha256-2dt1nOe9zf9pDkf5Kn7FUFyPRo581s0n90jxYXJ94l0=", "owner": "nix-community", "repo": "disko", - "rev": "5fd852c4155a689098095406500d0ae3d04654a8", + "rev": "84a5b93637cc16cbfcc61b6e1684d626df61eb21", "type": "github" }, "original": { @@ -95,16 +132,16 @@ }, "dream2nix": { "inputs": { - "nixpkgs": "nixpkgs_2", + "nixpkgs": "nixpkgs_3", "purescript-overlay": "purescript-overlay", "pyproject-nix": "pyproject-nix" }, "locked": { - "lastModified": 1731424167, - "narHash": "sha256-nKKeRwq7mxcW8cBTmPKzSg0DR/inVrtuJudVM81GISU=", + "lastModified": 1735160684, + "narHash": "sha256-n5CwhmqKxifuD4Sq4WuRP/h5LO6f23cGnSAuJemnd/4=", "owner": "nix-community", "repo": "dream2nix", - "rev": "44d41411686bc798876bd6d9f36a4c1143138d85", + "rev": "8ce6284ff58208ed8961681276f82c2f8f978ef4", "type": "github" }, "original": { @@ -115,15 +152,15 @@ }, "emacs-overlay": { "inputs": { - "nixpkgs": "nixpkgs_3", - "nixpkgs-stable": "nixpkgs-stable" + "nixpkgs": "nixpkgs_4", + "nixpkgs-stable": "nixpkgs-stable_2" }, "locked": { - "lastModified": 1731574827, - "narHash": "sha256-QneOtCpfBNkgJCs32Y8LaKDpontw7W9ATQxIW4qb6qc=", + "lastModified": 1735575692, + "narHash": "sha256-akoVz7FBTAqLEj2bFLbA3Zqs1V7eF9J6KluWWojsxd0=", "owner": "nix-community", "repo": "emacs-overlay", - "rev": "4639038b0f5e66e7d0f3d103b8e44ded3ab7e337", + "rev": "eab2ed354a88a6870ffca4980abb470bba0e4452", "type": "github" }, "original": { @@ -230,11 +267,11 @@ ] }, "locked": { - "lastModified": 1722555600, - "narHash": "sha256-XOQkdLafnb/p9ij77byFQjDf5m5QYl9b2REiVClC+x4=", + "lastModified": 1733312601, + "narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "8471fe90ad337a8074e957b69ca4d0089218391d", + "rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9", "type": "github" }, "original": { @@ -304,6 +341,24 @@ "inputs": { "systems": "systems_3" }, + "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" + } + }, + "flake-utils_3": { + "inputs": { + "systems": "systems_4" + }, "locked": { "lastModified": 1681202837, "narHash": "sha256-H+Rh19JDwRtpVPAWp64F+rlEtxUWBAQW28eAi3SRSzg=", @@ -323,11 +378,11 @@ "nixpkgs-lib": "nixpkgs-lib" }, "locked": { - "lastModified": 1730504689, - "narHash": "sha256-hgmguH29K2fvs9szpq2r3pz2/8cJd2LPS+b4tfNFCwE=", + "lastModified": 1733312601, + "narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "506278e768c2a08bec68eb62932193e341f55c90", + "rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9", "type": "github" }, "original": { @@ -358,14 +413,14 @@ "nixpkgs": [ "nixpkgs" ], - "nixpkgs-stable": "nixpkgs-stable_2" + "nixpkgs-stable": "nixpkgs-stable_3" }, "locked": { - "lastModified": 1731363552, - "narHash": "sha256-vFta1uHnD29VUY4HJOO/D6p6rxyObnf+InnSMT4jlMU=", + "lastModified": 1734797603, + "narHash": "sha256-ulZN7ps8nBV31SE+dwkDvKIzvN6hroRY8sYOT0w+E28=", "owner": "cachix", "repo": "git-hooks.nix", - "rev": "cd1af27aa85026ac759d5d3fccf650abe7e1bbf0", + "rev": "f0f0dc4920a903c3e08f5bdb9246bb572fcae498", "type": "github" }, "original": { @@ -420,7 +475,7 @@ "hercules-ci-effects": { "inputs": { "flake-parts": "flake-parts_5", - "nixpkgs": "nixpkgs_6" + "nixpkgs": "nixpkgs_7" }, "locked": { "lastModified": 1701009247, @@ -457,7 +512,50 @@ "type": "github" } }, + "home-manager-stable": { + "inputs": { + "nixpkgs": [ + "catppuccin", + "nixpkgs-stable" + ] + }, + "locked": { + "lastModified": 1734366194, + "narHash": "sha256-vykpJ1xsdkv0j8WOVXrRFHUAdp9NXHpxdnn1F4pYgSw=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "80b0fdf483c5d1cb75aaad909bd390d48673857f", + "type": "github" + }, + "original": { + "owner": "nix-community", + "ref": "release-24.11", + "repo": "home-manager", + "type": "github" + } + }, "home-manager_2": { + "inputs": { + "nixpkgs": [ + "catppuccin", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1734622215, + "narHash": "sha256-OOfI0XhSJGHblfdNDhfnn8QnZxng63rWk9eeJ2tCbiI=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "1395379a7a36e40f2a76e7b9936cc52950baa1be", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "home-manager", + "type": "github" + } + }, + "home-manager_3": { "inputs": { "nixpkgs": [ "nix-on-droid", @@ -485,11 +583,11 @@ ] }, "locked": { - "lastModified": 1733389730, - "narHash": "sha256-KZMu4ddMll5khS0rYkJsVD0hVqjMNHlhTM3PCQar0Ag=", + "lastModified": 1735381016, + "narHash": "sha256-CyCZFhMUkuYbSD6bxB/r43EdmDE7hYeZZPTCv0GudO4=", "owner": "nix-community", "repo": "home-manager", - "rev": "65912bc6841cf420eb8c0a20e03df7cbbff5963f", + "rev": "10e99c43cdf4a0713b4e81d90691d22c6a58bdf2", "type": "github" }, "original": { @@ -521,11 +619,11 @@ }, "impermanence": { "locked": { - "lastModified": 1731242966, - "narHash": "sha256-B3C3JLbGw0FtLSWCjBxU961gLNv+BOOBC6WvstKLYMw=", + "lastModified": 1734945620, + "narHash": "sha256-olIfsfJK4/GFmPH8mXMmBDAkzVQ1TWJmeGT3wBGfQPY=", "owner": "nix-community", "repo": "impermanence", - "rev": "3ed3f0eaae9fcc0a8331e77e9319c8a4abd8a71a", + "rev": "d000479f4f41390ff7cf9204979660ad5dd16176", "type": "github" }, "original": { @@ -534,6 +632,34 @@ "type": "github" } }, + "ixx": { + "inputs": { + "flake-utils": [ + "catppuccin", + "nuscht-search", + "flake-utils" + ], + "nixpkgs": [ + "catppuccin", + "nuscht-search", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1729958008, + "narHash": "sha256-EiOq8jF4Z/zQe0QYVc3+qSKxRK//CFHMB84aYrYGwEs=", + "owner": "NuschtOS", + "repo": "ixx", + "rev": "9fd01aad037f345350eab2cd45e1946cc66da4eb", + "type": "github" + }, + "original": { + "owner": "NuschtOS", + "ref": "v0.0.6", + "repo": "ixx", + "type": "github" + } + }, "lanzaboote": { "inputs": { "crane": "crane", @@ -546,11 +672,11 @@ "rust-overlay": "rust-overlay" }, "locked": { - "lastModified": 1730739295, - "narHash": "sha256-aYeJ/P/9AuK6Kee63ZdsmDjEwhnksF+gIv/OyGtlBJE=", + "lastModified": 1734994463, + "narHash": "sha256-S9MgfQjNt4J3I7obdLOVY23h+Yl/hnyibwGfOl+1uOE=", "owner": "nix-community", "repo": "lanzaboote", - "rev": "cef39a78679c266300874e7a7000b4da066228d4", + "rev": "93e6f0d77548be8757c11ebda5c4235ef4f3bc67", "type": "github" }, "original": { @@ -562,15 +688,15 @@ "lix": { "flake": false, "locked": { - "lastModified": 1728951119, - "narHash": "sha256-vUBgL8zJBDyj2serxdEVbNqe6pBN4YgWwhtg3XP8mpQ=", - "rev": "f6077314fa6aff862758095bb55fe844e9162a1d", - "revCount": 16344, + "lastModified": 1735572323, + "narHash": "sha256-Wjt+PK15IdaOUoI0sgsRzaNMxKQGSROLe9sOd44+fwM=", + "ref": "refs/heads/main", + "rev": "5c7ea4f446de58aa64f78087bb4ec26b9c4111aa", + "revCount": 16600, "type": "git", "url": "https://git@git.lix.systems/lix-project/lix" }, "original": { - "rev": "f6077314fa6aff862758095bb55fe844e9162a1d", "type": "git", "url": "https://git@git.lix.systems/lix-project/lix" } @@ -588,11 +714,11 @@ "treefmt-nix": "treefmt-nix" }, "locked": { - "lastModified": 1732351635, - "narHash": "sha256-H94CcQ3yamG5+RMxtxXllR02YIlxQ5WD/8PcolO9yEA=", + "lastModified": 1733522041, + "narHash": "sha256-KpKmFgcUGQlAWhLUHyBn3AnTJLp7Kt82q2Cxfp3Yf44=", "ref": "refs/heads/main", - "rev": "dfc286ca3dc49118c30d8d6205d6d6af76c62b7a", - "revCount": 617, + "rev": "df3edf37301cdc77ca5bd5f3f6fcccd6d0befee5", + "revCount": 619, "type": "git", "url": "https://git.lix.systems/lix-project/nix-eval-jobs" }, @@ -603,7 +729,7 @@ }, "lix-module": { "inputs": { - "flake-utils": "flake-utils", + "flake-utils": "flake-utils_2", "flakey-profile": "flakey-profile", "lix": [ "lix" @@ -613,11 +739,11 @@ ] }, "locked": { - "lastModified": 1732603698, - "narHash": "sha256-Jw2MhzgCCrKV2MJytehG0cCLIAosBX71p8qmQ6XQlR4=", + "lastModified": 1733522213, + "narHash": "sha256-H+Pk19MzvI/TAbXWimUPZAoKkD56OSyxJBm8lVIA5n0=", "ref": "refs/heads/main", - "rev": "15b999f9c958c475f71fb8c543b9fc2f36ae8730", - "revCount": 123, + "rev": "c374ebf5548c7b6d4bf884369a5b6879cfc916ea", + "revCount": 124, "type": "git", "url": "https://git.lix.systems/lix-project/nixos-module" }, @@ -629,11 +755,11 @@ "mobile-nixos": { "flake": false, "locked": { - "lastModified": 1730912712, - "narHash": "sha256-T5A9I6Tfh9zrv9sRWfu/ZKN6VkE670YQ6bjC5sbpTzk=", + "lastModified": 1735176114, + "narHash": "sha256-PxPYz/EFJDtSVrtca14l7crlASkJG2jVrQNpbMzmAcY=", "owner": "NixOS", "repo": "mobile-nixos", - "rev": "2268e358ed407d9c0a4499ae767d105eeaeec586", + "rev": "595d359518864a13483fd3f4f4ad740cb3bae825", "type": "github" }, "original": { @@ -651,11 +777,11 @@ "treefmt-nix": "treefmt-nix_2" }, "locked": { - "lastModified": 1730278911, - "narHash": "sha256-CrbqsC+lEA3w6gLfpqfDMDEKoEta2sl4sbQK6Z/gXak=", + "lastModified": 1734716067, + "narHash": "sha256-BCpd50t/3JU4ydiNfJxH3LzQDzyGbBI0CKWaeplnkVg=", "owner": "Mic92", "repo": "nix-fast-build", - "rev": "8e7c9d76979381441facb8888f21408312cf177a", + "rev": "ed736c65a8cb58a85369f6ee1c3f4403aa904fcc", "type": "github" }, "original": { @@ -713,9 +839,9 @@ }, "nix-on-droid": { "inputs": { - "home-manager": "home-manager_2", + "home-manager": "home-manager_3", "nix-formatter-pack": "nix-formatter-pack", - "nixpkgs": "nixpkgs_4", + "nixpkgs": "nixpkgs_5", "nixpkgs-docs": "nixpkgs-docs", "nixpkgs-for-bootstrap": "nixpkgs-for-bootstrap", "nmd": "nmd" @@ -736,14 +862,14 @@ }, "nixDarwin": { "inputs": { - "nixpkgs": "nixpkgs_5" + "nixpkgs": "nixpkgs_6" }, "locked": { - "lastModified": 1731454423, - "narHash": "sha256-TtwvgFxUa0wyptLhQbKaixgNW1UXf3+TDqfX3Kp63oM=", + "lastModified": 1735478292, + "narHash": "sha256-Ys9pSP9ch0SthhpbjnkCSJ9ZLfaNKnt/dcy7swjmS1A=", "owner": "LnL7", "repo": "nix-darwin", - "rev": "6c71c49e2448e51ad830ed211024e6d0edc50116", + "rev": "71a3a075e3229a7518d76636bb762aef2bcb73ac", "type": "github" }, "original": { @@ -756,17 +882,15 @@ "inputs": { "flake-parts": "flake-parts_4", "hercules-ci-effects": "hercules-ci-effects", - "nixpkgs": [ - "nixpkgs" - ], + "nixpkgs": "nixpkgs_8", "osx-kvm": "osx-kvm" }, "locked": { - "lastModified": 1731194612, - "narHash": "sha256-xOvzIdIFzy1LUgGLlOcimeHruZPLJpVdeEoHVOpH7sM=", + "lastModified": 1734291592, + "narHash": "sha256-6jc7RzRLAnoUjgqJizWdOBmYbp49UBpOlqZeDw8SCjc=", "owner": "MatthewCroughan", "repo": "NixThePlanet", - "rev": "ef5fad336a55fcbb0680ad21aa58812b2f826435", + "rev": "b70d951ab433806e44a6b366367af55c469da52d", "type": "github" }, "original": { @@ -777,11 +901,11 @@ }, "nixosHardware": { "locked": { - "lastModified": 1731403644, - "narHash": "sha256-T9V7CTucjRZ4Qc6pUEV/kpgNGzQbHWfGcfK6JJLfUeI=", + "lastModified": 1735388221, + "narHash": "sha256-e5IOgjQf0SZcFCEV/gMGrsI0gCJyqOKShBQU0iiM3Kg=", "owner": "NixOS", "repo": "nixos-hardware", - "rev": "f6581f1c3b137086e42a08a906bdada63045f991", + "rev": "7c674c6734f61157e321db595dbfcd8523e04e19", "type": "github" }, "original": { @@ -840,14 +964,14 @@ }, "nixpkgs-lib": { "locked": { - "lastModified": 1730504152, - "narHash": "sha256-lXvH/vOfb4aGYyvFmZK/HlsNsr/0CVWlwYvo2rxJk3s=", + "lastModified": 1733096140, + "narHash": "sha256-1qRH7uAUsyQI7R1Uwl4T+XvdNv778H0Nb5njNrqvylY=", "type": "tarball", - "url": "https://github.com/NixOS/nixpkgs/archive/cc2f28000298e1269cea6612cd06ec9979dd5d7f.tar.gz" + "url": "https://github.com/NixOS/nixpkgs/archive/5487e69da40cbd611ab2cadee0b4637225f7cfae.tar.gz" }, "original": { "type": "tarball", - "url": "https://github.com/NixOS/nixpkgs/archive/cc2f28000298e1269cea6612cd06ec9979dd5d7f.tar.gz" + "url": "https://github.com/NixOS/nixpkgs/archive/5487e69da40cbd611ab2cadee0b4637225f7cfae.tar.gz" } }, "nixpkgs-lib_2": { @@ -870,21 +994,37 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1731386116, - "narHash": "sha256-lKA770aUmjPHdTaJWnP3yQ9OI1TigenUqVC3wweqZuI=", + "lastModified": 1734600368, + "narHash": "sha256-nbG9TijTMcfr+au7ZVbKpAhMJzzE2nQBYmRvSdXUD8g=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "689fed12a013f56d4c4d3f612489634267d86529", + "rev": "b47fd6fa00c6afca88b8ee46cfdb00e104f50bca", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixos-24.05", + "ref": "nixos-24.11", "repo": "nixpkgs", "type": "github" } }, "nixpkgs-stable_2": { + "locked": { + "lastModified": 1735531152, + "narHash": "sha256-As8I+ebItDKtboWgDXYZSIjGlKeqiLBvjxsQHUmAf1Q=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "3ffbbdbac0566a0977da3d2657b89cbcfe9a173b", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-24.11", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-stable_3": { "locked": { "lastModified": 1730741070, "narHash": "sha256-edm8WG19kWozJ/GqyYx2VjW99EdhjKwbY3ZwdlPAAlo=", @@ -900,13 +1040,13 @@ "type": "github" } }, - "nixpkgs-stable_3": { + "nixpkgs-stable_4": { "locked": { - "lastModified": 1720386169, - "narHash": "sha256-NGKVY4PjzwAa4upkGtAMz1npHGoRzWotlSnVlqI40mo=", + "lastModified": 1730741070, + "narHash": "sha256-edm8WG19kWozJ/GqyYx2VjW99EdhjKwbY3ZwdlPAAlo=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "194846768975b7ad2c4988bdb82572c00222c0d7", + "rev": "d063c1dd113c91ab27959ba540c0d9753409edf3", "type": "github" }, "original": { @@ -916,7 +1056,37 @@ "type": "github" } }, + "nixpkgs_10": { + "locked": { + "lastModified": 1682134069, + "narHash": "sha256-TnI/ZXSmRxQDt2sjRYK/8j8iha4B4zP2cnQCZZ3vp7k=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "fd901ef4bf93499374c5af385b2943f5801c0833", + "type": "github" + }, + "original": { + "id": "nixpkgs", + "type": "indirect" + } + }, "nixpkgs_2": { + "locked": { + "lastModified": 1734424634, + "narHash": "sha256-cHar1vqHOOyC7f1+tVycPoWTfKIaqkoe1Q6TnKzuti4=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "d3c42f187194c26d9f0309a8ecc469d6c878ce33", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_3": { "locked": { "lastModified": 1729850857, "narHash": "sha256-WvLXzNNnnw+qpFOmgaM3JUlNEH+T4s22b5i2oyyCpXE=", @@ -932,13 +1102,13 @@ "type": "github" } }, - "nixpkgs_3": { + "nixpkgs_4": { "locked": { - "lastModified": 1731319897, - "narHash": "sha256-PbABj4tnbWFMfBp6OcUK5iGy1QY+/Z96ZcLpooIbuEI=", + "lastModified": 1735471104, + "narHash": "sha256-0q9NGQySwDQc7RhAV2ukfnu7Gxa5/ybJ2ANT8DQrQrs=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "dc460ec76cbff0e66e269457d7b728432263166c", + "rev": "88195a94f390381c6afcdaa933c2f6ff93959cb4", "type": "github" }, "original": { @@ -948,7 +1118,7 @@ "type": "github" } }, - "nixpkgs_4": { + "nixpkgs_5": { "locked": { "lastModified": 1708172716, "narHash": "sha256-3M94oln0b61m3dUmLyECCA9hYAHXZEszM4saE3CmQO4=", @@ -963,7 +1133,7 @@ "type": "github" } }, - "nixpkgs_5": { + "nixpkgs_6": { "locked": { "lastModified": 1718149104, "narHash": "sha256-Ds1QpobBX2yoUDx9ZruqVGJ/uQPgcXoYuobBguyKEh8=", @@ -977,7 +1147,7 @@ "type": "indirect" } }, - "nixpkgs_6": { + "nixpkgs_7": { "locked": { "lastModified": 1697723726, "narHash": "sha256-SaTWPkI8a5xSHX/rrKzUe+/uVNy6zCGMXgoeMb7T9rg=", @@ -993,13 +1163,29 @@ "type": "github" } }, - "nixpkgs_7": { + "nixpkgs_8": { "locked": { - "lastModified": 1733212471, - "narHash": "sha256-M1+uCoV5igihRfcUKrr1riygbe73/dzNnzPsmaLCmpo=", + "lastModified": 1735471104, + "narHash": "sha256-0q9NGQySwDQc7RhAV2ukfnu7Gxa5/ybJ2ANT8DQrQrs=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "88195a94f390381c6afcdaa933c2f6ff93959cb4", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_9": { + "locked": { + "lastModified": 1735471104, + "narHash": "sha256-0q9NGQySwDQc7RhAV2ukfnu7Gxa5/ybJ2ANT8DQrQrs=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "55d15ad12a74eb7d4646254e13638ad0c4128776", + "rev": "88195a94f390381c6afcdaa933c2f6ff93959cb4", "type": "github" }, "original": { @@ -1009,20 +1195,6 @@ "type": "github" } }, - "nixpkgs_8": { - "locked": { - "lastModified": 1682134069, - "narHash": "sha256-TnI/ZXSmRxQDt2sjRYK/8j8iha4B4zP2cnQCZZ3vp7k=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "fd901ef4bf93499374c5af385b2943f5801c0833", - "type": "github" - }, - "original": { - "id": "nixpkgs", - "type": "indirect" - } - }, "nmd": { "inputs": { "nixpkgs": [ @@ -1061,6 +1233,29 @@ "type": "gitlab" } }, + "nuscht-search": { + "inputs": { + "flake-utils": "flake-utils", + "ixx": "ixx", + "nixpkgs": [ + "catppuccin", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1733773348, + "narHash": "sha256-Y47y+LesOCkJaLvj+dI/Oa6FAKj/T9sKVKDXLNsViPw=", + "owner": "NuschtOS", + "repo": "search", + "rev": "3051be7f403bff1d1d380e4612f0c70675b44fc9", + "type": "github" + }, + "original": { + "owner": "NuschtOS", + "repo": "search", + "type": "github" + } + }, "osx-kvm": { "flake": false, "locked": { @@ -1088,14 +1283,14 @@ "lanzaboote", "nixpkgs" ], - "nixpkgs-stable": "nixpkgs-stable_3" + "nixpkgs-stable": "nixpkgs-stable_4" }, "locked": { - "lastModified": 1730302582, - "narHash": "sha256-W1MIJpADXQCgosJZT8qBYLRuZls2KSiKdpnTVdKBuvU=", + "lastModified": 1731363552, + "narHash": "sha256-vFta1uHnD29VUY4HJOO/D6p6rxyObnf+InnSMT4jlMU=", "owner": "cachix", "repo": "pre-commit-hooks.nix", - "rev": "af8a16fe5c264f5e9e18bcee2859b40a656876cf", + "rev": "cd1af27aa85026ac759d5d3fccf650abe7e1bbf0", "type": "github" }, "original": { @@ -1166,7 +1361,7 @@ "nixDarwin": "nixDarwin", "nixThePlanet": "nixThePlanet", "nixosHardware": "nixosHardware", - "nixpkgs": "nixpkgs_7", + "nixpkgs": "nixpkgs_9", "treefmt-nix": "treefmt-nix_3", "vscode-server": "vscode-server" } @@ -1179,11 +1374,11 @@ ] }, "locked": { - "lastModified": 1730601085, - "narHash": "sha256-Sgax33jGuvVHTjl1P78IwzlhAGyOxtx5Q26inKja8S4=", + "lastModified": 1731897198, + "narHash": "sha256-Ou7vLETSKwmE/HRQz4cImXXJBr/k9gp4J4z/PF8LzTE=", "owner": "oxalica", "repo": "rust-overlay", - "rev": "8d1b40f8dfd7539aaa3de56e207e22b3cc451825", + "rev": "0be641045af6d8666c11c2c40e45ffc9667839b5", "type": "github" }, "original": { @@ -1275,6 +1470,21 @@ "type": "github" } }, + "systems_4": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, "treefmt-nix": { "inputs": { "nixpkgs": [ @@ -1304,11 +1514,11 @@ ] }, "locked": { - "lastModified": 1723808491, - "narHash": "sha256-rhis3qNuGmJmYC/okT7Dkc4M8CeUuRCSvW6kC2f3hBc=", + "lastModified": 1734543842, + "narHash": "sha256-/QceWozrNg915Db9x/Ie5k67n9wKgGdTFng+Z1Qw0kE=", "owner": "numtide", "repo": "treefmt-nix", - "rev": "1d07739554fdc4f8481068f1b11d6ab4c1a4167a", + "rev": "76159fc74eeac0599c3618e3601ac2b980a29263", "type": "github" }, "original": { @@ -1324,11 +1534,11 @@ ] }, "locked": { - "lastModified": 1730321837, - "narHash": "sha256-vK+a09qq19QNu2MlLcvN4qcRctJbqWkX7ahgPZ/+maI=", + "lastModified": 1735135567, + "narHash": "sha256-8T3K5amndEavxnludPyfj3Z1IkcFdRpR23q+T0BVeZE=", "owner": "numtide", "repo": "treefmt-nix", - "rev": "746901bb8dba96d154b66492a29f5db0693dbfcc", + "rev": "9e09d30a644c57257715902efbb3adc56c79cf28", "type": "github" }, "original": { @@ -1339,8 +1549,8 @@ }, "vscode-server": { "inputs": { - "flake-utils": "flake-utils_2", - "nixpkgs": "nixpkgs_8" + "flake-utils": "flake-utils_3", + "nixpkgs": "nixpkgs_10" }, "locked": { "lastModified": 1729422940, diff --git a/flake.nix b/flake.nix index e42bff9..ff70299 100644 --- a/flake.nix +++ b/flake.nix @@ -28,16 +28,13 @@ inputs.nixpkgs.follows = "nixpkgs"; }; dream2nix.url = "github:nix-community/dream2nix"; - nixThePlanet = { - url = "github:MatthewCroughan/NixThePlanet/"; - inputs.nixpkgs.follows = "nixpkgs"; - }; + nixThePlanet.url = "github:MatthewCroughan/NixThePlanet"; # not following nixpkgs on purpose nixDarwin = { url = "github:LnL7/nix-darwin"; }; nix-on-droid.url = "github:nix-community/nix-on-droid"; lix = { - url = "git+https://git@git.lix.systems/lix-project/lix?rev=f6077314fa6aff862758095bb55fe844e9162a1d"; # FIXME update + url = "git+https://git@git.lix.systems/lix-project/lix"; # FIXME update flake = false; }; lix-module = { From 9116e95a036866594a612dc0c55f007306282eb1 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Tue, 31 Dec 2024 10:23:18 +0100 Subject: [PATCH 224/492] Remove `pkgsStable` argument --- hosts/module.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/hosts/module.nix b/hosts/module.nix index 03cc8d6..a59d4e6 100644 --- a/hosts/module.nix +++ b/hosts/module.nix @@ -287,7 +287,6 @@ in _module.args = { age = config.age or { }; fleetFlake = self; - pkgsStable = inputs.nixpkgsStable.legacyPackages.${pkgs.system}; }; }; } From d0efa40c63069ead163af5394b99cb41f8242fcb Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Tue, 31 Dec 2024 10:23:34 +0100 Subject: [PATCH 225/492] Downgrade to Emacs Unstable from Emacs Git (master) --- packages/emacs/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/emacs/default.nix b/packages/emacs/default.nix index fe77b46..9bb0125 100644 --- a/packages/emacs/default.nix +++ b/packages/emacs/default.nix @@ -19,7 +19,7 @@ let cp $f $out/"libtree-sitter-$(basename $f)" done ''; - emacsWithoutPackages = pkgs'.emacs-git.override { + emacsWithoutPackages = pkgs'.emacs-unstable.override { withSQLite3 = true; withWebP = true; withPgtk = true; From 3c92306ca31a0ebbdb3733342daa8ae284683d48 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Tue, 31 Dec 2024 10:23:54 +0100 Subject: [PATCH 226/492] Downgrade to Gerbera from Nixpkgs Stable (unstable is broken for aarch64-linux) --- modules/mediatomb/default.nix | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/modules/mediatomb/default.nix b/modules/mediatomb/default.nix index d3e85b0..7a2eba2 100644 --- a/modules/mediatomb/default.nix +++ b/modules/mediatomb/default.nix @@ -1,6 +1,11 @@ +{ pkgs, ... }: { services.mediatomb = { enable = true; + # FIXME remove when fixed + package = + (builtins.getFlake "github:NixOs/nixpkgs/3ffbbdbac0566a0977da3d2657b89cbcfe9a173b") + .legacyPackages.${pkgs.stdenv.system}.gerbera; openFirewall = true; serverName = "Sisko"; mediaDirectories = [ From 7ffbe8ac248c4afa6bac5607a7734ff564113a89 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Tue, 31 Dec 2024 10:24:16 +0100 Subject: [PATCH 227/492] Disable `guix` --- hosts/picard/default.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/hosts/picard/default.nix b/hosts/picard/default.nix index 53278b2..42bf4f9 100644 --- a/hosts/picard/default.nix +++ b/hosts/picard/default.nix @@ -39,7 +39,6 @@ "sunshine" "mount-sisko" "adb" - "guix" "prometheus-exporters" "promtail" ] From cae8bb47ce1f7419ad1173cd25dc9bb11a40f590 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Tue, 31 Dec 2024 10:24:23 +0100 Subject: [PATCH 228/492] Try fixing `tremotesf` start when booting --- hmModules/tremotesf/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hmModules/tremotesf/default.nix b/hmModules/tremotesf/default.nix index 82c1336..4078e06 100644 --- a/hmModules/tremotesf/default.nix +++ b/hmModules/tremotesf/default.nix @@ -16,7 +16,7 @@ }; Service = { - ExecStart = "${lib.getExe pkgs.tremotesf} --minimized"; + ExecStart = "${lib.getExe' pkgs.coreutils "sleep"} 5 && ${lib.getExe pkgs.tremotesf} --minimized"; Restart = "on-failure"; RestartSec = 3; }; From 1b24f5f0653142d4e66d77d4c47970f4d2ac644d Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Tue, 31 Dec 2024 10:25:00 +0100 Subject: [PATCH 229/492] `element-desktop-wayland` -> `element-desktop` --- hmModules/element/default.nix | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/hmModules/element/default.nix b/hmModules/element/default.nix index 34266c3..0246fe5 100644 --- a/hmModules/element/default.nix +++ b/hmModules/element/default.nix @@ -1,7 +1,6 @@ -{ pkgs, ... }: +{ pkgs, lib, ... }: { - # home.packages = [pkgs.schildichat-desktop]; - home.packages = [ pkgs.element-desktop-wayland ]; + home.packages = [ pkgs.element-desktop ]; systemd.user.services.element-desktop = { Install.WantedBy = [ "graphical-session.target" ]; @@ -12,8 +11,7 @@ }; Service = { - # ExecStart = "${pkgs.schildichat-desktop}/bin/schildichat-desktop"; # TODO I preferred SchildiChat but it was removed from nixpkgs becuase unsafe - ExecStart = "${pkgs.element-desktop-wayland}/bin/element-desktop"; + ExecStart = lib.getExe pkgs.element-desktop; Restart = "on-failure"; RestartSec = 3; }; From 3df87b1a1285e3c4148ea5d1c1a5db31453f16ca Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Tue, 31 Dec 2024 10:26:34 +0100 Subject: [PATCH 230/492] Format --- hmModules/git/default.nix | 3 ++- hmModules/qutebrowser/default.nix | 3 ++- hmModules/sway/default.nix | 3 ++- modules/forgejo/default.nix | 3 ++- modules/matrix/default.nix | 3 ++- modules/restic/default.nix | 5 ++--- 6 files changed, 12 insertions(+), 8 deletions(-) diff --git a/hmModules/git/default.nix b/hmModules/git/default.nix index 4f1cb71..424c4b9 100644 --- a/hmModules/git/default.nix +++ b/hmModules/git/default.nix @@ -41,7 +41,8 @@ in extraConfig.url = { "ssh://git@github.com/".insteadOf = "https://github.com/"; # Workaround for https://github.com/rust-lang/cargo/issues/3381#issuecomment-1193730972 - "https://github.com/rust-lang/crates.io-index".insteadOf = "https://github.com/rust-lang/crates.io-index"; + "https://github.com/rust-lang/crates.io-index".insteadOf = + "https://github.com/rust-lang/crates.io-index"; "https://github.com/RustSec/advisory-db".insteadOf = "https://github.com/RustSec/advisory-db"; }; diff --git a/hmModules/qutebrowser/default.nix b/hmModules/qutebrowser/default.nix index 6a77ff7..e09d76f 100644 --- a/hmModules/qutebrowser/default.nix +++ b/hmModules/qutebrowser/default.nix @@ -36,7 +36,8 @@ in ",l" = ''config-cycle spellcheck.languages [" it-IT "] [" en-US "]''; }; insert = { - "" = ''spawn --userscript qute-pass --dmenu-invocation '${pkgs.fuzzel}/bin/fuzzel --background-color=253559cc --border-radius=5 --border-width=0 -d' --password-only --unfiltered''; + "" = + ''spawn --userscript qute-pass --dmenu-invocation '${pkgs.fuzzel}/bin/fuzzel --background-color=253559cc --border-radius=5 --border-width=0 -d' --password-only --unfiltered''; }; }; settings = { diff --git a/hmModules/sway/default.nix b/hmModules/sway/default.nix index 95d5bf4..3369e92 100644 --- a/hmModules/sway/default.nix +++ b/hmModules/sway/default.nix @@ -110,7 +110,8 @@ in lib.mkOptionDefault { "${modifier}+x" = "exec emacsclient -c"; - "${modifier}+y" = "exec ${pkgs.waypipe}/bin/waypipe --compress lz4=10 ssh mothership.fleet emacsclient -c"; + "${modifier}+y" = + "exec ${pkgs.waypipe}/bin/waypipe --compress lz4=10 ssh mothership.fleet emacsclient -c"; "${modifier}+b" = "exec qutebrowser"; "${modifier}+s" = "exec ${screenshotScript}"; # "${modifier}+g" = "exec ${screenrecordingScript}"; # FIXME diff --git a/modules/forgejo/default.nix b/modules/forgejo/default.nix index a0940ab..e4865a4 100644 --- a/modules/forgejo/default.nix +++ b/modules/forgejo/default.nix @@ -83,7 +83,8 @@ in "git.aciceri.dev" = { enableACME = true; forceSSL = true; - locations."/".proxyPass = "http://127.0.0.1:${builtins.toString config.services.forgejo.settings.server.HTTP_PORT}"; + locations."/".proxyPass = + "http://127.0.0.1:${builtins.toString config.services.forgejo.settings.server.HTTP_PORT}"; }; }; } diff --git a/modules/matrix/default.nix b/modules/matrix/default.nix index b80803d..c7a2741 100644 --- a/modules/matrix/default.nix +++ b/modules/matrix/default.nix @@ -29,7 +29,8 @@ in "matrix.aciceri.dev" = { forceSSL = true; enableACME = true; - locations."/".proxyPass = "http://127.0.0.1:${builtins.toString (lib.head config.services.matrix-synapse.settings.listeners).port}"; + locations."/".proxyPass = + "http://127.0.0.1:${builtins.toString (lib.head config.services.matrix-synapse.settings.listeners).port}"; locations."/_matrix".proxyPass = "http://localhost:8008"; locations."/_synapse/client".proxyPass = "http://localhost:8008"; }; diff --git a/modules/restic/default.nix b/modules/restic/default.nix index 7d743f9..52cd712 100644 --- a/modules/restic/default.nix +++ b/modules/restic/default.nix @@ -24,9 +24,8 @@ in }; }; - services.openssh.knownHosts."${ - host - }".publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIICf9svRenC/PLKIL9nk6K/pxQgoiFC41wTNvoIncOxs"; + services.openssh.knownHosts."${host}".publicKey = + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIICf9svRenC/PLKIL9nk6K/pxQgoiFC41wTNvoIncOxs"; services.postgresqlBackup = { enable = true; From 64425bd44704a161a704add9e943cfe121b908ab Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Tue, 31 Dec 2024 14:36:15 +0100 Subject: [PATCH 231/492] Fix permissions before starting `nfs-server` --- modules/sisko-share/default.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/modules/sisko-share/default.nix b/modules/sisko-share/default.nix index 41ea29b..6d4a3cb 100644 --- a/modules/sisko-share/default.nix +++ b/modules/sisko-share/default.nix @@ -16,6 +16,9 @@ ''; }; + systemd.services.nfs-server.preStart = '' + chmod -R 775 /export/hd/torrent + ''; services.webdav = { enable = true; From 37e55bb3426791f1c8266f6e6df91c26f82cbd9c Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Tue, 31 Dec 2024 14:36:38 +0100 Subject: [PATCH 232/492] Expose webdav both on the LAN and the VPN --- modules/sisko-share/default.nix | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/modules/sisko-share/default.nix b/modules/sisko-share/default.nix index 6d4a3cb..22f52a6 100644 --- a/modules/sisko-share/default.nix +++ b/modules/sisko-share/default.nix @@ -19,15 +19,16 @@ systemd.services.nfs-server.preStart = '' chmod -R 775 /export/hd/torrent ''; + services.webdav = { enable = true; settings = { - address = "10.1.1.2"; # accessible only in LAN, used by Kodi installed on the TV + address = "0.0.0.0"; port = 9999; scope = "/mnt/hd/torrent"; modify = false; - auth = false; # TODO should we enable authentication? It's only reachable in LAN + auth = false; debug = true; users = [ ]; }; From a3d1233ad19e47a4a4f23fc6516b21d570bd8b54 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Tue, 31 Dec 2024 14:36:58 +0100 Subject: [PATCH 233/492] Torrents readable by everybody by default --- modules/transmission/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/transmission/default.nix b/modules/transmission/default.nix index 15db1d1..b049158 100644 --- a/modules/transmission/default.nix +++ b/modules/transmission/default.nix @@ -39,8 +39,8 @@ ]; systemd.tmpfiles.rules = [ - "d /mnt/hd/torrent 770 transmission transmission" - "d /mnt/hd/torrent/.incomplete 770 transmission transmission" + "d /mnt/hd/torrent 774 transmission transmission" + "d /mnt/hd/torrent/.incomplete 774 transmission transmission" ]; environment.persistence."/persist".directories = [ From 9590b879ed28c4450d8d432d87cba762ddf736fe Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Wed, 1 Jan 2025 17:02:29 +0100 Subject: [PATCH 234/492] Add `firefly-app-key` agenix secret --- secrets/firefly-app-key.age | 17 +++++++++++++++++ secrets/secrets.nix | 30 ++++-------------------------- 2 files changed, 21 insertions(+), 26 deletions(-) create mode 100644 secrets/firefly-app-key.age diff --git a/secrets/firefly-app-key.age b/secrets/firefly-app-key.age new file mode 100644 index 0000000..0560320 --- /dev/null +++ b/secrets/firefly-app-key.age @@ -0,0 +1,17 @@ +age-encryption.org/v1 +-> ssh-rsa /AagBw +MmxPeP4hU2l5lrGOzfZk9opd2NoVG8Y2fdSLCZH7bJwHEWexmsSFJN8n6XrmbMwo +LthbkBhkdANoyeVlCOvz35k5lzTsLcYjizfEYaqliCEIRFvcUxhcyk4HzV1D11jD +mMEzk1WsqGdd9ejLebqskUkCFRKp4d+W0tODeOo+qoXhDJ/rq/zitXqLQbajK2a1 +11S/UhOElizE65Onv2PgLKMiRkpjdVwAzf2CMnGKJ0E9CSwBLgHeqdDHooxzXPMb +OGWdg3xTxLALfbeEBgfxmTGafe44cFjq/T80qte9Q2eWzboO8GqvxTgF/Cx4nVgF +InJhD7cdubO31CfdZGb6pIHgRs2De9MRjQ7oO4F8N1q79Wh/3NSAaeItyHM7AnK6 +Yc0lO2HQF8NhDfeu+dca5G6TF8Zi7ehLe1tv6WNOC3OVo/11X12M3Nqu6oKhRiGz +VXiJ8EHwGm4MHcBP8j8ulBkHJUR9MERZuVengROYl4TkT/bWKYu+4ISjl8sLJorh +jHmfjViGtAD1sqrYpCzylm7ufZeZ4sv38EwEpMneG/1SIpIwP47wkzKUjb8RdXrc +xWqFzLP0Lj4PAwT1lB0awTc2+niko+3P+ABpxnJ3QLNJLOtXJuuVAcsLl5EsEFKc +VDmwA/tzgfXkNI3eGXukrM/GiwpRYMfkWzz6/ijvLug +-> ssh-ed25519 +vdRnA m9PlgKXpW2mKUt+S1mgWrbVvv3LDzVUKg0u22QMmXis +3rdA1dsQ26+vacNk+5j/+uMfG/zE2pE21zMKZy6MxsI +--- CDzukG+NpxaQvo7SFGfBbS8MV5yCl/tmla59lpSaT5s +:}n4q}'6EEc+!i_Ĵ$ |ȏefEՌ!(I/D놢btYS :Tb \ No newline at end of file diff --git a/secrets/secrets.nix b/secrets/secrets.nix index a322a52..fb4a4c4 100644 --- a/secrets/secrets.nix +++ b/secrets/secrets.nix @@ -37,62 +37,52 @@ with keys.users; ]; "autistici-password.age".publicKeys = [ ccr-ssh - kirk picard sisko ]; "hercules-ci-join-token.age".publicKeys = [ ccr-ssh - mothership sisko picard ]; "hercules-ci-binary-caches.age".publicKeys = [ ccr-ssh - mothership sisko picard ]; "hercules-ci-secrets-json.age".publicKeys = [ ccr-ssh - mothership sisko picard ]; "minio-credentials.age".publicKeys = [ ccr-ssh - picard sisko ]; "aws-credentials.age".publicKeys = [ ccr-ssh - picard sisko ]; "nextcloud-admin-pass.age".publicKeys = [ ccr-ssh - sisko ]; "home-planimetry.age".publicKeys = [ ccr-ssh - sisko ]; "home-assistant-token.age".publicKeys = [ ccr-ssh - sisko ]; "chatgpt-token.age".publicKeys = [ ccr-ssh - kirk mothership picard @@ -100,86 +90,74 @@ with keys.users; ]; "cloudflare-dyndns-api-token.age".publicKeys = [ ccr-ssh - sisko ]; "restic-hetzner-password.age".publicKeys = [ ccr-ssh - picard sisko kirk ]; "hass-ssh-key.age".publicKeys = [ ccr-ssh - sisko ]; "grafana-password.age".publicKeys = [ ccr-ssh - sisko ]; "matrix-registration-shared-secret.age".publicKeys = [ ccr-ssh - sisko ]; "matrix-sliding-sync-secret.age".publicKeys = [ ccr-ssh - sisko ]; "forgejo-runners-token.age".publicKeys = [ ccr-ssh - picard ]; "forgejo-nix-access-tokens.age".publicKeys = [ ccr-ssh - picard ]; "garmin-collector-environment.age".publicKeys = [ ccr-ssh - sisko ]; "hetzner-storage-box-sisko-ssh-password.age".publicKeys = [ ccr-ssh - sisko ]; "sisko-restic-password.age".publicKeys = [ ccr-ssh - sisko ]; "sisko-attic-environment-file.age".publicKeys = [ ccr-ssh - + sisko + ]; + "firefly-app-key.age".publicKeys = [ + ccr-ssh sisko ]; # WireGuard "picard-wireguard-private-key.age".publicKeys = [ ccr-ssh - picard ]; "sisko-wireguard-private-key.age".publicKeys = [ ccr-ssh - sisko ]; "kirk-wireguard-private-key.age".publicKeys = [ ccr-ssh - kirk ]; "deltaflyer-wireguard-private-key.age".publicKeys = [ ccr-ssh - deltaflyer ]; "tpol-wireguard-private-key.age".publicKeys = [ From 61fecf3bdb7452c087cb28b8f4dcd1aceb1cb559 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Wed, 1 Jan 2025 17:03:05 +0100 Subject: [PATCH 235/492] Add `firefly` to `sisko` --- hosts/default.nix | 2 +- hosts/sisko/default.nix | 1 + modules/cloudflare-dyndns/default.nix | 2 + modules/firefly/default.nix | 67 +++++++++++++++++++++++++++ 4 files changed, 71 insertions(+), 1 deletion(-) create mode 100644 modules/firefly/default.nix diff --git a/hosts/default.nix b/hosts/default.nix index aa8d2fb..7488615 100644 --- a/hosts/default.nix +++ b/hosts/default.nix @@ -116,7 +116,7 @@ owner = "grafana"; group = "forgejo"; }; - + "firefly-app-key".owner = "firefly-iii"; }; }; diff --git a/hosts/sisko/default.nix b/hosts/sisko/default.nix index e5d6e87..e69404e 100644 --- a/hosts/sisko/default.nix +++ b/hosts/sisko/default.nix @@ -32,6 +32,7 @@ "syncthing" "atticd" "jellyfin" + "firefly" ] ++ [ ./disko.nix diff --git a/modules/cloudflare-dyndns/default.nix b/modules/cloudflare-dyndns/default.nix index 9aaab39..77f1e46 100644 --- a/modules/cloudflare-dyndns/default.nix +++ b/modules/cloudflare-dyndns/default.nix @@ -15,6 +15,8 @@ "photos.aciceri.dev" "status.aciceri.dev" "jelly.aciceri.dev" + "firefly.aciceri.dev" + "import.firefly.aciceri.dev" ]; apiTokenFile = config.age.secrets.cloudflare-dyndns-api-token.path; }; diff --git a/modules/firefly/default.nix b/modules/firefly/default.nix new file mode 100644 index 0000000..cb4becd --- /dev/null +++ b/modules/firefly/default.nix @@ -0,0 +1,67 @@ +{ pkgs, config, ... }: +let + domain = "firefly.aciceri.dev"; + domainImporter = "import.firefly.aciceri.dev"; + dbUser = config.services.firefly-iii.user; +in +{ + services.firefly-iii = { + enable = true; + package = pkgs.firefly-iii; + virtualHost = domain; + enableNginx = true; + settings = { + APP_ENV = "production"; + APP_KEY_FILE = config.age.secrets.firefly-app-key.path; + SITE_OWNER = "andrea.ciceri@autistici.org"; + DB_CONNECTION = "pgsql"; + DEFAULT_LANGUAGE = "en_US"; + TZ = "Europe/Rome"; + }; + }; + + services.firefly-iii-data-importer = { + enable = true; + enableNginx = true; + virtualHost = domainImporter; + settings = { + IGNORE_DUPLICATE_ERRORS = "false"; + APP_ENV = "production"; + APP_DEBUG = "false"; + LOG_CHANNEL = "stack"; + TRUSTED_PROXIES = "**"; + TZ = "Europe/Rome"; + FIREFLY_III_URL = "https://${domain}"; + VANITY_URL = "https://${domain}"; + }; + }; + + imports = [ ../nginx-base ]; + + services.nginx.virtualHosts = { + ${domain} = { + enableACME = true; + forceSSL = true; + }; + ${domainImporter} = { + enableACME = true; + forceSSL = true; + }; + }; + + services.postgresql = { + ensureUsers = [ + { + name = dbUser; + ensureDBOwnership = true; + ensureClauses.login = true; + } + ]; + ensureDatabases = [ dbUser ]; + }; + + environment.persistence."/persist".directories = [ + config.services.firefly-iii.dataDir + config.services.firefly-iii-data-importer.dataDir + ]; +} From 55a3807844243253753c39c1d940456b9f9f2afa Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 2 Jan 2025 17:16:23 +0100 Subject: [PATCH 236/492] Move nginx paperless proxy configuration to relative module --- modules/paperless/default.nix | 13 +++++++++++++ modules/sisko-proxy/default.nix | 7 ------- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/modules/paperless/default.nix b/modules/paperless/default.nix index 4918ed7..e1e01fb 100644 --- a/modules/paperless/default.nix +++ b/modules/paperless/default.nix @@ -22,4 +22,17 @@ environment.persistence."/persist".directories = [ config.services.paperless.dataDir ]; + + imports = [ ../nginx-base ]; + + services.nginx.virtualHosts."paper.aciceri.dev" = { + forceSSL = true; + enableACME = true; + locations."/" = { + proxyPass = "http://localhost:${builtins.toString config.services.paperless.port}"; + }; + extraConfig = '' + client_max_body_size 50000M; + ''; + }; } diff --git a/modules/sisko-proxy/default.nix b/modules/sisko-proxy/default.nix index c6c1a7b..353af1b 100644 --- a/modules/sisko-proxy/default.nix +++ b/modules/sisko-proxy/default.nix @@ -47,13 +47,6 @@ proxyWebsockets = true; }; }; - "paper.aciceri.dev" = { - forceSSL = true; - enableACME = true; - locations."/" = { - proxyPass = "http://localhost:${builtins.toString config.services.paperless.port}"; - }; - }; # "${config.services.nextcloud.hostName}" = { # forceSSL = true; # enableACME = true; From 042e3e787c1f5c1e56ae6c1e75808a316e8c0568 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 2 Jan 2025 17:16:39 +0100 Subject: [PATCH 237/492] Fix `tremotesf` start --- hmModules/tremotesf/default.nix | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/hmModules/tremotesf/default.nix b/hmModules/tremotesf/default.nix index 4078e06..f1959c4 100644 --- a/hmModules/tremotesf/default.nix +++ b/hmModules/tremotesf/default.nix @@ -16,7 +16,10 @@ }; Service = { - ExecStart = "${lib.getExe' pkgs.coreutils "sleep"} 5 && ${lib.getExe pkgs.tremotesf} --minimized"; + ExecStart = pkgs.writeShellScript "start-tremotesf.sh" '' + sleep 5 + ${lib.getExe pkgs.tremotesf} --minimized + ''; Restart = "on-failure"; RestartSec = 3; }; From b67be71d21a9d266bf15e48e2c5ece7f62107dd6 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Wed, 8 Jan 2025 15:18:53 +0100 Subject: [PATCH 238/492] `lean4-mode` in Emacs --- hmModules/emacs/init.el | 2 ++ packages/emacs/packages.nix | 18 ++++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/hmModules/emacs/init.el b/hmModules/emacs/init.el index f33aa1d..acb1726 100644 --- a/hmModules/emacs/init.el +++ b/hmModules/emacs/init.el @@ -507,6 +507,8 @@ (use-package dockerfile-ts-mode :mode "Dockerfile\\'") +(use-package lean4-mode + :mode "\\.lean\\'") (use-package python-ts-mode :hook ((python-ts-mode . (lambda () (require 'eglot) diff --git a/packages/emacs/packages.nix b/packages/emacs/packages.nix index 9abb207..8300a07 100644 --- a/packages/emacs/packages.nix +++ b/packages/emacs/packages.nix @@ -10,6 +10,7 @@ let version = args.src.rev; propagatedUserEnvPkgs = args.deps; buildInputs = args.deps; + postInstall = args.postInstall or ""; }; # *Attrset* containig extra emacs packages @@ -60,6 +61,23 @@ let f ]; }; + lean4-mode = buildEmacsPackage { + name = "lean4-mode"; + src = pkgs.fetchFromGitHub { + owner = "leanprover-community"; + repo = "lean4-mode"; + rev = "76895d8939111654a472cfc617cfd43fbf5f1eb6"; + hash = "sha256-DLgdxd0m3SmJ9heJ/pe5k8bZCfvWdaKAF0BDYEkwlMQ="; + }; + deps = [ + epkgs.dash + melpaPackages.magit + melpaPackages.lsp-mode + ]; + postInstall = '' + cp -r $src/data $LISPDIR + ''; + }; }; # *List* containing emacs packages from (M)ELPA From b7c77998f3548e8500e1715a8c2317bdb0f6536e Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Wed, 8 Jan 2025 15:19:59 +0100 Subject: [PATCH 239/492] Emacs `kdl-ts-mode` --- hmModules/emacs/init.el | 2 ++ packages/emacs/default.nix | 7 ++++++- packages/emacs/packages.nix | 10 ++++++++++ 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/hmModules/emacs/init.el b/hmModules/emacs/init.el index acb1726..9e9c419 100644 --- a/hmModules/emacs/init.el +++ b/hmModules/emacs/init.el @@ -561,6 +561,8 @@ (use-package sh-mode :hook (sh-mode . bash-ts-mode)) +(use-package kdl-ts-mode + :mode "\\.kdl\\'") (use-package gptscript-mode :mode "\\.gpt\\'") diff --git a/packages/emacs/default.nix b/packages/emacs/default.nix index 9bb0125..cfff445 100644 --- a/packages/emacs/default.nix +++ b/packages/emacs/default.nix @@ -11,7 +11,12 @@ let inputs.emacs-overlay.overlays.emacs ] ); - all-grammars = pkgs'.tree-sitter.withPlugins builtins.attrValues; + pkgs-with-tree-sitter-kdl = + (builtins.getFlake "github:aciceri/nixpkgs/23a675ee8313427610cf129dd2b52a69bf6a2a26") + .legacyPackages.${pkgs.stdenv.system}; + # TODO remove when merged: https://github.com/NixOS/nixpkgs/pull/371287/files + # all-grammars = pkgs'.tree-sitter.withPlugins builtins.attrValues; + all-grammars = pkgs-with-tree-sitter-kdl.tree-sitter.withPlugins builtins.attrValues; treesitGrammars = pkgs'.runCommand "treesit-grammars" { } '' mkdir $out for f in ${all-grammars}/* diff --git a/packages/emacs/packages.nix b/packages/emacs/packages.nix index 8300a07..a3d9f0d 100644 --- a/packages/emacs/packages.nix +++ b/packages/emacs/packages.nix @@ -78,6 +78,16 @@ let cp -r $src/data $LISPDIR ''; }; + kdl-ts-mode = buildEmacsPackage { + name = "kdl-ts-mode"; + src = pkgs.fetchFromGitHub { + owner = "dataphract"; + repo = "kdl-ts-mode"; + rev = "3dbf116cd19261d8d70f456ae3385e1d20208452"; + hash = "sha256-4bfKUzzLhBFg4TeGQD0dClumcO4caIBU8/uRncFVVFQ="; + }; + deps = [ ]; + }; }; # *List* containing emacs packages from (M)ELPA From 5b9fd51586f443210ec8fc8785f035d8b10ac661 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Wed, 8 Jan 2025 15:22:31 +0100 Subject: [PATCH 240/492] `catppuccin.nix` option renamed --- hmModules/zellij/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hmModules/zellij/default.nix b/hmModules/zellij/default.nix index 45a8487..9e75788 100644 --- a/hmModules/zellij/default.nix +++ b/hmModules/zellij/default.nix @@ -9,7 +9,7 @@ let url = "https://github.com/dj95/zjstatus/releases/download/v0.17.0/zjstatus.wasm"; hash = "sha256-IgTfSl24Eap+0zhfiwTvmdVy/dryPxfEF7LhVNVXe+U="; }; - cfg = config.programs.fzf.catppuccin; + cfg = config.catppuccin.fzf; palette = (lib.importJSON "${config.catppuccin.sources.palette}/palette.json").${cfg.flavor}.colors; selectColor = color: palette.${color}.hex; color_fg = selectColor "text"; From 55fa0214cb8081ea8bb8119f9210cd6c4d29f5e5 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Wed, 8 Jan 2025 15:23:37 +0100 Subject: [PATCH 241/492] Fix cursor size on Hyprland --- hmModules/hyprland/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hmModules/hyprland/default.nix b/hmModules/hyprland/default.nix index 43d5a84..2596638 100644 --- a/hmModules/hyprland/default.nix +++ b/hmModules/hyprland/default.nix @@ -62,7 +62,7 @@ in cursorTheme = { name = "catppuccin-mocha-sapphire"; package = pkgs.catppuccin-cursors; - size = 40; + size = 38; }; }; From 267185f17646716915076fce27bebebd0097d964 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Wed, 8 Jan 2025 15:23:46 +0100 Subject: [PATCH 242/492] Make `pinentry` use `rofi-wayland` instead of classic `rofi` --- hmModules/gpg/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hmModules/gpg/default.nix b/hmModules/gpg/default.nix index d3aa919..a894c90 100644 --- a/hmModules/gpg/default.nix +++ b/hmModules/gpg/default.nix @@ -9,7 +9,7 @@ name = "pinentry-rofi-with-env"; runtimeInputs = with pkgs; [ coreutils - rofi + rofi-wayland ]; text = '' "${pkgs.pinentry-rofi}/bin/pinentry-rofi" "$@" From cd543e02ce35588665993d076100f1b19d4d8f1b Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Wed, 8 Jan 2025 15:24:08 +0100 Subject: [PATCH 243/492] Emacs experiments --- hmModules/emacs/init.el | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/hmModules/emacs/init.el b/hmModules/emacs/init.el index 9e9c419..68ba3d2 100644 --- a/hmModules/emacs/init.el +++ b/hmModules/emacs/init.el @@ -509,6 +509,7 @@ (use-package lean4-mode :mode "\\.lean\\'") + (use-package python-ts-mode :hook ((python-ts-mode . (lambda () (require 'eglot) @@ -563,6 +564,7 @@ (use-package kdl-ts-mode :mode "\\.kdl\\'") + (use-package gptscript-mode :mode "\\.gpt\\'") @@ -1010,24 +1012,26 @@ This is meant to be an helper to be called from the window manager." ;;; Experiments, remove from here + (defun ccr/test () "test" (interactive) (with-selected-frame - (make-frame '((name . "emacs-run-launcher") + (make-frame '((name . "floating") (minibuffer . only) - (fullscreen . 0) ; no fullscreen - (undecorated . t) ; remove title bar + (fullscreen . 0) ; no fullscreen + (undecorated . t) ; remove title bar ;;(auto-raise . t) ; focus on this frame ;;(tool-bar-lines . 0) ;;(menu-bar-lines . 0) (internal-border-width . 10) - (width . 80) - (height . 11))) + (width . 50) + (height . 10))) (unwind-protect - (completing-read "ciao " '("foo" "bar") nil t "") + (completing-read "ciao " '("foo" "bar" "pippo") nil t "") (delete-frame)))) + (provide 'init) ;;; init.el ends here From 0caf77129f187a427cea552b4dab83fb8a517b02 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Wed, 8 Jan 2025 15:24:23 +0100 Subject: [PATCH 244/492] Simplify Emacs activation script for linking the config --- hmModules/emacs/default.nix | 27 ++++++++------------------- 1 file changed, 8 insertions(+), 19 deletions(-) diff --git a/hmModules/emacs/default.nix b/hmModules/emacs/default.nix index b1d061c..ffeeb43 100644 --- a/hmModules/emacs/default.nix +++ b/hmModules/emacs/default.nix @@ -52,23 +52,12 @@ in en_US-large it_IT ]); - home.activation.cloneCcrEmacsFlake = - let - path = lib.makeBinPath ( - with pkgs; - [ - git - openssh - ] - ); - in - lib.hm.dag.entryAfter [ "writeBoundary" ] '' - PATH=$PATH:${path} - if [ ! -d "$HOME/.config/emacs" ]; then - mkdir "$HOME/.config/emacs" - $DRY_RUN_CMD ln -s "$HOME/projects/aciceri/nixfleet/hmModules/emacs/init.el" "$HOME/.config/emacs/init.el" - $DRY_RUN_CMD ln -s "$HOME/.config/emacs" "$HOME/emacs" - fi - $DRY_RUN_CMD ln -sfn ${treesitGrammars} "$HOME/.config/emacs/tree-sitter" - ''; + home.activation.linkEmacsConfig = lib.hm.dag.entryAnywhere '' + if [ ! -d "$HOME/.config/emacs" ]; then + $DRY_RUN_CMD mkdir "$HOME/.config/emacs" + $DRY_RUN_CMD ln -s "$HOME/projects/aciceri/nixfleet/hmModules/emacs/init.el" "$HOME/.config/emacs/init.el" + $DRY_RUN_CMD ln -s "$HOME/.config/emacs" "$HOME/emacs" + fi + $DRY_RUN_CMD ln -sfn ${treesitGrammars} "$HOME/.config/emacs/tree-sitter" + ''; } From 7bff0e57e28f20e42fd9515de2f1240291f47dc8 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Wed, 8 Jan 2025 15:24:46 +0100 Subject: [PATCH 245/492] Useless comment --- hosts/default.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/hosts/default.nix b/hosts/default.nix index 7488615..9b4c7c9 100644 --- a/hosts/default.nix +++ b/hosts/default.nix @@ -73,7 +73,6 @@ inputs.catppuccin.nixosModules.catppuccin ]; extraHmModules = [ - # inputs.ccrEmacs.hmModules.default "${inputs.homeManagerGitWorkspace}/modules/services/git-workspace.nix" inputs.vscode-server.nixosModules.home inputs.catppuccin.homeManagerModules.catppuccin From c8717806ab28de454947f8024c38900ce960bf24 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Wed, 8 Jan 2025 15:24:55 +0100 Subject: [PATCH 246/492] Enable `discord` on `picard` --- hosts/picard/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/hosts/picard/default.nix b/hosts/picard/default.nix index 42bf4f9..6aab3cf 100644 --- a/hosts/picard/default.nix +++ b/hosts/picard/default.nix @@ -91,6 +91,7 @@ "vial" "chirp" "sdrangel" + "discord" ]; extraGroups = [ "plugdev" ]; backupPaths = [ ]; From ea612479a073cdcbff339fab7e03c4652a54a493 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Wed, 8 Jan 2025 15:25:13 +0100 Subject: [PATCH 247/492] Add `niri` as window manager --- hmModules/niri/config.kdl | 533 +++++++++++++++++++++++++++++++++ hmModules/niri/default.nix | 231 ++++++++++++++ hmModules/swayidle/default.nix | 2 +- hmModules/waybar/default.nix | 6 +- hosts/kirk/default.nix | 1 + hosts/picard/default.nix | 1 + modules/greetd/default.nix | 9 + modules/xdg/default.nix | 2 + 8 files changed, 783 insertions(+), 2 deletions(-) create mode 100644 hmModules/niri/config.kdl create mode 100644 hmModules/niri/default.nix diff --git a/hmModules/niri/config.kdl b/hmModules/niri/config.kdl new file mode 100644 index 0000000..5a3b61f --- /dev/null +++ b/hmModules/niri/config.kdl @@ -0,0 +1,533 @@ +// This config is in the KDL format: https://kdl.dev +// "/-" comments out the following node. +// Check the wiki for a full description of the configuration: +// https://github.com/YaLTeR/niri/wiki/Configuration:-Overview + +// Input device configuration. +// Find the full list of options on the wiki: +// https://github.com/YaLTeR/niri/wiki/Configuration:-Input +input { + keyboard { + xkb { + layout "us" + // options "grp:win_space_toggle,compose:ralt,ctrl:nocaps" + } + } + + // Next sections include libinput settings. + // Omitting settings disables them, or leaves them at their default values. + touchpad { + // off + tap + // dwt + // dwtp + natural-scroll + // accel-speed 0.2 + // accel-profile "flat" + // scroll-method "two-finger" + // disabled-on-external-mouse + } + + mouse { + // off + // natural-scroll + // accel-speed 0.2 + // accel-profile "flat" + // scroll-method "no-scroll" + } + + trackpoint { + // off + // natural-scroll + // accel-speed 0.2 + // accel-profile "flat" + // scroll-method "on-button-down" + // scroll-button 273 + // middle-emulation + } + + // Uncomment this to make the mouse warp to the center of newly focused windows. + warp-mouse-to-focus + + // Focus windows and outputs automatically when moving the mouse into them. + // Setting max-scroll-amount="0%" makes it work only on windows already fully on screen. + focus-follows-mouse max-scroll-amount="0%" +} + +cursor { + xcursor-theme "catppuccin-mocha-sapphire" + xcursor-size 38 + hide-when-typing + hide-after-inactive-ms 10000 +} + +spawn-at-startup "xwayland-satellite" + +environment { + QT_QPA_PLATFORM "wayland" + DISPLAY ":0" +} + + +// You can configure outputs by their name, which you can find +// by running `niri msg outputs` while inside a niri instance. +// The built-in laptop monitor is usually called "eDP-1". +// Find more information on the wiki: +// https://github.com/YaLTeR/niri/wiki/Configuration:-Outputs +// Remember to uncomment the node by removing "/-"! +/-output "eDP-1" { + // Uncomment this line to disable this output. + // off + + // Resolution and, optionally, refresh rate of the output. + // The format is "x" or "x@". + // If the refresh rate is omitted, niri will pick the highest refresh rate + // for the resolution. + // If the mode is omitted altogether or is invalid, niri will pick one automatically. + // Run `niri msg outputs` while inside a niri instance to list all outputs and their modes. + mode "1920x1080@120.030" + + // You can use integer or fractional scale, for example use 1.5 for 150% scale. + scale 2 + + // Transform allows to rotate the output counter-clockwise, valid values are: + // normal, 90, 180, 270, flipped, flipped-90, flipped-180 and flipped-270. + transform "normal" + + // Position of the output in the global coordinate space. + // This affects directional monitor actions like "focus-monitor-left", and cursor movement. + // The cursor can only move between directly adjacent outputs. + // Output scale and rotation has to be taken into account for positioning: + // outputs are sized in logical, or scaled, pixels. + // For example, a 3840×2160 output with scale 2.0 will have a logical size of 1920×1080, + // so to put another output directly adjacent to it on the right, set its x to 1920. + // If the position is unset or results in an overlap, the output is instead placed + // automatically. + position x=1280 y=0 +} + +// Settings that influence how windows are positioned and sized. +// Find more information on the wiki: +// https://github.com/YaLTeR/niri/wiki/Configuration:-Layout +layout { + // Set gaps around windows in logical pixels. + gaps 16 + + // When to center a column when changing focus, options are: + // - "never", default behavior, focusing an off-screen column will keep at the left + // or right edge of the screen. + // - "always", the focused column will always be centered. + // - "on-overflow", focusing a column will center it if it doesn't fit + // together with the previously focused column. + center-focused-column "never" + + // You can customize the widths that "switch-preset-column-width" (Mod+R) toggles between. + preset-column-widths { + // Proportion sets the width as a fraction of the output width, taking gaps into account. + // For example, you can perfectly fit four windows sized "proportion 0.25" on an output. + // The default preset widths are 1/3, 1/2 and 2/3 of the output. + proportion 0.33333 + proportion 0.5 + proportion 0.66667 + + // Fixed sets the width in logical pixels exactly. + // fixed 1920 + } + + // You can also customize the heights that "switch-preset-window-height" (Mod+Shift+R) toggles between. + // preset-window-heights { } + + // You can change the default width of the new windows. + default-column-width { proportion 0.5; } + // If you leave the brackets empty, the windows themselves will decide their initial width. + // default-column-width {} + + // By default focus ring and border are rendered as a solid background rectangle + // behind windows. That is, they will show up through semitransparent windows. + // This is because windows using client-side decorations can have an arbitrary shape. + // + // If you don't like that, you should uncomment `prefer-no-csd` below. + // Niri will draw focus ring and border *around* windows that agree to omit their + // client-side decorations. + // + // Alternatively, you can override it with a window rule called + // `draw-border-with-background`. + + // You can change how the focus ring looks. + focus-ring { + // Uncomment this line to disable the focus ring. + // off + + // How many logical pixels the ring extends out from the windows. + width 2 + + // Colors can be set in a variety of ways: + // - CSS named colors: "red" + // - RGB hex: "#rgb", "#rgba", "#rrggbb", "#rrggbbaa" + // - CSS-like notation: "rgb(255, 127, 0)", rgba(), hsl() and a few others. + + // Color of the ring on the active monitor. + active-color "#7fc8ff" + + // Color of the ring on inactive monitors. + inactive-color "#505050" + + // You can also use gradients. They take precedence over solid colors. + // Gradients are rendered the same as CSS linear-gradient(angle, from, to). + // The angle is the same as in linear-gradient, and is optional, + // defaulting to 180 (top-to-bottom gradient). + // You can use any CSS linear-gradient tool on the web to set these up. + // Changing the color space is also supported, check the wiki for more info. + // + // active-gradient from="#80c8ff" to="#bbddff" angle=45 + + // You can also color the gradient relative to the entire view + // of the workspace, rather than relative to just the window itself. + // To do that, set relative-to="workspace-view". + // + // inactive-gradient from="#505050" to="#808080" angle=45 relative-to="workspace-view" + } + + // You can also add a border. It's similar to the focus ring, but always visible. + border { + // The settings are the same as for the focus ring. + // If you enable the border, you probably want to disable the focus ring. + off + + width 4 + active-color "#ffc87f" + inactive-color "#505050" + + // active-gradient from="#ffbb66" to="#ffc880" angle=45 relative-to="workspace-view" + // inactive-gradient from="#505050" to="#808080" angle=45 relative-to="workspace-view" + } + + // Struts shrink the area occupied by windows, similarly to layer-shell panels. + // You can think of them as a kind of outer gaps. They are set in logical pixels. + // Left and right struts will cause the next window to the side to always be visible. + // Top and bottom struts will simply add outer gaps in addition to the area occupied by + // layer-shell panels and regular gaps. + struts { + // left 64 + // right 64 + // top 64 + // bottom 64 + } +} + +// Add lines like this to spawn processes at startup. +// Note that running niri as a session supports xdg-desktop-autostart, +// which may be more convenient to use. +// See the binds section below for more spawn examples. +spawn-at-startup "waypaper" "--wallpaper" "~/.config/niri/wallpaper.png" + +// Uncomment this line to ask the clients to omit their client-side decorations if possible. +// If the client will specifically ask for CSD, the request will be honored. +// Additionally, clients will be informed that they are tiled, removing some client-side rounded corners. +// This option will also fix border/focus ring drawing behind some semitransparent windows. +// After enabling or disabling this, you need to restart the apps for this to take effect. +prefer-no-csd + +// You can change the path where screenshots are saved. +// A ~ at the front will be expanded to the home directory. +// The path is formatted with strftime(3) to give you the screenshot date and time. +screenshot-path "~/Pictures/Screenshots/Screenshot from %Y-%m-%d %H-%M-%S.png" + +// You can also set this to null to disable saving screenshots to disk. +// screenshot-path null + +// Animation settings. +// The wiki explains how to configure individual animations: +// https://github.com/YaLTeR/niri/wiki/Configuration:-Animations +animations { + // Uncomment to turn off all animations. + // off + + // Slow down all animations by this factor. Values below 1 speed them up instead. + // slowdown 3.0 +} + +// Window rules let you adjust behavior for individual windows. +// Find more information on the wiki: +// https://github.com/YaLTeR/niri/wiki/Configuration:-Window-Rules + +// Work around WezTerm's initial configure bug +// by setting an empty default-column-width. +window-rule { + // This regular expression is intentionally made as specific as possible, + // since this is the default config, and we want no false positives. + // You can get away with just app-id="wezterm" if you want. + match app-id=r#"^org\.wezfurlong\.wezterm$"# + default-column-width {} +} + +// Example: block out two password managers from screen capture. +// (This example rule is commented out with a "/-" in front.) +/-window-rule { + match app-id=r#"^org\.keepassxc\.KeePassXC$"# + match app-id=r#"^org\.gnome\.World\.Secrets$"# + + block-out-from "screen-capture" + + // Use this instead if you want them visible on third-party screenshot tools. + // block-out-from "screencast" +} + +window-rule { + geometry-corner-radius 4 + clip-to-geometry true +} + +window-rule { + match app-id=r#"^spotify$"# + open-maximized true + open-on-workspace "spotify" +} + +window-rule { + match app-id=r#"^Slack$"# + open-maximized true +} + +window-rule { + match app-id=r#"^Element"# + open-maximized true +} + + + + + + +binds { + // Keys consist of modifiers separated by + signs, followed by an XKB key name + // in the end. To find an XKB name for a particular key, you may use a program + // like wev. + // + // "Mod" is a special modifier equal to Super when running on a TTY, and to Alt + // when running as a winit window. + // + // Most actions that you can bind here can also be invoked programmatically with + // `niri msg action do-something`. + + // Mod-Shift-/, which is usually the same as Mod-?, + // shows a list of important hotkeys. + Mod+Shift+Slash { show-hotkey-overlay; } + + // Suggested binds for running programs: terminal, app launcher, screen locker. + Mod+T { spawn "footclient"; } + Mod+D { spawn "rofi" "-show" "drun"; } + Mod+W { spawn "rofi" "-show" "window"; } + Mod+P { spawn "rofi-pass" "--clip"; } + Mod+X { spawn "emacsclient" "-c"; } + Mod+B { spawn "firefox"; } + Mod+RETURN { spawn "emacsclient" "-c" "--eval" "(ccr/start-eshell)"; } + Mod+M { spawn "emacsclient" "-c" "--eval" "(notmuch-search \"tag:new\")"; } + Mod+G { spawn "emacsclient" "-c" "--eval" "(switch-to-buffer (gptel \"*ChatGPT*\"))"; } + Mod+Shift+C { spawn "emacsclient" "-c" "--eval" "(org-roam-dailies-capture-today)"; } + Super+Alt+L { spawn "swaylock"; } + + + // Example volume keys mappings for PipeWire & WirePlumber. + // The allow-when-locked=true property makes them work even when the session is locked. + XF86AudioRaiseVolume allow-when-locked=true { spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.1+"; } + XF86AudioLowerVolume allow-when-locked=true { spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.1-"; } + XF86AudioMute allow-when-locked=true { spawn "wpctl" "set-mute" "@DEFAULT_AUDIO_SINK@" "toggle"; } + XF86AudioMicMute allow-when-locked=true { spawn "wpctl" "set-mute" "@DEFAULT_AUDIO_SOURCE@" "toggle"; } + + Mod+Shift+period { spawn "brightnessctl" "s" "5%+"; } + Mod+Shift+comma { spawn "brightnessctl" "s" "5%-"; } + Mod+XF86MonBrightnessUp { spawn "brightnessctl" "s" "5%+"; } + Mod+XF86MonBrightnessDown { spawn "brightnessctl" "s" "5%-"; } + + Mod+Q { close-window; } + + Mod+Left { focus-column-left; } + Mod+Down { focus-window-down; } + Mod+Up { focus-window-up; } + Mod+Right { focus-column-right; } + Mod+H { focus-column-left; } + Mod+J { focus-window-down; } + Mod+K { focus-window-up; } + Mod+L { focus-column-right; } + + Mod+Ctrl+Left { move-column-left; } + Mod+Ctrl+Down { move-window-down; } + Mod+Ctrl+Up { move-window-up; } + Mod+Ctrl+Right { move-column-right; } + Mod+Ctrl+H { move-column-left; } + Mod+Ctrl+J { move-window-down; } + Mod+Ctrl+K { move-window-up; } + Mod+Ctrl+L { move-column-right; } + + // Alternative commands that move across workspaces when reaching + // the first or last window in a column. + // Mod+J { focus-window-or-workspace-down; } + // Mod+K { focus-window-or-workspace-up; } + // Mod+Ctrl+J { move-window-down-or-to-workspace-down; } + // Mod+Ctrl+K { move-window-up-or-to-workspace-up; } + + Mod+Home { focus-column-first; } + Mod+End { focus-column-last; } + Mod+Ctrl+Home { move-column-to-first; } + Mod+Ctrl+End { move-column-to-last; } + + Mod+Shift+Left { focus-monitor-left; } + Mod+Shift+Down { focus-monitor-down; } + Mod+Shift+Up { focus-monitor-up; } + Mod+Shift+Right { focus-monitor-right; } + Mod+Shift+H { focus-monitor-left; } + Mod+Shift+J { focus-monitor-down; } + Mod+Shift+K { focus-monitor-up; } + Mod+Shift+L { focus-monitor-right; } + + Mod+Shift+Ctrl+Left { move-column-to-monitor-left; } + Mod+Shift+Ctrl+Down { move-column-to-monitor-down; } + Mod+Shift+Ctrl+Up { move-column-to-monitor-up; } + Mod+Shift+Ctrl+Right { move-column-to-monitor-right; } + Mod+Shift+Ctrl+H { move-column-to-monitor-left; } + Mod+Shift+Ctrl+J { move-column-to-monitor-down; } + Mod+Shift+Ctrl+K { move-column-to-monitor-up; } + Mod+Shift+Ctrl+L { move-column-to-monitor-right; } + + // Alternatively, there are commands to move just a single window: + // Mod+Shift+Ctrl+Left { move-window-to-monitor-left; } + // ... + + // And you can also move a whole workspace to another monitor: + // Mod+Shift+Ctrl+Left { move-workspace-to-monitor-left; } + // ... + + Mod+Page_Down { focus-workspace-down; } + Mod+Page_Up { focus-workspace-up; } + Mod+U { focus-workspace-down; } + Mod+I { focus-workspace-up; } + Mod+Ctrl+Page_Down { move-column-to-workspace-down; } + Mod+Ctrl+Page_Up { move-column-to-workspace-up; } + Mod+Ctrl+U { move-column-to-workspace-down; } + Mod+Ctrl+I { move-column-to-workspace-up; } + + // Alternatively, there are commands to move just a single window: + // Mod+Ctrl+Page_Down { move-window-to-workspace-down; } + // ... + + Mod+Shift+Page_Down { move-workspace-down; } + Mod+Shift+Page_Up { move-workspace-up; } + Mod+Shift+U { move-workspace-down; } + Mod+Shift+I { move-workspace-up; } + + // You can bind mouse wheel scroll ticks using the following syntax. + // These binds will change direction based on the natural-scroll setting. + // + // To avoid scrolling through workspaces really fast, you can use + // the cooldown-ms property. The bind will be rate-limited to this value. + // You can set a cooldown on any bind, but it's most useful for the wheel. + Mod+WheelScrollDown cooldown-ms=150 { focus-workspace-down; } + Mod+WheelScrollUp cooldown-ms=150 { focus-workspace-up; } + Mod+Ctrl+WheelScrollDown cooldown-ms=150 { move-column-to-workspace-down; } + Mod+Ctrl+WheelScrollUp cooldown-ms=150 { move-column-to-workspace-up; } + + Mod+WheelScrollRight { focus-column-right; } + Mod+WheelScrollLeft { focus-column-left; } + Mod+Ctrl+WheelScrollRight { move-column-right; } + Mod+Ctrl+WheelScrollLeft { move-column-left; } + + // Usually scrolling up and down with Shift in applications results in + // horizontal scrolling; these binds replicate that. + Mod+Shift+WheelScrollDown { focus-column-right; } + Mod+Shift+WheelScrollUp { focus-column-left; } + Mod+Ctrl+Shift+WheelScrollDown { move-column-right; } + Mod+Ctrl+Shift+WheelScrollUp { move-column-left; } + + // Similarly, you can bind touchpad scroll "ticks". + // Touchpad scrolling is continuous, so for these binds it is split into + // discrete intervals. + // These binds are also affected by touchpad's natural-scroll, so these + // example binds are "inverted", since we have natural-scroll enabled for + // touchpads by default. + // Mod+TouchpadScrollDown { spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.02+"; } + // Mod+TouchpadScrollUp { spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.02-"; } + + // You can refer to workspaces by index. However, keep in mind that + // niri is a dynamic workspace system, so these commands are kind of + // "best effort". Trying to refer to a workspace index bigger than + // the current workspace count will instead refer to the bottommost + // (empty) workspace. + // + // For example, with 2 workspaces + 1 empty, indices 3, 4, 5 and so on + // will all refer to the 3rd workspace. + Mod+1 { focus-workspace 1; } + Mod+2 { focus-workspace 2; } + Mod+3 { focus-workspace 3; } + Mod+4 { focus-workspace 4; } + Mod+5 { focus-workspace 5; } + Mod+6 { focus-workspace 6; } + Mod+7 { focus-workspace 7; } + Mod+8 { focus-workspace 8; } + Mod+9 { focus-workspace 9; } + Mod+Ctrl+1 { move-column-to-workspace 1; } + Mod+Ctrl+2 { move-column-to-workspace 2; } + Mod+Ctrl+3 { move-column-to-workspace 3; } + Mod+Ctrl+4 { move-column-to-workspace 4; } + Mod+Ctrl+5 { move-column-to-workspace 5; } + Mod+Ctrl+6 { move-column-to-workspace 6; } + Mod+Ctrl+7 { move-column-to-workspace 7; } + Mod+Ctrl+8 { move-column-to-workspace 8; } + Mod+Ctrl+9 { move-column-to-workspace 9; } + + // Alternatively, there are commands to move just a single window: + // Mod+Ctrl+1 { move-window-to-workspace 1; } + + // Switches focus between the current and the previous workspace. + // Mod+Tab { focus-workspace-previous; } + + // Consume one window from the right into the focused column. + Mod+Comma { consume-window-into-column; } + // Expel one window from the focused column to the right. + Mod+Period { expel-window-from-column; } + + // There are also commands that consume or expel a single window to the side. + Mod+BracketLeft { consume-or-expel-window-left; } + Mod+BracketRight { consume-or-expel-window-right; } + + Mod+R { switch-preset-column-width; } + Mod+Shift+R { switch-preset-window-height; } + Mod+Ctrl+R { reset-window-height; } + Mod+F { maximize-column; } + Mod+Shift+F { fullscreen-window; } + Mod+C { center-column; } + + // Finer width adjustments. + // This command can also: + // * set width in pixels: "1000" + // * adjust width in pixels: "-5" or "+5" + // * set width as a percentage of screen width: "25%" + // * adjust width as a percentage of screen width: "-10%" or "+10%" + // Pixel sizes use logical, or scaled, pixels. I.e. on an output with scale 2.0, + // set-column-width "100" will make the column occupy 200 physical screen pixels. + Mod+Minus { set-column-width "-10%"; } + Mod+Equal { set-column-width "+10%"; } + + // Finer height adjustments when in column with other windows. + Mod+Shift+Minus { set-window-height "-10%"; } + Mod+Shift+Equal { set-window-height "+10%"; } + + // Actions to switch layouts. + // Note: if you uncomment these, make sure you do NOT have + // a matching layout switch hotkey configured in xkb options above. + // Having both at once on the same hotkey will break the switching, + // since it will switch twice upon pressing the hotkey (once by xkb, once by niri). + // Mod+Space { switch-layout "next"; } + // Mod+Shift+Space { switch-layout "prev"; } + + Mod+S { screenshot; } + Mod+Ctrl+S { screenshot-window; } + + // The quit action will show a confirmation dialog to avoid accidental exits. + Mod+Shift+E { quit; } + Ctrl+Alt+Delete { quit; } + + // Powers off the monitors. To turn them back on, do any input like + // moving the mouse or pressing any other key. + Mod+Shift+P { power-off-monitors; } +} diff --git a/hmModules/niri/default.nix b/hmModules/niri/default.nix new file mode 100644 index 0000000..c59f988 --- /dev/null +++ b/hmModules/niri/default.nix @@ -0,0 +1,231 @@ +{ + pkgs, + lib, + config, + ... +}: +{ + home.packages = with pkgs; [ + niri + waypaper + xwayland-satellite + ]; + systemd.user.targets.niri-session = { + Unit = { + Description = "Niri session"; + BindsTo = [ "graphical-session.target" ]; + Wants = [ + "graphical-session-pre.target" + "xdg-desktop-autostart.target" + ]; + After = [ "graphical-session-pre.target" ]; + Before = [ "xdg-desktop-autostart.target" ]; + }; + }; + + home.file."${config.xdg.configHome}/niri/wallpaper.png" = { + source = ../hyprland/wallpaper.png; + }; + + home.activation.linkNiriConfig = lib.hm.dag.entryAnywhere '' + if [ ! -e "$HOME/.config/niri/config.kdl" ]; then + $DRY_RUN_CMD ln -s "$HOME/projects/aciceri/nixfleet/hmModules/niri/config.kdl" "$HOME/.config/niri/config.kdl" + fi + ''; + + programs.rofi = { + enable = true; + package = pkgs.rofi-wayland; + theme = + let + inherit (config.lib.formats.rasi) mkLiteral; + cfg = config.programs.fzf.catppuccin; + palette = (lib.importJSON "${config.catppuccin.sources.palette}/palette.json").${cfg.flavor}.colors; + selectColor = color: palette.${color}.hex; + + in + lib.mkForce { + "*" = { + # blue = mkLiteral "#0000FF"; + # white = mkLiteral "#FFFFFF"; + # black = mkLiteral "#000000"; + # grey = mkLiteral "#eeeeee"; + + blue = mkLiteral (selectColor "blue"); + white = mkLiteral "#FFFFFF"; + black = mkLiteral "#000000"; + grey = mkLiteral "#eeeeee"; + + spacing = 2; + background-color = mkLiteral "#00000000"; + border-color = mkLiteral "#444444FF"; + anchor = mkLiteral "north"; + location = mkLiteral "center"; + }; + + "window" = { + transparency = "real"; + background-color = mkLiteral "#00000000"; + border = 0; + padding = mkLiteral "0% 0% 1em 0%"; + x-offset = 0; + y-offset = mkLiteral "-10%"; + }; + + "mainbox" = { + padding = mkLiteral "0px"; + border = 0; + spacing = mkLiteral "1%"; + }; + + "message" = { + border = 0; + border-radius = mkLiteral "4px"; + padding = mkLiteral "1em"; + background-color = mkLiteral "@white"; + text-color = mkLiteral "@black"; + }; + + "textbox normal" = { + text-color = mkLiteral "#002B36FF"; + padding = 0; + border = 0; + }; + + "listview" = { + fixed-height = 1; + border = 0; + padding = mkLiteral "1em"; + reverse = false; + border-radius = mkLiteral "4px"; + + columns = 1; + background-color = mkLiteral "@white"; + }; + + "element" = { + border = 0; + padding = mkLiteral "2px"; + highlight = mkLiteral "bold"; + }; + + "element-text" = { + background-color = mkLiteral "inherit"; + text-color = mkLiteral "inherit"; + }; + + "element normal.normal" = { + text-color = mkLiteral "#002B36FF"; + background-color = mkLiteral "#F5F5F500"; + }; + + "element normal.urgent" = { + text-color = mkLiteral "#D75F00FF"; + background-color = mkLiteral "#F5F5F5FF"; + }; + + "element normal.active" = { + text-color = mkLiteral "#005F87FF"; + background-color = mkLiteral "#F5F5F5FF"; + }; + + "element selected.normal" = { + text-color = mkLiteral "#F5F5F5FF"; + background-color = mkLiteral "#4271AEFF"; + }; + + "element selected.urgent" = { + text-color = mkLiteral "#F5F5F5FF"; + background-color = mkLiteral "#D75F00FF"; + }; + + "element selected.active" = { + text-color = mkLiteral "#F5F5F5FF"; + background-color = mkLiteral "#005F87FF"; + }; + + "element alternate.normal" = { + text-color = mkLiteral "#002B36FF"; + background-color = mkLiteral "#D0D0D0FF"; + }; + + "element alternate.urgent" = { + text-color = mkLiteral "#D75F00FF"; + background-color = mkLiteral "#D0D0D0FF"; + }; + + "element alternate.active" = { + text-color = mkLiteral "#005F87FF"; + background-color = mkLiteral "#D0D0D0FF"; + }; + + "scrollbar" = { + border = 0; + padding = 0; + }; + + "inputbar" = { + spacing = 0; + border = 0; + padding = mkLiteral "0.5em 1em"; + background-color = mkLiteral "@grey"; + index = 0; + + border-radius = mkLiteral "4px"; + + children = map mkLiteral [ + "prompt" + "textbox-prompt-colon" + "entry" + "case-indicator" + ]; + }; + + "inputbar normal" = { + foreground-color = mkLiteral "#002B36FF"; + background-color = mkLiteral "#F5F5F500"; + }; + + "mode-switcher" = { + border = 0; + padding = mkLiteral "0.5em 1em"; + background-color = mkLiteral "@grey"; + index = 10; + }; + + "button selected" = { + text-color = mkLiteral "#4271AEFF"; + }; + + "textbox-prompt-colon" = { + expand = false; + str = ":"; + margin = mkLiteral "0px 0.3em 0em 0em"; + text-color = mkLiteral "@black"; + }; + + "error-message" = { + border = 0; + border-radius = mkLiteral "4px"; + padding = mkLiteral "1em"; + background-color = mkLiteral "#FF8888"; + text-color = mkLiteral "@black"; + }; + }; + extraConfig = { + modi = "drun,window,ssh"; + combi-modes = [ + "drun" + "window" + "ssh" + ]; + }; + font = "Iosevka Comfy 12"; + terminal = "footclient"; + pass = { + enable = true; + package = pkgs.rofi-pass-wayland; + }; + plugins = [ pkgs.rofi-calc ]; + }; +} diff --git a/hmModules/swayidle/default.nix b/hmModules/swayidle/default.nix index 60e3ed0..ccd150b 100644 --- a/hmModules/swayidle/default.nix +++ b/hmModules/swayidle/default.nix @@ -52,6 +52,6 @@ # Otherwise it will start only after Sway and will not work with Hyprland systemd.user.services.swayidle = { Unit.PartOf = lib.mkForce [ ]; - Install.WantedBy = lib.mkForce [ "hyprland-session.target" ]; + Install.WantedBy = lib.mkForce [ "graphical-session-pre.target" ]; }; } diff --git a/hmModules/waybar/default.nix b/hmModules/waybar/default.nix index 5705986..5bd7bb9 100644 --- a/hmModules/waybar/default.nix +++ b/hmModules/waybar/default.nix @@ -18,8 +18,12 @@ modules-left = [ "wlr/mode" "hyprland/workspaces" + "niri/workspaces" + ]; + modules-center = [ + "hyprland/window" + "niri/window" ]; - modules-center = [ "wlr/window" ]; modules-right = [ "network" "tray" diff --git a/hosts/kirk/default.nix b/hosts/kirk/default.nix index 1e60076..ad2ad2e 100644 --- a/hosts/kirk/default.nix +++ b/hosts/kirk/default.nix @@ -54,6 +54,7 @@ "password-store" "slack" "hyprland" + "niri" "udiskie" "xdg" "spotify" diff --git a/hosts/picard/default.nix b/hosts/picard/default.nix index 6aab3cf..13cbb3b 100644 --- a/hosts/picard/default.nix +++ b/hosts/picard/default.nix @@ -62,6 +62,7 @@ "password-store" "slack" "hyprland" + "niri" "udiskie" "xdg" "spotify" diff --git a/modules/greetd/default.nix b/modules/greetd/default.nix index 5a6e826..2f9707e 100644 --- a/modules/greetd/default.nix +++ b/modules/greetd/default.nix @@ -23,6 +23,15 @@ let Exec=cosmic-session ''; }) + (pkgs.writeTextFile { + name = "xorg-session.desktop"; + destination = "/niri-session.desktop"; + text = '' + [Desktop Entry] + Name=Niri + Exec=${lib.getExe' pkgs.niri "niri-session"} + ''; + }) ]; in { diff --git a/modules/xdg/default.nix b/modules/xdg/default.nix index c1aa55a..8aaabf7 100644 --- a/modules/xdg/default.nix +++ b/modules/xdg/default.nix @@ -7,11 +7,13 @@ xdg-desktop-portal-wlr xdg-desktop-portal-gtk xdg-desktop-portal-hyprland + xdg-desktop-portal-gnome ]; extraPortals = with pkgs; [ xdg-desktop-portal-wlr xdg-desktop-portal-gtk xdg-desktop-portal-hyprland + xdg-desktop-portal-gnome ]; xdgOpenUsePortal = true; wlr.enable = true; From a313be12eaa945f25c5b583dff8c783dad7c12be Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 9 Jan 2025 11:17:06 +0100 Subject: [PATCH 248/492] Bump inputs --- flake.lock | 133 +++++++++++++++------------------- modules/audio/default.nix | 5 -- modules/bluetooth/default.nix | 4 +- modules/pipewire/default.nix | 2 +- 4 files changed, 61 insertions(+), 83 deletions(-) diff --git a/flake.lock b/flake.lock index 4ccd5fb..7b241b5 100644 --- a/flake.lock +++ b/flake.lock @@ -32,11 +32,11 @@ "nuscht-search": "nuscht-search" }, "locked": { - "lastModified": 1735569271, - "narHash": "sha256-4CIClg4LMcmcCRIXSTcHDe6ujPzlxMtbCjMH7ntV784=", + "lastModified": 1736069220, + "narHash": "sha256-76MaB3COao55nlhWmSmq9PKgu2iGIs54C1cAE0E5J6Y=", "owner": "catppuccin", "repo": "nix", - "rev": "7413a65b3ed37964c16e2fbe20145b55bcda8281", + "rev": "8eada392fd6571a747e1c5fc358dd61c14c8704e", "type": "github" }, "original": { @@ -117,11 +117,11 @@ ] }, "locked": { - "lastModified": 1735468753, - "narHash": "sha256-2dt1nOe9zf9pDkf5Kn7FUFyPRo581s0n90jxYXJ94l0=", + "lastModified": 1736199437, + "narHash": "sha256-TdU0a/x8048rbbJmkKWzSY1CtsbbGKNkIJcMdr8Zf4Q=", "owner": "nix-community", "repo": "disko", - "rev": "84a5b93637cc16cbfcc61b6e1684d626df61eb21", + "rev": "49f8aa791f81ff2402039b3efe0c35b9386c4bcf", "type": "github" }, "original": { @@ -156,11 +156,11 @@ "nixpkgs-stable": "nixpkgs-stable_2" }, "locked": { - "lastModified": 1735575692, - "narHash": "sha256-akoVz7FBTAqLEj2bFLbA3Zqs1V7eF9J6KluWWojsxd0=", + "lastModified": 1736327656, + "narHash": "sha256-vDli473KKyf13uexB4Ja9Jt7KmeUSbHbeuwIDP0M2yM=", "owner": "nix-community", "repo": "emacs-overlay", - "rev": "eab2ed354a88a6870ffca4980abb470bba0e4452", + "rev": "42b7368d193ad1939c32e87b48e970423f22f242", "type": "github" }, "original": { @@ -267,11 +267,11 @@ ] }, "locked": { - "lastModified": 1733312601, - "narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=", + "lastModified": 1735774679, + "narHash": "sha256-soePLBazJk0qQdDVhdbM98vYdssfs3WFedcq+raipRI=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9", + "rev": "f2f7418ce0ab4a5309a4596161d154cfc877af66", "type": "github" }, "original": { @@ -378,11 +378,11 @@ "nixpkgs-lib": "nixpkgs-lib" }, "locked": { - "lastModified": 1733312601, - "narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=", + "lastModified": 1736143030, + "narHash": "sha256-+hu54pAoLDEZT9pjHlqL9DNzWz0NbUn8NEAHP7PQPzU=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9", + "rev": "b905f6fc23a9051a6e1b741e1438dbfc0634c6de", "type": "github" }, "original": { @@ -412,15 +412,14 @@ "gitignore": "gitignore", "nixpkgs": [ "nixpkgs" - ], - "nixpkgs-stable": "nixpkgs-stable_3" + ] }, "locked": { - "lastModified": 1734797603, - "narHash": "sha256-ulZN7ps8nBV31SE+dwkDvKIzvN6hroRY8sYOT0w+E28=", + "lastModified": 1735882644, + "narHash": "sha256-3FZAG+pGt3OElQjesCAWeMkQ7C/nB1oTHLRQ8ceP110=", "owner": "cachix", "repo": "git-hooks.nix", - "rev": "f0f0dc4920a903c3e08f5bdb9246bb572fcae498", + "rev": "a5a961387e75ae44cc20f0a57ae463da5e959656", "type": "github" }, "original": { @@ -583,11 +582,11 @@ ] }, "locked": { - "lastModified": 1735381016, - "narHash": "sha256-CyCZFhMUkuYbSD6bxB/r43EdmDE7hYeZZPTCv0GudO4=", + "lastModified": 1736349537, + "narHash": "sha256-jE6CXoJLBmvuq9bWjv+EQusiEtSxPiNasWbD+N4575U=", "owner": "nix-community", "repo": "home-manager", - "rev": "10e99c43cdf4a0713b4e81d90691d22c6a58bdf2", + "rev": "456e599f9101ed153dde268b4401c5d294ba6c8c", "type": "github" }, "original": { @@ -688,11 +687,11 @@ "lix": { "flake": false, "locked": { - "lastModified": 1735572323, - "narHash": "sha256-Wjt+PK15IdaOUoI0sgsRzaNMxKQGSROLe9sOd44+fwM=", + "lastModified": 1736275188, + "narHash": "sha256-IWu1aN1MeRCtx0PYIKTvG5iDSOx/JVegm4Y+0lAZGTE=", "ref": "refs/heads/main", - "rev": "5c7ea4f446de58aa64f78087bb4ec26b9c4111aa", - "revCount": 16600, + "rev": "3413ab56292f12ac03ee49270bcaf16038020cb3", + "revCount": 16605, "type": "git", "url": "https://git@git.lix.systems/lix-project/lix" }, @@ -777,11 +776,11 @@ "treefmt-nix": "treefmt-nix_2" }, "locked": { - "lastModified": 1734716067, - "narHash": "sha256-BCpd50t/3JU4ydiNfJxH3LzQDzyGbBI0CKWaeplnkVg=", + "lastModified": 1736168988, + "narHash": "sha256-jqH3cfg98+mRSB59WmJuWnvsSyOUNIOVZxf16Mh9/8s=", "owner": "Mic92", "repo": "nix-fast-build", - "rev": "ed736c65a8cb58a85369f6ee1c3f4403aa904fcc", + "rev": "a06a8b2c079f7b6dab491a12555387bdb737cc44", "type": "github" }, "original": { @@ -865,11 +864,11 @@ "nixpkgs": "nixpkgs_6" }, "locked": { - "lastModified": 1735478292, - "narHash": "sha256-Ys9pSP9ch0SthhpbjnkCSJ9ZLfaNKnt/dcy7swjmS1A=", + "lastModified": 1736085891, + "narHash": "sha256-bTl9fcUo767VaSx4Q5kFhwiDpFQhBKna7lNbGsqCQiA=", "owner": "LnL7", "repo": "nix-darwin", - "rev": "71a3a075e3229a7518d76636bb762aef2bcb73ac", + "rev": "ba9b3173b0f642ada42b78fb9dfc37ca82266f6c", "type": "github" }, "original": { @@ -901,11 +900,11 @@ }, "nixosHardware": { "locked": { - "lastModified": 1735388221, - "narHash": "sha256-e5IOgjQf0SZcFCEV/gMGrsI0gCJyqOKShBQU0iiM3Kg=", + "lastModified": 1736283893, + "narHash": "sha256-BG1FfTexFwNty5VhYjaQLMR6CMPfI3QRcaZrFQYu2EM=", "owner": "NixOS", "repo": "nixos-hardware", - "rev": "7c674c6734f61157e321db595dbfcd8523e04e19", + "rev": "4f339f6be2b61662f957c2ee9eda0fa597d8a6d6", "type": "github" }, "original": { @@ -964,14 +963,14 @@ }, "nixpkgs-lib": { "locked": { - "lastModified": 1733096140, - "narHash": "sha256-1qRH7uAUsyQI7R1Uwl4T+XvdNv778H0Nb5njNrqvylY=", + "lastModified": 1735774519, + "narHash": "sha256-CewEm1o2eVAnoqb6Ml+Qi9Gg/EfNAxbRx1lANGVyoLI=", "type": "tarball", - "url": "https://github.com/NixOS/nixpkgs/archive/5487e69da40cbd611ab2cadee0b4637225f7cfae.tar.gz" + "url": "https://github.com/NixOS/nixpkgs/archive/e9b51731911566bbf7e4895475a87fe06961de0b.tar.gz" }, "original": { "type": "tarball", - "url": "https://github.com/NixOS/nixpkgs/archive/5487e69da40cbd611ab2cadee0b4637225f7cfae.tar.gz" + "url": "https://github.com/NixOS/nixpkgs/archive/e9b51731911566bbf7e4895475a87fe06961de0b.tar.gz" } }, "nixpkgs-lib_2": { @@ -1010,11 +1009,11 @@ }, "nixpkgs-stable_2": { "locked": { - "lastModified": 1735531152, - "narHash": "sha256-As8I+ebItDKtboWgDXYZSIjGlKeqiLBvjxsQHUmAf1Q=", + "lastModified": 1736200483, + "narHash": "sha256-JO+lFN2HsCwSLMUWXHeOad6QUxOuwe9UOAF/iSl1J4I=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "3ffbbdbac0566a0977da3d2657b89cbcfe9a173b", + "rev": "3f0a8ac25fb674611b98089ca3a5dd6480175751", "type": "github" }, "original": { @@ -1040,22 +1039,6 @@ "type": "github" } }, - "nixpkgs-stable_4": { - "locked": { - "lastModified": 1730741070, - "narHash": "sha256-edm8WG19kWozJ/GqyYx2VjW99EdhjKwbY3ZwdlPAAlo=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "d063c1dd113c91ab27959ba540c0d9753409edf3", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-24.05", - "repo": "nixpkgs", - "type": "github" - } - }, "nixpkgs_10": { "locked": { "lastModified": 1682134069, @@ -1104,11 +1087,11 @@ }, "nixpkgs_4": { "locked": { - "lastModified": 1735471104, - "narHash": "sha256-0q9NGQySwDQc7RhAV2ukfnu7Gxa5/ybJ2ANT8DQrQrs=", + "lastModified": 1736012469, + "narHash": "sha256-/qlNWm/IEVVH7GfgAIyP6EsVZI6zjAx1cV5zNyrs+rI=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "88195a94f390381c6afcdaa933c2f6ff93959cb4", + "rev": "8f3e1f807051e32d8c95cd12b9b421623850a34d", "type": "github" }, "original": { @@ -1165,11 +1148,11 @@ }, "nixpkgs_8": { "locked": { - "lastModified": 1735471104, - "narHash": "sha256-0q9NGQySwDQc7RhAV2ukfnu7Gxa5/ybJ2ANT8DQrQrs=", + "lastModified": 1703255338, + "narHash": "sha256-Z6wfYJQKmDN9xciTwU3cOiOk+NElxdZwy/FiHctCzjU=", "owner": "nixos", "repo": "nixpkgs", - "rev": "88195a94f390381c6afcdaa933c2f6ff93959cb4", + "rev": "6df37dc6a77654682fe9f071c62b4242b5342e04", "type": "github" }, "original": { @@ -1181,11 +1164,11 @@ }, "nixpkgs_9": { "locked": { - "lastModified": 1735471104, - "narHash": "sha256-0q9NGQySwDQc7RhAV2ukfnu7Gxa5/ybJ2ANT8DQrQrs=", + "lastModified": 1736012469, + "narHash": "sha256-/qlNWm/IEVVH7GfgAIyP6EsVZI6zjAx1cV5zNyrs+rI=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "88195a94f390381c6afcdaa933c2f6ff93959cb4", + "rev": "8f3e1f807051e32d8c95cd12b9b421623850a34d", "type": "github" }, "original": { @@ -1283,7 +1266,7 @@ "lanzaboote", "nixpkgs" ], - "nixpkgs-stable": "nixpkgs-stable_4" + "nixpkgs-stable": "nixpkgs-stable_3" }, "locked": { "lastModified": 1731363552, @@ -1514,11 +1497,11 @@ ] }, "locked": { - "lastModified": 1734543842, - "narHash": "sha256-/QceWozrNg915Db9x/Ie5k67n9wKgGdTFng+Z1Qw0kE=", + "lastModified": 1735905407, + "narHash": "sha256-1hKMRIT+QZNWX46e4gIovoQ7H8QRb7803ZH4qSKI45o=", "owner": "numtide", "repo": "treefmt-nix", - "rev": "76159fc74eeac0599c3618e3601ac2b980a29263", + "rev": "29806abab803e498df96d82dd6f34b32eb8dd2c8", "type": "github" }, "original": { @@ -1534,11 +1517,11 @@ ] }, "locked": { - "lastModified": 1735135567, - "narHash": "sha256-8T3K5amndEavxnludPyfj3Z1IkcFdRpR23q+T0BVeZE=", + "lastModified": 1736154270, + "narHash": "sha256-p2r8xhQZ3TYIEKBoiEhllKWQqWNJNoT9v64Vmg4q8Zw=", "owner": "numtide", "repo": "treefmt-nix", - "rev": "9e09d30a644c57257715902efbb3adc56c79cf28", + "rev": "13c913f5deb3a5c08bb810efd89dc8cb24dd968b", "type": "github" }, "original": { diff --git a/modules/audio/default.nix b/modules/audio/default.nix index 96e68ee..65ac9fa 100644 --- a/modules/audio/default.nix +++ b/modules/audio/default.nix @@ -2,10 +2,5 @@ { sound.enable = true; - hardware.pulseaudio = { - enable = true; - package = pkgs.pulseaudioFull; - }; - users.extraUsers.ccr.extraGroups = [ "audio" ]; } diff --git a/modules/bluetooth/default.nix b/modules/bluetooth/default.nix index 9d5ee45..f6f28f7 100644 --- a/modules/bluetooth/default.nix +++ b/modules/bluetooth/default.nix @@ -1,13 +1,13 @@ { pkgs, config, + lib, ... }: { services.blueman.enable = true; - hardware.pulseaudio.enable = true; hardware.bluetooth = { - enable = true; + enable = lib.mkDefault true; settings = { General = { Name = config.networking.hostName; diff --git a/modules/pipewire/default.nix b/modules/pipewire/default.nix index 8b69935..fac17a0 100644 --- a/modules/pipewire/default.nix +++ b/modules/pipewire/default.nix @@ -3,6 +3,6 @@ services.pipewire.enable = true; hardware.pulseaudio = { - enable = lib.mkForce false; + enable = false; }; } From 8b8ce6baa32e995169dd8bf77b7fbb7cbb572007 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 9 Jan 2025 11:17:12 +0100 Subject: [PATCH 249/492] Disable swayvnc --- hmModules/hyprland/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hmModules/hyprland/default.nix b/hmModules/hyprland/default.nix index 2596638..45852ee 100644 --- a/hmModules/hyprland/default.nix +++ b/hmModules/hyprland/default.nix @@ -27,7 +27,7 @@ in ../waybar ../swayidle ../gammastep - ../swaync + # ../swaync ../foot ]; From db2dc67e47b3e06c4498192b8b94b93540bade87 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 9 Jan 2025 11:17:38 +0100 Subject: [PATCH 250/492] Add `ultra-scroll` to Emacs --- hmModules/emacs/init.el | 11 +++++++---- packages/emacs/packages.nix | 10 ++++++++++ 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/hmModules/emacs/init.el b/hmModules/emacs/init.el index 68ba3d2..25a8175 100644 --- a/hmModules/emacs/init.el +++ b/hmModules/emacs/init.el @@ -48,8 +48,6 @@ (native-comp-async-report-warnings-errors nil) (inhibit-startup-message t) (visible-bell t) - (scroll-conservatively 101) ;; more than 100 => redisplay doesn't recenter point) - (scroll-margin 3) (temporary-file-directory "~/.emacs-saves/") (backup-directory-alist `(("." . ,temporary-file-directory))) (auto-save-files-name-transforms `((".*" ,temporary-file-directory t))) @@ -84,6 +82,13 @@ (async-shell-command (format "sudo nixos-rebuild --flake fleet %s -L" operation) buffer-name))) ) +(use-package ultra-scroll + :init + (setq scroll-conservatively 101 ; important! + scroll-margin 0) + :config + (ultra-scroll-mode 1)) + (use-package doc-view :custom (doc-view-scale-internally nil) @@ -628,7 +633,6 @@ (add-to-list 'eat-semi-char-non-bound-keys '[?\e 108]) ; M-l (eat-update-semi-char-mode-map) (eat-reload) - :hook (eat-mode . (lambda () (setq-local scroll-margin 0))) :bind (("C-c o t" . eat-project)) ;; FIXME doesn't work well ;; ((eat-mode . compilation-shell-minor-mode)) @@ -666,7 +670,6 @@ (defalias (car alias) (cdr alias))) ccr/eshell-aliases) - :hook (eshell-mode . (lambda () (setq-local scroll-margin 0))) :bind (("C-c o e" . project-eshell) :map eshell-mode-map ("C-r" . eshell-atuin-history))) ;; i.e. just C-r in semi-char-mode diff --git a/packages/emacs/packages.nix b/packages/emacs/packages.nix index a3d9f0d..fde9e30 100644 --- a/packages/emacs/packages.nix +++ b/packages/emacs/packages.nix @@ -88,6 +88,16 @@ let }; deps = [ ]; }; + ultra-scroll = buildEmacsPackage { + name = "ultra-scroll"; + src = pkgs.fetchFromGitHub { + owner = "jdtsmith"; + repo = "ultra-scroll"; + rev = "78ab497c6568e4a99f34a84b4c9bfe87d1a71d8c"; + hash = "sha256-q/LGP69GRtEEbSpXi9JUoZjr/UV1QMVjQw96M6qxsZU="; + }; + deps = [ ]; + }; }; # *List* containing emacs packages from (M)ELPA From a38be99ea03587438aed8568e09ea45639eaa692 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 9 Jan 2025 11:55:02 +0100 Subject: [PATCH 251/492] Fix niri config for `kirk`'s monitor --- hmModules/niri/config.kdl | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/hmModules/niri/config.kdl b/hmModules/niri/config.kdl index 5a3b61f..f854297 100644 --- a/hmModules/niri/config.kdl +++ b/hmModules/niri/config.kdl @@ -75,7 +75,7 @@ environment { // Find more information on the wiki: // https://github.com/YaLTeR/niri/wiki/Configuration:-Outputs // Remember to uncomment the node by removing "/-"! -/-output "eDP-1" { +output "eDP-1" { // Uncomment this line to disable this output. // off @@ -85,12 +85,12 @@ environment { // for the resolution. // If the mode is omitted altogether or is invalid, niri will pick one automatically. // Run `niri msg outputs` while inside a niri instance to list all outputs and their modes. - mode "1920x1080@120.030" + mode "1920x1080@59.999" // You can use integer or fractional scale, for example use 1.5 for 150% scale. - scale 2 + scale 1.2 - // Transform allows to rotate the output counter-clockwise, valid values are: + // Transform allows to rotate the output counter-clockwise, valid values are:monitor // normal, 90, 180, 270, flipped, flipped-90, flipped-180 and flipped-270. transform "normal" @@ -103,7 +103,7 @@ environment { // so to put another output directly adjacent to it on the right, set its x to 1920. // If the position is unset or results in an overlap, the output is instead placed // automatically. - position x=1280 y=0 + // position x=1280 y=0 } // Settings that influence how windows are positioned and sized. From 8fb56c00059dae20a276364530b0b78cafb128c8 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 9 Jan 2025 11:58:16 +0100 Subject: [PATCH 252/492] Explicit niri config for `picard`'s external monitor --- hmModules/niri/config.kdl | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/hmModules/niri/config.kdl b/hmModules/niri/config.kdl index f854297..65a4ae5 100644 --- a/hmModules/niri/config.kdl +++ b/hmModules/niri/config.kdl @@ -106,6 +106,12 @@ output "eDP-1" { // position x=1280 y=0 } +output "Dell Inc. DELL U2515H 9X2VY5170PJL" { + mode "2560x1440@59.951" + scale 1 + transform "normal" +} + // Settings that influence how windows are positioned and sized. // Find more information on the wiki: // https://github.com/YaLTeR/niri/wiki/Configuration:-Layout From 12698af186ad6f693b1e3920dc69dcc56880a3d0 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 10 Jan 2025 10:39:18 +0100 Subject: [PATCH 253/492] Add `math-preview` Emacs package --- packages/emacs/packages.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/emacs/packages.nix b/packages/emacs/packages.nix index fde9e30..33122dd 100644 --- a/packages/emacs/packages.nix +++ b/packages/emacs/packages.nix @@ -164,6 +164,7 @@ let terraform-mode diredfl org-modern + math-preview org-roam org-roam-ql org-roam-ui From ba9775666bd6c18b07e46f4a72611acefe9ff534 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 10 Jan 2025 10:39:29 +0100 Subject: [PATCH 254/492] Re-enable Sway Notification Center --- hmModules/hyprland/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hmModules/hyprland/default.nix b/hmModules/hyprland/default.nix index 45852ee..2596638 100644 --- a/hmModules/hyprland/default.nix +++ b/hmModules/hyprland/default.nix @@ -27,7 +27,7 @@ in ../waybar ../swayidle ../gammastep - # ../swaync + ../swaync ../foot ]; From 8c18115208ab1f8afb834c13cffbfdb0271f254e Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 10 Jan 2025 10:40:37 +0100 Subject: [PATCH 255/492] Add `math-preview` executable used by the `math-preview` Emacs package --- hmModules/emacs/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/hmModules/emacs/default.nix b/hmModules/emacs/default.nix index ffeeb43..39717d3 100644 --- a/hmModules/emacs/default.nix +++ b/hmModules/emacs/default.nix @@ -47,6 +47,7 @@ in qadwaitadecorations kdePackages.qtwayland copilot-node-server + math-preview ] ++ (with hunspellDicts; [ en_US-large From 1411269c58f42280bd5b857601b43de029169b97 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 10 Jan 2025 10:41:05 +0100 Subject: [PATCH 256/492] Move out the waybar config --- hmModules/waybar/config.json | 95 ++++++++++++++++++++++ hmModules/waybar/default.nix | 147 +++-------------------------------- 2 files changed, 106 insertions(+), 136 deletions(-) create mode 100644 hmModules/waybar/config.json diff --git a/hmModules/waybar/config.json b/hmModules/waybar/config.json new file mode 100644 index 0000000..05953f2 --- /dev/null +++ b/hmModules/waybar/config.json @@ -0,0 +1,95 @@ +[ + { + "backlight": { + "device": "ddcci2", + "format": "{percent}% {icon}", + "format-icons": [" ", " "] + }, + "battery": { + "format": "{capacity}% {icon}", + "format-alt": "{time} {icon}", + "format-charging": "{capacity}% ", + "format-icons": [" ", " ", " ", " ", " "], + "format-plugged": "{capacity}%  ", + "states": { + "critical": 15, + "warning": 30 + } + }, + "clock": { + "format-alt": "{:%Y-%m-%d}", + "tooltip-format": "{:%Y-%m-%d | %H:%M}" + }, + "cpu": { + "format": "{usage}% ", + "tooltip": false + }, + "height": 30, + "hyprland/workspaces": { + "all-outputs": true, + "disable-scroll-wraparound": true, + "on-click": "activate" + }, + "ipc": true, + "layer": "top", + "memory": { + "format": "{}% " + }, + "modules-center": ["hyprland/window", "niri/window"], + "modules-left": ["wlr/mode", "hyprland/workspaces", "niri/workspaces"], + "modules-right": [ + "network", + "tray", + "pulseaudio", + "cpu", + "memory", + "temperature", + "backlight", + "battery", + "clock" + ], + "network": { + "format-alt": "{ifname}: {ipaddr}/{cidr}", + "format-disconnected": "Disconnected ⚠", + "format-ethernet": "{ifname}: {ipaddr}/{cidr} 󰈀 up: {bandwidthUpBits:>4} down: {bandwidthDownBits:>4}", + "format-linked": "{ifname} (No IP) ", + "format-wifi": "{essid} ({signalStrength}%)  {ipaddr}/{cidr} up: {bandwidthUpBits:>4} down: {bandwidthDownBits:>4}", + "interval": 1 + }, + "position": "top", + "pulseaudio": { + "format": "{volume}% {icon} {format_source}", + "format-bluetooth": "{volume}% {icon} {format_source}", + "format-bluetooth-muted": " {icon} {format_source}", + "format-icons": { + "car": "", + "default": [" ", " ", " "], + "handsfree": "", + "headphones": " ", + "headset": "", + "phone": "", + "portable": "" + }, + "format-muted": " {format_source}", + "format-source": "{volume}% ", + "format-source-muted": "", + "on-click": "/nix/store/rya5a9r0ryh9x8yf03m3s420r4ay6ysg-pavucontrol-6.1/bin/pavucontrol" + }, + "temperature": { + "critical-threshold": 80, + "format": "{temperatureC}°C {icon}", + "format-icons": ["", "", ""], + "hwmon-path": "/sys/class/hwmon/hwmon2/temp1_input" + }, + "tray": { + "spacing": 10 + }, + "wlr/mode": { + "format": "{}", + "tooltip": false + }, + "wlr/window": { + "max_length": 50 + } + } +] diff --git a/hmModules/waybar/default.nix b/hmModules/waybar/default.nix index 5bd7bb9..f8e5c85 100644 --- a/hmModules/waybar/default.nix +++ b/hmModules/waybar/default.nix @@ -7,144 +7,19 @@ programs.waybar = { enable = true; systemd.enable = true; - style = builtins.readFile ./style.css; - settings = { - mainBar = { - ipc = true; - layer = "top"; - position = "top"; - height = 30; - - modules-left = [ - "wlr/mode" - "hyprland/workspaces" - "niri/workspaces" - ]; - modules-center = [ - "hyprland/window" - "niri/window" - ]; - modules-right = [ - "network" - "tray" - "pulseaudio" - "cpu" - "memory" - "temperature" - "backlight" - "battery" - "clock" - ]; - - "hyprland/workspaces" = { - all-outputs = true; - disable-scroll-wraparound = true; - # format = "{icon}"; - on-click = "activate"; - # format-icons = { - # "1" = ""; - # "2" = ""; - # "3" = ""; - # "9" = "ﬧ"; - # urgent = ""; - # }; - # sort-by-number = true; - }; - - "wlr/mode" = { - tooltip = false; - }; - - "wlr/window" = { - max_length = 50; - }; - tray = { - spacing = 10; - }; - battery = { - format = "{capacity}% {icon}"; - format-alt = "{time} {icon}"; - format-charging = "{capacity}% "; - format-icons = [ - " " - " " - " " - " " - " " - ]; - format-plugged = "{capacity}%  "; - states = { - critical = 15; - warning = 30; - }; - }; - clock = { - format-alt = "{:%Y-%m-%d}"; - tooltip-format = "{:%Y-%m-%d | %H:%M}"; - }; - cpu = { - format = "{usage}% "; - tooltip = false; - }; - memory = { - format = "{}% "; - }; - network = { - interval = 1; - format-alt = "{ifname}: {ipaddr}/{cidr}"; - format-disconnected = "Disconnected ⚠"; - format-ethernet = "{ifname}: {ipaddr}/{cidr} 󰈀 up: {bandwidthUpBits:>4} down: {bandwidthDownBits:>4}"; - format-linked = "{ifname} (No IP) "; - format-wifi = "{essid} ({signalStrength}%)  {ipaddr}/{cidr} up: {bandwidthUpBits:>4} down: {bandwidthDownBits:>4}"; - }; - pulseaudio = { - format = "{volume}% {icon} {format_source}"; - format-bluetooth = "{volume}% {icon} {format_source}"; - format-bluetooth-muted = " {icon} {format_source}"; - format-icons = { - car = ""; - default = [ - " " - " " - " " - ]; - handsfree = ""; - headphones = " "; - headset = ""; - phone = ""; - portable = ""; - }; - format-muted = " {format_source}"; - format-source = "{volume}% "; - format-source-muted = ""; - on-click = "${pkgs.pavucontrol}/bin/pavucontrol"; - }; - "wlr/mode" = { - format = ''{}''; - }; - temperature = { - critical-threshold = 80; - format = "{temperatureC}°C {icon}"; - format-icons = [ - "" - "" - "" - ]; - hwmon-path = "/sys/class/hwmon/hwmon2/temp1_input"; # picard FIXME - # hwmon-path = "/sys/class/thermal/thermal_zone4/temp"; # thinkpad - }; - backlight = { - device = "ddcci2"; - format = "{percent}% {icon}"; - format-icons = [ - " " - " " - ]; - }; - }; - }; }; + catppuccin.waybar.enable = lib.mkForce false; + + home.activation.linkWaybarConfig = lib.hm.dag.entryAnywhere '' + if [ ! -d "$HOME/.config/waybar" ]; then + $DRY_RUN_CMD mkdir -p "$HOME/.config/waybar" + $DRY_RUN_CMD ln -s "$HOME/projects/aciceri/nixfleet/hmModules/waybar/config.json" "$HOME/.config/waybar/config" + $DRY_RUN_CMD ln -s "$HOME/projects/aciceri/nixfleet/hmModules/waybar/style.css" "$HOME/.config/waybar/style.css" + fi + ''; + # waybar needs the hyprctl binary in PATH when started in hyprland + # TODO still needed? systemd.user.services.waybar.Service.Environment = "PATH=${lib.makeBinPath [ pkgs.hyprland ]}"; } From 0c4a52f6ec7d59611d3aab906b018c32c1202465 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 10 Jan 2025 20:42:46 +0100 Subject: [PATCH 257/492] Emacs default frame title --- hmModules/emacs/init.el | 1 + 1 file changed, 1 insertion(+) diff --git a/hmModules/emacs/init.el b/hmModules/emacs/init.el index 25a8175..8778ca8 100644 --- a/hmModules/emacs/init.el +++ b/hmModules/emacs/init.el @@ -56,6 +56,7 @@ (mouse-autoselect-window t) (treesit-font-lock-level 4) (custom-file "~/.config/emacs/custom.el") + (frame-title-format "%b - Emacs") :config (set-face-background 'vertical-border (face-background 'default)) (set-display-table-slot standard-display-table 'vertical-border (make-glyph-code ?┃)) From 12f1800aed259273828d35f64c588cb77de06f7d Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 10 Jan 2025 20:42:58 +0100 Subject: [PATCH 258/492] Emacs experiments --- hmModules/emacs/init.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hmModules/emacs/init.el b/hmModules/emacs/init.el index 8778ca8..047e4d3 100644 --- a/hmModules/emacs/init.el +++ b/hmModules/emacs/init.el @@ -1021,7 +1021,7 @@ This is meant to be an helper to be called from the window manager." "test" (interactive) (with-selected-frame - (make-frame '((name . "floating") + (make-frame '((name . "Emacs Selector") (minibuffer . only) (fullscreen . 0) ; no fullscreen (undecorated . t) ; remove title bar From 66fd1c306675d47be812e7203b93825fa0cf09e1 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 10 Jan 2025 20:43:25 +0100 Subject: [PATCH 259/492] Format --- hmModules/niri/config.kdl | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/hmModules/niri/config.kdl b/hmModules/niri/config.kdl index 65a4ae5..7634d04 100644 --- a/hmModules/niri/config.kdl +++ b/hmModules/niri/config.kdl @@ -280,24 +280,24 @@ window-rule { } window-rule { - geometry-corner-radius 4 - clip-to-geometry true + geometry-corner-radius 4 + clip-to-geometry true } window-rule { - match app-id=r#"^spotify$"# - open-maximized true - open-on-workspace "spotify" + match app-id=r#"^spotify$"# + open-maximized true + open-on-workspace "spotify" } window-rule { - match app-id=r#"^Slack$"# - open-maximized true + match app-id=r#"^Slack$"# + open-maximized true } window-rule { - match app-id=r#"^Element"# - open-maximized true + match app-id=r#"^Element"# + open-maximized true } From 37de97df461ad610c79bd71870c0f4747e843692 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 10 Jan 2025 20:50:46 +0100 Subject: [PATCH 260/492] Use `rofi-power-menu` --- hmModules/niri/config.kdl | 4 ++++ hmModules/waybar/default.nix | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/hmModules/niri/config.kdl b/hmModules/niri/config.kdl index 7634d04..7d25a06 100644 --- a/hmModules/niri/config.kdl +++ b/hmModules/niri/config.kdl @@ -300,6 +300,9 @@ window-rule { open-maximized true } +window-rule { + match app-id=r#"^Emacs Selector$"# +} @@ -332,6 +335,7 @@ binds { Mod+G { spawn "emacsclient" "-c" "--eval" "(switch-to-buffer (gptel \"*ChatGPT*\"))"; } Mod+Shift+C { spawn "emacsclient" "-c" "--eval" "(org-roam-dailies-capture-today)"; } Super+Alt+L { spawn "swaylock"; } + Mod+Space { spawn "rofi" "-show" "menu" "-modi" "menu:rofi-power-menu"; } // Example volume keys mappings for PipeWire & WirePlumber. diff --git a/hmModules/waybar/default.nix b/hmModules/waybar/default.nix index f8e5c85..0e544d9 100644 --- a/hmModules/waybar/default.nix +++ b/hmModules/waybar/default.nix @@ -19,6 +19,10 @@ fi ''; + home.packages = with pkgs; [ + rofi-power-menu + ]; + # waybar needs the hyprctl binary in PATH when started in hyprland # TODO still needed? systemd.user.services.waybar.Service.Environment = "PATH=${lib.makeBinPath [ pkgs.hyprland ]}"; From e0d514438951884fb6b1beec26a23943854c9a51 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 10 Jan 2025 20:51:00 +0100 Subject: [PATCH 261/492] Re-style waybar --- hmModules/waybar/config.json | 169 ++++++++++++++++------------------- hmModules/waybar/style.css | 95 ++++++++++++-------- 2 files changed, 132 insertions(+), 132 deletions(-) diff --git a/hmModules/waybar/config.json b/hmModules/waybar/config.json index 05953f2..8d220da 100644 --- a/hmModules/waybar/config.json +++ b/hmModules/waybar/config.json @@ -1,95 +1,78 @@ -[ - { - "backlight": { - "device": "ddcci2", - "format": "{percent}% {icon}", - "format-icons": [" ", " "] - }, - "battery": { - "format": "{capacity}% {icon}", - "format-alt": "{time} {icon}", - "format-charging": "{capacity}% ", - "format-icons": [" ", " ", " ", " ", " "], - "format-plugged": "{capacity}%  ", - "states": { - "critical": 15, - "warning": 30 - } - }, - "clock": { - "format-alt": "{:%Y-%m-%d}", - "tooltip-format": "{:%Y-%m-%d | %H:%M}" - }, - "cpu": { - "format": "{usage}% ", - "tooltip": false - }, - "height": 30, - "hyprland/workspaces": { - "all-outputs": true, - "disable-scroll-wraparound": true, - "on-click": "activate" - }, - "ipc": true, - "layer": "top", - "memory": { - "format": "{}% " - }, - "modules-center": ["hyprland/window", "niri/window"], - "modules-left": ["wlr/mode", "hyprland/workspaces", "niri/workspaces"], - "modules-right": [ - "network", - "tray", - "pulseaudio", - "cpu", - "memory", - "temperature", - "backlight", - "battery", - "clock" - ], - "network": { - "format-alt": "{ifname}: {ipaddr}/{cidr}", - "format-disconnected": "Disconnected ⚠", - "format-ethernet": "{ifname}: {ipaddr}/{cidr} 󰈀 up: {bandwidthUpBits:>4} down: {bandwidthDownBits:>4}", - "format-linked": "{ifname} (No IP) ", - "format-wifi": "{essid} ({signalStrength}%)  {ipaddr}/{cidr} up: {bandwidthUpBits:>4} down: {bandwidthDownBits:>4}", - "interval": 1 - }, - "position": "top", - "pulseaudio": { - "format": "{volume}% {icon} {format_source}", - "format-bluetooth": "{volume}% {icon} {format_source}", - "format-bluetooth-muted": " {icon} {format_source}", - "format-icons": { - "car": "", - "default": [" ", " ", " "], - "handsfree": "", - "headphones": " ", - "headset": "", - "phone": "", - "portable": "" - }, - "format-muted": " {format_source}", - "format-source": "{volume}% ", - "format-source-muted": "", - "on-click": "/nix/store/rya5a9r0ryh9x8yf03m3s420r4ay6ysg-pavucontrol-6.1/bin/pavucontrol" - }, - "temperature": { - "critical-threshold": 80, - "format": "{temperatureC}°C {icon}", - "format-icons": ["", "", ""], - "hwmon-path": "/sys/class/hwmon/hwmon2/temp1_input" - }, - "tray": { - "spacing": 10 - }, - "wlr/mode": { - "format": "{}", - "tooltip": false - }, - "wlr/window": { - "max_length": 50 +{ + "layer": "top", + "position": "left", + "width": 36, + "margin": "12 0 12 0", + "spacing": 2, + "modules-left": ["clock", "custom/sep", "niri/window"], + "modules-center": ["niri/workspaces"], + "modules-right": [ + "tray", + "custom/sep", + "temperature", + "custom/sep", + "pulseaudio", + "custom/powermenu" + ], + "custom/sep": { + "format": "──" + // "format": "" + }, + "custom/powermenu": { + "on-click": "rofi -show menu -modi menu:rofi-power-menu", + "format": "", + "tooltip": false + }, + "niri/workspaces": { + "format": "{icon}", + "on-click": "activate", + "format-icons": { + "active": "", + "urgent": "", + "default": "" } + }, + "niri/window": { + "rotate": 90, + "rewrite": { + "(.*) — Mozilla Firefox": " $1", + "(.*) - Emacs": " $1", + "(.*) - Slack": " $1" + } + }, + "clock": { + "tooltip": true, + "format": "{:%H\n%M}", + "tooltip-format": "{:%Y-%m-%d}" + }, + "tray": { + "icon-size": 20, + "spacing": 5, + "show-passive-items": "false" + }, + "temperature": { + "rotate": 90, + "hwmon-path": "/sys/class/hwmon/hwmon2/temp1_input", + "critical-threshold": 80, + "format": "{icon} {temperatureC}°C", + "format-icons": ["", "", ""] + }, + "pulseaudio": { + "rotate": 90, + "format": "{icon} {volume}%", + "format-bluetooth": "{icon} {volume}%", + "format-muted": "MUTE ", + "format-icons": { + "headphones": "", + "handsfree": "", + "headset": "", + "phone": "", + "portable": "", + "car": "", + "default": ["", ""] + }, + "scroll-step": 3, + "on-click": "pavucontrol", + "on-click-right": "pactl set-source-mute @DEFAULT_SOURCE@ toggle" } -] +} diff --git a/hmModules/waybar/style.css b/hmModules/waybar/style.css index 1358583..dc40a39 100644 --- a/hmModules/waybar/style.css +++ b/hmModules/waybar/style.css @@ -1,54 +1,71 @@ * { border: none; - border-radius: 0; - min-height: 0; - font-family: Fira Code; + font-family: "Iosevka Comfy", "FontAwesome", "Nerd Font"; + font-size: 1.35rem; + font-weight: 600; + background: none; } window#waybar { - background: rgba(255, 255, 255, 0.05); - color: white; - font-size: 1.2rem; + color: #a5adcb; + background-color: #181926; + + border-top-right-radius: 5px; + border-bottom-right-radius: 5px; +} +.modules-left, +.modules-right, +.modules-center { + padding: 12px 4px; } -#workspaces button { - padding: 0 10px; - background: transparent; - color: white; - font-size: 2rem; +tooltip { + color: #a5adcb; + background-color: #181926; + text-shadow: none; } -#workspaces button.active { - box-shadow: inset 0 -5px red; +tooltip * { + color: #a5adcb; + text-shadow: none; } -#workspaces button.focused, +#custom-sep { + color: #494d64; +} #workspaces button:hover { - box-shadow: inset 0 -5px white; + box-shadow: inherit; + text-shadow: inherit; +} +#workspaces button { + color: #5b6078; + background: none; + padding: 0; +} +#workspaces button:hover { + color: #a6da95; +} +#workspaces button.active { + color: #f5bde6; +} +#temperature { + color: #eed49f; +} +#clock { + font-weight: 600; + color: #8bd5ca; +} +#custom-bluetooth_devices { + color: #8aadf4; +} +#pulseaudio { + color: #a6da95; +} +#pulseaudio.muted { + color: #ed8796; } -#workspaces button.urgent { - /* background: @theme_fg_color; */ - /* color: @theme_selected_bg_color; */ -} - -#mode { - margin: 0 4px; - padding: 0 4px; - /* background: @theme_fg_color; */ - /* color: @unfocused_borders; */ -} - -#pulseaudio, -#network, -#cpu, -#memory, -#disk, -#temperature, -#battery, -#language, -#clock, -#tray { - margin: 0 4px; - padding: 0 2px; +#custom-powermenu { + margin: 12px 0 0 0; + color: #6e738d; } From 6849194702ecbd1b7c38f7e14253cd0a8ddfce36 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Mon, 13 Jan 2025 16:43:32 +0100 Subject: [PATCH 262/492] Update `deltaflyer` config Still not working --- hosts/default.nix | 10 ++++--- hosts/deltaflyer/default.nix | 33 +++++++++++++-------- hosts/deltaflyer/plasma-mobile.nix | 46 ++++++++++++++++-------------- 3 files changed, 52 insertions(+), 37 deletions(-) diff --git a/hosts/default.nix b/hosts/default.nix index 9b4c7c9..b76a20d 100644 --- a/hosts/default.nix +++ b/hosts/default.nix @@ -14,20 +14,22 @@ deltaflyer = { nixpkgs = let - # keep in sync with https://github.com/NixOS/mobile-nixos/blob/development/pkgs.nix - rev = "44d0940ea560dee511026a53f0e2e2cde489b4d4"; + # keep in sync with https://github.com/mobile-nixos/mobile-nixos/blob/development/npins/sources.json + rev = "d3c42f187194c26d9f0309a8ecc469d6c878ce33"; in builtins.getFlake "github:NixOS/nixpkgs/${rev}"; extraHmModules = [ - # inputs.ccrEmacs.hmModules.default + inputs.catppuccin.homeManagerModules.catppuccin ]; vpn = { ip = "10.100.0.5"; publicKey = "6bzmBx2b5yzMdW0aK0KapoBesNcxTv5+qdo+pGmG+jc="; }; - homeManager = builtins.getFlake "github:nix-community/home-manager/670d9ecc3e46a6e3265c203c2d136031a3d3548e"; + # homeManager = builtins.getFlake "github:nix-community/home-manager/670d9ecc3e46a6e3265c203c2d136031a3d3548e"; extraModules = [ (import "${inputs.mobile-nixos}/lib/configuration.nix" { device = "oneplus-fajita"; }) + inputs.catppuccin.nixosModules.catppuccin + inputs.lix-module.nixosModules.default ]; secrets = { "deltaflyer-wireguard-private-key" = { }; diff --git a/hosts/deltaflyer/default.nix b/hosts/deltaflyer/default.nix index 70f479f..7e68982 100644 --- a/hosts/deltaflyer/default.nix +++ b/hosts/deltaflyer/default.nix @@ -30,6 +30,13 @@ # INSECURE STUFF FIRST # Users and hardcoded passwords. { + nixpkgs.overlays = [ + (prev: final: { + gcc7 = final.gcc; + gcc8 = final.gcc; + }) + ]; + users.users.root.password = "nixos"; # users.users.ccr.password = "1234"; @@ -66,11 +73,13 @@ "git" "shell" "helix" - "hyprland" + # "hyprland" + "niri" "emacs" "firefox" "mpv" "xdg" + "catppuccin" ]; extraGroups = [ "dialout" @@ -99,18 +108,18 @@ ccr.extraModules = [ { programs.fish.loginShellInit = '' - pgrep Hypr >/dev/null || exec dbus-run-session Hyprland - ''; - wayland.windowManager.hyprland.extraConfig = lib.mkAfter '' - monitor = DSI-1, 1080x2340, 0x0, 2, transform, 1 - input { - touchdevice { - transform = 1 - } - } - bind = $mod, r, exec, rotate-screen hor - bind = $mod SHIFT, r, exec, rotate-screen ver + pgrep niri >/dev/null || exec niri-session ''; + # wayland.windowManager.hyprland.extraConfig = lib.mkAfter '' + # monitor = DSI-1, 1080x2340, 0x0, 2, transform, 1 + # input { + # touchdevice { + # transform = 1 + # } + # } + # bind = $mod, r, exec, rotate-screen hor + # bind = $mod SHIFT, r, exec, rotate-screen ver + # ''; home.packages = let rotateScript = pkgs.writeShellApplication { diff --git a/hosts/deltaflyer/plasma-mobile.nix b/hosts/deltaflyer/plasma-mobile.nix index 35c6f86..11eb446 100644 --- a/hosts/deltaflyer/plasma-mobile.nix +++ b/hosts/deltaflyer/plasma-mobile.nix @@ -3,6 +3,7 @@ # { lib, + pkgs, ... }: { @@ -16,35 +17,38 @@ # # desktopManager.plasma5.mobile.enable = true; - # displayManager.autoLogin = { - # enable = true; - # }; + displayManager.autoLogin = { + enable = true; + user = "ccr"; + }; - # displayManager.session = [{ - # manage = "desktop"; - # name = "hyprland"; - # start = '' - # ${pkgs.hyprland}/bin/Hyprland & - # waitPID=$! - # ''; - # }]; + displayManager.session = [ + { + manage = "desktop"; + name = "niri"; + start = '' + ${pkgs.niri}/bin/niri-session & + waitPID=$! + ''; + } + ]; - # displayManager.defaultSession = "hyprland"; + displayManager.defaultSession = "niri"; - # displayManager.lightdm = { - # enable = true; - # # Workaround for autologin only working at first launch. - # # A logout or session crashing will show the login screen otherwise. - # extraSeatDefaults = '' - # session-cleanup-script=${pkgs.procps}/bin/pkill -P1 -fx ${pkgs.lightdm}/sbin/lightdm - # ''; - # }; + displayManager.lightdm = { + enable = true; + # Workaround for autologin only working at first launch. + # A logout or session crashing will show the login screen otherwise. + extraSeatDefaults = '' + session-cleanup-script=${pkgs.procps}/bin/pkill -P1 -fx ${pkgs.lightdm}/sbin/lightdm + ''; + }; libinput.enable = true; }; hardware.bluetooth.enable = true; - hardware.pulseaudio.enable = lib.mkDefault true; # mkDefault to help out users wanting pipewire + hardware.pulseaudio.enable = lib.mkDefault false; # mkDefault to help out users wanting pipewire networking.networkmanager.enable = true; networking.wireless.enable = false; powerManagement.enable = true; From a98b467d26047ef56f07066c203cd8b0e2557591 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Mon, 13 Jan 2025 16:43:47 +0100 Subject: [PATCH 263/492] Fix swayidle My workaround is not needed anymore and it was preventing it to work --- hmModules/swayidle/default.nix | 6 ------ 1 file changed, 6 deletions(-) diff --git a/hmModules/swayidle/default.nix b/hmModules/swayidle/default.nix index ccd150b..4db2310 100644 --- a/hmModules/swayidle/default.nix +++ b/hmModules/swayidle/default.nix @@ -48,10 +48,4 @@ } ]; }; - - # Otherwise it will start only after Sway and will not work with Hyprland - systemd.user.services.swayidle = { - Unit.PartOf = lib.mkForce [ ]; - Install.WantedBy = lib.mkForce [ "graphical-session-pre.target" ]; - }; } From e21a61c360f492467fdadda890d44fa2cfade486 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Tue, 14 Jan 2025 17:38:27 +0100 Subject: [PATCH 264/492] Bump all inputs --- flake.lock | 86 +++++++++++++++++++++++++++--------------------------- 1 file changed, 43 insertions(+), 43 deletions(-) diff --git a/flake.lock b/flake.lock index 7b241b5..0a20f08 100644 --- a/flake.lock +++ b/flake.lock @@ -117,11 +117,11 @@ ] }, "locked": { - "lastModified": 1736199437, - "narHash": "sha256-TdU0a/x8048rbbJmkKWzSY1CtsbbGKNkIJcMdr8Zf4Q=", + "lastModified": 1736711425, + "narHash": "sha256-8hKhPQuMtXfJi+4lPvw3FBk/zSJVHeb726Zo0uF1PP8=", "owner": "nix-community", "repo": "disko", - "rev": "49f8aa791f81ff2402039b3efe0c35b9386c4bcf", + "rev": "f720e64ec37fa16ebba6354eadf310f81555cc07", "type": "github" }, "original": { @@ -156,11 +156,11 @@ "nixpkgs-stable": "nixpkgs-stable_2" }, "locked": { - "lastModified": 1736327656, - "narHash": "sha256-vDli473KKyf13uexB4Ja9Jt7KmeUSbHbeuwIDP0M2yM=", + "lastModified": 1736759802, + "narHash": "sha256-XCaIRTC+YlL5nRi9WJHeftyfw2Z0YXwwzEmHThGuR3Q=", "owner": "nix-community", "repo": "emacs-overlay", - "rev": "42b7368d193ad1939c32e87b48e970423f22f242", + "rev": "244a2ab1459c72bac32a2db088549f8bc6d7a836", "type": "github" }, "original": { @@ -267,11 +267,11 @@ ] }, "locked": { - "lastModified": 1735774679, - "narHash": "sha256-soePLBazJk0qQdDVhdbM98vYdssfs3WFedcq+raipRI=", + "lastModified": 1736143030, + "narHash": "sha256-+hu54pAoLDEZT9pjHlqL9DNzWz0NbUn8NEAHP7PQPzU=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "f2f7418ce0ab4a5309a4596161d154cfc877af66", + "rev": "b905f6fc23a9051a6e1b741e1438dbfc0634c6de", "type": "github" }, "original": { @@ -582,11 +582,11 @@ ] }, "locked": { - "lastModified": 1736349537, - "narHash": "sha256-jE6CXoJLBmvuq9bWjv+EQusiEtSxPiNasWbD+N4575U=", + "lastModified": 1736781604, + "narHash": "sha256-nIjcN89nxaI5ZnwU/1gzc3rBVQ/te5sHraYeG4cyJX4=", "owner": "nix-community", "repo": "home-manager", - "rev": "456e599f9101ed153dde268b4401c5d294ba6c8c", + "rev": "9616d81f98032d1ee9bec68ab4b6a8c833add88c", "type": "github" }, "original": { @@ -618,11 +618,11 @@ }, "impermanence": { "locked": { - "lastModified": 1734945620, - "narHash": "sha256-olIfsfJK4/GFmPH8mXMmBDAkzVQ1TWJmeGT3wBGfQPY=", + "lastModified": 1736688610, + "narHash": "sha256-1Zl9xahw399UiZSJ9Vxs1W4WRFjO1SsNdVZQD4nghz0=", "owner": "nix-community", "repo": "impermanence", - "rev": "d000479f4f41390ff7cf9204979660ad5dd16176", + "rev": "c64bed13b562fc3bb454b48773d4155023ac31b7", "type": "github" }, "original": { @@ -687,11 +687,11 @@ "lix": { "flake": false, "locked": { - "lastModified": 1736275188, - "narHash": "sha256-IWu1aN1MeRCtx0PYIKTvG5iDSOx/JVegm4Y+0lAZGTE=", + "lastModified": 1736680332, + "narHash": "sha256-gwidOezQ6FT5q4GHcpD6y2EwKcrtzjAoxaN/9bTGqQw=", "ref": "refs/heads/main", - "rev": "3413ab56292f12ac03ee49270bcaf16038020cb3", - "revCount": 16605, + "rev": "38dd196b03f4163ae3bbb2a1910b8f0f141ca0e2", + "revCount": 16610, "type": "git", "url": "https://git@git.lix.systems/lix-project/lix" }, @@ -754,11 +754,11 @@ "mobile-nixos": { "flake": false, "locked": { - "lastModified": 1735176114, - "narHash": "sha256-PxPYz/EFJDtSVrtca14l7crlASkJG2jVrQNpbMzmAcY=", + "lastModified": 1736638789, + "narHash": "sha256-pkpOkSUNrSf5DePUtYYFt4wGODhY28RlQ4SIJ1e+15M=", "owner": "NixOS", "repo": "mobile-nixos", - "rev": "595d359518864a13483fd3f4f4ad740cb3bae825", + "rev": "72a0601f36a1b424e8b72f17ff53509b990ee060", "type": "github" }, "original": { @@ -776,11 +776,11 @@ "treefmt-nix": "treefmt-nix_2" }, "locked": { - "lastModified": 1736168988, - "narHash": "sha256-jqH3cfg98+mRSB59WmJuWnvsSyOUNIOVZxf16Mh9/8s=", + "lastModified": 1736592044, + "narHash": "sha256-HkaJeIFgxncLm8MC1BaWRTkge9b1/+mjPcbzXTRshoM=", "owner": "Mic92", "repo": "nix-fast-build", - "rev": "a06a8b2c079f7b6dab491a12555387bdb737cc44", + "rev": "906af17fcd50c84615a4660d9c08cf89c01cef7d", "type": "github" }, "original": { @@ -864,11 +864,11 @@ "nixpkgs": "nixpkgs_6" }, "locked": { - "lastModified": 1736085891, - "narHash": "sha256-bTl9fcUo767VaSx4Q5kFhwiDpFQhBKna7lNbGsqCQiA=", + "lastModified": 1736631212, + "narHash": "sha256-mG9lRZBcPiAGiVJ9B97BJoIGQcSBWIVlBiN30QYCtG0=", "owner": "LnL7", "repo": "nix-darwin", - "rev": "ba9b3173b0f642ada42b78fb9dfc37ca82266f6c", + "rev": "6ace2f2d12bdf74235d5cbf9fbd34a71c9716685", "type": "github" }, "original": { @@ -900,11 +900,11 @@ }, "nixosHardware": { "locked": { - "lastModified": 1736283893, - "narHash": "sha256-BG1FfTexFwNty5VhYjaQLMR6CMPfI3QRcaZrFQYu2EM=", + "lastModified": 1736441705, + "narHash": "sha256-OL7leZ6KBhcDF3nEKe4aZVfIm6xQpb1Kb+mxySIP93o=", "owner": "NixOS", "repo": "nixos-hardware", - "rev": "4f339f6be2b61662f957c2ee9eda0fa597d8a6d6", + "rev": "8870dcaff63dfc6647fb10648b827e9d40b0a337", "type": "github" }, "original": { @@ -1009,11 +1009,11 @@ }, "nixpkgs-stable_2": { "locked": { - "lastModified": 1736200483, - "narHash": "sha256-JO+lFN2HsCwSLMUWXHeOad6QUxOuwe9UOAF/iSl1J4I=", + "lastModified": 1736549401, + "narHash": "sha256-ibkQrMHxF/7TqAYcQE+tOnIsSEzXmMegzyBWza6uHKM=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "3f0a8ac25fb674611b98089ca3a5dd6480175751", + "rev": "1dab772dd4a68a7bba5d9460685547ff8e17d899", "type": "github" }, "original": { @@ -1087,11 +1087,11 @@ }, "nixpkgs_4": { "locked": { - "lastModified": 1736012469, - "narHash": "sha256-/qlNWm/IEVVH7GfgAIyP6EsVZI6zjAx1cV5zNyrs+rI=", + "lastModified": 1736523798, + "narHash": "sha256-Xb8mke6UCYjge9kPR9o4P1nVrhk7QBbKv3xQ9cj7h2s=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "8f3e1f807051e32d8c95cd12b9b421623850a34d", + "rev": "130595eba61081acde9001f43de3248d8888ac4a", "type": "github" }, "original": { @@ -1164,11 +1164,11 @@ }, "nixpkgs_9": { "locked": { - "lastModified": 1736012469, - "narHash": "sha256-/qlNWm/IEVVH7GfgAIyP6EsVZI6zjAx1cV5zNyrs+rI=", + "lastModified": 1736701207, + "narHash": "sha256-jG/+MvjVY7SlTakzZ2fJ5dC3V1PrKKrUEOEE30jrOKA=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "8f3e1f807051e32d8c95cd12b9b421623850a34d", + "rev": "ed4a395ea001367c1f13d34b1e01aa10290f67d6", "type": "github" }, "original": { @@ -1497,11 +1497,11 @@ ] }, "locked": { - "lastModified": 1735905407, - "narHash": "sha256-1hKMRIT+QZNWX46e4gIovoQ7H8QRb7803ZH4qSKI45o=", + "lastModified": 1736154270, + "narHash": "sha256-p2r8xhQZ3TYIEKBoiEhllKWQqWNJNoT9v64Vmg4q8Zw=", "owner": "numtide", "repo": "treefmt-nix", - "rev": "29806abab803e498df96d82dd6f34b32eb8dd2c8", + "rev": "13c913f5deb3a5c08bb810efd89dc8cb24dd968b", "type": "github" }, "original": { From bfa2f177d35415abd76a09852f1715e93122cb59 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Tue, 14 Jan 2025 17:38:32 +0100 Subject: [PATCH 265/492] Niri floating rule for the experimental Emacs selector --- hmModules/emacs/init.el | 49 +++++++++++++++++++++++++-------------- hmModules/niri/config.kdl | 4 +++- 2 files changed, 35 insertions(+), 18 deletions(-) diff --git a/hmModules/emacs/init.el b/hmModules/emacs/init.el index 047e4d3..19ac094 100644 --- a/hmModules/emacs/init.el +++ b/hmModules/emacs/init.el @@ -1016,26 +1016,41 @@ This is meant to be an helper to be called from the window manager." ;;; Experiments, remove from here - -(defun ccr/test () - "test" +(defun ccr/test (niri-socket) + "Select a window and focus it based on `niri msg` output." (interactive) - (with-selected-frame - (make-frame '((name . "Emacs Selector") - (minibuffer . only) - (fullscreen . 0) ; no fullscreen - (undecorated . t) ; remove title bar - ;;(auto-raise . t) ; focus on this frame - ;;(tool-bar-lines . 0) - ;;(menu-bar-lines . 0) - (internal-border-width . 10) - (width . 50) - (height . 10))) - (unwind-protect - (completing-read "ciao " '("foo" "bar" "pippo") nil t "") - (delete-frame)))) + (let* ((niri-output (ccr/niri-get-windows niri-socket)) + (display-list (mapcar (lambda (entry) + (let ((title (cdr (assoc 'title entry))) + (app-id (cdr (assoc 'app_id entry))) + (id (cdr (assoc 'id entry)))) + (cons (format "%s - %s" title app-id) id))) + niri-output))) + (with-selected-frame + (make-frame '((name . "Emacs Selector") + (minibuffer . only) + (fullscreen . 0) + (undecorated . t) + (internal-border-width . 10) + (width . 120) + (height . 20))) + (unwind-protect + (let* ((entry (completing-read "Select window: " (mapcar #'car display-list) nil t "")) + (entry-id (cdr (assoc entry display-list))) ;; Get the ID associated with the selected entry + (command (format "NIRI_SOCKET=\"%s\" niri msg action focus-window --id %s" niri-socket entry-id))) + (message command) + (shell-command command)) + (delete-frame))))) +(defun ccr/niri-get-windows (niri-socket) + "Esegue `niri msg --json windows` e parse l'output JSON in una alist." + (let* ((command (format "NIRI_SOCKET=\"%s\" niri msg --json windows" niri-socket)) + (output (shell-command-to-string command)) + (json-object-type 'alist) ; Usa alist per rappresentare gli oggetti JSON + (parsed-json (json-read-from-string output))) + parsed-json)) + (provide 'init) ;;; init.el ends here diff --git a/hmModules/niri/config.kdl b/hmModules/niri/config.kdl index 7d25a06..7fbe4bf 100644 --- a/hmModules/niri/config.kdl +++ b/hmModules/niri/config.kdl @@ -301,7 +301,9 @@ window-rule { } window-rule { - match app-id=r#"^Emacs Selector$"# + match title=r#"^Emacs Selector$"# + opacity 0.95 + open-floating true } From 37888230728dc1dfea57754ec5309d9048c49947 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Tue, 14 Jan 2025 17:39:03 +0100 Subject: [PATCH 266/492] Simplify `pinentry-rofi` usage --- hmModules/gpg/default.nix | 26 +++++++------------------- 1 file changed, 7 insertions(+), 19 deletions(-) diff --git a/hmModules/gpg/default.nix b/hmModules/gpg/default.nix index a894c90..f245f26 100644 --- a/hmModules/gpg/default.nix +++ b/hmModules/gpg/default.nix @@ -2,25 +2,13 @@ { services.gpg-agent = { enable = true; - enableSshSupport = true; - extraConfig = - let - pinentryRofi = pkgs.writeShellApplication { - name = "pinentry-rofi-with-env"; - runtimeInputs = with pkgs; [ - coreutils - rofi-wayland - ]; - text = '' - "${pkgs.pinentry-rofi}/bin/pinentry-rofi" "$@" - ''; - }; - in - '' - allow-emacs-pinentry - allow-loopback-pinentry - pinentry-program ${pinentryRofi}/bin/pinentry-rofi-with-env - ''; + pinentryPackage = pkgs.pinentry-rofi.override { + rofi = pkgs.rofi-wayland; + }; + extraConfig = '' + allow-emacs-pinentry + allow-loopback-pinentry + ''; }; programs.gpg = { From 4df523437a35cab8994d4601952a5ca5399a60c9 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Tue, 14 Jan 2025 17:53:53 +0100 Subject: [PATCH 267/492] Remove `nix-fast-build` input A version including attic support was released in nixpkgs --- flake.lock | 73 +++-------------------------------------- flake.nix | 4 --- modules/nix/default.nix | 13 ++++---- 3 files changed, 11 insertions(+), 79 deletions(-) diff --git a/flake.lock b/flake.lock index 0a20f08..583d5c1 100644 --- a/flake.lock +++ b/flake.lock @@ -260,27 +260,6 @@ } }, "flake-parts_3": { - "inputs": { - "nixpkgs-lib": [ - "nix-fast-build", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1736143030, - "narHash": "sha256-+hu54pAoLDEZT9pjHlqL9DNzWz0NbUn8NEAHP7PQPzU=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "b905f6fc23a9051a6e1b741e1438dbfc0634c6de", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "flake-parts", - "type": "github" - } - }, - "flake-parts_4": { "inputs": { "nixpkgs-lib": "nixpkgs-lib_2" }, @@ -298,7 +277,7 @@ "type": "github" } }, - "flake-parts_5": { + "flake-parts_4": { "inputs": { "nixpkgs-lib": [ "nixThePlanet", @@ -473,7 +452,7 @@ }, "hercules-ci-effects": { "inputs": { - "flake-parts": "flake-parts_5", + "flake-parts": "flake-parts_4", "nixpkgs": "nixpkgs_7" }, "locked": { @@ -767,28 +746,6 @@ "type": "github" } }, - "nix-fast-build": { - "inputs": { - "flake-parts": "flake-parts_3", - "nixpkgs": [ - "nixpkgs" - ], - "treefmt-nix": "treefmt-nix_2" - }, - "locked": { - "lastModified": 1736592044, - "narHash": "sha256-HkaJeIFgxncLm8MC1BaWRTkge9b1/+mjPcbzXTRshoM=", - "owner": "Mic92", - "repo": "nix-fast-build", - "rev": "906af17fcd50c84615a4660d9c08cf89c01cef7d", - "type": "github" - }, - "original": { - "owner": "Mic92", - "repo": "nix-fast-build", - "type": "github" - } - }, "nix-formatter-pack": { "inputs": { "nixpkgs": [ @@ -879,7 +836,7 @@ }, "nixThePlanet": { "inputs": { - "flake-parts": "flake-parts_4", + "flake-parts": "flake-parts_3", "hercules-ci-effects": "hercules-ci-effects", "nixpkgs": "nixpkgs_8", "osx-kvm": "osx-kvm" @@ -1339,13 +1296,12 @@ "lix-eval-jobs": "lix-eval-jobs", "lix-module": "lix-module", "mobile-nixos": "mobile-nixos", - "nix-fast-build": "nix-fast-build", "nix-on-droid": "nix-on-droid", "nixDarwin": "nixDarwin", "nixThePlanet": "nixThePlanet", "nixosHardware": "nixosHardware", "nixpkgs": "nixpkgs_9", - "treefmt-nix": "treefmt-nix_3", + "treefmt-nix": "treefmt-nix_2", "vscode-server": "vscode-server" } }, @@ -1490,27 +1446,6 @@ } }, "treefmt-nix_2": { - "inputs": { - "nixpkgs": [ - "nix-fast-build", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1736154270, - "narHash": "sha256-p2r8xhQZ3TYIEKBoiEhllKWQqWNJNoT9v64Vmg4q8Zw=", - "owner": "numtide", - "repo": "treefmt-nix", - "rev": "13c913f5deb3a5c08bb810efd89dc8cb24dd968b", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "treefmt-nix", - "type": "github" - } - }, - "treefmt-nix_3": { "inputs": { "nixpkgs": [ "nixpkgs" diff --git a/flake.nix b/flake.nix index ff70299..34a3717 100644 --- a/flake.nix +++ b/flake.nix @@ -59,10 +59,6 @@ }; catppuccin.url = "github:catppuccin/nix"; emacs-overlay.url = "github:nix-community/emacs-overlay"; - nix-fast-build = { - url = "github:Mic92/nix-fast-build"; - inputs.nixpkgs.follows = "nixpkgs"; - }; }; outputs = diff --git a/modules/nix/default.nix b/modules/nix/default.nix index a46e84e..49227c9 100644 --- a/modules/nix/default.nix +++ b/modules/nix/default.nix @@ -8,12 +8,13 @@ { nixpkgs.overlays = [ (final: _: { - nix-fast-build = fleetFlake.inputs.nix-fast-build.packages.${final.system}.nix-fast-build // { - nix = final.nix; - }; - nix-eval-job = fleetFlake.inputs.lix-eval-jobs.packages.${final.system}.nix-eval-jobs // { - nix = final.nix; - }; + nix-eval-jobs = + (fleetFlake.inputs.lix-eval-jobs.packages.${final.system}.nix-eval-jobs.override { + nix = final.nix; + }) + // { + nix = final.nix; + }; }) ]; From 95ee537f03239447fb3331401414f0a70002e544 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Wed, 15 Jan 2025 14:19:33 +0100 Subject: [PATCH 268/492] Refactor keybinding --- hmModules/niri/config.kdl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hmModules/niri/config.kdl b/hmModules/niri/config.kdl index 7fbe4bf..b7581b5 100644 --- a/hmModules/niri/config.kdl +++ b/hmModules/niri/config.kdl @@ -336,7 +336,7 @@ binds { Mod+M { spawn "emacsclient" "-c" "--eval" "(notmuch-search \"tag:new\")"; } Mod+G { spawn "emacsclient" "-c" "--eval" "(switch-to-buffer (gptel \"*ChatGPT*\"))"; } Mod+Shift+C { spawn "emacsclient" "-c" "--eval" "(org-roam-dailies-capture-today)"; } - Super+Alt+L { spawn "swaylock"; } + Mod+Alt+L { spawn "swaylock"; } Mod+Space { spawn "rofi" "-show" "menu" "-modi" "menu:rofi-power-menu"; } From 5a7309b5d359a42d8f94e8e36a73919ed23d0226 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Wed, 15 Jan 2025 14:20:02 +0100 Subject: [PATCH 269/492] Keybinding for spawning a floating btop --- hmModules/niri/config.kdl | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/hmModules/niri/config.kdl b/hmModules/niri/config.kdl index b7581b5..43f7a4f 100644 --- a/hmModules/niri/config.kdl +++ b/hmModules/niri/config.kdl @@ -304,8 +304,15 @@ window-rule { match title=r#"^Emacs Selector$"# opacity 0.95 open-floating true + open-focused true } +window-rule { + match title=r#"^bTop$"# + opacity 0.95 + open-floating true + open-focused true +} @@ -338,7 +345,7 @@ binds { Mod+Shift+C { spawn "emacsclient" "-c" "--eval" "(org-roam-dailies-capture-today)"; } Mod+Alt+L { spawn "swaylock"; } Mod+Space { spawn "rofi" "-show" "menu" "-modi" "menu:rofi-power-menu"; } - + Mod+Ctrl+b { spawn "foot" "--title='bTop'" "-W" "210x60" "btop";} // Example volume keys mappings for PipeWire & WirePlumber. // The allow-when-locked=true property makes them work even when the session is locked. From 988000655bd73ebce0d2313cab3303021991523e Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Wed, 15 Jan 2025 14:20:31 +0100 Subject: [PATCH 270/492] Use Catppuccin GTK theme and use a more idiomatic poiner configuration --- hmModules/hyprland/default.nix | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/hmModules/hyprland/default.nix b/hmModules/hyprland/default.nix index 2596638..4688a57 100644 --- a/hmModules/hyprland/default.nix +++ b/hmModules/hyprland/default.nix @@ -1,6 +1,7 @@ { config, pkgs, + lib, ... }: let @@ -54,7 +55,14 @@ in gtk = { enable = true; - # font.name = lib.mkForce "Sans,Symbols Nerd Font"; + theme = { + name = "Catppuccin-GTK-Purple-Dark-Compact"; + package = pkgs.magnetic-catppuccin-gtk.override { + accent = [ "purple" ]; + shade = "dark"; + size = "compact"; + }; + }; iconTheme = { name = "Adwaita"; package = pkgs.adwaita-icon-theme; @@ -66,15 +74,15 @@ in }; }; - qt = { - enable = true; - }; - home.file.".icons/catppuccin-mocha-sapphire" = { source = "${pkgs.catppuccin-cursors.mochaSapphire}/share/icons/catppuccin-mocha-sapphire-cursors"; recursive = true; }; + qt = { + enable = true; + }; + wayland.windowManager.hyprland = { enable = true; plugins = with pkgs.hyprlandPlugins; [ From bcdcabc5c40b017fd16b2d51db2aab8ca0e3253b Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 17 Jan 2025 09:48:36 +0100 Subject: [PATCH 271/492] Re-enable `magit-todos` --- hmModules/emacs/init.el | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/hmModules/emacs/init.el b/hmModules/emacs/init.el index 19ac094..0056fdb 100644 --- a/hmModules/emacs/init.el +++ b/hmModules/emacs/init.el @@ -456,11 +456,10 @@ (use-package magit-delta :hook (magit-mode . magit-delta-mode)) -;; FIXME -;; (use-package magit-todos -;; :after magit -;; :custom (magit-todos-keyword-suffix "\\(?:([^)]+)\\)?:?") -;; :config (magit-todos-mode 1)) +(use-package magit-todos + :after magit + :custom (magit-todos-keyword-suffix "\\(?:([^)]+)\\)?:?") + :config (magit-todos-mode 1)) (use-package difftastic :demand t From 62bd8fb89998a46a2b65ab9d97254d5122764bc5 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 17 Jan 2025 09:48:48 +0100 Subject: [PATCH 272/492] `tree-sitter-grammars-kdl` has been merged --- packages/emacs/default.nix | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/packages/emacs/default.nix b/packages/emacs/default.nix index cfff445..9bb0125 100644 --- a/packages/emacs/default.nix +++ b/packages/emacs/default.nix @@ -11,12 +11,7 @@ let inputs.emacs-overlay.overlays.emacs ] ); - pkgs-with-tree-sitter-kdl = - (builtins.getFlake "github:aciceri/nixpkgs/23a675ee8313427610cf129dd2b52a69bf6a2a26") - .legacyPackages.${pkgs.stdenv.system}; - # TODO remove when merged: https://github.com/NixOS/nixpkgs/pull/371287/files - # all-grammars = pkgs'.tree-sitter.withPlugins builtins.attrValues; - all-grammars = pkgs-with-tree-sitter-kdl.tree-sitter.withPlugins builtins.attrValues; + all-grammars = pkgs'.tree-sitter.withPlugins builtins.attrValues; treesitGrammars = pkgs'.runCommand "treesit-grammars" { } '' mkdir $out for f in ${all-grammars}/* From f6fd747fb30145196fe257356e9e19987a517ed2 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Tue, 21 Jan 2025 20:00:37 +0100 Subject: [PATCH 273/492] Add `visual-replace` --- hmModules/emacs/init.el | 6 ++++++ packages/emacs/packages.nix | 1 + 2 files changed, 7 insertions(+) diff --git a/hmModules/emacs/init.el b/hmModules/emacs/init.el index 0056fdb..fa728b8 100644 --- a/hmModules/emacs/init.el +++ b/hmModules/emacs/init.el @@ -141,6 +141,12 @@ (add-hook 'next-error-hook #'pulsar-pulse-line) ) +(use-package visual-replace + :defer t + :bind (("C-c r" . visual-replace) + :map isearch-mode-map + ("C-c r" . visual-replace-from-isearch))) + (use-package clipetty :delight :hook (after-init . global-clipetty-mode)) diff --git a/packages/emacs/packages.nix b/packages/emacs/packages.nix index 33122dd..af76056 100644 --- a/packages/emacs/packages.nix +++ b/packages/emacs/packages.nix @@ -184,6 +184,7 @@ let telega aggressive-indent mixed-pitch + visual-replace # org-re-reveal # FIXME very not nice hash mismatch when building ] ) From ee15e3823ecfa5d42a240af959d513b595538f74 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Tue, 21 Jan 2025 20:01:14 +0100 Subject: [PATCH 274/492] Enable `rtl-sdr` on `picard` --- hosts/picard/default.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/hosts/picard/default.nix b/hosts/picard/default.nix index 13cbb3b..40168a5 100644 --- a/hosts/picard/default.nix +++ b/hosts/picard/default.nix @@ -168,6 +168,8 @@ algorithm = "zstd"; }; + hardware.rtl-sdr.enable = true; + # TODO move away from here (how can the interface name be retrieved programmatically?) networking.interfaces.enp11s0.wakeOnLan = { enable = true; From 6128c1a1e3b82921c97ebb0821aaad1dc73c844e Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Tue, 21 Jan 2025 20:01:27 +0100 Subject: [PATCH 275/492] `gptel` floating windows in `niri` --- hmModules/niri/config.kdl | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/hmModules/niri/config.kdl b/hmModules/niri/config.kdl index 43f7a4f..6068cd6 100644 --- a/hmModules/niri/config.kdl +++ b/hmModules/niri/config.kdl @@ -314,6 +314,13 @@ window-rule { open-focused true } +window-rule { + match title=r#"^GPTel - Emacs$"# + opacity 0.95 + open-floating true + open-focused true +} + @@ -341,7 +348,7 @@ binds { Mod+B { spawn "firefox"; } Mod+RETURN { spawn "emacsclient" "-c" "--eval" "(ccr/start-eshell)"; } Mod+M { spawn "emacsclient" "-c" "--eval" "(notmuch-search \"tag:new\")"; } - Mod+G { spawn "emacsclient" "-c" "--eval" "(switch-to-buffer (gptel \"*ChatGPT*\"))"; } + Mod+G { spawn "emacsclient" "-c" "--eval" "(switch-to-buffer (gptel \"*ChatGPT*\"))" "-F" "((name . \"GPTel - Emacs\") (width . 150) (height . 60))'"; } Mod+Shift+C { spawn "emacsclient" "-c" "--eval" "(org-roam-dailies-capture-today)"; } Mod+Alt+L { spawn "swaylock"; } Mod+Space { spawn "rofi" "-show" "menu" "-modi" "menu:rofi-power-menu"; } From f742129d4db63d0dbc87ff72e386745fdbf1a4c3 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Tue, 21 Jan 2025 20:04:22 +0100 Subject: [PATCH 276/492] Scale up `niri` on `kirk` --- hmModules/niri/config.kdl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hmModules/niri/config.kdl b/hmModules/niri/config.kdl index 6068cd6..92e01b1 100644 --- a/hmModules/niri/config.kdl +++ b/hmModules/niri/config.kdl @@ -88,7 +88,7 @@ output "eDP-1" { mode "1920x1080@59.999" // You can use integer or fractional scale, for example use 1.5 for 150% scale. - scale 1.2 + scale 1.1 // Transform allows to rotate the output counter-clockwise, valid values are:monitor // normal, 90, 180, 270, flipped, flipped-90, flipped-180 and flipped-270. From dba7a5ac5046b0e256df0d7c7ecba62d5938f149 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Tue, 21 Jan 2025 20:04:31 +0100 Subject: [PATCH 277/492] Enable `zmkbatx` on `kirk` --- hosts/kirk/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/hosts/kirk/default.nix b/hosts/kirk/default.nix index ad2ad2e..a358c21 100644 --- a/hosts/kirk/default.nix +++ b/hosts/kirk/default.nix @@ -75,6 +75,7 @@ "emacs" "chirp" "sdrangel" + "zmkbatx" ]; extraGroups = [ ]; backupPaths = [ ]; From 0d1a446ab462c42863a270413113f36dca2c831c Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Tue, 21 Jan 2025 20:33:51 +0100 Subject: [PATCH 278/492] Add `ccr` to `plugdev` group on `kirk` --- hosts/kirk/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hosts/kirk/default.nix b/hosts/kirk/default.nix index a358c21..5bb2927 100644 --- a/hosts/kirk/default.nix +++ b/hosts/kirk/default.nix @@ -77,7 +77,7 @@ "sdrangel" "zmkbatx" ]; - extraGroups = [ ]; + extraGroups = [ "plugdev" ]; backupPaths = [ ]; }; From e92a899c87510a97c0f9f7f6c0c265b83f6684b9 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 31 Jan 2025 14:39:32 +0100 Subject: [PATCH 279/492] Add `ib-tws` on `picard` --- hmModules/ib-tws/default.nix | 4 + hosts/picard/default.nix | 1 + packages/ib-tws/default.nix | 194 +++++++++++++++++++++++++++++++++++ 3 files changed, 199 insertions(+) create mode 100644 hmModules/ib-tws/default.nix create mode 100644 packages/ib-tws/default.nix diff --git a/hmModules/ib-tws/default.nix b/hmModules/ib-tws/default.nix new file mode 100644 index 0000000..b08f930 --- /dev/null +++ b/hmModules/ib-tws/default.nix @@ -0,0 +1,4 @@ +{ fleetFlake, pkgs, ... }: +{ + home.packages = [ fleetFlake.packages.${pkgs.system}.ib-tws ]; +} diff --git a/hosts/picard/default.nix b/hosts/picard/default.nix index 40168a5..eea6cd0 100644 --- a/hosts/picard/default.nix +++ b/hosts/picard/default.nix @@ -93,6 +93,7 @@ "chirp" "sdrangel" "discord" + "ib-tws" ]; extraGroups = [ "plugdev" ]; backupPaths = [ ]; diff --git a/packages/ib-tws/default.nix b/packages/ib-tws/default.nix new file mode 100644 index 0000000..b51675c --- /dev/null +++ b/packages/ib-tws/default.nix @@ -0,0 +1,194 @@ +{ + stdenv, + lib, + fetchurl, + makeDesktopItem, + copyDesktopItems, + libXxf86vm, + libX11, + libXext, + libXtst, + libXi, + libXrender, + glib, + libxml2, + ffmpeg, + libGL, + freetype, + fontconfig, + gtk3, + pango, + cairo, + alsa-lib, + atk, + gdk-pixbuf, + gtk2, + ... +}: + +let + rSubPaths = [ + "lib/amd64/jli" + "lib/amd64/server" + "lib/amd64" + ]; + +in + +stdenv.mkDerivation rec { + pname = "ib-tws"; + version = "10.33.1f"; + etagHash = "f3ac044774c83917855f484a968c6ad2"; + + src = fetchurl { + url = "https://download2.interactivebrokers.com/installers/tws/latest-standalone/tws-latest-standalone-linux-x64.sh"; + hash = "sha256-Iq4Bd5LTOajfK3IaomeAZL182lEXkCn7JjEO6UWgdFE="; + }; + + phases = [ + "unpackPhase" + "installPhase" + "fixupPhase" + ]; + + nativeBuildInputs = [ copyDesktopItems ]; + + desktopItems = [ + (makeDesktopItem { + name = pname; + desktopName = "IB Trader Workstation"; + exec = pname; + icon = pname; + categories = [ + "Office" + "Finance" + ]; + startupWMClass = "jclient-LoginFrame"; + }) + (makeDesktopItem { + name = "ib-gw"; + desktopName = "IB Gateway"; + exec = "ib-gw"; + icon = pname; + categories = [ + "Office" + "Finance" + ]; + startupWMClass = "ibgateway-GWClient"; + }) + ]; + + unpackPhase = '' + echo "Unpacking I4J sfx sh to $PWD..." + INSTALL4J_TEMP="$PWD" sh "$src" __i4j_extract_and_exit + + # JRE + jrePath="$out/share/${pname}/jre" + echo "Unpacking JRE to $jrePath..." + mkdir -p "$jrePath" + tar -xf "$PWD/"*.dir/jre.tar.gz -C "$jrePath/" + + echo "Patching JRE executables..." + patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ + "$jrePath/bin/java" "$jrePath/bin/unpack200" + + echo "Unpacking JRE pack files..." + for f in "$jrePath/lib/"*.jar.pack "$jrePath/lib/ext/"*.jar.pack; do + jar_file=`echo "$f" | awk '{ print substr($0,1,length($0)-5) }'` + "$jrePath/bin/unpack200" -r "$f" "$jar_file" + [ $? -ne 0 ] && echo "Error unpacking $f" && exit 1 + done + + echo "Unpacking TWS payload..." + INSTALL4J_JAVA_HOME_OVERRIDE="$jrePath" sh "$src" -q -dir "$PWD/" + ''; + + installPhase = '' + runHook preInstall + + # create main startup script + mkdir -p "$out/bin" + cat< "$out/bin/${pname}" + #!$SHELL + + # get script name + PROG=\$(basename "\$0") + + # Load system-wide settings and per-user overrides + IB_CONFIG_DIR="\$HOME/.\$PROG" + JAVA_GC="-Xmx4G -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:ParallelGCThreads=20 -XX:ConcGCThreads=5 -XX:InitiatingHeapOccupancyPercent=70" + JAVA_UI_FLAGS="-Dswing.aatext=TRUE -Dawt.useSystemAAFontSettings=on -Dsun.awt.nopixfmt=true -Dsun.java2d.noddraw=true -Dswing.boldMetal=false -Dsun.locale.formatasdefault=true" + JAVA_LOCALE_FLAGS="-Dsun.locale.formatasdefault=true" + JAVA_FLAGS="\$JAVA_GC \$JAVA_UI_FLAGS \$JAVA_LOCALE_FLAGS \$JAVA_EXTRA_FLAGS" + [ -f "\$HOME/.config/\$PROG.conf" ] && . "\$HOME/.config/\$PROG.conf" + + CLASS="jclient.LoginFrame" + [ "\$PROG" = "ib-gw" ] && CLASS="ibgateway.GWClient" + + cd "$out/share/${pname}/jars" + "$out/share/${pname}/jre/bin/java" -cp \* \$JAVA_FLAGS \$CLASS \$IB_CONFIG_DIR + EOF + chmod u+x $out/bin/${pname} + + # create symlink for the gateway + ln -s "${pname}" "$out/bin/ib-gw" + + # copy files + mkdir -p $out/share/${pname} + cp -R jars $out/share/${pname} + install -Dm644 .install4j/tws.png $out/share/pixmaps/${pname}.png + + runHook postInstall + ''; + + dontPatchELF = true; + dontStrip = true; + + postFixup = '' + rpath+="''${rpath:+:}${lib.concatStringsSep ":" (map (a: "$jrePath/${a}") rSubPaths)}" + + # set all the dynamic linkers + find $out -type f -perm -0100 \ + -exec patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ + --set-rpath "$rpath" {} \; + + find $out -name "*.so" -exec patchelf --set-rpath "$rpath" {} \; + ''; + + rpath = lib.strings.makeLibraryPath libraries; + + libraries = [ + stdenv.cc + stdenv.cc.libc + glib + libxml2 + ffmpeg + libGL + libXxf86vm + alsa-lib + fontconfig + freetype + pango + gtk3 + cairo + gdk-pixbuf + atk + libX11 + libXext + libXtst + libXi + libXrender + gtk2 + ]; + # possibly missing libgdk-x11-2.0.so.0, from gtk2? never caused any trouble though + + passthru.updateScript = ./update.sh; + + meta = with lib; { + description = "Trader Work Station of Interactive Brokers"; + homepage = "https://www.interactivebrokers.com"; + # license = licenses.unfree; + maintainers = lib.optionals (maintainers ? k3a) [ maintainers.k3a ]; + platforms = [ "x86_64-linux" ]; + }; +} From 3130e4ee199fc2e7eb9fd9f9336988c33d6aac0f Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 31 Jan 2025 14:39:50 +0100 Subject: [PATCH 280/492] Hide commands help at startup --- hmModules/niri/config.kdl | 3 +++ 1 file changed, 3 insertions(+) diff --git a/hmModules/niri/config.kdl b/hmModules/niri/config.kdl index 6068cd6..cae7dad 100644 --- a/hmModules/niri/config.kdl +++ b/hmModules/niri/config.kdl @@ -68,6 +68,9 @@ environment { DISPLAY ":0" } +hotkey-overlay { + skip-at-startup +} // You can configure outputs by their name, which you can find // by running `niri msg outputs` while inside a niri instance. From e2bfa81b1041336354d87fc5ca61bf39bd808005 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 31 Jan 2025 14:39:59 +0100 Subject: [PATCH 281/492] Force session variables --- hmModules/niri/default.nix | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/hmModules/niri/default.nix b/hmModules/niri/default.nix index c59f988..9210926 100644 --- a/hmModules/niri/default.nix +++ b/hmModules/niri/default.nix @@ -33,6 +33,11 @@ fi ''; + home.sessionVariables = { + DISPLAY = ":0"; + QT_QPA_PLATFORM = "wayland"; + }; + programs.rofi = { enable = true; package = pkgs.rofi-wayland; From 9fa9338f7a0333566b0878ffa60ef100a71c360c Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Sat, 8 Feb 2025 07:17:25 +0100 Subject: [PATCH 282/492] Add `zoom` on `picard` --- hmModules/zoom/default.nix | 4 ++++ hosts/picard/default.nix | 1 + modules/xdg/default.nix | 4 ++++ 3 files changed, 9 insertions(+) create mode 100644 hmModules/zoom/default.nix diff --git a/hmModules/zoom/default.nix b/hmModules/zoom/default.nix new file mode 100644 index 0000000..78c6b5d --- /dev/null +++ b/hmModules/zoom/default.nix @@ -0,0 +1,4 @@ +{ pkgs, ... }: +{ + home.packages = [ pkgs.zoom-us ]; +} diff --git a/hosts/picard/default.nix b/hosts/picard/default.nix index eea6cd0..104a454 100644 --- a/hosts/picard/default.nix +++ b/hosts/picard/default.nix @@ -94,6 +94,7 @@ "sdrangel" "discord" "ib-tws" + "zoom" ]; extraGroups = [ "plugdev" ]; backupPaths = [ ]; diff --git a/modules/xdg/default.nix b/modules/xdg/default.nix index 8aaabf7..3dc5b50 100644 --- a/modules/xdg/default.nix +++ b/modules/xdg/default.nix @@ -8,12 +8,16 @@ xdg-desktop-portal-gtk xdg-desktop-portal-hyprland xdg-desktop-portal-gnome + xdg-desktop-portal + xdg-desktop-portal-kde ]; extraPortals = with pkgs; [ xdg-desktop-portal-wlr xdg-desktop-portal-gtk xdg-desktop-portal-hyprland xdg-desktop-portal-gnome + xdg-desktop-portal + xdg-desktop-portal-kde ]; xdgOpenUsePortal = true; wlr.enable = true; From 0999370e2d90f03988ce2ab03ca8407a761c705d Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Sat, 8 Feb 2025 07:18:03 +0100 Subject: [PATCH 283/492] Use `OpenRouter` --- hmModules/emacs/init.el | 15 +++++++---- secrets/chatgpt-token.age | 56 ++++++++++++++++----------------------- 2 files changed, 33 insertions(+), 38 deletions(-) diff --git a/hmModules/emacs/init.el b/hmModules/emacs/init.el index fa728b8..ba64445 100644 --- a/hmModules/emacs/init.el +++ b/hmModules/emacs/init.el @@ -926,8 +926,15 @@ This is meant to be an helper to be called from the window manager." (use-package gptel :custom - (gptel-api-key (lambda () (require 'f) (f-read-text (getenv "OPENAI_API_KEY_PATH")))) - (gptel-model 'gpt-4o) + ;; (gptel-model 'deepseek/deepseek-chat) + (gptel-model 'qwen/qwen-max) + (gptel-backend (gptel-make-openai "OpenRouter" + :host "openrouter.ai" + :endpoint "/api/v1/chat/completions" + :key (lambda () (require 'f) (f-read-text (getenv "OPENAI_API_KEY_PATH"))) + :stream t + :models '(qwen/qwen-max deepseek/deepseek-chat)) + ) (gptel-default-mode 'org-mode) (gptel-org-branching-context nil) ;; this is cool but I don't feel comfortable with it :config @@ -963,9 +970,7 @@ This is meant to be an helper to be called from the window manager." (defun ccr/start-chatgpt () ;; Used from outside Emacs by emacsclient --eval (display-buffer (gptel "*ChatGPT*")) (set-frame-name "floating") - ;; (delete-other-windows) - ;; (add-hook 'kill-buffer-hook 'delete-frame nil 't) - ) ;; destroy frame on exit + ) ) (use-package mixed-pitch diff --git a/secrets/chatgpt-token.age b/secrets/chatgpt-token.age index 65223f0..c6e9bed 100644 --- a/secrets/chatgpt-token.age +++ b/secrets/chatgpt-token.age @@ -1,35 +1,25 @@ age-encryption.org/v1 -> ssh-rsa /AagBw -CHOWHa5s0WUIFzH4QDtMuvOqc3c8pchXXlC+pfVlzcW8y/cqGzpELv1QbvPWfeGm -iKARA1bNGsCND9YZeTfYHaQ2GqEoQBFCNCZe6p+KnEevND9Ol4H1PyxU91C9Ld5E -UfAuaX0ullFLkk13wZWzvPb5zqpXzHA7O9uwg8yLia95f4UIj0i3pTQugJOIhUhH -yIAcD0RNCSK63IHiDgqAXmy/CieBg9fDv0SZEHEXHLuu24jQaWr9LY3jhzoKmXeZ -I6BJSAdkR9liyGeyuLmhY+wRr5ZDilY1nrdrPpQ3/W/6QL2nMbXHZJB/x5P+l1TV -m2q0MeaKOgM0NaRjBNqlBuqrMkNnRc5ELWOAs2462e/a4ykwEIAj+7wKcAhpaXQT -x80zL4xNNUb/ZK7+uwnQosk+NQbMHeVOEE1+gtOwrkluPEF4JdaayKSSvdzW7h9X -Kg0Deo3RUK44rhdKrLNi4QI5NBzBzn00RbrdW6gK+I3Q6k5o6PPzZfxjrVRN0iOi -ZaMK7FsJeOMA/xXu7MZpF8vJl04TD+sHIL8yzCnTAe9KsT/bW+NS3EZwMD4llZxA -1KFD+4e9ha2rkJQYhvWSTsEIgecGTvgFa0e4hnOZNu5CS/QRmal67gGef0+PV3Ss -Nikkg9K/6RZ1rutSdR8P3xrUlJB/GN6DYUaI3MGNhSA --> ssh-rsa QHr3/A -qsMwyVOMLUdxP6k+9tEUuV5HxZCsSwq+lEKBFbAwNV2dGA4sC+B0itsRVPdPnmSv -Gq2dlw4ATSi7403o3wGIp8h5spCeK627ev2CLCU4bqwCRD9wXNJUjf0wMH5hkq7J -pqaEgd31BHTytbEIkR5FYCGzZouPYZqSxbbKYuowKnDOxo26nxMcTyK14bDEpQuo -uPQx6bgXoMFQhU3g/Ky9pOE6za0QOgeX8EW9V2xjcsw+N9l2X48CE5CORx8ZytTS -zCB4MCfiSw1uaORygEoLKKYJ+7JUwUrcoLp3LfxtFMYnUQEGzYac++07si178xGH -w7B3qSTTBF203MxJET04Ns7qgx6cZx7c1k0cXQshr96mvoMvhdvz3fh3LrYGND5l -z7kgjlcZqvxsZ8drNLpVmHc8tou7PuYx0iJV42uhkWguQjl+xOiIIgIOsbw/aumy -RXdg2fgPgbZJbmkxlMgMV0Ml+XRSwWajc98qb/PkSBWT/EefBHODwsFNl5w8Nxfd -Dr2RCMDkxOnTMO0JASMdrG8cE8iSg6C3YhTjAYIQ1ObndlPTiz8dlo2jMKnwv5/k -8N5b2Qwyf+UL7sKnHrY5bF4TAOPeHqcvUD8wAHhE7KYDk+/d6UoQ0BByfqX1mJ/H -f2ZGIHbezYNGTZV2pgz3nCUV8hdOH4H4Ee5Yur0EdbQ --> ssh-ed25519 /yLdGQ 2Ks9W5MlblwIlf0uxZjtNmMqwOmF4NWlHI6KU8z6uTM -QMZVdDi6lwO6FtayG9tD71aGY5x6DZ3XdbSbxjQZkfU --> ssh-ed25519 q+UPnA DWCcAGeQNyyMhkgkX144+dBK/fX8+IWD38gLdJ0izi0 -TAKrqabgBbdeh+XINayMoXWM/Dwvf3h5xRzJu3pVhDw --> ssh-ed25519 /WmILg u+/Y59Upn76Zcfz230MdLKKTFfWVHwW6cgNxGQ6YelI -4tgWqorMWBXXUzrj3PzcJNUlmMw69PJwZ9MEHR2mN5E --> ssh-ed25519 8jLrqw x8WAPZY7Yi/3NZgZ4huRePeXBW9lgXlIEPbEVTfoABQ -rTcFw+WySD/4gmR8dWlnQkxZcxIQzxDqhSIS6AKoO7M ---- KsEdL+jGLGm61R7KZw/x3NUdpUl/k//nvQcSbfhSHLU -E.5sSȩr:¨, M>!2(*S>I$H1@ OTI~5VRg3bߗj(YJI!IZU/ZP3R~,Ju:U愕=*j-\KIn(x:ײi񻜁b u3.[Kp+~`RhR3a \ No newline at end of file +EADjmWkMsTJpO1ZVUgQcxwJXv2FwYlCr82g8OEjjjryynm6RW4YFBn0qTWgi65Mn +0GZMJ5kHWtMgAB56czDA9oLa4BnI4sSMmHeNmpcaeHgb4J1G82xZod33PuFmIiMo +uYCzzWk5CDjhoIHeWI1vjDS0ThHABpYkkfdUX2zjxTz81b+iBzbYVDowtQnvWc60 +mN3Jnn3xhEXlhjODINfb4+T2+SqbnMmh1p6JGwX4XlwoOUt12GT+3orBlhDJwv+7 +nXe+7+XDFyJWxElfU36cbT2i5wa2lh2HdwcC0d5H9kaLjcmnm9n6UQv2f2rYLoZO +HeTWIOT9OmWKYEMFPYjw4NpFGsdNMliuULzzcTFJLSf3nzqp5EuuFIrigJ9+yNI5 +GZqFH4miSj5eZzrArG8SrFsrU9BumWGqDYSTCVch5M/xEpLH+9cbT5x5s8EYU8XS +ahuzvFb+/j/vB+GXDy+2VIQV1JceGgcmmAP2XsJqo+RbkWX/JtyTT44Ykb5JCvs2 +DWwqbv9kOZy7t3seQ88UJLDAjBBJPeMuOjxuJqJ1VUkAPSYQniwjhoCs5WFXYaut +Y5BmrCt3O8AZT88EGMXp3PQluXyA8phqDVd0P1vfb86TL4XFqZE/FdxfYZQnSFn9 ++tftqzpCqgXfCZMOkZ2NI3ecCvwj0wSgY6ZBcQ1iECc +-> ssh-ed25519 /yLdGQ t7sawj3lqbUPA2u3VATxAvuz99yXGL78uZNdztvD0WU +i9ug1OvGsaSD6rtZ6PJY//v40C2PVIGAKm6lTa+cx7w +-> ssh-ed25519 q+UPnA E6yWvWZqk8b/qyOO2eKABF9yr+4cNsPP42t5CUMYqBQ +Wu3n4UuPht8ICr6UBpTbNQam6Yk08Cbxqcc8fq5MpMw +-> ssh-ed25519 /WmILg UXeCTXz6O8XqsHgxwgH9cb0JE/63JiRKSJ7StDQScj0 +X3vG2l4Y+g26QWiJ3i4xNk9rkFtYZU1DTX2oiJZw4Gg +-> ssh-ed25519 8jLrqw IDNAAZSwRBm4xpfw9o1hgSyl3tBkpFRXNSY95XxBYi8 +Y7HkEAdtyWloEZJMSbiAGcd3PxtGlvl/X/mSiQja7Po +--- cHL2AidE24yaO8uXDsBtD+AYyrY3cPF5GxKM3JSKg5M +ȣ;lZ"۔ͱhEhb +5VꀍznHH-~ +Lt8*čv2dj`?C'>pA)3f:.u \ No newline at end of file From d8f1e5318a5d3d3de693b851f52baf5568b67e53 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Sun, 9 Feb 2025 12:03:04 +0100 Subject: [PATCH 284/492] WIP dump1090-fa service --- hosts/picard/default.nix | 1 + modules/dump1090/default.nix | 45 ++++++++++++++++++++++++++++++++++++ 2 files changed, 46 insertions(+) create mode 100644 modules/dump1090/default.nix diff --git a/hosts/picard/default.nix b/hosts/picard/default.nix index 104a454..9c2f4a1 100644 --- a/hosts/picard/default.nix +++ b/hosts/picard/default.nix @@ -41,6 +41,7 @@ "adb" "prometheus-exporters" "promtail" + "dump1090" ] ++ [ ./disko.nix ]; diff --git a/modules/dump1090/default.nix b/modules/dump1090/default.nix new file mode 100644 index 0000000..d6f2456 --- /dev/null +++ b/modules/dump1090/default.nix @@ -0,0 +1,45 @@ +{ pkgs, lib, ... }: +{ + systemd.services.dump1090-fa = { + description = "dump1090 ADS-B receiver (FlightAware customization)"; + after = [ "network.target" ]; + wantedBy = [ "multi-user.target" ]; + + serviceConfig = { + DynamicUser = true; + SupplementaryGroups = "plugdev"; + ExecStart = lib.escapeShellArgs [ + (lib.getExe pkgs.dump1090) + "--net" + "--write-json" + "%t/dump1090-fa" + ]; + RuntimeDirectory = "dump1090-fa"; + WorkingDirectory = "%t/dump1090-fa"; + RuntimeDirectoryMode = 755; + }; + }; + + services.nginx = { + enable = true; + + virtualHosts."dump1090-fa" = { + listen = [ + { + addr = "0.0.0.0"; + port = 8080; + } + ]; + locations = { + "/".alias = "${pkgs.dump1090}/share/dump1090/"; + "/data/".alias = "/run/dump1090-fa/"; + }; + }; + }; + + # TODO before upstreaming in nixpkgs + # - add `meta.mainProgram` to dump1090 + # - rename dump1090 to dump1090-fa + # - optionally create an alias for dump1090 + # - securing the systemd service (`systemd-analyze security dump1090-fa`) +} From 88ada5d28d4f8e374d900b9591a9a26e1373a3d3 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 27 Feb 2025 14:05:13 +0700 Subject: [PATCH 285/492] Enable `emacs-lsp-booster` --- hmModules/emacs/default.nix | 1 + hmModules/emacs/init.el | 4 ++++ packages/emacs/packages.nix | 10 ++++++++++ 3 files changed, 15 insertions(+) diff --git a/hmModules/emacs/default.nix b/hmModules/emacs/default.nix index 39717d3..61afd35 100644 --- a/hmModules/emacs/default.nix +++ b/hmModules/emacs/default.nix @@ -48,6 +48,7 @@ in kdePackages.qtwayland copilot-node-server math-preview + emacs-lsp-booster ] ++ (with hunspellDicts; [ en_US-large diff --git a/hmModules/emacs/init.el b/hmModules/emacs/init.el index ba64445..a09038d 100644 --- a/hmModules/emacs/init.el +++ b/hmModules/emacs/init.el @@ -37,6 +37,10 @@ (consult-eglot-embark-mode) ) +(use-package eglot-booster + :after eglot + :config (eglot-booster-mode)) + (use-package emacs :bind (("" . scroll-down-line) ("" . scroll-up-line) diff --git a/packages/emacs/packages.nix b/packages/emacs/packages.nix index af76056..74b0068 100644 --- a/packages/emacs/packages.nix +++ b/packages/emacs/packages.nix @@ -98,6 +98,16 @@ let }; deps = [ ]; }; + eglot-booster = buildEmacsPackage { + name = "eglot-booster"; + src = pkgs.fetchFromGitHub { + owner = "jdtsmith"; + repo = "eglot-booster"; + rev = "e6daa6bcaf4aceee29c8a5a949b43eb1b89900ed"; + hash = "sha256-PLfaXELkdX5NZcSmR1s/kgmU16ODF8bn56nfTh9g6bs="; + }; + deps = [ ]; + }; }; # *List* containing emacs packages from (M)ELPA From f358b8e5e95befb051e4bd5c1cebb4f8f6b1c9f7 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 27 Feb 2025 14:05:23 +0700 Subject: [PATCH 286/492] Change `sisko` NFS mountpoint --- modules/mount-sisko/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/mount-sisko/default.nix b/modules/mount-sisko/default.nix index 61671a5..cd9d1d0 100644 --- a/modules/mount-sisko/default.nix +++ b/modules/mount-sisko/default.nix @@ -15,7 +15,7 @@ source = "${pkgs.nfs-utils.out}/bin/mount.nfs"; }; - fileSystems."/home/${config.ccr.username}/nas" = { + fileSystems."/mnt/nas" = { device = "sisko.fleet:/hd"; fsType = "nfs"; options = [ From 6a7a16807df9131b2bb5f553ab2d3ee4fa950ed6 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 27 Feb 2025 14:05:40 +0700 Subject: [PATCH 287/492] Disable spotify on `sisko` --- hosts/kirk/default.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/hosts/kirk/default.nix b/hosts/kirk/default.nix index 5bb2927..0835424 100644 --- a/hosts/kirk/default.nix +++ b/hosts/kirk/default.nix @@ -57,7 +57,6 @@ "niri" "udiskie" "xdg" - "spotify" "lutris" "wine" "cura" From e35ba5af349a8ed26e7309741301d7be7c86d0fa Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 27 Feb 2025 14:05:52 +0700 Subject: [PATCH 288/492] Make ssh better/faster? --- hmModules/git/default.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/hmModules/git/default.nix b/hmModules/git/default.nix index 424c4b9..52fcf80 100644 --- a/hmModules/git/default.nix +++ b/hmModules/git/default.nix @@ -33,6 +33,12 @@ in credential.helper = "manager"; credential.credentialStore = "cache"; + + core = { + fsmonitor = true; + untrackedcache = true; + }; + fetch.writeCommitGraph = true; }; userName = config.name; From e1ebdc68e99aeeb85203624b427b4de0f4d49255 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 27 Feb 2025 14:06:04 +0700 Subject: [PATCH 289/492] Improve Discord --- hmModules/discord/default.nix | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/hmModules/discord/default.nix b/hmModules/discord/default.nix index 90f6d31..f750cb7 100644 --- a/hmModules/discord/default.nix +++ b/hmModules/discord/default.nix @@ -1,6 +1,9 @@ { pkgs, ... }: { - home.packages = [ pkgs.discord ]; + home.packages = [ (pkgs.discord.override { + withOpenASAR = true; + withVencord = true; + }) ]; home.file.".config/discord/settings.json".text = builtins.toJSON { SKIP_HOST_UPDATE = true; }; From fccbf30dd366180dc25755ede753412adcab5715 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 27 Feb 2025 14:18:12 +0700 Subject: [PATCH 290/492] Customize Gptel and bTop floating windows sizes for each host --- hmModules/niri/config.kdl | 6 ++++-- hmModules/niri/default.nix | 39 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+), 2 deletions(-) diff --git a/hmModules/niri/config.kdl b/hmModules/niri/config.kdl index c0045cd..d06c32d 100644 --- a/hmModules/niri/config.kdl +++ b/hmModules/niri/config.kdl @@ -351,11 +351,13 @@ binds { Mod+B { spawn "firefox"; } Mod+RETURN { spawn "emacsclient" "-c" "--eval" "(ccr/start-eshell)"; } Mod+M { spawn "emacsclient" "-c" "--eval" "(notmuch-search \"tag:new\")"; } - Mod+G { spawn "emacsclient" "-c" "--eval" "(switch-to-buffer (gptel \"*ChatGPT*\"))" "-F" "((name . \"GPTel - Emacs\") (width . 150) (height . 60))'"; } + // Mod+G { spawn "emacsclient" "-c" "--eval" "(switch-to-buffer (gptel \"*ChatGPT*\"))" "-F" "((name . \"GPTel - Emacs\") (width . $NIRI_GPTEL_COLS) (height . $NIRI_GPTEL_ROWS))'"; } + Mod+G { spawn "run-floating-gptel"; } Mod+Shift+C { spawn "emacsclient" "-c" "--eval" "(org-roam-dailies-capture-today)"; } Mod+Alt+L { spawn "swaylock"; } Mod+Space { spawn "rofi" "-show" "menu" "-modi" "menu:rofi-power-menu"; } - Mod+Ctrl+b { spawn "foot" "--title='bTop'" "-W" "210x60" "btop";} + // Mod+Ctrl+b { spawn "foot" "--title='bTop'" "-W" "$NIRI_BTOP_COLSx$NIRI_BTOP_ROWS" "btop";} + Mod+Ctrl+b { spawn "run-floating-btop"; } // Example volume keys mappings for PipeWire & WirePlumber. // The allow-when-locked=true property makes them work even when the session is locked. diff --git a/hmModules/niri/default.nix b/hmModules/niri/default.nix index 9210926..ded045b 100644 --- a/hmModules/niri/default.nix +++ b/hmModules/niri/default.nix @@ -2,13 +2,52 @@ pkgs, lib, config, + hostname, ... }: +let + niriVars = + { + picard = { + floating-gptel = { + rows = "60"; + cols = "150"; + }; + floating-btop = { + rows = "210"; + cols = "60"; + }; + }; + kirk = { + floating-gptel = { + rows = "40"; + cols = "140"; + }; + floating-btop = { + rows = "40"; + cols = "140"; + }; + }; + } + ."${hostname}" or niriVars.kirk; + run-floating-gptel = + with niriVars.floating-gptel; + pkgs.writeScriptBin "run-floating-gptel" '' + emacsclient -c --eval '(switch-to-buffer (gptel "*GptEl*"))' -F '((name . "GPTel - Emacs") (width . ${cols}) (height . ${rows}))' + ''; + run-floating-btop = + with niriVars.floating-btop; + pkgs.writeScriptBin "run-floating-btop" '' + foot --title='bTop' -W ${rows}x${cols} btop + ''; +in { home.packages = with pkgs; [ niri waypaper xwayland-satellite + run-floating-gptel + run-floating-btop ]; systemd.user.targets.niri-session = { Unit = { From 820fda70aaf1254ba2eb9f2480e777bea99556d3 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 27 Feb 2025 08:48:48 +0100 Subject: [PATCH 291/492] Disable custom `dump1090` nixos Module A PR on nixpkgs is now open --- hosts/picard/default.nix | 1 - modules/dump1090/default.nix | 45 ------------------------------------ 2 files changed, 46 deletions(-) delete mode 100644 modules/dump1090/default.nix diff --git a/hosts/picard/default.nix b/hosts/picard/default.nix index 9c2f4a1..104a454 100644 --- a/hosts/picard/default.nix +++ b/hosts/picard/default.nix @@ -41,7 +41,6 @@ "adb" "prometheus-exporters" "promtail" - "dump1090" ] ++ [ ./disko.nix ]; diff --git a/modules/dump1090/default.nix b/modules/dump1090/default.nix deleted file mode 100644 index d6f2456..0000000 --- a/modules/dump1090/default.nix +++ /dev/null @@ -1,45 +0,0 @@ -{ pkgs, lib, ... }: -{ - systemd.services.dump1090-fa = { - description = "dump1090 ADS-B receiver (FlightAware customization)"; - after = [ "network.target" ]; - wantedBy = [ "multi-user.target" ]; - - serviceConfig = { - DynamicUser = true; - SupplementaryGroups = "plugdev"; - ExecStart = lib.escapeShellArgs [ - (lib.getExe pkgs.dump1090) - "--net" - "--write-json" - "%t/dump1090-fa" - ]; - RuntimeDirectory = "dump1090-fa"; - WorkingDirectory = "%t/dump1090-fa"; - RuntimeDirectoryMode = 755; - }; - }; - - services.nginx = { - enable = true; - - virtualHosts."dump1090-fa" = { - listen = [ - { - addr = "0.0.0.0"; - port = 8080; - } - ]; - locations = { - "/".alias = "${pkgs.dump1090}/share/dump1090/"; - "/data/".alias = "/run/dump1090-fa/"; - }; - }; - }; - - # TODO before upstreaming in nixpkgs - # - add `meta.mainProgram` to dump1090 - # - rename dump1090 to dump1090-fa - # - optionally create an alias for dump1090 - # - securing the systemd service (`systemd-analyze security dump1090-fa`) -} From e583ab81e413baaccdd1630ac0762fe1d3acdb64 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 27 Feb 2025 09:49:24 +0100 Subject: [PATCH 292/492] Update inputs and remove `lix-eval-jobs`, `nixThePlanet` and `nix-darwin` --- flake.lock | 616 ++++++++--------------------------------------------- flake.nix | 9 - 2 files changed, 85 insertions(+), 540 deletions(-) diff --git a/flake.lock b/flake.lock index 583d5c1..a90094c 100644 --- a/flake.lock +++ b/flake.lock @@ -8,11 +8,11 @@ "systems": "systems" }, "locked": { - "lastModified": 1723293904, - "narHash": "sha256-b+uqzj+Wa6xgMS9aNbX4I+sXeb5biPDi39VgvSFqFvU=", + "lastModified": 1736955230, + "narHash": "sha256-uenf8fv2eG5bKM8C/UvFaiJMZ4IpUFaQxk9OH5t/1gA=", "owner": "ryantm", "repo": "agenix", - "rev": "f6291c5935fdc4e0bef208cfc0dcab7e3f7a1c41", + "rev": "e600439ec4c273cf11e06fe4d9d906fb98fa097c", "type": "github" }, "original": { @@ -23,20 +23,14 @@ }, "catppuccin": { "inputs": { - "catppuccin-v1_1": "catppuccin-v1_1", - "catppuccin-v1_2": "catppuccin-v1_2", - "home-manager": "home-manager_2", - "home-manager-stable": "home-manager-stable", - "nixpkgs": "nixpkgs_2", - "nixpkgs-stable": "nixpkgs-stable", - "nuscht-search": "nuscht-search" + "nixpkgs": "nixpkgs_2" }, "locked": { - "lastModified": 1736069220, - "narHash": "sha256-76MaB3COao55nlhWmSmq9PKgu2iGIs54C1cAE0E5J6Y=", + "lastModified": 1739934729, + "narHash": "sha256-PcrLk10meIJICzUJqtCMOJxoITzbH52fZg2XAB7SSsM=", "owner": "catppuccin", "repo": "nix", - "rev": "8eada392fd6571a747e1c5fc358dd61c14c8704e", + "rev": "b1ff2a638afa827f1473498190a2c1cae1cf41cf", "type": "github" }, "original": { @@ -45,34 +39,6 @@ "type": "github" } }, - "catppuccin-v1_1": { - "locked": { - "lastModified": 1734055249, - "narHash": "sha256-pCWJgwo77KD7EJpwynwKrWPZ//dwypHq2TfdzZWqK68=", - "rev": "7221d6ca17ac36ed20588e1c3a80177ac5843fa7", - "revCount": 326, - "type": "tarball", - "url": "https://api.flakehub.com/f/pinned/catppuccin/nix/1.1.1/0193bdc0-b045-7eed-bbec-95611a8ecdf5/source.tar.gz" - }, - "original": { - "type": "tarball", - "url": "https://flakehub.com/f/catppuccin/nix/1.1.%2A.tar.gz" - } - }, - "catppuccin-v1_2": { - "locked": { - "lastModified": 1734728407, - "narHash": "sha256-Let3uJo4YDyfqbqaw66dpZxhJB2TrDyZWSFd5rpPLJA=", - "rev": "23ee86dbf4ed347878115a78971d43025362fab1", - "revCount": 341, - "type": "tarball", - "url": "https://api.flakehub.com/f/pinned/catppuccin/nix/1.2.0/0193e5e0-33b7-7149-a362-bfe56b20f64e/source.tar.gz" - }, - "original": { - "type": "tarball", - "url": "https://flakehub.com/f/catppuccin/nix/1.2.%2A.tar.gz" - } - }, "crane": { "locked": { "lastModified": 1731098351, @@ -117,11 +83,11 @@ ] }, "locked": { - "lastModified": 1736711425, - "narHash": "sha256-8hKhPQuMtXfJi+4lPvw3FBk/zSJVHeb726Zo0uF1PP8=", + "lastModified": 1740485968, + "narHash": "sha256-WK+PZHbfDjLyveXAxpnrfagiFgZWaTJglewBWniTn2Y=", "owner": "nix-community", "repo": "disko", - "rev": "f720e64ec37fa16ebba6354eadf310f81555cc07", + "rev": "19c1140419c4f1cdf88ad4c1cfb6605597628940", "type": "github" }, "original": { @@ -153,14 +119,14 @@ "emacs-overlay": { "inputs": { "nixpkgs": "nixpkgs_4", - "nixpkgs-stable": "nixpkgs-stable_2" + "nixpkgs-stable": "nixpkgs-stable" }, "locked": { - "lastModified": 1736759802, - "narHash": "sha256-XCaIRTC+YlL5nRi9WJHeftyfw2Z0YXwwzEmHThGuR3Q=", + "lastModified": 1740622367, + "narHash": "sha256-7TpBfGb24DrQrdW94T5x0vHN0GF2I50fkP+YX5r6JqE=", "owner": "nix-community", "repo": "emacs-overlay", - "rev": "244a2ab1459c72bac32a2db088549f8bc6d7a836", + "rev": "ee8442abce734e9a1d0e5824818062bcbf358e73", "type": "github" }, "original": { @@ -238,66 +204,6 @@ "type": "github" } }, - "flake-parts_2": { - "inputs": { - "nixpkgs-lib": [ - "lix-eval-jobs", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1730504689, - "narHash": "sha256-hgmguH29K2fvs9szpq2r3pz2/8cJd2LPS+b4tfNFCwE=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "506278e768c2a08bec68eb62932193e341f55c90", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "flake-parts", - "type": "github" - } - }, - "flake-parts_3": { - "inputs": { - "nixpkgs-lib": "nixpkgs-lib_2" - }, - "locked": { - "lastModified": 1701473968, - "narHash": "sha256-YcVE5emp1qQ8ieHUnxt1wCZCC3ZfAS+SRRWZ2TMda7E=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "34fed993f1674c8d06d58b37ce1e0fe5eebcb9f5", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "flake-parts", - "type": "github" - } - }, - "flake-parts_4": { - "inputs": { - "nixpkgs-lib": [ - "nixThePlanet", - "hercules-ci-effects", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1696343447, - "narHash": "sha256-B2xAZKLkkeRFG5XcHHSXXcP7To9Xzr59KXeZiRf4vdQ=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "c9afaba3dfa4085dbd2ccb38dfade5141e33d9d4", - "type": "github" - }, - "original": { - "id": "flake-parts", - "type": "indirect" - } - }, "flake-utils": { "inputs": { "systems": "systems_2" @@ -320,24 +226,6 @@ "inputs": { "systems": "systems_3" }, - "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" - } - }, - "flake-utils_3": { - "inputs": { - "systems": "systems_4" - }, "locked": { "lastModified": 1681202837, "narHash": "sha256-H+Rh19JDwRtpVPAWp64F+rlEtxUWBAQW28eAi3SRSzg=", @@ -357,11 +245,11 @@ "nixpkgs-lib": "nixpkgs-lib" }, "locked": { - "lastModified": 1736143030, - "narHash": "sha256-+hu54pAoLDEZT9pjHlqL9DNzWz0NbUn8NEAHP7PQPzU=", + "lastModified": 1738453229, + "narHash": "sha256-7H9XgNiGLKN1G1CgRh0vUL4AheZSYzPm+zmZ7vxbJdo=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "b905f6fc23a9051a6e1b741e1438dbfc0634c6de", + "rev": "32ea77a06711b758da0ad9bd6a844c5740a87abd", "type": "github" }, "original": { @@ -394,11 +282,11 @@ ] }, "locked": { - "lastModified": 1735882644, - "narHash": "sha256-3FZAG+pGt3OElQjesCAWeMkQ7C/nB1oTHLRQ8ceP110=", + "lastModified": 1737465171, + "narHash": "sha256-R10v2hoJRLq8jcL4syVFag7nIGE7m13qO48wRIukWNg=", "owner": "cachix", "repo": "git-hooks.nix", - "rev": "a5a961387e75ae44cc20f0a57ae463da5e959656", + "rev": "9364dc02281ce2d37a1f55b6e51f7c0f65a75f17", "type": "github" }, "original": { @@ -450,25 +338,6 @@ "type": "github" } }, - "hercules-ci-effects": { - "inputs": { - "flake-parts": "flake-parts_4", - "nixpkgs": "nixpkgs_7" - }, - "locked": { - "lastModified": 1701009247, - "narHash": "sha256-GuX16rzRze2y7CsewJLTV6qXkXWyEwp6VCZXi8HLruU=", - "owner": "hercules-ci", - "repo": "hercules-ci-effects", - "rev": "31b6cd7569191bfcd0a548575b0e2ef953ed7d09", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "hercules-ci-effects", - "type": "github" - } - }, "home-manager": { "inputs": { "nixpkgs": [ @@ -490,50 +359,7 @@ "type": "github" } }, - "home-manager-stable": { - "inputs": { - "nixpkgs": [ - "catppuccin", - "nixpkgs-stable" - ] - }, - "locked": { - "lastModified": 1734366194, - "narHash": "sha256-vykpJ1xsdkv0j8WOVXrRFHUAdp9NXHpxdnn1F4pYgSw=", - "owner": "nix-community", - "repo": "home-manager", - "rev": "80b0fdf483c5d1cb75aaad909bd390d48673857f", - "type": "github" - }, - "original": { - "owner": "nix-community", - "ref": "release-24.11", - "repo": "home-manager", - "type": "github" - } - }, "home-manager_2": { - "inputs": { - "nixpkgs": [ - "catppuccin", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1734622215, - "narHash": "sha256-OOfI0XhSJGHblfdNDhfnn8QnZxng63rWk9eeJ2tCbiI=", - "owner": "nix-community", - "repo": "home-manager", - "rev": "1395379a7a36e40f2a76e7b9936cc52950baa1be", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "home-manager", - "type": "github" - } - }, - "home-manager_3": { "inputs": { "nixpkgs": [ "nix-on-droid", @@ -561,11 +387,11 @@ ] }, "locked": { - "lastModified": 1736781604, - "narHash": "sha256-nIjcN89nxaI5ZnwU/1gzc3rBVQ/te5sHraYeG4cyJX4=", + "lastModified": 1740624780, + "narHash": "sha256-8TP61AI3QBQsjzVUQFIV8NoB5nbYfJB3iHczhBikDkU=", "owner": "nix-community", "repo": "home-manager", - "rev": "9616d81f98032d1ee9bec68ab4b6a8c833add88c", + "rev": "b8869e4ead721bbd4f0d6b927e8395705d4f16e6", "type": "github" }, "original": { @@ -597,11 +423,11 @@ }, "impermanence": { "locked": { - "lastModified": 1736688610, - "narHash": "sha256-1Zl9xahw399UiZSJ9Vxs1W4WRFjO1SsNdVZQD4nghz0=", + "lastModified": 1737831083, + "narHash": "sha256-LJggUHbpyeDvNagTUrdhe/pRVp4pnS6wVKALS782gRI=", "owner": "nix-community", "repo": "impermanence", - "rev": "c64bed13b562fc3bb454b48773d4155023ac31b7", + "rev": "4b3e914cdf97a5b536a889e939fb2fd2b043a170", "type": "github" }, "original": { @@ -610,34 +436,6 @@ "type": "github" } }, - "ixx": { - "inputs": { - "flake-utils": [ - "catppuccin", - "nuscht-search", - "flake-utils" - ], - "nixpkgs": [ - "catppuccin", - "nuscht-search", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1729958008, - "narHash": "sha256-EiOq8jF4Z/zQe0QYVc3+qSKxRK//CFHMB84aYrYGwEs=", - "owner": "NuschtOS", - "repo": "ixx", - "rev": "9fd01aad037f345350eab2cd45e1946cc66da4eb", - "type": "github" - }, - "original": { - "owner": "NuschtOS", - "ref": "v0.0.6", - "repo": "ixx", - "type": "github" - } - }, "lanzaboote": { "inputs": { "crane": "crane", @@ -650,11 +448,11 @@ "rust-overlay": "rust-overlay" }, "locked": { - "lastModified": 1734994463, - "narHash": "sha256-S9MgfQjNt4J3I7obdLOVY23h+Yl/hnyibwGfOl+1uOE=", + "lastModified": 1740440383, + "narHash": "sha256-w8ixbqOGrVWMQZFFs4uAwZpuwuGMzFoKjocMFxTR5Ts=", "owner": "nix-community", "repo": "lanzaboote", - "rev": "93e6f0d77548be8757c11ebda5c4235ef4f3bc67", + "rev": "6321bc060d757c137c1fbae2057c7e941483878f", "type": "github" }, "original": { @@ -666,11 +464,11 @@ "lix": { "flake": false, "locked": { - "lastModified": 1736680332, - "narHash": "sha256-gwidOezQ6FT5q4GHcpD6y2EwKcrtzjAoxaN/9bTGqQw=", + "lastModified": 1740629216, + "narHash": "sha256-i6fadzFVD7B8XWXa2ycPoVlpSJ5SeWcZ8LLzfzYedKs=", "ref": "refs/heads/main", - "rev": "38dd196b03f4163ae3bbb2a1910b8f0f141ca0e2", - "revCount": 16610, + "rev": "8082f0b8434a81db309ac8abf1cf32532ba9168e", + "revCount": 17513, "type": "git", "url": "https://git@git.lix.systems/lix-project/lix" }, @@ -679,35 +477,9 @@ "url": "https://git@git.lix.systems/lix-project/lix" } }, - "lix-eval-jobs": { - "inputs": { - "flake-parts": "flake-parts_2", - "lix": [ - "lix" - ], - "nix-github-actions": "nix-github-actions", - "nixpkgs": [ - "nixpkgs" - ], - "treefmt-nix": "treefmt-nix" - }, - "locked": { - "lastModified": 1733522041, - "narHash": "sha256-KpKmFgcUGQlAWhLUHyBn3AnTJLp7Kt82q2Cxfp3Yf44=", - "ref": "refs/heads/main", - "rev": "df3edf37301cdc77ca5bd5f3f6fcccd6d0befee5", - "revCount": 619, - "type": "git", - "url": "https://git.lix.systems/lix-project/nix-eval-jobs" - }, - "original": { - "type": "git", - "url": "https://git.lix.systems/lix-project/nix-eval-jobs" - } - }, "lix-module": { "inputs": { - "flake-utils": "flake-utils_2", + "flake-utils": "flake-utils", "flakey-profile": "flakey-profile", "lix": [ "lix" @@ -717,11 +489,11 @@ ] }, "locked": { - "lastModified": 1733522213, - "narHash": "sha256-H+Pk19MzvI/TAbXWimUPZAoKkD56OSyxJBm8lVIA5n0=", + "lastModified": 1738176840, + "narHash": "sha256-NG3IRvRs3u3btVCN861FqHvgOwqcNT/Oy6PBG86F5/E=", "ref": "refs/heads/main", - "rev": "c374ebf5548c7b6d4bf884369a5b6879cfc916ea", - "revCount": 124, + "rev": "621aae0f3cceaffa6d73a4fb0f89c08d338d729e", + "revCount": 133, "type": "git", "url": "https://git.lix.systems/lix-project/nixos-module" }, @@ -733,11 +505,11 @@ "mobile-nixos": { "flake": false, "locked": { - "lastModified": 1736638789, - "narHash": "sha256-pkpOkSUNrSf5DePUtYYFt4wGODhY28RlQ4SIJ1e+15M=", + "lastModified": 1737346419, + "narHash": "sha256-YHByUFujAnfJJ2JnhHIJyohECr5o0EDmuRdyUcvnZGQ=", "owner": "NixOS", "repo": "mobile-nixos", - "rev": "72a0601f36a1b424e8b72f17ff53509b990ee060", + "rev": "1498c4d7fd59026479469efdbfe30c78a7300d89", "type": "github" }, "original": { @@ -772,30 +544,9 @@ "type": "github" } }, - "nix-github-actions": { - "inputs": { - "nixpkgs": [ - "lix-eval-jobs", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1731952509, - "narHash": "sha256-p4gB3Rhw8R6Ak4eMl8pqjCPOLCZRqaehZxdZ/mbFClM=", - "owner": "nix-community", - "repo": "nix-github-actions", - "rev": "7b5f051df789b6b20d259924d349a9ba3319b226", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "nix-github-actions", - "type": "github" - } - }, "nix-on-droid": { "inputs": { - "home-manager": "home-manager_3", + "home-manager": "home-manager_2", "nix-formatter-pack": "nix-formatter-pack", "nixpkgs": "nixpkgs_5", "nixpkgs-docs": "nixpkgs-docs", @@ -816,52 +567,13 @@ "type": "github" } }, - "nixDarwin": { - "inputs": { - "nixpkgs": "nixpkgs_6" - }, - "locked": { - "lastModified": 1736631212, - "narHash": "sha256-mG9lRZBcPiAGiVJ9B97BJoIGQcSBWIVlBiN30QYCtG0=", - "owner": "LnL7", - "repo": "nix-darwin", - "rev": "6ace2f2d12bdf74235d5cbf9fbd34a71c9716685", - "type": "github" - }, - "original": { - "owner": "LnL7", - "repo": "nix-darwin", - "type": "github" - } - }, - "nixThePlanet": { - "inputs": { - "flake-parts": "flake-parts_3", - "hercules-ci-effects": "hercules-ci-effects", - "nixpkgs": "nixpkgs_8", - "osx-kvm": "osx-kvm" - }, - "locked": { - "lastModified": 1734291592, - "narHash": "sha256-6jc7RzRLAnoUjgqJizWdOBmYbp49UBpOlqZeDw8SCjc=", - "owner": "MatthewCroughan", - "repo": "NixThePlanet", - "rev": "b70d951ab433806e44a6b366367af55c469da52d", - "type": "github" - }, - "original": { - "owner": "MatthewCroughan", - "repo": "NixThePlanet", - "type": "github" - } - }, "nixosHardware": { "locked": { - "lastModified": 1736441705, - "narHash": "sha256-OL7leZ6KBhcDF3nEKe4aZVfIm6xQpb1Kb+mxySIP93o=", + "lastModified": 1740387674, + "narHash": "sha256-pGk/aA0EBvI6o4DeuZsr05Ig/r4uMlSaf5EWUZEWM10=", "owner": "NixOS", "repo": "nixos-hardware", - "rev": "8870dcaff63dfc6647fb10648b827e9d40b0a337", + "rev": "d58f642ddb23320965b27beb0beba7236e9117b5", "type": "github" }, "original": { @@ -920,41 +632,23 @@ }, "nixpkgs-lib": { "locked": { - "lastModified": 1735774519, - "narHash": "sha256-CewEm1o2eVAnoqb6Ml+Qi9Gg/EfNAxbRx1lANGVyoLI=", + "lastModified": 1738452942, + "narHash": "sha256-vJzFZGaCpnmo7I6i416HaBLpC+hvcURh/BQwROcGIp8=", "type": "tarball", - "url": "https://github.com/NixOS/nixpkgs/archive/e9b51731911566bbf7e4895475a87fe06961de0b.tar.gz" + "url": "https://github.com/NixOS/nixpkgs/archive/072a6db25e947df2f31aab9eccd0ab75d5b2da11.tar.gz" }, "original": { "type": "tarball", - "url": "https://github.com/NixOS/nixpkgs/archive/e9b51731911566bbf7e4895475a87fe06961de0b.tar.gz" - } - }, - "nixpkgs-lib_2": { - "locked": { - "dir": "lib", - "lastModified": 1701253981, - "narHash": "sha256-ztaDIyZ7HrTAfEEUt9AtTDNoCYxUdSd6NrRHaYOIxtk=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "e92039b55bcd58469325ded85d4f58dd5a4eaf58", - "type": "github" - }, - "original": { - "dir": "lib", - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" + "url": "https://github.com/NixOS/nixpkgs/archive/072a6db25e947df2f31aab9eccd0ab75d5b2da11.tar.gz" } }, "nixpkgs-stable": { "locked": { - "lastModified": 1734600368, - "narHash": "sha256-nbG9TijTMcfr+au7ZVbKpAhMJzzE2nQBYmRvSdXUD8g=", + "lastModified": 1740463929, + "narHash": "sha256-4Xhu/3aUdCKeLfdteEHMegx5ooKQvwPHNkOgNCXQrvc=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "b47fd6fa00c6afca88b8ee46cfdb00e104f50bca", + "rev": "5d7db4668d7a0c6cc5fc8cf6ef33b008b2b1ed8b", "type": "github" }, "original": { @@ -965,22 +659,6 @@ } }, "nixpkgs-stable_2": { - "locked": { - "lastModified": 1736549401, - "narHash": "sha256-ibkQrMHxF/7TqAYcQE+tOnIsSEzXmMegzyBWza6uHKM=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "1dab772dd4a68a7bba5d9460685547ff8e17d899", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-24.11", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs-stable_3": { "locked": { "lastModified": 1730741070, "narHash": "sha256-edm8WG19kWozJ/GqyYx2VjW99EdhjKwbY3ZwdlPAAlo=", @@ -996,27 +674,13 @@ "type": "github" } }, - "nixpkgs_10": { - "locked": { - "lastModified": 1682134069, - "narHash": "sha256-TnI/ZXSmRxQDt2sjRYK/8j8iha4B4zP2cnQCZZ3vp7k=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "fd901ef4bf93499374c5af385b2943f5801c0833", - "type": "github" - }, - "original": { - "id": "nixpkgs", - "type": "indirect" - } - }, "nixpkgs_2": { "locked": { - "lastModified": 1734424634, - "narHash": "sha256-cHar1vqHOOyC7f1+tVycPoWTfKIaqkoe1Q6TnKzuti4=", + "lastModified": 1736012469, + "narHash": "sha256-/qlNWm/IEVVH7GfgAIyP6EsVZI6zjAx1cV5zNyrs+rI=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "d3c42f187194c26d9f0309a8ecc469d6c878ce33", + "rev": "8f3e1f807051e32d8c95cd12b9b421623850a34d", "type": "github" }, "original": { @@ -1044,11 +708,11 @@ }, "nixpkgs_4": { "locked": { - "lastModified": 1736523798, - "narHash": "sha256-Xb8mke6UCYjge9kPR9o4P1nVrhk7QBbKv3xQ9cj7h2s=", + "lastModified": 1740367490, + "narHash": "sha256-WGaHVAjcrv+Cun7zPlI41SerRtfknGQap281+AakSAw=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "130595eba61081acde9001f43de3248d8888ac4a", + "rev": "0196c0175e9191c474c26ab5548db27ef5d34b05", "type": "github" }, "original": { @@ -1075,11 +739,27 @@ }, "nixpkgs_6": { "locked": { - "lastModified": 1718149104, - "narHash": "sha256-Ds1QpobBX2yoUDx9ZruqVGJ/uQPgcXoYuobBguyKEh8=", + "lastModified": 1740367490, + "narHash": "sha256-WGaHVAjcrv+Cun7zPlI41SerRtfknGQap281+AakSAw=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "e913ae340076bbb73d9f4d3d065c2bca7caafb16", + "rev": "0196c0175e9191c474c26ab5548db27ef5d34b05", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_7": { + "locked": { + "lastModified": 1682134069, + "narHash": "sha256-TnI/ZXSmRxQDt2sjRYK/8j8iha4B4zP2cnQCZZ3vp7k=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "fd901ef4bf93499374c5af385b2943f5801c0833", "type": "github" }, "original": { @@ -1087,54 +767,6 @@ "type": "indirect" } }, - "nixpkgs_7": { - "locked": { - "lastModified": 1697723726, - "narHash": "sha256-SaTWPkI8a5xSHX/rrKzUe+/uVNy6zCGMXgoeMb7T9rg=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "7c9cc5a6e5d38010801741ac830a3f8fd667a7a0", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_8": { - "locked": { - "lastModified": 1703255338, - "narHash": "sha256-Z6wfYJQKmDN9xciTwU3cOiOk+NElxdZwy/FiHctCzjU=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "6df37dc6a77654682fe9f071c62b4242b5342e04", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_9": { - "locked": { - "lastModified": 1736701207, - "narHash": "sha256-jG/+MvjVY7SlTakzZ2fJ5dC3V1PrKKrUEOEE30jrOKA=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "ed4a395ea001367c1f13d34b1e01aa10290f67d6", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, "nmd": { "inputs": { "nixpkgs": [ @@ -1173,45 +805,6 @@ "type": "gitlab" } }, - "nuscht-search": { - "inputs": { - "flake-utils": "flake-utils", - "ixx": "ixx", - "nixpkgs": [ - "catppuccin", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1733773348, - "narHash": "sha256-Y47y+LesOCkJaLvj+dI/Oa6FAKj/T9sKVKDXLNsViPw=", - "owner": "NuschtOS", - "repo": "search", - "rev": "3051be7f403bff1d1d380e4612f0c70675b44fc9", - "type": "github" - }, - "original": { - "owner": "NuschtOS", - "repo": "search", - "type": "github" - } - }, - "osx-kvm": { - "flake": false, - "locked": { - "lastModified": 1701316418, - "narHash": "sha256-Sk8LYhFovoMX1ln7DWYArJQphW2a4h8Xg7/ZEZXwZv4=", - "owner": "kholia", - "repo": "OSX-KVM", - "rev": "09daff670a7eb9ff616073df329586c5995623a9", - "type": "github" - }, - "original": { - "owner": "kholia", - "repo": "OSX-KVM", - "type": "github" - } - }, "pre-commit-hooks-nix": { "inputs": { "flake-compat": [ @@ -1223,7 +816,7 @@ "lanzaboote", "nixpkgs" ], - "nixpkgs-stable": "nixpkgs-stable_3" + "nixpkgs-stable": "nixpkgs-stable_2" }, "locked": { "lastModified": 1731363552, @@ -1293,15 +886,12 @@ "impermanence": "impermanence", "lanzaboote": "lanzaboote", "lix": "lix", - "lix-eval-jobs": "lix-eval-jobs", "lix-module": "lix-module", "mobile-nixos": "mobile-nixos", "nix-on-droid": "nix-on-droid", - "nixDarwin": "nixDarwin", - "nixThePlanet": "nixThePlanet", "nixosHardware": "nixosHardware", - "nixpkgs": "nixpkgs_9", - "treefmt-nix": "treefmt-nix_2", + "nixpkgs": "nixpkgs_6", + "treefmt-nix": "treefmt-nix", "vscode-server": "vscode-server" } }, @@ -1409,54 +999,18 @@ "type": "github" } }, - "systems_4": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - }, "treefmt-nix": { "inputs": { "nixpkgs": [ - "lix-eval-jobs", "nixpkgs" ] }, "locked": { - "lastModified": 1732292307, - "narHash": "sha256-5WSng844vXt8uytT5djmqBCkopyle6ciFgteuA9bJpw=", + "lastModified": 1739829690, + "narHash": "sha256-mL1szCeIsjh6Khn3nH2cYtwO5YXG6gBiTw1A30iGeDU=", "owner": "numtide", "repo": "treefmt-nix", - "rev": "705df92694af7093dfbb27109ce16d828a79155f", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "treefmt-nix", - "type": "github" - } - }, - "treefmt-nix_2": { - "inputs": { - "nixpkgs": [ - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1736154270, - "narHash": "sha256-p2r8xhQZ3TYIEKBoiEhllKWQqWNJNoT9v64Vmg4q8Zw=", - "owner": "numtide", - "repo": "treefmt-nix", - "rev": "13c913f5deb3a5c08bb810efd89dc8cb24dd968b", + "rev": "3d0579f5cc93436052d94b73925b48973a104204", "type": "github" }, "original": { @@ -1467,8 +1021,8 @@ }, "vscode-server": { "inputs": { - "flake-utils": "flake-utils_3", - "nixpkgs": "nixpkgs_10" + "flake-utils": "flake-utils_2", + "nixpkgs": "nixpkgs_7" }, "locked": { "lastModified": 1729422940, diff --git a/flake.nix b/flake.nix index 34a3717..4b6946e 100644 --- a/flake.nix +++ b/flake.nix @@ -28,10 +28,6 @@ inputs.nixpkgs.follows = "nixpkgs"; }; dream2nix.url = "github:nix-community/dream2nix"; - nixThePlanet.url = "github:MatthewCroughan/NixThePlanet"; # not following nixpkgs on purpose - nixDarwin = { - url = "github:LnL7/nix-darwin"; - }; nix-on-droid.url = "github:nix-community/nix-on-droid"; lix = { url = "git+https://git@git.lix.systems/lix-project/lix"; # FIXME update @@ -42,11 +38,6 @@ inputs.lix.follows = "lix"; inputs.nixpkgs.follows = "nixpkgs"; }; - lix-eval-jobs = { - url = "git+https://git.lix.systems/lix-project/nix-eval-jobs"; - inputs.lix.follows = "lix"; - inputs.nixpkgs.follows = "nixpkgs"; - }; mobile-nixos = { url = "github:NixOS/mobile-nixos"; flake = false; From 52109a6671276fc7a062d24d244fcf5fdb01266e Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 27 Feb 2025 09:50:23 +0100 Subject: [PATCH 293/492] Use `useFetchCargoVendor` --- packages/spotify-adblocked/default.nix | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/spotify-adblocked/default.nix b/packages/spotify-adblocked/default.nix index f44acea..599f7dc 100644 --- a/packages/spotify-adblocked/default.nix +++ b/packages/spotify-adblocked/default.nix @@ -15,7 +15,9 @@ let rev = "5a3281dee9f889afdeea7263558e7a715dcf5aab"; hash = "sha256-UzpHAHpQx2MlmBNKm2turjeVmgp5zXKWm3nZbEo0mYE="; }; - cargoHash = "sha256-wPV+ZY34OMbBrjmhvwjljbwmcUiPdWNHFU3ac7aVbIQ="; + + useFetchCargoVendor = true; + cargoHash = "sha256-oGpe+kBf6kBboyx/YfbQBt1vvjtXd1n2pOH6FNcbF8M="; patchPhase = '' substituteInPlace src/lib.rs \ From 866af533ef0581d1a95f479269151bb004f6271d Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 27 Feb 2025 09:50:33 +0100 Subject: [PATCH 294/492] Rename `kdePackages.xdg-desktop-portal-kde` --- modules/xdg/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/xdg/default.nix b/modules/xdg/default.nix index 3dc5b50..078ee8e 100644 --- a/modules/xdg/default.nix +++ b/modules/xdg/default.nix @@ -9,7 +9,7 @@ xdg-desktop-portal-hyprland xdg-desktop-portal-gnome xdg-desktop-portal - xdg-desktop-portal-kde + kdePackages.xdg-desktop-portal-kde ]; extraPortals = with pkgs; [ xdg-desktop-portal-wlr @@ -17,7 +17,7 @@ xdg-desktop-portal-hyprland xdg-desktop-portal-gnome xdg-desktop-portal - xdg-desktop-portal-kde + kdePackages.xdg-desktop-portal-kde ]; xdgOpenUsePortal = true; wlr.enable = true; From 3171475f90ef9ecbddea96bd751b90a3b1c2611e Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 27 Feb 2025 09:50:46 +0100 Subject: [PATCH 295/492] Reanme `services.pulseaudio` --- modules/pipewire/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/pipewire/default.nix b/modules/pipewire/default.nix index fac17a0..3e324a1 100644 --- a/modules/pipewire/default.nix +++ b/modules/pipewire/default.nix @@ -2,7 +2,7 @@ { services.pipewire.enable = true; - hardware.pulseaudio = { + services.pulseaudio = { enable = false; }; } From 6d8bbd3b94497811a4f0fa9b52c1ca2371622d13 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 27 Feb 2025 09:50:56 +0100 Subject: [PATCH 296/492] Custom overlay for Lix's `nix-eval-jobs` no more needed --- modules/nix/default.nix | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/modules/nix/default.nix b/modules/nix/default.nix index 49227c9..c6edb78 100644 --- a/modules/nix/default.nix +++ b/modules/nix/default.nix @@ -6,18 +6,6 @@ ... }: { - nixpkgs.overlays = [ - (final: _: { - nix-eval-jobs = - (fleetFlake.inputs.lix-eval-jobs.packages.${final.system}.nix-eval-jobs.override { - nix = final.nix; - }) - // { - nix = final.nix; - }; - }) - ]; - environment.systemPackages = [ pkgs.nix-fast-build ]; nix = { From 52d0f2ad8d25b6260349aac755118e6563dd6f78 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 27 Feb 2025 09:51:14 +0100 Subject: [PATCH 297/492] Disable `macos-ventura` module --- hosts/picard/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hosts/picard/default.nix b/hosts/picard/default.nix index 104a454..b2ed365 100644 --- a/hosts/picard/default.nix +++ b/hosts/picard/default.nix @@ -35,7 +35,7 @@ "hass-poweroff" "forgejo-runners" "teamviewer" - "macos-ventura" + # "macos-ventura" "sunshine" "mount-sisko" "adb" From fb21aab2e3c2400fe0446d33ca49ace6bbebd4ed Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 27 Feb 2025 09:51:35 +0100 Subject: [PATCH 298/492] `ddcci-driver` patch no more needed --- hosts/picard/default.nix | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/hosts/picard/default.nix b/hosts/picard/default.nix index b2ed365..36434c0 100644 --- a/hosts/picard/default.nix +++ b/hosts/picard/default.nix @@ -118,15 +118,16 @@ # https://github.com/NixOS/nixpkgs/issues/328909 boot.extraModulePackages = [ - (config.boot.kernelPackages.ddcci-driver.overrideAttrs (old: { - patches = [ ]; - src = pkgs.fetchFromGitLab { - owner = "${old.pname}-linux"; - repo = "${old.pname}-linux"; - rev = "7853cbfc28bc62e87db79f612568b25315397dd0"; - hash = "sha256-QImfvYzMqyrRGyrS6I7ERYmteaTijd8ZRnC6+bA9OyM="; - }; - })) + # (config.boot.kernelPackages.ddcci-driver.overrideAttrs (old: { + # patches = [ ]; + # src = pkgs.fetchFromGitLab { + # owner = "${old.pname}-linux"; + # repo = "${old.pname}-linux"; + # rev = "7853cbfc28bc62e87db79f612568b25315397dd0"; + # hash = "sha256-QImfvYzMqyrRGyrS6I7ERYmteaTijd8ZRnC6+bA9OyM="; + # }; + # })) + config.boot.kernelPackages.ddcci-driver ]; # systemd.services.ddcci = { From 0bef8299c2f52c5f2866c98159310859c194a221 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 27 Feb 2025 09:51:56 +0100 Subject: [PATCH 299/492] Unused arg --- hosts/module.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/hosts/module.nix b/hosts/module.nix index a59d4e6..5b3e2f6 100644 --- a/hosts/module.nix +++ b/hosts/module.nix @@ -278,7 +278,6 @@ in ( { config, - pkgs, ... }: { From e86705a8b7ace92bcc88a635764b958a4652ae44 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 27 Feb 2025 09:52:02 +0100 Subject: [PATCH 300/492] Flake output renamed --- hosts/module.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hosts/module.nix b/hosts/module.nix index 5b3e2f6..da0aa63 100644 --- a/hosts/module.nix +++ b/hosts/module.nix @@ -274,7 +274,7 @@ in extraHmModules = config.extraHmModules; in [ - config.homeManager.nixosModule + config.homeManager.nixosModules.home-manager ( { config, From aa63b0d3e0f46b1eb61175db870a4b08c5010c7a Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 27 Feb 2025 09:52:10 +0100 Subject: [PATCH 301/492] Unused module --- hosts/default.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/hosts/default.nix b/hosts/default.nix index b76a20d..b9d2db1 100644 --- a/hosts/default.nix +++ b/hosts/default.nix @@ -69,7 +69,6 @@ }; extraModules = [ inputs.disko.nixosModules.disko - inputs.nixThePlanet.nixosModules.macos-ventura inputs.lix-module.nixosModules.default inputs.lanzaboote.nixosModules.lanzaboote inputs.catppuccin.nixosModules.catppuccin From 74ff7d0cff027871cd3db16360e57da02c5ed7bb Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 27 Feb 2025 09:52:15 +0100 Subject: [PATCH 302/492] Option renamed --- hmModules/niri/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hmModules/niri/default.nix b/hmModules/niri/default.nix index ded045b..8e0baf1 100644 --- a/hmModules/niri/default.nix +++ b/hmModules/niri/default.nix @@ -83,7 +83,7 @@ in theme = let inherit (config.lib.formats.rasi) mkLiteral; - cfg = config.programs.fzf.catppuccin; + cfg = config.catppuccin.fzf; palette = (lib.importJSON "${config.catppuccin.sources.palette}/palette.json").${cfg.flavor}.colors; selectColor = color: palette.${color}.hex; From 9601ff024b5677fedaaf70cdfa17dde38724331c Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 27 Feb 2025 09:52:42 +0100 Subject: [PATCH 303/492] Format --- hmModules/discord/default.nix | 10 ++++++---- hmModules/git/default.nix | 4 ++-- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/hmModules/discord/default.nix b/hmModules/discord/default.nix index f750cb7..f766f1a 100644 --- a/hmModules/discord/default.nix +++ b/hmModules/discord/default.nix @@ -1,9 +1,11 @@ { pkgs, ... }: { - home.packages = [ (pkgs.discord.override { - withOpenASAR = true; - withVencord = true; - }) ]; + home.packages = [ + (pkgs.discord.override { + withOpenASAR = true; + withVencord = true; + }) + ]; home.file.".config/discord/settings.json".text = builtins.toJSON { SKIP_HOST_UPDATE = true; }; diff --git a/hmModules/git/default.nix b/hmModules/git/default.nix index 52fcf80..d040d53 100644 --- a/hmModules/git/default.nix +++ b/hmModules/git/default.nix @@ -35,8 +35,8 @@ in credential.credentialStore = "cache"; core = { - fsmonitor = true; - untrackedcache = true; + fsmonitor = true; + untrackedcache = true; }; fetch.writeCommitGraph = true; }; From a3c722e9f841a5c464d875eeef4882ec8ec12f40 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 27 Feb 2025 15:24:14 +0100 Subject: [PATCH 304/492] Fix `ddcci` --- hosts/picard/default.nix | 32 +++++++++++--------------------- 1 file changed, 11 insertions(+), 21 deletions(-) diff --git a/hosts/picard/default.nix b/hosts/picard/default.nix index 36434c0..50aa7a4 100644 --- a/hosts/picard/default.nix +++ b/hosts/picard/default.nix @@ -116,31 +116,21 @@ "i2c-dev" # needed? ]; - # https://github.com/NixOS/nixpkgs/issues/328909 boot.extraModulePackages = [ - # (config.boot.kernelPackages.ddcci-driver.overrideAttrs (old: { - # patches = [ ]; - # src = pkgs.fetchFromGitLab { - # owner = "${old.pname}-linux"; - # repo = "${old.pname}-linux"; - # rev = "7853cbfc28bc62e87db79f612568b25315397dd0"; - # hash = "sha256-QImfvYzMqyrRGyrS6I7ERYmteaTijd8ZRnC6+bA9OyM="; - # }; - # })) config.boot.kernelPackages.ddcci-driver ]; - # systemd.services.ddcci = { - # script = '' - # echo 'ddcci 0x37' > /sys/bus/i2c/devices/i2c-2/new_device - # ''; - # wantedBy = [ "graphical.target" ]; - # restartIfChanged = false; - # serviceConfig = { - # Type = "oneshot"; - # RemainAfterExit = true; - # }; - # }; + systemd.services.ddcci = { + script = '' + echo 'ddcci 0x37' > /sys/bus/i2c/devices/i2c-2/new_device + ''; + wantedBy = [ "graphical.target" ]; + restartIfChanged = false; + serviceConfig = { + Type = "oneshot"; + RemainAfterExit = true; + }; + }; boot.loader.efi.canTouchEfiVariables = true; boot.loader.systemd-boot = { From f9e5be5864648bdfd8ec149509d7a1b294f730f0 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 6 Mar 2025 13:05:27 +0100 Subject: [PATCH 305/492] Fix `magit-delta` build --- packages/emacs/packages.nix | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/packages/emacs/packages.nix b/packages/emacs/packages.nix index 74b0068..952d7c2 100644 --- a/packages/emacs/packages.nix +++ b/packages/emacs/packages.nix @@ -148,7 +148,17 @@ let embark embark-consult magit - magit-delta + (magit-delta.override (old: { + # FIXME why is this needed? + melpaBuild = + args: + old.melpaBuild ( + args + // { + packageRequires = (args.packageRequires or [ ]) ++ [ dash ]; + } + ); + })) magit-todos difftastic with-editor From 9d6d17f2cf71c387c80af1160f0cc619e83114e5 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 6 Mar 2025 13:05:38 +0100 Subject: [PATCH 306/492] Add `org-super-agenda` --- packages/emacs/packages.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/emacs/packages.nix b/packages/emacs/packages.nix index 952d7c2..f726e67 100644 --- a/packages/emacs/packages.nix +++ b/packages/emacs/packages.nix @@ -205,6 +205,7 @@ let aggressive-indent mixed-pitch visual-replace + org-super-agenda # org-re-reveal # FIXME very not nice hash mismatch when building ] ) From 75ab6534516f35c7228ef51b0413bce781df8b19 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 6 Mar 2025 13:05:46 +0100 Subject: [PATCH 307/492] Change syncthing id for `sisko` --- modules/syncthing/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/syncthing/default.nix b/modules/syncthing/default.nix index b1b9857..2b2d607 100644 --- a/modules/syncthing/default.nix +++ b/modules/syncthing/default.nix @@ -20,7 +20,7 @@ ]; }; sisko = { - id = "TOC7QXZ-JLB4LYP-VNIJAV5-DCKVGFN-UE45SPX-PPFJHSG-O3UHFCK-2PEMAQ6"; + id = "QE6V7PR-VHMAHHS-GHD4ZI3-IBB7FEM-M6EQZBX-YFCWDAK-YCYL6VO-NNRMXQK"; addresses = [ "tcp://sisko.fleet" ]; From ff47e7ba4bea433090087ae2ed01801136b454a8 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 6 Mar 2025 13:05:59 +0100 Subject: [PATCH 308/492] Refactor --- modules/pipewire/default.nix | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/modules/pipewire/default.nix b/modules/pipewire/default.nix index 3e324a1..51d78cf 100644 --- a/modules/pipewire/default.nix +++ b/modules/pipewire/default.nix @@ -1,6 +1,11 @@ { lib, ... }: { - services.pipewire.enable = true; + services.pipewire = { + enable = true; + alsa.enable = true; + pulse.enable = true; + jack.enable = true; + }; services.pulseaudio = { enable = false; From 3c12cbec24e3c04346783d95239d10e77ac603a2 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 6 Mar 2025 13:06:09 +0100 Subject: [PATCH 309/492] Comment out unsuded WMs --- modules/greetd/default.nix | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/modules/greetd/default.nix b/modules/greetd/default.nix index 2f9707e..57b1acb 100644 --- a/modules/greetd/default.nix +++ b/modules/greetd/default.nix @@ -5,24 +5,24 @@ }: let sessions = builtins.concatStringsSep ":" [ - (pkgs.writeTextFile { - name = "xorg-session.desktop"; - destination = "/hyprland-session.desktop"; - text = '' - [Desktop Entry] - Name=Hyprland - Exec=Hyprland - ''; - }) - (pkgs.writeTextFile { - name = "xorg-session.desktop"; - destination = "/cosmic-session.desktop"; - text = '' - [Desktop Entry] - Name=Cosmic - Exec=cosmic-session - ''; - }) + # (pkgs.writeTextFile { + # name = "xorg-session.desktop"; + # destination = "/hyprland-session.desktop"; + # text = '' + # [Desktop Entry] + # Name=Hyprland + # Exec=Hyprland + # ''; + # }) + # (pkgs.writeTextFile { + # name = "xorg-session.desktop"; + # destination = "/cosmic-session.desktop"; + # text = '' + # [Desktop Entry] + # Name=Cosmic + # Exec=cosmic-session + # ''; + # }) (pkgs.writeTextFile { name = "xorg-session.desktop"; destination = "/niri-session.desktop"; From d5a1912ced5a5b89df0d6aa634f2d1a8a7a26b6b Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 6 Mar 2025 13:06:24 +0100 Subject: [PATCH 310/492] Re-enable personal Matrix home server --- hosts/sisko/default.nix | 1 + modules/cloudflare-dyndns/default.nix | 1 + modules/matrix/default.nix | 56 +++++++++++++-------------- 3 files changed, 30 insertions(+), 28 deletions(-) diff --git a/hosts/sisko/default.nix b/hosts/sisko/default.nix index e69404e..d15f43a 100644 --- a/hosts/sisko/default.nix +++ b/hosts/sisko/default.nix @@ -33,6 +33,7 @@ "atticd" "jellyfin" "firefly" + "matrix" ] ++ [ ./disko.nix diff --git a/modules/cloudflare-dyndns/default.nix b/modules/cloudflare-dyndns/default.nix index 77f1e46..071a22b 100644 --- a/modules/cloudflare-dyndns/default.nix +++ b/modules/cloudflare-dyndns/default.nix @@ -17,6 +17,7 @@ "jelly.aciceri.dev" "firefly.aciceri.dev" "import.firefly.aciceri.dev" + "matrix.aciceri.dev" ]; apiTokenFile = config.age.secrets.cloudflare-dyndns-api-token.path; }; diff --git a/modules/matrix/default.nix b/modules/matrix/default.nix index c7a2741..c7d115b 100644 --- a/modules/matrix/default.nix +++ b/modules/matrix/default.nix @@ -7,7 +7,7 @@ let clientConfig = { "m.homeserver".base_url = "https://matrix.aciceri.dev"; - "org.matrix.msc3575.proxy".url = "https://syncv3.matrix.aciceri.dev"; + # "org.matrix.msc3575.proxy".url = "https://syncv3.matrix.aciceri.dev"; }; serverConfig."m.server" = "matrix.aciceri.dev:443"; mkWellKnown = data: '' @@ -38,13 +38,13 @@ in services.postgresql = { enable = true; - initialScript = pkgs.writeText "synapse-init.sql" '' - CREATE ROLE "matrix-synapse" WITH LOGIN PASSWORD 'synapse'; - CREATE DATABASE "matrix-synapse" WITH OWNER "matrix-synapse" - TEMPLATE template0 - LC_COLLATE = "C" - LC_CTYPE = "C"; - ''; + # initialScript = pkgs.writeText "synapse-init.sql" '' + # CREATE ROLE "matrix-synapse" WITH LOGIN PASSWORD 'synapse'; + # CREATE DATABASE "matrix-synapse" WITH OWNER "matrix-synapse" + # TEMPLATE template0 + # LC_COLLATE = "C" + # LC_CTYPE = "C"; + # ''; }; systemd.tmpfiles.rules = [ @@ -80,27 +80,27 @@ in extraConfigFiles = [ config.age.secrets.matrix-registration-shared-secret.path ]; }; - backup.paths = [ - config.services.matrix-synapse.dataDir - "/var/backup/postgresql/matrix-synapse.sql.gz" - ]; + # backup.paths = [ + # config.services.matrix-synapse.dataDir + # "/var/backup/postgresql/matrix-synapse.sql.gz" + # ]; - services.postgresqlBackup = { - enable = true; - databases = [ "matrix-synapse" ]; - }; + # services.postgresqlBackup = { + # enable = true; + # databases = [ "matrix-synapse" ]; + # }; - services.matrix-sliding-sync = { - enable = true; - environmentFile = config.age.secrets.matrix-sliding-sync-secret.path; - settings = { - SYNCV3_SERVER = "http://localhost:8008"; - }; - }; + # services.matrix-sliding-sync = { + # enable = true; + # environmentFile = config.age.secrets.matrix-sliding-sync-secret.path; + # settings = { + # SYNCV3_SERVER = "http://localhost:8008"; + # }; + # }; - services.nginx.virtualHosts."syncv3.matrix.aciceri.dev" = { - enableACME = true; - forceSSL = true; - locations."/".proxyPass = config.services.matrix-sliding-sync.settings.SYNCV3_SERVER; - }; + # services.nginx.virtualHosts."syncv3.matrix.aciceri.dev" = { + # enableACME = true; + # forceSSL = true; + # locations."/".proxyPass = config.services.matrix-sliding-sync.settings.SYNCV3_SERVER; + # }; } From 25ce4955993774dfe0609c1118eed3d4857aeb9f Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 6 Mar 2025 13:07:03 +0100 Subject: [PATCH 311/492] Use `pantalaimon` --- hmModules/pantalaimon/default.nix | 18 ++++++++++++++++-- hosts/default.nix | 1 + hosts/picard/default.nix | 1 + 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/hmModules/pantalaimon/default.nix b/hmModules/pantalaimon/default.nix index 2c0a520..a6f2b8b 100644 --- a/hmModules/pantalaimon/default.nix +++ b/hmModules/pantalaimon/default.nix @@ -1,13 +1,27 @@ +{ pkgs, lib, ... }: { services.pantalaimon = { enable = true; + package = pkgs.pantalaimon.overrideAttrs { + pytestCheckPhase = "echo skip pytest"; + }; settings = { + Default = { + LogLevel = "Debug"; + SSL = true; + }; local-matrix = { - Homeserver = "https://nixos.dev"; - ListenAddress = "127.0.0.1"; + Homeserver = "https://matrix.aciceri.dev"; + # Homeserver = "https://matrix.nixos.dev/_matrix/client"; + # Homeserver = "https://matrix.nixos.dev"; + ListenAddress = "localhost"; ListenPort = 8008; + # SSL = false; + UseKeyring = false; + # IgnoreVerification = true; }; }; }; + systemd.user.services.pantalaimon.Unit.Requires = [ "dbus.socket" ]; } diff --git a/hosts/default.nix b/hosts/default.nix index b9d2db1..c17d45f 100644 --- a/hosts/default.nix +++ b/hosts/default.nix @@ -117,6 +117,7 @@ group = "forgejo"; }; "firefly-app-key".owner = "firefly-iii"; + "matrix-registration-shared-secret".owner = "matrix-synapse"; }; }; diff --git a/hosts/picard/default.nix b/hosts/picard/default.nix index 50aa7a4..be6c8b7 100644 --- a/hosts/picard/default.nix +++ b/hosts/picard/default.nix @@ -95,6 +95,7 @@ "discord" "ib-tws" "zoom" + "pantalaimon" ]; extraGroups = [ "plugdev" ]; backupPaths = [ ]; From c7dce3ab4c3dafc3841ba4da6458103426d4f17e Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 6 Mar 2025 13:07:22 +0100 Subject: [PATCH 312/492] Prepare for next `niri` release --- hmModules/niri/config.kdl | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/hmModules/niri/config.kdl b/hmModules/niri/config.kdl index d06c32d..09dacf3 100644 --- a/hmModules/niri/config.kdl +++ b/hmModules/niri/config.kdl @@ -222,6 +222,17 @@ layout { // top 64 // bottom 64 } + + // shadow { + // on + // } +} + +layer-rule { + match namespace="^rofi$" + // shadow { + // on + // } } // Add lines like this to spawn processes at startup. From dd900e93773541cb0edefdac4a23d365c7bb16f6 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 6 Mar 2025 13:07:44 +0100 Subject: [PATCH 313/492] Play with org agenda --- hmModules/emacs/init.el | 50 ++++++++++++++++++++++++++++++++++++++--- 1 file changed, 47 insertions(+), 3 deletions(-) diff --git a/hmModules/emacs/init.el b/hmModules/emacs/init.el index a09038d..9987cbf 100644 --- a/hmModules/emacs/init.el +++ b/hmModules/emacs/init.el @@ -733,7 +733,7 @@ :hook ((org-mode . variable-pitch-mode) (org-mode . visual-line-mode) (org-mode . visual-fill-column-mode)) - :custom ((org-log-done 'time) + :custom ((org-log-done nil) (org-return-follows-link t) (org-hide-emphasis-markers t) (visual-fill-column-center-text t) @@ -758,7 +758,6 @@ (org-ellipsis "…") ) :bind (("C-c o l" . org-store-link) - ("C-c o a" . org-agenda) ("C-c o c" . org-capture) ("C-c b o" . org-switchb)) :config @@ -787,6 +786,7 @@ This is meant to be an helper to be called from the window manager." (add-hook 'org-attach-after-change-hook #'ccr/org-attach-save-file-list-to-property)) (use-package org-agenda + :after org-super-agenda :custom (org-agenda-files '("~/org")) (org-agenda-tags-column 0) @@ -797,7 +797,51 @@ This is meant to be an helper to be called from the window manager." " ┄┄┄┄┄ " "┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄")) (org-agenda-current-time-string "◀── now ─────────────────────────────────────────────────") - :bind (("C-c o a" . org-agenda))) + (org-super-agenda-groups + '(;; Each group has an implicit boolean OR operator between its selectors. + (:name "Today" ; Optionally specify section name + :time-grid t ; Items that appear on the time grid + :todo "TODAY") ; Items that have this TODO keyword + (:name "Important" + ;; Single arguments given alone + :tag "bills" + :priority "A") + ;; Set order of multiple groups at once + (:order-multi (2 (:name "Shopping in town" + ;; Boolean AND group matches items that match all subgroups + :and (:tag "shopping" :tag "@town")) + (:name "Food-related" + ;; Multiple args given in list with implicit OR + :tag ("food" "dinner")) + (:name "Personal" + :habit t + :tag "personal") + (:name "Space-related (non-moon-or-planet-related)" + ;; Regexps match case-insensitively on the entire entry + :and (:regexp ("space" "NASA") + ;; Boolean NOT also has implicit OR between selectors + :not (:regexp "moon" :tag "planet"))))) + ;; Groups supply their own section names when none are given + (:todo "WAITING" :order 8) ; Set order of this section + (:todo ("SOMEDAY" "TO-READ" "CHECK" "TO-WATCH" "WATCHING") + ;; Show this group at the end of the agenda (since it has the + ;; highest number). If you specified this group last, items + ;; with these todo keywords that e.g. have priority A would be + ;; displayed in that group instead, because items are grouped + ;; out in the order the groups are listed. + :order 9) + (:priority<= "B" + ;; Show this section after "Today" and "Important", because + ;; their order is unspecified, defaulting to 0. Sections + ;; are displayed lowest-number-first. + :order 1) + ;; After the last group, the agenda will display items that didn't + ;; match any of these groups, with the default order position of 99 + )) + :bind (("C-c o a" . org-agenda)) + :config + (org-super-agenda-mode) + ) (use-package org-modern :after org From 1ba8ff0100652ef1ae17ff90119d83325760efd3 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 6 Mar 2025 13:07:53 +0100 Subject: [PATCH 314/492] Lock nixpkgs commit --- flake.lock | 311 +++++++++++++++++++++++++++++++++++++++++------------ flake.nix | 2 +- 2 files changed, 245 insertions(+), 68 deletions(-) diff --git a/flake.lock b/flake.lock index a90094c..b3a803e 100644 --- a/flake.lock +++ b/flake.lock @@ -8,11 +8,11 @@ "systems": "systems" }, "locked": { - "lastModified": 1736955230, - "narHash": "sha256-uenf8fv2eG5bKM8C/UvFaiJMZ4IpUFaQxk9OH5t/1gA=", + "lastModified": 1723293904, + "narHash": "sha256-b+uqzj+Wa6xgMS9aNbX4I+sXeb5biPDi39VgvSFqFvU=", "owner": "ryantm", "repo": "agenix", - "rev": "e600439ec4c273cf11e06fe4d9d906fb98fa097c", + "rev": "f6291c5935fdc4e0bef208cfc0dcab7e3f7a1c41", "type": "github" }, "original": { @@ -23,14 +23,20 @@ }, "catppuccin": { "inputs": { - "nixpkgs": "nixpkgs_2" + "catppuccin-v1_1": "catppuccin-v1_1", + "catppuccin-v1_2": "catppuccin-v1_2", + "home-manager": "home-manager_2", + "home-manager-stable": "home-manager-stable", + "nixpkgs": "nixpkgs_2", + "nixpkgs-stable": "nixpkgs-stable", + "nuscht-search": "nuscht-search" }, "locked": { - "lastModified": 1739934729, - "narHash": "sha256-PcrLk10meIJICzUJqtCMOJxoITzbH52fZg2XAB7SSsM=", + "lastModified": 1736069220, + "narHash": "sha256-76MaB3COao55nlhWmSmq9PKgu2iGIs54C1cAE0E5J6Y=", "owner": "catppuccin", "repo": "nix", - "rev": "b1ff2a638afa827f1473498190a2c1cae1cf41cf", + "rev": "8eada392fd6571a747e1c5fc358dd61c14c8704e", "type": "github" }, "original": { @@ -39,6 +45,34 @@ "type": "github" } }, + "catppuccin-v1_1": { + "locked": { + "lastModified": 1734055249, + "narHash": "sha256-pCWJgwo77KD7EJpwynwKrWPZ//dwypHq2TfdzZWqK68=", + "rev": "7221d6ca17ac36ed20588e1c3a80177ac5843fa7", + "revCount": 326, + "type": "tarball", + "url": "https://api.flakehub.com/f/pinned/catppuccin/nix/1.1.1/0193bdc0-b045-7eed-bbec-95611a8ecdf5/source.tar.gz" + }, + "original": { + "type": "tarball", + "url": "https://flakehub.com/f/catppuccin/nix/1.1.%2A.tar.gz" + } + }, + "catppuccin-v1_2": { + "locked": { + "lastModified": 1734728407, + "narHash": "sha256-Let3uJo4YDyfqbqaw66dpZxhJB2TrDyZWSFd5rpPLJA=", + "rev": "23ee86dbf4ed347878115a78971d43025362fab1", + "revCount": 341, + "type": "tarball", + "url": "https://api.flakehub.com/f/pinned/catppuccin/nix/1.2.0/0193e5e0-33b7-7149-a362-bfe56b20f64e/source.tar.gz" + }, + "original": { + "type": "tarball", + "url": "https://flakehub.com/f/catppuccin/nix/1.2.%2A.tar.gz" + } + }, "crane": { "locked": { "lastModified": 1731098351, @@ -83,11 +117,11 @@ ] }, "locked": { - "lastModified": 1740485968, - "narHash": "sha256-WK+PZHbfDjLyveXAxpnrfagiFgZWaTJglewBWniTn2Y=", + "lastModified": 1736711425, + "narHash": "sha256-8hKhPQuMtXfJi+4lPvw3FBk/zSJVHeb726Zo0uF1PP8=", "owner": "nix-community", "repo": "disko", - "rev": "19c1140419c4f1cdf88ad4c1cfb6605597628940", + "rev": "f720e64ec37fa16ebba6354eadf310f81555cc07", "type": "github" }, "original": { @@ -119,14 +153,14 @@ "emacs-overlay": { "inputs": { "nixpkgs": "nixpkgs_4", - "nixpkgs-stable": "nixpkgs-stable" + "nixpkgs-stable": "nixpkgs-stable_2" }, "locked": { - "lastModified": 1740622367, - "narHash": "sha256-7TpBfGb24DrQrdW94T5x0vHN0GF2I50fkP+YX5r6JqE=", + "lastModified": 1736759802, + "narHash": "sha256-XCaIRTC+YlL5nRi9WJHeftyfw2Z0YXwwzEmHThGuR3Q=", "owner": "nix-community", "repo": "emacs-overlay", - "rev": "ee8442abce734e9a1d0e5824818062bcbf358e73", + "rev": "244a2ab1459c72bac32a2db088549f8bc6d7a836", "type": "github" }, "original": { @@ -226,6 +260,24 @@ "inputs": { "systems": "systems_3" }, + "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" + } + }, + "flake-utils_3": { + "inputs": { + "systems": "systems_4" + }, "locked": { "lastModified": 1681202837, "narHash": "sha256-H+Rh19JDwRtpVPAWp64F+rlEtxUWBAQW28eAi3SRSzg=", @@ -245,11 +297,11 @@ "nixpkgs-lib": "nixpkgs-lib" }, "locked": { - "lastModified": 1738453229, - "narHash": "sha256-7H9XgNiGLKN1G1CgRh0vUL4AheZSYzPm+zmZ7vxbJdo=", + "lastModified": 1736143030, + "narHash": "sha256-+hu54pAoLDEZT9pjHlqL9DNzWz0NbUn8NEAHP7PQPzU=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "32ea77a06711b758da0ad9bd6a844c5740a87abd", + "rev": "b905f6fc23a9051a6e1b741e1438dbfc0634c6de", "type": "github" }, "original": { @@ -282,11 +334,11 @@ ] }, "locked": { - "lastModified": 1737465171, - "narHash": "sha256-R10v2hoJRLq8jcL4syVFag7nIGE7m13qO48wRIukWNg=", + "lastModified": 1735882644, + "narHash": "sha256-3FZAG+pGt3OElQjesCAWeMkQ7C/nB1oTHLRQ8ceP110=", "owner": "cachix", "repo": "git-hooks.nix", - "rev": "9364dc02281ce2d37a1f55b6e51f7c0f65a75f17", + "rev": "a5a961387e75ae44cc20f0a57ae463da5e959656", "type": "github" }, "original": { @@ -359,7 +411,50 @@ "type": "github" } }, + "home-manager-stable": { + "inputs": { + "nixpkgs": [ + "catppuccin", + "nixpkgs-stable" + ] + }, + "locked": { + "lastModified": 1734366194, + "narHash": "sha256-vykpJ1xsdkv0j8WOVXrRFHUAdp9NXHpxdnn1F4pYgSw=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "80b0fdf483c5d1cb75aaad909bd390d48673857f", + "type": "github" + }, + "original": { + "owner": "nix-community", + "ref": "release-24.11", + "repo": "home-manager", + "type": "github" + } + }, "home-manager_2": { + "inputs": { + "nixpkgs": [ + "catppuccin", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1734622215, + "narHash": "sha256-OOfI0XhSJGHblfdNDhfnn8QnZxng63rWk9eeJ2tCbiI=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "1395379a7a36e40f2a76e7b9936cc52950baa1be", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "home-manager", + "type": "github" + } + }, + "home-manager_3": { "inputs": { "nixpkgs": [ "nix-on-droid", @@ -387,11 +482,11 @@ ] }, "locked": { - "lastModified": 1740624780, - "narHash": "sha256-8TP61AI3QBQsjzVUQFIV8NoB5nbYfJB3iHczhBikDkU=", + "lastModified": 1736781604, + "narHash": "sha256-nIjcN89nxaI5ZnwU/1gzc3rBVQ/te5sHraYeG4cyJX4=", "owner": "nix-community", "repo": "home-manager", - "rev": "b8869e4ead721bbd4f0d6b927e8395705d4f16e6", + "rev": "9616d81f98032d1ee9bec68ab4b6a8c833add88c", "type": "github" }, "original": { @@ -423,11 +518,11 @@ }, "impermanence": { "locked": { - "lastModified": 1737831083, - "narHash": "sha256-LJggUHbpyeDvNagTUrdhe/pRVp4pnS6wVKALS782gRI=", + "lastModified": 1736688610, + "narHash": "sha256-1Zl9xahw399UiZSJ9Vxs1W4WRFjO1SsNdVZQD4nghz0=", "owner": "nix-community", "repo": "impermanence", - "rev": "4b3e914cdf97a5b536a889e939fb2fd2b043a170", + "rev": "c64bed13b562fc3bb454b48773d4155023ac31b7", "type": "github" }, "original": { @@ -436,6 +531,34 @@ "type": "github" } }, + "ixx": { + "inputs": { + "flake-utils": [ + "catppuccin", + "nuscht-search", + "flake-utils" + ], + "nixpkgs": [ + "catppuccin", + "nuscht-search", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1729958008, + "narHash": "sha256-EiOq8jF4Z/zQe0QYVc3+qSKxRK//CFHMB84aYrYGwEs=", + "owner": "NuschtOS", + "repo": "ixx", + "rev": "9fd01aad037f345350eab2cd45e1946cc66da4eb", + "type": "github" + }, + "original": { + "owner": "NuschtOS", + "ref": "v0.0.6", + "repo": "ixx", + "type": "github" + } + }, "lanzaboote": { "inputs": { "crane": "crane", @@ -448,11 +571,11 @@ "rust-overlay": "rust-overlay" }, "locked": { - "lastModified": 1740440383, - "narHash": "sha256-w8ixbqOGrVWMQZFFs4uAwZpuwuGMzFoKjocMFxTR5Ts=", + "lastModified": 1734994463, + "narHash": "sha256-S9MgfQjNt4J3I7obdLOVY23h+Yl/hnyibwGfOl+1uOE=", "owner": "nix-community", "repo": "lanzaboote", - "rev": "6321bc060d757c137c1fbae2057c7e941483878f", + "rev": "93e6f0d77548be8757c11ebda5c4235ef4f3bc67", "type": "github" }, "original": { @@ -464,11 +587,11 @@ "lix": { "flake": false, "locked": { - "lastModified": 1740629216, - "narHash": "sha256-i6fadzFVD7B8XWXa2ycPoVlpSJ5SeWcZ8LLzfzYedKs=", + "lastModified": 1736680332, + "narHash": "sha256-gwidOezQ6FT5q4GHcpD6y2EwKcrtzjAoxaN/9bTGqQw=", "ref": "refs/heads/main", - "rev": "8082f0b8434a81db309ac8abf1cf32532ba9168e", - "revCount": 17513, + "rev": "38dd196b03f4163ae3bbb2a1910b8f0f141ca0e2", + "revCount": 16610, "type": "git", "url": "https://git@git.lix.systems/lix-project/lix" }, @@ -479,7 +602,7 @@ }, "lix-module": { "inputs": { - "flake-utils": "flake-utils", + "flake-utils": "flake-utils_2", "flakey-profile": "flakey-profile", "lix": [ "lix" @@ -489,11 +612,11 @@ ] }, "locked": { - "lastModified": 1738176840, - "narHash": "sha256-NG3IRvRs3u3btVCN861FqHvgOwqcNT/Oy6PBG86F5/E=", + "lastModified": 1733522213, + "narHash": "sha256-H+Pk19MzvI/TAbXWimUPZAoKkD56OSyxJBm8lVIA5n0=", "ref": "refs/heads/main", - "rev": "621aae0f3cceaffa6d73a4fb0f89c08d338d729e", - "revCount": 133, + "rev": "c374ebf5548c7b6d4bf884369a5b6879cfc916ea", + "revCount": 124, "type": "git", "url": "https://git.lix.systems/lix-project/nixos-module" }, @@ -505,11 +628,11 @@ "mobile-nixos": { "flake": false, "locked": { - "lastModified": 1737346419, - "narHash": "sha256-YHByUFujAnfJJ2JnhHIJyohECr5o0EDmuRdyUcvnZGQ=", + "lastModified": 1736638789, + "narHash": "sha256-pkpOkSUNrSf5DePUtYYFt4wGODhY28RlQ4SIJ1e+15M=", "owner": "NixOS", "repo": "mobile-nixos", - "rev": "1498c4d7fd59026479469efdbfe30c78a7300d89", + "rev": "72a0601f36a1b424e8b72f17ff53509b990ee060", "type": "github" }, "original": { @@ -546,7 +669,7 @@ }, "nix-on-droid": { "inputs": { - "home-manager": "home-manager_2", + "home-manager": "home-manager_3", "nix-formatter-pack": "nix-formatter-pack", "nixpkgs": "nixpkgs_5", "nixpkgs-docs": "nixpkgs-docs", @@ -569,11 +692,11 @@ }, "nixosHardware": { "locked": { - "lastModified": 1740387674, - "narHash": "sha256-pGk/aA0EBvI6o4DeuZsr05Ig/r4uMlSaf5EWUZEWM10=", + "lastModified": 1736441705, + "narHash": "sha256-OL7leZ6KBhcDF3nEKe4aZVfIm6xQpb1Kb+mxySIP93o=", "owner": "NixOS", "repo": "nixos-hardware", - "rev": "d58f642ddb23320965b27beb0beba7236e9117b5", + "rev": "8870dcaff63dfc6647fb10648b827e9d40b0a337", "type": "github" }, "original": { @@ -632,23 +755,23 @@ }, "nixpkgs-lib": { "locked": { - "lastModified": 1738452942, - "narHash": "sha256-vJzFZGaCpnmo7I6i416HaBLpC+hvcURh/BQwROcGIp8=", + "lastModified": 1735774519, + "narHash": "sha256-CewEm1o2eVAnoqb6Ml+Qi9Gg/EfNAxbRx1lANGVyoLI=", "type": "tarball", - "url": "https://github.com/NixOS/nixpkgs/archive/072a6db25e947df2f31aab9eccd0ab75d5b2da11.tar.gz" + "url": "https://github.com/NixOS/nixpkgs/archive/e9b51731911566bbf7e4895475a87fe06961de0b.tar.gz" }, "original": { "type": "tarball", - "url": "https://github.com/NixOS/nixpkgs/archive/072a6db25e947df2f31aab9eccd0ab75d5b2da11.tar.gz" + "url": "https://github.com/NixOS/nixpkgs/archive/e9b51731911566bbf7e4895475a87fe06961de0b.tar.gz" } }, "nixpkgs-stable": { "locked": { - "lastModified": 1740463929, - "narHash": "sha256-4Xhu/3aUdCKeLfdteEHMegx5ooKQvwPHNkOgNCXQrvc=", + "lastModified": 1734600368, + "narHash": "sha256-nbG9TijTMcfr+au7ZVbKpAhMJzzE2nQBYmRvSdXUD8g=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "5d7db4668d7a0c6cc5fc8cf6ef33b008b2b1ed8b", + "rev": "b47fd6fa00c6afca88b8ee46cfdb00e104f50bca", "type": "github" }, "original": { @@ -659,6 +782,22 @@ } }, "nixpkgs-stable_2": { + "locked": { + "lastModified": 1736549401, + "narHash": "sha256-ibkQrMHxF/7TqAYcQE+tOnIsSEzXmMegzyBWza6uHKM=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "1dab772dd4a68a7bba5d9460685547ff8e17d899", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-24.11", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-stable_3": { "locked": { "lastModified": 1730741070, "narHash": "sha256-edm8WG19kWozJ/GqyYx2VjW99EdhjKwbY3ZwdlPAAlo=", @@ -676,11 +815,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1736012469, - "narHash": "sha256-/qlNWm/IEVVH7GfgAIyP6EsVZI6zjAx1cV5zNyrs+rI=", + "lastModified": 1734424634, + "narHash": "sha256-cHar1vqHOOyC7f1+tVycPoWTfKIaqkoe1Q6TnKzuti4=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "8f3e1f807051e32d8c95cd12b9b421623850a34d", + "rev": "d3c42f187194c26d9f0309a8ecc469d6c878ce33", "type": "github" }, "original": { @@ -708,11 +847,11 @@ }, "nixpkgs_4": { "locked": { - "lastModified": 1740367490, - "narHash": "sha256-WGaHVAjcrv+Cun7zPlI41SerRtfknGQap281+AakSAw=", + "lastModified": 1736523798, + "narHash": "sha256-Xb8mke6UCYjge9kPR9o4P1nVrhk7QBbKv3xQ9cj7h2s=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "0196c0175e9191c474c26ab5548db27ef5d34b05", + "rev": "130595eba61081acde9001f43de3248d8888ac4a", "type": "github" }, "original": { @@ -739,17 +878,17 @@ }, "nixpkgs_6": { "locked": { - "lastModified": 1740367490, - "narHash": "sha256-WGaHVAjcrv+Cun7zPlI41SerRtfknGQap281+AakSAw=", + "lastModified": 1736701207, + "narHash": "sha256-jG/+MvjVY7SlTakzZ2fJ5dC3V1PrKKrUEOEE30jrOKA=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "0196c0175e9191c474c26ab5548db27ef5d34b05", + "rev": "ed4a395ea001367c1f13d34b1e01aa10290f67d6", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixos-unstable", "repo": "nixpkgs", + "rev": "ed4a395ea001367c1f13d34b1e01aa10290f67d6", "type": "github" } }, @@ -805,6 +944,29 @@ "type": "gitlab" } }, + "nuscht-search": { + "inputs": { + "flake-utils": "flake-utils", + "ixx": "ixx", + "nixpkgs": [ + "catppuccin", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1733773348, + "narHash": "sha256-Y47y+LesOCkJaLvj+dI/Oa6FAKj/T9sKVKDXLNsViPw=", + "owner": "NuschtOS", + "repo": "search", + "rev": "3051be7f403bff1d1d380e4612f0c70675b44fc9", + "type": "github" + }, + "original": { + "owner": "NuschtOS", + "repo": "search", + "type": "github" + } + }, "pre-commit-hooks-nix": { "inputs": { "flake-compat": [ @@ -816,7 +978,7 @@ "lanzaboote", "nixpkgs" ], - "nixpkgs-stable": "nixpkgs-stable_2" + "nixpkgs-stable": "nixpkgs-stable_3" }, "locked": { "lastModified": 1731363552, @@ -999,6 +1161,21 @@ "type": "github" } }, + "systems_4": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, "treefmt-nix": { "inputs": { "nixpkgs": [ @@ -1006,11 +1183,11 @@ ] }, "locked": { - "lastModified": 1739829690, - "narHash": "sha256-mL1szCeIsjh6Khn3nH2cYtwO5YXG6gBiTw1A30iGeDU=", + "lastModified": 1736154270, + "narHash": "sha256-p2r8xhQZ3TYIEKBoiEhllKWQqWNJNoT9v64Vmg4q8Zw=", "owner": "numtide", "repo": "treefmt-nix", - "rev": "3d0579f5cc93436052d94b73925b48973a104204", + "rev": "13c913f5deb3a5c08bb810efd89dc8cb24dd968b", "type": "github" }, "original": { @@ -1021,7 +1198,7 @@ }, "vscode-server": { "inputs": { - "flake-utils": "flake-utils_2", + "flake-utils": "flake-utils_3", "nixpkgs": "nixpkgs_7" }, "locked": { diff --git a/flake.nix b/flake.nix index 4b6946e..847a775 100644 --- a/flake.nix +++ b/flake.nix @@ -3,7 +3,7 @@ inputs = { flakeParts.url = "github:hercules-ci/flake-parts"; - nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; + nixpkgs.url = "github:NixOS/nixpkgs/ed4a395ea001367c1f13d34b1e01aa10290f67d6"; # FIXME update (check if screen sharing works!) nixosHardware.url = "github:NixOS/nixos-hardware"; homeManager = { url = "github:nix-community/home-manager"; From f819c3bad628278e1aba048b48d467777b507ccc Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 6 Mar 2025 13:08:04 +0100 Subject: [PATCH 315/492] `gnome-keyring` portal --- modules/xdg/default.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/modules/xdg/default.nix b/modules/xdg/default.nix index 078ee8e..04c145e 100644 --- a/modules/xdg/default.nix +++ b/modules/xdg/default.nix @@ -10,6 +10,8 @@ xdg-desktop-portal-gnome xdg-desktop-portal kdePackages.xdg-desktop-portal-kde + libsForQt5.xdg-desktop-portal-kde + gnome-keyring ]; extraPortals = with pkgs; [ xdg-desktop-portal-wlr @@ -18,6 +20,7 @@ xdg-desktop-portal-gnome xdg-desktop-portal kdePackages.xdg-desktop-portal-kde + gnome-keyring ]; xdgOpenUsePortal = true; wlr.enable = true; From 82ac0622aa2f45ca6f57db75144dcefa99bc28cd Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 6 Mar 2025 13:08:29 +0100 Subject: [PATCH 316/492] Various --- modules/common/default.nix | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/modules/common/default.nix b/modules/common/default.nix index c802ddd..88bd936 100644 --- a/modules/common/default.nix +++ b/modules/common/default.nix @@ -1,6 +1,7 @@ { lib, fleetModules, + pkgs, ... }: { @@ -15,4 +16,12 @@ users.mutableUsers = false; i18n.defaultLocale = "en_US.UTF-8"; nixpkgs.config.allowUnfree = true; # Forgive me Mr. Stallman :( + system.switch.enableNg = true; + + environment.systemPackages = [ pkgs.btop ]; + + # FIXME not the best place + nixpkgs.config.permittedInsecurePackages = [ + "olm-3.2.16" + ]; } From db2143289c05438491a581cf61e433a0a6309abb Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Mon, 10 Mar 2025 19:02:08 +0100 Subject: [PATCH 317/492] Package `ffmpeg-rockchip` --- packages/ffmpeg-rockchip/default.nix | 149 +++++++++++++++++++++++++++ 1 file changed, 149 insertions(+) create mode 100644 packages/ffmpeg-rockchip/default.nix diff --git a/packages/ffmpeg-rockchip/default.nix b/packages/ffmpeg-rockchip/default.nix new file mode 100644 index 0000000..ed2f637 --- /dev/null +++ b/packages/ffmpeg-rockchip/default.nix @@ -0,0 +1,149 @@ +# Stolen from https://github.com/nyanmisaka/ffmpeg-rockchip + +{ + ffmpeg-full, + fetchFromGitHub, + lib, + fetchpatch2, + gmp, + amf-headers, + libiec61883, + libavc1394, + meson, + ninja, + stdenv, + fetchurl, + cmake, + ... +}: + +let + ffmpeg-rockchip-version = "7.1"; + + rga_commit = "d7a0a485ed6c201f882c20b3a8881e801f131385"; + librga-multi = stdenv.mkDerivation { + pname = "librga-multi"; + version = "1.10.0"; + + src = fetchurl { + url = "https://github.com/JeffyCN/mirrors/archive/${rga_commit}.tar.gz"; + hash = "sha256-WjNxVfLVW8axEvNmIJ0+OCeboG4LiGWwJy6fW5Mkm5Y="; + }; + + # In Nixpkgs, meson comes with a setup hook that overrides the configure, check, and install phases. + # https://nixos.org/manual/nixpkgs/stable/#meson + nativeBuildInputs = [ + meson + ninja + ]; + + patches = [ + (fetchpatch2 { + name = "normalrga-cpp-add-10b-compact-endian-mode.patch"; + url = "https://raw.githubusercontent.com/7Ji-PKGBUILDs/librga-multi/615fb730b7656ad4a0cb169bfa9a52336820f99f/normalrga-cpp-add-10b-compact-endian-mode.patch"; + hash = "sha256-JvKZCBjWtkEsfx1Xsnysw9PjC3/60f1ni10tmR8fTHQ="; + }) + ]; + + meta = with lib; { + description = "Rockchip RGA User-Space Library"; + license = licenses.asl20; + }; + }; + + mpp = stdenv.mkDerivation { + pname = "mpp"; + version = "1.0.8"; + + src = fetchFromGitHub { + owner = "rockchip-linux"; + repo = "mpp"; + rev = "1.0.8"; + hash = "sha256-y1vWGz7VjwL02klPQWwoIh5ExpvS/vsDUHcMtMznVcI="; + }; + + nativeBuildInputs = [ cmake ]; + + configurePhase = '' + cmake -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$out + ''; + + buildPhase = '' + cmake --build build + ''; + + installPhase = '' + cmake --install build + ''; + + meta = with lib; { + description = "Media Process Platform (MPP)"; + homepage = "https://github.com/rockchip-linux/mpp"; + license = licenses.asl20; + }; + }; +in + +(ffmpeg-full.override { + version = ffmpeg-rockchip-version; # Important! This sets the ABI. + source = fetchFromGitHub { + owner = "nyanmisaka"; + repo = "ffmpeg-rockchip"; + rev = "f5c7e0d63b52b4526b4251e2fcb2071f73367ed6"; + hash = "sha256-JM/YCvXS49jYz4oF0Ux/aGzrRzKHrD8N/Xm99gXLcqg="; + }; + withVulkan = false; +}).overrideAttrs + (old: { + pname = "ffmpeg-rockchip"; + + patches = [ ]; + # patches = old.patches ++ [ + # (fetchpatch2 + # { + # name = "add-av_stream_get_first_dts-for-chromium"; + # url = "https://raw.githubusercontent.com/7Ji-PKGBUILDs/ffmpeg-mpp-git/b32080c1992313df0e543440c6d70d351120fa36/add-av_stream_get_first_dts-for-chromium.patch"; + # hash = "sha256-DbH6ieJwDwTjKOdQ04xvRcSLeeLP2Z2qEmqeo8HsPr4="; + # } + # ) + # (fetchpatch2 + # { + # name = "flvdec-handle-unknown"; + # url = "https://raw.githubusercontent.com/obsproject/obs-deps/faa110d336922831b5cdc261a9559e3a2dd5db3c/deps.ffmpeg/patches/FFmpeg/0001-flvdec-handle-unknown.patch"; + # hash = "sha256-WlGF9Uy89GcnY8zmh9G23bZiVJtpY32oJiec5Hl/V+8="; + # } + # ) + # (fetchpatch2 + # { + # name = "libaomenc-presets"; + # url = "https://raw.githubusercontent.com/obsproject/obs-deps/faa110d336922831b5cdc261a9559e3a2dd5db3c/deps.ffmpeg/patches/FFmpeg/0002-libaomenc-presets.patch"; + # hash = "sha256-1fFBDvsx/jHo6QXsPxDMt4Qd1VlMs1kcOyBedyMv0YM="; + # } + # ) + # ]; + + configureFlags = old.configureFlags ++ [ + "--extra-version=rockchip" + "--enable-gpl" + "--enable-version3" + "--enable-libdrm" + "--enable-rkmpp" + "--enable-rkrga" + ]; + + doCheck = false; # TODO remove (used to get faster builds) + + buildInputs = old.buildInputs ++ [ + gmp + amf-headers + libiec61883 + libavc1394 + mpp + librga-multi + ]; + + meta = with lib; { + homepage = "https://github.com/nyanmisaka/ffmpeg-rockchip"; + license = licenses.gpl3; + }; + }) From 54e15511e8ce9908ec8e5924d700b5b3c6e0a95f Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Mon, 10 Mar 2025 19:02:19 +0100 Subject: [PATCH 318/492] Package `mali-panthor-g610-firmware` --- .../mali-panthor-g610-firmware/default.nix | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 packages/mali-panthor-g610-firmware/default.nix diff --git a/packages/mali-panthor-g610-firmware/default.nix b/packages/mali-panthor-g610-firmware/default.nix new file mode 100644 index 0000000..c9b99b2 --- /dev/null +++ b/packages/mali-panthor-g610-firmware/default.nix @@ -0,0 +1,32 @@ +# Stolen from https://github.com/qbisi/nixos-rockchip + +{ + stdenv, + fetchurl, + ... +}: +stdenv.mkDerivation { + pname = "mali-panthor-g610-firmware"; + version = "arch10_8"; + + src = fetchurl { + url = "https://gitlab.com/firefly-linux/external/libmali/-/raw/firefly/firmware/g610/mali_csffw.bin"; + hash = "sha256-56C0b9Z3wy4IwLiBf9HFY8OsoBPax04XaR83O5cNu6s="; + }; + + dontUnpack = true; + + dontPatch = true; + + dontConfigure = true; + + dontBuild = true; + + installPhase = '' + install -Dm644 $src $out/lib/firmware/arm/mali/arch10.8/mali_csffw.bin + ''; + + passthru = { + compressFirmware = false; + }; +} From 9d8b575f3acc5b3df25b89701ba3198370c29c68 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 14 Mar 2025 10:00:17 +0100 Subject: [PATCH 319/492] Disable transmission queue --- modules/transmission/default.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/modules/transmission/default.nix b/modules/transmission/default.nix index b049158..0a7b3fd 100644 --- a/modules/transmission/default.nix +++ b/modules/transmission/default.nix @@ -8,6 +8,8 @@ download-dir = "/mnt/hd/torrent"; incomplete-dir = "/mnt/hd/torrent/.incomplete"; + download-queue-enabled = false; + rpc-bind-address = "0.0.0.0"; peer-port = 51413; # Forward both TCP and UDP on router traffic from router rpc-whitelist-enabled = false; From 5fb4292e1cb2feb279f82e2ba09944d82f51c094 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 14 Mar 2025 10:00:25 +0100 Subject: [PATCH 320/492] Enable `radarr` on `sisko` --- hosts/sisko/default.nix | 1 + modules/radarr/default.nix | 5 +++++ 2 files changed, 6 insertions(+) create mode 100644 modules/radarr/default.nix diff --git a/hosts/sisko/default.nix b/hosts/sisko/default.nix index d15f43a..8bc8e4c 100644 --- a/hosts/sisko/default.nix +++ b/hosts/sisko/default.nix @@ -34,6 +34,7 @@ "jellyfin" "firefly" "matrix" + "radarr" ] ++ [ ./disko.nix diff --git a/modules/radarr/default.nix b/modules/radarr/default.nix new file mode 100644 index 0000000..321b7a5 --- /dev/null +++ b/modules/radarr/default.nix @@ -0,0 +1,5 @@ +{ + services.radarr = { + enable = true; + }; +} From 7717317840fe7b4f69492dbadfe259f4aa11bc35 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 14 Mar 2025 15:54:48 +0100 Subject: [PATCH 321/492] Enable zerotier --- hosts/kirk/default.nix | 1 + hosts/picard/default.nix | 1 + hosts/sisko/default.nix | 1 + modules/zerotier/default.nix | 6 ++++++ 4 files changed, 9 insertions(+) create mode 100644 modules/zerotier/default.nix diff --git a/hosts/kirk/default.nix b/hosts/kirk/default.nix index 0835424..ec5d0df 100644 --- a/hosts/kirk/default.nix +++ b/hosts/kirk/default.nix @@ -35,6 +35,7 @@ "prometheus-exporters" "promtail" "syncthing" + "zerotier" ] ++ [ ./disko.nix ]; diff --git a/hosts/picard/default.nix b/hosts/picard/default.nix index be6c8b7..a63fd60 100644 --- a/hosts/picard/default.nix +++ b/hosts/picard/default.nix @@ -41,6 +41,7 @@ "adb" "prometheus-exporters" "promtail" + "zerotier" ] ++ [ ./disko.nix ]; diff --git a/hosts/sisko/default.nix b/hosts/sisko/default.nix index 8bc8e4c..456bfca 100644 --- a/hosts/sisko/default.nix +++ b/hosts/sisko/default.nix @@ -35,6 +35,7 @@ "firefly" "matrix" "radarr" + "zerotier" ] ++ [ ./disko.nix diff --git a/modules/zerotier/default.nix b/modules/zerotier/default.nix new file mode 100644 index 0000000..febcee3 --- /dev/null +++ b/modules/zerotier/default.nix @@ -0,0 +1,6 @@ +{ + services.zerotierone = { + enable = true; + joinNetworks = [ "632ea29085af0cb4" ]; + }; +} From fb87eabdce7f45e5189ff6ff3c0781682797664b Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 14 Mar 2025 15:55:58 +0100 Subject: [PATCH 322/492] New cloudflare token --- secrets/cloudflare-dyndns-api-token.age | 43 +++++++++---------------- 1 file changed, 15 insertions(+), 28 deletions(-) diff --git a/secrets/cloudflare-dyndns-api-token.age b/secrets/cloudflare-dyndns-api-token.age index e0ec94d..eb27ad9 100644 --- a/secrets/cloudflare-dyndns-api-token.age +++ b/secrets/cloudflare-dyndns-api-token.age @@ -1,30 +1,17 @@ age-encryption.org/v1 -> ssh-rsa /AagBw -K5GB/dRGaRFYq0dxuUFPubpdceMq6jOGSWuFuKgtRbtvC+P7qd8g56AZYTyo97jZ -oAsl8bF3wifrPN73SzCoGba1lCmpDZLCPllNd5RZL1bcAGBj9eDAA1zihYnnO7s+ -r8L8JSJ/P76AZ3JRhylU0KjgkX1TnVSIsJ/wCQGbdw+KrTuam/3zjzLXEptn2U26 -oQ4AuzWVGWtyrAKyJfRDWQQUGDwgXMB1h+7XZMm3G1eu6Wm7vuFEQLjaocFE9tO0 -8lnU3IEzXtn1NrutmiIJSoDyGk/PeRdvu2fZWY9oKRxkCA2q0fOca9ArcAP7Wr8a -+/2usaZ/wsc2fzqDQU2XoFutIU0qwvX6DtDmfb8RhMNrkj2HiR2MluYo+NqQqMOJ -7kMS22yE1Z6akvpeHo1GZ15HczQatIXXSr4DFGlF7CG0ASNbjR+2Qzws+EmZ2WGX -Ad8D9aq5DYOr9xvUdZn66NwyFyyo7FRMoXRFNL01sxJUBpu1wVkKECa8DK0GTIzz -u+qRWtD9WxJkAodW1NmE2F08HIy//exP0L/L6laAjIrDZTle12Nrk6n9ke1UUBIo -zU0RdY9HT+DAqScViGdbitv4Z+GYNWWkZfpW8O56S+B/0rmZZ6UQ8VB8GopUecBt -E14rynpvnd2A6+WlUWcft2Uwl1i7jL3IARO1F3LTsS4 --> ssh-rsa QHr3/A -Kh/yF7CW7lKTsn6JK4vX2SNyiH66JdB+oVYTFdc2efJYTXVLuj7ITK8EMP3dV267 -+D4UM3jcn8wOTeTjXIo8P01IOspGxslfC4J+Yol8K+1JA2BjB0diwzhQbkOEyxJ6 -R0uymJYXjtl8Cjx2mlyNMybG8QZYypPhdKosBRn/KELxInGsWHm4MV3XQ+w2fr9Q -xHIKvz/8QabgzodHwFbMjp29B4MJUSIkl+uxyTULQMcoOCJ5Ip5BqA+VZsFRD8zV -4dePanMQHPXIMnm3POZy3hq/M4FcwWkdJLvz3zyVDuW6mWdiOgA0k1AGpGIFTXeM -bKclRUlgL9n7C/dEh5pcKLbEeh5HSf+2izn7PAA90zAQl8++2+iYMHEIQL/Ft6LH -XnAsNR4rwnVdWu8BlyEhIPev1GgSp3wOc9eQ6TA16RO4ND1ItnLVauAmvDN4rUWI -0wc9Utgwxy4MNhypRLnRXKc555pNpsL1aoA+vcbHfxW1MiW7zviIz2z/RXBR77ut -x9kekkP+LEgMHWD4XCGidM2sMrKfKDDblb+YGKxRcdFlELQa0jHH1mcvU5YC4oY2 -IhYhWeEvyQOr21cP885Psu8IvSpaZVA0tOEdrEXNTa5+S495IGplp8YuxdjW6dz1 -trDcKVSXNsjqLtpl0CrPY8pSPRIEvUJgBcHUxB3+E/U --> ssh-ed25519 +vdRnA lCY+mIpl7nNGi4wD5Z2CJPlIpqTECUyOncW+FuKzqxs -3g0+X5fVGjo+EnETlDlO1VQl83Loi4bEBHshRz1/q0A ---- iUTAy7LeDZTABLGEMw/Bkc/qbujLcdpHdQ/TuodhmaM -Ӥ;{?`t8+t0m 0ܼAӣmx}Z2N2 -x<IV#WLڿ \ No newline at end of file +qbtCO62bJ2e8tUAZHoGTjyrbvp/nkh4XUeLJDeuZNVsUWuvmAyrdb43V4x8cZprl +90ac8YG6xCZ8Jjq8KYV/CtS08HSDLR09om673lrQ5huUYu1kWVUatmH2102mQYyi +tlRNx8MtYWlrEgh2cw1E24DJhzUILvW13yHfLyYH052Xaj+uXFRj/c7AyYSoOgzQ +IrfFU5yncmC6IMiO5/S9TGFLpq8zL983JzeZuYKdYXW+MiWaD15nxzsQQIgXI6YH +K8GYXcugB8O1FisjKw8edYr3bRbHYNNSK1U+v7Wu0ge9f/FXLv2eDKQszcKPxUCJ +XLHi1A6PyHmGlAvYfbj7Dns7KW4DoMmg+Low6VQ6yORbPlN1bbEcjq0qE6f+e6TJ +QQT7617PkmL1KVw2EryIql5Cq7ConTNQaaj1118mjBpW91b64vOXOmWZfOzNo+M1 +Cbsb98Q0VyK2dXDMwPNXW1dKxDb1TGOrPCg9jIwGASco98MTeHFV3/G2F8n7aKYZ +8erixoeKQjyZtNxW2Phq5Wmhjif22qmfJ/+wWvB43CSzLf/79Zcf6Y/qrdqwjzED +fI3NhbAlZVsywBXQnTpuZlN1CE+lR5h0QtJVDy4CWhj/SbucCWL7hmtG3CW8Covq +sa0CJMCtfX71m+h8F3v9oXxlg7Mh8j9c9dHGIbzAYFQ +-> ssh-ed25519 +vdRnA 0FOXCOJg0HIZ2yeW3PKHHOQxtJN6d2L1z6qtW74vxXw +6xthzPbBs09E4iTgki8bxSvp/WhnO6AqrfL8ZEfYrBI +--- eH5jp9jn2nUTrUHVdGK6WF+cyms4icim/UjLByNsUOw +2 >eo\jrY3e@q.s%>yz[9/ !B.lK4\* N=OtW]龽Չ6cR^|H+~ԝ<ӸO*T=uM~_JP[ \ No newline at end of file From a8b1fed3842b9e1dcd7a59019f59bc9776d23238 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 14 Mar 2025 15:56:05 +0100 Subject: [PATCH 323/492] Unused secret --- hosts/default.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/hosts/default.nix b/hosts/default.nix index c17d45f..2ba0e8c 100644 --- a/hosts/default.nix +++ b/hosts/default.nix @@ -116,7 +116,6 @@ owner = "grafana"; group = "forgejo"; }; - "firefly-app-key".owner = "firefly-iii"; "matrix-registration-shared-secret".owner = "matrix-synapse"; }; }; From 9677a6ca777d94fd89b8c0d8f8075a631b435184 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 14 Mar 2025 15:56:29 +0100 Subject: [PATCH 324/492] Use aciceri.dev domains for VPNs too --- hosts/sisko/default.nix | 4 --- modules/adguard-home/default.nix | 10 +++++++ modules/cloudflare-dyndns/default.nix | 7 ----- modules/grafana/default.nix | 7 ++--- modules/jellyfin/default.nix | 2 +- modules/matrix/default.nix | 38 +-------------------------- modules/nginx-base/default.nix | 17 ++++++++++++ modules/paperless/default.nix | 5 ++-- modules/radarr/default.nix | 9 +++++++ modules/sisko-proxy/default.nix | 25 ++++++------------ modules/transmission/default.nix | 9 +++++++ 11 files changed, 62 insertions(+), 71 deletions(-) diff --git a/hosts/sisko/default.nix b/hosts/sisko/default.nix index 456bfca..3d5293b 100644 --- a/hosts/sisko/default.nix +++ b/hosts/sisko/default.nix @@ -11,13 +11,10 @@ "wireguard-server" "mediatomb" "transmission" - # "hercules-ci" "home-assistant" "adguard-home" "cloudflare-dyndns" "sisko-proxy" - "invidious" - "searx" "sisko-share" "forgejo" "prometheus" @@ -32,7 +29,6 @@ "syncthing" "atticd" "jellyfin" - "firefly" "matrix" "radarr" "zerotier" diff --git a/modules/adguard-home/default.nix b/modules/adguard-home/default.nix index a1ec2aa..4020c07 100644 --- a/modules/adguard-home/default.nix +++ b/modules/adguard-home/default.nix @@ -1,3 +1,4 @@ +{ config, ... }: { services.adguardhome = { enable = true; @@ -15,4 +16,13 @@ environment.persistence."/persist".directories = [ "/var/lib/AdGuardHome" ]; + + services.nginx.virtualHosts."adguard.sisko.wg.aciceri.dev" = { + forceSSL = true; + useACMEHost = "aciceri.dev"; + locations."/" = { + proxyPass = "http://localhost:${builtins.toString config.services.adguardhome.port}"; + }; + serverAliases = [ "adguard.sisko.zt.aciceri.dev" ]; + }; } diff --git a/modules/cloudflare-dyndns/default.nix b/modules/cloudflare-dyndns/default.nix index 071a22b..5538150 100644 --- a/modules/cloudflare-dyndns/default.nix +++ b/modules/cloudflare-dyndns/default.nix @@ -8,15 +8,8 @@ "aciceri.dev" "git.aciceri.dev" "home.aciceri.dev" - "torrent.aciceri.dev" - "search.aciceri.dev" - "invidious.aciceri.dev" - "vpn.aciceri.dev" "photos.aciceri.dev" - "status.aciceri.dev" "jelly.aciceri.dev" - "firefly.aciceri.dev" - "import.firefly.aciceri.dev" "matrix.aciceri.dev" ]; apiTokenFile = config.age.secrets.cloudflare-dyndns-api-token.path; diff --git a/modules/grafana/default.nix b/modules/grafana/default.nix index a95e543..5466fd2 100644 --- a/modules/grafana/default.nix +++ b/modules/grafana/default.nix @@ -7,7 +7,7 @@ in enable = true; settings = { server = { - domain = "status.aciceri.dev"; + domain = "status.sisko.aciceri.dev"; http_addr = "127.0.0.1"; http_port = 2342; root_url = "https://${config.services.grafana.settings.server.domain}:443/"; @@ -30,10 +30,11 @@ in ]; services.nginx.virtualHosts = { - "status.aciceri.dev" = { - enableACME = true; + "status.sisko.wg.aciceri.dev" = { + useACMEHost = "aciceri.dev"; forceSSL = true; locations."/".proxyPass = "http://127.0.0.1:${builtins.toString cfg.settings.server.http_port}"; + serverAliases = [ "status.sisko.zt.aciceri.dev" ]; }; }; } diff --git a/modules/jellyfin/default.nix b/modules/jellyfin/default.nix index 51e066a..c9cdeaa 100644 --- a/modules/jellyfin/default.nix +++ b/modules/jellyfin/default.nix @@ -15,7 +15,7 @@ "jelly.aciceri.dev" = { enableACME = true; forceSSL = true; - locations."/".proxyPass = "http://127.0.0.1:8096"; + locations."/".proxyPass = "http://127.0.0.1:8096"; # FIXME hardcoded port }; }; } diff --git a/modules/matrix/default.nix b/modules/matrix/default.nix index c7d115b..c7c5917 100644 --- a/modules/matrix/default.nix +++ b/modules/matrix/default.nix @@ -7,7 +7,6 @@ let clientConfig = { "m.homeserver".base_url = "https://matrix.aciceri.dev"; - # "org.matrix.msc3575.proxy".url = "https://syncv3.matrix.aciceri.dev"; }; serverConfig."m.server" = "matrix.aciceri.dev:443"; mkWellKnown = data: '' @@ -21,7 +20,7 @@ in services.nginx.virtualHosts = { "aciceri.dev" = { - enableACME = true; + useACMEHost = "aciceri.dev"; forceSSL = true; locations."= /.well-known/matrix/server".extraConfig = mkWellKnown serverConfig; locations."= /.well-known/matrix/client".extraConfig = mkWellKnown clientConfig; @@ -36,17 +35,6 @@ in }; }; - services.postgresql = { - enable = true; - # initialScript = pkgs.writeText "synapse-init.sql" '' - # CREATE ROLE "matrix-synapse" WITH LOGIN PASSWORD 'synapse'; - # CREATE DATABASE "matrix-synapse" WITH OWNER "matrix-synapse" - # TEMPLATE template0 - # LC_COLLATE = "C" - # LC_CTYPE = "C"; - # ''; - }; - systemd.tmpfiles.rules = [ "d ${config.services.matrix-synapse.dataDir} 770 matrix-synapse matrix-synapse" ]; @@ -79,28 +67,4 @@ in }; extraConfigFiles = [ config.age.secrets.matrix-registration-shared-secret.path ]; }; - - # backup.paths = [ - # config.services.matrix-synapse.dataDir - # "/var/backup/postgresql/matrix-synapse.sql.gz" - # ]; - - # services.postgresqlBackup = { - # enable = true; - # databases = [ "matrix-synapse" ]; - # }; - - # services.matrix-sliding-sync = { - # enable = true; - # environmentFile = config.age.secrets.matrix-sliding-sync-secret.path; - # settings = { - # SYNCV3_SERVER = "http://localhost:8008"; - # }; - # }; - - # services.nginx.virtualHosts."syncv3.matrix.aciceri.dev" = { - # enableACME = true; - # forceSSL = true; - # locations."/".proxyPass = config.services.matrix-sliding-sync.settings.SYNCV3_SERVER; - # }; } diff --git a/modules/nginx-base/default.nix b/modules/nginx-base/default.nix index fa8dd61..f201630 100644 --- a/modules/nginx-base/default.nix +++ b/modules/nginx-base/default.nix @@ -1,7 +1,23 @@ +{ config, ... }: { security.acme = { acceptTerms = true; defaults.email = "andrea.ciceri@autistici.org"; + certs = { + "aciceri.dev" = { + reloadServices = [ "nginx.service" ]; + domain = "aciceri.dev"; + extraDomainNames = [ + "*.sisko.zt.aciceri.dev" + "*.sisko.wg.aciceri.dev" + ]; + dnsProvider = "cloudflare"; + # dnsResolver = "1.1.1.1:53"; + dnsPropagationCheck = true; + group = config.services.nginx.group; + environmentFile = config.age.secrets.cloudflare-dyndns-api-token.path; + }; + }; }; networking.firewall.allowedTCPPorts = [ @@ -11,6 +27,7 @@ services.nginx = { enable = true; + statusPage = true; recommendedGzipSettings = true; recommendedOptimisation = true; recommendedProxySettings = true; diff --git a/modules/paperless/default.nix b/modules/paperless/default.nix index e1e01fb..eea062d 100644 --- a/modules/paperless/default.nix +++ b/modules/paperless/default.nix @@ -25,14 +25,15 @@ imports = [ ../nginx-base ]; - services.nginx.virtualHosts."paper.aciceri.dev" = { + services.nginx.virtualHosts."paper.sisko.wg.aciceri.dev" = { forceSSL = true; - enableACME = true; + useACMEHost = "aciceri.dev"; locations."/" = { proxyPass = "http://localhost:${builtins.toString config.services.paperless.port}"; }; extraConfig = '' client_max_body_size 50000M; ''; + serverAliases = [ "paper.sisko.zt.aciceri.dev" ]; }; } diff --git a/modules/radarr/default.nix b/modules/radarr/default.nix index 321b7a5..77ee804 100644 --- a/modules/radarr/default.nix +++ b/modules/radarr/default.nix @@ -2,4 +2,13 @@ services.radarr = { enable = true; }; + + services.nginx.virtualHosts."radarr.sisko.wg.aciceri.dev" = { + forceSSL = true; + useACMEHost = "aciceri.dev"; + locations."/" = { + proxyPass = "http://localhost:7878"; # FIXME hardcoded port + }; + serverAliases = [ "radarr.sisko.zt.aciceri.dev" ]; + }; } diff --git a/modules/sisko-proxy/default.nix b/modules/sisko-proxy/default.nix index 353af1b..f35fcd1 100644 --- a/modules/sisko-proxy/default.nix +++ b/modules/sisko-proxy/default.nix @@ -15,26 +15,17 @@ proxy_set_header Connection $connection_upgrade; ''; }; - "torrent.aciceri.dev" = { + "home.sisko.aciceri.dev" = { forceSSL = true; - enableACME = true; + useACMEHost = "aciceri.dev"; locations."/" = { - proxyPass = "http://localhost:${builtins.toString config.services.transmission.settings.rpc-port}"; - }; - }; - "search.aciceri.dev" = { - forceSSL = true; - enableACME = true; - locations."/" = { - proxyPass = "http://localhost:8888"; - }; - }; - "invidious.aciceri.dev" = { - forceSSL = true; - enableACME = true; - locations."/" = { - proxyPass = "http://localhost:${builtins.toString config.services.invidious.port}"; + proxyPass = "http://localhost:${builtins.toString config.services.home-assistant.config.http.server_port}"; + proxyWebsockets = true; }; + extraConfig = '' + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection $connection_upgrade; + ''; }; "photos.aciceri.dev" = { extraConfig = '' diff --git a/modules/transmission/default.nix b/modules/transmission/default.nix index 0a7b3fd..eda7055 100644 --- a/modules/transmission/default.nix +++ b/modules/transmission/default.nix @@ -48,4 +48,13 @@ environment.persistence."/persist".directories = [ config.services.transmission.home ]; + + services.nginx.virtualHosts."torrent.sisko.wg.aciceri.dev" = { + forceSSL = true; + useACMEHost = "aciceri.dev"; + locations."/" = { + proxyPass = "http://localhost:${builtins.toString config.services.transmission.settings.rpc-port}"; + }; + serverAliases = [ "torrent.sisko.zt.aciceri.dev" ]; + }; } From cba0555c387d8af2adc71ac21bf818af6ba8a312 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 14 Mar 2025 16:07:32 +0100 Subject: [PATCH 325/492] `{host}.fleet` -> `{host}.wg.aciceri.dev` --- hmModules/shell/default.nix | 2 +- modules/home-assistant/default.nix | 3 +-- modules/mount-sisko/default.nix | 2 +- modules/nix/default.nix | 2 +- modules/prometheus/default.nix | 20 ++++++++++---------- modules/promtail/default.nix | 2 +- modules/syncthing/default.nix | 10 +++++----- modules/wireguard-common/default.nix | 2 +- packages/deploy/deploy.sh | 4 ++-- 9 files changed, 23 insertions(+), 24 deletions(-) diff --git a/hmModules/shell/default.nix b/hmModules/shell/default.nix index 1d68741..17ac2bb 100644 --- a/hmModules/shell/default.nix +++ b/hmModules/shell/default.nix @@ -64,7 +64,7 @@ }; auto_sync = true; sync_frequency = "5m"; - sync_address = "http://sisko.fleet:8889"; + sync_address = "http://sisko.wg.aciceri.dev:8889"; search_mode = "fuzzy"; style = "compact"; }; diff --git a/modules/home-assistant/default.nix b/modules/home-assistant/default.nix index 9da252d..086e8e7 100644 --- a/modules/home-assistant/default.nix +++ b/modules/home-assistant/default.nix @@ -80,7 +80,6 @@ in time_zone = "Europe/Rome"; temperature_unit = "C"; external_url = "https://home.aciceri.dev"; - internal_url = "http://rock5b.fleet:8123"; }; logger.default = "WARNING"; wake_on_lan = { }; @@ -89,7 +88,7 @@ in name = "Picard"; platform = "wake_on_lan"; mac = "74:56:3c:37:17:bd"; # this shouldn't be public - host = "picard.fleet"; + host = "picard.wg.aciceri.dev"; turn_off.service = "shell_command.turn_off_picard"; } ]; diff --git a/modules/mount-sisko/default.nix b/modules/mount-sisko/default.nix index cd9d1d0..5233772 100644 --- a/modules/mount-sisko/default.nix +++ b/modules/mount-sisko/default.nix @@ -16,7 +16,7 @@ }; fileSystems."/mnt/nas" = { - device = "sisko.fleet:/hd"; + device = "sisko.wg.aciceri.dev:/hd"; fsType = "nfs"; options = [ "x-systemd.automount" diff --git a/modules/nix/default.nix b/modules/nix/default.nix index c6edb78..1b2258d 100644 --- a/modules/nix/default.nix +++ b/modules/nix/default.nix @@ -81,7 +81,7 @@ distributedBuilds = true; buildMachines = lib.lists.optional (config.networking.hostName == "picard") { - hostName = "sisko.fleet"; + hostName = "sisko.wg.aciceri.dev"; system = "aarch64-linux"; maxJobs = 7; supportedFeatures = [ diff --git a/modules/prometheus/default.nix b/modules/prometheus/default.nix index 382d4e8..5636fe6 100644 --- a/modules/prometheus/default.nix +++ b/modules/prometheus/default.nix @@ -8,11 +8,11 @@ in pushgateway = { enable = true; web = { - listen-address = "sisko.fleet:9094"; + listen-address = "sisko.wg.aciceri.dev:9094"; }; }; checkConfig = false; # Otherwise it will fail because it cannot access bearer_token_file - webExternalUrl = "https://status.aciceri.dev"; + webExternalUrl = "https://status.wg.aciceri.dev"; globalConfig.scrape_interval = "10s"; scrapeConfigs = [ { @@ -22,7 +22,7 @@ in static_configs = [ { targets = [ - "sisko.fleet:${builtins.toString config.services.home-assistant.config.http.server_port}" + "sisko.wg.aciceri.dev:${builtins.toString config.services.home-assistant.config.http.server_port}" ]; } ]; @@ -39,7 +39,7 @@ in job_name = "node"; static_configs = [ { - targets = builtins.map (host: "${host}.fleet:9100") [ + targets = builtins.map (host: "${host}.wg.aciceri.dev:9100") [ "sisko" "picard" "kirk" @@ -51,7 +51,7 @@ in job_name = "wireguard"; static_configs = [ { - targets = builtins.map (host: "${host}.fleet:9586") [ + targets = builtins.map (host: "${host}.wg.aciceri.dev:9586") [ "picard" "kirk" ]; @@ -62,7 +62,7 @@ in job_name = "zfs"; static_configs = [ { - targets = builtins.map (host: "${host}.fleet:9134") [ + targets = builtins.map (host: "${host}.wg.aciceri.dev:9134") [ "picard" "kirk" ]; @@ -73,7 +73,7 @@ in job_name = "restic"; static_configs = [ { - targets = builtins.map (host: "${host}.fleet:9753") [ "sisko" ]; + targets = builtins.map (host: "${host}.wg.aciceri.dev:9753") [ "sisko" ]; } ]; } @@ -81,7 +81,7 @@ in job_name = "postgres"; static_configs = [ { - targets = builtins.map (host: "${host}.fleet:9187") [ "sisko" ]; + targets = builtins.map (host: "${host}.wg.aciceri.dev:9187") [ "sisko" ]; } ]; } @@ -89,7 +89,7 @@ in job_name = "nginx"; static_configs = [ { - targets = builtins.map (host: "${host}.fleet:9117") [ "sisko" ]; + targets = builtins.map (host: "${host}.wg.aciceri.dev:9117") [ "sisko" ]; } ]; } @@ -97,7 +97,7 @@ in job_name = "smartctl"; static_configs = [ { - targets = builtins.map (host: "${host}.fleet:9633") [ + targets = builtins.map (host: "${host}.wg.aciceri.dev:9633") [ "sisko" "kirk" "picard" diff --git a/modules/promtail/default.nix b/modules/promtail/default.nix index f2ab2ef..e86afeb 100644 --- a/modules/promtail/default.nix +++ b/modules/promtail/default.nix @@ -12,7 +12,7 @@ let }; clients = [ { - url = "http://sisko.fleet:${ + url = "http://sisko.wg.aciceri.dev:${ builtins.toString config.services.loki.configuration.server.http_listen_port or 3100 }/loki/api/v1/push"; } diff --git a/modules/syncthing/default.nix b/modules/syncthing/default.nix index 2b2d607..4dacf98 100644 --- a/modules/syncthing/default.nix +++ b/modules/syncthing/default.nix @@ -3,7 +3,7 @@ services = { syncthing = { enable = true; - guiAddress = "${config.networking.hostName}.fleet:8434"; + guiAddress = "${config.networking.hostName}.wg.aciceri.dev:8434"; # TODO Use the home-manager module instead of the following conditions user = if config.networking.hostName == "sisko" then "syncthing" else "ccr"; dataDir = if config.networking.hostName == "sisko" then "/mnt/hd/syncthing" else "/home/ccr"; @@ -16,25 +16,25 @@ picard = { id = "XKSCJ46-EM6GIZ7-6ABQTZZ-ZRVWVFM-MJ3QNVG-F5EWHY5-ZUNYVSL-DA77YAG"; addresses = [ - "tcp://picard.fleet" + "tcp://picard.wg.aciceri.dev" ]; }; sisko = { id = "QE6V7PR-VHMAHHS-GHD4ZI3-IBB7FEM-M6EQZBX-YFCWDAK-YCYL6VO-NNRMXQK"; addresses = [ - "tcp://sisko.fleet" + "tcp://sisko.wg.aciceri.dev" ]; }; kirk = { id = "OVPXSCE-XFKCBJ2-A4SKJRI-DYBZ6CV-U2OFNA2-ALHOPW5-PPMHOIQ-5TG2HAJ"; addresses = [ - "tcp://kirk.fleet" + "tcp://kirk.wg.aciceri.dev" ]; }; oneplus8t = { id = "KMB2YRF-DGTWU24-SLITU23-5TN7BMQ-6PFAQQZ-CZ7J2QL-PIGVBTU-VRFRMQV"; addresses = [ - "tcp://oneplus8t.fleet" + "tcp://oneplus8t.wg.aciceri.dev" ]; }; }; diff --git a/modules/wireguard-common/default.nix b/modules/wireguard-common/default.nix index ad50ad8..491bc54 100644 --- a/modules/wireguard-common/default.nix +++ b/modules/wireguard-common/default.nix @@ -27,6 +27,6 @@ networking.hosts = lib.mapAttrs' (hostname: vpnConfig: { name = vpnConfig.ip; - value = [ "${hostname}.fleet" ]; + value = [ "${hostname}.wg.aciceri.dev" ]; }) vpn; } diff --git a/packages/deploy/deploy.sh b/packages/deploy/deploy.sh index 9e9715b..8823453 100644 --- a/packages/deploy/deploy.sh +++ b/packages/deploy/deploy.sh @@ -2,8 +2,8 @@ host=${1-picard} nixos-rebuild switch \ --flake ".#${host}" \ - --target-host "root@${host}.fleet" \ - --build-host "root@${host}.fleet" \ + --target-host "root@${host}.wg.aciceri.dev" \ + --build-host "root@${host}.wg.aciceri.dev" \ --option warn-dirty false \ --fast \ "${@:2}" From 83e191134a570a07f00e99e05dbdcf3d047183dd Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 14 Mar 2025 17:18:34 +0100 Subject: [PATCH 326/492] Persist zerotierone state --- modules/zerotier/default.nix | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/modules/zerotier/default.nix b/modules/zerotier/default.nix index febcee3..c25f8b6 100644 --- a/modules/zerotier/default.nix +++ b/modules/zerotier/default.nix @@ -1,6 +1,14 @@ -{ - services.zerotierone = { - enable = true; - joinNetworks = [ "632ea29085af0cb4" ]; - }; -} +{ config, lib, ... }: +lib.mkMerge [ + { + services.zerotierone = { + enable = true; + joinNetworks = [ "632ea29085af0cb4" ]; + }; + } + (lib.optionalAttrs (config.networking.hostName == "sisko") { + environment.persistence."/persist".directories = [ + "/var/lib/zerotier-one" + ]; + }) +] From 9d4b2b4b7f80829f4a0f9ed0e925bf3844dc9fd4 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 14 Mar 2025 17:18:47 +0100 Subject: [PATCH 327/492] Remove useless generated /etc/hosts --- modules/wireguard-common/default.nix | 5 ----- 1 file changed, 5 deletions(-) diff --git a/modules/wireguard-common/default.nix b/modules/wireguard-common/default.nix index 491bc54..e67cf81 100644 --- a/modules/wireguard-common/default.nix +++ b/modules/wireguard-common/default.nix @@ -24,9 +24,4 @@ privateKeyFile = config.age.secrets."${config.networking.hostName}-wireguard-private-key".path; listenPort = 51820; }; - - networking.hosts = lib.mapAttrs' (hostname: vpnConfig: { - name = vpnConfig.ip; - value = [ "${hostname}.wg.aciceri.dev" ]; - }) vpn; } From 37ae2afef6432427a343184041bf7df1da275257 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 14 Mar 2025 18:09:05 +0100 Subject: [PATCH 328/492] Enable `mosh` on `sisko` --- hosts/sisko/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/hosts/sisko/default.nix b/hosts/sisko/default.nix index 3d5293b..9b9df03 100644 --- a/hosts/sisko/default.nix +++ b/hosts/sisko/default.nix @@ -32,6 +32,7 @@ "matrix" "radarr" "zerotier" + "mosh" ] ++ [ ./disko.nix From c327895c6bf5236a5e4a0fcf6e08c46238d9d9dd Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 14 Mar 2025 18:09:13 +0100 Subject: [PATCH 329/492] Re-add `vpn.aciceri.dev` --- modules/cloudflare-dyndns/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/cloudflare-dyndns/default.nix b/modules/cloudflare-dyndns/default.nix index 5538150..c0f7bff 100644 --- a/modules/cloudflare-dyndns/default.nix +++ b/modules/cloudflare-dyndns/default.nix @@ -11,6 +11,7 @@ "photos.aciceri.dev" "jelly.aciceri.dev" "matrix.aciceri.dev" + "vpn.aciceri.dev" ]; apiTokenFile = config.age.secrets.cloudflare-dyndns-api-token.path; }; From bce8fbbb78a6f16e4e13b69a5717345e2fc228a9 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 14 Mar 2025 18:09:29 +0100 Subject: [PATCH 330/492] Correctly use `mkMerge` --- modules/zerotier/default.nix | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/modules/zerotier/default.nix b/modules/zerotier/default.nix index c25f8b6..b326c9e 100644 --- a/modules/zerotier/default.nix +++ b/modules/zerotier/default.nix @@ -1,14 +1,17 @@ { config, lib, ... }: -lib.mkMerge [ - { - services.zerotierone = { - enable = true; - joinNetworks = [ "632ea29085af0cb4" ]; - }; - } - (lib.optionalAttrs (config.networking.hostName == "sisko") { - environment.persistence."/persist".directories = [ - "/var/lib/zerotier-one" - ]; - }) -] +{ + config = lib.mkMerge [ + { + services.zerotierone = { + enable = true; + joinNetworks = [ "632ea29085af0cb4" ]; + }; + + } + (lib.mkIf (config.networking.hostName == "sisko") { + environment.persistence."/persist".directories = [ + "/var/lib/zerotier-one" + ]; + }) + ]; +} From 2809c01b203cac50608662952e0ace66431e0694 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 14 Mar 2025 18:35:10 +0100 Subject: [PATCH 331/492] Unused option --- modules/nginx-base/default.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/modules/nginx-base/default.nix b/modules/nginx-base/default.nix index f201630..5068162 100644 --- a/modules/nginx-base/default.nix +++ b/modules/nginx-base/default.nix @@ -12,7 +12,6 @@ "*.sisko.wg.aciceri.dev" ]; dnsProvider = "cloudflare"; - # dnsResolver = "1.1.1.1:53"; dnsPropagationCheck = true; group = config.services.nginx.group; environmentFile = config.age.secrets.cloudflare-dyndns-api-token.path; From 60674990832776aff8f20308e18a19678f0ef4ff Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 14 Mar 2025 18:48:26 +0100 Subject: [PATCH 332/492] Make zerotier work on all hosts --- modules/zerotier/default.nix | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/modules/zerotier/default.nix b/modules/zerotier/default.nix index b326c9e..0b5a552 100644 --- a/modules/zerotier/default.nix +++ b/modules/zerotier/default.nix @@ -1,17 +1,16 @@ { config, lib, ... }: { - config = lib.mkMerge [ - { - services.zerotierone = { - enable = true; - joinNetworks = [ "632ea29085af0cb4" ]; - }; - - } - (lib.mkIf (config.networking.hostName == "sisko") { - environment.persistence."/persist".directories = [ - "/var/lib/zerotier-one" - ]; - }) - ]; + services.zerotierone = { + enable = true; + joinNetworks = [ "632ea29085af0cb4" ]; + }; + environment = + if (config.networking.hostName == "sisko") then + { + persistence."/persist".directories = [ + "/var/lib/zerotier-one" + ]; + } + else + { }; } From 8ffe055df8132c86664afa0d68d158607b400be7 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 14 Mar 2025 18:48:35 +0100 Subject: [PATCH 333/492] Use new domain --- .forgejo/workflows/build.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.forgejo/workflows/build.yaml b/.forgejo/workflows/build.yaml index 213dd15..ee456fc 100644 --- a/.forgejo/workflows/build.yaml +++ b/.forgejo/workflows/build.yaml @@ -8,7 +8,7 @@ jobs: - uses: actions/checkout@v4 name: Checkout repository - name: Attic login - run: attic login nixfleet http://10.100.0.1:8081 ${{secrets.ATTIC_NIXFLEET_TOKEN}} + run: attic login nixfleet http://sisko.wg.aciceri.dev:8081 ${{secrets.ATTIC_NIXFLEET_TOKEN}} - name: Build with nix run: nix-fast-build --no-nom --systems "x86_64-linux aarch64-linux" --attic-cache "nixfleet" --skip-cached --result-file result.json || true - name: Report checks From 43f0f9b0288641f18a8212e3c3bd0d00bd2beb32 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Sat, 15 Mar 2025 10:00:19 +0100 Subject: [PATCH 334/492] Fix floating btop window size on `kirk` --- hmModules/niri/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/hmModules/niri/default.nix b/hmModules/niri/default.nix index 8e0baf1..528f7e1 100644 --- a/hmModules/niri/default.nix +++ b/hmModules/niri/default.nix @@ -14,8 +14,8 @@ let cols = "150"; }; floating-btop = { - rows = "210"; - cols = "60"; + rows = "60"; + cols = "210"; }; }; kirk = { @@ -38,7 +38,7 @@ let run-floating-btop = with niriVars.floating-btop; pkgs.writeScriptBin "run-floating-btop" '' - foot --title='bTop' -W ${rows}x${cols} btop + foot --title='bTop' -W ${cols}x${rows} btop ''; in { From 30cc84fbda02cd8b7bd9cf49d7bd087c5bfba88c Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Mon, 17 Mar 2025 17:16:52 +0100 Subject: [PATCH 335/492] Complete `arr` suite --- hosts/sisko/default.nix | 2 +- modules/arr/default.nix | 59 ++++++++++++++++++++++++++++++++++++++ modules/radarr/default.nix | 14 --------- 3 files changed, 60 insertions(+), 15 deletions(-) create mode 100644 modules/arr/default.nix delete mode 100644 modules/radarr/default.nix diff --git a/hosts/sisko/default.nix b/hosts/sisko/default.nix index 9b9df03..15e267a 100644 --- a/hosts/sisko/default.nix +++ b/hosts/sisko/default.nix @@ -30,7 +30,7 @@ "atticd" "jellyfin" "matrix" - "radarr" + "arr" "zerotier" "mosh" ] diff --git a/modules/arr/default.nix b/modules/arr/default.nix new file mode 100644 index 0000000..465eed8 --- /dev/null +++ b/modules/arr/default.nix @@ -0,0 +1,59 @@ +{ pkgs, lib, ... }: +{ + services.radarr = { + enable = true; + }; + + services.sonarr = { + enable = true; + package = + (builtins.getFlake "github:NixOS/nixpkgs/c80f6a7e10b39afcc1894e02ef785b1ad0b0d7e5") + .legacyPackages.${pkgs.stdenv.system}.sonarr; + }; + + services.prowlarr = { + enable = true; + }; + + systemd.services.prowlarr = { + serviceConfig = { + DynamicUser = lib.mkForce false; + }; + }; + + users.users.radarr.extraGroups = [ "transmission" ]; + users.users.sonarr.extraGroups = [ "transmission" ]; + + environment.persistence."/persist".directories = [ + "/var/lib/radarr" + "/var/lib/prowlarr" + "/var/lib/sonarr" + ]; + + services.nginx.virtualHosts = { + "radarr.sisko.wg.aciceri.dev" = { + forceSSL = true; + useACMEHost = "aciceri.dev"; + locations."/" = { + proxyPass = "http://localhost:7878"; # FIXME hardcoded port + }; + serverAliases = [ "radarr.sisko.zt.aciceri.dev" ]; + }; + "prowlarr.sisko.wg.aciceri.dev" = { + forceSSL = true; + useACMEHost = "aciceri.dev"; + locations."/" = { + proxyPass = "http://localhost:9696"; # FIXME hardcoded port + }; + serverAliases = [ "prowlarr.sisko.zt.aciceri.dev" ]; + }; + "sonarr.sisko.wg.aciceri.dev" = { + forceSSL = true; + useACMEHost = "aciceri.dev"; + locations."/" = { + proxyPass = "http://localhost:8989"; # FIXME hardcoded port + }; + serverAliases = [ "sonarr.sisko.zt.aciceri.dev" ]; + }; + }; +} diff --git a/modules/radarr/default.nix b/modules/radarr/default.nix deleted file mode 100644 index 77ee804..0000000 --- a/modules/radarr/default.nix +++ /dev/null @@ -1,14 +0,0 @@ -{ - services.radarr = { - enable = true; - }; - - services.nginx.virtualHosts."radarr.sisko.wg.aciceri.dev" = { - forceSSL = true; - useACMEHost = "aciceri.dev"; - locations."/" = { - proxyPass = "http://localhost:7878"; # FIXME hardcoded port - }; - serverAliases = [ "radarr.sisko.zt.aciceri.dev" ]; - }; -} From e03c4d07ec55df75da96e7ec570a505c36ce7088 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Mon, 17 Mar 2025 17:17:04 +0100 Subject: [PATCH 336/492] Bump `emacs-overlay` --- flake.lock | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/flake.lock b/flake.lock index b3a803e..de705f8 100644 --- a/flake.lock +++ b/flake.lock @@ -156,11 +156,11 @@ "nixpkgs-stable": "nixpkgs-stable_2" }, "locked": { - "lastModified": 1736759802, - "narHash": "sha256-XCaIRTC+YlL5nRi9WJHeftyfw2Z0YXwwzEmHThGuR3Q=", + "lastModified": 1742203058, + "narHash": "sha256-YMy01dURXhxyjx2W+Dv83b2RRnNq28K4t4+kvrRxFto=", "owner": "nix-community", "repo": "emacs-overlay", - "rev": "244a2ab1459c72bac32a2db088549f8bc6d7a836", + "rev": "7a9a25389a6ad9402f9aa5087ccb36f8383045a8", "type": "github" }, "original": { @@ -783,11 +783,11 @@ }, "nixpkgs-stable_2": { "locked": { - "lastModified": 1736549401, - "narHash": "sha256-ibkQrMHxF/7TqAYcQE+tOnIsSEzXmMegzyBWza6uHKM=", + "lastModified": 1742136038, + "narHash": "sha256-DDe16FJk18sadknQKKG/9FbwEro7A57tg9vB5kxZ8kY=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "1dab772dd4a68a7bba5d9460685547ff8e17d899", + "rev": "a1185f4064c18a5db37c5c84e5638c78b46e3341", "type": "github" }, "original": { @@ -847,11 +847,11 @@ }, "nixpkgs_4": { "locked": { - "lastModified": 1736523798, - "narHash": "sha256-Xb8mke6UCYjge9kPR9o4P1nVrhk7QBbKv3xQ9cj7h2s=", + "lastModified": 1742069588, + "narHash": "sha256-C7jVfohcGzdZRF6DO+ybyG/sqpo1h6bZi9T56sxLy+k=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "130595eba61081acde9001f43de3248d8888ac4a", + "rev": "c80f6a7e10b39afcc1894e02ef785b1ad0b0d7e5", "type": "github" }, "original": { From 79ab4ca237e00a0734e83919d8c4c78d1645f4ac Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 20 Mar 2025 11:51:41 +0100 Subject: [PATCH 337/492] =?UTF-8?q?Back=20to=20Google=20=F0=9F=98=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hmModules/firefox/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hmModules/firefox/default.nix b/hmModules/firefox/default.nix index 400341e..6e0de55 100644 --- a/hmModules/firefox/default.nix +++ b/hmModules/firefox/default.nix @@ -63,7 +63,7 @@ in }; profiles.default = { search.force = true; - search.default = "DuckDuckGo"; + search.default = "Google"; search.engines = { "Searx" = { urls = [ From a6ec1cf8796d5847d01a31fdfb722ee8131dcecc Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 20 Mar 2025 11:52:08 +0100 Subject: [PATCH 338/492] `ncdu` is very handy --- modules/common/default.nix | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/modules/common/default.nix b/modules/common/default.nix index 88bd936..5aa4549 100644 --- a/modules/common/default.nix +++ b/modules/common/default.nix @@ -18,7 +18,10 @@ nixpkgs.config.allowUnfree = true; # Forgive me Mr. Stallman :( system.switch.enableNg = true; - environment.systemPackages = [ pkgs.btop ]; + environment.systemPackages = [ + pkgs.btop + pkgs.ncdu + ]; # FIXME not the best place nixpkgs.config.permittedInsecurePackages = [ From 7163022edae7357d964c04fb6078d8bb64698c2a Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 20 Mar 2025 11:52:16 +0100 Subject: [PATCH 339/492] Create dupms on the hd --- modules/forgejo/default.nix | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/modules/forgejo/default.nix b/modules/forgejo/default.nix index e4865a4..7b690dc 100644 --- a/modules/forgejo/default.nix +++ b/modules/forgejo/default.nix @@ -70,7 +70,10 @@ in }; }; secrets.mailer.PASSWD = config.age.secrets.autistici-password.path; - dump.enable = true; + dump = { + enable = true; + backupDir = "/mnt/hd/forgejo-dumps"; + }; }; environment.persistence."/persist".directories = [ From 05078468afc5d4b776c7db49b2eb389a40c7ac48 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 27 Mar 2025 15:32:08 +0100 Subject: [PATCH 340/492] Bump nixpkgs --- flake.lock | 365 +++++++++++++---------------------------------------- flake.nix | 2 +- 2 files changed, 88 insertions(+), 279 deletions(-) diff --git a/flake.lock b/flake.lock index de705f8..f1021cc 100644 --- a/flake.lock +++ b/flake.lock @@ -8,11 +8,11 @@ "systems": "systems" }, "locked": { - "lastModified": 1723293904, - "narHash": "sha256-b+uqzj+Wa6xgMS9aNbX4I+sXeb5biPDi39VgvSFqFvU=", + "lastModified": 1736955230, + "narHash": "sha256-uenf8fv2eG5bKM8C/UvFaiJMZ4IpUFaQxk9OH5t/1gA=", "owner": "ryantm", "repo": "agenix", - "rev": "f6291c5935fdc4e0bef208cfc0dcab7e3f7a1c41", + "rev": "e600439ec4c273cf11e06fe4d9d906fb98fa097c", "type": "github" }, "original": { @@ -23,20 +23,14 @@ }, "catppuccin": { "inputs": { - "catppuccin-v1_1": "catppuccin-v1_1", - "catppuccin-v1_2": "catppuccin-v1_2", - "home-manager": "home-manager_2", - "home-manager-stable": "home-manager-stable", - "nixpkgs": "nixpkgs_2", - "nixpkgs-stable": "nixpkgs-stable", - "nuscht-search": "nuscht-search" + "nixpkgs": "nixpkgs_2" }, "locked": { - "lastModified": 1736069220, - "narHash": "sha256-76MaB3COao55nlhWmSmq9PKgu2iGIs54C1cAE0E5J6Y=", + "lastModified": 1742254251, + "narHash": "sha256-3wGCx5UR86pgurSYB//LsBMKAsw6qpiOpnzgShPQKkM=", "owner": "catppuccin", "repo": "nix", - "rev": "8eada392fd6571a747e1c5fc358dd61c14c8704e", + "rev": "4cb9c621072312fb45c6e86b57e5fabd97f1b95d", "type": "github" }, "original": { @@ -45,41 +39,13 @@ "type": "github" } }, - "catppuccin-v1_1": { - "locked": { - "lastModified": 1734055249, - "narHash": "sha256-pCWJgwo77KD7EJpwynwKrWPZ//dwypHq2TfdzZWqK68=", - "rev": "7221d6ca17ac36ed20588e1c3a80177ac5843fa7", - "revCount": 326, - "type": "tarball", - "url": "https://api.flakehub.com/f/pinned/catppuccin/nix/1.1.1/0193bdc0-b045-7eed-bbec-95611a8ecdf5/source.tar.gz" - }, - "original": { - "type": "tarball", - "url": "https://flakehub.com/f/catppuccin/nix/1.1.%2A.tar.gz" - } - }, - "catppuccin-v1_2": { - "locked": { - "lastModified": 1734728407, - "narHash": "sha256-Let3uJo4YDyfqbqaw66dpZxhJB2TrDyZWSFd5rpPLJA=", - "rev": "23ee86dbf4ed347878115a78971d43025362fab1", - "revCount": 341, - "type": "tarball", - "url": "https://api.flakehub.com/f/pinned/catppuccin/nix/1.2.0/0193e5e0-33b7-7149-a362-bfe56b20f64e/source.tar.gz" - }, - "original": { - "type": "tarball", - "url": "https://flakehub.com/f/catppuccin/nix/1.2.%2A.tar.gz" - } - }, "crane": { "locked": { - "lastModified": 1731098351, - "narHash": "sha256-HQkYvKvaLQqNa10KEFGgWHfMAbWBfFp+4cAgkut+NNE=", + "lastModified": 1741148495, + "narHash": "sha256-EV8KUaIZ2/CdBXlutXrHoZYbWPeB65p5kKZk71gvDRI=", "owner": "ipetkov", "repo": "crane", - "rev": "ef80ead953c1b28316cc3f8613904edc2eb90c28", + "rev": "75390a36cd0c2cdd5f1aafd8a9f827d7107f2e53", "type": "github" }, "original": { @@ -117,11 +83,11 @@ ] }, "locked": { - "lastModified": 1736711425, - "narHash": "sha256-8hKhPQuMtXfJi+4lPvw3FBk/zSJVHeb726Zo0uF1PP8=", + "lastModified": 1741786315, + "narHash": "sha256-VT65AE2syHVj6v/DGB496bqBnu1PXrrzwlw07/Zpllc=", "owner": "nix-community", "repo": "disko", - "rev": "f720e64ec37fa16ebba6354eadf310f81555cc07", + "rev": "0d8c6ad4a43906d14abd5c60e0ffe7b587b213de", "type": "github" }, "original": { @@ -153,14 +119,14 @@ "emacs-overlay": { "inputs": { "nixpkgs": "nixpkgs_4", - "nixpkgs-stable": "nixpkgs-stable_2" + "nixpkgs-stable": "nixpkgs-stable" }, "locked": { - "lastModified": 1742203058, - "narHash": "sha256-YMy01dURXhxyjx2W+Dv83b2RRnNq28K4t4+kvrRxFto=", + "lastModified": 1742462736, + "narHash": "sha256-txzExPg8ZWIfrX653J3GWiJmB3s6yKuApaKkVfskdW4=", "owner": "nix-community", "repo": "emacs-overlay", - "rev": "7a9a25389a6ad9402f9aa5087ccb36f8383045a8", + "rev": "d8b5b1643d15bca3308b687918461f5f370f8c6d", "type": "github" }, "original": { @@ -204,11 +170,11 @@ "flake-compat_3": { "flake": false, "locked": { - "lastModified": 1696426674, - "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "lastModified": 1733328505, + "narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=", "owner": "edolstra", "repo": "flake-compat", - "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec", "type": "github" }, "original": { @@ -225,11 +191,11 @@ ] }, "locked": { - "lastModified": 1730504689, - "narHash": "sha256-hgmguH29K2fvs9szpq2r3pz2/8cJd2LPS+b4tfNFCwE=", + "lastModified": 1740872218, + "narHash": "sha256-ZaMw0pdoUKigLpv9HiNDH2Pjnosg7NBYMJlHTIsHEUo=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "506278e768c2a08bec68eb62932193e341f55c90", + "rev": "3876f6b87db82f33775b1ef5ea343986105db764", "type": "github" }, "original": { @@ -260,24 +226,6 @@ "inputs": { "systems": "systems_3" }, - "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" - } - }, - "flake-utils_3": { - "inputs": { - "systems": "systems_4" - }, "locked": { "lastModified": 1681202837, "narHash": "sha256-H+Rh19JDwRtpVPAWp64F+rlEtxUWBAQW28eAi3SRSzg=", @@ -297,11 +245,11 @@ "nixpkgs-lib": "nixpkgs-lib" }, "locked": { - "lastModified": 1736143030, - "narHash": "sha256-+hu54pAoLDEZT9pjHlqL9DNzWz0NbUn8NEAHP7PQPzU=", + "lastModified": 1741352980, + "narHash": "sha256-+u2UunDA4Cl5Fci3m7S643HzKmIDAe+fiXrLqYsR2fs=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "b905f6fc23a9051a6e1b741e1438dbfc0634c6de", + "rev": "f4330d22f1c5d2ba72d3d22df5597d123fdb60a9", "type": "github" }, "original": { @@ -334,11 +282,11 @@ ] }, "locked": { - "lastModified": 1735882644, - "narHash": "sha256-3FZAG+pGt3OElQjesCAWeMkQ7C/nB1oTHLRQ8ceP110=", + "lastModified": 1742300892, + "narHash": "sha256-QmF0proyjXI9YyZO9GZmc7/uEu5KVwCtcdLsKSoxPAI=", "owner": "cachix", "repo": "git-hooks.nix", - "rev": "a5a961387e75ae44cc20f0a57ae463da5e959656", + "rev": "ea26a82dda75bee6783baca6894040c8e6599728", "type": "github" }, "original": { @@ -411,50 +359,7 @@ "type": "github" } }, - "home-manager-stable": { - "inputs": { - "nixpkgs": [ - "catppuccin", - "nixpkgs-stable" - ] - }, - "locked": { - "lastModified": 1734366194, - "narHash": "sha256-vykpJ1xsdkv0j8WOVXrRFHUAdp9NXHpxdnn1F4pYgSw=", - "owner": "nix-community", - "repo": "home-manager", - "rev": "80b0fdf483c5d1cb75aaad909bd390d48673857f", - "type": "github" - }, - "original": { - "owner": "nix-community", - "ref": "release-24.11", - "repo": "home-manager", - "type": "github" - } - }, "home-manager_2": { - "inputs": { - "nixpkgs": [ - "catppuccin", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1734622215, - "narHash": "sha256-OOfI0XhSJGHblfdNDhfnn8QnZxng63rWk9eeJ2tCbiI=", - "owner": "nix-community", - "repo": "home-manager", - "rev": "1395379a7a36e40f2a76e7b9936cc52950baa1be", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "home-manager", - "type": "github" - } - }, - "home-manager_3": { "inputs": { "nixpkgs": [ "nix-on-droid", @@ -482,11 +387,11 @@ ] }, "locked": { - "lastModified": 1736781604, - "narHash": "sha256-nIjcN89nxaI5ZnwU/1gzc3rBVQ/te5sHraYeG4cyJX4=", + "lastModified": 1742447757, + "narHash": "sha256-Q0KXcHQmum8L6IzGhhkVhjFMKY6BvYa/rhmLP26Ws8o=", "owner": "nix-community", "repo": "home-manager", - "rev": "9616d81f98032d1ee9bec68ab4b6a8c833add88c", + "rev": "94605dcadefeaff6b35c8931c9f38e4f4dc7ad0a", "type": "github" }, "original": { @@ -518,11 +423,11 @@ }, "impermanence": { "locked": { - "lastModified": 1736688610, - "narHash": "sha256-1Zl9xahw399UiZSJ9Vxs1W4WRFjO1SsNdVZQD4nghz0=", + "lastModified": 1737831083, + "narHash": "sha256-LJggUHbpyeDvNagTUrdhe/pRVp4pnS6wVKALS782gRI=", "owner": "nix-community", "repo": "impermanence", - "rev": "c64bed13b562fc3bb454b48773d4155023ac31b7", + "rev": "4b3e914cdf97a5b536a889e939fb2fd2b043a170", "type": "github" }, "original": { @@ -531,34 +436,6 @@ "type": "github" } }, - "ixx": { - "inputs": { - "flake-utils": [ - "catppuccin", - "nuscht-search", - "flake-utils" - ], - "nixpkgs": [ - "catppuccin", - "nuscht-search", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1729958008, - "narHash": "sha256-EiOq8jF4Z/zQe0QYVc3+qSKxRK//CFHMB84aYrYGwEs=", - "owner": "NuschtOS", - "repo": "ixx", - "rev": "9fd01aad037f345350eab2cd45e1946cc66da4eb", - "type": "github" - }, - "original": { - "owner": "NuschtOS", - "ref": "v0.0.6", - "repo": "ixx", - "type": "github" - } - }, "lanzaboote": { "inputs": { "crane": "crane", @@ -571,11 +448,11 @@ "rust-overlay": "rust-overlay" }, "locked": { - "lastModified": 1734994463, - "narHash": "sha256-S9MgfQjNt4J3I7obdLOVY23h+Yl/hnyibwGfOl+1uOE=", + "lastModified": 1741442524, + "narHash": "sha256-tVcxLDLLho8dWcO81Xj/3/ANLdVs0bGyCPyKjp70JWk=", "owner": "nix-community", "repo": "lanzaboote", - "rev": "93e6f0d77548be8757c11ebda5c4235ef4f3bc67", + "rev": "d8099586d9a84308ffedac07880e7f07a0180ff4", "type": "github" }, "original": { @@ -587,11 +464,11 @@ "lix": { "flake": false, "locked": { - "lastModified": 1736680332, - "narHash": "sha256-gwidOezQ6FT5q4GHcpD6y2EwKcrtzjAoxaN/9bTGqQw=", + "lastModified": 1742411066, + "narHash": "sha256-8vXOKPQFRzTjapsRnTJ1nuFjUfC+AGI2ybdK5cAEHZ8=", "ref": "refs/heads/main", - "rev": "38dd196b03f4163ae3bbb2a1910b8f0f141ca0e2", - "revCount": 16610, + "rev": "2491b7cc2128ee440d24768c4521c38b1859fc28", + "revCount": 17705, "type": "git", "url": "https://git@git.lix.systems/lix-project/lix" }, @@ -602,7 +479,7 @@ }, "lix-module": { "inputs": { - "flake-utils": "flake-utils_2", + "flake-utils": "flake-utils", "flakey-profile": "flakey-profile", "lix": [ "lix" @@ -612,11 +489,11 @@ ] }, "locked": { - "lastModified": 1733522213, - "narHash": "sha256-H+Pk19MzvI/TAbXWimUPZAoKkD56OSyxJBm8lVIA5n0=", + "lastModified": 1741894565, + "narHash": "sha256-2FD0NDJbEjUHloVrtEIms5miJsj1tvQCc/0YK5ambyc=", "ref": "refs/heads/main", - "rev": "c374ebf5548c7b6d4bf884369a5b6879cfc916ea", - "revCount": 124, + "rev": "a6da43f8193d9e329bba1795c42590c27966082e", + "revCount": 136, "type": "git", "url": "https://git.lix.systems/lix-project/nixos-module" }, @@ -628,11 +505,11 @@ "mobile-nixos": { "flake": false, "locked": { - "lastModified": 1736638789, - "narHash": "sha256-pkpOkSUNrSf5DePUtYYFt4wGODhY28RlQ4SIJ1e+15M=", + "lastModified": 1741101701, + "narHash": "sha256-Kup8HWWC2AR1j2c9pAjXQXLYmuhyv8sRRfX0o03sNQg=", "owner": "NixOS", "repo": "mobile-nixos", - "rev": "72a0601f36a1b424e8b72f17ff53509b990ee060", + "rev": "8956d72cf8fa9110dcc5fcbc537adee45a8014f5", "type": "github" }, "original": { @@ -669,7 +546,7 @@ }, "nix-on-droid": { "inputs": { - "home-manager": "home-manager_3", + "home-manager": "home-manager_2", "nix-formatter-pack": "nix-formatter-pack", "nixpkgs": "nixpkgs_5", "nixpkgs-docs": "nixpkgs-docs", @@ -692,11 +569,11 @@ }, "nixosHardware": { "locked": { - "lastModified": 1736441705, - "narHash": "sha256-OL7leZ6KBhcDF3nEKe4aZVfIm6xQpb1Kb+mxySIP93o=", + "lastModified": 1742376361, + "narHash": "sha256-VFMgJkp/COvkt5dnkZB4D2szVdmF6DGm5ZdVvTUy61c=", "owner": "NixOS", "repo": "nixos-hardware", - "rev": "8870dcaff63dfc6647fb10648b827e9d40b0a337", + "rev": "daaae13dff0ecc692509a1332ff9003d9952d7a9", "type": "github" }, "original": { @@ -755,23 +632,26 @@ }, "nixpkgs-lib": { "locked": { - "lastModified": 1735774519, - "narHash": "sha256-CewEm1o2eVAnoqb6Ml+Qi9Gg/EfNAxbRx1lANGVyoLI=", - "type": "tarball", - "url": "https://github.com/NixOS/nixpkgs/archive/e9b51731911566bbf7e4895475a87fe06961de0b.tar.gz" + "lastModified": 1740877520, + "narHash": "sha256-oiwv/ZK/2FhGxrCkQkB83i7GnWXPPLzoqFHpDD3uYpk=", + "owner": "nix-community", + "repo": "nixpkgs.lib", + "rev": "147dee35aab2193b174e4c0868bd80ead5ce755c", + "type": "github" }, "original": { - "type": "tarball", - "url": "https://github.com/NixOS/nixpkgs/archive/e9b51731911566bbf7e4895475a87fe06961de0b.tar.gz" + "owner": "nix-community", + "repo": "nixpkgs.lib", + "type": "github" } }, "nixpkgs-stable": { "locked": { - "lastModified": 1734600368, - "narHash": "sha256-nbG9TijTMcfr+au7ZVbKpAhMJzzE2nQBYmRvSdXUD8g=", + "lastModified": 1742268799, + "narHash": "sha256-IhnK4LhkBlf14/F8THvUy3xi/TxSQkp9hikfDZRD4Ic=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "b47fd6fa00c6afca88b8ee46cfdb00e104f50bca", + "rev": "da044451c6a70518db5b730fe277b70f494188f1", "type": "github" }, "original": { @@ -781,45 +661,13 @@ "type": "github" } }, - "nixpkgs-stable_2": { - "locked": { - "lastModified": 1742136038, - "narHash": "sha256-DDe16FJk18sadknQKKG/9FbwEro7A57tg9vB5kxZ8kY=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "a1185f4064c18a5db37c5c84e5638c78b46e3341", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-24.11", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs-stable_3": { - "locked": { - "lastModified": 1730741070, - "narHash": "sha256-edm8WG19kWozJ/GqyYx2VjW99EdhjKwbY3ZwdlPAAlo=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "d063c1dd113c91ab27959ba540c0d9753409edf3", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-24.05", - "repo": "nixpkgs", - "type": "github" - } - }, "nixpkgs_2": { "locked": { - "lastModified": 1734424634, - "narHash": "sha256-cHar1vqHOOyC7f1+tVycPoWTfKIaqkoe1Q6TnKzuti4=", + "lastModified": 1741851582, + "narHash": "sha256-cPfs8qMccim2RBgtKGF+x9IBCduRvd/N5F4nYpU0TVE=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "d3c42f187194c26d9f0309a8ecc469d6c878ce33", + "rev": "6607cf789e541e7873d40d3a8f7815ea92204f32", "type": "github" }, "original": { @@ -847,11 +695,11 @@ }, "nixpkgs_4": { "locked": { - "lastModified": 1742069588, - "narHash": "sha256-C7jVfohcGzdZRF6DO+ybyG/sqpo1h6bZi9T56sxLy+k=", + "lastModified": 1742288794, + "narHash": "sha256-Txwa5uO+qpQXrNG4eumPSD+hHzzYi/CdaM80M9XRLCo=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "c80f6a7e10b39afcc1894e02ef785b1ad0b0d7e5", + "rev": "b6eaf97c6960d97350c584de1b6dcff03c9daf42", "type": "github" }, "original": { @@ -878,17 +726,17 @@ }, "nixpkgs_6": { "locked": { - "lastModified": 1736701207, - "narHash": "sha256-jG/+MvjVY7SlTakzZ2fJ5dC3V1PrKKrUEOEE30jrOKA=", + "lastModified": 1742288794, + "narHash": "sha256-Txwa5uO+qpQXrNG4eumPSD+hHzzYi/CdaM80M9XRLCo=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "ed4a395ea001367c1f13d34b1e01aa10290f67d6", + "rev": "b6eaf97c6960d97350c584de1b6dcff03c9daf42", "type": "github" }, "original": { "owner": "NixOS", + "ref": "nixos-unstable", "repo": "nixpkgs", - "rev": "ed4a395ea001367c1f13d34b1e01aa10290f67d6", "type": "github" } }, @@ -944,29 +792,6 @@ "type": "gitlab" } }, - "nuscht-search": { - "inputs": { - "flake-utils": "flake-utils", - "ixx": "ixx", - "nixpkgs": [ - "catppuccin", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1733773348, - "narHash": "sha256-Y47y+LesOCkJaLvj+dI/Oa6FAKj/T9sKVKDXLNsViPw=", - "owner": "NuschtOS", - "repo": "search", - "rev": "3051be7f403bff1d1d380e4612f0c70675b44fc9", - "type": "github" - }, - "original": { - "owner": "NuschtOS", - "repo": "search", - "type": "github" - } - }, "pre-commit-hooks-nix": { "inputs": { "flake-compat": [ @@ -977,15 +802,14 @@ "nixpkgs": [ "lanzaboote", "nixpkgs" - ], - "nixpkgs-stable": "nixpkgs-stable_3" + ] }, "locked": { - "lastModified": 1731363552, - "narHash": "sha256-vFta1uHnD29VUY4HJOO/D6p6rxyObnf+InnSMT4jlMU=", + "lastModified": 1740915799, + "narHash": "sha256-JvQvtaphZNmeeV+IpHgNdiNePsIpHD5U/7QN5AeY44A=", "owner": "cachix", "repo": "pre-commit-hooks.nix", - "rev": "cd1af27aa85026ac759d5d3fccf650abe7e1bbf0", + "rev": "42b1ba089d2034d910566bf6b40830af6b8ec732", "type": "github" }, "original": { @@ -1065,11 +889,11 @@ ] }, "locked": { - "lastModified": 1731897198, - "narHash": "sha256-Ou7vLETSKwmE/HRQz4cImXXJBr/k9gp4J4z/PF8LzTE=", + "lastModified": 1741228283, + "narHash": "sha256-VzqI+k/eoijLQ5am6rDFDAtFAbw8nltXfLBC6SIEJAE=", "owner": "oxalica", "repo": "rust-overlay", - "rev": "0be641045af6d8666c11c2c40e45ffc9667839b5", + "rev": "38e9826bc4296c9daf18bc1e6aa299f3e932a403", "type": "github" }, "original": { @@ -1161,21 +985,6 @@ "type": "github" } }, - "systems_4": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - }, "treefmt-nix": { "inputs": { "nixpkgs": [ @@ -1183,11 +992,11 @@ ] }, "locked": { - "lastModified": 1736154270, - "narHash": "sha256-p2r8xhQZ3TYIEKBoiEhllKWQqWNJNoT9v64Vmg4q8Zw=", + "lastModified": 1742370146, + "narHash": "sha256-XRE8hL4vKIQyVMDXykFh4ceo3KSpuJF3ts8GKwh5bIU=", "owner": "numtide", "repo": "treefmt-nix", - "rev": "13c913f5deb3a5c08bb810efd89dc8cb24dd968b", + "rev": "adc195eef5da3606891cedf80c0d9ce2d3190808", "type": "github" }, "original": { @@ -1198,7 +1007,7 @@ }, "vscode-server": { "inputs": { - "flake-utils": "flake-utils_3", + "flake-utils": "flake-utils_2", "nixpkgs": "nixpkgs_7" }, "locked": { diff --git a/flake.nix b/flake.nix index 847a775..4b6946e 100644 --- a/flake.nix +++ b/flake.nix @@ -3,7 +3,7 @@ inputs = { flakeParts.url = "github:hercules-ci/flake-parts"; - nixpkgs.url = "github:NixOS/nixpkgs/ed4a395ea001367c1f13d34b1e01aa10290f67d6"; # FIXME update (check if screen sharing works!) + nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; nixosHardware.url = "github:NixOS/nixos-hardware"; homeManager = { url = "github:nix-community/home-manager"; From 84ba8bf7cc343f4fea93f6c8eb416be5476d852f Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 27 Mar 2025 15:32:49 +0100 Subject: [PATCH 341/492] Emacs' `rust-mode` --- hmModules/emacs/init.el | 6 ++++++ packages/emacs/packages.nix | 1 + 2 files changed, 7 insertions(+) diff --git a/hmModules/emacs/init.el b/hmModules/emacs/init.el index 9987cbf..8e8da3d 100644 --- a/hmModules/emacs/init.el +++ b/hmModules/emacs/init.el @@ -548,6 +548,12 @@ (eglot-ensure)))) :mode "\\.ts\\'") +(use-package rust-mode + :init + (setq rust-mode-treesitter-derive t) + :hook ((rust-mode . (lambda () + (require 'eglot) + (eglot-ensure))))) (use-package haskell-ts-mode :hook ((haskell--ts-mode . eglot-ensure)) :mode "\\.hs\\'" diff --git a/packages/emacs/packages.nix b/packages/emacs/packages.nix index f726e67..9b366a2 100644 --- a/packages/emacs/packages.nix +++ b/packages/emacs/packages.nix @@ -182,6 +182,7 @@ let markdown-mode haskell-mode terraform-mode + rust-mode diredfl org-modern math-preview From e556401bacbcdfa958648245241144a19bd9bce3 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 27 Mar 2025 15:33:02 +0100 Subject: [PATCH 342/492] Disable `zulip` --- hosts/picard/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hosts/picard/default.nix b/hosts/picard/default.nix index a63fd60..03fbb85 100644 --- a/hosts/picard/default.nix +++ b/hosts/picard/default.nix @@ -77,7 +77,7 @@ "tor-browser" "kicad" "monero" - "zulip" + # "zulip" "teams" "obs-studio" "calibre" From 3b4c75121a7390add2b27035877e77bd4a4c7a76 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 27 Mar 2025 15:33:18 +0100 Subject: [PATCH 343/492] Remove eshell banner message --- hmModules/emacs/init.el | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/hmModules/emacs/init.el b/hmModules/emacs/init.el index 8e8da3d..195aed8 100644 --- a/hmModules/emacs/init.el +++ b/hmModules/emacs/init.el @@ -554,6 +554,7 @@ :hook ((rust-mode . (lambda () (require 'eglot) (eglot-ensure))))) + (use-package haskell-ts-mode :hook ((haskell--ts-mode . eglot-ensure)) :mode "\\.hs\\'" @@ -660,7 +661,8 @@ (eat-eshell-mode) (eat-eshell-visual-command-mode) :custom ((eshell-prefer-lisp-functions t) - (eshell-history-size 10000)) + (eshell-history-size 10000) + (eshell-banner-message "")) :config (defun ccr/start-eshell () ;; Used from outside Emacs by emacsclient --eval (eshell 'N) From a731e61c09f7f54acb1f873bfb5088fe944f0a3b Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 27 Mar 2025 15:33:31 +0100 Subject: [PATCH 344/492] New `corfu-send` keybinding --- hmModules/emacs/init.el | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/hmModules/emacs/init.el b/hmModules/emacs/init.el index 195aed8..a36b0de 100644 --- a/hmModules/emacs/init.el +++ b/hmModules/emacs/init.el @@ -689,8 +689,10 @@ ccr/eshell-aliases) :bind (("C-c o e" . project-eshell) - :map eshell-mode-map - ("C-r" . eshell-atuin-history))) ;; i.e. just C-r in semi-char-mode + (:map eshell-mode-map + ("C-r" . eshell-atuin-history) + ("C-" . corfu-send) + ))) ;; i.e. just C-r in semi-char-mode (use-package eshell-command-not-found :custom ((eshell-command-not-found-command "command-not-found")) From 982b0ccc48666d49b1e1a72287a08e03cd51a2ac Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 27 Mar 2025 15:33:50 +0100 Subject: [PATCH 345/492] Fix search engine name --- hmModules/firefox/default.nix | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/hmModules/firefox/default.nix b/hmModules/firefox/default.nix index 6e0de55..9100a3e 100644 --- a/hmModules/firefox/default.nix +++ b/hmModules/firefox/default.nix @@ -63,7 +63,7 @@ in }; profiles.default = { search.force = true; - search.default = "Google"; + search.default = "google"; search.engines = { "Searx" = { urls = [ @@ -79,7 +79,6 @@ in ]; }; }; - bookmarks = [ ]; extensions = [ ]; userChrome = builtins.readFile ./userchrome.css; }; From 0016d20633e4d12633b6b8d2f17136a1114e17ee Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 27 Mar 2025 15:34:07 +0100 Subject: [PATCH 346/492] Enable shadows --- hmModules/niri/config.kdl | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/hmModules/niri/config.kdl b/hmModules/niri/config.kdl index 09dacf3..a7baef7 100644 --- a/hmModules/niri/config.kdl +++ b/hmModules/niri/config.kdl @@ -223,16 +223,16 @@ layout { // bottom 64 } - // shadow { - // on - // } + shadow { + on + } } layer-rule { match namespace="^rofi$" - // shadow { - // on - // } + shadow { + on + } } // Add lines like this to spawn processes at startup. From a5fb079c062437fbea9d826b4119eafcd7c092d9 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 27 Mar 2025 15:34:37 +0100 Subject: [PATCH 347/492] `fish` -> `bash` --- hmModules/shell/default.nix | 58 +++++++++++++++++++++++------------- hmModules/zellij/default.nix | 1 - modules/ccr/default.nix | 2 +- 3 files changed, 39 insertions(+), 22 deletions(-) diff --git a/hmModules/shell/default.nix b/hmModules/shell/default.nix index 17ac2bb..f63cbf0 100644 --- a/hmModules/shell/default.nix +++ b/hmModules/shell/default.nix @@ -70,35 +70,53 @@ }; }; - programs.fish = { + programs.bash = { enable = true; - plugins = [ - # { - # name = "fifc"; - # src = pkgs.fishPlugins.fifc.src; - # } - { - name = "z"; - src = pkgs.fishPlugins.z.src; - } - ]; - shellInit = - '' - # fish_vi_key_bindings - fish_default_key_bindings - '' - + lib.optionalString (builtins.hasAttr "cachix-personal-token" age.secrets) '' - export CACHIX_AUTH_TOKEN=$(cat ${age.secrets.cachix-personal-token.path}) - ''; + initExtra = lib.optionalString (builtins.hasAttr "cachix-personal-token" age.secrets) '' + export CACHIX_AUTH_TOKEN=$(cat ${age.secrets.cachix-personal-token.path}) + ''; shellAliases = { "cat" = "bat"; }; }; + programs.zoxide.enable = true; + programs.thefuck.enable = true; + programs.oh-my-posh = { + enable = true; + useTheme = "catppuccin_mocha"; + }; + + programs.zellij.enableBashIntegration = false; + + # programs.fish = { + # enable = true; + # plugins = [ + # # { + # # name = "fifc"; + # # src = pkgs.fishPlugins.fifc.src; + # # } + # { + # name = "z"; + # src = pkgs.fishPlugins.z.src; + # } + # ]; + # shellInit = + # '' + # # fish_vi_key_bindings + # fish_default_key_bindings + # '' + # + lib.optionalString (builtins.hasAttr "cachix-personal-token" age.secrets) '' + # export CACHIX_AUTH_TOKEN=$(cat ${age.secrets.cachix-personal-token.path}) + # ''; + # shellAliases = { + # "cat" = "bat"; + # }; + # }; + home.packages = with pkgs; [ - thefuck dig.dnsutils lsof comma diff --git a/hmModules/zellij/default.nix b/hmModules/zellij/default.nix index 9e75788..b2a7bd3 100644 --- a/hmModules/zellij/default.nix +++ b/hmModules/zellij/default.nix @@ -99,7 +99,6 @@ in { programs.zellij = { enable = true; - enableFishIntegration = false; settings = { default_layout = "${layout}"; pane_frames = false; diff --git a/modules/ccr/default.nix b/modules/ccr/default.nix index 31c7859..5f25ab4 100644 --- a/modules/ccr/default.nix +++ b/modules/ccr/default.nix @@ -28,7 +28,7 @@ in shell = lib.mkOption { type = lib.types.package; - default = pkgs.fish; + default = pkgs.bash; }; modules = lib.mkOption { From c65c53cf7398d9a85ee89d981abb8c15ba604cc0 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 27 Mar 2025 15:34:51 +0100 Subject: [PATCH 348/492] Fix screen sharing --- hmModules/xdg/default.nix | 23 ++++++++++++++++++++ modules/xdg/default.nix | 44 +++++++++++++++++++++++++++++---------- 2 files changed, 56 insertions(+), 11 deletions(-) diff --git a/hmModules/xdg/default.nix b/hmModules/xdg/default.nix index bdcfdeb..a1c5fe4 100644 --- a/hmModules/xdg/default.nix +++ b/hmModules/xdg/default.nix @@ -28,6 +28,29 @@ ]; }; }; + portal = { + enable = true; + configPackages = with pkgs; [ + # xdg-desktop-portal-wlr + # xdg-desktop-portal-gtk + # xdg-desktop-portal-hyprland + xdg-desktop-portal-gnome + # xdg-desktop-portal + # kdePackages.xdg-desktop-portal-kde + # libsForQt5.xdg-desktop-portal-kde + gnome-keyring + ]; + extraPortals = with pkgs; [ + # xdg-desktop-portal-wlr + # xdg-desktop-portal-gtk + # xdg-desktop-portal-hyprland + xdg-desktop-portal-gnome + # xdg-desktop-portal + # kdePackages.xdg-desktop-portal-kde + gnome-keyring + ]; + }; + }; home.packages = [ pkgs.xdg-utils ]; } diff --git a/modules/xdg/default.nix b/modules/xdg/default.nix index 04c145e..7dd59d5 100644 --- a/modules/xdg/default.nix +++ b/modules/xdg/default.nix @@ -1,29 +1,51 @@ { pkgs, ... }: { xdg = { + autostart.enable = true; + menus.enable = true; + mime.enable = true; + icons.enable = true; portal = { enable = true; configPackages = with pkgs; [ - xdg-desktop-portal-wlr - xdg-desktop-portal-gtk - xdg-desktop-portal-hyprland + # xdg-desktop-portal-wlr + # xdg-desktop-portal-gtk + # xdg-desktop-portal-hyprland xdg-desktop-portal-gnome - xdg-desktop-portal - kdePackages.xdg-desktop-portal-kde - libsForQt5.xdg-desktop-portal-kde + # xdg-desktop-portal + # kdePackages.xdg-desktop-portal-kde + # libsForQt5.xdg-desktop-portal-kde gnome-keyring ]; extraPortals = with pkgs; [ - xdg-desktop-portal-wlr - xdg-desktop-portal-gtk - xdg-desktop-portal-hyprland + # xdg-desktop-portal-wlr + # xdg-desktop-portal-gtk + # xdg-desktop-portal-hyprland xdg-desktop-portal-gnome - xdg-desktop-portal - kdePackages.xdg-desktop-portal-kde + # xdg-desktop-portal + # kdePackages.xdg-desktop-portal-kde gnome-keyring ]; xdgOpenUsePortal = true; wlr.enable = true; }; + + }; + security.rtkit.enable = true; + + security.polkit.enable = true; + services.gnome.gnome-keyring.enable = true; + systemd.user.services.niri-flake-polkit = { + description = "PolicyKit Authentication Agent provided by niri-flake"; + wantedBy = [ "niri.service" ]; + after = [ "graphical-session.target" ]; + partOf = [ "graphical-session.target" ]; + serviceConfig = { + Type = "simple"; + ExecStart = "${pkgs.libsForQt5.polkit-kde-agent}/libexec/polkit-kde-authentication-agent-1"; + Restart = "on-failure"; + RestartSec = 1; + TimeoutStopSec = 10; + }; }; } From af4e08b5af2c005640a3af06e656abd81ba81a4c Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 27 Mar 2025 15:35:15 +0100 Subject: [PATCH 349/492] Use `sonarr` from `nixpkgs` --- modules/arr/default.nix | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/modules/arr/default.nix b/modules/arr/default.nix index 465eed8..5f269c4 100644 --- a/modules/arr/default.nix +++ b/modules/arr/default.nix @@ -1,4 +1,4 @@ -{ pkgs, lib, ... }: +{ lib, ... }: { services.radarr = { enable = true; @@ -6,9 +6,6 @@ services.sonarr = { enable = true; - package = - (builtins.getFlake "github:NixOS/nixpkgs/c80f6a7e10b39afcc1894e02ef785b1ad0b0d7e5") - .legacyPackages.${pkgs.stdenv.system}.sonarr; }; services.prowlarr = { From e69a26f77fe69c6f454acb8d4d98372074c7ccd0 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 27 Mar 2025 15:53:02 +0100 Subject: [PATCH 350/492] Completely disable fish --- modules/ccr/default.nix | 2 -- 1 file changed, 2 deletions(-) diff --git a/modules/ccr/default.nix b/modules/ccr/default.nix index 5f25ab4..dd1f0f4 100644 --- a/modules/ccr/default.nix +++ b/modules/ccr/default.nix @@ -103,8 +103,6 @@ in openssh.authorizedKeys.keys = config.ccr.authorizedKeys; }; - programs.fish.enable = true; - services.getty.autologinUser = if config.ccr.autologin then cfg.username else null; home-manager.useGlobalPkgs = true; From c1e155988da7b50f9ae29992c6b95c168dcba43d Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 27 Mar 2025 15:53:08 +0100 Subject: [PATCH 351/492] Disable Hyprland --- hmModules/hyprland/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hmModules/hyprland/default.nix b/hmModules/hyprland/default.nix index 4688a57..fee30aa 100644 --- a/hmModules/hyprland/default.nix +++ b/hmModules/hyprland/default.nix @@ -84,7 +84,7 @@ in }; wayland.windowManager.hyprland = { - enable = true; + enable = false; plugins = with pkgs.hyprlandPlugins; [ hy3 hyprspace From abf32ff42638c3db2991f33faad196f60be16c7c Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 27 Mar 2025 15:53:17 +0100 Subject: [PATCH 352/492] Bump inputs --- flake.lock | 76 +++++++++++++++++++++++++++--------------------------- 1 file changed, 38 insertions(+), 38 deletions(-) diff --git a/flake.lock b/flake.lock index f1021cc..28455ba 100644 --- a/flake.lock +++ b/flake.lock @@ -26,11 +26,11 @@ "nixpkgs": "nixpkgs_2" }, "locked": { - "lastModified": 1742254251, - "narHash": "sha256-3wGCx5UR86pgurSYB//LsBMKAsw6qpiOpnzgShPQKkM=", + "lastModified": 1742599566, + "narHash": "sha256-xr6ntmiUPXSh9o9mJ7og9vxALMQs1EQhIhWUAO2D1M0=", "owner": "catppuccin", "repo": "nix", - "rev": "4cb9c621072312fb45c6e86b57e5fabd97f1b95d", + "rev": "5e303e8d7e251868fa79f83bbda69da90aa62402", "type": "github" }, "original": { @@ -122,11 +122,11 @@ "nixpkgs-stable": "nixpkgs-stable" }, "locked": { - "lastModified": 1742462736, - "narHash": "sha256-txzExPg8ZWIfrX653J3GWiJmB3s6yKuApaKkVfskdW4=", + "lastModified": 1743067111, + "narHash": "sha256-v9VJXx7525gMH6S7WesJM84Dr76jxRubATuBJn4L14o=", "owner": "nix-community", "repo": "emacs-overlay", - "rev": "d8b5b1643d15bca3308b687918461f5f370f8c6d", + "rev": "5c22a2387d4ac1e1d64d66489e7d3ecb0a30cbcd", "type": "github" }, "original": { @@ -282,11 +282,11 @@ ] }, "locked": { - "lastModified": 1742300892, - "narHash": "sha256-QmF0proyjXI9YyZO9GZmc7/uEu5KVwCtcdLsKSoxPAI=", + "lastModified": 1742649964, + "narHash": "sha256-DwOTp7nvfi8mRfuL1escHDXabVXFGT1VlPD1JHrtrco=", "owner": "cachix", "repo": "git-hooks.nix", - "rev": "ea26a82dda75bee6783baca6894040c8e6599728", + "rev": "dcf5072734cb576d2b0c59b2ac44f5050b5eac82", "type": "github" }, "original": { @@ -387,11 +387,11 @@ ] }, "locked": { - "lastModified": 1742447757, - "narHash": "sha256-Q0KXcHQmum8L6IzGhhkVhjFMKY6BvYa/rhmLP26Ws8o=", + "lastModified": 1743082807, + "narHash": "sha256-qmrCYHVqE6j0TQApfxGx8aRYNdNsqtOrZuH09A+cjTU=", "owner": "nix-community", "repo": "home-manager", - "rev": "94605dcadefeaff6b35c8931c9f38e4f4dc7ad0a", + "rev": "171915bfce41018528fda9960211e81946d999b7", "type": "github" }, "original": { @@ -464,11 +464,11 @@ "lix": { "flake": false, "locked": { - "lastModified": 1742411066, - "narHash": "sha256-8vXOKPQFRzTjapsRnTJ1nuFjUfC+AGI2ybdK5cAEHZ8=", + "lastModified": 1743065774, + "narHash": "sha256-aC1lwnqwHbYRsPfx+lRi32fHRcln0xhIzf0Q7/Lg+vQ=", "ref": "refs/heads/main", - "rev": "2491b7cc2128ee440d24768c4521c38b1859fc28", - "revCount": 17705, + "rev": "b918f1c307b314daa44407bac60046630f13ed48", + "revCount": 17742, "type": "git", "url": "https://git@git.lix.systems/lix-project/lix" }, @@ -489,11 +489,11 @@ ] }, "locked": { - "lastModified": 1741894565, - "narHash": "sha256-2FD0NDJbEjUHloVrtEIms5miJsj1tvQCc/0YK5ambyc=", + "lastModified": 1742945498, + "narHash": "sha256-MB/b/xcDKqaVBxJIIxwb81r8ZiGLeKEcqokATRRroo8=", "ref": "refs/heads/main", - "rev": "a6da43f8193d9e329bba1795c42590c27966082e", - "revCount": 136, + "rev": "fa69ae26cc32dda178117b46487c2165c0e08316", + "revCount": 138, "type": "git", "url": "https://git.lix.systems/lix-project/nixos-module" }, @@ -569,11 +569,11 @@ }, "nixosHardware": { "locked": { - "lastModified": 1742376361, - "narHash": "sha256-VFMgJkp/COvkt5dnkZB4D2szVdmF6DGm5ZdVvTUy61c=", + "lastModified": 1742806253, + "narHash": "sha256-zvQ4GsCJT6MTOzPKLmlFyM+lxo0JGQ0cSFaZSACmWfY=", "owner": "NixOS", "repo": "nixos-hardware", - "rev": "daaae13dff0ecc692509a1332ff9003d9952d7a9", + "rev": "ecaa2d911e77c265c2a5bac8b583c40b0f151726", "type": "github" }, "original": { @@ -647,11 +647,11 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1742268799, - "narHash": "sha256-IhnK4LhkBlf14/F8THvUy3xi/TxSQkp9hikfDZRD4Ic=", + "lastModified": 1742937945, + "narHash": "sha256-lWc+79eZRyvHp/SqMhHTMzZVhpxkRvthsP1Qx6UCq0E=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "da044451c6a70518db5b730fe277b70f494188f1", + "rev": "d02d88f8de5b882ccdde0465d8fa2db3aa1169f7", "type": "github" }, "original": { @@ -663,11 +663,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1741851582, - "narHash": "sha256-cPfs8qMccim2RBgtKGF+x9IBCduRvd/N5F4nYpU0TVE=", + "lastModified": 1742288794, + "narHash": "sha256-Txwa5uO+qpQXrNG4eumPSD+hHzzYi/CdaM80M9XRLCo=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "6607cf789e541e7873d40d3a8f7815ea92204f32", + "rev": "b6eaf97c6960d97350c584de1b6dcff03c9daf42", "type": "github" }, "original": { @@ -695,11 +695,11 @@ }, "nixpkgs_4": { "locked": { - "lastModified": 1742288794, - "narHash": "sha256-Txwa5uO+qpQXrNG4eumPSD+hHzzYi/CdaM80M9XRLCo=", + "lastModified": 1742889210, + "narHash": "sha256-hw63HnwnqU3ZQfsMclLhMvOezpM7RSB0dMAtD5/sOiw=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "b6eaf97c6960d97350c584de1b6dcff03c9daf42", + "rev": "698214a32beb4f4c8e3942372c694f40848b360d", "type": "github" }, "original": { @@ -726,11 +726,11 @@ }, "nixpkgs_6": { "locked": { - "lastModified": 1742288794, - "narHash": "sha256-Txwa5uO+qpQXrNG4eumPSD+hHzzYi/CdaM80M9XRLCo=", + "lastModified": 1742889210, + "narHash": "sha256-hw63HnwnqU3ZQfsMclLhMvOezpM7RSB0dMAtD5/sOiw=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "b6eaf97c6960d97350c584de1b6dcff03c9daf42", + "rev": "698214a32beb4f4c8e3942372c694f40848b360d", "type": "github" }, "original": { @@ -992,11 +992,11 @@ ] }, "locked": { - "lastModified": 1742370146, - "narHash": "sha256-XRE8hL4vKIQyVMDXykFh4ceo3KSpuJF3ts8GKwh5bIU=", + "lastModified": 1743081648, + "narHash": "sha256-WRAylyYptt6OX5eCEBWyTwOEqEtD6zt33rlUkr6u3cE=", "owner": "numtide", "repo": "treefmt-nix", - "rev": "adc195eef5da3606891cedf80c0d9ce2d3190808", + "rev": "29a3d7b768c70addce17af0869f6e2bd8f5be4b7", "type": "github" }, "original": { From 5d4b19d217f678e927e0324a6bba090aac5c6097 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 27 Mar 2025 16:05:57 +0100 Subject: [PATCH 353/492] Ignore result links produced by nix-fast-build --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 6aecdb6..f7fb3ae 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ result .direnv .pre-commit-config.yaml *.qcow2 +result* \ No newline at end of file From e2ac562d31c7666bd8ef23e179ad5bff24e9b4d4 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 27 Mar 2025 16:06:06 +0100 Subject: [PATCH 354/492] Default kernel is finally recent enough for Rock5B --- hosts/sisko/default.nix | 2 -- 1 file changed, 2 deletions(-) diff --git a/hosts/sisko/default.nix b/hosts/sisko/default.nix index 15e267a..9542bc1 100644 --- a/hosts/sisko/default.nix +++ b/hosts/sisko/default.nix @@ -38,8 +38,6 @@ ./disko.nix ]; - boot.kernelPackages = pkgs.linuxPackagesFor pkgs.linux_6_11; - system.stateVersion = "24.05"; powerManagement.cpuFreqGovernor = "schedutil"; From 72ea5f7086923a2aac5007c30c426c0cefa5ec3d Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 28 Mar 2025 15:45:47 +0100 Subject: [PATCH 355/492] Lock nixpkgs revision --- flake.lock | 16 ++++++++-------- flake.nix | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/flake.lock b/flake.lock index 28455ba..a5a47a5 100644 --- a/flake.lock +++ b/flake.lock @@ -464,11 +464,11 @@ "lix": { "flake": false, "locked": { - "lastModified": 1743065774, - "narHash": "sha256-aC1lwnqwHbYRsPfx+lRi32fHRcln0xhIzf0Q7/Lg+vQ=", + "lastModified": 1743151582, + "narHash": "sha256-aPtMrs2Nwg4ZCN7GQohQXTuRil1FCSUI4RdLGxTf44E=", "ref": "refs/heads/main", - "rev": "b918f1c307b314daa44407bac60046630f13ed48", - "revCount": 17742, + "rev": "b52db5e7c120fdf67e914ba9fec648a461e08614", + "revCount": 17743, "type": "git", "url": "https://git@git.lix.systems/lix-project/lix" }, @@ -726,17 +726,17 @@ }, "nixpkgs_6": { "locked": { - "lastModified": 1742889210, - "narHash": "sha256-hw63HnwnqU3ZQfsMclLhMvOezpM7RSB0dMAtD5/sOiw=", + "lastModified": 1742288794, + "narHash": "sha256-Txwa5uO+qpQXrNG4eumPSD+hHzzYi/CdaM80M9XRLCo=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "698214a32beb4f4c8e3942372c694f40848b360d", + "rev": "b6eaf97c6960d97350c584de1b6dcff03c9daf42", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixos-unstable", "repo": "nixpkgs", + "rev": "b6eaf97c6960d97350c584de1b6dcff03c9daf42", "type": "github" } }, diff --git a/flake.nix b/flake.nix index 4b6946e..dc8ef51 100644 --- a/flake.nix +++ b/flake.nix @@ -3,7 +3,7 @@ inputs = { flakeParts.url = "github:hercules-ci/flake-parts"; - nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; + nixpkgs.url = "github:NixOS/nixpkgs/b6eaf97c6960d97350c584de1b6dcff03c9daf42"; nixosHardware.url = "github:NixOS/nixos-hardware"; homeManager = { url = "github:nix-community/home-manager"; From dedea5399af87bfcfd3cd9f98a13d5b4e788d2b6 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 28 Mar 2025 15:46:32 +0100 Subject: [PATCH 356/492] Use `enter_accept` in `atuin` --- hmModules/shell/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/hmModules/shell/default.nix b/hmModules/shell/default.nix index f63cbf0..5f3890e 100644 --- a/hmModules/shell/default.nix +++ b/hmModules/shell/default.nix @@ -67,6 +67,7 @@ sync_address = "http://sisko.wg.aciceri.dev:8889"; search_mode = "fuzzy"; style = "compact"; + enter_accept = "true"; }; }; From a74f230db3b167c1f9ca02b834dd44d349418a5b Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 28 Mar 2025 15:46:51 +0100 Subject: [PATCH 357/492] Use nixpkgs' mediatomb and change served directories --- modules/mediatomb/default.nix | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/modules/mediatomb/default.nix b/modules/mediatomb/default.nix index 7a2eba2..df9465f 100644 --- a/modules/mediatomb/default.nix +++ b/modules/mediatomb/default.nix @@ -1,20 +1,22 @@ -{ pkgs, ... }: { services.mediatomb = { enable = true; - # FIXME remove when fixed - package = - (builtins.getFlake "github:NixOs/nixpkgs/3ffbbdbac0566a0977da3d2657b89cbcfe9a173b") - .legacyPackages.${pkgs.stdenv.system}.gerbera; openFirewall = true; serverName = "Sisko"; mediaDirectories = [ { - path = "/mnt/hd/torrent"; + path = "/mnt/hd/movies"; + recursive = true; + } + { + path = "/mnt/hd/series"; recursive = true; } ]; }; - users.users.mediatomb.extraGroups = [ "transmission" ]; + users.users.mediatomb.extraGroups = [ + "radarr" + "sonarr" + ]; } From 4f02f4bd7f6520cc6d228dc45fcc2fe1318a92c0 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 28 Mar 2025 15:47:45 +0100 Subject: [PATCH 358/492] Disable `zulip` on `kirk` --- hosts/kirk/default.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/hosts/kirk/default.nix b/hosts/kirk/default.nix index ec5d0df..812a16a 100644 --- a/hosts/kirk/default.nix +++ b/hosts/kirk/default.nix @@ -66,7 +66,6 @@ "digikam" "discord" "remmina" - "zulip" "calibre" "zathura" "imv" From fc79fba781f03507b2ebf976c822bec0eccd3546 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 28 Mar 2025 15:47:58 +0100 Subject: [PATCH 359/492] Remove emacs' `fish-completion` --- hmModules/emacs/init.el | 3 --- packages/emacs/packages.nix | 1 - 2 files changed, 4 deletions(-) diff --git a/hmModules/emacs/init.el b/hmModules/emacs/init.el index a36b0de..885ac12 100644 --- a/hmModules/emacs/init.el +++ b/hmModules/emacs/init.el @@ -701,9 +701,6 @@ (use-package eshell-atuin :hook ((eshell-mode . eshell-atuin-mode))) -(use-package fish-completion-mode - :hook ((eshell-mode . fish-completion-mode))) - (use-package eshell-syntax-highlighting :custom ((eshell-syntax-highlighting-highlight-in-remote-dirs nil)) diff --git a/packages/emacs/packages.nix b/packages/emacs/packages.nix index 9b366a2..73c6e96 100644 --- a/packages/emacs/packages.nix +++ b/packages/emacs/packages.nix @@ -132,7 +132,6 @@ let ligature treemacs-nerd-icons eshell-syntax-highlighting - fish-completion # fish completion for eshell eshell-prompt-extras eshell-atuin eshell-command-not-found From 4ba43fb6475ce289f81cf32c60cfcdd229085238 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 28 Mar 2025 15:48:08 +0100 Subject: [PATCH 360/492] Configure `gptel` --- hmModules/emacs/init.el | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/hmModules/emacs/init.el b/hmModules/emacs/init.el index 885ac12..9b685a3 100644 --- a/hmModules/emacs/init.el +++ b/hmModules/emacs/init.el @@ -981,7 +981,6 @@ This is meant to be an helper to be called from the window manager." (use-package gptel :custom - ;; (gptel-model 'deepseek/deepseek-chat) (gptel-model 'qwen/qwen-max) (gptel-backend (gptel-make-openai "OpenRouter" :host "openrouter.ai" @@ -995,8 +994,8 @@ This is meant to be an helper to be called from the window manager." :config (require 'gptel-curl) - (add-hook 'gptel-post-response-functions 'gptel-end-of-response) - (add-hook 'gptel-post-stream-hook 'gptel-auto-scroll) + ;; (add-hook 'gptel-post-response-functions 'gptel-end-of-response) + ;; (add-hook 'gptel-post-stream-hook 'gptel-auto-scroll) (defun ccr/suggest-eshell-command () (interactive) From df2ab41246c6bfd18849226bd207a68f79035114 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 28 Mar 2025 15:52:41 +0100 Subject: [PATCH 361/492] Disable `atuin` --- hmModules/shell/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hmModules/shell/default.nix b/hmModules/shell/default.nix index 5f3890e..0e0d9a3 100644 --- a/hmModules/shell/default.nix +++ b/hmModules/shell/default.nix @@ -56,7 +56,7 @@ }; programs.atuin = { - enable = true; + enable = false; # FIXME broken on bash: https://github.com/nix-community/home-manager/issues/5958 settings = { daemon = { enabled = true; From d0e16f75f7055c2833322851f13f30dda9e9bc4e Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Sun, 6 Apr 2025 17:21:17 +0200 Subject: [PATCH 362/492] Sign git commits with `id_ed25519` instead of `id_rsa` --- hmModules/git/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hmModules/git/default.nix b/hmModules/git/default.nix index d040d53..5544eb1 100644 --- a/hmModules/git/default.nix +++ b/hmModules/git/default.nix @@ -27,11 +27,11 @@ in rebase.autostash = true; github.user = "aciceri"; - user.signingKey = "/home/${username}/.ssh/id_rsa"; + user.signingKey = "/home/${username}/.ssh/id_ed25519"; gpg.format = "ssh"; commit.gpgsign = true; - credential.helper = "manager"; + credential.helper = "libsecret"; credential.credentialStore = "cache"; core = { From f546beea17343fa2b9708e4722952c8f463b4241 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Sun, 6 Apr 2025 17:21:45 +0200 Subject: [PATCH 363/492] Use `meow-tree-sitter` --- hmModules/emacs/init.el | 2 ++ 1 file changed, 2 insertions(+) diff --git a/hmModules/emacs/init.el b/hmModules/emacs/init.el index 9b685a3..bf1bfc5 100644 --- a/hmModules/emacs/init.el +++ b/hmModules/emacs/init.el @@ -214,6 +214,8 @@ :custom (meow-use-clipboard 't) :config + (require 'meow-tree-sitter) + (meow-tree-sitter-register-defaults) (add-hook 'after-make-frame-functions (defun ccr/meow--prepare-face (_) (meow--prepare-face) (remove-hook 'after-make-frame-functions 'ccr/meow--prepare-face))) From 8f73eca4042d15719b12791551a4d1a38ce1575c Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Sun, 6 Apr 2025 17:21:58 +0200 Subject: [PATCH 364/492] Disable `eshell-atuin` --- hmModules/emacs/init.el | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hmModules/emacs/init.el b/hmModules/emacs/init.el index bf1bfc5..557648b 100644 --- a/hmModules/emacs/init.el +++ b/hmModules/emacs/init.el @@ -700,8 +700,8 @@ :custom ((eshell-command-not-found-command "command-not-found")) :hook ((eshell-mode . eshell-command-not-found-mode))) -(use-package eshell-atuin - :hook ((eshell-mode . eshell-atuin-mode))) +;; (use-package eshell-atuin +;; :hook ((eshell-mode . eshell-atuin-mode))) (use-package eshell-syntax-highlighting :custom From dc30a6a4377d9e0f003f1f8fd63621dadb5836c0 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Sun, 6 Apr 2025 17:22:11 +0200 Subject: [PATCH 365/492] `gptel` shortcuts --- hmModules/emacs/init.el | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/hmModules/emacs/init.el b/hmModules/emacs/init.el index 557648b..8148788 100644 --- a/hmModules/emacs/init.el +++ b/hmModules/emacs/init.el @@ -993,6 +993,10 @@ This is meant to be an helper to be called from the window manager." ) (gptel-default-mode 'org-mode) (gptel-org-branching-context nil) ;; this is cool but I don't feel comfortable with it + ("C-c a a" . gptel-add) + ("C-c a f" . gptel-add-file) + ("C-c a r" . gptel-context-remove-all) + ("C-c a " . gptel-menu) :config (require 'gptel-curl) From b58c3c4d31e3f90506d6dc5b15d5a0ce9599f34e Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Sun, 6 Apr 2025 17:22:19 +0200 Subject: [PATCH 366/492] Use `gemini` --- hmModules/emacs/init.el | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/hmModules/emacs/init.el b/hmModules/emacs/init.el index 8148788..c53aedc 100644 --- a/hmModules/emacs/init.el +++ b/hmModules/emacs/init.el @@ -983,16 +983,17 @@ This is meant to be an helper to be called from the window manager." (use-package gptel :custom - (gptel-model 'qwen/qwen-max) + (gptel-model 'google/gemini-2.0-flash-001) (gptel-backend (gptel-make-openai "OpenRouter" :host "openrouter.ai" :endpoint "/api/v1/chat/completions" :key (lambda () (require 'f) (f-read-text (getenv "OPENAI_API_KEY_PATH"))) :stream t - :models '(qwen/qwen-max deepseek/deepseek-chat)) + :models '(google/gemini-2.0-flash-001)) ) (gptel-default-mode 'org-mode) (gptel-org-branching-context nil) ;; this is cool but I don't feel comfortable with it + :bind ("C-c a a" . gptel-add) ("C-c a f" . gptel-add-file) ("C-c a r" . gptel-context-remove-all) From 72782ebb87077800f39de0e5a00098f3c0ded8d8 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Sun, 6 Apr 2025 17:23:26 +0200 Subject: [PATCH 367/492] Use `gptel` tools --- hmModules/emacs/init.el | 55 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/hmModules/emacs/init.el b/hmModules/emacs/init.el index c53aedc..192f3fd 100644 --- a/hmModules/emacs/init.el +++ b/hmModules/emacs/init.el @@ -993,17 +993,72 @@ This is meant to be an helper to be called from the window manager." ) (gptel-default-mode 'org-mode) (gptel-org-branching-context nil) ;; this is cool but I don't feel comfortable with it + (gptel-use-tools 't) + :bind ("C-c a a" . gptel-add) ("C-c a f" . gptel-add-file) ("C-c a r" . gptel-context-remove-all) ("C-c a " . gptel-menu) + + :config (require 'gptel-curl) ;; (add-hook 'gptel-post-response-functions 'gptel-end-of-response) ;; (add-hook 'gptel-post-stream-hook 'gptel-auto-scroll) + (setq gptel-tools (mapcar (lambda (tool) (apply #'gptel-make-tool tool)) + '(( + :name "create_file" + :function (lambda (path filename content) + (let ((full-path (expand-file-name filename path))) + (with-temp-buffer + (insert content) + (write-file full-path)) + (format-read "Created file %s in %s" filename path))) + :description "Create a new file with the specified content" + :args (list '(:name "path" + :type string + :description "The directory where to create the file") + '(:name "filename" + :type string + :description "The name of the file to create") + '(:name "content" + :type string + :description "The content to write to the file")) + :category "filesystem" + ) + ;; ( + ;; :name "run_command" + ;; :confirm 't + ;; :function (lambda (command) + ;; (shell-command-to-string command)) + ;; :description "Run arbitrary commands" + ;; :args (list '(:name "command" + ;; :type string + ;; :description "The content to run e.g. 'ls *' or 'fd '")) + ;; ) + ( + :name "get_weather" + :function (lambda (location) + (url-retrieve-synchronously "api.weather.com/..." + location unit)) + :description "Get the current weather in a given location" + :args (list '(:name "location" + :type string + :description "The city and state, e.g. San Francisco, CA") + '(:name "unit" + :type string + :enum ["celsius" "farenheit"] + :description + "The unit of temperature, either 'celsius' or 'fahrenheit" + :optional t + )) + ) + )) + ) + (defun ccr/suggest-eshell-command () (interactive) (save-excursion From 27fcf24a802c68e81a3731475bb209a23160a664 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 11 Apr 2025 11:05:48 +0200 Subject: [PATCH 368/492] Bump inputs --- flake.lock | 101 +++++++++++++++++++++++++++------------------- flake.nix | 3 +- hosts/default.nix | 1 + 3 files changed, 62 insertions(+), 43 deletions(-) diff --git a/flake.lock b/flake.lock index a5a47a5..d2b963b 100644 --- a/flake.lock +++ b/flake.lock @@ -26,11 +26,11 @@ "nixpkgs": "nixpkgs_2" }, "locked": { - "lastModified": 1742599566, - "narHash": "sha256-xr6ntmiUPXSh9o9mJ7og9vxALMQs1EQhIhWUAO2D1M0=", + "lastModified": 1743801669, + "narHash": "sha256-RxQQQCGqywOPbdNrWGbFyFdcrdrXM4YBHW7vYt13OeI=", "owner": "catppuccin", "repo": "nix", - "rev": "5e303e8d7e251868fa79f83bbda69da90aa62402", + "rev": "07beb389d69a52c4dd5895da9553463c3740a26a", "type": "github" }, "original": { @@ -83,11 +83,11 @@ ] }, "locked": { - "lastModified": 1741786315, - "narHash": "sha256-VT65AE2syHVj6v/DGB496bqBnu1PXrrzwlw07/Zpllc=", + "lastModified": 1744145203, + "narHash": "sha256-I2oILRiJ6G+BOSjY+0dGrTPe080L3pbKpc+gCV3Nmyk=", "owner": "nix-community", "repo": "disko", - "rev": "0d8c6ad4a43906d14abd5c60e0ffe7b587b213de", + "rev": "76c0a6dba345490508f36c1aa3c7ba5b6b460989", "type": "github" }, "original": { @@ -122,11 +122,11 @@ "nixpkgs-stable": "nixpkgs-stable" }, "locked": { - "lastModified": 1743067111, - "narHash": "sha256-v9VJXx7525gMH6S7WesJM84Dr76jxRubATuBJn4L14o=", + "lastModified": 1744337628, + "narHash": "sha256-ghjocOkjH1pSMiyX7h6+gJmLsgcief/+D+Cbcum8HsI=", "owner": "nix-community", "repo": "emacs-overlay", - "rev": "5c22a2387d4ac1e1d64d66489e7d3ecb0a30cbcd", + "rev": "8aa1c071bbcb8a270bb841e4797a0d14528709d4", "type": "github" }, "original": { @@ -245,11 +245,11 @@ "nixpkgs-lib": "nixpkgs-lib" }, "locked": { - "lastModified": 1741352980, - "narHash": "sha256-+u2UunDA4Cl5Fci3m7S643HzKmIDAe+fiXrLqYsR2fs=", + "lastModified": 1743550720, + "narHash": "sha256-hIshGgKZCgWh6AYJpJmRgFdR3WUbkY04o82X05xqQiY=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "f4330d22f1c5d2ba72d3d22df5597d123fdb60a9", + "rev": "c621e8422220273271f52058f618c94e405bb0f5", "type": "github" }, "original": { @@ -387,11 +387,11 @@ ] }, "locked": { - "lastModified": 1743082807, - "narHash": "sha256-qmrCYHVqE6j0TQApfxGx8aRYNdNsqtOrZuH09A+cjTU=", + "lastModified": 1744343724, + "narHash": "sha256-DkiOZlkXbdf6f09pSulJPE0IaaJi1p7sqia/G2kqNKI=", "owner": "nix-community", "repo": "home-manager", - "rev": "171915bfce41018528fda9960211e81946d999b7", + "rev": "f1ffd097e717a8d1b441577b8d23f9d2c96e0657", "type": "github" }, "original": { @@ -464,11 +464,11 @@ "lix": { "flake": false, "locked": { - "lastModified": 1743151582, - "narHash": "sha256-aPtMrs2Nwg4ZCN7GQohQXTuRil1FCSUI4RdLGxTf44E=", + "lastModified": 1744302352, + "narHash": "sha256-QJQecf/Z1rLZBpVoQaI+EunLX5U7c7uYGER5iw00YrI=", "ref": "refs/heads/main", - "rev": "b52db5e7c120fdf67e914ba9fec648a461e08614", - "revCount": 17743, + "rev": "81d476984901d1f00fdcac36a0a8f06cb54048f6", + "revCount": 17777, "type": "git", "url": "https://git@git.lix.systems/lix-project/lix" }, @@ -505,11 +505,11 @@ "mobile-nixos": { "flake": false, "locked": { - "lastModified": 1741101701, - "narHash": "sha256-Kup8HWWC2AR1j2c9pAjXQXLYmuhyv8sRRfX0o03sNQg=", + "lastModified": 1743812405, + "narHash": "sha256-BedQ9Z3+nqtp9BRjHjJNPUeLIMVbTsP3Udbz0b1cUn0=", "owner": "NixOS", "repo": "mobile-nixos", - "rev": "8956d72cf8fa9110dcc5fcbc537adee45a8014f5", + "rev": "6679fd7a8dd4ccf4aa538b82216723861cfe61a2", "type": "github" }, "original": { @@ -569,11 +569,11 @@ }, "nixosHardware": { "locked": { - "lastModified": 1742806253, - "narHash": "sha256-zvQ4GsCJT6MTOzPKLmlFyM+lxo0JGQ0cSFaZSACmWfY=", + "lastModified": 1743420942, + "narHash": "sha256-b/exDDQSLmENZZgbAEI3qi9yHkuXAXCPbormD8CSJXo=", "owner": "NixOS", "repo": "nixos-hardware", - "rev": "ecaa2d911e77c265c2a5bac8b583c40b0f151726", + "rev": "de6fc5551121c59c01e2a3d45b277a6d05077bc4", "type": "github" }, "original": { @@ -632,11 +632,11 @@ }, "nixpkgs-lib": { "locked": { - "lastModified": 1740877520, - "narHash": "sha256-oiwv/ZK/2FhGxrCkQkB83i7GnWXPPLzoqFHpDD3uYpk=", + "lastModified": 1743296961, + "narHash": "sha256-b1EdN3cULCqtorQ4QeWgLMrd5ZGOjLSLemfa00heasc=", "owner": "nix-community", "repo": "nixpkgs.lib", - "rev": "147dee35aab2193b174e4c0868bd80ead5ce755c", + "rev": "e4822aea2a6d1cdd36653c134cacfd64c97ff4fa", "type": "github" }, "original": { @@ -647,11 +647,11 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1742937945, - "narHash": "sha256-lWc+79eZRyvHp/SqMhHTMzZVhpxkRvthsP1Qx6UCq0E=", + "lastModified": 1744168086, + "narHash": "sha256-S9M4HddBCxbbX1CKSyDYgZ8NCVyHcbKnBfoUXeRu2jQ=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "d02d88f8de5b882ccdde0465d8fa2db3aa1169f7", + "rev": "60e405b241edb6f0573f3d9f944617fe33ac4a73", "type": "github" }, "original": { @@ -661,7 +661,7 @@ "type": "github" } }, - "nixpkgs_2": { + "nixpkgsSisko": { "locked": { "lastModified": 1742288794, "narHash": "sha256-Txwa5uO+qpQXrNG4eumPSD+hHzzYi/CdaM80M9XRLCo=", @@ -670,6 +670,22 @@ "rev": "b6eaf97c6960d97350c584de1b6dcff03c9daf42", "type": "github" }, + "original": { + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "b6eaf97c6960d97350c584de1b6dcff03c9daf42", + "type": "github" + } + }, + "nixpkgs_2": { + "locked": { + "lastModified": 1743583204, + "narHash": "sha256-F7n4+KOIfWrwoQjXrL2wD9RhFYLs2/GGe/MQY1sSdlE=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "2c8d3f48d33929642c1c12cd243df4cc7d2ce434", + "type": "github" + }, "original": { "owner": "NixOS", "ref": "nixos-unstable", @@ -695,11 +711,11 @@ }, "nixpkgs_4": { "locked": { - "lastModified": 1742889210, - "narHash": "sha256-hw63HnwnqU3ZQfsMclLhMvOezpM7RSB0dMAtD5/sOiw=", + "lastModified": 1744098102, + "narHash": "sha256-tzCdyIJj9AjysC3OuKA+tMD/kDEDAF9mICPDU7ix0JA=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "698214a32beb4f4c8e3942372c694f40848b360d", + "rev": "c8cd81426f45942bb2906d5ed2fe21d2f19d95b7", "type": "github" }, "original": { @@ -726,17 +742,17 @@ }, "nixpkgs_6": { "locked": { - "lastModified": 1742288794, - "narHash": "sha256-Txwa5uO+qpQXrNG4eumPSD+hHzzYi/CdaM80M9XRLCo=", + "lastModified": 1744098102, + "narHash": "sha256-tzCdyIJj9AjysC3OuKA+tMD/kDEDAF9mICPDU7ix0JA=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "b6eaf97c6960d97350c584de1b6dcff03c9daf42", + "rev": "c8cd81426f45942bb2906d5ed2fe21d2f19d95b7", "type": "github" }, "original": { "owner": "NixOS", + "ref": "nixos-unstable", "repo": "nixpkgs", - "rev": "b6eaf97c6960d97350c584de1b6dcff03c9daf42", "type": "github" } }, @@ -877,6 +893,7 @@ "nix-on-droid": "nix-on-droid", "nixosHardware": "nixosHardware", "nixpkgs": "nixpkgs_6", + "nixpkgsSisko": "nixpkgsSisko", "treefmt-nix": "treefmt-nix", "vscode-server": "vscode-server" } @@ -992,11 +1009,11 @@ ] }, "locked": { - "lastModified": 1743081648, - "narHash": "sha256-WRAylyYptt6OX5eCEBWyTwOEqEtD6zt33rlUkr6u3cE=", + "lastModified": 1743748085, + "narHash": "sha256-uhjnlaVTWo5iD3LXics1rp9gaKgDRQj6660+gbUU3cE=", "owner": "numtide", "repo": "treefmt-nix", - "rev": "29a3d7b768c70addce17af0869f6e2bd8f5be4b7", + "rev": "815e4121d6a5d504c0f96e5be2dd7f871e4fd99d", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index dc8ef51..440867f 100644 --- a/flake.nix +++ b/flake.nix @@ -3,7 +3,8 @@ inputs = { flakeParts.url = "github:hercules-ci/flake-parts"; - nixpkgs.url = "github:NixOS/nixpkgs/b6eaf97c6960d97350c584de1b6dcff03c9daf42"; + nixpkgsSisko.url = "github:NixOS/nixpkgs/b6eaf97c6960d97350c584de1b6dcff03c9daf42"; + nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; nixosHardware.url = "github:NixOS/nixos-hardware"; homeManager = { url = "github:nix-community/home-manager"; diff --git a/hosts/default.nix b/hosts/default.nix index 2ba0e8c..8dedf86 100644 --- a/hosts/default.nix +++ b/hosts/default.nix @@ -92,6 +92,7 @@ sisko = { system = "aarch64-linux"; + nixpkgs = inputs.nixpkgsSisko; enableHomeManager = false; vpn = { ip = "10.100.0.1"; From 1f41b9642ae06c4fec4e6da717f618744c08ac7b Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 11 Apr 2025 11:05:58 +0200 Subject: [PATCH 369/492] New `pike`'s key --- lib/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/default.nix b/lib/default.nix index 9f885c1..724e0cf 100644 --- a/lib/default.nix +++ b/lib/default.nix @@ -13,6 +13,7 @@ picard = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJ1+1z1IsLVJ6aGarMgzw3NbmFKcpYVgdUjl7xDsewxT"; deltaflyer = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPETMwELvGTnhKJbpK0oFs4lK8vm/kV9KdgL9wufYDDQ"; tpol = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIQxHSow2l0TDWTonBPPaGvTgVvMS/xsQOf1nHnvLSwV"; + pike = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPx3Hy9L8w4mpr5HFcqLOr/wUk/wJeB9HjcLy2tt0U+x"; }; }; } From d9fad9be8d0a906eb81aaea0d8f823424c60d8f3 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 11 Apr 2025 11:06:13 +0200 Subject: [PATCH 370/492] Rekey secrets --- secrets/autistici-password.age | Bin 1865 -> 1263 bytes secrets/aws-credentials.age | 47 ++++++---------- secrets/cache-private-key.age | 45 ++++++--------- secrets/cachix-personal-token.age | Bin 2221 -> 1619 bytes secrets/chatgpt-token.age | Bin 1327 -> 1437 bytes secrets/cloudflare-dyndns-api-token.age | 30 +++++----- secrets/deltaflyer-wireguard-private-key.age | Bin 1680 -> 968 bytes secrets/firefly-app-key.age | Bin 975 -> 975 bytes secrets/forgejo-nix-access-tokens.age | 44 ++++++--------- secrets/forgejo-runners-token.age | 45 ++++++--------- secrets/garmin-collector-environment.age | Bin 1713 -> 1001 bytes secrets/git-workspace-tokens.age | 52 +++++++----------- secrets/grafana-password.age | Bin 1644 -> 932 bytes secrets/hass-ssh-key.age | 45 ++++++--------- secrets/hercules-ci-binary-caches.age | Bin 2241 -> 1529 bytes secrets/hercules-ci-join-token.age | Bin 2092 -> 1380 bytes secrets/hercules-ci-secrets-json.age | 50 +++++++---------- ...hetzner-storage-box-sisko-ssh-password.age | Bin 1653 -> 941 bytes secrets/home-assistant-token.age | 42 +++++--------- secrets/home-planimetry.age | Bin 564741 -> 564029 bytes secrets/hydra-admin-password.age | 43 +++++---------- secrets/hydra-github-token.age | 42 +++++--------- secrets/kirk-wireguard-private-key.age | Bin 1681 -> 969 bytes secrets/magit-forge-github-token.age | 46 ++++++---------- secrets/matrix-registration-shared-secret.age | 43 +++++---------- secrets/matrix-sliding-sync-secret.age | Bin 1715 -> 1003 bytes secrets/minio-credentials.age | 46 ++++++---------- secrets/nextcloud-admin-pass.age | Bin 1644 -> 932 bytes secrets/picard-wireguard-private-key.age | Bin 1680 -> 968 bytes secrets/restic-hetzner-password.age | Bin 1888 -> 1286 bytes secrets/secrets.nix | 11 ++++ secrets/sisko-attic-environment-file.age | Bin 5999 -> 5287 bytes secrets/sisko-restic-password.age | 43 +++++---------- secrets/sisko-wireguard-private-key.age | 44 ++++++--------- secrets/tpol-wireguard-private-key.age | Bin 968 -> 968 bytes 35 files changed, 275 insertions(+), 443 deletions(-) diff --git a/secrets/autistici-password.age b/secrets/autistici-password.age index b9bd867f05a8fb585b0b2100ebdcc708ad033195..1d48b3d53fdb592cb90298d3953604ed17b7718b 100644 GIT binary patch delta 1221 zcmX@f_nvctM!jQtSa?*qbB0Srj)9wBn59=>NM=ZqPo7bDX=aLNzO$K|f3Zt&m}640 zsb@)2sD5EYlv!1Jeqm@>siSd3kSSM`kzbOpi%Wh`PIyK^p+S0Ds&RN&S-wYja!_8O zwpV6VR%WGHhPGEwSV^H@gilF;bD?u?Xo_!EvTInHYrUZtmxpn3sDWpAq@{OeUUr0O zS$SoakCC>sd0w(-Zi-p3PlZ9Sk7Ht(M|M$RlCySds&}?yieaf)lzUWCO0Zvc8CRfZ zxtXP_MMjyUyK!iFX=P!qaj09eQ+QgKQBrDZXjw?Qcd$v8N2+0PhO2&Mk(qyRdR}2f zm3~C1MZHO}pNkh)NNJf%P*7q@YNWBTPkK~gaDYLQWmu&_Mr1&`V@{B9Xn==nMo?gG za%p;TuDN%3d2qURrjdu4r(tk;Wqyh!SGGlVsB5NSsI!HUXR>=)Wk8a1xnD$uXHbek ziMD=ENfOb}7X&G0Ad9jIGre}ahlCMv; zzh$v;sdHjwa%fgwu(Od*RAh>|cYcvcrJ;$JcZ9Z^vuQ}ES!P*Ma8Q0kx`AJ2V2~46 zhNFRVWJG>sP@zRhRfIueNSR4mMpR&se}X~IYZ8}>zl&jEs;Rzvm{+8ker1|@dZD>vaY>YM zc(Sp#Wnj2(Mu3a6L6&xbVSZ&~K%st`PkniTQAARbk3~pGRfcymS71~`PGLZrvsa)` zic?ZSR(e>veuZB_KuNxZdxoo{r%OSusgu4>Nnl_;m#&>cadC!jYKoDmsiCEUex*-} zd!T|rN_nM8NV2z|PgO{yX;@UDc}Qucg@099K%u*(vzfnBQgU#XWtFjKpd*)lM14eN zWJzF@rIV*=MPaa$c~xndNusl9ils$xNmf;!pIf$jM3R4gsTrnq;klkZ=?W!b!D;$w z1qK0*2Ij8mX0E+_Owlay)#iqH?3MLbD1y+{?K#A_`KHL-d_9Biyt@oPyjfEQJTfOE z%FE2BpwiKm>-MU-_h#Ivuv9E#waNT&HsDU${>hSW8>>U^COuf&`sJp;M?o(w)ipn> FlmJhVm>B>7 delta 1828 zcmaFQd6I8}MtxF#UW!>>ghzf#mVtj_QJJe#m`kWzS$RgdNxEsVWs+l}Yf)*SnO9)3 zMWIJ{nW3qBs*9yzajCweb6|Q>gg;k?L4J9mZ*oeRe?fLypkb-Mlc9fbVRDhXW3ox0 zM^=ELe{xcww`+)@VXAqsb6J+9Z%(;sad1YsTUkN2W4&nvSD2@^acH=3$Dagmd@ zXLe*kdA)vepm7qHZ%CR)l~+-Kes)wvdUl1SnPrHVNoa6{NkF-Gp?*NJPpD^LKxI@; zlwUz+QM#Y6SA}c}BURfn`KWMZKeTZb+4(xhGeCW^iF?dSymPaaxM8 zaYbHQcA{x`Ze&KHbB2YvfxA&sL2#~VQH7ztXRf(-aavJ^M`*E8UUqI!MnH*gKxhD$ zziCxvavxsSV1h*4=& zaDic}4aZv|JFv7cM1uUn9FL1b1%hH*rBc(QR$cCM*K zS#W^4WlnjjUv6o+S)Ng0U`TRlV7ak{d400JeoA>{Qbbv#QIuOAm$9)^N``k%ezI>- zWN<)oP++EobDob=rl)6~MV5()k42GbK(V&Bm%hIRm#&>cadC!jQE{R|phuChz9W}k zg=!JPLfANBVWDYKx_h1_ zmup36W`3o%nUjTwfp1P(j%THJK#6-{eqKPTWp-siNt#!>ms>zcXjXY)WW8UMSB{sN zp;Nv=Sy4)0poM2%Ss+)SnYo91XhmMWQ$(eyW2U=hny0p7q(`ntUXZW1TT)P{w?~v& ziba8MxRG~gplgmvlDng4Zi+!haBhWJzHbp%W|3v0dsKE{eq?rXo^zke`HBmZdOL6LA{G(o>`D*Qn+P) zzPUw-kEc&!aK2ZRSw>_aS6GB)k#PiU!+bCzp%SaxorPmW1d zrJrj_xw%22zF}pAM_NT?L9t&}R8(b-caC?dHdkbXnO9k1aD;n6a8zPsS#e2WmQz${ ziK(Y|RYp`=W@$xe1&3*tuWMClaOC8>Oycz}MxI4prd2sPK9NqjMxol~IeuyRNmWS^ zzWE`^t_GEEPKmkUp%G@~E{ zIf20zuBkae;f}DJlA2;65OImY-CrU*T@#lowJ_6&UDUUT}-)*UhL+k?U7v>;a28V7?A4b>T2d> z=wp^$Xr`SKnBxu4m@wj!-Dgp zf|7#W>K)w-ol5*7D)YH=^c|xrL(x4|OpCd6b#)a2N-829BQwf!&5T1*yh44oz1@-wJ+l)doXXPkgUv#73L;${ zgB-cC!a@|%SuJzEZg*;#xxW9*v!r$BKJ)!8G8Slg$6L#M&Pl)hL*PON(HXA+uX ssh-rsa /AagBw -LejiskurhcggIU/f+WpXpYAU+5Ct+wgO6qLU4l8Zw991t7+LQoDYdZThQt4aFDRY -/KyNTJD5+SvobJvPpS0vwJeITL6c6wWmlBhx4WlhsCWlSKGz7jKxw4JpNZamfkDN -fDt7RKJI9fxoDIJGVi5BjScR7GfryzpXFu5txVx+Hp8sWckl4US9sPxTGxJ/Qbc6 -0QFAO+qnm8FqtZWH1GZiJ2IAqc/sD6FHfd3aKtQ0PTuHoq11L0iSWRAJr/eW2EGJ -nGEp/y2EUkwDd1z4FcHQHoko7j6f3friNHZH9I2SCALonw+L1SrXHiYgWRx19KAc -xaLu+VjMUQ8LPN1zW9J8sUQWle1AA08x11EKB29hKmXE9clgY7Jx/zKp3EDgLIbU -Pg531bppFse8I0xD6TgQ/yWDZfXTIr3y67dPWxjKf82dDxCKJk8nYW9uIAPjLTdk -MkqWtsiVi0++HNMQoSlZMOFTiPyCGRGovmThpjpPP5GqGBUQmNDdP2hs1ZYoAmw1 -7dlj6PeGF50Pkita966qxbtAX9Ru7fsgYi+E5Mi067fgVSLg1i3Sk1CbSbxqbw5Q -BkY1851VMgUBtmjsOGdyDTfITFThHOcjd9lzLrloPLeapOQ9Z6k/wJ7f2A5HyPL4 -zTJWZ6zcFBEbfeDtFtntwoaZ247AQAJC9unA2AC0xhM --> ssh-rsa QHr3/A -rSEk04k0mOPyll5cN5D9ktP9WTb39cUqFX8EGG8BhIWd9xwO7vF1xWXtCzpDOYCv -PxfqiwCsNcCCNAd1CWYT52PY6P9zaTOV/ptk2U8nhpi8s6EDdyne3z8zR0SS1Wvz -53Ml1fUjiTguulzANoRnZtEsaqoF0VPW03wjkTl6XUZUrNMC0Kgq6VP1tmt0kn08 -eGuD/P8BGiaaKAVN1iJK6U58O43Y4uB0od913BgALKsBjtcH4WvHcgcF359YrdNx -qwQkiWTDjDtuOKm9djuZyuewosRAYsCZmHONmNnMGMVeZbcUipFMHsjeU3CfidaE -pfxnAqB2G8x1M8qg9w7IiOxH5cH/qcfGk9yIxt25E0pyvaLziYCsKxzhuwnPW5sR -ZOgIeECljKTywStX13/ze1hlWikj5ej3JerEbKn1WOD8NEV2vPP/9G9EHLJth2fT -Si+2ZosRyWPmg1M391Dlr99Rjb/mXCtW3XBX9GeuL/puwg3I9QnGo5CQHx+GarhW -RBcRO9SAYhoQtxba0/0mm80RxKn8Tdbe5ej6yzD7gdkywTArIRM/rMLLyKi2Im/k -lDDDIjYp+fje0iUaQQO6K+hhW01EnG2HrELdq/VYs01tclGPdK6lI3lloeOXJ96c -crlJfD+b5tK06w91w89w+itqUPIgZsbiq5qVFhfKyRY --> ssh-ed25519 /WmILg RogWvabCGwzKFKQ78EVKpnpupZr5tKOXNsL6mpE1pzg -QQcSAgC6Lb/Fk9eYG1q+o12ty/KyhFJbZyVB+3ANSxY --> ssh-ed25519 +vdRnA jBfvf1o18lTbKfx2tKMzUJBmws8s5MMwGDlhUDHn5zY -nZLNNbcy21SXXlTLT1tCRDfvlYOE347p6R4CLmEiWw8 ---- xARfOI6GMc1FZ580lD6fGWmk2AjJVIoxsD+YETvcT0o -mB'ڑ"q -o3fxn_lG'U5:?Qɧq-rLTvǜ~'i{DžU8!x_8PaNxdU \ No newline at end of file +G5326/E4fSslYqgeLBn+nmuWUxw5o6219p96KM66MmIErHvoLBXgV9jgerpJfcuT +4EevQaFwaQCvbywZT9YDSEDeM4e0RiAmpAHN8i72hj6F6dF5A8ScwDsE3LqHyNBA +vSHoDTKi1nuS4qC9gx1LFYG3xGnCaQ2oN2UJV7O3V8KUqR5IqDCGB6+/5RDRoXmX +Kc52VY2OOA9n4Eqz6y0aQSlSUQ1iWejzgjE53cOL/Cyb6g1GblOWknxlvnCk6uzP +JBU4tBbUFP+WMfnDkwBEuUWj8J2gga/bXohgyFa7Zk2WWtFd+2IFNlm1MiCbKDnm +pmXmbGcYCPH6xfc1QmVyddEqeqcYlDmVg+0ZaHOZjj4MC344p7wbBsCmfx+Ijc0D +bhG5VWnXzvWx7HJQlZZlB7zrp2K4vDB2mI9QPmyvgEbZkx9KNO6g83M6tG19hF4Q +garJ83QaWpMlfaClvgNfjZayuBjVTH3jNhRVf5U5p9C9lVx2zDEMaEZ5nL0ayeR4 +2pN0gSFiyjODEoRY43WUc7qvwBskdNsBpKkICxZjWcuayuO2pCTSoVeeD/YJ/m9a +aL1RVyELvbefcUS9A3Nxk5hxMmQlkjgMKpfYGS3QVmmQfTnHcuiJXCAsVkJU3C48 +6SA5387h/shHxaOL9RyTBeC/1qklwOV6kqxwROQbSQ0 +-> ssh-ed25519 /WmILg I+1/kLgE5kycRCq+75V9rIo35aOWpsrWAkbaZDZ+elQ +5g14cfb+Ig8g9k4mVQ9ar0aycs/8fYMYjZPJZy33fsE +-> ssh-ed25519 +vdRnA WpaITQ02oRuz8bB+G0sVPCdBzugr9/nLPdsKQptGrjQ +vbfFxDOlUj3FVKXyoawkXorTmPvY1Z75L4f0cP66KDk +--- JdH2zcNZJNeRPZNA4EvSMcnbO4nMZy1QT+DyDsZsgOY +_31eMH8Uqsc21Tn⾯(NV r+;7weMT|OWmb[Q'jqrLG6a5F>Gj \ No newline at end of file diff --git a/secrets/cache-private-key.age b/secrets/cache-private-key.age index 6444d8c..fe37e44 100644 --- a/secrets/cache-private-key.age +++ b/secrets/cache-private-key.age @@ -1,31 +1,18 @@ age-encryption.org/v1 -> ssh-rsa /AagBw -P7Wn4/FoKxWdlxKlaSW05cajdFzxCZZaASHvHHvzJGxPsX/gmCXpsZ7nFZlJvtfV -ENGjG0inZZhegfNue/VMiH29ovq9+hjl5o9uZlUBVDoYAU4lthej89CCbbwlbxrT -AdKurfwWiBPp7N6WQN//TrWuLgyxnUeGV0BdWZjUeS6df20RDCWRcm34MugO4pDh -S587curSguesGm6N6LF7QpyXyeR00OGNWvh5709EKIveDh7iwGZ+NAvucI7hjxbP -Q7puN6G/SbBVA5dPQHwP+IAL0I5omeBNx+HLrjMM6ArTUNfMjhbii5b16eTKQQp0 -BIyXh346Dk4RD9i3az8THEOk3TGUh84jCMCTcW/rYGprz4iPaC9LNhIso8wnnGzE -xaAiIeThrrcRrWBxU6FC1ACRgiSXrI/MgPisTHJqU5AkxcL3N/bd24dXJWj3+ZLa -iPyhHGCfoPkoyeKLlDVdWzygVHSr5FLH4Dyxv0WOM7MrnkxVD4jQwAtXu8QsB+k8 -2E/KRS0lPmklY5vWgPXq7jnnOztk3OUCaXhJsOo+nAjLlslpJJz9WLryzEY+ojYj -p90EHuhfnVx/H7J7BpsdWAjN38cFEOsMIC6QDPEa/P43RoejYcebM/i1hsXdz1HK -3FcimDGmMR9jYoERUlBONZOGn2WuxjPJ292ehaQnXQ0 --> ssh-rsa QHr3/A -ta6ztr+/tCBmQKGub2ZCB79SrN6Nna3fxStfGaLqgmEUsnM2kAh6Hp9+W3jbFEWM -5L2mMusmoytYtXcR/JjAK8F199p/TrJifXHTnot6dmHKm428tauFRjMxsbWsaT6i -X2rqtrIwXW6QEUFuya+WHI6t29aMZipzmhXjpTdcWyorUyGyNo9YaOt5ohRXzTPW -f3ELf1aYVBZMxXmVC6E4cbH8dOWKlus/TPTcOirJzR0m3KjeAr5CNRct2qIVxixT -WMViwu9xQgWjcUfra8YKO8LEBf/PaEk5BeszIHt7qwWr9sJt4v+206LNQvW8row/ -sIgdllzVklaqZtkukger7FHkxSasQXLdP1DPE9h4bwSN1H2pEMgJlAVGt8/m4n6T -w5qUeDr2HV5kuz/kjdJl1hv6Ihf4de6yS2+7jtMN1FnICIVq67A/shsvA/JDNoOz -kLM4WdgBVsqtGCEfmXQCRbz96yBb+ie3N8raJDKhNwWuQ4f3YJNwpVKmySrfUTly -WFjWeuTDXv8LwHbUWtzFaXBmoS97EIlRibZqK0caOpmUU+doG03vDlJskfEfBD00 -nKBPTIiKGoQkbnhMl8YMW7uqhZVvJbPtPGUCpq2w87Um0lh5BuvBTPxNEQ26A/sJ -XDByA5rIZqVIw29CjhBsZptR83nhFSa3OUshxoYR6xY --> ssh-ed25519 q+UPnA Y8JxsQsN0qxfPDBVhiVuUYL3OImhUc4RyRpxr4Fff1E -Ai1PLAYzoCrm6H9P+U/jA93IE0Mgc2B71AraDnsB6Lc ---- EAiuid1wt44o2ZGCLWO0tCcWm2ao7CuHrYdGmYx+yFQ -E'ڨJ'T\S0:#z -`˵iaGvBs;CH=řNu R3׊BzDž+c7%Zuw)j;i:s -Kia=#/O)4 \ No newline at end of file +rWU4MBPVO+M7FPMzApYCDMs3hDRNTEH0lCTFiHHRi5GIWVtxRerOfoCh3M++FICS +vErr1NOhTHgznXSLUi8LROC4CHtPBxJUA97yijzmWmcRRnemm5dUcI6xfsiNPRFZ +JhMCTgT2USEjHTejVzHBl/kfggpAiFmBX8RvOVwaX1mGhZ4QEGePfl0n1l3KZfsb +recANprjssuAzvB+Vj20NTgjtlGYV9QmFGPTs3xCy+9n9IUB3NWAdflE3omdndco +zL8OSCOEXxvrqXaokLbESG1x/RPlT4hNRPBmNB057GJxaC94zOVYc75WwjX3iED5 +f4jczIYWRVwJcA2B1B64dQB7HhX7LOmxNARF4R/d9lao+hXE28IUcIR8e62nDO2i +jeDV0zv2bwO3q+3FAAz04reR3nILIbPZ7r/fmPjFQNRLNxkRQ3Ba3PtrA14pOptI +a4LFTCJo3XwMjDfRNckb1s1K84qyXun2VOhVStGBlhoHDM70KalNRykQqL51+GEH +jZtsj8DM9ErY3oNfrmMDVS4fahb7S0LLsmj08iMLRNfxuUm1X+WO3V3oSI8HF7Y3 +br4+YtKCPPi0gsH03uH757WllNmx+VI2oZuKmt+yEqreb2EtMTywASNANazGd3k3 +jTm+L1qBNmhRWMA7abl05xG9f/nTneaxzSxkraElWIE +-> ssh-ed25519 q+UPnA RD50yXDxXVYGmYUZ1ORy6zMVaTqBdzKmitvYNdTCXRI +Yxi5TEquvJO1X7fRR+TkJrxbbc3R7wBKzCX6DNI/5f8 +--- ctmSdUA9UXwm2OpTPTKSOJmOQOonUZ3fJXOSRuWEwcQ +ۯ +y^2>E nAL4bg¥%JJElC"7/T?n!'LIx6jOVԤ=ӂ*{`QO4M.ƏjAQXjF-rZ6 ' \ No newline at end of file diff --git a/secrets/cachix-personal-token.age b/secrets/cachix-personal-token.age index 94aa4ea62ef4a7b3ba5be22c9a5b4f84ce76e9b4..cb08b6fc63130bda4ae8aea9f758acccda83917d 100644 GIT binary patch delta 1542 zcmZ20c$sH{Mt!JdWrV)5u}OGHT4ISwN{Y5oh>vNBNs+Tfd4;~dsYza#rDc>wV7PNY zKzVRPpl4>Pc4lQ_k*j5Cc1lWcs4thBeq=>PK&eZanO{+fx1mX9MWla*vrC$ZyFt3X zVWhW1a8jg6hDTy@xN&HuMOku4NJy4bslRuUtG9EIOJIJfNnuWvv3p*K zvu}!jRlRninL#L*pOKSqsD6HGlzD_jMQ&oUl zN?LwZPGC@8Qf{`sQ>kyBTSh^ig}+${SB8^+k)wx^OK7lLdP-7dzLQB#Sbl}4v6-WO zK&7{{QDTK-seVv}yN^*-P?UMPQD%g*MY6AUQoT`Fj;~orxFJ`duUVpBR=T61i)pz_ zdbUZTQA(k?xkqA{Z@!^>nSZitQJ8UIshf{;MS-`Wv5Rj`l#5$Nsb{KxRc2<5=SZ zf0>0}T0m&Hb6#*+VQD~Feq?E2c5r@Zly6vWXjyoqv5%8+xlyHSmSu2cUSUXfk+XK1 zbA4f!pRcoLS%6Dn9#=)ar;nLMj!}S5rAeBjV{x{2d1gSQQD}Lfdu~)|v0@^pLbApYL%&(n^(GDNCuaOr*o)jKvZ&|vqhSpuaQqurg2_`M_#CB zL~^LBSy5O~X+VLuaYRmLa=CVLK%sW2cYRu5k+E|{L7{PkOQ?l6SGtcyVPSZAXpv`X zic5uGSeS=dzHz?4X{3iiYNA_7fOC#XaZy2*XR4tEm#&>cadC!jYKoDmsiCDpp>}9M zo}+?Uwq>M|ab9+%W2U!bX}+6Fa!8?hai~+aX_TdTREn8XrAcU&QFcmDc|Mo7SAAYp zpntfrUxAyCr%y#lW@eI!QB{O_QDRAQuxm(Ah`VK4lw(=CVO~1Ab^4V)Dei#^xgm~a z`4#S&*{LQ0QN_tQKIs)n86K7X$u7p_W&uX2N!lq!X8wi6LC(HhWv;2&l_lXBo=&NO zseuJ~UVc#$S%DTNRYi%Oey*NXRY9(f`d(3a>1l@flN;H@!%K_Hy~->dT@$l|14_dk zjZ3nOjLY0CO>@$dO)d3ZGtvV5-SYFi!vexQxjX_xO(F~2a|=9*GAvyS5-rkmOvA%+ zgVW7@-9t;v3oY~`vph}Ba*acMC%<1 zkwH~ufeNW!CIKPd5tjKO`6iY*-aZEPIf43?sbww(={det#*Q9=KKh34VWp{6S?OF6 z&gE(0X|AcszWK@dm5KV{*@hNXrs=7ru2~gc71`#INqz>ADcahJB^F$|y1EMPRZ->6 z?nPdKDS^hBCY2HX$(GvXfv&!JNr9#wWobT!#u24XdEP-)`Jr4F9$97d&sO!TpH-%~ za8~Qin0hz&pH6RbSSCm>{~~tj#U}G3fAbf8biQ%b;xW6P{IjC!-Io8Il1`>3txRTF zTjD35u_5lc<7`p!B2n(}*{oHZ$qRWI{*}8a2k!r#XwCYmcX8%)wb;-P7o?_nbxPQC z#Wgl|GNm^AME8{C|7w{q^AUSS?jDYp-C9RyTmQ>A=K6G^%G_7>v)OYw?H?3mDQDNs X{+vIv>DT*j2WRd+qx^5u4?9l)B1;se literal 2221 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 delta 1285 zcmbQsy`F1=M!l<}OIB`pwr_EWSAoA_R9I+wU~)ydS45eSTX|%TbCHEnx`n@MR#sL~ zWo2HjSx~r1q?=QoL19REdZwAFZyuL{dz7!2X|_jriEp~2lc`y9m5ZZgzE7fwQ=X?u zaj>=1VN#xNZiZojnU{Ncgh@nBdA@&WiJ_5uh_-Ql zkyB2FOTAZlnYKAsUPP+4xpst$TcuZcg=!1xrtwan|pDJ zpKnfPX{b+CRdR@%mrrn-ab8tnfvIb0shej}W_`MsrFNyCrzw|vRH2)PNp5CvmT78K zRgq(nyG3x3TX9jSrBi8cxO<^XWN?UcSaOD`uYQGVfsco_WpYx8X@zOAg==J}MMN-H zVn%6InOl;!ewKcjleT+=OQp6^m}g*^p;vOMdwOziu48~vM6p+4zIISjc6fxoS4m|^ zNWFfJ)MX6Vz zmtk0FwqrnWWME!qc~(ZgbFpc-TSR1HX$e=PsZ(x|bBVFPg=18Rg@voTZ$yD{KwwU3 zM5UueK}MlVSc*Y_VOd&|g;|J?NrYQrl$EQ#TS`S*WK>{Yuv?xbmv%{7Nnurib76W! znsbz|e|D6SpQmwZvU6E^mO*)NdZbyDQ*xkTrmJ)Ej6^>=4RhE{O5$-sDODw9E(YPDT$z@o>4yGg?!}40E@nj~QDy;Nk^1^& zCI-$%0b!o*j^4RuIU$MK$ra}1T)K7&#l;!AsVPRLriPXZh1#J3d5#LMW|iS(;ZcRz z7D@VrmHz%l^{L*DPHvW!McO9Ge#HR+CPpQu&Y`}Mg-(H7;iblTCZVMP86_5;&P8US zP6Z)Jeu0U(W|7$j7S2f(g~`blX@#b~1-=;8>4)cf`lKs_Mx;82L{ypiTSOEVd!$#C zr+Zi?CmDFT>YEvRWd?Z%d)1oghUwSXL?1Io4BW=`_3ZEr>L-8!PCXh(J?BxJjf~6q@p0L+%n%VBR#k> z$GF5PyTC0d!Y??|(lnyNDKgW7E7IH}+to3pzN9idC*L*7%QrYF)6qRS#W@9W%=P?_jLk{&R&kl04tv$mTQzOH&@Gm{ zS?}y8dU)vepR7Cki_1s6 ssh-rsa /AagBw -qbtCO62bJ2e8tUAZHoGTjyrbvp/nkh4XUeLJDeuZNVsUWuvmAyrdb43V4x8cZprl -90ac8YG6xCZ8Jjq8KYV/CtS08HSDLR09om673lrQ5huUYu1kWVUatmH2102mQYyi -tlRNx8MtYWlrEgh2cw1E24DJhzUILvW13yHfLyYH052Xaj+uXFRj/c7AyYSoOgzQ -IrfFU5yncmC6IMiO5/S9TGFLpq8zL983JzeZuYKdYXW+MiWaD15nxzsQQIgXI6YH -K8GYXcugB8O1FisjKw8edYr3bRbHYNNSK1U+v7Wu0ge9f/FXLv2eDKQszcKPxUCJ -XLHi1A6PyHmGlAvYfbj7Dns7KW4DoMmg+Low6VQ6yORbPlN1bbEcjq0qE6f+e6TJ -QQT7617PkmL1KVw2EryIql5Cq7ConTNQaaj1118mjBpW91b64vOXOmWZfOzNo+M1 -Cbsb98Q0VyK2dXDMwPNXW1dKxDb1TGOrPCg9jIwGASco98MTeHFV3/G2F8n7aKYZ -8erixoeKQjyZtNxW2Phq5Wmhjif22qmfJ/+wWvB43CSzLf/79Zcf6Y/qrdqwjzED -fI3NhbAlZVsywBXQnTpuZlN1CE+lR5h0QtJVDy4CWhj/SbucCWL7hmtG3CW8Covq -sa0CJMCtfX71m+h8F3v9oXxlg7Mh8j9c9dHGIbzAYFQ --> ssh-ed25519 +vdRnA 0FOXCOJg0HIZ2yeW3PKHHOQxtJN6d2L1z6qtW74vxXw -6xthzPbBs09E4iTgki8bxSvp/WhnO6AqrfL8ZEfYrBI ---- eH5jp9jn2nUTrUHVdGK6WF+cyms4icim/UjLByNsUOw -2 >eo\jrY3e@q.s%>yz[9/ !B.lK4\* N=OtW]龽Չ6cR^|H+~ԝ<ӸO*T=uM~_JP[ \ No newline at end of file +hD7PDjueXimBVI/rjcYxN77LHV2eGytKcUbmh17aSL1CNM+eriURFao3tj52Hiaz +3VMB6FxWUk9kzgjMPvf5WZukuZ2WbpPH8xlDV+6ZH7e/IzmjIfx8Ny14Mr1IF/Rx +TBiCIAM19/1/mR9MiIBW85bb+Bb/waWIZAgxW3N1RpqH5+vAVqx0iY3XRF5+0gOq +blP3yEw3QaL6FuY0+a+d/TnCsrz2Gi1Rba9oCUmkzOP96TsJYdN58Ut6nrHFkURK +mShL2xBMLmfA8Z5ep+D8ueyQbcYpeU3KHcIcRM6dRTwQKvWXAVkRt1nUGasKrO9Y +oJT9BrcxjtqgF/xhHRjWpamjFSI3mlJnJNEbruddDwQUccrJOvEzvqZ7GK0WoFX2 +HmhdDOiocMGWFeBPAKlNtU3+QmtZvhvOIgbjKhNxmCt1A/qxfvRk7Y2IDIBo+CFo +sKMrT1tCo4UYaJdZYl64XYNCQb3C2EfO7Exrq3d2urNidzUbr9OBx7CCI1nu375c +Qol9Kr28fLtxRuSZlrqIe9vKVYyLDPznrRlh6TmgqmMLIW70Y8cZwMtT8L8sOkcm +A8MoxpWFzK4BKo0Iqmw6eZ3nx/0LAzkz005ZEwrmi2W/XxOWJgBiaLmu7YwnoGq0 +gzwwvA5V5MT6Iy7FzkQpMi0h/H4MZ0mcbihKdPun85Q +-> ssh-ed25519 +vdRnA 23Gviu8hfWCEBPHP7xYIaOx34kFsxJJgJ/BNUDlb9Cg +ROiMY2gw/rpNBmJnlRVb7Qhi5+8TY3Velj8gEZcaedI +--- dhmvfQoCjuRUJtvXNI/eCjH0W+IeJm8bFRvYk1JihD0 +qMC,݈ԝ9-\KJ]J(Sn.Qp~Z$e"픒\'rSlu +UD<Սv]|/g[ W_>-fl8|wيlB[\.k(W{=w 3N}qG-wMb^Q{ \ No newline at end of file diff --git a/secrets/deltaflyer-wireguard-private-key.age b/secrets/deltaflyer-wireguard-private-key.age index ed27d8bdedd4bfb258cb8627f488874da22f5deb..476ce1703964fb797bd169a383a14f022d0893c7 100644 GIT binary patch delta 942 zcmbQhdxCv}M!jEUc9?HfXn=FNV{lrrxnHGmvA2n1aY2%QdO&26lYdx5u%k&%v3qJ# zsAXk{N4A$=Zn;~iWqN*Iq+4D=k~^2bcS^9UN2arTRe5khlyg>;MOKQjS#ViiM!H*y zk)=~nQCXskVMswpd1y*bU_oJ&x1mdBsFPV_Kt*M)cfGzjS7cUxYJN(pcUoF`TB?V8 zU}mDLb7EqMTZvD8Rfb1pN@k8vK~;LFd7^J>scBGYVoJGwh`VXIhe?5NpmB<}8&`mv zYnYcuN>RDClT)NwL1;jtWnOTpXGC69glA}`MXpC=dSF^cxJN;wINwH^Wk)OMlOK4euL9&}sd0ugFrk6{;g-JS> zc6p(zcR`VXQL1)GQki#@rCVW@MTEOqrnb4Kr=g`$woh1*hi{5`KuSSwa7JcsX<%_g zO1*cWWvGRZt5HQoK9^^5QF>5-cSNpFRe7bQr)5QOhGBSxZ*oLlc}{kuWkI38S7fqZ zn75ZnR7HS!fk9Q3QAx3hds>oTcCur(qc&HzkwJ-hP*s*`R8UZXXJmOvd7@Wkl&7hF zxkYGxT9L7cadC!jYKoDmsiCEUMV3!d zVYz})u1997zKgq)zgc2-Sdeo>sBut5eqo?*fm4BBK~h#_rm3@ch+lTDb0k+(dVN`l zSEPlBUztT{kza^Kd3ce2MM;EZNQ!%yw!TxUV|b}+L12=5UZMq;uCA_vcbIliQbeg= zesNZap+UN-Uu2qDVTE^PdU1(ocAk%Kc2%lxYNlC6q-8mmc9g)I;!>u!mzA`2@7ig} z3Y?$S+I(xuhKXOfI?VP=cwoM5(X-X+`f&@sInO&ZZI=4~3mg4Q_8#|?ob$2#Vn?FJ S%=!BluXK2N#{T}aZXp0)SV^S- delta 1641 zcmX@XK7n_FMtxRrQE7garE#UDMQUb}U%p|nyJJDFtAAxlh_-K(xx1Nhu}Q9>nQvKT zN^!1HUZQzrL4LAZVMTa(ikV+px;s~yfm3;V8j zmuX^NX<&Y^wtuRRiMB^&q`#k8erT{;g>SxNwpVD0PiBypOGuWHlUYzsrn6I7NN90@ zSAAuofwo0bm78%yD3`ZyMU}o~U}TAZRdBv}KyJ8cn2D=%gh8c`PjOUvxsy{^kav`8 zR#j$RR#;?Uh;dSlP>F|!d%atgxnHr1QEGOcXIQv5m!DCHu|ax9d6275 zQkF|ZP=;lBnrpFPpoOo$uX{+US3y#wX@$8_L}pqtm#&>cadC!jQE{R|phuChz9Uz- ze?gXKO0rRspOyS< zcd}QdV`;fbV5W;taFJtc!Yj=P$WoBt$QD#v@mSM1Vv1L_piCL7Xb7EFjuwhYK~QN)nq`h*c!5u4d1PRYkGZ+8ze^xjj(df_iF=xVx_hFpS5=Brc)DX*XlbZt zS%FVdSXQuUKxJBZcw~mRf4xDZkx@orl6z6Ap;44`lwneqg=tclKUZ0bfmc|bWnh$c zSZG*!u4O>EyMBbLQBas~S!StUSYm!sak_b)S&&a;UWiGWOK6m3R*8pYa%o1Uwsu*X zTRK;Pdtq8~s9`~*uXdKJxqD!!wv%>LX@HY^l82XhWKuv#qO(z|V||91cess+&P1SEOONTSaJonQMf9ut8Mjw zg_WUIzF7rkX`x)Yy1EJ`1=@aYiKcG)B_+uwt{G*Kmfi&xLGI5wKZ@4Axc6epXZ{g;mbe)1r(`Nmw*kHH+ p?~KXoBvS7^V!V6Ta07$Y=hh2uUoP}i_I}cHoZ#E?KQP>H82~=CFaH1l diff --git a/secrets/firefly-app-key.age b/secrets/firefly-app-key.age index 05603204480e280509fd1c9ac89af51ba0b1c3aa..a9d71f73acec6dc6f34cab0b097b532a783c9990 100644 GIT binary patch delta 930 zcmX@lex7}TMtz8PRX~Ygk$+%T zQcz^En^|d?dy=D5qDhKHaFoA+myfqgS+agqX`s84Z+%%BS3#y_u%WAuNoGc9kdvvG zU!Z|wpm}kMPo;5wab848K#;$YTcCDjNw#-DcD9d6S)q@kdzfpAslJ7Cl!0fdF_(Xm zS4LG@m7BSTWpYJ?XHteinM;Uvx?{3el~-w?XHuegYKozAcyN(dS-!h> zRDM-zZoP?1VL$;_mcMb3yIYZ|t9!1KyNh9JsYRGYa%gc#s&-zcTZKVNL~&+js%N2Z zkz=H%k3mF5Rh6YPMkwI~BXr-Tic}a$AsJnN%laF)0V|{kAk$ZTyV+L1MzLTYMnMZzDa)D`( zOQNH3MPzVPmTz9Vv4@9QX;yxScTiZUONhH+a!{3{hlN{OvQLm_iDy7+U~ojDPlX>> zRK9Oncw}I4KzORYr%OeYM{a?6h=o~Ju)d>TwuhyslUZbx@EX_MrnzMvv09;T2XjfPHCQ*d!}1T zxPMu)dw{2po3p-lN}g|dpnFlaxtFP%lQUOhR)w~Uc4CfqW{7EeWr=BuPg1^5X}V!f zXhfo0SYVZJRd`BKX>dw-p?iTxP<~RNla+sHT257DPM%Y+g|kN`mv@pudRV%CrhlnL zh@p3sqi3#9gqev?a%GlRX@t3RQif}Zzi)_fdPGj-L1 zi6;5l1zG7?h51F{iDgyU5k-~3Wya|N=B}CfT=|&>ITo2gA--W%K4#uImc{vH>0$Zh zIVonIApt>dZdJu4Ii5jDK9OF&T)Mit3LX|EC1s9L$L0bR- delta 930 zcmX@lex7}TM!j!tML=qRNk*tqj%iMjyMI+$RJLV)L5h)Iewe#Oq)}Q*u#a<;hk24$ zxrb|bYDI2wu$z~kMV?tiQErlNc|Mmrxsy-2M`~e; zi${KbMSWF7fNv6)zk7H}x^YEFg^#08T2iX3Q+irOZistgTB?ajvRhW6eu#xZVM(fG zpiydgRZ_mcg?nLHMM%1vzH^01URb&tmuH?=hKqS}N@E zORA-BP*$LMzQ2i^g`Z)exn+2UzOi4hV`8djNqwb7Lg;zM)}+p^>k#Uty_PzIR4Yrh64v zSVX3mg{w!od#;JEN3v6ZMV3Wrj#IXWS7?x>uWL|LX;^ArdXRr)j!8&%h<;MIcVwxy zNxf%qR*prnk5_(C23M9xZdz7YrhAE_i(zqLQDlL0Rb@`Dd1+cyYLrQFnX!dyxod%M zUaGskVX$X`XL*2$d3kn~cW73UMNmpaQ8HIWc%fUBPk@0>mPvqPd5B?-lR;v6NV1W3 zUS@W_wsC;Aqfr`y-k~Mh z!G^i%;YCSdWo5=bE>&Tn-suLVMn-|Yxe=MgT*gHyj)p14fktN9Wr@jt+1jRA`r4(w zY3}+}u0{o}Mut_s-cgliz7@ruT)Mit3eGN7rP=P ssh-rsa /AagBw -KzSLRxyFMN7W5Qt1uKkq6Kv83/tCQVf1DtjEbXak8DQhEfBH+CCQkVGqq4ainTxW -0ND/rEUlcVRoPSO12Ba+4ghjk2SedqLdmmleaOpWv5+gQxeHl7LdRTeXoHhUiDvC -QwDcajIcdRuccAemsoGh1hnpS1M5ONq3/rv7AcPVG/bGrdlp7+PPJtBF3uTXwU7/ -x6viuRvplN/eEAtvKG4ISoM8aUzccfeE0vi0RxXMW2HYJ5JDjN6vHTumHFmw+1tf -EjDCf81Ddc4+ZF8lubHUzBc5/QmUsNS9cMEI3LOR6SmYhm4NYkqL3O+8YGVjBOdG -rzGXitzgz3AAJkA3ZvG3HFJ3zYTfeeRxEpiQdjZ8CXc3/f3VEZUCJGrNm7Pidr2f -WBGQY1RSLnafxNH9TVQrXvAETEnrHUHVzgQpRUEg355u6SqC/oNuz+TOQWU/qeT1 -Kuqowaigpi0QuSYiJP3rIWDUiVc+mwRR/xhL0taLTyb74RI1GnBIGNwLwUpv6ybf -0VpnfbH4WWygGPDXmKFHZcAh9zFE/P9xdpHAfviVKsSO/aKECrJjgc4hQSeUezNK -nIzRdtUT50zCEeAKVeAxV1j+L6sP4eW4KTfo3wfJWSTx3eJD9vEPB0HYLka908LA -+SmSsHJ6pI3ZGARZ5uAC71wX2O7DL2YcnlJkHYJBcjk --> ssh-rsa QHr3/A -p5a0cPmR0JE9jrtFgBUSTmi8DhY2Rw5frNvHA0qG6wXqR/7k1qdCMDHxET2pdfLp -FuEuW7OUFOwREv1Z313LwT5ARfsdNg+uQ/t+h9NmF+ws2uFUyqVqOz9px9pLzjNN -0qlwxpQg13AX6JQY7NNN4gIHfy4moV0e+iGLXz991XC2fwdTcKGMBeX1hmAnnH0j -Df4UetHRiCZVJSnMthmK+8dPsRZehzYNYQgm8D3E1fuUtbPXGNKYXQ3Bi8TgGB0i -1VOQsiWHoEdXnLkYCnBIl01BRp9BXfOKq31ow8w/CuA6wePhp3WrugqV27WGxMp2 -C7SmnNf+nTmpz0L2nwgapM+NqfJUkru3jqE6FC3fvhBuJeB15cDSGdBNtk8AeKg1 -tUMp875C3tsK72s4ivZAgZsgUzhhTZLioamCxkbvD3uDzvf1AEbbkXKBWFSPB+Hr -fmIz142EUBH7I/VJblC9EOusgi3CxPufriMqtyGz//HeTxJnUfLbO5wvNWUlDm2C -rkNMQPczurQ4mkxyTz6uCV80D5Z+Q9ABtyzMb8mUYwhMBVOY15nC7e8QNKU3Cnoq -gps4SRijnZgLNJ1WjS548K0WxxsasJR7gEpbdSwLy0+K/YHYwlyhmG7+LMVGSs02 -mswg4Y+W+K6rOEeYXdPCSdy76V9OhDle7FFOrePHLCc --> ssh-ed25519 /WmILg DXuUNsdlALUPr3ULUpoEQ5fRlhRkrnUcHTWAxdy7DCY -+StTEHWk8y+fU+TxXfmh/EoNovME9arXHMu1m1HLeQM ---- VTojICHlhNNmITiRWucloGuIArtXxIV9ttGrK2DROgw -Pc!&|)2M]P,\0%%O2Ar4e(Vm&ሗ`\LHnP gvpt5pT \ No newline at end of file +iS8WPqPbBdSmudoh6Eip/jXqEpHZjzs8tROS+JcQoCQ1l10NUNGjTKNwk6n7MYLY ++KQyBwAHxdK9ka0bEk2mlB7fRDH5RidQIvSXgUZ89sttHOBbZYhfRybSLj0g/Nrv +5hYTZFQnpBl7GzPnNV6IQerB/lsvDTaptzXHbzwkJuP9jPvHIl34DtVpuesAH/WN +X6thwS3XS6KfwcXFb0+xAC7TrAyigTEXTNPHUEC5Y2PhOBkMoc/5Hd41QoACmkzE +AT0h1cW5g2Zgi/N0lkf3EGQu8m0W2yT+YoXY7JIFUyG3K1Pp+y+vucvruqgcXTVg +WqtwDDbjid1TbcBVr2Gt91y249++o/FBvV8IBMyP1QrABspf3WPy7C6/QKtnXtah +OJreu+JqND/vsdc5xjJhVnU7NtcCawdyeKvZEX7Xs34hagJD7OJOaAibU/mS6Kr4 +r2xJCsfrlXnoMYo+LeY/LevZeNcfCe7WaiBJUi6sz8WXAUkiQ6AvJzWNvVr38+qK +1H9ltAFVjqM7DPj/20fkWTHqxVldnRv8yJifsZb3VrXDNK4HjOkIBAj01G3jiT5j +Ps9883PZ9b+3WEDjldptFbPRCF+daYMR6jxtYWHjejd6IvDiPGDNg8GXAjf2BIBR +D7b91YclgiIQ6QcfEoaQBqCamNfYHTnyud3nU8ZBNCE +-> ssh-ed25519 /WmILg J6zdvQoBfhrEdqWc0fu4Btd/0BTxGvvZF4A3DUynaAE +FcTsenYm8S6xEtB+cxTScU3TFfJq0LcAIEsRnsu3nvA +-> ssh-ed25519 OYRzvQ SrbSyaa8A373WtB+a3bDkOt4/KzUPNHQvVEW9xaOSzc +XpuBn9jXaUSSgyuUHKID6PI0wJsKF250qlMctpZGFt8 +--- 6RUGIhuMoK/WwDKg8jghy22j+CM6PDu6Vzp301Yh/Iw +#sL!$M[20C,t/$_?l4xQ6%ޡsKY;]ZUEN \ No newline at end of file diff --git a/secrets/forgejo-runners-token.age b/secrets/forgejo-runners-token.age index 5ca6d6e..056e46c 100644 --- a/secrets/forgejo-runners-token.age +++ b/secrets/forgejo-runners-token.age @@ -1,30 +1,19 @@ age-encryption.org/v1 -> ssh-rsa /AagBw -P3hgwGmP9M9uTVqkiAzFrqZqyMjafLFFHqHNqP4fsAdbmZmdWudSBnm8TRmSWUWY -1ONw8ncwtqTfu07ChWzv0RESTWmcOp5afysLCDE/Fz9dByI1iPLxixoAaiA6hncA -irblHoiXdFVXvX57jTddYX0BMK8lup5EoIde6r1o+7L3/6VwAvM40yZekw6jsZn5 -ViA9ClsiEdvIKV5KVRA6oGBXoRHbvcWrMwGDCU55xSIdpjdoDi/YTQsqnfBMyQAg -i7FGclkHkpBUQI+8W6l2tqgwTJKQC/E+zVRI3VK+xJyHmpnXzZ4SEHStkB3PnCJu -fGCg9ywap0dji9Cnvk4PH67c2u3gIlaFZayErVX9q0I6ytnHFcALSyDLFGRnfaHY -OTpIZ3m9cYcMhpnFCZRvxul5x2OuPEWMiRKoVm++U4BmWTRc314HDo/ZBfl1DAe1 -XtvP7ITpT4YM/3rduqW1kVIpwAB2e/7EBpoJVvsGIBTkQ/jIB/MY3j5CC5JX82C0 -rlF7oT6EsWqbNCIGmIvYGTlpmCOQT2KOLHNKkynBPSC1mPKkBpInSEtx1NHl/Sgl -NPua8EaV9lF0h0I3GZDXD1T0AQ7AUK8cP2whh2FS2qBlNqOJMfW8hg975gb0cTsH -IAOvLYeQtOz1YDNwTc3Ctz0+FCHQEJhIuB8aTMuP9SY --> ssh-rsa QHr3/A -cxnlH/KtwnL/4TDqg5YQfaBRCSBYpiywl7Hc4r8tbArIgcU9AYhNRzbT4LtLWA8e -G4DVpE6fis0cw8ubowePCupAxnKLE7cIXydbOJ1w0aukjjmeHNpw23E7F9Flv7ye -4q7pHE+NL1jQMDf7u377IsC57KDimJufjWXvLjPVdX4eyaH07715s3bU0jgADRS7 -ViV+ccxBPUCkPB9Pdg5GxPOmkduczCZJ8xQhixrnXzA7CgnN9n4uPyihN1GdTbvv -h/mbGuKjnXo7TQtw9MZRV7j9aQadtpnhYQhIrcV9MEnwCFRD8wFzIcAxUb8qCu/f -Cmr2ny1imn5PXySDIxMUEEvCF5w2jhqAaJR8AVkJ12LcZ3FhowUwJnVkB2yalnUT -wDlJ7W8ZBZb2PITDiuY4pzdp3ibK+wmhueNd+rr86n0zVe097+wYbewKZ1/yF3Al -cDESeaxhU5GbEkSwYSn2W2ofpAX4A/5YnnhnbMlVMH6IvNfJxYhEfGg7vEfdFr40 -yN67cyZY7/QoVmRmd/xhadmA41Z2oOWtcgcms9ALf6hhehO6GYW+mKj+Z4xEMDp0 -P6ntUyuBRbdUez9k9Tbm6NB6aZdXi138JIXKQ2mXhPJbx9B3fN8dOIL6ofyZ3C7l -FAOQ+TQlu344RgcrJX4w2bRRQJKLM0wXRXWueEXHwlc --> ssh-ed25519 /WmILg cyT3XEAti9DCnVgmK3TIxKaPnZeBtlyEFxqJsvuwimI -318xaKk5hK7UoinPt+aVGSIOwPzQHEaLxG/87HIEKTs ---- oZydNo3QihjYRb1k+MuiGKckbC+qBqIR8yTOYP0Fgd4 -Ts^p)AE|QC}v -xum1f+xOVX_ \ No newline at end of file +L/R/OsACkgoALVEEcBhvX+BR8f+zdbhiL0Mq8bSsctkSYfJXuO3jUGGH0SpL1bns +ZRRtQM43ThirFxS8P0Z15HKyyUCbsOiQta4F26XvZqZ/+RWp+BivAwsGUzmiJZFs +0gMaq1xrjP34IclWqDTEfhjrMi7Wh1Ccex7qYyfn5BAZAgccDMQ7rHCXC6Ou+L7y +6JNOU/cYx6vMLX7Br9jxBZlg698SXcfvX3QymuV2kjrvkKeq6gVe9Ju5JeM+EiG2 +bHTE6A8yHe/UZTHxeWMNUkw0JbcUunIBLM87xCE1BdmCfLkUXMRdAhc5axKCtSsG +/Qtsi6u2ucT+6V49+OLQ7KzrjJ1dqPjY7GgASswZCeg3K7IITO1nfTYywzjkLnYC +iWUze/IoIVlC2msur4ZVDk6ySJ85yUubIByuteAkFtynBFfeVNcuKBYvs3aO8k9A +mBL10w+u3hVr1r6N1x98RDnZ5lsQ3Zi6TbaIQxzXfSi4ztv4QR68k3eiQ5X9Fr+m +yuJ36z6+MCIqiW43I8LU1a22KxYrSqrcvJCyHi6Mnyc5CIemb1tuR9WnnnE9i23z +DiPHYIYrPYl3UOetADkzWfRU+uAvypi/zvPB3nGZXwXwuuw3BD883OqDDD2jvnh7 ++VAO291rzfi9sdfz2v1ezYpgSZZibDq1TqPQjyRgT40 +-> ssh-ed25519 /WmILg NAhEtnM2S0s9CiQNyIALXdkUqT7nuYJsWBrqK2x3dW0 +Rt9IHMYyHG9dV60LXhi/j4hnIU/V0w39PlBcpJaWZz4 +-> ssh-ed25519 OYRzvQ mERn1AOi2HnJjqYi3tzshh8PxL7JPPdxwj0PvOkHel4 +Fb3wrYfVVAucaZRqnzJnnzc3SpiaXY79KFGt7CXLjic +--- SbN8GRT0Ej22hlS3Oh/nOe3SM/Bcik1FQGGMruI53s8 + /CΣ]ŶqM[ Ʉ/g"A(9hYa$l\e++BLRw=Qrb \ No newline at end of file diff --git a/secrets/garmin-collector-environment.age b/secrets/garmin-collector-environment.age index efc5779ffef174d6bdd9c322235c021118feb077..2509b3aac2119b12e98dd346bbfb688c299a481b 100644 GIT binary patch delta 975 zcmdnU`;vWvMtxYWpQ&$7c5-oYj!ST^d45o2cwUf6U|vdEzCm`rvxlQohOu8>VT5aF zM5=ebVQ_j{u1U6uaY;p*QDH=~X9`!aQAlc*XF*AdW0HBkzCnh6KuJ)AW1@wNcD_-5 zet1!6X<&w@Yr0cdxld(EMW$n>XI6TMg^59;MR=rpPJLk*S4FCqaky)SZ-u8pWpG7R zZn|-me|fNHqEkj%p|+Q^Z*EwYcUF`|WpbcvlyhN~QGQr)RZgIjM?j)mR$5r5FIR?V zl)q12xJkZ6W@wgwm9~$eiFulVpNVg1eqO4ZcU6*ms<)4&N0>>GlTlV>xJ78OQL2At zL6uW#dc9|wx2G{zfvHc3rD2+Wk&}~aX_8ZAg|}-)x|e0JYg$2hX>qu=yJ=c}NOn=W zX>eMxNupszqLEvglR>I^x_+Rqr(2RKmy5TnYf5BUvA>B~q*uC0W@bT=c7$uDpP{K` zL8(`2MOH+Gt6y%3X_#M{QCVq4igsvGX`VrVS-rc9UrwoaWeAsNK&5k#shek{VVGfg znqgH`q-9z`NnU3 zu8F?3W4>WxUS@!?Phmk|v9?P|sfCGlX1%_FxlvYmsYQ-~X{D(*S9YF(zPWcwnyIOW zTWN7wdT@bpV6kI}dv;iEYH+@OMU-E%OL9)4qnmRwm#&>cadC!jYKoDmsiCEUc3DbL zo}+?gK%TQnl6ih{rITM&N?~AeT1ifXyMBg$ZgxO`bCOY6hLMklnTL}{PBNE?dA+Z* zQ&Ev+N@Q|bfJsokd1iJzs+cm z?VAst53_VSG9NQBEDUluuYO_9`rCgzHZd*K-FfJ!^AbbjN6)x~HeO@;+59DV*TzNR zj=WdnJ}#MF^s7p(^Vy@e<-dC;n=w^hlRV_0>N0Js->syDQEWn28AO+VmCxw=1pxSV BR|)_C delta 1674 zcmaFKzL9r=Mtx*qL9v&+qd~HHMsikqTCi_gP-#k9vWuCeiFtZ?x>ISCb8%%wL13g& zM4p+GS!j`dc4)e5s7G+FXKq+(peI*AR6s#`P+)4HZ*IE3S44SAfKOtkd3ivhQ$eAr zp;L*EnSVgIYh`+NihFrMWwA$5R<3($fPqt9c0o?2dwql(S5#)Dxprb!RY6&Vi>Y_1 zzJ)=FVPHvFfV-z#Nn(a}ZYC(}fMvj+Dkhw=#P+EvtppQwEcYbD26jw@m zsIhBsWl6c4k8xn0tA%;8Tcv-MZ&`??lX-ZtfuT=|g>hAuS5;Y{zlmdjvx`T1NL6l9 zu1Td?MSWzRe|i8{lD=iOlWS#ulzXsQNJd1kX}CvOer{fXuYOjbw~?hmgz?L|Cvvo@p6Z zmXWrnuT!dTUQ(7@rFOPoj=yh&hlg{ZPo`Ifeo8>4L1|#VM~Gu?WSU!4YFJ^qc4|>> zL48zEKw)-NesDx$CYM*bnWcrBpRZ$3rej#Bvw2ajsi(K2TS1y*cx0AuvY%myQ=(~w zW4d9me}H*aj(?(?uc@U`azvfshOp*sb8sARZeJTfMH5j zTCh)rMTC>SadJsfo=2f!pi8l{hkkIeTYXiQQGjbziBU*UMOB0)m$r9mkacadC!jQE{R|phuChz9UzL zOJHGciBni%uwzM}n@du1c49<@NvNBjQ-Qysdv=SyF_ne{r~e zaZXsJS#G&OptDhAWok}tR&imfdvJJEHdjejil;|KW>R)UhHsf=YNBaGN>EZ*X{m*8 zh(~}+n14xRu8XOKwzFqhgno9Uc72jpP_Rp>t9PYxiMFowuw(#WsrYrp-Wj*l6FR3S)z+aNQh^lt7%|BaHw-YQmT_d zfJe5Odz4RdWMR5-nVD0PWpZ$3dQo|9hPywPb6}-scuqu6mXBX?P-I9-eq>cdaEPHr zlCwdETcT^OOIl@cm5Fnqaeao1PokMwiK&@kgoR5$L77{SnWI-&3YVq1f2fhRPl|y_ zs$q6^T1ljlL11cxc~EIVSxAv(c%)ycpL>{dPO5i7sf9;sSb>p?sk?8uv6HD^VN{v1 zSqPW8Peyi0ML>CSic^74m1}vbqo+@s$a$thKV z<`E@<;hCXDfyrFDy1EKQ1{S87#Zf_i+9gG~;RONdM&_AWNd}ckrRgp%p^gTLiREP> z=4q*!{uz#3%a{6{Kaj*S=lZLw+iER7oH96J^nbE>#DCV7^)=z|w0~4q-!Gin^On!? zVbOfGS^szEv~Nhz*eSSS?-WNroebsT$Y&?gErRFeSeJPQFzC;f)KY#BWSsH9eO)&D X%HM|m=O? ssh-rsa /AagBw -l8D9gFFyPNJpXMGJoPt1WNpR/4JDI5rgr1h3kN2kNOOP4nBmE0NtbmgmTrBrAmfM -EUJPM10unKHWpwC9CcrHOtb6pXsigTcZs7q4oL0y6K7UqoKlcHhtwn39jFrXBE7o -9onIUOHXqYpXvHg+ZwNlwcf6+M30Q1NJgA1KWkDacHuQ4O05lmTHATy2rOcbScx3 -lKOxP0iVGAE1ZM5dkFnN1waSoIXacbq31U9h57nGg9ZwWqXyFy83KNYxXH8pwwZQ -6hOjGpbOU/0S/W1L0Kyra/N6J3LsjxkDEcnTGh2bnRtX8z/FcXJIFsRoW13eOCpt -Z1rM+ebOdTn9hSGg9PQV/EMQnqwo7Bk8nbl/z+bniq3FS3r9xRNhGiJwia0AaSTV -oyiOkgk8li3YeniAL3wBDbo9r7Xji5mT2MeEpgvuht3MAR0FNmK+Dmi1hl78bUWu -yj+RC4hkro6yWIUmkCVCwP1SkziXXyz8/tkpsdUGiI5eVPv43Pb9JlDwDBEu64WT -npdsc7L6Wh/fbq3da0I5LMoNVH7nZNAlDUvdWZI9XdIMvPCheGie1p1i1JpwSfdv -00WIgQOdTABqahpab3GBXDhxGty1Muifuzp8ktgDjyR2Yrj247rTpa55Ypcuyubc -tc1typ/8t12OSxS0eNeZtIS0AO08wVVH7skVo1wbFv8 --> ssh-rsa QHr3/A -Z9y6Vu201Nlwwk+3TeFOoDpukvUkFBuV6JkToEUdrbndnDnSIf0OoNXL4iCYbqnt -dbR1OYUrEM/k1V/zJqjPRP/gMaCUGvFgX862NDGmzzXGk6wjLtlUWdFSGnScOGFS -c2ToY1y+MkXunCQ/HxRvaIRA7UhTwrOhnJLITbFH3oQ2cClUINmcgozZLmh6mQvM -0VmpQUJ5J6wsu1sNXv0nmvCNb0Yb7YWnnA9nDNlxha98wwyRvUOcllMNYvEm2KRI -OgGaUqRkXPI1WPnOeMY2pIdtwsH+Mr/WXX4yeTLSbWavD5hU0q7axwvuD6VLiwzL -zxuUGnMzTyvOdDWeZKSKECdE20ZomiMuAGVqJJfPrp9oB+fP2eLwJtYRd9FZvCpJ -NHr8dDcNla0yu86wPd9+A7gg0jXuYonIxQouoyPCU6ehkq20H2bTj5WXncUr3ykK -ddFOTV8VK0AsMRnR4f4RRKhEYTrv3e1jHbuhhmrYRFQfwRC9MSk1H1rXM9mCnzKI -uKVP10+9l98jtbT9jhdUIwFa1Pi+Pzg6qEqVY9Op6qKKqO0cL8PFxYl7kKr18hsQ -lpKyaDyLU3JmeeBBN+zc9V1Q3IqFMhsB2PaGkpCORkczOQgRLaJHnErjHfuPJy9I -gMSZcnKlmg+A1Q8eLtqPpvIuWLDt2KbQpaT6YXAWRBo --> ssh-ed25519 q+UPnA fcSil1+qsZBucOPvkhYpUN27jkivaVWcCLBbdN4JOmk -YZNIqx7oVBjpwr0Vma/ptzB0h225jmz9i/CPtzAvk4Y --> ssh-ed25519 /yLdGQ lIwhzVRkYK9wSfj0d2lGGdQX+s4S4cUINe8TbaDRgSg -r/l4OdWRbl26Lktk+wer3cyGmLNN9QB5rpPoLPxD1iY --> ssh-ed25519 /WmILg H411Xc0YhBctelzz46HC4FOWWQsPbLJcbi/GbgAHgQ0 -TE5POCRIgSBlgmJNcE9go8LnXSie3+TfR50GwhKKurU ---- TnlU1FiLZrtOsqzbjqVzc5Y/pG6YxqlinedIAh320mg -t-Yf9_ݯGSc^Ztzʝrd2I`]ni(NzkqT \ No newline at end of file +Ok/LGdcecEgDG4Dh4FPaUjokhjQxc+ZJsP3b2i+vf0j9P/OkaSmA0loM2Avxy1rY +tQ55+74x35Aosaqx03auPVBcWFwI5X/WDBbYYnq+kHH4UpDBuhSY4cL7XPloKHcj +ZEkc8DnbzWYhygSVV6nL69HhJmnPudZdqKMiY4KO4PdvGaGyMALcOB4iIw4UjQiY +Pj/pjajRPMRYYRP3u41qw4Emmoniw8ZaoVUpeIvk1Ei8ZtW3GJjyVbwtmJ4Z0fWK +XxgT0+98+EDbvJ/C6t1pY3Ox1w6bBBymQTvuyi4YnUbF80/fk1fYC2UmBGWSF1Ds +lPbjbLvC/pV42w+965aqiKCPWWGxM8G9DTNCESFrFX9YxhFT6aVMVq5RcDXcCyDv +0p9FaH3LuGZb1g0C3HO8IlSBJwOZTwR2/nI+IAoWsbWIZ/avdNXkZxIzLj8zB5C5 ++RsASkBrGLJsyMzaA7uRJCRpcT4+ZSo1TldFZBOMH4Pki6G27yFF0+g1BQi6QZ76 +QqornXeeAxElrk8eVujS0HpEcpxR7S7HTf7O81JboBIZnChLrLGT3eCYvs814rOH +q873iYDfbS0KFfDFDNOBCg6suSFvLfG0YcHPoaNcyXFOfft1UZ2v3YD9Nlr73IBE +b/Ds8NxxQQvMVG0wHQmTu2BiN/6iiejkwVtmfLVrfr8 +-> ssh-ed25519 q+UPnA +eJ8cMdaEONvCl/FivO1egm9//WUJn7LFl4qq7Xqnxk +yYy6QxNpPf+14Dx8L6+OaIIGyAWTlAhoC59H2gJPXg8 +-> ssh-ed25519 /yLdGQ lInbsPsqXB/K0cwBsNwGO/bdYsodFz+TgpzWhdiDYzY +GWsACmm/WjNFhF2iJQxR/GPI/+ONsKFgGHcThoDV3hU +-> ssh-ed25519 /WmILg St74c241V8gFw/kJr5UckBtGkEmLRlUuCK+XNMGrKUY +2abU+1HYMb64ZTWQ4X48n9SvzvMheqFtHLIfqcA6anQ +-> ssh-ed25519 OYRzvQ PcV9evAILedG9x7KWGJnYdhEGkfmtu/kedR4IB9M2Ek +Opnidp1vp48EOEJRrvJNl/468+EcasZRIIqoyEr7YWg +--- 63o15vmYf/4lByjTk4j3HCpFddjNB5XxfQQbthXM8sQ +`*O 'h O :0?hgEdo4c|dgXs4vX`qP4) \ No newline at end of file diff --git a/secrets/grafana-password.age b/secrets/grafana-password.age index b042c07c1f3bce3835135d8445700397e329dd1b..fc7ca7a76a8506e1dbeea84fa64655623fae495a 100644 GIT binary patch delta 906 zcmaFEvxI$uM!lnJRfc&+NvWZ0cA9x^V199+w~Q*niFaEX_@S+Y+> zqHBq7YJGXIv9CLqzgK>yTTr2IN`8r@wq<0RPi20RQ+Py9p>J8Sez>2zpNF4zphu}^ zNJLR_X=$jVV?}X9K}Ej5skxV%SB|MZS7455cyeNfXRxDFNNHI?SbAWfv7=9BM7EDn zPMLmTxJjr>sIjNFYo)${fvI7pk8xg}sk2kIMSW#dfSXIWSrk`UMQKr(n@3fFM|Mes zf003mXL4#zfTeMwceq7RL2_kUh=qrnM}(oiWllwrZ&XQoa$a(Pmt%fzk)M&bQ-L;D zPH|F3u&Yyfrn6cadC!jYKoDmsiCEUc3DbL zo}+?ArLkFYm5YCBse8JwUqM7_mS>`KSWZewa9BlwyI(|pX?B@@UQm*6b|6=QQGIYx zW}!(|s&9Zxa!_cniAzC%yNADTVX}92rGHpuV3cK%yFs#3abO^quCA_vQMq}3s6n_} zQHGOIiN3pedRBp-MOLQ1Z&r?_k6&hiQJQ{0X`p|pvr#rzz)bcWMt_-we>hYan9ja0 f-{j{1aMKf}&hrl43&Z2A?c08vX1Fuwny&`{K0GY0 delta 1605 zcmZ3&{)T6QMtw+XnWJl7Qhr`)fU`xFd8xOyL1nqWQJR00QF&o%k!Pu!aaOQ#ihHo1 zmyf$~MV_{$QI1EZQ&Lz(vO#H8qB)mOa%xFbQL<}xVZLKwzM->wcwT5uS#CwHzHg+P zc9Oeyv9Eb~dPIJvsY!&VQ$$Era_c7}h6g==w9QF%m(W0rS>b7)wufs3U_Kw6er zP`z16m7{NnzNvpw5|>$UZcuJcMy6MepOaB)VSaLANNJR7Nv20YSf!hvTX;@nXklWx zNqJs!etKB2c1W^ChHGhXX_S*$c7$b~a|xG|iMerrYjL4tj%jjMwwJ$KrCFGpXG(Ia zL9lUpT269Ma;kTVd6`*cRavQaXhc*}dA+lLptHGYR%S}EOTJeYmsz4yn!8JeUr9)b zX;o!eX=Zjwjz>g6Vy?fpTZ*BNS3sd}T2_^>d3K@!m#&>cadC!jQE{R|phuChz9W~H zX@PfcslI`yx23sZeomgdd16vhYE_|exwC#|Re@!up>{}6d3jKZuV;9QmurM)YQ3LJ zc6d@$qJ?LbzgxL4m!V6QcDhMGrl(h$VNh;bW|p=^T10+Ieu!swhC#lYv0ssKQiZm$ zXSRE8Xj+)5S#VH}PefFplUH$wVPRmP8CPmnK!#U&SxK^gR8mrqpR04WPikV2YmsBH zSy7r_cto;6N}gGvWq6g7zq>_&XMIFyx?5IRfN^5Bxle(!Q zf0{{!ucecrd18^dQK4&!Z+3BbaHex{PKrf&fnz{rMYeBhqE~@Sa741HL2;y8iBW(h zS4m-rg^zo%ezHe-Mvk{{Rb_cnWRP=CfmumJZkTCKW{I}1YiV+RihrO_dc9j%wtk6! zWw3uhs&86WdTENbwi{PvcygqBSX4!6W?rg+K}k_waCvE{M~GKgSx~r_c|~YwN`#?% zrhZgFl38%7SE6TfxRZXEqd}^%e_3#dsh2UAK~zC*qJC7Nikp{dz{zEzoJ<|dUDrjeGuroNGt7N$P=ZoY1j zzNSUxq3J2f!Jb^Yy1EL*-ob?)N%_UO#g5s&e#ZWxm0{t@-oC|!j=A31d6sF(j+ut0 z*(rX7F5!_}oR%WtVMX7MNn6Bz9*6&`tG!<+4_hou4D Cu^iR_ diff --git a/secrets/hass-ssh-key.age b/secrets/hass-ssh-key.age index 153461c..d18620d 100644 --- a/secrets/hass-ssh-key.age +++ b/secrets/hass-ssh-key.age @@ -1,30 +1,19 @@ age-encryption.org/v1 -> ssh-rsa /AagBw -GTbJsuAbQ3I8g7J7G536vWEPfBH6Aw7Zwl3bmqjw4oGrEmpgMO1fwdj2WNGe6dg+ -+vzlB0NnKtXWtbz77ukNTOnNtwAJV+TxvDh5k6fID/Mkbyc+XUQqyCEnq1Z1L8tF -tt+oPm3QFK/WZcBZTXmtfVgeCfNUCbQgWL+s7U8QPHoDm4gn5jwazfzVUvcDkJSt -Q1cqsgg2RR71dtETpjKV81sqj9JstcQPMnsi554Jr8qv5BwOVLBIAjZqdy+EOQcv -QOSuH09PK0RUqbNHwpnCuG2fbuH4oJT4lspa3Tbv8ygUySxcm073HlgnpGsC2wix -B+HcoSCO7vYVt5PUdKCPJXb/En+VO/9Rk9aC9oukopZFgaAwv8mVj32padN+Ss/Q -9Oz1JHB3clmT9Z5iheafIu+CtbCl8ZptcrOeJG7ljDYoJ9blIHYRby3SlAz1qgKq -KDg3i+/C5+4Wiot8gPKfBZezr2XU0cCyZZK4QhV6SUFaMH6MzR7y/z/kNIlMifku -I8Ac5s6H+/c3twUnXhfHqVlJXy94+WxvrLIxsY7P30isPDWuzq2iW1y8nYC8sqFf -POSzmVe4tvRmJ3XLIAb5aiOWZlgHY9d7pQCeOUk2Mn551lNicE8zzQ4AImZ1JlHn -ZgEnyYHxl0jMIn5ZTemHIoq43EPwmOfFLMQFPAwf8nI --> ssh-rsa QHr3/A -lZm+MrSeX8EBi0FyHt/1y/WG/C5xHVd3PTcEimbKApioGzxRv/feeWJB990D/Yv+ -13EyGFZrv19PqDHiZSIE2gcRf1nZTMxvjkXzs+4/3rH/mpCM6JwkmIgOUgMJ583b -okyK0LAzYGrGh+Yk971wtmdnXk8R/Zt+utLevh+eA4NPabw82/sQ52+rbMQG7FrX -ARTuUPOexlkUY95w91xzJJ9tAvDLnJZ6RvazFYQx+HhAFYKN2dtv/IzqZS+r9K+T -AZxkpPfRTGbF+ABDJ4YUtzG/Trrumo7/Nd7U74Kr8ebaF5tv0VAZPZypz6NEJQUo -79kICP4V1POtoSnwcnIbx2+t45t95bI8zwmRauDG9d0sBlPhf21SbhsR2Bx/AsKB -SZiXGXpAoWj65dxEg/CQSI9RNHZyTTZH6tYdyRu0mXTb7y4kIzR4R7yZWsp9gYrD -rgj0A6JPS8A8CdZmMfKo6Pr2JzwwtnEBcVonDdQ8gM7Apj/wCAkwZ+5AV4thd/2L -+0j1gDqpAfcWngrDO1KnSq66KQqbikJiyuriB42sLuPqp9GkPQPhnpK/nZ4IarbY -1FBnMtQTjNMk+NzxzPRmKoVq6FVs6V/NXZIXMdRYin/oLzh5z+snaa5DBiDvPbT+ -fQv24w/ZZVb+CxqvFEEEtTxFKXep1fY8x2itA59URVs --> ssh-ed25519 +vdRnA 6X73NcBbgHQZfLEWMxXBYN53+FflkvnOoS89ljFkPAw -Lc+M1JrU9ii76ju3U8MpM2JgnHKqGLPnalWiv+fvW3c ---- hck+Hf7FxxdQRBKcMV3p5sdEuEGNtHlINF227dgqPWE -39/f@ pz|nnq+:I6mFuhI\u{`eM[wx52}v*_"=Me_2xvDB㓄y_ $65qxpC 5= q< QޟspY, -TyuݵѠOݬm,.o pwsbI:+%#S72βN̚Rd18"U'1VWU'#=hQ[`VsEؤɷAΨ -O ;kejwa '*v[{CJ8/M sx; 5<4Ke[%nbA9%.Աd۳a \ No newline at end of file +N7YiJVNr1Q4V28AWMSnczchrFXCeoecSQ3EKS6heFm9WaBI7cw5eHaLR+EHeH0w0 +gX9ncgKjw5diZdXQi+J5CeQemoIfkJ3gcQlVj++o4VSSiIZzCNkFlRXEq2nH1O1O +pC7vX7FkGLQr8fhhkx585FUjcp9zTUpzdlt3kyv9pBh5+wKHo0wmgMtdZHz45bGs +o6XPGeMS6MQEKpHgtF+AIAFU88ldgxCI/w2cpx0rOKe0AbWmlee29HiJYTCE0y/w +WyMIO6V8k4UK5tJD4W7qJX6hc6AohrT4YpYUcWFFyc4JaLmEUl2XgsQybSfjlcET +C+CuLoiwMWjfyXJ9RC37MHBf18WBMSOe/O1Bxq4qNKnUP1W32Tdp6v537/Jpye/P +ZRaIgEEmTTVm/b89Sn0xaz7CwXc8FA1hb8Ny/tQdccRk9ODjJhzFKx/Ek/RX9E4w +lxnQ15xy8Q9/Xy8fFJnhVAF8KD1XqZJt6ARYhtET2g0KDmmN0ClelYETDILnZUDg +W17+YCn7uQvv7ZA+x8a6l7Xxt/kLegoQS7Dc4cqvsSv+MuDT9edCQI2EC66JxHIw +OHOorqh9/XqmVEFuUv/o2RPpt6wErZw24d7Kdled1Hvg060Dtp8B1th4YRFlaXcy +yTULJHFE2PgQTRy+EttQMNqFY7pnLkOquKfFjrRsZag +-> ssh-ed25519 +vdRnA o4pJ/9oWKekb+lZXQdUAx8M5g4geeicqgl9YdmUwqkA +2YBQtnQjpF1wftdEqCQexnJB1TM7LdMKQ1oSnXXYSyI +--- Nz8h7k2kSGT5FKmFNo1kLS45tnGii88fSWkN9bk6Aw8 +.G߼c\5[z -]^NKx=؛M, 7Z7rabZfp,hjOrPAPTzJ9P)3m[ +ad JV%mQJaضVgFӖq39Nۿ.S(7+fD!$\,.fk'1P'x῜HHMcfe2 +W)xka{Dđ=!/ .I<&auyF䟞`5&9$8tL/^Ww|~ ;Th9Kl^ ưfӛ:9e/6Sex[>M~)dJ"l҄;el0%>qGbx0UAL"a4vKM \ No newline at end of file diff --git a/secrets/hercules-ci-binary-caches.age b/secrets/hercules-ci-binary-caches.age index 3c0de725d346c15eb6b3481399067a2917f87c65..308bc83bd4fbccda4b22732a23fb79501e5c2ef2 100644 GIT binary patch delta 1489 zcmX>o_>+5rMtw$Lm9I&8rKy3lN3el+QE+xeNm-SXoRn$UzU-V zM_Gn{Ns(_(Nm+oUlSfvRfvH=WeyWd8PHAX_Uxj&!S$&>ASAo1yUSw5x zrdPUKzDaRjMVY%-PDE6Meo$DxX;_s>l(}oTi@8aKK~iRBMWCy(lW};etA4I~7*{}c zRiK5LV?{++MUi8Ed7+cLkA7ibctu8PXl`Ln6aa!qf=zAyQ5KInyXt#XrP~SSx#waig$8BgqKs6c1fmx zU}>mxkY%J{kc+#okGZ?0qi~1eX{kkUQci}iwpmGpak7z{vv*Qao=ZuAS*~wsN=aovTAG1# zMZLLSwsUbrglWKwzF4AsIQB!Yk;qNP?o7txJ7w} zr)x^3v9WnZQhuJ1mrsRHrb(tjUUrtJLA`!Rpnp|JVq$onWpQLBm%m?GN~MdxL4~7l zMO1`qc6wn@SwK{wWoC+pbD%|NT2Mx~Nk)mKsfE8Qm#&>cadC!jYKoDmsiCDpp>}9M zo}+?(Xi%=PS(#&Ts7JVGL{X?)R8d7)k&mB6k&(W0lu33{fk#$aVxh6Afh$*dUVVm{ zS&3npP|-7P#S0}Z_$gPhAE zoU-&wQv)1*LcNMya>Gmw11*A`e7v-M!z=?Gx%>(P3?p-LvntHfE!-pYv&^!6l5-=C zODuBID@u&gN;6#x1GMuaO1+YjxpZ}P6`b4yOah&P-Sbj>QeCz6D+={Z-HW};{7PI4 zlX42f3lfvF>di|NT}<+F)4ARonnX{y*t8&^@22MFYkyX9&)uw{U3y+R;#S(L3pSrC zd>(((+npHHy7-|@K>g1%dk(&T9v)vVQF>@Y`>(9obH16Lls>WEYazeygO@SKLp+>M zCy21ei1+_-DQeR9$evpA;OkM{Cqd^I8|McnX|gX07rVT$Q%|}+ntLnPTi+MT%lgG$ z{?z^O?WNk`$2T9m)!4f%=lL%NZ|eg^6N`%#-pr5xp{-Q*)OK3L-nPSaFOTp%oH$8$ z!Q2!7j!n5x&{?ryV(un}A55pKPNuu~iMmdoclk_$z0k4)9Y4bIYNg)ZX^3NS+M~TF zr1ENpak0fmkJb){oxD4ump-pQm|LXu@6Miuj~X_+$%#)p>M!rjyM1z`!41K;;@|l{ z3Fc&{7cpM0Q@*(SZ@!-H-M!pj3m9W^1b6Kcu$sZo8T>gYO}(=4wqLViY8;P%Lj1Xs zWon%|ihakV6P{U`xxVH*vREv$-Ab`}%A>auncIWnY?GbNJ9?>DKRh?{ZrZv_x)XN$ x)OX0nWhCt6I3hVIV%nd*49=PnGBOKPD<(FWpJyqHyfkg%r5s-Uvpvs$008~RFs=Xq delta 2207 zcmey#eNb?MM!i$1zd=}pd01XizE4nDS%5`Al$&X|X_kJWOS*YfmA7xDNp^Trfn~5q zX?ci8NQj4JhD(TRMS8A5K~{LBSqPVVuv56UN2o_tTCjIsfr*)4s=1fBr=w$rSDAj6 zVNzB>sb5;9yM^$kxv^WSMW%aIQHfDTo_LAkT3SC+9~ezvh? zwr53fWukvtmS2fyNpN9iVL`fAl!0qcadC!jQE{R|phuChz9UzX zMPfy6aDYK#ihD(lqeppBRhdO{adJh7rFl|fNU3XidAey;RN3tjz_tBNq$~pMxkY1K$1s_ld)HRNMLeR zeo};Aa#>JCnoGD@q>r0tKytoUxRJZLA6JBdfq{2qhGTA_VL(MrT2yMDUtUJ4d7cwjg=wULvt?#xcvZGf zVOVZjN~CjmZhAsQHM0iq`X@qlDsByA?dS!^OyQ@Wxg?n*WL26N;lZj_0 zSE`p^c2;m$S!%wsSw^IJaCx|2L3(OvXkd_jRAr7)g?U9(R!E9_dYWaTe|=GUq)|{t zYIa~okzrMMSZZQsb^up;VwypOyPrvgnUTAvOSqx2UqE1`d$~nLmVatQZmD02S5ls7 zTB50AMoLO%xoL`tmt&!8VPsXHyO~dpettfeSCBkpO0~+ zWkz~frc;$yVs>glP*!m=mu0eZsdKV-kb8k$*t2cS??B zNl;OMSGJE!c6xwePGDMkWUf<5VUD+Nuy3GwAeWPWnYn*vhNDqtRe*a`wo!mnR$^&{ zc7{tvP+)OXh*x@nIY*MSw~KdFRpjKmOyc$FUan=KS*4+7X=YU^k%eiMrjC9gL79#v zMj_^g<)Oa%S=uJ$?&W4-ZoXVuY5o}{#>qhu=4J+7F1Z#FMH#u;PMLY3xkW)Hg(g|a z0g>T>W=;VHrtqASnqp*XYG|pTU6vA*=co|k6yob^>TFtA7Fu8w?4w^*?`a-TWgeBA zW1yc=oK=}vQjwdT66I+bnrpxnX_lNFY2ueyQX1t~WDx0A5?);5>Qm(7=aTQ`?Gfl! z;A!HLT;N$|QCbYkm@w<~!*e}-(iJj2+`SB4^-WxJJqx^Zf=a`}l8T-D)6K*E(kr}6 z6P@zB>dU-S+ye>{4Gg$)Gb55roD)kcd~zxsoxMstD+3JEf-6j1EwZyrvrI}2E32H+ z6FsZkObobmb#)bt4IJ2QPkJR2j^;EZE?W%G9AaHq-LO>4UC&vGsM{m%!}GFqe6_sMU*@pnqb2WJuAdX7yssV}$H#iy?k zjIZKql*v1>Le@h&;%lng=f^ARC$6}X$gZBatmoFP|JwYfLT|V~JURC}U%kjOA=|j^ z-Q3HK=5sEF$E76uTAkiKQ&{VTT0_L=*Uh0aeny6mKhL|UEyJh0E^7g=p}?l4rLKRL j|K9tIG0Ve>BjX+01$`mE%vapUuRQ#e%yo8;<*NSx$(1Fk diff --git a/secrets/hercules-ci-join-token.age b/secrets/hercules-ci-join-token.age index 1598ef3cc5eca4a2671e199a30b7effe42b8cdf3..23b93d112a9cdf25d6bb699e92490fb765a6fcbd 100644 GIT binary patch delta 1339 zcmZ1@@PuoEM!i>wb47WSS%#0NvwMbA_VYzX#c9gqza#mVqpu2WKp|)>? ze_23jS$2{~ab;qjV`XBLS5|svm?xK+k!!A7vXQT+le0-iNO+~AlSinJXGD;*sc~AG zYjS#MN|<|CV6whRL{zDfdvRX2Z?L;_kaxDHkDsekQGJyQms?4wV|YkaYDki{SxAzh zyR$)-lVy&VN1m^{znf`5q>E2kkfWDnWPzb}c2ZuaA3xcW9)KqjR8FAyL^nnj>{c}{pzm0^;< zg^PEITfM(mgufS8epN}KaZs44S-MZAp+{A|r*?6uPl0zpKwhPGT4h;Uc#301L}`Xo zR7iGGx?`S2N~D{!Wv;(Zd2nW!wrPnOSA~0EQB`uDQK)`FR=SbCYk+S`afrUYZ=zd{ zxq-1^p0l}0lBK7gTS{VXM1F<0scTwMR(X-WV|`g-c7AeFdK#CpQ%Gk#m~9W2#AsYgu_zP+)#;q@zbfikWeViDyKPb5>GBh-*Yh zQGHN&Wrev@VMwWk6PK4kzHx+aaYbUPfmwD^SV)MguUTSFT3}Lzvtgt~WT3NGo_3O# zcd=JsMwwe$XtqyKSdf2|ldpkOnNL)pkv5lCNlut~iK)Mjvu9vsdU8^!c2!74rdeJ_ zgk^=cL6)I^L}ievX|Y>=m{Ur+vs-0Ea(!V~hcadC!jYKoDmsiCDpp>}9M zo})r;Ql6iwW3r2TNVvawX;xTbh)+m)dA^UUZ;?k;K$w}Me}+p&UV*Q1UNTpHS-q2I zl5>HVyJ@zMQ<1k@NnTp0VQ4{NVqmgUp0k&;Pr93$SZylHDQ=BGL-OBSTFC ze5x`-@_hWTuGmCs93XM{;f+8b5T~e!x0|H9R z()E*!OHz{q0s~B(Bi)@dz0KSVxO8=O6+F^P^&?9C{nK;HjVg1^4BU;}T`hb)Oe+FB z$^$b!D_l$*>jPXYll=pX(z!gNW|f{kVVc4I<$J%qvL4gE4U-#wMhdS~tE#A;)7P}0 zWj_n^{DafJd8t2Bm7E}dwnz9>{|@Q>v%hTeX?}09knaa;{H>bZ$wvft%?)cZS+VCw z-uIanjbb`deu+mCP8|J}7WC-Egv7#a8~5(-Z2i@DZD*eF68Ext#+7sSY%tr@8qVQ# z`%%+zqscp507sXYJNEBjmeWMGXrnMWL=z|q*!nx`Iocw z>d93LTPkkp?XLRpq55jnlMU~_PjHqLW%{UAGpns^S*DQJgZwfhE!oqtOFbS2Z+>_0 w+{;xK>fhVX6g|!fmk@uK?Y~^yNa@?muvz~XPvQEmF!%4fx{&B+N_lUz01{2;PXGV_ delta 2056 zcmaFDwMJlqMtyLukC%30nQyUIWu~WpXhpeyL4Kxwwo`?(bCF-9sb`U;mywIRqi2z4 zvRh<&QfZNYURsG;nY(L=S9x+^VklR*k9MVzWomYkzn_Jz6r<<>VyPr>)S9)@BftOLbORm3mL}sX~x3@=Ffm^C&CYNc1 zUvRN&xuJPsd3jl2qFZvfr)5N%M@Ug#N_l=^PEk-%WO7BGkB660xp!$nVopxEc4eib zXS!idc73>GPFN6^QGsbyvVT!Ufl-#Wg+;J|L10QqPKr^kr%AF~c!{~8mtTZaVTzx2 zp?0xBs;Q5MuR&HwcDS#fc5aroo2zRvS4n7QrE@`YuA#oEzPqnymXVojWL8mPX;5}* zsfTk;d01$YwrOU5L}iw9wu`H2hNo9Sx|2&;R()i)L8@VxWd&D3gr%psySsasg;Tkg zxw}`XS%|)CP_a=^k#nAZmT^{OVP?6ZYe`mKT10qeZdjIQSx9<*Sz&5gmSLfGWk@ks zXiAxzPo!(5TX9~wZ&sz7S%6tdzDJN-L2jx+abQ`vL3T!HaCVw|VR2+YQGr>$Wt3Z9 zalK_)q+39SkENMYHkXs7NmgV|PF_Vwc6o`bX@HYSlv_qrPF6rld2Whdxl^LAc|}Nm za#BTphLMqHiBE>VtDj$4s#m&!UudOvvJsbwb4q!YXK7@WlUGtcadC!jQE{R|phuChz9Uzl zwtJqwn@^EqejWl?czzEP2nXJ%rmaX>|IZc%b}L}E~WZdHM4Vu+EiQCM!MS$(!) zPGvx8l3`kAYKEr=S58D)PC$WwX?|H+ietE$cSe?zv3{1Dp@o@GZgQ!GQ<8gNvVU?$ zaf+cqQDR;|V7Z5jiMOeze|}|@qXHl?AYLRh)rG9vNRd`N{iCJp4v#%ppS)`L=Sy@@Gwrgmzey*j7dv30CvZZUd zk9km}X?CH9nPFj;M}={zWxaV(aaERKiD5*Bxk0A8zoBJHV78lk2A7eye`!E)j((u0 zqft;=RDr8@rF&|nPi01^UxcYeXh@oqk+Yk&Q=vteUu9USkC(HXexQX>YHqT7kYl!2 zVg*-@exk9ZVQGtZUOOk$Mm8WHri@s5SzE@CEsd-LbL`J$nUVWKkiGFEeKt_I1 zevXH6q-m*}v3G8 zqHm#Vkgs{DcfN~Zq*-35c2a(llYx1WnM+t&7*}X!Nh8Do2%PrmvT4RQcq)Oyc#~=8?(TIe8WOg@M{dmf6YqLCIM`73oRo zX@wS!{@Q7w?xjBYd3j!?#s*xTzHZs!B~kj>5l)F-`PoKJ76tl785R1LW#yJh`91+@ zfmtQl`6Z6#<`%G=lA2;y%cKQ|W1u>|W~QVxE#%QIKI8 zSydQZ;A4^+W}cIdZk>L3uBT7Bf}4K6i@teOg=tA{sCHP1tC^*xb7@dSfp)QXplfBh zp?7|LN@ZqndT?o$D_2NaprebIduDNxzM;RXzNxvHd038XrjdSLaY{w0rFm&yfl0VY zL6CD{F_*5cu0ncRn6Hn1MuH6_K$S<9UuZ!{v87>nR8e4| zC)b%PT0U_H7uA<37R7$PP&<9?r@A+LvR=+IslTcvGwDv!i`F&w41U|GX1|i{(be8G z|0eTmkGqN@D{H?zeX_p#)H=gXZtvDX>9@ZnO(R4+?$&D^t8=#wFRf07!ubfpIEml%YDt&`!$x^CvLr! zsj#sB_%_YV62{gKE51$W(7f%fCeZD8T$(wnP*|~Xt^9F|R@MdfHF6=Mg60B;*@P~5 zrSIn~Vl-c`RD0^2 e1%KL+6+ye?0;CO=-npgnYpYpDrQr6Gm{|bHInIv& diff --git a/secrets/hercules-ci-secrets-json.age b/secrets/hercules-ci-secrets-json.age index 0f6f35d..99a6eb5 100644 --- a/secrets/hercules-ci-secrets-json.age +++ b/secrets/hercules-ci-secrets-json.age @@ -1,33 +1,21 @@ age-encryption.org/v1 -> ssh-rsa /AagBw -WiQKuCmH0qC2ENhLHonWQ6WutfZVQik0LfjLHUkbXEkrBcnoJVgT3LTz6NMqYTDP -NRMKTjr7sL7fL0hm/Ijs/m4eaQuPHYP6sf/5uMlnfAEyRnXNp4SRw+uK3+yvwb9O -eqTFKXTRuGm+u7+pJtGjyDoGpbNv9mQ6CG2/FFsl7n/d2ruhiFOir9JiwhLpwzya -9qSOg4j9j8/+majZcbwbhE+Fn7IRutlQ6Gm/2whOsUsZXTVkP03dnPWrfS/0BxK7 -ATphcYRpbF/56TDM8WZP9IMwx+HTci7vsqh7Ku5Uw607m8+hrGqL1YmNSkrvBv3/ -w1r49H71T6wEr9mAsIkEF3MvvednQiLaLAtqaAcAigNjniKZAjq5nnfc4/uv5VsC -5meoQ5Of1MTQNAjel62UV5ezn5Coe8N5XhEATltsEom6OSIFnKFRfUWg0HuIDEKR -lZ4hHvsjgNrt5HRKz/+XbpmNhbfa48j1964QIlKc5QqLXd05dGSFeC9hsnhdOIDb -Kgwe6dWaDiKxnCVgkwAwKuDF8EFlK4UeQtFt2KyO30yoxFzcb360Mbk5rAA3lglE -YTbf5Bq4NDVPDuXFxXLG5vy6HunhrkKu8hKPTA+4MnG7W3KKHDVtN6vQZ99ve9eJ -7qOzn3JaLQSu1HX6Uk5YEx3xW1INFi8vXhLE5pQ4lMo --> ssh-rsa QHr3/A -MuqiTZFIhTk74Ujih8ecGWGxo1zfgc7salw6CNCof52xDtsp//ucg5Y2pVF1C3gd -j8OGZve/4xoAIK/N1l292RwOQ87PMysDTGh1hlbc9kD7mxRHnplkrsQQlYA2Z5fD -Ii5ovEK0MynQloOgfmFwzuFEiqRIofyhWLB2oq4x2T8JtQhO+JES11gyKS8l9iwW -KixrUCmLoInfj9JjIPwUJ93fu00R/d34Oh7MbxFaNbDZ+TjwwSIftodtKi1ScNor -YUhhInk3Tvx0ON+v0bxZ80DH/hKfcLwkU5dn4PS6+GZKC39baThg37nZfqR0qFZ9 -J5VGOwwjtsn3lBvQY/Dlff6aSfkpL7E1V+1YTbIPqmzNJQ6JL44Xh6jPMvtFNW/P -4nbgXabczB6XiY9kYbbr5q/oTOhOea1P/bSU49nYcRgHggDd50NAFGL/FS5rs9Fv -vytmcd2V2cEwxTlMx6AYL00GODowRlttZ38hmgfFTMis+aG2T3RK9ZQuomQXTkgJ -rYsJJgv/sRpYiVRJp+1+EYMJL38HjQfMpkrjEKwLjq1wmy86Dff0nErQtVpI2Xm9 -wlYvCsv0WQDj/k3qQl0JcrG17xUISVGdBLBU+I+NZ5ojDBUVIJq3htIOcthgS+GE -RhKb1yDJWVOzulCnSRUaBljqdOgKPjScHBvjg+F5ZBQ --> ssh-ed25519 q+UPnA bqHOKm5e31kuqCD0TGZwol2VKe7Bggx9DAioNk3aSxI -D8l1Ok1HQYf1nvt6kNqsVLeagQWSowOood6mOqsHBeo --> ssh-ed25519 +vdRnA aUNc3tu3HCKGt8HL7JiPfuWmVMU1t3XD4ws0ZLbH1jg -Wb7CfO1z/zzZ0R/roAi34P5sD8qSEaZtQuArkfhV3Bk --> ssh-ed25519 /WmILg jLur9CKRWK6vqUBSEe+U0qOHFgGO7IMxbullvVQf7Hg -ZCY3zIW0YHFNqNWZeOBPUr3C0VvCE66UUih4ZibBUl8 ---- Vcofpjjyfd4tAAuq5PXh54QFAV3mod76Ymzr3OhYeFY -|’׬MN+G7 \ No newline at end of file +WGBp/iFyKjBA4G+uURMFM4BocIse1Tye9lay9Ku6uNazcIjSFhNFSWT8RbOWBlza +OO8t2bzBW6HErFPzGcEjiy9gRgaVDXa4P1yTjz2WHU1C2uJnrs/Yazl5kosoelgT +Azggc3XacsigftCgzqBIbE43kyyaeNB8adS6hS3r+jel0pQa0jW+7nysUBFZKZr8 +akjyEfkLPiHGiwnshCKaJxV6qmq0DtEgVcx07nyM0V78ONyU21ks0fwwP+j2fKGj +o9v8i0tVIr7FkS9IBc7dvywmv3gceYc+XhiT/H4AHJ21w1x2rIrD7fRb6c7e0km8 +dLvais4rQLA0uCYN6gej9kA1mwQssmJfkW+Vfpc3Y9B3wUF6g7SV4pErUKdUoZtW +BpMGNkLL8pkk03WwMqxooZK81zTo+RYY8vKd5si8Ad6eHNK4UnkbQTuevb/o/+sU +I48R1SBhejRyXg6c0/Wt0FsYI9lkYuiArNa7KrBrH/gZ/vHW0KXSHsIlgbLyDdIo +wRBaZUvmkv3LWwKxlgok/Mpb40TI0hrRGvPX6594EoJisuCbtwVNQu2wJ8Mbbbbc +kGjK99MdnZuE0MyhluWEJFu2vfPlzqsTS4UkaaO/N4CbdDPdqvI656a5ABbQWZ8X +51Kc7kmaYayeCBIx0Vzn/+RgeSfBrhgUjW/pYmQsJn4 +-> ssh-ed25519 q+UPnA dAJG3yFxT1Wlvq3ksjk5TJqBM+vd1nW+RHo34QDDES0 +JfUs2KXj69iAxmWyeNoOrfHDXgPSEUbfKMEoBcajM7g +-> ssh-ed25519 +vdRnA fJJ2rtzAd/DooLSPNUK9JuClIbKEPVS3EsgcL7C0rkg +hVCzOrr1uygpISLkaqlqOw0RBrMfXqmb9GRklXEsBYA +-> ssh-ed25519 /WmILg ynOzrynzwHU97OIkrSgcKsjtNiqrwVh34qGAppCEnwA +Vn+2Xix32jItKgwvmUmCMq11AtMYYxu3e/mpDFFDPPA +--- fkWf31D4YZe6d3X3+o3+V/X9Q6vw6Rs7fPWkF2gvYHU +%rن[04)KgF)zuϞA4!!# hG> \ No newline at end of file diff --git a/secrets/hetzner-storage-box-sisko-ssh-password.age b/secrets/hetzner-storage-box-sisko-ssh-password.age index d2e9b5acf5f88f348d9ca9895dfbe1ef5e530b04..3fe339cabdf6491d2b5e10853248d2540b77e326 100644 GIT binary patch delta 915 zcmey$vzC2=Mtx95a)^mbh`)bCpj((*NOFXCVyQ(%V5(<8vc6%3cfPAZl3z(qL5XXC zadw1xg@L(&x0zF7Mpj;Cpm|yqFbg%ut~0wX?;j(p`~T1r$1L>a*D4(S%#58Ravk{ zQLc8elc}qZe`REWe{y-PQ8hzyG34Da*2^ikg=mVS7~x&V2-;cadC!jYKoDmsiCEUc3DbL zo})r~QeafBNuEz(euRHkm0w7Ng}c8&mS>5(c94-%YGjs+Q>mA4x@%B~K_pjVM!k2W zaayR6qrP#Ods>OVp<8)TT7kY{vc7-0PpE})xNCt?UY=iNc~U5suCA^^XnA3FnNg8t zq(Q2uNwBF;R;jONka3j1Q)-!alwp39r%_Q@vUjp;UR5^Nbfx((Oe0=PzX)G%x6rXR pU8LH{*z&{;r7dblE7eaQQF!(s+HVEV>YtAH^)(pv40{(!0sxt2F}VN$ delta 1614 zcmZ3>{*`BfM!joper{H>Q>0s{xq(|yL{++HszIP*p^>Rykwu!bk9WCeMTUo?g-KgI_nn!3+fxcy6fMbexplO6zph=(`SCq4Xd1!Wod1_=%m`R?0si}90Q@Dj`aH+nV zVSciHlAn{8Q%OjKlZn2wds<$KQ({JWl%-j4YJE^qs!>>Ek~UXRMu=OuS*D9wSxBx? zq^p6sQ*MccrM`Dnri)o-Sdg!av$kuxaap)$dPrqvRaRNDv!`FSw~wp2VM%CsSz0Mq zrm35IrB`r4aITAciivk}YH4LaVpU*-S3rb$u(^?&r@y0HL||Ys?TR~u%p|PV| zcCM#cRYXaMZ<({Ro0&;Op@(T?nzLV(UkF!ec7ADSinFP&ac)J9rI%+#aiM8WVRCs{ znpvbtfT?A%c3@cadC!jQE{R|phuChz9Uz9 zn!b5TrM7X2rDI}FnNxV4mq}5kOQwE^Pg-h`dtyOOKw4UIXmVsom8(-kfun(WaDAb_ zM?ki#i+{FRrdz2$SCWC5esNxCQAMzei$R22dPb@EX~cT3{xz#lPdgj{r$}90}8_{{5*@p(#!Mx^24iAGr978%uMo%iZVh=ojgkN zynKt(ys~`5G7B=?qued>%PY;YqTD01+yk;JjFKWuJ+w{r^;5I*LyXcq)AO`TE%doE z{X#u`O8t|g0zE_AT`dCjJ&jFGwe|JO6P<&#jS{QO^9+3>N`2Gv3eqy_{ml}?9bM8b zbJ9F>N|N)OBFc>&xm-%C0@F-OvJAAdQ!7I~Gm?#sOMHU8BLghcg8WLI)5=^ejJ^Hy z+}x7Vs!Y8zLdzopeRFa=qs$Au%M6l&9l0FMypt`mJoB9_vph;2^?f2EvqQ2IwF?r1 z^^;w+_4R|jB79s*BPz}6&Aol{4Sn*Q3?d?2GK#z-Q!Ok~BMMBpDl?4qO)|YJ%5%e9 z{W6kM%*)FHb6rY`Qc{hyOPx#2ol{J63RCrqjmteEf}I?bj4k{tT%uef+`OWaee*N& zxGbHtT^x-IEiA$k%_4n`k}9ISN<&JjJc80Kt4z$yJ)>L-l7h3NONQysNS-Cf{WeuMhDr^-fNV49d)OEXhpuvkY?bstkz?cg^<5 z4KWRIibxC&bN17(tjY+C$m*roJn%65BgjU{=1FI@~cqBn{4&|-@@ Lx_>t4P4EN&il7_M diff --git a/secrets/home-assistant-token.age b/secrets/home-assistant-token.age index 00542aa..22a33d6 100644 --- a/secrets/home-assistant-token.age +++ b/secrets/home-assistant-token.age @@ -1,29 +1,17 @@ age-encryption.org/v1 -> ssh-rsa /AagBw -Q2vgJ5hIP92ny8yk2gih/ZbmUpz+CdGMeQnX2ekORZAkWSuCQvGnBM9gAvRyhoa2 -2pmPOjP72HaL8fapcdZlcKHZ7IiQuT+3VWekQmIrrMSlSIwVnvasnOBInxA9f91k -hPR4Np6szQJjMLY7jsgwC0FrrUbgkZIVJp+y+zW+Vk09jdVb84vnBX0QFu/T01Qe -B0GfAmyZnWnxaKkNyNZb3afd+dpWZiZ79jnA4qOkjfXhhmiW2Ng23XdkHfjS8ekN -UptlWH8zbBwhzcFCGDkLEMs6/IewozqvzyS4eqmDfwj8saO78ue2R5pE2skNwq/q -EOneH592KqEIWNFgQPS6P4gjmyWtMnJsWm5SvEcg6mDaE1e6acJ7kb/kYI5zyK6y -PF7lzqsoge/+ptvbQxTwlvhhJIGob3Wqf2/soep+o6C4Vh87Wt2zhHmKR7Mt4Nrl -IIs94GU9SDTz1zDOjaBW/msPDagskVpQnu7z3p9iTnBKdxs4WEpugbPZTUVioChA -c3T8PxLy4pzhm88Rz1KNK9h++uTCPIooGOHVQj+WQpUf+ifWEWiwYEdeTbeutjgF -jz3Ntl9YOzm/w1JCzOVdOge7dvfx0J6qAFbf4OkcLhf8bv2ljSL429NH1lp3DCHY -qwN4wlKpOMGThw3pS2SVd6GqINwehrbS4OVobE/kVH8 --> ssh-rsa QHr3/A -OjdbkVy7w5q3kxFm/4uMbjuIMyVuLSqSWQDvfE1T3vEwkIRJ1w8DOIwahO1qP6CL -oZOH9A5xnS+UcJOSdTqiN4hHC03uuxx1unh/CHPm6zsSksCDHkLvVVhHMaVINvQz -YtV/bek9AWdgT6zMke0pv+zzuCqFGLT7Og1k+aCHtECkF3mB6Etm2P7knggJ2BX3 -L9YzsxSO4jj0PBFGX6nHR71dfq2bctik+mKW8LjS1cQ6plOdEsNHUR7s0bwoslrA -KdD6WOHoEOlxfTLiJmNB0A5pZb+iXJOP+ygrpC6WfJHU8nEWZzglNaVqrv14pieH -uez3nji2ZRsfkeXZI4vQJJ8EQ4LJtNhqki9+AcDYxX8pPUQs3e77ytcMYUMkhZmf -p8rC8eXPP69vS+Ia1xyL2nGqPmggZh7iT1VKOC8kXcHX0UB9WZXcJqPeDtQUO6l9 -cbGFSF9GkWfuVya7tl7rnRQVQs0Ko6XjOAFiOF8WA0YFNACV/2wVawH4rJ6Km48z -Gv+65Zk3yCXP231saE/Ztv3W43XLiJVDuw2RlUFXpJarGqAAZBhSC4qtDAgzHYLU -CxPrRtoIzOMv4iTzQmjJQFpArOBXU0yWZkaVwn57w6jEzk9NyqTZ02Oxb7DwK528 -F/fQOyw1b3GYJY7igv8+KbB+Bup9QQuvHxuxpRaqnek --> ssh-ed25519 +vdRnA 2bZe+2cbP6T+Aa1g4lWhnOLkJdT7YqfCxTLKZ6wOKhw -i0+UOKIioQz01GfATEmNZVdGeIM2QRIiaUyRdqTgXCM ---- +1qA7qnzAo1u6/yQytQoq7MsZ7owcIa5uAqdg8UQ3tY -q|Ti'ګ^%;^4ǁ‚}+%ϡ ~آE>р0%gEMg.FPWǭ \$Y;2^;LiXM@%\Vࢼs$sXԬ̢|尹\Jܾ3!NC)ƿrQƟAQO0 ã( \ No newline at end of file +iWyPgVB+rD4RJ7VXI6RFJV3aQpVRfUNAnN4R17ygZpMjzpkGDsAapiLyV7qJbnAg +2TsIQnRDZ8AM21l+g7/9Hr01cttB2I6EoCIbq7rBZu7mvmsKYBOuk+/8hY4LiKO/ +2xq5MH4L2G2XTOalW9DBmI3Z9Z+jP90B9/XIerSPLmlmPyGJekY2x8HbJe5ASPno +TFmusPflmPxStcmLOZ7y2n7CpM2j3wbosiTzVbZAESY2bur9vfIlLnVtbfN8XuDR +wnhZLb5QINLl3D2nwJkipe6Q5U84s+DJmoakLbv+/2z6tgHSd9vvdnG5ytAw0zkf +oE91O4O9u8rza2m1b8ShokuSHmiJQyUlYuJM9nQ8kTEE5JKuTio+mQHyLqAAjc2v +8MC2dlYFxiJ2tlZVf21bf/ig94/MonWuYXDfX9OILen2ni/0WBqySvJ+CAbtmrwL +2HHVj/E+FoXqOdY3uQbjzuPGtbcJQm6S7wQKhMESUkb1BXTPbBqa8BeaTYi0khf8 +woobcHcaDEh9q3A8mWHPR+HnVfDOMIrtitfyNv6iBh57VfyxbXAuZR8QDOGVYGif +xb5+8Zbfa40i/wQb3glWnsog90bjs4qMBz5FfTHSp/UaUoNlRXztizaUo97cH30W +99owSDaHV9FLEqANvtmCCt+HCc9ZE4nHnP9KbHZkQi0 +-> ssh-ed25519 +vdRnA XoYbjZ3p3itVK2buwZZ6WmtQ7m6HButXmsBJ15vG6S0 +Jp0Dxa7DBNKj0caa++21V1IMTcUP69E6YdlXpbbGaoc +--- CFN1ErdVcKmuqUeKUnW1AGl9+Zg9JhQheVSRlq3px3Q +DA)=\%A!bQ=W!-<*m6²WBq%@,$\nE^D\ZȟƿhfC,|Wf>\l^` z{mO3k8~]Ӓ)tz3v>eꌤ"\WwFnT;Ͽö́"/MX}G \ No newline at end of file diff --git a/secrets/home-planimetry.age b/secrets/home-planimetry.age index 0c7bec538ffeeefb9c3e3db6f9984b16b8c72462..2926aae9a0381f1f1730c1bd28610773014791ea 100644 GIT binary patch literal 564029 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�T$M)wf^K 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
HbJQ>s+P;Udd+`Z`{-M%rnx-YE8Nz3 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%0DNHyKRUc|IU*zBys$!A&a?#JVFJ?`=w zoG(3;sQ>@+y9!6gYV(b&HchTPFd?F~_D zNItR6HQ{=twn{~_!8-dJIl9MlQ+_M?*BNB2IQQ%NaoGate<4%|3Lb$rvmMk zZh2re`^f9H!d{D4^k1K&k>S{Nc8gD_?p|a`BUv9-XTTcs}b|o6Ivd6Kv)dm)P%CUM~IY&boT%X>3zs)H56& z-JWR2;kO-x5bhf1Q%8;% z^i-(7+o9b1X!@D=M--X6CbeWw(9YlfK3R{|Wo2H#B+o_MR^@JY6JD5Y(W{=!bMcjW zWI`&3-IIfhVx`QgKP5%Ko8o)huyWxlx0vbP`*N0X81OW|G?nQsH$HIcdW+~S@pXa6 zwmyz$nC84gb@98ul8ei(FFg6KY=88t=)zCQH|n)ylvkyH|D`Z}?Q_}IZw!AQzxv7L zU(lX;FCq4Qoy&tQlT^PobPCRU|7qiAgZB|jVp-j%@0ZJJx=_7l=cIbir00uN54|&a z*7Nns$6SshI+vpEoqf!tZjr%IP?06|OXX$%Zz!t zGPe263^rLV@wf9&G`&7H`*qhk{qQRXZ2Q!ug{MswD4W6F{%Df(``u+bPy9_5`Wa`i z;lnDMw#jy?HX9RiKgn({`dB9Uv9#ND`TKJ>7ww9E-#J(KnS$p2k9OLe2b;G(Z=ZcS zxaLK>gLnEV|BEjhl_s}rFUYF)Xn$kMz@+@b`Lt_TI)fRH(tGxIZyXvgRjuAC$)fzG zEaRG!`Hg2U)~3{a?fS==H+hS|XT`N)tJ&?Hbv3iH1b0`xxVYAV=iWPWhM#Md9_&kg zS}gB+@#|yB#9K2SzP}$NoIhDinFni%jQ^&;W?Fs8<-`m%Ifj3Wwr~EF z6n>qxZsw0AuTr$DSo*GUZ+NtZ{ryRe^oRK`;Jn=5zcSRxYn1gTDbf9 zq7yx(p`PCs@Fnk+`Rt{C@BXHhE4QW1K5lfi?C7gjfzCzGdsWnaa zT4ztw?N;Zv>$hj8wy#|+dHdU52D{ZAtyYg-*UXWv{pu~}W6IFE&$XXf|MBHFHexf{ zZnyFUF8wa`rsd(epDqnKzy8`Kvz+<+so!8*;6}4{7UAQfUb}CLE9`xGXYUra+_0l2 z#hwRtr+-rGe)gU-Y=`281xu2?r|f!UpSjj%a_9HSrB4Mmi4_F%?Df)K;e2G?D>oHc z?E@XfpF>zr{xaj)H{)-)n%efl&UK&@}hXfBcGy*}MDP zwxqw7Q?Wkrx?$S4prvB@Io!I*zk+=}w8rfDv3w)vq`E+{SA6@em4mB#3OOmLJjIW zG|p#~E>~tbQhuf-{j%EEu-KXO3tJ%*;uwn~*tDV@N=+%&G(0Odzu@9>+ ze60A^taCu}@S$?I9H|MH&#}(eyRhTHtMB*YZV8HNPEWj+GV5HiX5JEoB@CwypS{hy zC)|0RiQ>%~(UZGhTg&>s_;{k}xyuJv!Jh$l*hS)7uXD8jxKi|$Z`y53kHry9WjvqYll)eN{h3MbzltXu6-()Tz18T~^RI1ZKW1LPD7ZP` zk^+mL1G6!IUyz%UkgfL|_m!FQ?FN%q^{3yRc&gQQwumoZLg_q9)qM6jT=U=LC|Ul0 zV7Tz`wwW(x6o=<<*J>nfwS0YN(Q=t5a*7_tIxkJ#LtfeRgk>i0dG*E3=g+BsB|#4V z=JN7!_&EP~dPY2|r;mqkSMleh;D?oL>}D%w>70<8u~Niw?Xh*4;-6j#Nj`pVlis-D zU;NVvA^QtIi56Ae>`U)czx0>4Q#o1UL7-nzf3?3#X0b)r$tkau3j0(nVqVNS#}Y6< zu48q@++$6Ny-Q*kraw0ioc!1L#qOK=(X9tN1*hHNVUQ8wy1!ii*O$I~?st_Q9ugFI zP`e>%`OJ@c4UwVRmsh-IP>{AQKV7D|v^0!e?Z!Oa_L%K=texcQXMbM)Q&wYsRo$XF z9`+N`bb})n?z~<-?Ldm##At_?&rZ~*aBbbbZ^5N?$K|-U^Syj_sp`D$G`>YmA+y~( z@{4L2`lqQ}HVsLua|z;}Qk(QI!S~I5<=xtMg{OWBezwVO@hOf5RW5az9GR|PY5i`Z z5uNMmTDfZeW*vF*@t)ObA$3>9wbJff+>E)u1bTi}sd9ZZI8?}f#Cns+1*gM>Vu7=| ze#qMt2wh#arXnNuS>*(u%I&{Aed;TEWPScPIu@MyvH9uyS=^n=&VN2%(YG%9?=y!m z%@@+A*0j&Q9C7#oL-rPvplwrM=ihAq`sVERl}u+6_ZZrLe(K5fRbP44u?3AOOMgU# zWg3{h32NJ|Jxze$_3w+yXj6)A)VqsJ80d1u5cx zmNM2)&fdI+C9G_Avg>WLrhME?DYS4pFHPKK0Esd+qIbO&t`vl5_pwC?-^g;lk3p|pVm0#rCkwKoSE@RP5AT~ z@uwUcF2D2sYqw|*?~gNi>rMtAdYcsyW2kZ@V(K}@lyA@Hi`KJmHk{Ox_~f_ird8P{ zhg3UQ*%)Wn9x7OJP>`?ZjT6u5Mei=__N02*TUh@~Jf60KYei;ZpYn>{rC-hjJlFep zcbEKBXWlhs-#UDnl*FW87ydZVFr(}C1?kYrFWxXKZW4A`IV#i%G=fCZs8G=j4kzoce!l#~HO{EN z?4lpH{IwXt2>z?VuIJ-&{#FSbnC!v&%Jk8*F#Ss@8yH0D8><7J6-Qnbjlcik%Dq*M zRmVb3uVgvVE26z&Vef}YZ@fM;X~g|ZT3;8R;k(U0+B>{qOW%rv*ZUf8eYfA=6>#@k zg6FS$6|D|a-c+7G>Up`%dg0lq+eW_*F02+F_f$XAm5>EQb#s*~+PjX=uo)ZY<0=P$7chB`0!zDQhRjpnrc(`?0UqflD_U{hy6y2qB{+*oYap*1oiR8b1R+P z9l7W1^b)0OAwNI;xPOG9&fCOMp+f>o&3vI@yqH7eBUp; zmG?vQS?1*P&wd9O*|cn5E3vsh*}+wbcT1+eeU;vB_J-H&-@Y}SVEU>oZL`_TKB#Bk zWTW7_o(VAveAjEvc)>4RFqg-x`{ft);2+sri&G1}?>MS)bdN*K_e)hW-xK%EW(u5f zNdCmP*KaqR4OWvooBeUC^rM?yJYQwiEw9;#H(8~9J+8?Skzus>Qmy-J9bvbFCEw;8 zURHO+wzF=6uZW0q*_97c|LzoV#jaTVOt$l8q@l^`&5w53XudWzGhNOcd0Qqk!mVf} zQ{se-b&BlWtM=&dzQ4Hed(4D8v)&vDba0%Ls>ZuuMcl@3i`O09xn*XvZe_!CEf$O0 zN2kcD`}( zdYZUO_T;!MH|>>{&r&^X*di};f7^BEBJ1l-uIIaQmGXie8gCwLKar%mao?$VJKrt| zIkhLOHla;vio}l#Ewi|ikFst$m@IW}?^2$r@1$J&6(&Cj))ZbMzb@yv^iOep-=o)_ zH^$6c{^)6&!|VcO=I?QN7oOG5zIaY#C(ElnXXM<@o(=qYLuS(BqiRphFR-nRRcY9s zD!^Cs;t;n*QMaJ30JCrOp$8kbB>Vk6F~PLX*v|e}SOZ=0hj;-!&?-LeewToYk zJuKGE;Qm?u&!1&kTmF4tH6wxXcXe6Py-k}qQu2}`Jic9heDP82(p5?SF7(>8CD(3e zw~{URDB}^RwqESuQpZrX$8o(e%C8oAmmLQ)S<@fs?uCC?UxB2!K zSq&3+5$!umsNged%)O)A!3bE>8OP`|hNdTCehMq&{DzQTNG(SF0z@ zK4y*RG|sdoR|7M{RDPb0xZXDNx9*1C%T5Ya%xyQ1E{_XLQvCW~c3KYmgmnAUkNqdr z39os`F#Yn?d6$0&o!afzUpL=&d8%Mx?THJQWtqYr7$pd+_N8*4Z2m5>t~N|&-_2#l z-?iG0|FdlfI3Zi{VP7)m;)uUzCVNZG5dOPQpm))ZC96LqIov;zBb{+;(w6VJd%Iaq zn{BoYN)C0reqP*sQQ4%;Vaf(RI$#Odho2|p=;0A1!}Ze6<*hi;gHxjce+a5 zuf6i`TPMvq_j;N^!h$ub3vRYAxBoD+nyV$!Xp`L1)CQAC&li(s@8zB2wtnmUI5W;$ z+gkQ~WLkE4+0Iz|Eiq+n9Z^fAr|{cE>5H~>v9P}2GqUFA?8_>Cwj`}ZU+ZkQ{uG;+ zmqY*U+H4xqeP9X8p4Hm!g&yxd)g6kLm=o%K=+*s=oO?O<{XArIp6$U`b;nsp?oVlQ z$vh((Epq2w^EZZ)WEPR+3#T)`J?1)Rs{clNdqm*c%!KCk>;#uqxX-d_ue>0xsHd*Q{jxMCr@z)STlM(|7Y?D% z4zFjOY&SS-bWmnN&A-Vao!dY1Iedt2H+j5z#fy0V&XuwXzS6Jl*YfNPpQkqWnT*up zqyJ1MPv|)7DWYh6^;6F7qZcF`ZhYD{`ALWVrF}M`7fzk1cX_()AZzuC9L4q=WxR0{4dw_ z4LR)@*j;scU&aW zOm@>Lc)(euxx+@H^fvFoHF0_-MH^gmjy<~6lHh}o&t%aUk!sk^aT_ZnUHh2&pWFN@tc!14Zdbi`|wZD=MSpIRE?7E6I z|61sk4AoYFIED2F)AQA&^8PLpSCjd2Al+JC;rhg0L9YBCdJ&yl4g4j$lV_(*+#Pf) zDd~{DtU`6>B&|w`4`=_`*RAwbORaM3U#n@o=JM|<%l4uMnR-RHS*q^o{Kc1+&DlA9 ziucrS846)4%fwgAxN_%jLeIw*x8#$Y&zH`g@0T}MrlM=bbdR47>y`+YFEafYJYhv% zY)3%;m-~E&*~+u3uNiOoy5We+*IN<)UT*pC_(b_i%h}H_j83d~IsK#7EL+rL%0;1L z8i_~m+v|w9CM5e$?wq!ivq|*sneZvhiHmI}ye?6G={j5M#nFeS5??s?ocbl6xl=y( zRo3zLr{Bt_=PE|8JIDg?~qwKRoZ&RWR7rYWV zzkgrr=6BhjIQ8Ey->UmdyFQ#b!cJcxmPji`KtrHhDEmRVYRXf zn`VEJv{=tPx8~pFhG|NjhKs!Jw)WSj6!#iyi@vUY)x3zWV&&I8-+pJ@TjjX=@YCc6OA79} zm@slTvUW$#3yJP!`n>&=-_Lwg3-f1xIBnW*ZR2Xu^Aq;$_F)O>4C(1R9XgwZ;lo$u zC3`kpJayl+YH{>C%lH2cizfD_&b+FjbJZ!)NZUX7tH&iK=KA&KLc6B6K6d5|^xAPc zpF6GTUjxs>N1ENw_7qiRR^6O@?f-&>yvNe34tD?bGJU@L!Lt>5Q}RzvTqN$;-m#)( zzSw0=uBfmX6HJSy{LrXgVn1Cr)+p!wrWT`0i&ZrRMSMHi4kuq!e6zT(*F(hM=ef?1 z%8=7<=Ua~m2ao!_mmhQc^MsL+_ubDjW{n;Oz_!gvOulZoWBD&A#%s-(= z*H61&@lsHIx8hV-roz6%o%@ZC1dA|d+_{~SuJ&FwNHFH8_rb{1GjzBXXkAF0bCa<` zovDu1diJ{Kh90wD&unl_KB7~)aBEn{1h>C77cF`i%u|-{2$}8k_Yhmwo;8JU{8)K~ z&T*$Kcat#aN$US`S|s%EBkK>%x!ln!-)&&u&3@vj!qTm0Oq`~h*X-NdSj?<;9cRPrR)EjL-o6+%ZACHrt%S+=`Uzh@zUT@sV z9`u!ALUZNj&Mga$=zKaqIV$dS@ukQEJlBLbYV$D_pZS$vF~|R`$7Qo=@)tAs0^<8u zm&-nrXB7(nY+YCR=2_#MqRCwvA6+*-;XZj@{t2_YZ<2TXHqir*bSI#Bvn;Wcw^gt6Oo-&m+m{!%d1>tek*#*8OfoYQ zODt7;WBbp$F{n(ME-N~d(|Gcu8B80kAMXt*TlRI${8a|uvR+pwCEkCg*iP(d#5+WU9U@cqH*>Yzg+t1{fV}bLeBENu`;HMj(pxMUA`jp@S@a!@(I}@MYldH zTH5OR)@Jz^-BB++xq|7@PG{$(m9Aa;O;seTURti{S5Q8-)O60Z4SM#gd5bhNFMga_ z|21~gG0lKWn_gb+W%_XF3)5T4voGD;>KoK<{+ayyvCV6tn@3XOoOw4+TgLw18_VjiMjU;;Ln-(^hI zd+c`4d#M?5s3oB0RM;X0-_P52Ev{jjt->*@)7a_(XU9Cxi1cSO)!#)G#x!nBR4ej- zBDnR=_0>_iDwnjU*?8}|y+l6y|D{{%+;){O&Lmtkex$Wx(K3feo(w_x9TUztpHQy+ zc)0nd`^4QfIYDNDPQlCqmwyIr%XzeeKd_WrF4>a%sA}u0KceP+hTDX82ka<2l>KHw z+zS@t_*ET7yf0?m7hEDeUBGI3=MkHL=mX}qJ_~eYE!PGU$Jno2{{rGS9=XXu>T6ruO&c1$h`I^8x zChH@sXSlwag z{p`iFKksep;Ieppn#Xhw_X^L()!%n*KXpuJ;s&Rwhb^XLKjvF2lW@D*`k6!Fl{q!7 z;y2EUTzD0w8Pn*WWpjMZ{mCqD(HGVwet%=Vd;5*X>GJs&W-V%AreX4lPo7N>>Ev8k zI_LSfGfg_e%!RY(JUFMZxZ&xUCp`BqeKmX)%Vlk;pWsrTz2%0We^7R=qg&W#?VeD6 z$M9D_CptS+JzkM;OYU~DCePoqvRkV&^Fq3U6J<6Svt0!%K^6?f0M4DXF z*1g`tJ2PRLx<=@%x{2j36SOwYto`ixXTL=wtLRcwgVyzT1L7vlV2=&^SL@?3@z*r| zNdkJCm={k};O`YJw0%-M#bxQ)fURj`k%NkuVaOk?BCZ>vnpPDOi&IMa8Y)Pi}Y*x{B}KW=*530 zRbu|XuZ};jT(-T@$7VuAfktA+wn_KIP47Jyo2MG@oAL7Q$HTp%3v+i{sI!Lzx?kI} z`rj$3M{Ab1KW36x%aC(q%gMJtH)JIS_Rr#CEB_iWZKEyk%q;%ohhAR=B3O4H=(6?(J z?_AvC%VTv)nT3b1UYSL9UEi5Qj%AD|wX&;hO=4$FGFvL8QB%0BXye^r!>CS!gj4L( z6V5v`hjL$J*jT+HfAN{ApNsrU+B`YqX75(u^}KI=;Hvx_?wGZDXZ=5MCoySu#GE_z zv547Sb8~3M;TG=XKPLn}-_X(P{%}1qxvsF4bzw~KDU}W@H*L;{4h{G-bn^>o=UiA!W}zG0;`_p;@>zq#)n3)6iT7XO~PVw+u3z0UrkW#Pe{x0Y0H z;`N??C?@~;t)^+lGB;OTtvOe6bvEOj&bQphgdE@4&B)ks@=}b2O;=^aza^_p7(O>_ zylgXZz2fz|l}=7;D^u>(Y-)Nh_WjLIXU2Cn)mMUJcK@BLbW`$hyTM_R^M}$aHZLx< zsLr}6VyAm9w#9H)yhzJJ-wSzR2O~TKx2{;U!glK$@g0nfuQxpk6**M!_k*%}&m)IJ z#Y#!+FYCN{w0}qk%H5cC<5lcJJLk?Fx4-)C+APTL`0Hwnl=-nEa}G{qJhf$|R4H?% zlIu%;36tWpew7Li+rAqs9dl!6W_JsCkQLwLRCJE1#G5hbOvGE;Iftg5nzDQ2owqvY zzun~4t!(&OT&LO0{wwqAr<@4qwO0e&n$-mjE&Fgmr{E28-;(L6_%z3jGMNc`Kl{f#%`$N9g(X7*c z9`cD%nEk=!q27WQPiM<&9CCNPASk|p;l9S}OEb#V899%KpINnV_0(yNr<4vKJi%e* z&)tzRzf(!Mcu(xrUo&3j>)bBiqWY>=;%TYLW6AP}CiWNgFZxyX7CTk%%X!sr-=49f z(%x+Kh5!HMD}_SK9(g}M zePF6j)`IB6|1uw*KhC%&+8GczZ<6-}qQ}?94RxK5m%KakUo>ix6 zEa|kXeAQZql9ls4cmL7$JM^sh&HvvKSwDNHuV&(B;HxFEvSgovf{`mE?p+;Kg z92+(XNd|k@H)kgPw_ATrDgE@>%M+(;xccry@s@wzqg-lT?g>|MJ(yD<_O~sNfAZ5m zXXY(@bC~<g(uA)pNjd- zVSaW&;^5_=3Bk7h61PrgtvdFg`|7d4%MZ4vyzKh%Tj732wOOU$CmpW?{7f7zZuyn> zrZ0_Qadu70>3cCn^jxwnZ(YGfhIM-Shvt2~F8luIQ_;O2_5R;(HPsHyTB*5}pF7#m z?dF_46OO)q9Qw}u)#5)z^=G|hY`kR;Pk8TQ+}3^eG#3ZsGLQNlXNt3>Zakm7(CYUc zaep^o_bUq5)c+i~`_GxJ_}jJAiIXcABrGTqo!T1rRcPvg_smD7ZQ@pIo6njZq__4; z^tuT)OHMu8miBXQ*||@3r+HK(;*Kk9&wBUEN|UeuGs~~z-l9QMi>g2Fw+x;!*+XHK zv_13wo4$M{vqheY@;`Gw67onwb^iR;bxo^UdmL3&PND)-8i15!*bmQK+a^j9X zTigCg%1zA7?vdZuXr}y4(Dvf0taDpC&Sx4cZYqikV|={dy59PnY%0I~PXAWvRmYWN z;xeY~GX1r{HSoV!Yh8-}7lsYye>bL`WLd1eP*%&l^q0uJ2dD0bXfs3}EQ<|oeE%@4 z=jp#I%a17}F8njKOET}|GV{$W?dOYTY+2`+|COcDXZ4lk-*?o!n3(%}o#&V9<(*$1 zc5AQXUZFUPk)`g?@iLKD{_&qDU$yBjjB($~GU3y6-OA@0>*q*2mpSZsvz7nz-v2-M zUDe(7Sf}H(f1Ym-M}@2Pk1$=XBYwA!i|00oU#MbH%4wSE;>4xk)a+(_+**HM;J@n{ zA`achrtIrsRPd4ItK_n*f6K60V0D0SK&(CvvTJw%fG-GKEHg^vF%N2Km$J#*Vmz`Oy+CKrV zr7dq5tHn4RCtrK<@5A%i9r;J}Tpg1arSg3-d3XH9&(|r(rQK%oef8?#=Qm9_prOy*8I30Zg|B& zWwC&g*GaZpJqw>tD!aI%=4hp6?3&XVF>(#w0p;giHg&I1`{lXn#1ZARkZ-PXX~kPV z=JI^VXw6)puv7bN{UMtc(cUyq?Ur_n_=`*n|FK(d*;bIV;l@9H)+?vtWMXIOb-oJ| zS++ATU3q<7;Ca!^tDW-8v^v&F&;KU%qQNm_!92%H37q-!qN;Bce6Mt3`;nN$(q$xn zN%L4sT{qA1lbi>ObZwu_FI*wH$bI~3 z$%W$|6kLQ-{!GYH3=G`(Y>Cm6a})ZHHNO#Y(fqV?x7o&fr{AP0Z-21;{@tbO25~X5 z8+R`Jrm!%%ZTn>(m#eX=I_XNQ=QV%i_Y6MZTy-GjvC287rOZ`!yS@j1ymQZC^&e)= zeHGBZY)e_pXs7qwfO>9 z^q=%a&yR@T=rnGLDY<`VH5b>+2G!X6>P?L%(yC`NH*DZ${>%f^fpwHzIS2W0*pU zRLn}8FZ>KjbqG6O72de;SCeCoTVq_{>WqNLKfcb<@YvNkw|uQ_v!mjMYm*+u2R>-| zJ^yBz#gwmaHO|G{*qpv&t^azTw(DtII+m@v?#B0VMwi#7J@4$6-4M0fd3)0br^O9z zg5n>#mbjam2+lpQcm5k*jw17)IzLl`*1Fa|+WF;qq2Fuar1~p4K1P;{AI#$2!u39B zaRoPTz#6M99eZ*ao1MzO8y}DrIsEV9y~3kxsdY-NslSfZ?p?Yxm-9{NXW@Bk-k4Ty z$!l(7I{aRs_WWz-=7^4Zv%41?cjZqAp87^`0xMtMjes|Q;_hYa6SuDZC^u1Q`)$pM z8&{VqPF_`0lNVN6u}CJf=Q6k9t0bG9>n}SUdEeuvvZ_&wZJY9$xqB{zGF`MtiDce< z*xN3Pt#0p}m^{X!MQa#czE;1#(fn|UnBTFOWreTmRKkPjWOq7O{CoKP_Y$sc7HO+v zy;63meRH(pTV!y?l5hI_%2daQX@{=Y{(5%eaOsnkXLg8dt-rRaf8o{T{oanX!b|Jd zbLlL5zgqTNBlDG~CzR!K*>=RZT51Trm~7$r@k7JivXTq;oHqTrdN;xL^_Ll0GZ|$4 zoM!yJaKrxT!n4!5ou3`)oRis{QGa2_pXK@)r<0$DaPk~{+AX=y@1*8}i7Y$Y^(7C; zve;M~wOFL***f@ogbD4OWVkh7<<6{z>5tZ~!i#RQ*{-4o>(uP z8GHNu>IJK|8S7T*mU-6~Us$5N%hY`C^k60}PRkgDoR3vq4zaaiaV5oPvQ6d~tmfC% zc6XW~ZwmBzc%Cb6!IkoO zpYjg(AB~~9GbXE>ZCkTxqD+bZ3cs^{If7?bR$u+HdTH8G)%cR?kois;Mc%viPME5! zv}9_4TJ@v)o#$VlST;B4Ro^AW$-U7HCoTxBRF-#H*`JwubNWmNrjVb)F)stp?AalI zp4sc}Ih$k055}$x*s#H2!KNq|>!^I~oIbaoVNXNnY}r>=Csy-Z#>F>YRfXkYzMb(Y znL~&CzAvpk)8YSex6%xiHQARgpR#I5iC-b~@y7otkHp-=l`XzU>7`_pg^0zKCT`?9 z^SHrZ;`aF+Ra2+imhvjUf1H@R@!>LwRXu-;(w@J5thfI8;+2O!to&bP(q+{Z_ARtQ zwS8Hb%B4WYVzMN{|<@EUwW}Co%_Ce*W;wbMRHg8&NYkvSaw)T z{kV~d$eyK>7cb>(&ej>k`5tec4$}X?!7;BezBOXk2ZbhcJl;VC!s=3;g>3 ze!KGN{Jt8h7`u0Gs(9)yu41OE7w7)gJeRw6*Nq6i*wD9&CV%8e|5)>~`yj(Lv8iD% zZlC>iCW6VoZnE6s%X>IFH%!|XcitiQ-)h%{xBD!jS7`)1PF#6{Wj1r@LDfe0C$)lt zLY7-(yPjAtDO|MCXMxwp4ZT5=H$R*9%9(YeQA>-np3r5*V~h%a=T2Y0eb$dK_8upt zhs90Cfn|4oJoDf^?z*v0Xp*F`W%Try-fBG}SLBsbgPt#CzxvT~qH`SUf3`2lxhG}x zO`pw;c)q^vY*XHYy)NBn!#(y!O_C~j^Z)4mruc%Z^;~lfxvv!QWfOf>H2I;*>?J!7 zsj9wxb$;KCp1FA~s{2ZK%TI*bU7BVj8u_TiJtZP^Pou2w&5IX(coj@`EoX3Y2uz=z z>tIlBal-L-*jnxU9O+fo0{40)>K8Pr$G&;LcIEU1i$m*w@ire@bMB}9x)b*nGwxTJ z+jxs9YV%KvA% z6wk4q+*N5J%C*b_kwbF^vzwikNctoWlQxYtG6cIzM0c;WozLg zA4N&I|J5%28-G2rR4Uy0qoIlSw*3CwyBD9iXZik{s#f{nj9_Buf4eKm|5$wuH-qYB*kg$9sB{ zn&65RE4Y?v?^{y+&+l_>@r@O{9~9XCbKA)!t4!WLl~=a3HuvA#} zkbdid4Cbd34?o+s`T>`bzn~+tj?d$zbUxsN}JbQ=MGjWewzBd@~QTe zytQHq&lf-Wb*0m%*j}uBOWxxLTyv&qA6x!CWV5Jmc$tEn^{@L1@|9tZP{1EFr9b)*5`?Z;vS(3@3Z&ayYv5u!=Y*WR8N;C$9pPX z;o$u6vYuOH+hc}YgJ|V z=WLH`U@u>6b&2}2$M4x}Mu_$O>k9Ye7 z&-d4M%`r7QRU_&vmH2ft)5N=3eiOphrTp(xbGopsxh(zq_qdtX!WRmTn*UK@E=`_j zbG2)|h3fX@QIqngG5jscfB4Dmh}Uu6j!hq%3%AeQeX*}RG_1*?v4ul1rQ2`M$r~LH zT_uB)lq<^*ES)7Zv)s_LKvc4`H73Mw+){ikbnR*q-( z-xq)4h39deTJ-cW_xV<_C7E?X4sm^Ag{Cu4cX4tn$;E$O;>^J3Y_a{Xaj<3W&po{B zUj5}ua^&KiF!%Z{@9$T*~m7Ub%(~$A0KzU zZ9e6G=-;ab(8^Dyy5>v|Gy8@I53eLFQ!H*>Hbv*)hQJ-$A4Dt@ zzx}vS{_lai3!kd#yG>Iy>n`~4WrN|2O*_*{12`sTOnE7@==zx-86r26mh|VpGRge1 z>g2;4Gp>Jp_R>M<*28|rZmuVXZTIes5|{2_77%`Ynr*^vv%L4p`7+ElYl`;zzqWaP zJMR2hfqh1d4{TBsV$F`~ykyQZQ07~*nW^&D$6MK7eIY-t~z**VU!Z*)OfhwE0*NT>HfTW8vF}Zv&ascU#0}EG@|U&71#6 zkxAA|W2Z;Ie4ysaUwt_&XIs7$HOX)DR@$ngyn~~PO&p? zrzM#iB_=)>G5 zj=!tlc2-rdd#S4-zGm-s#<#KxZLf6BZ?tr;Yui{`S!1r3>3Di_xwE_y*PTRj=Qpv{ z$E@!@dF!0Keqotiq1g)FvZ*FZjbHus`M>Ys%43-;Uzw$SN#V6tZtYll)#ZG1J@?7b5T@O% zwR(1|oc_M}l99u^@|^eF4Cz(=@4mnK?(ntm+3SqidHjdI-$^}dWwE|&y9VF7hWwu_ zDn<`fgdF;Wi@eV~FA^2qeC~}xn$_;Y2{ki=@(=N(uBdyQ|0W^ZPkn=PhtP}#*Jmy7 zk&@jWm#VW@?~t18mDuOZ2F@9Z9m@@P>`ZIcHO;u_Id85Zqc5-Z`b8&`^0$Awt&BB4_MWeJ%eThql+laH1?hIxGADW)U*+hx z&2lZN;>ewx`)RiHQ^uY`Dc#?HD-X?Bx!mZn)Az_XqQ}_!3@7}X@qCG?;<58Pc4t-Y z<2^g=R{Gsv+jd!bzxZjLzxJf8IU|qH`=7g~tG~6-zWHQ+jMjv87W&BtPEFIr@hx7EMx#sPYuNbVh`W~?^|H57E_qUEFI_3wfB=FDO_KSPl-wwrFWjA)7 z_^G|&%-w|z66?z+iAO98N%A~+k3nQ+O@iL`pISRsKP%hWBl=2QXqHzI>#y#rCh7it z|8_Av`MPA%#QRZmR&eeWIAM^Wlkz9~>*j5zuU+>oS$tJ##vNt$(6;-x!jlu%)Oa6a z+9>~LT7TWO82fJ~%F`cbEz4fG|H(mpsark^3Qek8g+Kewh*|CXn4$lir^s2(McfY- zc!MEX!uwb%#%4{(*lJ@Ao`>bada|4Ti~0QCe&d+7_IuiW2=C;C$6|G4HOU{u7=Dom*GQcvE@-`z5ukKi?-SR?gSplzf(I z`Y5H&S@FaRXBDoCbM_qMdhXX?^k?<_=Dh)&scU??KF$$|UnQJkb@GJ6F%h zGMnThI@LR@|K9aXMX4g;6z$`sMQZ$l--1>NriV=DtqA*8xZPy=+(-SJvp!}e)buZQ z*s=QlpN6UDo5VsVmF$U$JeORuCp@)vVcq{lRZ}KgI~Dc#ZYf!%x{XJ=$U``N`9V$B zyuXW!j?tgriZCE2CG{Qes^oMATQ%Ky;rtypw_u6T;hU*X>u+fS`u^#8~#PId1& zd&U2!I82k*&s$vDy05Z-i*inl^}T!22N-T^dpk>r&oHxH;cwq^`-0ngS?Q)+*J{uE zH^Ny(cI;c6A@a7^Y+a*?x@F<_yGOmhJ4`ykvG(*WiQ_jO{M8e0=lybELyk*Uz)IG# z4H7qsVr*GvJ$@x=RV{tFHpFU$#L7$S1x`+Ke(=boaL&&g57{Equlw_F<{r58PaN85+CZq#OSTN#ROTTmI8S_0~r|-x7`DKAD3hdU49}?Q6H!Z%Zux)02|z z`lhAD{A9Y%<@Vo^-i-b6r$UxIvN2cGx0t~dZ{W|9eA=k$?p(3W$8+7ITBhIiW14r( z`o_(z5$gqvYz&Gn$G&fT^NoF0vFraO4PiU)zT3;>!NvX7+9q&oiP!{*TX)}0Grk|^ z-C45B^GMXs@WiH_j!SK>qiHu;9SSOwU(}9Uv!?ICeeI2XI*M6m9Mzx8&2mwnGDG;;rreJ1LdI)9&7XZ! z%DH|jTd^bc+N0}#)Oe0ox^S|0{}TRHbBZNK|I-fX2E%)A`9!XAKWz0}eK7j4%cS&u zf!=9m>_LZbF4?tWLoQRvsirQjX2%jYtDQSfB|dgnjFq>SH2RY;VfzW`6rQ>7k3HRN z{Wst$qrNz6$-)n;)@jY+U4GNql>K@(85LM^-#H%dWI5q8)9I;Se|p)TKHAW_bB(c+ z!nS>WK_<}+)t^faJ$$3fW0`jAtK2WPFK11fwG1>(Ki*q$bc6QCi}P<>|2~`V8{fpe z;&Rh@pXw)e$2(qpqq;^t^=h;B@u}Z458B7nh1OqUKRa&|YJZ~Vcl=rMxHM>wVbU7O-?Q=ymh~E4P(IuC&AwyhkuPl}I%0)4j)Wvd2eDaH&leBg&>&K| zTe^|`$TTOnvzzmL*PY)Scjwp73k!-G{B0B`b=>4*yv4C%QC_ui_U*!Do?=Z4L_c49 z8GCA{Fq7qReZ}LC7{d1U#V)^VJNwn%$uG{%PrWC&Ij1l&Sd%IJwauJ+w_cYq3fGsv zER#B&SGZAbN$9?f`eG4lRdru@rC*+}kUnp1QT{GzmbkC~8-(Y~{`5RSEW~P0=4%t1 zEharb?W^+hkb38wGl=H0FuCaLE>-sZygo1C$v~`_&xnp~qqun33wTmyx2#UB`sqrtU znsuZ9SL#8&yf+2zJ}jAE4{dgQyinx&1xEX)bLu+1UikWoEU13v)^PFJnwduyJWBdk zlk{!>XVDki_r_j-ow@4!J5D)^;yaIi)gE_0)?K51t@QrxrK^!+sjw(ep{m(Rh9fF!rtq|om%(93ickk>r?F;1#JKF z%{@?SsP5C1?6f@PM}bLl{>PPeI)<|8=|@aFCFw5 z`SvW60qL4YvL-&! z(ED7}y?Ji3+ETGO)=tkZ`baM1vbi?rSiWDZ_%^HCtDB=*uRHezb=ait zZSF5{wEXI2xYj86ecYACA5RzGjAc)H?sWcup5`a(>tXAY{)I1Id`;}+xv6&+dv0~! zn&K0h6W+}h{C(E#+p_0>U)paf73tu8p2=YE*N1**yZpMpS5E4`v8nQiW0#PXiO{*5 zOKMmO9<0hs)Y-Y~_GPim-#5QL;$0s+^_sn0qsfJni$a;@7=CZwm^@|EoIuCTG5#A^ zZg!8sDWHVNz|Ln4eUb32bVYroo<&FSg*!ZdF+Viz>zj&GxHT1NP zef`7kUf7@A{psDYGbb&mhKQFl2HX%hJ>d%fAzP%?K z7cA;hIB@suG!}m&qwtC6t284;7tdqZ5%AIJp=y|RB>%({fB2NnbbV_!e)qViWP-Yf z(Hc#YZRc_ys7b$<*^;r=lO?1iFha;*@Wo`AZL3;5qIZ{wf4}Z*>77#~D( zqwzZdkj-+Su3f5XwolY%nr+ds>9=BDgaw#>Yebo*VKi7UH->*9Gn zLA`pDr>Rez@ulxZrLV->tYWPc6|nlH?@DX+MFX>$hpgt^j89WuN~1VhZO{p0MO< zsL;vjWsRqV+yi#!q{e&=(Crdqb$#~nw*AbUl7=w08xyZCuj8=Q-tqNn?969-YXg>l zKIirD?TwntCiU}Pf7{b_ogvlj?mr``Jqu*G*0_fiZ@B&c?3z%({t0v z_$K2{&2~1)jhco*z0!zpABW-@wTJ33kZPf8t_LED5!A1RGvndUJ z`)4!ceUxn3BC@oaiFG2AVu1SZ&VO5%GAk9QdTz)SsmW2 z^(9wr-`;JLA4fKS{W@p2?=1HBw>cReJbb(2uYCoJwml?~8n>O_JjGG;lC2 zm3*~l6Z6EgGdfx3ao7A<+(CGe#xl;>Pn6q2w zaBaPF^zsfwm>?2_(B4xhcjdAZPS;w}08y9^PrX#b(9KcMlp%w(-?JKNlT{0-fo{k1Sl z*7;as*`{54|0)S5NFA@+Aav)%`n{RAuf46RUMKu;3jfR7;+m>z7w2}VE89+E-=G{8 z^I#z>(~Q-{8T!GRes2$^wqN{uqJ7ft?MFgx>~4uYWf?-&8hWTUKG{DTc$d#Qr@I+W+We*E13Gt(_ZQ zm6z4%=kGh*oVa=N#97zw2ryk0^~h$ft;^ceCGogXtX$Z}U@O~qvt@5SPngpCit+J` zy6}fBD|RGQE+~1CFMWgAP*C4f(~W1+qZKPt{uX4X`t6gvoWC}(T6f|X+4cYa844_@ z>p%AX_E%%eMI0YY?yUDdkbG~6z4U&@GULxnPHVWmUAiv4_`bx`XIB3j6;CGGKVR4P zl5ftl))zVNVsovRSj7F6v||@ociMgZ&JPQZY+ZL{m7GRr@J_wWdlOejzi6AEa;KSZ z*0O!;17fm77&e$33ipaVD111kAa8mG^Ntb`j_L1DOB=peWHv?Od1jh5%fuxHO1Jc1 zJ{C2f?;p@EG}k(9jgt7)xw~HTPns>T!c%pvVa?;K+wLBH6tVx%t+SnyuPpl>`>ORG zZ+TX!BD3`G65X)U{-d5=M>4klTdgFlp!$p5qx8b6eX0qM6u4hNK z)~0RyAL?Jzs8&%Z;Ci$Cd(-;j5*Nb{pKo1fxbf*nG3yMe_v&J4aUXSV)_dG^`rBXxvU%mFRlzO z*mP;am3^ks)1;#(M|tg6d;0W5!?(DtGqSz!DIYxdE4$wMW^%=aM$an8)k`W)?_YN2 z(f?@Um6orb9C3ThutdePgEQDLV%eE zUHR|2mzEWB%Qy5W@a>v*?#6`A?^$e}_`IF;r;Apu+x*ypb@`vh*?H{oliuDdG40lZC5)FR+}@nc$(`D7)1|@?C%mw6dBmz9zPF5lpO61yy6d}m`C0Yf ziiWzM?oZQ~ef(pl_`YfH+SfXs5I0HrBvY=Z7Po5orpjNF#Y^4J8t!&@v&`s{k;R^* zuWxE5rG_kD7Wt0n?=G9eKiL1=kQ2C_9TD*7aiK9+NQdm{l!g6eGq&GZTs3>YFz*|o zvd+qt;d0a5Ze}n4xG+PYzeN?8+3w~W&h~OF>smFVE%V0W50%LW z_OWZd7u%E~%RKmx1Np-Wg{uANykW^xET4kC(S{pX46C_k*cIf6Xe1eW!v& zjPAc|xZri5S*lVdL)&4u?-{wSlr3MsPunp4S?u8%hksjler7t!!qV*f$?0~V1e?`1 zQ_+C0Kimb~N^mjopeTAGprRqCvT5@V z$9pfrZ~qE(*!c9+lfMhgxzt)VcXsZauDsjxhFMcAsT7qMz(H)B=ybVpvTQg+DIo<{`t1#*qxqkST z;_`EkpQx{ULZ+77w*@!XFp4v-Jjq|}`E}DLi3MywME%j+a46#%P<}&OP`%5d;i+o^uIGCu2vq*y!ziT$hOa$uT4y7UPO>y@r%#$ zl0CEK#gyK^-+5N?hWwSKH~)z@)?8V!d{dDACigJ4GfY)d90}>R+*cX4X-+lcOetmL zFn4JWXj3XHtT%9T-&ZBO(_ETq+MVg8H(9%SPB(nFp4a(W#rQjG&8B$^GhGGbmx`Zl z+!S8E;?DchsJGvy8BN#xZE(9<?x3%ZmA7lG^d+&OA@Y2x|%;47@tZ}YEJ zWtsN4+JDI^)_EthDpa`GHaQ2KTyX&(f7;k+u=`k^;j8R)x7=pbNnU6 zzX#qup0;c$AAfT8LssJ_OCu#6QZIc;4~+FPpZzQ1x<g&9q(&-0Eglv29Ez!NKX_wd3GpR^WuUD15R-ZQy*lD~`+ z*MdJ;jX%Yd?w^;w5X85pIHKgNL7QmYpWm$MnSzpvHI9u(4ko_H*uSW{L3HxlDQ`Mf zTE-OxufMz{S3G#mx`G5_@oAnXPky)6TJdixtI+G8Kb2J5*E~1PjOV%fKmGNl`lu&i zCAUm3S^aicw_eL3ie#f zDcse3_wFB){1IP2y)fqgBmTsjADN<(_}<-Htr*0RC!2ZJct>cgl#PL?J9OZ)N|w3g4C%Ah~_%Ep+J5^s6T6OHuB@{=7Nt-2mQxB2wb;&?Sh)5}#yxkV4( zf3fr)lWLir!z0^Q#ZD)8q{?n&-1_m{|J80M9%Nl<)&H+s(0{jyvEotutUHD5^*1l> z@~F@#bgXSS>o|AP9~Se!w$WLuK5;+o#tr<+gzxoyuoi+$?y^&6!o{&wOj{64+s z*h3Y=C-1k*-0QwFXLHr3gH0>;@+vNf-WJ=g)qm>5fyU1a#&fLiwA#j9=#Aam_T~5y z{!ULG4L^&uW-n!m8fO2W$Ph2_CG)t(@f*KcB2sLp&NwY0v_`wW^uK7{xo%CrCGxx` z=MSXU?X+YtXq;!(=kbAa?#D`v&$c3hW^7(Hc|J-G*S2JCYwWpqWkK)`izlHxmm1U$ z=TAGSFI_MxPNSi5v+0GRt?lb3rq10kQ@Ka^gygalU#5$FV*GbFT)Qc}?79D?&`)9t zyxmgLa|Kq{J07aKyUKs9@!2cuJ}v8*ahK!M+C8TBtg#mN+~*`T-qGY<7F+l5*co%> zIY(O-7c4qytIDDkbA8n$kHs8^xqZ)eR0uj~-}>=iyeT!BxBB#-*vaqbO}M0?;COr1 zQwRSH-6toO?q&-mnx+o|LGUO!v*L2u3J?@t+)iJ!D6%T4uaxzcz@-p_Zhy!l73YmWmsd^a#LxbLg{ zoA6*mTJ4<@hUZP^mpiqlOl3V;@#?_Sp4UsY^zu1R$n096%W1x3U5oDN4_4nx*E;U| zt~&qD^u)LKD?Q$_A2XEr_W1D3UmhYGqJ#>0<$jd>x_as2G^-t~O`msf{VOc)GNJvp z5u1Y1oDZSjU3%mkmam#BQk7G^MPmcEm21V;9XlNb-1?0#w>extxNP>%sv{eE{SM~{ zWK3)Fa`BvNvcKz;kfh6r)H_qx_CG&sAalMmXR5_nrt+yV|6bLrc)Ld=mH*8WxMi_+ z+X~U|4ckShb4RG<{MqJ~I6x*iX6B7w9?74zE3|KXcH`W4PCm}~tM#PGPu;9$sU7+IEwK9Q zOC_VA{5QR(FK0w3UA6YFsEodG@c7Pmxr-!RUcD)N-qj=@KbPGr$F!=2ZJVrug4OR+ zH~$p%6ep{kTIf|?b2j~|eb`THw}AXWkFD8Ts*~QBwOfC`cyz7tej_Vqb+cXdy3arK zr1!DS4BKt_+^Q_EZ#nB1=axY4L%&|vepT9iVD4w{+$9&%ByXNQI$uwOW5++Pa1MsJ z8T=+|ublXGHo}a{VAJW~S8OMb{aKmyDXih&D(=1wqFm+NvCqH7^{jjN+bQe%^+q3- z&C7xfXJ4)m;3!Mv7d&!n_LjN`Kkrj|XM?zX>{nmAd{_IzqpatuSvIL#|2jL)nc)~8 z{O7RNZ3bq>UA+adFXIajWFLNiYX6n0bKMySHw*fNnB18#S3>?Ho9w~jWG)@XGIoW) zJXSRoA3q`GM@I`ecoyo_DJg0!Q;hppwSJ0aFuRYfnxdFrsSmi-skW7ux)1v-Sn92_?f%kpY$Ep z{m#Bj(_3h}){IgHuhf-7IWf)L`64$b6^}9Bfb&izT?}LHL zzDr__0&khh|9We2OUa?xw&9FEo9Fx2_Eq!02wr&ciMb#$u1w%F*NS-zL1($w*GSu* zc;1>YFMp@z%6AjC=_Y3Xxf{GSE8F0vO4`ekHOvS6K8x=YYua-7Q`7&vmerRZO!$4g z;87pz!#7uB7Cx}(YIpk9lpW}iljAz;8T09zcPcqn*%&VrTvd0y#%|${ol>SZ;y!MY zyeY!&-{hj5?m3~h;G*93XT68jd=51;U3Y#kKcQp3n4MaSj%|OBe_>f0dr3}LN{r^? z^_6qqyPf^=qo{iUM;G^Zwd~u+4xB#Pv2@-o%z~i(c-PJ%ypG$=b{zYw5-3Wukp`FL$Tk z)LvbDBJG0vv*4_Bvzb$#9VpBZW4m>Cw*Mh{n<-ujS&2O+>pe~0MM+FC=e?3FS|1Wp zR`*wrKj>>I@5C(|mad<<{hYSwUIUXu)2y9;MBnvVwJWRlP0~-><2UR?kC)Fdv{)}{ zp!)jVq1zq1*pE4TeK^ov<~C=C;g%4Q6LaKWp6#CQ_;E{&9?OjN6Y~X+EZTeEYsvY# zZ&@Lk-`7@jRX=Oqb8m6{CPDvg8&`gldNtAc-BM{DgGlH46XFc#o6mjqPpXLCp*c79 zv1N(#mv-T1o%}zaZO<&%h{)c$^@gFnuiugtU3x8AFGOYTi?so{4-QCut8L$V{ND0u z*6aNjY0OjV{?GcR#`xNmzw2Uee9$U3*x4g?^X;!GJ~MYZg?hxX85qiVFh^$loSwa3 zZ*>f(lw6RM!oTXD)9eqnr_V|=m=$|x;<;FlbDWu~v$ND%ZH(^k&fd+YwL5(n9 zkw#s{0*UOb`Pa6({^_5Yvhwwowcbml&;H1@IHKPgCw#}5XWOJDn;w1N{q-VS;HLZL z2R4h>t4(pdyS`(sIjhI}Eu2~A4X1qP&6p?nyRW?J_^0!mMUhzpe zcant8i>dxG`{I;+?$E2NBB9G3GRTP?;cb~-@l?h7Ql#O!1?KbjW-JhU(=hc|)Dmek zf#Z#{F5h)iWQ>wBUgj%tYVH!3hgf!(|*hh5p8H>-Y3U4Ctb=ef|Jk{^jRjr-kpz7F_Z>veg`!^q2>o-&(j0{M%Y z&pv-z@g^Yo-DSh5q(GjRk#fymt0qc0Tg2$)$^2dJ{zfP3>60XHrjw_Ij+j^)Rpst~ zl33%i$9H+`uar-oDsx5HIhb?zp*u`I%Io*zj{wvT;ZW7l$x=HnPkkGaVt9DHmerc7ebV5j3S?v~|HWOd$ zz1x1TOlBCibbK^w2@ne4ysv4_yro*SBCM$J#GZHmUQNvw;bl5`zTnFvrpeDPPBJs7 zXD&A{&-l}{yX6P(j z2PUq5CKqz~;Dm>F{m&S^RFzm`GVq z`)N)77k0wWHH&t&nH6@;Tr9{`7?88%;ICyF8T+dj1l~Ci^7G67OG>l#j$7B zeR}(oK}olMuj1$0wcmbv{%hmkdimAD!>8+2RX!*BG>ApnO?8{m(=AoMoBtuxQRAuW z_iBYLJ^eUt#iCc!BUt}?iT6$2an10=#R^4M3z@z8Nf}EQ&HU6V@?$n#gdT)z2D--gO`Cbm6SXDVD@$vEHQ#KVcHr|d1g=HyGH_CNllDqd}n zylLW^`=Mgx)4y>bK)^Ax`@QO6 zx#HLMU2VLu(AL#&x8G6wZTG@{M1?%!&YdQ5Sk;iRs&>cWo}M1ploRX^P6_Ux8g!#s zkn@GInWzmt>8Kump|L>Zqk-HC{{A+jL@#~#8O7H&)b_E~2c0_M|&TePn z+i#~X-52%o%E#>L{`^C-0qxSyxi9T`JWuuKE4NEpAM8E3{1qnJt!H9tt?e!0UC+Uh zCSd*gc~zJY^A)RYD|5{59^D|4b)=5vAFIxq+ri7+BR_M$IDX*#t<_KTb{%##?b`Iz zY4O?Z`_n`w{Yvj%_wGVxh)#2m%r4HxId%npc^mrgsR}Nbx9Rg&w)$y0oG(Q#bASE& z-TIc6YGIc6&%EBK1*exC*3f^@Zy^zU-_?%E$+Wq8`^7k>#np=MO*d-4He#N1d5PQq zo~td({%ut0cYVGgv{lA*ajt<_tn-xnw_fFS&R|Qrw)HfydpNwYd`BeF=biH zYg>)}xz61?&n`NwdEsHrs^<;A=1PB>SDUN*`fkyQif2v=hu8A{n$DcD*!sirJ&vo7vgtU^VQoq!6Cvthrhl)^6aVHwX*#=pWiPOd)FZ^ zE+KbcylX4J*spL+U66|C)v@gQ*QZ^-SEexBu`E&PPRJJS5=QU zO>DoNr>}O!An5Sad(0lZlLA#p0#po{_dNrSGposm;btOqpkDhT0xGg zw=Y-Ebz$a}cJW`;&?<1?#KeFHt&yi(=T4m6_R6GZYT}a}b=Mz@2UsmSKj$!?^7_9A zs!ld)Tw5l_{gK=In)$|^r(US#>DT(Szq84nyPEA!&-HZ=&cEFC&qG-JN|kEjCr^*X ze`1rAZXUePV{7zw=|{27O{qUReRbkBZY`~du?uLsIq5_3QKju%f7#--}bTS{92*`YgJB!t7XUVV&c%mp`~14Q}&3<~{1-_~7Nf9WDY9$}td$zvNa|JO~Cjh0Jp` z9cFVCd;OQ6Wh-G3@?7dduDDFfFNxC*3yi9!O!a8ei+-<%rOufF?uuld#|^H*Qnz48W+ zQ1Y8j2Cvv{Uh6}?K3DjEsBztru!f5 zto8(TItj5^p5CR`yl7>bT@h#Kg9i_rexD96ydbEsXWiAiFXl`xQ1^H<`Q@o!7X2^R za)oC7P5H&`ckc1gPR#~KnfL1o9qjYpcO)iU`=*fSyjQ*Fu}5Zr<;fS@mMYzguc}J- zX>rX})BGgEY-e6P?c052tyX^guZ59z%bJfBw1g)7 z@yc27_Uj7n=q-~R0>Ugq7m8luy6}G*#|oVn@5{T6eD5$*Uc8GXrD~Gxcb;SUuQr8X&zb`ajf@8z*K-E7xIDjis^vmRtZSO`T;55qMdNbT7ByQ| zHr_b*JmHQ~H&6PN<*7?#4jj5W_-%Y+a)hN+xfdvoADN5VMlu_mlOAUU5-~S zc%|T`+;^FGUAAF>-qmZfmmORm{@}WGi3x8^%A^O6>m<*r#qz!_vN^vy{O7?B)3u&g zURZdZ^WTdgiFXq%-(|lnQ%TO9_d%=sVE(Gla~3^u3N7Ifd$q+}F1f`r;7&?j`Wo?W~`i#c|xbNI$f5{f}~kV=T+KFI}G@WAg> zzl&^RRQ^8a<@?XLF)^0$3iGwTsn6yWb-%jVtu2~7qjSaNLuFz+7AM@fdS`Rc^1am; zYijvEa;kT4J$59n_UKCEmP!GW@UQ=E&e?0-j;!+k`o}i-Rc*S@7S_qC(_2?d-|`J> znD{29BJQ}n$NrZ)c0?|gSUWYredqq7AjUA|-VN=`?q6A^-)XmLtFeB(^AfuSZz`B3 zxJ;PA67w$1-_Q8xf%*F{T-_YFTKbSg z-1IT4D{%F#xYCXHUo$_vxGZLCQ}RVla|YGf9lIwu2VJ&YFX>vnOXgcfh#ph!MyuB+ zd_)5?d4*#9{>aSEKjK~}KG*ud?d*SSQDP3enIDHw%KW~J!NhTvdMeA2WtG;P>dSTi z+3zw^#qs+NJ2aA@%PS z5tWFe=1;ZLSzO3#Enob<^vRNyYHh!No|fx#{pQbh zP;vUoqYox@-9FOz)U%NxOn>j3r)nz8Gj8+bZ|t2sV}^E}(c{0$jjvLln(Q4B$tX+cL*Q8_txa;gieiTaeS2@?(Z$wz;k8sKJ5%2>A=_%+pfmlE4{HR*ZqB% z#RK)99XEQXMCNt{@Ot0+_*>Al>X-SW4bc|ewwix~BjjdmmdN=lGxuBk+f9lS);>Qq zSuW}3*84xcvdsPdqxay)rXv%xOWHp|%MTr1H{JeXqS7l}!~7Y#4V;|!8gssS?)Xq1 z%sYwkU4=$CtLLi#vux%aJqe42FO{>d6E^94p)&i;F}AwBjl4S)O%|~&e7s<9?~0zi zoK4p2w;%Fb=l^N;y|eeH{(e_xH)->7o9)TFx)^e&yw*^ia$A3=kj10Ay zcGvntQTo}#Q-h=)JPOT&-;83JpJX4G__%(|8!EU-=B ze|g-dtDpZET(NN29sW*0Q+C>d`a0J)ZAw9%YEy3-Nv%y#{uyAJm(9BVomeD$g|Wi9 zXH%sg`gl*f)a=vCz0Gyc(dSp><}yk?WPifn%By~1@9WYBDNBADYMfab)>ZkDd4{L& zbAB-c=f#oortNKtKVoJuAN%G0@_mcU6>ouSN#7?~WXtle%sFzEulmNemB%#?aCOWL zx^*;g3CDquZ>#$}rkOlXd-d@xpZO!rUs6%BQ(8n~!xm~us*CZ+U5mcI_{*M^W@n%M zRPtbqV>5g5W9h4?ujTc7Gm2yjZmWOX_AbM}OK|Fo{|yHowM`G(r?_3=?sxW$Q`xKE zWuH{yOUkd%e3Aa)QP?iY#!?dwX8W!4{|lYg;a!<|bK2PjPv=kH^hd(g)9k6xI^V=& z)88Adv!1Bhv`#X**YrZyOq)jn2OL~Azg>0qoPTQ36Q8CEcBdoPKSZnaI@ce2aYy2D z@{E||q%+0LM=yW8vvL+Q^MtF@qWkyBimhs?Ty>mfj>*-YYpF~P7lmF5JXOE{x!7;Z z8|nM%8>c*8{*=#Ja-O$f^}B1T_2)$Y+yA%R+{Nl|Bp~8vzHCqbI->(lDeqiD{_Qpm z_FKP7NNh$-(XmR-&fNP86MnRMIZsaUQJKxIWNr8Ahl9;ozMO5o6;^kSJh`5J>T6hM z3#3nP&d9OhJWQzQBBg zx{scRgswbzCQ#zDzQ?wE!-km}D++$e&;BF!t$A*bZBaw6$JvW@ul!j!o<=X6ztynQ z<56Sk;e9E!wfm=hs4(cYe1E1sW5Y#{1noA5a#q&d3$DAHY^B>LR&2X1_x^_Ei?aqT zn;tteEOJWNyT0G^;nU}Qj%6VmvTiay6TZpibg8+u&fz7KkWJDWpNmdUw0oG`GxmN> zdl`3Rf!NZvJwBiPCcU}ixyjKjdwce=rPW1zt>WQ3g#9{BO+RZobFRgU9UG6o)+&s{bKPl$N4IXZ!fgh|2(j?!G4;V#_fMwm*%aQ zbx}Wz{rTNuQ*z~Z&K9NTEQE+wOb4}nCcY@rnfu`nf&P2 z?S(sM{H+LVJhQ+wEY0AHTI_@8flI~vmX_X9Iwcg$w&K0x!|Qk11766!P+Q_quz`cG z$bHLWHOt%2l+QfZIrvCwaYf)!Huc-B#%H>B%vo`E;WOXzC6oIqql28+Cf~4S%6+J_ z>&VW120u1RMb%h1O}Kf^L)6zUA*+7d3gwEJGmrP)+M^e!&vErC4=SvVskBn&Y?kb>BUAinkMTFOv`|ahI|A{o?7SH=Erzp3Oa8 z|B-Wt)#Row$J62{vRgo<4O4P@>0Zh>usEYtda)|?`uTG`MxcW zbV~DJEtAnMJ)@@Xqc~I1vqt&vGF>O{gszy`eY_0E=PwJM5LFctH8Dy)+duc?#lJ7g zT=@Qcm2K!h4mkHpZ4e}3y@84u{7OVVOzXt*S%$2Z)@j&U*joyK`CZ? z=EI(AD#CxCRJR9dUJ-Noe%)pB^0OC>Z|u$Q>Zz47>;F^uO>hE}=ix`+KW1;1yL)@% z_9w%v7-*}RR*JA)%~ZbV4I~^0!^UZ{K`-S^kRf7^%>i)9-^XGJcY{p-U6&lX$yA--VIb29G-js&sE4AoaS`Z6wf%+Kifv~y9S z*^3FsRSxRZUGABAruDsi)QbJL-f)~PE10;6B}l|PXZer44_swtHW{9MEn~>T#%Zdz z$7J)Vy_aSFPSCr-*zYv$o?hOoQnxdwUrp1=n`Y9uapG@}Th}$?+W8JuuT;^L+?qS_ zii5_}W*)WMhx9wlRc3H|?edaO;j?!7%9G9`x_9I3IjScmJBmLi@MP;4ye)B<@3`7} z`-f-3Gt=$~@9H}#AIo=s)(`c0*DeN17kOxyw!QxqW$pKXP1BOK(ADg8U{km+>y>{pFk4Ts+yuU$SGz$!axi zqlju(uN^x-2A%8^shs;f@=Sf8!G5((kN7mdZ`Tbe*JeIi?LF%*f)>gzAwFNwAEkF*KgFejb@mT$ldN3QxH zP^?stbARq7>qV@B@gd9ko9ddsgn2f2#%?<#xy4=A;Od42Z@=Aj`E}fw>-SXqIYmGQ9=AzsQR~}#cDZqCywa;w-g7nB0W`X=GTX#ol%=+oT zKlO#>FFy$_qd6O|%-C`vrG)3|tR=gCtH0VTneCz~t1tc_qieQO_e`@NnMcf1jnZPf z^3(%Pl(qN8XR9?9edN0kq$HWT^^;tRuCH#5;3FN=6BTFG7+;77Tkx0cy1MdIoyG^Y zDSUFtZMgw+mUPBF{IPv;*RR*J4bq-Dt7J?O;H)hB@#K|CV(2eF8+MoC{j*$luDWHl zI^TCUV~N&lnqerIKpCiAP#WPo6k_Vv^H|8FMRR*^XB& zmUc0$Siq1Sq$ap-q143S1;Q)WS^YL&cK_C4)tQP{%Pt8^m28kY`LU|{@02gG1t$)5 z@BVXXvLcg&z=ZWR<@2t_EPV6Q{FO&q;EaG;dEw+zmK&yVSL^?#Em-z5WuIK?YXQdh zZtwPdcvK(RXS-sqN7I)=9p_K2=kxCVE4_b(J!Ps6=fX>gWljgKToV=x>2E#P`rv@X z({RSt+E?i@_iw!x)SNA*5!NPiBdG90uLMh_;g{Hw5Vz{|j~Sx9{11wYxbJ9`B$T`> zW_vGCUvTv<=YpVrOQ+Z7XgPc@UL<56bfs$X#O{le^;KFV#c3$&Dj3Px@{Hz9otemWbOHLOCSCYnt1c{pHC9}%=#h|D~=>+iAToNw{F(?VZ6%j z=FQ0`)Yt5n{&bXyXNr&a$uIVEc4kC72%Yu08~irVhPrj5$S#H)N3Megn~QNA=i%OW?k zdG3;#5oPVu{;#Mm&skz;+*E!->v;0opQ~oF|M!l{y1QKJ{Ul}v+1+e&uPB21pc9<^@0pudgVUgxE%>1qGT?mAccR)nNZpDK0t_{}+KLWcXJ z?;jPJ`6xd7&*kOZDc=7NmIt}r_x$uVTw^!uWaYfoDFv$?lv(#YpPD}F-jnSwEPgy= zIlvMb(7ictM%{f*t=57i%a1R~djEWnSajBAnU7A7mdZWyJ)3LFc)z}U>qiq8XYpt8 zg)bwMjyjdy)zmF6`|D!jQyXm>z9G)DxYot>&*4W}lP+AjJZJl#pWoEe7pAQ*cTE?c z(7MjX0Rhrie7a7;N~)>`5@+jql^$(7r3gLPG}d^w&d&Q(&VoP6Q@e(~3#m2ZNc zvg^uSusC4yDOG2!YWzvH`gJc>d4ImO*gv$!&pGpTzjXW@W}cIMyjDz0gG=7Z{JT>5 zw?@DtUN+fxGH)%EEji9EE34Rk=6vs~z4qsS=QI7Z zi>wV4@2$H#d&Rq|MUtuI4i_JF3cGQt$BdWZmFy+E^fal9EOSm?I~SyNYje-* zi`Ulf<_XXF?KEwVh)uBgA?JC!COs9HUvj(h8z&x-_4kG9mMjL-kpzB~LY;}^pv1(#|gMRC1gflGG&-yUt;)p03#WvjG) zmeIRY=Il32H&5bgvuGYUYmc7dqOuxNKb52Ca!>h){d7-iv zj<#xdnUrQa|+8g8-8VrO=lwVM2ijch8rTlTq6 zIAQMUSErgL$XC2!SeKFX*gW`4)Y>c7H_z8CXTG)Urn9|-Id}Ro+uNqoY-+!Lp5o$m zy0u8)TgK$u6V1*9Ys9WR=CWAl-l{WtHGf((*EPpx-+TXL+nHsNrp8~t_3yc3*O_+Z z-L&}!nRWI|$S|I~zPxbW^`d!uc>1!o=dStS_}XxitoOkfr_6P3^W!hnFXukTmizI8 zvH17Cxl2E)30!dxI?B7~e8|O)jH=v9wR7_8j^{5?WAq9LxO&M(%5U~&hJ@l-(UbIg zuRdCM|HvB-Ha*@#F=LJJPuxoiCq9q4A)$HAUD|nC`_|=7mb+D-&dBCk&*d;XBP}vd zGX8d(%lp!|Jaeq%F0lS(Wmv(gFhh9Zlf}PRg^Dq9$8Y$1zbkFsY~9dVtIB3BN@Z0x z**A0k6z%>}@z1r}xL&u~YSwJ8n{lS)P;j(QUiEjDNjGD6oDGZgG5cn>=YVRQ+dEV5 zZMbQU`1TzfC9h->V^r==UVSYiQa@U5jnD^K_gd|1%?G*P7o4D=!5BXna zoU@}BzV@~~DD&3qQEH%b^R549S7?0vk+wqTtV`6pYrj@U>4v*+Q_tA0;%=+fa?#hq zrOEG)g(YkwHRKTKgsEnPz-aV=nBq@VvWK&YWEHVE_AG)9=LVo zC03Kr?6bcQ?e>5F*6gZ5jqkhHD{U&J7pwhnQJvwWGG$ia^CgR(r5kA8oH@H?tL?44 zRo-zNrIkwr-!SYHo^tJ<<-_-{6n0;(J=dcmvTnL2`_Y!D%f|~U81*^!ihujTwf0Y= zxW}@)$K2Yd@p*W+vt3Piw4}Ia;#0%(*Y95Mzq9XkiK{~H1;^q|?UVl2r!pTCnIr5v zYqfs!UWE|7o$MEP@z{NEHPmVpzgEuC5n8seN4(~Ns`maX_dnjb!OM0b-(==(OE;#@ zlEZ)ES4}%?GRvl>t-$(bbj5!0sGdLOIuri?uKg6tztm0jLW$d3Z*?cJ_#6AUy|`u@ z+-mu^D$Zepfy_rahb|W?pD3OA%9dG;hhKyqP}F{L+{Eb0 zkG)zuI%cUYo!x(*$>zj~bL!R!^{)PQe@^IjckKx^EbOY#dvW%3>6#r!rzNq6UkKZv zm@mz2KP}SUcd!O{wbuLGkA{vdDS3Nzp>mRRIyJFUVw#BPd`V~bM z^T_CHm-8g@)L6Jlo=ngPp6WBNME!KX+xPsBnsN($+<0}Z6u89KFJ(_&_;dQgH#;^I zavqws=btU(KNdswBX@f^r=Fd(u0U?fyuby2W|Zzd_Cnute5%v?6nv5f5vRq_)wH+yv@?MeQTS7W^w;ZQ>h)7 z{h3p0cv=>-&D;HRuhsQMk#YQ@&(6){y?Cp`NxppF`x%|4yeX+uuIGOJ=g+!n;*llK z_XYad=gv1g&U3&nU;ApmnTveVr`byTKFPgutFT(?|IjYIYktDV_5DuWX-elV*0`)$ z<)53I_F~bQ@b~NMd{+uY@&42oD|5dyjai`Z+aaec*@FibdKWHoFm{SRYpJ?={X&UEsUKURt&B?J}Sf8qPe$nP_ ztM3%&_navS`>;EHnMHi`u{`$rJ*S^;%Ccl%Xn(uBpI2V*X!4`SH{V46NZqUUrfXi# z)*ZKhF5B|u*CEe)e?LCW7yCJP`MZ4#k%lIR`tD{fxXE%uoHpzZ#@zgw41^kItlH%DWBqd{4bZ?^9Df|8$g zyRr{&R5p9!_VnSS?}eJ?YTt~P8Fq8IOv`)a_gv|sM)QK^#){RM6B-4Dn9gK=ykUEY z{qMAy`MJ~1v7I{iNaf@+=jU(UDD!lt9+7HZl;~`-Shgs}=5*ty4U1MYXhx54iHC5^VmO^6yw_20oa?-s1l9)kNoPXTgIErtPj7 zChpI2k{e1Ec;`DrY@Zq(Y0Bf}^i7TRMC$R}|3~Yk-+P4oE)F_>uy|MI24?nY^WsyV zFG^l|)6s>mK}@Ys%i^5&b1}!d$Yy2G^}$ zUL~HIBRq-o;lBs(qQ1ocFFCIuF!A@w-5$0~Z!GVoT~2rWW`1b>8eh?g^(Tg+R2l|0W& z`IBF#)PA`4S9tqb%fvQ9BcWI zlU~{j=QVyQZd%iF-EWCt%q>SIzVAynnR4*m&R{yb@_dm6 zhco|JPENig^*u9s%9+f|v$jv2er$%Fl+V9^M`CxKGE%pX*^;=TRI04pOS9YNu*s_b zJ`p)Josldlt&^ElT8`+tKH{AhwfUvz8lkw^<{!DvZg_J^*gN_~S&-mYqowgF9Lh!S zj{UJ+mg~6d&HA6q=S<%bwtGdTbC-3bh2*dQ;a?1AOx@O)WKdb5bK>My&YkL(eRWp) zg{Lgm3SP0%KdaMN*`V0Z^P=6-~B`TZWx|FaN$*+z)$8b{^*U`Z`U$Tx5_S^cPL|jspYw#DLcw`_cUEX!}EGzuv-#q>ic~9v7v;DKzL>I_N8He4j_I5n2mci~lOY4u@qot~~9815= zk=!Pfl~UYfTlCWSMB@VA4?TaMq(1UsxS!qga>|5Lr=;4}Wd4$s`{(K5-;lGSuI7lC z&&;_jhu1gX;Eu5JP2Cs0`Hk87xAEEP+YWb>MXtGh*JZ0$DJSa*UZZ@QzIp0yuQsba zczylHGSe$RCb$;-Snt7owMdI~y_0YD^7uwk=AA`;>{q*=pSiSb_Sfgv3&IZExMKOn z$@AqJE3r8>{O2mF&(8|KzcuvtZNG$Uy-)uNUSywLUAwCJUG}jn?}h(Ge7PL^;)RDZ z-)Sd-OJ7&kZcxnKACtqGDi+ne{K9iVVV1b*E-trKHp^5!e(8Lw;@Extk`vu}(uMK~ zU&Iu@A8}P*SfhSHdnbS0=JgZ)6!(~vGN%|CuZr7xp@Kh%+fCcC@x-Fpj0eNHC!J=! zvopE+Z7xg*ZXYkv3vUOY=!D-S5<$UA62X< z^fjS6YwEMxw~E*vIDg%mvH0`xq*D7eNvE&59%DVSZcWb9kE_JK_$uH0GB0}Z=X3K7 zJ%1X>-1UBHZLQ$F?oWL=tEKB^F3a1}`<3fK@vB`*a*}6fvpu)F6F8|iVRNQl z!ib^%PuGDw$%gOYwgxuAWg?5@6{=Z(-MpKSp0iya-!Sw^=BS^^{(PsclW{TZ14N;1a^xub+LAS|F%}44>@U|$ghF(!4R2qvH#s zb@y*(XL&U{v_&rVpR&GOTq3wiMO1uB;e@(YxkSOKlh$eeV|1JFHQ6R@LvvfivUR&d zyXLtTTd6+SzV(s7J(uf`qKrUo~m3f6POzE zLL&1vYliTIy7#~8s;o8|{@wWKhr_1ECBomlJAS>LXE~qs(Nz1CUqzq(72esyW%9Mu zJtn$}iCJL7?|3`2%}n!8SFJeFS+!{6)a`yp3idvAdipm0VJ)xRtS^Ekkr8Td9;zI_ zwcxjex!k~JVey4hpx#Wl`4`3jRSi`>v`uUyE_5Ux8rknR1;PrDgsO=Fp7 z%5_USYDuHfrhjVtGUQ9*&%G=2Inn%0dyzR?+0tx*w@>n46}>$8iACP0ZE|&LgOHkn2!d~lLdV_kK%Kz&Eu?&>Tx9=j_O zXS?$6W=VQ>;A~pHbH(g=5`2M6v=`QB9Fd4Ry!Ffv1IgZV9eV{z7p&W&eMDfwt?;<6 z@Te$8&85l5Z+7oLI!UA1?8}Zlje#HSl}_$YoFB!zaf$D91`j3|L-CA{URxjU6E4qP z)v)nt>%)D_ThvZZZgnXAbSQ4d=l>ril ziBg)j=-cfVXO7vbD?UoDIG%42s8Avr`yi>eGv>m3&lB!bSFn=HeQPzS2mkUl$PP}hlqpcix+hondoLBGD zEaft0x$Nwolr>XulU}g0;Z~5_f*OT~nh7U8JG(~N?6Izh4`RSa+ z9`mGL?>y~&;aphI6y=baQ4N3ckGnCSp0fS8u$!62;?FxbvCQ8r*>m@FSyF)3gXfpk z?CkE?by+Ideq40)+84Ggi|JguU)`|E|8YF0?S6uOvKPmU&BZt7$XvQ0_~BLgq7PM( zyLQbj5WRcqqTl4gD6ufRCef>Yw-%KoAGj3G{UY&Jk3`B&2g&`37D|nd*Av!$KBe;V z@x9Ll?vk;aqc$Dd@$|jw%WFc%9tE@czH;4e`N75VKx8KKitd6IbszpepYChrbDj|O zuFh)O*tsF#Rw)+F~cmsSmvB z0u8dxx$|b;b7HXy&cEUoyUgIsmg5hKEz67)x~?@rMD+oZy5zI>Y8 zl&5|A-yR`tw&EMBn$y%GTPm%;gw7D@`5{u4%5Wq`XPUvRl!9$fjzq|KcT`D+%G-Y5 z*t*u@)O@X))x-(9YV$K)sHx=sQ(J8SmaW5A& zSTu3lbcN4R)8ZuedB6P8SFn&_DJ4MUlZ`M{!fUp(Cp9e*GqkQ^GS#C^tNt;VEgFY z{)HUP52l3ujh|iOc!fK6OS{T)*EiuCuI~sGXy+>Yy{7)C&Ej)sU3{%=xTF`_9Jbkf zE6I)J$GHUs5pUu-+0>84xvt55-lTfy$nrNDa~7}H;9PR7`g!4N#dV%Xi;8Siv$i&f2HdBUtiCI<@c9YG(0U@mcihCLwIBCy8e}sg*gX( zAEnCb=)|ThSs^#UZ1JkS{_?XfWNe!-Rq(-)!naB96D>JUJ->MR?mZ5N;Ph?9W!g)o zvk9DUW*4n9KXm`0lvZ^3p=Kx19rZ`b^JZLI{dd<}?X!O_K3`t#ct7FQtUt2vCi^dN zHkL}~S?qVqqk8+sLwTE?3v8JhnXY+nOSHdJXXuJzuZx$j_`hT9@jG(gPC%!y;jIq) z@s+adY}bUQ-8p1@|Mc4kZbh;DD~r?4ms&2)a%7f1Jm>w-y4p+EL*}tooqNA9eYZPD z)9HX~j-GALqFiTO$gzq|*vc};`<u;HM7l5+4gPo0z##1W>t#u zyv}}P@@L7ZOaJrv!(YB^*%9#g%m1F^E0j0w`YzLbe)5`$H(G1*=cpG<2@Tz^vO)dk zo|Vplevb;Sy$k0^Tw|k}UdC}Q;`k1=+nUbL8@P_j9xHox^>!WCRi!x>KWxAE(dV$^ zxfLaQmh5s7j`sR@G2%~o*we$FbzL9Q!nS!IW4suw`RS;@YV$Li38Hr-YIzSL7+?!NH(*2$1LCTFv5SU6B37v&O|q%uNwf zSgzi2*sn5CWb-`vo;t26LP?&M6$fI4T71{KEm%4w^5`k9<+9t&vkvwh^s)L9kUK>^ zjj6ia?tZ%dsl9U_u4SB>yEWf*tvKtUJM7PGHm7T<+&cUD*4aMSj&l=Cx!cF}i8npfn)PT+AOG{y z;$B$i$1*dNkb{lEX##!HiKrL2~Ee(LR+M&9obYcJQi3PFNQhPSd_;^(`?!5T@R8w~*>9`1CdG)N6+Phay zpZgqiq+L%Td1=0D+suUW=x#6D0zHPH*^y^g+iZ1}IW*Jh*tEP4KT9%l!wz4cs^-IX zsy^hocd2mIKdIBv#Ticy1j$*a7hY`o5pu|r<&XMvE~B#xOm~T&ShI^?|8mBS+6`y# zmlg|frFwF{nCJ6z-s0o0mzdvMT6ycX{A``BvU&3q*WEpoVlB(g_Ib6t*W^2j%i`tcbN}Ck&A0x2xv$4>dC-FS%p3pxi=&VI_3hdI zytecXv%4?%=_z^z{8MsEG3vwx%1=DrrINnb9Tq~7KD*?7Y!REy_kqYC?u zD#1BFm830~b=^-^eSPHjv2&tw|2Z9}d=)qlU*z@9_u#_=x}3&w+F45zuYLWQJyB%u znqwZXbix829b2av8y{c(Voznz^mU(S`5*hKm7aL^*qh#k_0#+6`$W9j0s&Z>rY{G?uo_?EVs-Ar(Sz0p8eylYO$mFKlv%v`KQZ*D|Bl( zET)E@_1x83u4^XBFz?HZGUhayT$$L`vzbai&)+Y(Ep&hJ^8fy^tgn3;1SB;Qm<-ro z9aVq$gZp{W*5HNG2X@~$^nXR0evaD1i#J*f%P*xd-n;O}mwB$$#4|N(eoC#pS^R6& z?rW=sgsawCoekIc@k-jv>fX=wsdv5ZtzT5~bE zXvT_?Y{_+BH?wAa{8TpMz_c@EDl8tZB5#|y-PU*CiA`U;_nLZ_qx3DS^jU#Iva4#l z#0nnF?*H)X<>rsqvf|XNm#z(&>$}iH^>5JYHU&znt?l zk{(SfTf6n5yU%{ryZ_B=d~!;GeP6yaJ;!o>>9ypOncQ3L8Pz)&LmN`v4V}3@-aItxRcf`7E5BAGU;0$Gu(p$^ z=YFSB%kE|C)@2HQ{Bq2m<Ti)l!b{@-zjP%O}_i-2JP&Hep6a-G-HIaT6BEUTV3^7B?f%F>*d{_~F&R zLp*FJvwOQ5H??fv`Zjd8+lEy4oSC%`G!Ob6;=ler?{fEBd&xqhX?FeB0u-GlH;7-5 zuIds{P?({<(_J)WcbG+p!GXnfS8g2mmvwCM{y*#E7(Sk<+pwTCj(@xR&h#wZq=|g$ zuO1wDswH3hyyr?({pTf9&!3+c@X-0sWw(7()b^Qu*_xM>5p_+G;oOV&-J926tGlB7 z*ri2FA?)v#mA!kvNsCNxsSW)s{A@?-jW1{8!dJ(x*?H`GPmNVckG5^8a$`hO%vSCn z6IE|_&sAt~Q>>c#qc}jaYn%7ogS(}6{XAB7ELx&f&(gGdnrO}^Q7JagZ~HUj&czvD zl7@G zms^>t&!U2PnBapqQ^^QN}1Y8F3bx_!aq z?ZVZ3^;S>!U+pTivCx{EDdFH-*jj#Dc)I%upQDB`r+)YBR>)8dU|QjRcK=`g^6fmw zb$>UpKmS~?a9Z9)ncU*Q8*k67+*4q%?2ki_L);NYsh~SIre95pS8v>L<@luemzob+ z2)HF(s!V?}<%|vA`Umm<7f!O5>PfbK9~Q8Wv8qC1e~`n{w1d)`T_lV80zV8^rvUf^a*kZW`1BK3ey9(aB{M>D5<=U+O$}e8rV1jJvcJ@A3@sKlz zg8Q%VeLoO%ZT`v4wwrkr`W`O&w8eh+j3O>Brlj>>xjrsjsW*9(?5{QD$r(x2Q%b8P z8H8SboKurpAoYn=XG=;{ah~3}ww?U7vlj2U@WH_R)hp*M`^x@qG+A=KF|YWr(oNmN z57~;@{1rvSWRA%)E3Al@T9ISTr?iNHp^st0y|k1QU&W#pN2Gs$ys;%lO<%N5 z{kn54(X;SOmC?36?;1E~Z+bR&+3dA#PtNXc>+@f`)JVvxX~ii|6Qy}g+4@c8U#52M z=&)qlx@P+Qrp=%7wJze;ZF;8b{=zLX`qW8x4Y*@&$A~m#Ey*u^Y;ns}I>36g={nY)w_!KGe5N6YCQo0^f zAmG8|`Pt39;e^1o;?-YcljnZ&aKFB2i{Gk7*~nF4SDN~7CI=jAo$p-Nx0jV~P3NBH zd%uWkFW}TQ`eJfysb;9voOO4K{ddi|Y&bbS`{)Oa=K5JCZk!j^H$P>n_#l4pQHGO3 zkM3@!X@VlB8`M+Q3mBbTsXBZ5_uw`z*7CRUbBrCCti_ku#_hP>eSe49JCksRM3?k! zzl8qY*k`;Ua`R>Os|SSKwjI(67I~-kEa_tT9pee&>deBb)BoMzu`Ap*^R~c$gP`@Z zFT9vnFiY?Kr|GrgLzOhjgHx;jG;ne3M(`feR}+`D(?9dZA|9^K#Oya=t>7pZA~i|t#f zM9=Q;0qK)IFW#`|L+OdlR~Bk(6)mw7$#!MGuk}Z}WY&!3FK^C%Yy5O+EN|;Y_Ipw6 zHXHY@_;~nG0?*G&Tc)`#zm`|{mXZA|-|{5yB+rKFJM{M~T;p42s5aYQB)2DZI`@Km zSKgcaaVR(4T^8cIGp3U5vcvr}JexyV=5P(;! zuPs;g08`_RRk|~R_Dsx4*_Kw^ z6vObBXBwn^>#Qg%h>I$sWWb3OF#bM{ZG?X6$5%wP>v`x3==`<)Pj zn%gv`ueHmv9_%sd_vu}=TcOkJs{@BnzFg__hh;3Lj&{b<8uP!JxgO^+`JwmQ-anPa zs_dkBf%&V%(5$cXJ5*NGd3BZsyYuV3*?ib&*HSG_J;q-i^4v$~l^bXBwX4|MR4xj- zm2<{EbVHllDe055*?ynh@GY(Ts=syhNukD&-yWWVZzg44{2RaBZheEqmp$&SYNvC# z=KY?M%5drVMT4)30T0A3l?iNb`W;pEX@2Lm?rG;P?z`#lcPGW>ZPv4clel)Yf1Lb0 z;xPA}?W|L8+zu3c`Q9wTgXPhY37a~E9+feDpY~4dsHw?oaiL>!Va`9^i?|(LyUs^o zy48By=dp(2Z`K6Nji~%Rb=@}GNNu?reK$CN_VkHr)tp-wbd=*bUx-wjd)dpt{ACT z_T;uo%5;&#J4>Hfe)XLacJj4cuI1q}gJg-qY}>;3$=Y)`ZMze`&e1!z=*w*3x@XpM z2QGgUD?k0K?yPXk(wxHhj4EAI#%*(g*Dze)p!>Y(%G?ybfISJjZaM}0Ns7pN!Q1$_ zA;f(CLf1=s_gy(ZZ~X^PXV0_yJR3dEZdcl^Wc@&}qc$mSo&vkkhhrA}ss*v_{*sZw zM{fE0t)0OyD5dZC&tvUdws-yU%+^6$X7X0w7Eb5BoPGbs8G~ID_14Z=?GfCOayz@g z^x0RVI>!lXwx0j=;a$&$&lk&mRKkB1e0}>*Bl5=d$~oSmFH=l5bv}Bpo3P$7YNM;h zmgzzK)e9PJW`8qSnr!|nC8~u@*Gq~oh$pC`>txCr7whKDvNQJy8vZ%xde46ASDt_2 zwGX51-!3_F>?qGi;fjdfeTx=^z4W`jUG3??*>cBE#5Sjtgfy**dtA^l@7@&cm>qAW zG!@n=X?p+4PP%0knyGl6cScyZ+M?vbNt@1Bh6!dis)PUNu?OqPAqVs!$!{ZTE{+oWB1U4c>(R{%=#R-eL6acxkM) ztjyOF$Na@B>bM1X6P9SyS2G6cl`XB9Q!w*U&;+JkGk>Zlm|f|dWm8iVG2_Uy=eJVR zrZToEPb;0dYk~BZgXxTTZPEshHd+TswyrILc0HznQWxtX# zrd$8&f7g(E)24l9XO8b|$D-S(8H$5dboGPYn=feC=6q#O+V1TawEKhS8T@lv*1fgE z+@|#M(yRNvt-ERItKFOuQ@Sa9BR}5)&zN^9wOLc`)2BYmo@=={{ha?t23=F-y{``Z z-QJv1Qv5$F1CO|JR`>2iWgkHm@%})hEjCw_>g5%SS6#7G0S4O`^g` zc+250%Uv$>Yki*BbU^xmENz|-znYv|V%xpEHN@a}?$mYXTs@l)2==RccRu}h%kRX&2RH9=70CYop?Ln9 zW0b}{6V6jh;(7{MzwAEE6wSTwlKi&MXPyT&21&=MBwZ-WFx#T=cENq!_=wjF-oGr@ zTRK~W|JT)t6M!=uNY9GL$$SgH2!VW{6~dFw@oFb6;j^NoK>2434)&;w;Y1!o!;^9AMUR|>?`;=v_WBRZ~gM$YnxBckiUF9#K8Z~cU6O&&5GC4 zJY~1k**y%IoO3^ASw!U7-LjgO|6J6|E`ONyIU>M+L6LJ&ibssSiMQf0{%)f0Fhpw#koU~sdx;Wv|Cm9etp>|rh<=?-<`bjLS#vEZp8i*$=1TX zUpp@Ht$OE~z-<-gIB(Uvi;cP*t&hTt&I?)f9Bj&DFx_LZ=)^vur2hC#jUHrnS8)Q~EF6+T>`U`FK&h&Ax4ZnZor6yY9_3 z_?#QTc}XY3w)9Gl{X*}Fh07k#`?&A*%6HfD4#`ATEv-q-^g1-5?cKlqrAJkkelLG1 zyYb7n8*$xkjvOZb6PPDy-LbwaIp4|LW^S*m^Q8%YZ~Wb+Z^rYt*m~LaFSXnfGfSjp zzP$gyzUF?61;a-@MoB59ZHFzk{_cCa(`<9=j86*7)^HggaE>wkKEG^3Tlk{QSKapX zah84T`KkHPMOt64L_5eg=-k!0+`Y?E8AHQFqFVnY8cRi1-R)P`we9Wx+MLa|p!xjw zi7^`RNq6Ebxhj_R@=mFCiR!)G_0d6h&3kpbon{xF zx18TmtvBtn(AA0ddTL*%hdI}0UkUd4ogZ!IwEE~Hg+GE`w@u>8SX_;7abMOu{^^su zq(i<<@~W8i94pqFre@f<%~5H3c1G&u+$y80U9F$B`Wv4`)V);dP~#1re(j+UJ8RV~ z<;6|8IqR2qEsZp4kSz|B{=jjdAaK6Y`uu~}pKG>9hwt@25@>tGWR7oTdEnypU(#02 zG&p>yPoVSt-brsu1I6>qPd=5tu)^uV7U8uDI~GrvA$HVdvysG2$?^uj@U{z^`97WQ z{IJc!b+OOnjWdoL*=%4|u#%Ep8E`G(NWzP4edWS7j1#=&3f)vhY>d+vcDFuQ*7jzi zeq&~>g;AvMv}2ibj!v_+EC^n-eC4F4@*7vIJ+S%thfQ5Z^-p&c&T!J6Te6$qYr^5v zd!JjY+*;LA{E#`P_-N;=PaPW{9B)19)g5xHH|XQ>ukUX{3a#nx4SHreq8+&d!s_UO+ecc&gy5xr3I;=I^p*uk77S-Z5+O*rlui*BmjD{Ji*obD1k_22}RKP-+a z;@s%Rap}E(gY?p2BrhWY7SGKJ2ZTLUKoXuGNZ?^|Khjr!OGfS9@CJGw*aUO^| zvSI>*yI)Jaki|z=rpUx6CGEXVsoy&sCjP9@)JdD?JlQUn(@$Hq;*E@j=8yHw*Mm2$ zop!9tgFCd!v+mQ8r*k)MF)#RUe|otEkEFNq!RxQ@2Ru!#irrc+&KR!y!{$cgQJ14v z-dY`0dUfthv)-E(-j!iqE3FkfzfC_=c)m5oYwphJEb{N?2bXQ?sWSXlI3sBe=LM(0 z3xRsJUi)Y6l$`ZnYf07V3!T1=uI@6r4*oCSIYu!Rxogj}i&UFgSLU?k#k0N(I;*Z* z&-8vhvGi3$-}aOj*Z=RV_{?5Wbh|@sb1wf>fd*0D;GnBBS+%Fm(koAq3@yyR(EQ8F zSt8iXzkDm}r2GrJEMN9SX+($g2OpdG>(~h|sd9H3-oOLvq)9&^y9k*}! zj|@egvR>riv(7QO>UMp({1M~3-#$+`oOJxe@g+Yv^*&xRb`w)Lxs+p9%5=_ualelE z8t$I|e=S>Kf34XxFzLX5Edad97CTEmY9l{65U)&-RDjU%n*? z#ee)_kom*YrY7!xmi~>l1z9fw6K@?jk*SrmPcq?=vCiZQ ziZFL#^n>t}ozr7sb8L)fapD#SX+l{@d@ zlHX28y{0)Z9=iB+hq8y%v%B&E|5Vu6gJU_J6yz)pIGxJ;ZFK(b!RfQNcDt@z{xGb{ zp!Xu*_er6u9oN6;rDvyQA31Vmo#Ql(+dtC%zki+nM9|^0sy)jFO_tj)g{p#C*F9a0{P%Z%!VadM&({n(zgbbkd}grU&o`^@GA%csBfe$>>w*8){I1JXuFp8f z^Hz&}DeoffmRWBl1MgH`^zW{^etX)7e}@w7Bhvi&Sq-19m##gSW!z_)D`9)nX#+!h ziOKIHigWMY$+2mIZv-ngM6oUfZ?Ct+v!EIN)Y>P?peY4Yswu@p-EL`ms zXPE{yygoAV55xTRPC?o`+V0CQW8NR`|3+cH@b+zo+hR*jm*l&(vYw56uKP;FuHjn^ zXQ%(>lpH>>EK~cv_osztC6zMRZob2v`Sj?oDh(aO44vqGg|~eQ{oY=zXK`juRG22H zykgfhJ+IhBZkh!P~Elm;Y@1Gv78c(;J>9uS_z+whPCmHoM%MG8u5Sn%KJ+A@(y}W}W zZ+QJI)O&T=Kh3V3JC(C>`H{9w*7+wUXKD36-kevnOh$U?s_Tr(rIvylP3-!lcHf)n zxt(EADNoszl}g25{8O3#S{iQJJ|jj=y2pvKZIF-om}<)Laoown8k%s zYXx^`d))Fg<*lFd*S2&D_d*vHLm#f}$2&|_f;AH~m>fJ$%-nQ%E>FxDNX)_i#oGM!8 zFO;XZj7!r*X*m?dN#ou+d$->aLmV!pE63OVm0wnHyAJ=30SGiCOHqZ%{! zKL5t_=+eqbi+>yTrvK}TDf z3g@NTwFa3gsh=J#c&d`O`Lau3+57V;KU%lXYPGf6)Vx8@A)M!j+QeYnw|&gH6@sZB zPwHj8G*&4QU!t*e#-nqy;;-g?XaB8`#4|N(dP~x~*XlKWpAXL#o!*rD$y9lh>efp| z;oXYS!fyi?F&qI+_LS_ywfD5rl@~m}$F}H6Xu3)EWKA3C zRWsM5&ZsSzvigit_N1IG$5*cTy>od~OJr-EvCMC$&GlElZ04GQP9=k zS)Nl8b-twBaH$Eqe$zv>^Pys{*>QX3%A+REMb^EiB^SnfvY$Dc+j*>4BhXRAWH!^$ zsb4l6G$?k}`})Shf6jptKBl)jI7_a4|EAdH`E8E%(u{BCg@dw!bdCNz)_wkq(OZFK zvFW{z`h9zQWx18brj^gDyDR2byVUs2D%aZmrhkqb>^wg!LdE=(p@X2&>asJ}CYrn6 zxwln^JN%>JkvhYsR7dT_+wCVfZBAv{mMeDec67+p44Fl*6E`JG-hOEi&0@Fbv0S+6 z@%znP3y&`R`@Dp^AkDu$eRY2r`%C}xA61kLm8TT+N`>~{wvTIjbfIs3;TDbjcT?4u zoSK{Dd*ONUthuwl&Y60m)AHU9g+JvN)W1$NRH~2KF-s=?c;z=~v;9guPRt^kHrr)b zFFa_h+m&RoKVZ$$TGvMhKl(4)elqB`?T3mvPcvH^e~H|?CN=Zw&zeIWw|F-kiZ&{$ zR1W^DEBb!za!bLa#m$!$FK>Uh>nWdCGJDgDj|oe;IA10FT3o5>?G(vS!yI+54?RNfiV#*U4&QBh}$%2b( zHg9^T{_D;;vm~a@?012-GYlSk39hlcfT*_|9p1iZOxXa$F^sF$=v#F<&{+3_rCj^a=r_BF1GF4QM>%6 z#Nt&6eBEa@oR+NqQ^u}V_K0D6*`wu$Q?E&%Ik&i<%ROpg_O7Yf{26yx{nRx78Fnyn znyIAcTK6_aul8xGHwXyvPP(;j%3I#OioZW9-A@F4q;+oewEsVw;;(k&n?dn}AZy)^ zGMR>2FGS-m?Z0?kNbE?(|K8cBPt+ux+a9`Lx^@y65Js@7o>D zCHr7v+JX&FQj4Z8pSJpF^V^RrzJ{Fq@a3|y0ScV5uWp&#S@YgKG3IYv+!5i+RTe!HUwnLImn`-orp)%S zZPxC;)2z>{?X_6zTJHVWp@(6;Fx?7PakNd%7(>&HMX= zkOOY%w`8~7W;XerwKsIPgh%tV+7&@H++5x=D@>y=Sym=x2y~=RvYj%SIas#p)#S)! zlJ&NiH`Xq@w6h`k1iPpP1LFLTnw0cq8 ziBi9sz=|6U$`1n$pY31czjE`5hK*mJFT7iCzj&44IpKdfLS2$Kt?Vuw>FQY`rE~A- z!YG@sYqlxwYd2xdPf<;juseLGs#-SJQr39FB=(eTHFM3_PWXLO^|{r+bZXlVix1)R zwJue&pUIvwX+!$l3x~x%zFWn*?8k$UR;RpQHa%kd^{6YU_h()#QsWE!z{s)iht#_n7w>%Abtpd9aQUsGIk#=!RW4``D0|X0-M(e_-iTXo z4|3jX3fOkz{nCkAM`pd)bD2-%OVaC|-%`r{9~E1gV3+B2Mc?J)WY&ErW<9m5*l=yq z)?@K~x9>H$cMG|CPZo7uuu$d%U`Z(a?O z(Qv7pC%a8uD>Z<%+u?S7&0Kf2uRqQ#5?B(C4Nk?+r?TO}(Jngtc z=1E(Ap1@iE*XmUh$49lWo6Y>^MbuWi^z04mLq~Si?mVjeMmn}@*<_2V%tob0`?6g{Qs(`<@OiG@(^##9dlLe*x-5M> zVrTS)xi-(<{NXn5p=XcU+ow(x|ID)_%i-8XR{oV4VL~%`mh`#=OiywRJ$^*$&f^rl zGueA;t{B~ae|eV9tNAL?jzPaQHqM^@M1kqb9*%hVnLejfTo;;Wh1@P=vkO04Be!ku zYEFYE8LM~in6G$m=FYj3ln%Ms?r~h{cD*&FaOt%M*~h7FCUJYGdG36)eU0}=;k;#y z-Fh2h5*ZEAC$#+>8o1igU!z04jo>0;R#!v%Bq_6oIhq=cdtvBe%4T4-{ZWgXvZAZ z$E?rW+W5VDF7H{{^vKQgjK5Q_)Q#WVXM<1h`T8zzdl@|4<>lsWnh%t<tu1QRZ&4m0<-YhDd8UrOCai%{7*vQiPjX-)W}JVm9M=$7~?bLaszHG?q9Wk~aH1W8WPW^Q@)QmYXp=*z0_* zbV(lbjFO_>1uS2@ntyM(y>nlZUqYtfJpW6-JSI&v?0#Y}_wDoPZGDxwLhL!A+XYrG zQz)3@re%AZ*;7UE=!M-o6MgQ!E>>8+*=!>3lhd0c=Y9BM@OV*>@^ig3-NNH1Rx2sa zP270CRgL??ZV%`3cE_r?+n2vTm-tr3%98!2DrVk79)_+Pi(XfN{ z@PX~ojcaO`Yju8jyy_#*y1@T7kdOZthM;ecWQRMD6_hhPurcuZQINLMJ#(% zx#vgyo)e74UdI^!r3b!n|J}7g|K?8y?eoEI6OKDs>qpwh;sNCo zkFFVf+rq_iL~#F|&Z!>NKdaNk`qK9Pm~QYl>wM0pH{Q~nkK|2KPfgib;Ap;KNw(?o zGY=i^{MtW9=FcO!rPVI?3ihvYSQU}}>4VIDiR1s{RBnc4tzY50@6BbGzG>9~eAARS z9^CVP0lWO3?}3jBk~p2)SbKSembs>%+7vLY?qIW@-JgX1=T9e8g=?KlsI|GGt7Bl8 z<*^{`+i#bwg%ew{-pSATUS<%>-X5#M^1 z1bObZ`Zwo&Ua-eBoYk#bB73oErP9nN+5HLc&vUH&n6+BOTBfDo^6~g>2NpH#{a3br z_ta0To1ec^v9NJwZak4}Y5i>H{A(Q|zaum!9!Lveu-?ljVgH1$=*I2qBGQsadj2Yj ztmr)zp=>wf`r-K}kEp0+-yzk+Ow)HeBxfm z1Qv;i9lrVMwSv;0CEl5uS)W;@)&8G7x$|Mu*7p7K1rO7&Zn=CYR?I<`D^_Ou1J^G< zW6WJ`*JrRf|5M*qTC~sj&8}V9k?yNsZ;+_|nfc+&{cAZ65u27Do3?z?A^yH4PKPs_ zj#k}Z|F>gvUBM^zB>BwSJJvFD_4=vJobvRBNFAAa9=Xqqmt<;t{PrjSG)O^Fpt`0ekmI@j!fmwA`ijP}I47kBJncB#m{KiR`6 zcP(4RMlt)JwvTor#D703f0@_J=~vsKQ*dOmdYbYN z;gt=U-;6t|4t>3|r^4lN$E5Tp*?KCmKQ6j*RnM>v{=m9AU%SNE>gb0ZDP27~Cv{a{ zIMSJN;!2>|Um0t`w7jA{-?UzTVgGwADJ$H%@KxcYMlWzprWs>2E}hb{FGs=vp(#=W4-$29r1~GPVIfMlHIC<_mFQ-ALslf*Fr1x zvjsJE7R|QY^IgW{z{{nZYAjSf=HwilcD+us#{2D(z56F|`@edBF}R`o-rnYteM>uD zv3;^AQ+WN5>u-7;>&EHFC#=2Oaxe9Y$^Q7~?J90x6EE{*2*{q)@!EIWJpEs9`PBZ; zpPuqA@r;sgjO}AGn||v-?3;HtYHx*qo$J;5`ToI%ny|H@CMOde_!~duHF9|DJ28d( zQt*wPtMcwkSDkzL^of+as?C|YX`g4FxWD>Sa~nfS>FkJ2X&X%&D!FY>1Wn_Xy&xKK zr>SegqStIJYH`}P7kjH5|9WZBRH5t6A&)oRSCshHd&?(vGCSj%y0^`TO$ok8NgO7Cd^1XCI5>ku|DY1RiX;*P@cx7E%(uO1MPbs_soqsa?zq z-9UBSX@+m!tkIrl^E13+*Y*ipEOvWEuj9@1u2>N`S*PDIC5B

m$v=$S1|n;_0J|jZ>jjCE%SO>72*V0YON+%7E2s()>hCp4!t3wSk`kvt;h6M z@P+R=e=X+g><-%J`fhi>+s>VO$?NW)kxR?Ya&irxU{KP1aH}En)Sc#$?|UO(AMW3^ zw9uo!Ecl>3i^>+Z-anQs?78dCt~(KCbJI#j{NZ)C8`qDq9_}*NC{#R|uJHJNqsE$- zAs5zfU}8D({7?%K8|SWfXZQoL>R zGf_EhQ~wa>md?b_wssqGcq zddyGWo_4chxI91ptFU33414i0!%Hu<{7qH3TBIzVzVzFBhB^OM{K}4YiSkEf>)vt) zTzliGZZs(-diGrASgp13ehlvoeJq*({Qv&0Q}?fyT6O#V_><{JC%)Sr^6>vMgFaT( zvls7Y=$>}mvZ-_Bzbh~18#hj#yg8AN`NzurF}uWB`+ivjWUl>i!S09GVuj6?@jrD! z|LwJ%aJ-j^RV?MFta-XAQ!-cRXP=e^ncb^p{eGlyOj}}KWfN^8!qt8G8~YY%L$SA6 z+{ryBv?5&s3ME+lHfW?yJ{TkS`$Aw3N5N(r^$!lIB5&>bYWyV2y8ITemG0Ycx$OAr z%{NY5OT8)a!`NZztAZ1Pi$a|pt}c9gCt9G@NHP1{TizT`OUqKDvV^@;i=+~mmA|Vr z=<;1v5_I$73{F+wn&S}iW{!UE&)4~? zIZZ0?vgrG^YqtxHA~)R+*!xf{qhj9Y-Phh0?+7nE_w1l!fN=jk<9MknEp~ss_CD|D zkLEni=e_5*x7qEckDAqmXQhs(`7D`m?|I&m8EV1L^{u`1_!W<)a7?}=n}6)w)pGu) zS}BuT><>M>(P`GPW7D}f)6&X=w;N769(;N5#GCIostjwNO3qzesee7^>D7O_oRFz zwzI?-zqmS^fpO}-W76TX1U-)&JKVqU#o03o)82J0`1LvQP3>m3_kEw!Hg$P~|7&#D zwq(2#IU%pNxu#=6iU`+_^bqZd-BvY8YUPE;y}m6EaGy8(-RtE{$E!ZEUStT#lrb%P zeChXEMxBw8y;f6AMwzjRXlLLM9K&aTo|B0m-W z|7JcR6KC$D%-8U($*uec+duHn!@~)S*zGKhp7&I}=`NX^W(iOsMe;NmxpPB7t{`AZz36tub z@AKYuX)gSAbM?#(tirM{YJ-HvtsvaSd1(ih)XA(2v5;?`c%w1$ zkGr7mvuMu5aHG3>mnbZnw=&*Z^-N#-zL?KiJd1n4;NTT^!;7+{fN~R(f0!3lfq{1$g$o1{gc>&R<-h|{>LXJq}e<# z^2~dyT&_}mg@Nbffd|fS`{(C%@OZuURK)e;bIw#P{#Gq> zq*PoYq{Z{SUT$dFia%fXpKdwD^lfj$oA!4`9?UOqq`L3;v5QOV^1rFe8HF3}O$fg3 zu~B8dm2J@D*Wv%qTAj3K5Iocub_Z?oh`O0;rf|-xx5B|8vG*3qz`nY*sBHgVYneZKc@#?~uN5s6EaN+; zcV1S9{b5gj>UjB?0ArERTbm?xO`-dzmK->p8XD7Lx<$XBrXis2RpfrlS2--tryrSd zhBrN@sOsQx%Yz!HntA@r>XCUP{N5+^xewdl_#Q=p*vQ4(?4Bu=wit3Nm&Pxf6S7T_ zrFd?8)#jf&CYU)|PhYa$Px6K8w2ii&M?YylUp{5$x(8M(A3V$cb#t|@&vex}rBC1d ztzk&`XQ*goX6V1iB*pHq)ukDCPsu%Q%GtHKVai!{uJD=VrVq<1JDKIZgbF%GOldXnmx~ZX|v;=u$c_KVG=)Cp6%ZkusUz=or1zQ z?i>BLdaLJ2DdlWo*ZA%K@7?by8&6;QXz#K$K2bOM%&dwS))FRB!P@By=TDdPnbN%S zz|@!Lr^pA3`7izF{&2E?V0;V1tj5&)A`cxz`Gj6Z+6wGmvCFkG zeH87wu~W3pb9J+IWny&9>iq^hLIvWt{zvImto>1S@UO-*Oa7@}L#O+*SITf4TM-p{ zYW`mFKAX(BzpKj4d-gG`zgqI`+|S!ehIgdhdd+H=6im1r*_0v^wCR+{fx~~^Y&@iV ze8LHt9lzK&E5E&V>1j^KFU5y~KWv}fVdR*iE5)%(c{(*)mS7-C4?WS`S zZWS*|yL^79sMhM3Esmz1`9AC0{+@h&^{sD4snNyYU%T79moc5FUtOTfx_GAROaTw4 z&?rWS^Bx^0JP#VT#`Zi;&0l1w&z0Y|`o)n=h2Ofn@7FTju)1M8Bl^&GKYQOci?z|b z8f!Q%X4ic;dHMB;TkApdNp}o?C*Sk4`ut{v{=U5%cDxTaa$R}!h`6KJjID(6$ZtboX_(e7Nnu?$QrWhp6JHpt1$* z>-W{A@@jS}t_l{I)Dk|AYrzWB^Tiws)-gR%HodjEzIpTd{Xv@(ugnb2-*uFk>+Wh1 zmB*P$%sMa6xp~aLay0Q_)awb`xC_lE@FUuGWZ@GVQ}gci-)1TpX%y zFulM}Vf(HX+uu+0W2%!2HsTDt`uwD`>1KIFzwSsc{?w0eEaOfpKdI#@?mEnQn|t^7 zU|W-x`F`h4=oUV9*k&BLR5qjkK#k4$jaMRTT(>3d5;VQBG-X{7BjcrSu@ly{X~Y`L zw)nc;QvS50m(@qjf=6yM)v}5upG!zqCQKGz^fdVI3=RQ)mXz}+ZhAY)r)7)h_x@&= zouj!_<8D#X$J94RPp|x1A|})z<9xn3M=hZ3R+NRa?RBOd+Vip}a@nwnsxF&wB}+ss zYO}zT+RG0_gZFI=d@d(m>b9WK-(g>I9>Y_ z)mHpvKC|=-BgQHXZ&QN<;=67}a7Cx5Pl}9~WHsU76(%nu6P0(LFKvB(xc<=BJ-+2> zMLqL3$Tb|x`L^6Er$4v<RVcK4&uf%faX3+hn|4K4*GAw#;ysJ@o-gf}1yYsjGE!px{K<`Dtx0=3Z*>5f{(tf+y{O*}-LC>R0{KR!C zla&i>-a2nmW$DYYxZj(g-#TNi=#Gsun;)^yI<)TO%S{c7AF8`Hh1P}c+Hx&RzWtPI zJ%d4V>aPtI$*+vJZ<<(DHck8J`(bg*cAnLm3OlP*43=dHF6P;j zcyObn|6!k#Z#F!!yzkV1*Ca3WmT7$1Z5#QO2js7N%>25bnSCq6f$fJJvW~rcIdSr` zpKTYH&91 zr5GB=exJ&%l=m!F$Lvwxo|-8f$;unJLKe&Wn?$|ZnQ^`8gp8ZT#k&*!Cg@z$Ff{04 z6S;m+@#?#NqvyG|s$a|0Jh05TwyQ1R_1T$*{!d@e=g8~m3v`)#@WjfsVvp9=YnyKC zO5CjV$YkTBDQPckJb%WN7T&lj{bT>uiI=+g>p82h`4k#{pT>Nbl_9-th2@{3-6EGK z90_l$_>>$s)nZlR0`J2iEsBCwj(c-B+TJAh7u?D2zmgsNpt(Nf*}RiWeV4}Y&5gS; zk=001J#;INJon5uI&$wn^D?cyB!#XoWYf$ zLKFgflDIwQC z*xtyrs%pLyHtSR9oQ)41ukVyvt5yDgYOCbM;B_H0H6q&PTzsbz7~^0R;e1%)TkNze zbB|3}Vv&}*&QqK4_%Gmke!_WU>!i*D(pRn%m zO)-3w-tO@=JdFLG$Jd;$&0MqH9JYvDWJz&zs|jei|MvHc9{rCy6uuaF-*&Ll7h0y^ z`2Ofz-Y4J9T#{xjKRR9iSKQ00#+$zqJl?Uak}#h1PyWp=&7jq9#Em}rm96wmF33E5 zJ1pqm=^~|Ni>7{E;9?&YV7-g6CG6~}NzZRR7Cxt*{YKpI;4QCsx%iOWZ<5|D=bo=@ z{(SamW$I$4Tl)KioB|uRE&KA#$YaSytpcl=bAnl}9~Ox(^*(FMQZ?`FGVdo!<+>Bs zXxCP1tXQq$k}1{q*!lA_^Y)JH1ewboJdZq`C(gU!EbS(8_nzp189x>K@9u0@+o$Mz zL`M7b+Y6_^`DUag*X~IaR^R{FR(L`(!y=oC)FZbqiA9{*pZ4~?Wp7HacC3t1-=d!m z?l*LWB9;l9D$G8&Z_N!CrP&YIZ06dg>pHOiyW*Cqq{RO2^2g-5nHg_Q-*H^yR z;9I+@QOYfFe#o@~Wy#{5Uu9U_cddD2_RHbmifP*vs~RuqwTSQ8pYi*fyY+*Xr+YE7LTi%M}%P%&&dwvM%li197P3%;p z+Mip?#1}vOa@I|2(v6O}LXY2j&EEHAsao<*7UKnlw^r9XI~Be5KG1lyE}HeC?{l-< z)6$&R9incq%)EFrdJf-0%AY zU8!Qczw?7JkL#iGz*Wb2ZfyHAbzwywPwSyoiyubZZ!r1(^=|VQ)^-kwB@RDNYKSi1 zvi0za!fj_gnBA6%${0NVUYYty%<269lBGu(9Cr(pbFa-zYMK6G$-R)0HDSl+zH!(c zBfarcThIF!7kwYIUoGgL-|F^hecLU*m(eEEcdSyobwFTtRc-eo=fI8f?+TWu9n&xr z+w;-wr8T;~cQ0?%1kg zmFx)RNt-rW=*eG`I49b{<|bdJ>Ky3rT;YGX<%-%8vFkZ&6PLssZ}=hV8F4xPYxh+1 zSwCcc9XcKUR%dOjulB{>Wuir|wC+b;=JZM8in3A@oVez!jM$`E@-cVHivFCMF!NKG zzUA@lPED&gq@sUtnM5sK(RQ3EdqU-tH5wJWHg$Fc95s00{O-_aHjTKX<4a2~iyN~t zMH)1w#ThLQJ$%v9b!CuT-`ywCvn{-q-1p%Ax5WMV+V={tIksqCmwTU(aarepSeES? zyZE+f4^=?~KpBKMb|=3tn!UCA>PPbZdrI z?uSF$U6O)RYv6|S6Q`fI>MB_F zv)9b1Eh^u6AIvU(Qr=LduUMw^uXuN#*^(Oxc zjbCDx@&C^#RI{ux|6}&r=652vE-w9ma(A7b6(43WU$g> z@w$Zd1q&-9=Xr?zdDY}88TzmI5%ach4_=#oS9~EP$-$EM;Kqp}$G9`MJ*THEsc_+t z(f_2JR3W$PhiX#SFHZOD6vc1)Z=I_&pZ{Mv%etJOxm$|MWYdyp!SJ#@ZOixA6n4EX zyV|**Wu~3Zi{lsVBbGDX*c({A%{fG@O83Pb={l~|_j~6o{2I~qsbq#Z~H)`7bY=KTCM(qT`ltCdmFf_xFC$+`a>=SIl0R$3Hd0 z_;Zl9<(C52x}D{{OEw=ko>!&r_2J7Y&7T<;5_!HKsJW#z;rO1`Yny_-4;=B`P!^@R zregZu{VSIpvHv{tl~3~9=qDD*_g^v#Kj65V`g5YQfd5p%N5$#^>8BR49Q70X-8Hkj z?)<(#=2>^S=WUMP<`a|=zOg;&PU3^h@-H8j_^o}Xa$6z4I&Aw?uejK-x!x%@k;;{~ zJg*D6Pi^gKT(-fuxJrK2*~=Uslu~APU%32wmXrHlwInZA^~3`cYh$+8UYmMX@ci8n zv8#s|r*v+XU#eC&r7+>U(rykrs zVf%T00WJBpiZ=1<{MY74UY@V4wyMrm-rR0#H^0}cO`1Xai*8-GU-IOJs_x$P;fkO8 zEV~+tFZ%vi{p9t&u8Hg^YtBeaxg($6*u}H$_=|W2i+~I3&B`YxFf!eg-qM>LFI|&5 zd6DXi-tAky`h8y6!e69#%k5VW=d6D<^Fy@WpImmWZHCaX8|C$l-5Fv&nU|K`PM+K{ z;fBO_u?;>;bLV~#UY}MWwEpVNaz44YEC0{FcX3B@wzJzygK7H~7cK8F>8f(j{lAZG z-G*gSf-d1xUUq4=xXisX>wa`jDgM+D}hx za^rj#Zl(}=*Xo3V){~yk$L(&_=Z^l_u_BIa8)8$Psq%eQn;Oq{azvc0SX{`M>XU_3h@@emd=UqdTRtmnyN{-(Q!#;HhcO z+tMKS{k$35GWSOb_Gx_auW-D}D0Hwf-RPo!{_#V>DU$xbe8rD0ZIKEp*x zhD~Q%FE$!Q+F5_BdSsX(P_MV9OnIYwz$;Uo>(`X~%W}7U^PL|3$3|(7z|jq_esQ~q zc!~ZDalam6E4gXmwkNUWAI!FKpWS^;DQ1ym;^n;w8-lZL>|p$pB>W`B26}bFm@%SEqMIcr2ZD^Ppc) z*{(ekFZ`!TU^z;IwcmJEN6^y;-@7{Xn&aM?* z_t@wCy{`RQch)n%Iiv9K;l?W4x63Z&Pg4#uTeAH4U)~+OGFpi%+7`)+=%usBxXd_s z?T~~4@8VkW!}QBf~=I< zK(5R)S$&O%4bNQ^t!9gk^fb7z;JD3v`$=gNe7D?xcHi>E$LZUouI&3=eZNw*^vd6V zzt=NP7b?B4!QT5wwqYN0Mbst1J{fhbz7=PvKPzyHb3 z#EEKAD)QG~?#`6>8R50+f`9ySw?>!usTIfh?*26Ssyn;)%=6{y){0V7mrVCabYW7z zP^_(ezUlfZVeN0l&*jZKoiz1ic7BNaStZ@`SNY8Qw^2?8 z(FSjRhVE46ekh+M75MiP$A)i_^V>QyT0I2+p0wZTWFX8mXZ?+XKkYx~@?Pt)78T{v zI}_~H!EpP2to`mUBC=+7bFa(rw?EZ3c6_qwRPx#)t|yMwEUwF3oXPk=74+=CpdzQK$A!7ERlJs`cR|(PqB~Z`}TC zET1@+VSeAcpy~&IeJ;D)bJi(&SX1vg+9Utp>k) zJ-PHPy8g}$iae~!HF*^~tHIPeH>83a|IKQbmQb<3yQE!M^vBO-;i}oM9tA3-xs*=2 znCmJz>tgENIlp?A`(8V})xvmN)`^9Zk#(!L>s>vrmVV&s+~*3@0w>?u?r}NM%(!FL znr0;?P7Omp-jn<13-lg(Fa7!LspCfTAMv)undqyBTq@nnXH!0TdBg6m>3j_5m;^VM zMnv5;IJ`9Nr~T1s-?~zzgx_-{TvnGcpWGdPoHKd@hj_c~o~~V++QS{S&b6r3ed`oB!`p8b(ypS5^vj&<)*>8sUj)STRI*VoX~`1IY*psbHQy|=P2?Q!|Y z;uyM)@%HC=@zQ>)T8^mB{F?pXne)bIt$3&nmRJo2~WJeg zYP~O9W85UUTfC|7dx`Q(y(a<=WxOxvdN^N8Ra6IW}xNPb+hD{r%egAE9fbHxh z!PXlZKa@NdtVuteE%xkF!7eqs`xO#w5y}Pu@<9u470AC^A^TeYnX|FX)Jwai(?6$A zZ&}Tk{p!GtRdUqxSf6%yOv~uxY)sVuFX$M{>iKyOy-Pw*%;bHT>ddlQQ{P}= zOy>r{vRUPK@_tO6yv_3G=_*Urx_jz-+}3{ex&B+#=w0g9Io!_S^G(-%*u-CYPxFUG z_P2D))SbUCF<$C)lG)ek7hv71v}AVTDWe6P`g&_Ux4yi&I9N37M8OQ3Ycsyo=h-K0 z6gj`{^0Oyx&J25s3r+mxb~ak`)EM}MKkzjQ+86MuagFz5<-e2GPV18Q{yTT&fAUF4pG z#;2^_O`D&(yt(kY<Y5zI)O%B{?PfcyOWWAV=)-4iy*X?k^dU;a!k z#r@wd`th?q>UeZw`@wljiv-+nG)Euh4r5QKx@R7DJXiQ<%svhg=j_*Fp=YqSnjh$BxVInpbKVe(u=9rQfZ6UKKx?{%A{Y z_O3YD!1RlsE*>m9R<{0WqT_A1Gi`b=J$n5+?=)1t7I>LDH==dI^UJSREPc>_K4;GH z8Q<&6-o1IyT5zax`y`#)XC$mWCj@_w<>(Y`IsM!AY`EawABTK4?mocY_a&w9Z0Gut zb@5iKT&_eozul1-{{L*g$LYWB#~w%(FEpCAVb$|6u3e1J&OcdwyZ-Xiph&|FLeV=| z|K9areLGfARe1^T|`JmuUTs z<0xM$qm%hD`g!&9gc_##8@rU7H!Ztm?R5CV_eBZ2UY9-QiG9@jGU~4Ir`m&R+XMP_ zdU|f>D;b#muDgHoR!Q}FmfQPuKdJucl1(nie17|bo6@e`?)L18Jg#+x^DP~VA9RY? z+}`v1!WQx6k9NcxiLUr)#&3OUUZpvspt5Axzh|$u-U~bUX5OO*G8+V>9vZs+Kl=1j zj!B`9dGjx&&1pGYI!sw-qt;EW+B{!7!?Swc%rM_S+39t)G1>ylQvFMmUcTS*YFhD> ze+;u;pNm+YEgAjd({!=Br`J@R`c?Vt=^+Du&pi|Wb1q%a_T|=>tNT0q@3dt77X9g` zcG|eyBkxB^;r06S*Y%h;&XwDo;>4CJX7I90GBY;mN9G5ekKvPlUsd_0^uv; zkBfqzJjtCa*EBKN!oTvt*A@XMt)o8iS~E;pbdEil+PF`7d%@;+|Lr`U1PYpH7W2??z~R7o43|(>=Jz--SPC=@!wTaUrXGi zi@#pYTE24c*6Hhx?S7kH>AKR^=L=6!S>x$Hg)ifG-l?;-Q9Ar|b?SwCwNp2~_4!a5 zG3#`j?3Kqy&sA%wHQF*|$6ggK@_zBeWbLlyFSdJF)GYbJ{`K=*k2!z2VRBq+ z9kctX$E!aHX5@;_+Wey||7+}?>XoOP)PA>G%FcSrcdRDiu)(*QIT44hM$Jyzr`gVR zZA-xFGd(jJ?w1~4!XSR#(W`q}l)c^kU3bs=B@0UZnXSgi$hGmJTyfNg!iH65?oKDH zz6o`GIyvQk$Ae?59n!RXoPE7KT^RO9l~2l@;mC24p3-rHpy>9}y_?xpP&b$F{SbhmRgnO~d zrCINN*msci=m+6XZ8d!QGaj|n%}8Y_x%8zgNI$gre)-;fYbKX0m4%-Tg_+7+|IZdY zVRHY$D>;sbX4md+j`ooH#sd-Mro!i1$e>I-gM_n4s5#j2ot-9hfug4kX||Dp?( zqO!%0su*&&Zhbdx>0Z5RaSx9T_P>6_RcMBXZIu?c7ny!L-nuJwQbL7H|MhHcW%tcb z8DF(7x%0x>PGI4Qy?5R((2Tyyb>DN@f$CMqP9@r{?)f}lY4(I!yhXqHr*3-AfBE*U z>7FrcoDyXf|MzcK*%VN>JpG{kyduX}o02u>t8#sNY$qCFTfVc|x_z%4s~Ow$z<(=x zmK4|-^!Rk@MmObTw5aV~r(CPNFZ0xNzx0a8Yyba7zH3!-H4N*C&RTz=c#`e*RK6+u zt}(3goc!tSQonNki?6Dl^<0>#B^}B3^QW8q>6^>4u9eOED$}E3%6j2HSIEr^My&ta z78zDA3cSDd_Q6=WJe40k`#+w$6=28NU29YMc-a+$KgNnOs{&0O+r-Q}9hh0S_m@S# zU35b9uAz+C+_`rTzl)CYz4b$D!le~HubIMsNY+1Z`M&KU=l7Yu%vRf%cU?9p&08(M zHfZ{03BI*uPfs16c4dm=>{Wc;9TVm`z1)3XZDp9;(zFPMuhq)4b^RatRnEM4*>dJ) zW{(xxid*ha;`zJvx=b(I%~N{>S>zgb@vbPgx-#dDQO?&XiTlpq`+c(h>u=X3^O8lR z{)(9=ZrfpS>t>DDQPsQ89n#7oh1MMZs{CacleoM8`jYOPrSAIbp{W=C3$(QvviYuZ zHvdvDrn?}QGpl)V_q;W^u$5`jvC8U08e9ysO&K8?xIZ{regp zr-su{=l@Vh?%$fqT6pGv^X^6Ls$Z{tYTv))@!U6zN!wTjW7Zy=9Uqx>+qz+2zx?$} zT$O82KJ+dRV_IUpVbb0V^TyzpxjRqqH{B@3#J*+M_d}Und)QFUoxAdu3U;^}hUd5z$hb+`We`eD)XGE5LKxY_~4&(eNXE_Q-S1xtE>yI%P?_&4e9p*M2Oi%P3{b%>84)zQZVqYo${~&hzMr54hvB?&W&A zJ@Botd)IK3yH`>>;>n3WoBTuBPEY>caYA^RK)^+g@JE*J`Y}gzHY9F(xyJ8yQR$Ij z?uQ{E=f8x17FPJI(Uz%q)YZ1ndDd0Ow+}SeZk~4M>Jcf4?>29)$cSYwm_EtLb&2c0 zw@tUst@O}o`Fq{NooBJQVOx-#pL{sD7xzOIMWzI97GE53emtQz7?)w>r zV~OvyK`{A@M zrpD;$`h`VD?aMs6r2B&=F5`JRpDDTM1KY7(opGN^Sz@j$)*B?6J*W#`E|cMqQ4WG_zBwc9!=9DVGTq^1HZqwr_jkG4W0HJ;P;>u1oV}gzlJsRM>WZNZVig zNy)OQ>A@d;L@K7AStwud(tGi~6)%r2Znzbyu34DsUS=s4zx0t>q{YY8PwfPbOghNt zQ~r>@;rv85uWJdv?s_uUEX+M2ePvHo=p8SXB8gi&xfl9u+h8P|-zyoYD=_2VeV#bS zN+a3777k4x-gIf!n#|CAQY~@vdGfc8P|Y$0@46>HBDxD*c&7I+{=PHobXnJgoemrO zkB7dqteE$GUHQKiHFe4w(fLc{dP=Tsu*ue^M^a z5o_;LeAMpKua@@xR)*`|t$x)Sima2_f4^XSeb-Tu*f)mL7(_o#GaXvf0!eV69^o>>&O#c%7}n&O^&Mbp#2o}Hd_ z=hDq7dwMjP?J~}U9rSytxcQ=0RoD5)Y#*E6mnem{6}fgVx^?raB8@zcEH5e^-zpLX0^@b>Jw<{xn#m1#m% zXJuv|kKVPJyLL*6>c1b0r(b$q{`_UFPGQ%DP1D4jDuYii>B{^0&@D z{6v1nd5fTnk3U9VsHi?6Q<&B7q1f&=E3i@S_?3)}40a}0;@7@kxj^%D&7X4PWoxo* zuWNm2lr6mcDDQ3PeJ9mDOZSTJ&r90yVmDt+r$t^vu>Il`@1_|{9UnHk{yW)pTPrl- zSfu-_R8O-%Zw~Bkv;BKT?9T$3rxA(s^EO;pi#B*}G|g#pg5O&q=jbz1PqekeKd(2K zHq&>?_dbu)nF5;9H^c=?+Nx*1n8EnWTctTt=gho-o70#6iqGRcXmiBoc}7k@RX zzFH~+`J z8IoHfWWFs_ak#QrWNKahn@d(x#ILXL>r|?{(kJn4*^&AGy4gGe^!xswInEi^mE&}| zAT57l(PrV}(^V|8oTn{J)#B6@IH1_HE=lqD1?KAo2Fw>4&I-J|{O1*i(E+Qar=Oqs z`KjJ%^)r{`+fzQ@{j+Y$$ApAU#xI{lmY+MZZPLd4w)D3j?YP0MIA(Ns<7R{%B-@UWida_nfp}&2?sVLj8E9M`2#l@$neErNp9?tq_)l=AK zPYc!Ix4pikAv8PsbR|pD-L;0nP9pn5?Kl^1>5Fq$nW68>tGTaojmV^p1-6;zR!n}a zwtxb_lYcK zDYX8fDfF-^{>1T(9x^pk!b+u^CC^@WSa;_vkLL?dx-_pk83<$9L@i zgO_FOVm$HWP=v$Z+tw~V>p#4G^46B&axllk9~Xa>o#@{p9O?Hai_1;n_dD>Uy~>i)5yIB{Xos*IIP2d=sV&Do+SQzv(Pp>BfGw=9A9 z_zMPNYl>~#y^ro%r1SRCw{nB^E3#7)H%zFTz2VP=rU^@C9G~9fKEsNw-{I`kJEvwE zy!iO}VC0g`8!QgajgQLHNtQg`&oVdparTtolB=F?Qa$!h`TXBGS0~L#3JUw3(6D#O ze1l*2wH0g`3_Mr5C3B0q7$}D`eiy6V`1S0`TMq0`G})Zb>{@fq>5_(HXP_kKi>iZf z`8J1rn-?j~E}ba;X4j=3)d5$uO{%U$14%{i<%Qy?BZ3kk2+zojs~g9vtkJZ0r6k%jj=o;<7XK z$+Enes>-vMmzEvgT`RKpYO37A< zxrgt zH;Fk@rJ2h|E?n; zc|{__`5WW<_!RX$OAai3E_lRc-23SgGD>we@k#2FH(U&l(kY zUiQqhl72kbn}Ns6XZHNQ{Qc8zCW@YSw)pUseUZ-9302(s4KtGqkGFl(x8&csxctVe zhbuqc{?Q|p>M}q0X7ek*KR1^}6@=YeUCion>fQCLvsq=H?kJo%h5u8m&iq94d#>xg zY-|$QE1@RCrsdCmrZ#5>pK^jzP)+retuEQxuRZPt8^+B$u>AbhZ<-fYPko`QILlga zOE<%fuOH`qQn&V$5>4Oe+N*ilH1gVN4ew(&)c7p!KU&hG+dsolZk5-p`If2Q1Z3`Y z1uTEOz~g|qL%G7gMHw-y596%gaDF+r{_p-@A9fn9KC(=1u9wu;+iFs8vYwYs(9!;o zc*r)mnQ2G#ianEJ_S?R*M_?y6IU2HaxW~hndPh40%1FNrhd3Rmsi z#4cvxniZMF;;SSUT*Z6EtZC)m*(*0|WlfTnnDLmm>-;)}ntyfj>KiXERlonWIO$sF z{(a4Rr{~8u&zw*)_tMO-bDo)AtX-B|)%<44Mx8S+#=js>&o zB&|gA-;C35W z$E>&L>M6l)#~tY#Zk-7;t@|~J$6?0(4Aun;x2IjP+idpiK&j59OQq+g?7g>IsPpTq zAM!h<&v$B>JZbKi2P`qA(=>EW$DBUtr&`;6>GIUCdv|9n_c-$rtavd1hHjyp^(QxjsLF-Fv-nL~n0_b#af;ldETUM>;gkJifcQXx-LLN4p#R zdPDOLn3*2BvgW17LZ^Du-}i4En=)a+hfBW~-c2asGl)oHQ0$I#tcP1_4d)4`QJLO9Ds;^=D z{dnEM#-mRz-}`b_=V5cp)yN;LNt=78zyOTfT%c;Z_Hct(Ny+R(zo)2R#*NRmSSDke_{AStpAvSw8Kr)5cvpvSKE5IIWP}^F)xF zVa{sxpC>CFrPgw7efTGC!$|=x-b{mz#k>Bd9X-A0-^kCGP94D$KpK;^SOXPvyS>pZXqbJDJpI=QczBPrU`__p)!QXqo@HL;Bed9nluaovp_Wjf>U)t3Ur?y8Kg> z@z1rqyJXm>KlS)NU;2MzRb55+Mek^}-ET#nn*?poc(&$&+rF9mKU@wtKKJx5)~8!< z9-p(N*N<R*8vHi zmYl;|7#}$t(tR~If^BQO-n6NPhHS|Pa$?dPF140KIC`)6^jpaO&HI+`b2P$k+xj!V zs&Hc{kM^$rT^+iN@AcW2;WtcYFN$^2TU@t8*Yi*W%jZS!o%n8R&29Ipj}F--F0ZzO znXCBB@k3vAA2od0>bm@lTjl)NZQmz-l=FXJv_o^{t{O$X@BIs(;?t3I@r>yFPg7m*&Q9O! zVRyKPN2(}Vb=@JcKQ;L~zME@moT}G1v9@CVXSC~B*0O&a*QoyDd0-+pMQHZHo%<&< zfBxvO?c}n5TW>%6)BX9noCu4BewT4U!FAbP*=DcJefv7=4>o<`TiX=Ul-sra$Xc;y zija^hEor&M?L%JKyhH zp|9$je<3UA)buBu8?Sc!c+^}G8oWl~`O=J38KLBEJ?_n~FFjE|(H<~=i{;;sHDzJl zo>%OOZ!LQnmU`0v^oldFp{pW0ZA;8uw+s7Pz1s0qUg@gE)qj!&@jF%SHOviI>(Th# z+-Ax{v3akvMK`|8Z&6dLf4*(D^53lDs)k+L0v5b6?0NP*cFxw%ZXs2obsCvgM`thD z{kng_`-rvdKV)xCG1zI}EF%)HzqCVpf#y(fXdvb>7@f_lj6v zEeS7XPgubb$>4cUMPQD{ic?|l%+CC9s_}BlD!7sLGd29nmXKKrk9oa&|Gjy;aBgRT zgVW5JEAG^!zA{a4ZCmH!Z_5$9pz`WwgQq@sGGCUg|7LKqTJA+)`UCS#hp!(D6$-xV zm2&;u^{$^Y7(SWXX(n;+o^wDc`T(2%zA3>h@>{N*`TgDJZKPOa%{&f6o~5huEHm|| zM2K_7M4Wo0%P(Z|T<3ze-?UTZ_ii#*EO}LZBSk~t%DGa1bN*~@ z=-Q?GnYJq#286$#@}ThPOD+?oAOH7Gm~3o1wYk34KEcwvmErNW=wEZh+>IygGq3-a zlpNjsC`Krk!9|C&G;DXwn^!MyWjA;_-!=XA^B=VIad&#pc~5>Qq<4EdpY4%^ z&3x6Y8jtLXF3R7RD-84cf1p=~zvl94qg&VYmuUKVmnLmCiz$4l_T6iXw^4BOF5%Pi z59FSlt#Zotm|t@LvP8JRA1$kzD=*jVID78(~7m1Th{4*p+IQetJG7QkNthTm49aJ@rhTG(p)?rEfr?c$#d`XcYLTIZta2BXi!I%g{hg~^ z?6T}L>z9M2z|$58T)5)Vf35|;k8w~^07}3o}9ne$xbNjTF=3nD_l`dmrgkEf4+aq z^xzvYUDJIPCK&|vyq2}9;otgu(wh&(-XB+pWS>#pKW{^jwScIkvq;Zd(Ahwhtv@IRHe zIJCDJyzpMSB=k@axBHNCpTae~wJV-J}H`)xskn{S*D^A5pMBiYzn!06@n^$nm?+;hk{c$+Z;sk$baKm z+14rBH*MT$VX!}3MGRcEc*D<74V!!flp=1{Av)-KIA7Ppyx^?W5=cB^@L(ySV_9KS4i z4xU^vW%K5=C)+qxw|cWiZZ7y{yF_y9;?D}{tj`v`)o=A;{3rE5O)fdTKE^m&!vE;r z$rVBw%sc9~)hu~^vHi{pUG}o1SXOhnpzZ>Ray z6bo+)SQEpN5Om5ys^*;R$};ihKZnlqY~A5n7_z_mNko^ew{xPEa*T>c?z`^=%TM0& zzG}5AAva=!bHWYvbM8vdwWb|7egF8zu8M2LYns+noW8#3#@7uO>+kg$N(ld!_*-J^ zu)mv=YkHsm+dslb&qX_&Zas5|-?#YP>uVqWtEZ-+>+2~){2W8G-*EplB| z^S7pZ`AbR#q|2u4WKuTW^tUDklez5p$W|Hw@zqKiAm*wjR6P5mR{oHX_ z-X!#-!Pc` zJMgeoa@5S))(PhtzUp7f%aF0@?+Siz_c~IE$s?lG$#OSef_MenI=3hJ%lD>Bc&sz~ zz315a+XDMKPnq1=x#{I5PX3N*+H;wfi2T#5-F#|hbZE-QB`nXB*GKN0baR)X;bx6S zgZr%;|6H6o>;vhjsM*F5fB;{JPSNE5Q9niGlLnEz=dk zv+Z9@tg*gv#X_si`&Z5D9dVcScDoDYK61}LC27>Li#h+|37P7{>qJe&xvtIJ>-WL( z>F?C)s#?~G9~aCQJt*eNbG7bUwU#1tL3Tu>&R1dM=6^EZCy6QToLZCUdVSZfh8?s2 zSluuwoqm_eaKX;>M`>ac%AajI`cC(ZwczPx$M${pZ9aZ4bzWETD$33GVb=|RRY&+e# z{(C)fI>Yee;o-=X84=5tHQe3rr2eR7t?-*SS?619wiqT<=a|LxdCNaKS@_JAiM_<| zc}7`Ue8>&G~w5K<92(u$Chit&)?oCx9pc<@~p-ghhIu^FdxiY=rqw^EAFHA zie0j^mVb70Ik~lC-hpJvW%+LwDy?_A6J(DSFo>gJ5@SudF@ zPfXZX^}eO@^%BK%6U+=n%qF)^=9Ri?d#LX44(INFN4zeYO`m;u&lbk_=WF`e7SD0( zKVpAi!+myPsq8%Qvr=15U;p30DK%}$y^qG6p#lyKZ#a{7w=*uCD%|z)Vo!K`!QH7H zDz)>UdS2)oN@P3K*F0aGm+^BKXG2lnYa1h^kaSsYJXRK$kFECl3hA= zS*3WDP|Nm*C$3(!pDFX&;n0HZN?Tuq#(8ZLeWsN%MZ`B*xZAvhxpj-dugTjI=T9(y z@>lEAZG}9++soywnr>YUNlg$vv~_u~)DGqY?EJP1EJTb?1f?=F9bu6CDc$nkq1WC> zWZJPOZ!53tE)dsPz3I&MZC7T^E1j?dF^U^4$Z!gmuE~z=s4S!ytdg<`?_x!CETi33hFokQAV1ao-`c~)745G7H=av3S zvv)Ok(ED+%MZ~6^l@?FC%- zJ^$n zo4c899fn3PzL*K@v*0UOeS62ex>voA<((xa%!=IkerqH1&m)f4PV%MONL^SjbaKbP z#RjEIXV>YSH8r1@v_#9I&`f1busxGQ@`|Emzw}DJNL{&p**7=#u~ts1NCBI{zn`)N z{~j9ec9`U>@MlTQuey^a#}c!z9m>%^eL?(%+HTvWdm66a+46nL-wQK;&lXd@l4N^> zYy0Yms0qFkR(EaO8+OLrcGGd~32V;0KUc}UB{;R?Jj-luZpww>3tBSmkG|E@Xv*n=^MRY&FE%9hMS z%$1(sf9})n`4_q(Bc{M?YTVZ|Z(~G$u>06v|J#wIRdjy+o>yP*|2Vf`ze)YHgsmFK zT;1bl^Vn2L2Wvg8=z07lZ>PJ!*LjaFJ)d^IQch))i{#RCe-5et$vpIN<4s--wt4qY zzux^SVB+D#Hs8!^!n?oeC-Brfe{q84O~K;37q!g4PY+8xwR!5n-RsY%7-;?fd1-%_ z^89VLHrNC>e}20E%v;G%RU5tp3l-QtuKH!O?U~A~uvKP)9A=*qYv$D6pP$#hujBbS zzRSCpExG)9v*0cr;V-A~#`}jlS1mNW#?AfpkJ@6z z@?a)`;%y#6@)+?`ip`?7z>+(t{jg3s34aCke^tyuQ0Vt?a^H z-9yeL6Yfl~US_8@^Msn-(m%v z%9J23@zQ0RD?Xjl)cN#+&vmM1%ITu;S2>yC9!OVNM>L-i6T#16>tlwtG zo(!9B%Fyo0{jbY&%c~j54tilRf<4wHI*<9BD=f7ZwuF9iwNy1bKif6t6l>>$xUZUQ zn@el2ZOTiwQsh6+V12sB;bL0&MD96hyZR5b1s+F23 z^lQ%NZ20?cUeogOf(Mtl?|$e$I5*)!@+tjmo~mhn7a7 zWBj=8PQnUs> zHa6$gF{HOnzLB%ztdUB`gRj{uih^>Pk8H1dtn~lSQmarFP7(1fcUOzri%szMp2ou6 z==^JEd9UoTIQB(zFQmMGGwGL9jwkPycN0GDQh!u#dPU1|`_nXo|4X+d%!|19&nYl@ z!tu|_hx=!LT_RV0w@|fIcDDA%b6<;p^DoMByZmjVWz6aY*|ML{1{dEoOJn4^yz{}W zB{eIPmim2KKhbCtZ}E)8Ws`R-p5&poa{8)WoSzo2T(M_v7H7$WefOItd94usw`oDe z-n-QcT~CK!XDGH-xwx0vOX}ClX*v1<+qOi$`S3pNiT8H1$&5?(>@+<5Zpx;p7j5Yl ze&77v?sS~V`K93)68~}YzZXh*;wjRRy=K4k-pFxh3Ew%jb>I8*3pX9iVmRrNV3W*# z-ogI$^M}&M*6L4+e`>rVtgq9{zmLgI|FXM-`eV%n<)Lif|1T7}VO_6yMri5km7!Me zR1O~7#;$jyMTvPq)AIUAQQ0 zW>$)s@X<379`3J;{0^SF$fx4Jy_iKINXt2f=V#TW$DP$$I4ztf3F`I+!AS%_*%}t31I#4g+J0a zHeS$f{k2VeEl*0MY!6S@{`|1KhH*}wW1L~~nadiF&fV)a*SHzWG-G*yxe`NT(wD3q z@_)B2i?JwROuNg{E6N&c$)7xzr)y!i|Kzm}nY-G(?ysLMzjC=ww%l?jv-_#5f9~KA z&#(Mk9duNm|L!K4Ahvt6XS+p6M>!Opv0unp(bN-sURd0IQFnp){+~jhmF}%_<9)yP z$6tjLikCS8dT+10&1ECJHEhX6y{bA(`QwIZTvMKLd1ZZN@|KEfT5{01V@F$L#p$yB z-^;tF{GPMKck_lT;rm`X9g*p^_vp=^(^p=6O6ZP`%Bp`1<^YUD<4fTQ2_FY|3=2bc1lf zPYd(1^V9ja-dVlT)Zyf`gMt6Q6m`B2&^I(`NSeU0#x=w=Z|9c>ms>CSxyd(9w&vzF zo$cs)l8rgrP9mBAOzzsT_A~xp|DQASnU2(s)lWs?37bZU0I`!wv zUkxX<%5Pipnk7`txjQ9?S^LKZ7pd)gKkl6MQm`(c{Y^<>(DPdzU+Q0PKFbiBIq8kY zC7=E6zaA?-U$;>1>akt#g(sJ~`8RtzpZEHd!=gpd4JGxNxxUOvfN|TsHzADi%d{tS>n;D#p1{O?@Y64~i>jO0 zUl*Uu(<;)t_3yNf+8pQK8=7`q`C6mqm40oa`i>0`5;F?5?i}_?*<5u_PWtex#q4{3 zUwpsbu;%+lr2;>hMIOq^|Gi@#DaO6ap8Ibm@0nZ2M0d4q%+pn|_&n>sh3s2L_5#K= zr-DmneBGG%D@S&F(ZiFG%ceKDhrMr~VC*DU#Jl%fRgb!JnaYWcpKk@ek$6YJ^I z%?H|_Fjno_xs-#^{*Cr@wGg`W1j!Z=xl{$IriIJJp-By zG&ky4T@*6raJ;1L9^hTSr2l3qU$)`ICzFyIbC>Se$1+Qoi+jF*#Yvs|^e@(jwN!sz zjIEL6E?IloVfX4K?c8gsV@>0e>t{N-rFa}(Yd<&b$Du=)Gu!4Qf7)~ZK zTe-kT86S7)m3wCTYuP)or%1_HX4hV!@T*> zm3!xz+3#Pgm(PrGn4C0m&xxL+$7g+N<;s6!!P(a4cxd5L>4L|uo8*e$Om%4cbx=;^ zX0o)4{zn1l1snTzNj6L?@?TKlr@KA#m`>fLr@AkmPF_4MP~9e=kJsVLHW6X2H4i;@ z<%b0N9Cl{i|NZi@#ueI+UL4x`_OaJFPfsRyk2lAYUWkU4OS8x>>AfNN>C~Id5|x>@ zL3^(yFn(pctJJ3*b7;!>!&@b@4Rq3f9*8dbI!oqxyxDAjvtw&NW<1~Vebz65r%x7& z>AgEz{K?YjrEzBAxecK=Kc&WHxLYs(9lFA2%0vd1W!E`>O*vz9;r~yI7YCl}oY35! z{;M_E{9D%LBR$6Em-X(OWu=59dUu{Ix!T0h&~?3N`wGn%vlUa$-`2hrck)))W`V+{ z4PyH}4*olCSAs9jR`S>W>$}J6#Cql*Gj8nndv|h*q{gpP{XaV= z=ltkM*cIPCi9N{f^Q+I!lm4ueT)U=CY?0lvfEmr(IO2mJJ03fdZBy7Kao4CVw?OB% z+VRe{-8GdGE0d3{aSB>i7XEQ&0bXGt6smG&;ECVw!h%i z455cB4#!mPzb3iM_j%CaQ=$#CS*~~#{k+TL^=)NN6vO7sRmB~x>N~6YR9mSIdUbf<+3eN!7cx`ZkzbD zEL$nvDqyQzL#OJ8sK;#oH*U(Aa=bl|3ie6=Wu0OK<`y;W8lL=Kyo8pNKTa-^O2PwGC`2}eGk`@1<>blb;kk(yuo zb}F#^}5%japu&y+Z&QE+)<3sQ```Js_b-@ zi|@2gYSmG{cj~IoE{iu;YqJjJIk)^1kH|Y7V*o+U(S0d#%eoG(YZy4~Hq= z^bMs8Zr7Z7J?X z1o*r(hxXFXff_}P!SV9m7{>7PEk z(z0Yf^D_PAx|F2ktetA{#@Q~?X!?XFZ|Ct}{iHeR-!l`N50X!RyRS%{QfTd9)bVHT zm0-`H2rcgKi&MULD=I(O*Y+i|B>8<*urOa{Qt^uSyWcxqFFgL&xFuxCQI)w)3>pk6 z-#=yia z{h^R$Itu3;ZePo;Qra@FcTa3`W!#MA%iW%^i9Km^S{SFEcvbI6=G(Qq3oUNUSMn}9 zws~n+)s?62xBqOF?-x_oHgB>rxwPL)qp0BpFH>hPSMmLo_gwEElUWmOfA7AX&Cw@+ z^zH1_tU8wG2+C(NE?Mtbm%_tq5F6jqu{?x{Bk*$m9^>V<+@?8Oo*w)?qulRN=8=Or zZz`Ck{?3T~{wg~$z;cB8>TL9Uj}_QWpd4&&>)vi{<_Ea}=O=HVGq3PS8aLHcvp`6%7?rQ?SsoA<3_PHl=?X5tg8$Me2V z=Khu2=NO{b#jg8*;icmif!{2gGAbhWw>W|-4<)7+?i89SA?f>8WTvFjON0HomD}7V zl)mu_{^8l3(6Y()xT@P9<*$k9evGe`zH57boY7cl%@!vTZ7m(3Q2%mrq~QwHYjzsp zfj`S`eGXaLCN2Cu=~&07gd6!=?-m}hU)*FC?Bx2Sc^Nt$hB_1-y+O4CGK9GEAPcT{>$f+H%)Ss|E!yF-d1V$ zr{a$rmV#-@9WKh;B2y-}K8l>VoBO`o)v{~N_q^}Fexb45B5D%b z?}HB+{_=BQU2{_WeWl6M1&2(^&M*g8@H}}EvTmMWLfsLm&Wr5+LZ*Mt{kU2G)KT-h zlj+8#lXV1tO)XfeaP^YRLN>wg^`0q@{&h^0x*l1jX*9WFTIRD#%k$wiJGo^p>g+w) zbY#of=#0ouVU6E@y_cJs&mHHR>+>K-jbruskABjh9&b8xS$xsNh8yRV1%4D7$>u+d z{3;UG{rQ9J`A2K4KbeZ8us(`4wAP4pUMh7y>W=M{-Ot1&jAU=#dD~qfFxhIgcIeIt z^Vj@4>Gm_kTlm#|3EP}%k9?ksc}z$4iHL+rgx0yqIfps4e7^bTpGEN7)*v75)J})s zy*n=Mobc?+b@g8o`#K$xnZ1|q;5_m>;f_URnar*I&dr{Mecf8KA9@DyiS8@V_!__C z@{8?iuQspa7f38)EtcSs{nq5z7x8}2&(G67CcKV%n4-~J-LoKfy2jkgT}x*dYS@Nv z?K^kx$La-dMe|ew^vv(LsylY|N^Jc5rT9R}+KsW%w|~D_&)QNu|0Kr@l^GHI4=)@( zQC;|I)3*I5qujVZJaIG;joG_GDY+;1$o{~ZR!6zde?P??FqmfS!_K{}I$(p)Qt{^e z^Rf#Vyt@+~e!imgUHGK6cBb{ev%a4aw**xSta)ZS|4@B#?V71lADj~P*-D==aA{81 zx$CgaDW`=e)1==;=cgG=eBwNz>#@&lA9HDI=Gp!iUhFsi(8Z#)aN8%bWjtzFAU9z}1>&m0(X&3LBo{WAk zt!lzh8GOO78q!+F)RfpgvcI&1E&)@oO_l`fiki)jlNtMl^naocP^xH{*g+z`I- zVcGJs3$I@l)!H22k;rDO{p*F_Y%YywmpyY1?XQdrYoE+H>%EK1<>#wSzot(*w=hJuju^)>Qr8{X}+g@7kx%wgsh?pXXhYT+$bKVUuRB_H%(9y=t$x z;9M8PI@&~hf^wIKcPnES=nnofEs-7S0-+#^BXYO^8j3~p` z{Z4U5eY(C*{Ixyj%=QD!hqg?Q{A6x%aQ7so!GZgJE4oV};y&l`{I|3~Zum%Ha0@4ae2^Zx7a>3g5tyS$*X zb-~G92QvK*pM6=r?u>{_%dN7XDNoPs`2T9p?&Y7WR_aFH&EPoW-~W95hpST^roI$h z7j&;Q==M?Z=hx3A@R;W6=^B;ETxvfv@2rYiT;=ljG9SY$-Wc?5PJ3X{zhPxxW8_bt z#I2D*UPY=84P@nIl(TA%TXg#^@YiJb>%M*8?TkjH-hPG856|h%xy-a9Ys#l1F&`Ma zXUG1qb2gZpy+F-|TDX%(MB0#-C3W9}%xDQZr(6meOY6FJbpx{r=a*X3eK-mDe{Z82w2+ zt@nc~^7Rcvj~7NkH|E`uuw<6LD}H5jb-8a4H!iHqD$m(|wO>MR#Ghp;Sc znG$l#saa&$G z&OTqCcgp>3)9PI^@A?1RMyL5s@i3aw-0!0H(egl9w~@{vzOCvN_Y$|ytk|Bfw#a%y zdJD&@>vc?P7nJS3smQ?l^oaFyCKc0rSqI-Nwpb!I-Tb9Be_L~Ap~jjy_tdH+enee< zGcSIf?-?_WP?r<`ma-h1u=R`Dyfv@>^p$`1aoDwd$~Wz)9~cxSr7qgKUfR%$@xYDA zZO1*%Q+K)l2rpRcaOvEh z+c}kiE(;I7NPO$J;q3l2 zpSe4o+a9dTnzDqoQ#v%cgz7y!S&y-8E%B!dY0@?rnTo>RjFSt-w+Dmt@`Zb8&e) z)*Ma!+f);`b+LkK+_&w=-p{z3bz441>s_Jdzl8yDTRw4%=LT2)|MY6ftK9Xvf(-FL z8_%x)mG0!myI3WE-TWFHPCjy$jKQvVE>^0t`--{U z?Do>U!7xE<@

NiL5fIe*XfFf*Oze_63FXJ_`U3)hT3voBnGW!^#QOU4#E6yBEl z`zQwo%@p~}bx3Hz!MUajcd2TYO<9c_9xJ&Z4OYJW6v~EWP7+i>Dya-43<;2g_uh0E0cpY^k zan)VE(q;u0|3^{jJ6IW`2kv*XdVdy^OEo z-Q*4O8>}AGCU@`jZ`l&hcxLb4{YUDRybfH1|ryuPKwt%G93utA1N7 zE8>m*|F-0fmGkPb&M$u+o@iTq{Ki?U?cOInzpgGxFHdCV|Fw2kvsRvhfJCbcN zqh6ignzi8THlg&7od@K(PJ0OL53c_=?MS}V--o?SD*t7_=yIK9y7<`k$3*Y!PI39) z?n^nCr6;TqJ;lkD-L)*RVw=AIsV9r11zy-$>KjhI_d#kycbn?sr#|wN@8%t_Ke+pS z-ktPmrq>Ra?P2}(yU|?UPvZIW?SFy2yOpUC%tPbBZKh8 zo_(KBI4`neJlrN?rMB8PY+1H|BIhFI`m1$B;a-aU?Ov^l6V&mv#`7d!=_R^hMC2M!q=$Z-X z*#*Rz{WVXGmvWVParw%w=67)q0>mEp&T=SSl&staX;x<*kQF#y;k2(T8;J z-N~FTukhv6`GfP$nQfYsDD(QY(d-{n&8|#mNG)M8KIN6w8Yq=ELm|Q=Cwgb;F_t|+ zFXr>t_cPYa^w{=KC)UNAB;3ibsGgVLg&Hiy@-@mo|{aQjYvs{ntbBjyw);-75I?L$zymB3}8Pi4Uykgq5T@>3= z&L{eC`y5=}=CDZfhmMEDqMW>QF^5ffng6j@Y|sLU)0)9 zYT2X7jW*R5YdNAtEW0e1txCGJNSq<)R@A)t^Nw=Inbhvzx9k4pd9_crU#&luwk*Zh zwsuxCL-HBdDc)BrmwIb=Jcwg2@CXRy`QE0zb?V&MPggJO3w(CGf9lB}&whVCT5Y!T zgJxoc{lv%CMhEyBE*;HIX30w2kQ}xCMbDAWIfsr%_P3qe?46NNHYs=>v(LH~@AV2- zzllkema_clKY7*Ip=_e*tI1F0Tb5Q#G5p%d*=4n}Dd@cY@B9q`zFyx1!ZsNtv{XJ> z-tfh7>$0ljtgK&;Eh#B1Jb2`T#J2_V2~01IX2~*M6F${H;Uhty6aT z;uV>UT#0-4a7z{656PUobIU>TA5*??AMOuRSyp9#@6%8zN78{*5nO@FxSyK3|=b_aa+Gp=Mm$7#poOvkkSBb}VtG!=TQkY&U z{azNWzW1t+e#hTsajsq}pHm-yc_7-aa~ZVh_FLY6A&~pd>PBVj`opo0YATMeyZ0)mZE}Cr_MUW!aE7#P zfx>+f^M9Kar{CMROQOeTmYSai`*mZZKL=x&J$r>R{7#?$F1)7d_7%ML0rU5+ zV)p%J!B=@h+ZBd2wqK~vwuJ4l%tQJxEVespo>1P3lV+VPfJCYt91Y#9SKpbGe0XzW$=M{M6Au&)ANu%K;PqRU zkaU6On+L)!Z7KZvyYT4ti;aO9miE2s=QlB)mx^Dd^Vh&U!i;J6X(fxNYD~Yw*4+DR zk-fN!5nBoxiPOKibXbU0Sn3Z^`T%K5K5v z{bGq+BYH9Sb#+^FPUQsWEtMh#o96D9kel;+CZqjtsiQBq`Gw_&EN^X`{{N-L=jzV8 zx}8tWSiX5(WqWM%u|sX0r1##*iyW`_|E#=N^uoJFap#4ni}&|#THEBrWCtaRYR488P*CAZYP zb+&Bbyzh4P6Z5%?+pACgc5x1sQl79fVv}iQ$NCE|Os+lcPWM)hy_Bmur}N5+ju-6< z-Q?anT}~7FfBaih2A^zO$M zpL^R3Z``-NSXO0mV}-;u`{v1N8J|V9erIgBWFl35Xk$>=e7}IF*IJrCeLOXJ<+;~+ z;zvS19(WY5`uX#Zr77FGXB{t&dGx0I#hYh08#{M4Daw3p>^d3W_IAOKI0v@{Gunh^Q9a^=X2IpDqmaGS@G=zzeqvczckSY7ch3HnO7J8xXkc#(IO_53-#Y;Eo6|X{LiuL?HmQ&eTNl-?|-su~oi(#+Lr$w+t@JDe$(8>5D4Ogre*Ey5csr7n0Ul1)C&Hxap8@_hiN7 z+w0PV`pz3Jvxt?NlJ#%yqN-#D$B$0aFZMAmWWJ?!0|< zOFpZ$=bxV!6?t=Xbyv+1h32T+PBL3mEF45*y(YOHx}M(^^SeVeqnE@?Y~5R$qVl_g2P&7TJAVv6!Q0EhtacQGX@^r65+H% zKl`|k#@$$Zu;5tM*RbZw^KJPDlw zEqs%8RY|Gxo1z(UJGGO~pJENVmo@8M-7>GOUrud}TQvD$NcFUYf^`PnYs(j3+xp={ z^P9jv+u2W9Si`-a+U2^m8}0vo(zqvxPdLoIp;WMPbNlq86>92VPEM8GbnE4*giyIB zjn|pF_cmA;-nV!j_h12s(~eiLl$h=G%0b3^NF$>s2Nsa8`X5ee#v5oo%eg+vrC9>d;03+L)|~xYqKwZXn5|! zW}*5>z5Lw4#v;SQiBi5#c?;T)d7sR+o_EnsW7})bz0sz+;b{l_^5nG5*KE&Oq*SP% z9(gw*Xi@w+t?h4*Z~GcFQ+e*p^9|eoo?#2yCYPAm^Xateg9mYIuK(QX`*hCqqi>7C zkKA;5#cQ@wVNv|GiApZcD+9W=f2na5;1$UDc+WZif7q$Br=PqL{KVFL_F9_s3xU-V zb?Ne&UV8l}T6dp%#pfv6`*nJt(RwLXUW?q5G2bW5`)+KZbYweE(XvPJrU#3zWjvX8 zaKq9?rCa$Qvay~LpT9tUw{h{e+Ib=Mt`SY*vXva)UI;wcSXgVlWS+8nYKi;V>n?lB zS9W}2jQq1>hu1C3ZFda*XOy4v4Dp?NR)IV4(+sm-k0}lDT$-gHw{S&BJFRQFIiqS~ z`BU`_r6#R%VU=lL6F;0v&OQ3muQ@h`anbwflbZH0)psw=b-F7TcE7{zPM6W0u-8#P zUV7z5%~9)EK85+AtY}zN>^H6XPgXQM_gK#qI(5sd`#N*JS)-UC$&2Qyi_^3F^ zeA){$>;H>R=NcN!)W6uMd;07B*rRh#K6INaa=35i1^IN<%?#TreT`r4@p}Jr-$(zO z@oA>44`yBc^wG6=)9s328T)&yGBeJ(_ZYU$3$S0KSmvaCOlz}QY&Y}XfXmx@?_3r7 z?7Bg0cbC|PP`zkgi3#i7BDUXo{QbjXcFqKm^&GEzt6uXNoSDC@A?nFTNk(H^*{X%S zPnXYMec<-X)P&FW8|G(kF(|B@`-xexHEUDf;dKeNvcx@6L*oy4vfmaG!V~lscC|>-H&SfvZ*LWe&~Dd~@Ak z?uVGj=P$z#+AUyj_h$W2u!&pz{EN=X%cnX{;%eS8-D#Tb+xmn%r_TKDK6K{xy-U9; zGdFv1vm`9vnVA)!AT@dFOYftx9(oq`drutavZ%aJHtE-~8{Yh{*gnQr>i2wWi@5dN z@6bwzO>)`iIBMiYR!n8e5H~q@JuSdCp!e^c6`Pmv#(WT~SU9iW&SDAsxn!AheetQz zaz*>*d#j0TdD8i0dmBSxv;56zccxX$pS=5E&(q43fA9XT)b?}A^?&8ErZ8-UEc?Gz?wkM5b7!xVf03i#A>^tol}ktdU$@I3$g?evb`!ylfpyZqhgI#tg? z?VxeM^!NMq?rqCt=Dj)RozB5-{*-UKfATXn-88S}d#>p@Ve_+wgK^9cy!0nTN6bAL zqApnycAh+0(YnCrP0r#7L5XX^%b$90HFC?{HUHT0^*{Hq zE#X)ea5=_k>m>Kp3*z=>T~Z34-d;3Qc#n9%5AljxffEL@0yVyDM(GF368o}t#U$E^ zH^s8{33s`jD7ay%DYDmdN=BhW%)Dzo%V)pjnSA)%`91a>-__ceX^T8mPPbbw@cq8c z&!_j&?)$r3I8ha$bm4Az;=&n4i|;t(JxrHtdbmc=*ezK|{OvLEJM5bTS-k%G{64Vo zV)P!{9nOV+7Nx0XT7IgoK2kURngdgA!i&QVk_$h%><($!TNbzTpz!TY$7FB*PUf0- zEcCRs(rah`Et*Xo?Y=P+LskxvYMFR7&*sC{wPw}RQY{t z=d;g_tGnb^xvPl2n`f;tYr)HJPzfCogVXD6quMud|CSoB#TbNgl$h z)^$p!D^7aFz*H!hVa;Q4(qY$zdo26iA|z&Sk~45}4%wu&yhiusthpT_=FW*tH(qaI zIT`3-&QO0&MrlE~RY;WZyE=i~%?%>o9Jj4vzGjeeH)gSC`2kOsApY+rTPNzB&VH`f zvCTgJY{CPf$k+Q@Yca(kz*jhJ=9uQ0VkH#C07+VBN&_5H;$zh|^fUVUv>{}FHF*FyeXhGDm^ z`gIn-5&Eza9zy5^{N?C=g#~xaF%8aV!C=t{FhZ_ z*SiRr41|B}|_Ye(v`1>rd`PHhpaTsc|aA_`mR`7jsyR z$}eYYFH+u_ZN;(7H{pr!quEP0D=|&fd}Xg2bzsH+s)g(JRe3!3dR*k$WhkNDn&Xxw zr@7o`r z&a2{o-n(diusCSyaA5CS7AH$V@mmoG`{vyGV|=&m<;m(*+E0zv9_f+@SuPs7*Y9&* zraJT9f_{!)8`>kXCiEWtc89S(aK$|%@jpuLENTpOdkng{#R3f{eXh?cO{;lTyVSJs zbb$Zn)>N4jpcQw-WOCFmhW`jcVj)*irRxo*FXDn2PqwRa4Y-2p3Aj*p?BP2mrML2 zHeXjxkFvH~!dddk`xeXhGtRrN-n2?P&F}GKe{`O1_`Yb48MVjTJY8&SmPJ6L%imITl(dCY@0hfV@(5BHqT4hEelu9Z)K9-pw}}Y zu_Z%_ovTmj_aqa=|7?ywUU4?|G39<>xXLv5+=7jZV+DVjbPN6KaM4fZ_`&)q<-^4K z_51ZECUY6h)#0-$s+erHwWj#qN~8AOs}!70KZ!nJEjcau%kApRQoe_@q|X*tGyGbi z|K!JpMG84bYxnJ8dhTKVOf~4&v)Q42RqqPA`gnPc3haJ2D@MP_ck9|r{&?}C84{6u zq~2|=Zd}vJqJH9SrOd0@)%z#+g}zqU@vUs>m4=Y?1sxp84+>iv_U0Yf7Bune?DwJ{ zcIGg>DsVp*_R^uSM9BFsX&y337Pw8!&r70qCuk~-*%3QZEN*<1X51c9c62y~wR#Po(-_}$+bu*E3 z+#9`nM|o)6|>g){p0z3@2R2F z(WpY{KFzP+r`_Bf)rYftz;+EK57!q?SN+>)#d=?4_1Qyr7oNJd@e*ro zVO-v-)|+w_yH-Tl9gcJ7udK=V!1AEhBdD0;-M&Z0jUNSEZyOd~=4VQ**sajomB{5? zAiM6?gjM#*)f)_@Ki{9PkiX!Ii|zg0SN2du0ewM>?R`$Fz^q=+2e0iNzA3Ga+#`K@eGtR%4w%ZYW%dsV6>GT`+Zj(di zZ#p3Lai{r$gFA0~e*GjqH~HFzC9j_LZ~1j|(WL$r#eOas%e|FeWVEU%K2v0#QC4iC z`ZjZWO1spFm27>vDkHh~`Gu3BwzVg=+~@79c*z-4+;C%o$t7+7M$-Vh<2xDq zS#xW>zwddm_R1$`L&jxYYM&UBZySBE3yfa(P4>UF#CE6mvHkU`aZe8D{MT9MBqUSf zrrhVaDC1c7gQ}Xt7QRcwuw=v8|3V5w1gX1?|R{0B7NNYy+y?J#`(~H<@c>KB#u@eoy$C1 zJuT!+p8IC6e_Ds$mhSo5e!+C3&)GQ#esHa}Hf5Vr+~Bq4m-8jvFS6G=S3YVrE_kt{ zZRPH-r45tr*ZBGAo=ysyH;1MEHt)TYca9z^-Co$TKRd^&{+&8wj7CfF&$MglIhU_I zWzTzaw;@dF)U2k>Q}r4DKKj{^w|81{WQmV%)1h`Ywu`^|mW8ID{#3Om_0FoVe7mMk zy#DU+q`lEW5n-n$9AS3kJ`g`=?6O&0o+Kk;%7#S<_?6|deheVR0tfrl0AE3?1f$TpY2NWI$P{jHEGk{ zLj`;Oc5O6}xNlIu&tv2Eg~fH2I@>p&dis6wf|U1RpXb_D?Blr9wkSJQII6lp>%sY; zutl7!tfelgY!}Xc6eeMFnIUKHlZiYUZ0$SF$lQGM_3Ibq;(}FA^_h+b9SS?8B)u>2 zu-cWoaa^epf3qCC6ZKc#YU1CZw(59oKuY*E)w#3p=%1WBJA3Q^-pLa72c3XuUllhtO&#NW++|wtGsuIfOtw~v!Mo^!;|VE9lhu z1u|*H1^c@6b{zO<`1jb-v(s$ZqZtg(c3p_9P11YTGI^bGeb~g+XRX_%Ll(brX%Sv> zWU1xR!)~9VFXlbGFiXMCxvwI6(p1?u(TY7k&pAyjVteX)Abj2fLH_mDXB^JwZd&;_ z^}fb$M{D-CCLe;%S1kKu+qXJiSjazCbXU!Bp~N6brJeh;Z`w?-SYsg*e3t3A?1~=~ zqdaz%9gwRJ-96_%(}kIAK2HOVZTg140S+rJY_7a@J6G?Ya#yzZhM4AiGj|wdIL!C{5aSoKZRVW6H=pQB&My|I zoBKRdqPcgSud)6Fk2YgY#^0y+{qA4)M8!w!$dtOnPG_I9znRNZ5m2_!eo{q|`|>u6 z#++Ry>!(lnE4DQ3rDLnbqgJfxo7YF$k$tR4=kPNUOMk+-k~*O$|cr+ zy^PB8;CJ~I{1Xgwc5QX~(bF?=gGNi#N9o4bWoe3=3QFF3Ze>07c+C$D`5pO(d|W&3 z=C-+e>*n0yIy8N&U5%R3HP>%%A1&CoH7Wn|u@k#0jh~)2op8XO)%M7wA7ahvRm_&J zPPB5BpL}uWlXc3p&ZFLLi+Kg!cdQlN^{q1gtf@fwh0Z;79d~Z5yv*LPwm#G8&Fzj~ ztd8pzUT2L|pWU^jV*7Rd7_)+-Ra(W3^9zi#*B^aywTk({JI7Zkb38kjY}uz@ut;a0 z$HItU&A&zIaeYFrtqnI5zZ`g)pKREA=-&sH=7^tHT+FPik6O{E@aBOWn~4bumYIx$+!EZwCJNU;m}|(f;@9UzZ1jY~>Qa z09zHfiCP|=}NwRfKUdRZ@i&8&V+4@30!-#a{u*Z!*uc$1*_ae?WtI=`8R zd-d~U*F3vv;^|N-k)-P)tQd58`HlcDZ&s~1&K-wi52T-}Y}=kaPxbUoLED!nQ=<%@ z-_f{gvm}b=+_P@gnR}Maf8!T9~X}Vf>(Fgf6cP`deJU6~z-Y58Q)4rQG7~@~mPG@?&;GW@9 zn~9P8cmuqo68o!WUiv-pYVVA`jCp1cw(MLc%Ajof;M(>Vd|j7M6rVV@i^156U1j-C zDVB^E8&19XyQ=Wi{cDb{k4l}V&-;}une8x7kLPHMNzMhQnv46N2IM?mB6ULGSOjyH zN!zyx>Zg_MzTK}0&WzeUVJnx@@xI1|>lZE2Et(^4cfw?E1EcV}%d?&u%O>(=Ox!DO z^)Fw>&bRZN=E*a4Pkr{~&3BXZo%rhHwNpQ53xwUB#&!2Y%ti&31xa!CV&N0kRV(zA z|DMO2{O|VWCDn^U8OxUf<66qMi5Tp-ijD=+kG~c&pc4^z-cg^}fHT{Bf?g=vkwG z3U4`7T+C_@daO!3)%IP=YbAfQ3rpaHFG{Of@7*zbl)Gp`?&`0Nd0cXz{8l#wk3<$Tn&%kn2<5axn%nLlqP46TIv5qfBv3dcs}u7Tj{Jvi*6=!>Ydk3 z@sTZAc_8jo{ki9x^{>ZI+nX)fIbVWNjFDfnAZe8 zxEXxn|EvJr-Fd<`$$Whmv*xqH<9t@hNtqj71)B%NM999?`Qv-$(8Q}n$xkO4 zX^35ZtFL{`?)#-!&tTi7L1GF`S7R?vPcu4{`RUpowctOuz4q-1o9^g%eBb}8oIn1( z&^+z2?WJT?Yw9oE18*ldKS*X79W9Pv^|a-@e9+*%a5aY5@v(bgUf^_x@MBBsm41R%=-Yom(cWYm;xH|JW_Ah!-ahDR$&c1k2WBGjbWZy|L{)cZr zRaWbfs{Od@={ji^b}m!S6YrCw&5u2B+P$$(^z79yP80W)7I6hmJiFW1{>jaVtrkfl zQ{y{~K8io`T73M?t>rqd&!a!==DhG#aOdQr(l(O=ZHfk;gD;=;;3>2I(CeMV(fH$u znWf;YRi~2ncD48vnd%+oURBQgj!)I{v*c0H{(9LCPSf@WR%&w3odkt!llQMZG9l_j zbpF%D2HOq_DD3M^tmNOeLgB66t=#REiyeakg@kkt9GJ4%=F9d4@#mJzyutS`;oo`o8xKW27pbQf;<+-w-f@w&c!b$Y9X#a4+$pLoOOUbg5?%nSaadG6|_E$>8j z)?X^$(e~+3zV)$ZZ0jGIpP6U9al?D-xRZMhe?RUue?{Wy6a2?mUk3_ID7k&*!R3RC zu6$b-bI4vN$nbBAUEhyC|LgXynWr`J{)gT5kMB61?aJg3UZNf@q{C?J`7CYSr82i% zxoF3zKfByEi@GK#g8-3pljB139|4-h0 zV&4^+RzB?wFROB{@0$5;9>pIW>@wY)QG$E79SJafbnUOwh<&9Q#5L8a{XVfS5` z2?pLxyY$%<=53hvmaB7~(Dm2X9!Kxd4#_;b>$}|pkC|1%yQ8D{wp-1MKIOVhJ71)A z(;umu{CB=qOAD+@G@94d5qs#{2NRK#Pq!v+J1jRzYVO}vvqR<;SYNH?nPIWXS3zQ? z+7d^7C8_q*Vu{_)oFB;)Z_~OX_44l>pXPl};y1B!ys&w{!?rlt;auC9-6Fp8&6#ax zd|Y+Wjp4j(&9Yv;^s02;-pg7I%Z&|cPTXv|(7o#3qW0`^zHDKOe;Z0OKB;}J4YDn> zz5lA}tnq=*0Z(r}lKJ;+a)r`ao~(0EpK9M1-4>Uc_Ux{^qMi4}Yl}1|tn#kpc)uy_ zo~Bi4r$`a=9rgK9Z#TCop7%>qyi=;2VwbY=R#d>TQ=EM53HNp{Rdb!~)iikJH-75cc($sZ(ZBOkuJ_dU^*@b%AKP3c zvF=WqLP(xdZ_<*M2O@H8Zn^879VYYM;C4R{d|vf{)$1oUjCqf)y_LNk_3p)OySsl~ zg|_l{aHbW`+12ZQvwqkA-)Vc=|H|EM^i}!o|Dk^W>O$qK{#|ii9icxDd@Kt&cTQto z;%mjc=lLHhP5jJ}7Z zriK0Dom9Z@xBkzq7ZblN)6!fS651TnalXf+!&3g>IhPMFUaIxG-4ng67coQ7>0k2u zuj(~R+h66MlVjSTkQDdhiil@Z9?y)NuX#fIJlx)`{`S9dU;gdvOF}2iVw`G9ZrAR< z8@WE{uHfX-tSbxqI>O@qFfE_;o=cqj>hgVh@yj@-DKoW*^EPi1e45|vBX(-#7S5}p zt=s>9b}HLfv1y5tyhHc#uWj4J-K;11eo{Di_u{%6SzI4(hpd^wpIRK5dtuSCw-Sdx zuRQhsYW2j>zbuk!E%kqAF5LE@`Q>K)X_f{vntwcXUC*ht|KRf9QZ~zW*Ya>WF52+X zX-(!N)6WklHhhduU$JWCG56TX=e{0fuPgp)^#5Fd$`#hQ2j#W9S31YGF+KZHX%{=W znZw-tvVgOf zTYhTqh6S7C`yTi0Kh}P3VdNp@*WacbKlIV_Ryljf zrF;8DVqO-VmA`yXaPKCKiM^NKP5$@Op}ujhN5Jz(UTpvQ&nFhsYU|IX^q`~ZnDh6r&Z3(W zHWuI6DsUo#bE0sfvAArj3h$?nsn;Abn_IZ@BJ7AUL5cWwKc z1s}bNKV7_b@^bU<@cDilegr(9$9rDq#Hl3*dZ+IQws)8Dy2amkbED$_Ha4E5DL#8G zIgYp&o#d!okdX3g_nql~>fW6`z~GoFcQR$JU0gc%Y^J#H&nFz(vg;Gae8Y_sg1)Bh z(Ea}-?~cMJf01_M=o7!=mc%%V1^MrM$HsA;VfrSy)ZAlV7R_WUS-fM9i%aj0kB+ga zYI+yls{Zg^l6%_jJ5?ys`kK?e&$)5GI#(q33f4M1#>C!wE3kI%mx7Ha7C%}O&GENu zOUe8*pQlf)UneSkuyd0ArjsR>SFd$Xzh?a->+LkZ$}5IzIt6?k#Ey-x_Hv(Jcl)(9BDbcf-i)+8^{%%tw?EKknvIQ<;$5b9*F*Q5*)U;`+l~7f*3;hX zU$c>~LF7bGPQ}Kam^EFySAJghJ?q16bAk5!$CX zHPK*JS>Dy46hK`V((~;@D+&1!dm@E9Psge(+>*uV7N4%=1OT zjWXS=#?#g+{)=4F-M?IS&ZYNRvI!?=PoG>fP5tD}47N8@{>ILm9kArLw&aBuN#!b9 zUo=<#mbZSF`7J|@BmZJp{L#MJ3)(kk*xYD{j(h#IlV#$iV`Zo9a&k_4cr@@me(7Sz zoxk=)oafe6U7uwZEh={1-)=B(+v$m=Z`89K7Z%&SNn|$t|K(Wxtx4A}wYqZG>03P& z`YT!_@o{NL$lsF1MW>V7`4=#)TW{-owNPN{vsbSkNiP!W@bPhOY=;x z;vBOLq5qfO34Rh(qBuijzPgu*_hx}}y(?tSaxT}>zcJP3>mAqYD#dagXH-mX@(I`P zXLP(7@+X>Q=fsRvK}tRkOxOP^+nn&nVD`_P zy00pecgRJROjz|&=uuxa%cQE~PT{YUFZKH_==9s}as9OHH8cOW&Uxtu;)|7@e|&ts zDfo1o-|RRm-Q{a^*WQkMHS410r0D%o2{S(B{HoPabAL8tYMkT39eaN~3U-!bIeT*D z_Q`YJRo`Kinsd9)$WdypYgtCrX0h{yS~4XiLP6VQnjZUnh(Ah|*RG0)+Kv);R3+O#x0J;YYnzfj$fC7SExSEmKj?GEfOsl46Qrxf*ANFXdA zC%0k!oT*!K95Q|EHtu4{7yYbkIwMde+mN?+{my#ZzxNr>DC`qCrP{i9v%r>h{F~-3 zjaO-7`SkYo6~=~Zi<~8Xh~N5CW%DyiWyAgiz4Z8&FUpCJNB{i@dv!#vChe*?#e0SJ1xAUyAg*R3;}$}jIPnSSXZ(>V#QswvlJ7z*s?EchuX zaN(c+?}tIjI!k8qY!qN|o@H(0f2qVUOK5@8sk|RCRs1LJw(sQ=KQ?`#Xuw)wz2&Zd zj-GW9SU*j0m$=)KZK^)8;^!Y4M;je3=e7^F>e$-zao*7zZjm4E2{ExObJ<*_XthK9 z-Ye$k{WcLn3XBT*_xEgI=wHQZ@i0UsvxG?~`tdf+sBrD;y$m;URVOK3f5?0|?Y^uZ z`~N-8*$cO}(dg|fAEV|N3(R%M`-QHZ!1GB29EzfIx zxv?kPWx~!@3q{r058drd)}9hhDE2QpwKw?g9NvfJLbjgI0*(GOP5Pa3Ow2o{Znl&? zM>{*8tH89SZp_Cgxvcx}tln$eo;#Wg%Xh8%u)wYGyX?HV+VUTHxo@mU44o5P?ejNC zWM`XPv0r-hlaw{HtN2&i?AW4ck`PDDX@+ikb7Vcw2e2 zxzV=cHGS$G`#WO%x%Yl57djEm&L8}3@r>4lt7RwWUa{Uf?UqBIyY|>sXiL8 znQ3ZO--?LC?+YZa-PW4dGEeuy?uSD1Gj7da)tT}C%#6H!3fc_mE87jro*e#VY{gXe zeA>F3MOp6CKCX{h(c@`v?Ph&+?)CbKp91(*vYKvtUy)yTi9P7aHfB%0t6!$M{IRN= zy*e}DQbOhS{xgmT|LnVXbFx|c9>22(f1K!LSeAdGuQxk?JrqXunIKN}~P>)AcW%ZU!!S z`{?1!MI7HU61hHFDo+X!f9k{}_F8MvWX2iaPsrcm*w^!UrGlYOwOU$;7&DiiY3$su zUzZg{TCY!yf5{oc=%FybjpDeAD*_ZSnHExvz!2zF4j^fi+oi%Q0KgE5FvWR$i@q+k9#l|J}E- zS9z~yrt~h(c$avlv6OSZ!Rc+uExJZb3a?EyN-O3Fs4ks5U)-!ivT6SAAO=0Z0|5_~ z>NfnI>mamwxy_c6>=IUI7g_6X+^Wp;&Pg_vRXWU%+Uf2od*Fuh`~&$aX~*2Z-)DNx z#5|9A+Z%x`f(9DT9QNn+&JFmHr~YW+p76P~tSo2Gt$+03KF_gFyWid8(0wDkzmM(j z?yd2;rhCJ@U1R*VD^0Cf`5U?!r#h^&i~V-N`)9llou8iSM4}t%yg?zo+im zd1(3F>a&|3-xj%7`0C+eztD*_@A992JzKP*cBx0Kz8mjbwulqf9eX{v4wp90%73}y z#@at!flcCfpTu9dce*V5?)>APT(6E_QMg>TeEOsRmuvc@voEHsW%uyfa9=m^h@Kl5=<`q3;GyMooXw#+zw@cOjFJwj<6*WS!OTz6)*<1E(? zv46xXS0x15x}04arQYA7ohtcXc5mQ!zQa1at~t+FJk62!;5l4)t7qPA@okfT3GbYj zI_Ib4|E1ZE&hO7?F|C$izE>-uQ~RV`_GsrT6!K$LDcLPaOcXa7x{mIY!8^!1IUhZJ`$eh@7^Wr&O zaYv)fPf^j!U-sP8VCQ^iqW{tB`e|{k6}>&*@(NXYo_pL2VplkyZo%onHKUZCvxc8yU_>Z^!bFV33Go5B(N z=HQKXmAf~+8CsZp15Q6^w|bL$Wl|Z}!S~1X_PM^F$Z77rl}EMia%viD!1dWNm)a)X zd{=c|M<%JDBmX_`1?4O6oW3PC{x$d*vO@gGiI?%NQjAx$__R~HRG#U4*7WviXXwm5 z(7uS1Kh}0C;{Y>+jZGY!) zee1){{{B>U&g#33{CQ8s_l3`2aVP5W?&VY4j8e|*c5TV<7Y>mLn`786+nZ9h@95-5 znQxcce7`aDh__L0Tkt?s-wzp;4E@*jP&;n$|O z+NHB*MxRqvI2w7C-+9TT*Wu^h-F@G!d}b>D3HNhiHJiL#y<|h!`n+rZ{XWT2%n_s2 z+3~64LT-$`e&V-^wq|xe%RA3YmL#%%n{}r2(&T-QgWK!w2)Ra=Ej|(0Et2nN$v@)P#IDori2wS>|9;0+ zx1To)&&qlqbE<#3bIR8pK9kQcnYoEAzdmCA`n<9#gSm>Hx90v<6Y!rbaHIJq_a^=K zd#~GVst!GUOsC|o`+Uu_9p^UJ?svVmAZDpT^3!sE-HGuG0L?;g=gu0XRB)_dvbK0h1hL=Zw)^+FWgb^y3!=> zUs+UOJqe0acCJwenozVSG3$DU0lk*B?vT=};0mZ^)U zt(E8D=4EoB6VAU-p5djH?&#y$_+Z<_K8504@{%%ze(cUHwZ_j+K4*W=W6&Jw=j!}i zSa*8k=Ngyk=e)Nn1~MlkaQ-$p#&4&z>Y7}7+}vb&H}!x@@wi2Extju27!0yh%0hu;m(;r#hL&%k8tdPu4yYSBqs7-jyL(v3h~q3u%ep6XssHcKDT9 zXy$m-UY*xdlU*%6cc4_DxuseCi_JQC&gStMyAlYc2+%-?PP0~0h<*WJTw)xhjdfziL zj;&GLuE!a5Hh)2h`}2=>=f#dYWq#mud0R8}pNzOonsv|B8(jNcn1lKjZs}Z}WUkav z@9@vuZ(0riqz_R6TOL?F-urL%$ClcLs4dS;8bjxIoSCh@M)TG~1-243jue)TsW1Ls zWVYt>sQvA=peSite4Verd)05ohJQaKEj?l#`slQ|K!|6%eh2$pC&35b{`D$;+8oLI zsAKA0Hfdw7a;}oNQJA7cnpK^Q(t9lAg@E>*yjqZRbg?hC|Pf`{Z)W zX=Bu#@j5Yht7z9Gku&?ZOqwcX8GKQG$IbQ6?0a%e#da#(w6qtJPEpvhv&(+jfk?9p zZ1dkoyig1LwlHq3cLmqSMf}zud_U-}nYwF!z|l)~hea0&S@BJk5_=@Dbtbd(@mUkE z?%7l7Who^8*``HBZqBm1pSB)bWK*zDtmEZ5xniNX=`M%0eL^>CeeFn7T-Y&L_sy#p z3FS;vI(KnQICkgg`PMzr?>47=x7NIODqXE;`msxMw;U=Ey14(klkB~y^bb**(K5FT zRR0N_+E;i>^5o1zlAl6<--**-&me9VmN(^F*~I%gi#J@~T-4hZV`j=VS5(8xD>VM! z?~A*=SU5B%eVW!3yzQsF-s#|2g~s-aXV=OL);wqXdv!14YNIC+1)*H|yP6}^8KmFu zo!7kQ*r7}BPrQv+J69Q_F3ZL~U08gkk2FuPOQ^-2RWcVoSp5kP+xPWLhWith$**1J z+i%&sE~Qp^!N2{L#vOG_1zj57-CWq|8n{^6$!LD?;{z6Q7p6{Ty3DXyTfMwed02yx~w3(LuUl=!Dm_}u@pOJx?foF6kdIqHZWP;xfmR`?^fZ@R{nW%tr^ zwO%bXPBB!pm^Ry&ZR51b2NGYcsqxSWuT!_MZCxK7+0zxmwoP`+{^#xt{0D2^e_ye? zq1wyWclY*L543f1c1{gaYFNkE+JAoPypYY>Aq%g^9F0l)J3I4RMCj>v(efWmr@zx$ zUlZ{Da>K>noeuv`IoaG@`zy2QeVD!N8HNAvCrk`9nY?7{-FK;3$?5MFnynL@a4^Ag z)vm_3?WTNE{WXtu(-uZqfBf_D&F===dzT%OyQ8+fmNgaN^xRXdwkSevR>t(;gLO6Y zyba4t7Je@=?@;~Rz1;APwdAJC?d2!D*8iX7X41WG-T${c;yF)VU+_PA9sA#_=ij#7 zUHX3FgiQ~*UnlKab@|Bq7}4&zo^m@IEt{q%MEy%%Ui9_ERo;xJ%TIr{V}4+_w{82m z)YbhHOk^U|p1otSvk|{~GOwWPZKDGJQR^zvA9?!AZVE~;ymE6>_?iB&c;Ys}M138# z_|C2F8yAcDcHVm%eNj_kS=MVF_S)zEj13P2Vl0jI3fBL>H$}p9{)xrY`0PGDj$%5v zar>{Y-NmUWZ^C2+QIOY^?ed)Ghvb6?Fg@5B2e<{s+3FFtwo`oj}t7?~n|xAe_iJXJ^O zW>jtM)VG}7bBeC;>wn~)dH3&U`};Yr-10MfZf5SVU6!^YJNCqa%+*zvX9J37t?>UE zSm`<2)7U7UTO(`1>;LDbs3k8{Un}mruxDOvSHls5FVU-JCj3c!ACTLAdi(Rkhl+PL zu-YiA8^N?$5W+_tax?f1hSo9<{uIls;B5BKP6)Sdr4Z1-NKc9~5^F$Z4X zTI<>LX7Py=yXL&yf2hZ6b=S;gZM`2~`5klq7Vt1ITi}C!@G--qPHHzDTp!-Lv*cf6 z!j!YjH(yGGJa<|Z7_#L=dxY+~gZA&dnt9)cWwjhCh~9R3%8GCCD!W;^Z~VIPf_c$S zRj2ol?ypD@%e%Dcp2@7Iu?)=??0mu>;@#sn6guaItqf}pGuN;^k(A%L!@9N2_U5G+ zi|aBuZu{0w^QraJIIhoc9lKVcdd>1R%o`QHv)Y*1tz5vG6aPPX*YyWwTVB>=xu3e? zt&y9v>b!Z!*IzuoZUqO%xS^Q?X6Rrxu$*k%kY^k{7Pem zM4&z2#@X+#ZaFoF=}(fyt*c*|=k5|L-v4g(a(>Ild6Fl0@kqH8CoW3xe^~Qp(Jy(c zEva+utbDq{4@_Wtt105n74^euw?)G7J9qDSIPaHZER!}&sA+i1C6zZzcdxkIXWiS2 zzGS{`w!bZJ({GZWKXpY{f5WBq`HI)We)eCTcH7xsT$8=!mWtWaNblz4g^M4g&W#8a zFfreDn%9&VB4oVd z$Gm0HGc!8Ud$Z;z?~#h(emg_&RbQMMgSh0D|JtdOw|U7_@mvCXJ7aG-Z;JAwlhquHz#DPbLIZCU*E-XGTO?Psl=J^E>X8dY^~C)MoCZ0^2(^!nG# z$_a;ZZPQ+UJH(P&myz*z{>xQwuAIt|ytQ?Lk1iwUjagFe5`p;-x9oc5`RD+P>)g)w z23)dlq(o)%zMa{WpmNzywP%Jxu|a+Kj}Duo?YrJ+9X)sUYsGVxrQ5R(waxnYaMl7Z zhEoIlmi~6)T>Gkpj~xrOS<{x5wDLW$Wm=f_At6hpVK^$awLSQS?VFQ#8VVn#KQTMFuX~@| zr^s1(%T#q1IK78nUhw@CMU|Cd@8=gKK0Mje>0{`J-vIAa>Z1Jpt{(( zH%}yf;8@&tw=qVpjd6wfpPvrz9qoP@Y>m5eE#u8xt+P}9H!e+&?lyDwd&|Gl?D9$1 z?5$n`mCq+}Tz>O(W}Bmm%p|tA-jFru`0>%qSnFVVr^Dgji=|& zC{b`YUbv@a&wAO5r#-8qFJCJ6E!yR6m7|-!O=`>j;3+@Pi7mZT(em*`VHAh^M^-DY zi_Ld$mUq0_e~IzHf*!$=_aVQ<>X|2gE7iDatg%|{_PzDZkD}i0K5V&OUwsjiyY$Ay zU)wn*i~0#pm$UvhPj27#HN`8UG-~Frm}M_}yXVev+tM}r4AYisHT_*OC$8?)^MvD? znUDA;_OVYn$6)th-T4!rJOfQVTCFm@C+b*gPu;6)yD(;^;H)E^nSG9Lc9>MxyjUY= z@xHe_Tzb1nrj-2a7rS|`mj^MG#BJ4FnZGfvP~wTZ&So7`1&;U`>st!j_=VNaT<`%`=uUhInPE`uci#6Zrwy}hJ-?{Mi&j!3VwAMa2lAY7_ zY3n}q)CCKbF1-Jg(6e&;!TTzP6>P?HYUh8FO}M#crL+EAe!2W*e>UDakh}6i-=v=p zPDJJF{hwx-#Nayjr{9}DT@N*xbe07qhzIV{FH25!FzBjTHz8M*UC;0BhK38t+^da~ zl77#%Hah&3|J}N~CU5l1W+xuKcIqR?;kV6Z;YW9NUHtI%=IjuYDYJI&IP`kkQFkkE zmKE_w_}<)nXM511Ytzd73IFC>FPSA+xBJn|JfoHb*Z77xIkKIT($88oCz<=zrk$~? zn{-;fI&XjHgUMPNX)oh~{r*2#VOV-5u0-@u@4=1V!_$1urCQq==od~tuk~^9)f|b# z%(JKJCy5I61=hI-OPrUkGFp27%%V2smf&e;KPE9W+!niAA+74q(Utmcd3&}4U&{35 z7oSGe?2YnXmw41jxh+g)wP$$PshEe>0*|L|^h)|~RMj{ei@ z&#k{JW1QgRO(?!RhdQC2!-tEu|5{S&4KT0HW-vO;x1Dfi6G$RiT3j;-2UHevZMab3Bi zOM`Vn6E~`@&hoZV4=@xDx~r7AqU?pt>FHNK2hF|~C%DD5J?_DYqi0WEpLpf%`l`ge z2fXrkpStK&^Yfy{**m@Syd*U;YI{N%C$?4R`t+>0J<&#f4X0*`XhddsQ0xV+2f=&T zFRFCg8UI+!*BbEges%lXNqh^{xO^CDF4a9zdl6&Lx?RhOe`)K2$5qnW_c>TBHmLrp zZ(JTQWtP~!i`RCq2|v4Fo_iFB-?Z@Gwu$*0Zaxcc;JEUo|GZS=3NfdNsp_h&q3y|U z`&a(ZVOZF|sk;+^ucD@{Sbp~n>s`w$(Nmu({hez1?|o>UNti?H2MrsG z>pY*X8lO~;e{!g3^=g6K%eu40FBhv$GTiI`=+f`_XVbjIzSz4;vOWs+=U$=W->~9j z(4}wPa}D>czLT?AR%5NU<3f$>qda}-I(yG-U7b1cz;(U_y=s4@B5jyVE#>Fv{+_#P z!KSUf2FK>C^VC??v?KBI;b%tt3CleDR?M4{BJXw1aFuEDsrhE|6W+VO>H1-EefOV} zTO;Cx<@Y5f{Jn65QFg&LH}{jPll6E?0@d_{o?c6^7r$%iCw5$>=z;7v#mt_KmDRK6 zGsa8Tl!zbsDD9T+dGz|Uv(fLKrg+$_WjUU{(3k5_#pYQvgceWs_Y!nHyXdz39*q>) zQ#TTImi-cA6a8D0lYJ(-HF8$_Za25(tCY40cutu$Z%TuQ-o59yy~-?K&C82nf4X$$ z9D$GvE{oW%_7>_?}U8)+HmA`-_lK)pJs0H{P0i5Rxjh~OvaAeeMM>FpVm|* z{ruN_B~EMgy=(T1no6zy{ASG4Zi{|;C~`{u{3j;s>YqHHBvJM0^8*=G`BzKU<2_wef(7s2Ws>z2A*k*V)lXxSXR zF+)?%(lEd6a;{qUA;aoJadT4d27h}t>$8DI4R3*-{sh~nKP;Z~zw2?$nq1u8v7uT+ zv~tq<4IZ-+v%0)NRSyhouialQ}fYPrx_fkW5)4a}v^)Do) zpZ&W(g>hohzeE4yE0~Xe-?`!QrhH~up^Do~j{^2gn<#hc{k-dItmjUD<}eN{boyqCDpn`2VeGy)G=K9et~>26 z9XpKm+1w`|nKJM4h*X`Ii0la~5%Z z;A_#%B-ndrzM^c~?VTJ|^Hma+l;#|j2$pyhduI_|Z9(>5L8dFJ z69f0Hf4sOX^~?{Q+#PRgUS7K^z=$?a>SZ{3G3sD@tL>b3m$IfW5K=wrm9H7Y zEndO7pi{)P@qwcpV`A zwJ5k-$0uO(_0L~|W(t}{RvO;hKmFofi=ej)B^KR~sHt?>*Y#YaAnWPZ_ll5ug^WQdi-@>wSKt|wi=nFRowq>#60QtLCF)WXKz`$FN4f8LBkE3Pc`EYY^NUd}(UI_=e~DMfpkqO^JcT8b+yR7g8~ztGEf@`}$w@mDT< ze8jyq@6Vc(Ic!dm=k#~nw|@2f!J8KST~6vYlT2>EX>F4J>#@7|lKBc3Az$bDOyW9; z7pL2XXkPsD+H1B=@U0X3`qmz}c=dV3BR1KOStkR_Y)rkaURQrV8akb`_{9ggEzBM3 z*>*p8e8ptvYmaMlmc8XYX^?*6OU1WILQa)G7weE?jS_0*-%GN*H zylkm%8$;RDy>_&!p`R$mSocnS)i|2AW~Q+ z`S!?*6bXLM4f+2sZYa~A^l5Kqv99_=J>NHRX3oD(oIdjAwBNh0LR(VW&ewJ3?uiih zS|s8wKVwsO`QF~-?1ZTYqASJv+49!7`}I7Q+@AW9zpABu71x2qN8*eB7c6vt?5S|_ z$#l;NTP7zfKADrU=KYa;#>iLJO>;LbkE{3g6#Lipb+z&dmxDS>OJ!W6C-Pt1a=|io zLZW8kqlY>MJ-ff|^{aY3c^99i-Q?$yS8N2>4kfD`I&?;u`~ADg-CKQrA9P>DQ?}%& zqtni$m`^d`HQe!^6gDbvyDruBT`tHtNPg!0cXM7H=_vnrJ@>pXo5GJrzZ<{wm(E}L zV0FFk=7%%CzRQ?%=(Km?H$P8Kr<+B;WtQ9*lRSA_WcjL;XYunk1sTi43c31n$1M8) zFGb8tlHtTH4T;B3HnqFg$~c~PJK+3e;sUFqS*iCbwmm)*rMqtCxuyeu4Nh79)~aXP z-n4$B{)`RFxuZ4+TnO~%T^Oie(p&0s)}b@#N#{Sdf&)b`ai z{=d3BVjM*wDw2<1e^RbG)2cA#l;X#)xhptBouqjmuJ4sUCla|!?qOvz`yKm#cPBsN zIkD*Ao9JkvL$ZO{Av2SD|1@$5`TSQn$;lTOxlbrt@M2;5^Yzs~=52klqi^r@b$vgc zPjqztT;En4KlkhYX}tHMw_8_Dn8Z9SGH0s!R<48dTw1O~xwWyk?7pp-FErClebK(A zV#!^tTiA;?X*nyW#mA;|e)!|v=C*X@UYWl&=S5<#1fANue%G!wmu*gD9N|rid=Ph= zpKemgI+T+C-0R@&i((<>PESLdg1R57B4~WKFLL` zIyR5auDF@OePCM9to8N`a|84qZTFn#<$3XycVja@x5tjqD>KfdU!7{M$`~O2;^@!a zpJp{Mrrle1yjg7W&NpoJr-fc_XsfyWWKYhND{mj_swObM)GeMd;bYNr_GZH}LFIW@ zBz;M_>*zzvvR4VBEmF^{ZZ^&c`?OhD z;P!UST*j$9Edt*1(#!mFI*&VKC}%y-H{EpjiJo`spKWJ+s(0SmaXwtF^!ioDjLRYC z=krcI|G8Le^T;*Kpl&}LHlNKt3*jVs+6pBu$ z-{#SfeSa$J`tk*}s!zmQ!W^3J|yxIDBS^I^3@8>9mc|^WCdq-!-3)T4oNV!qGP8D3 zo_BU{YuAnVpwm`z@v}EP%>8!gxQ={BIP;r=l~1&a#Z!FrWSZJH?Aq6&QJZ=-zc`d)cW2ubDd&EkzC_rB8B>)>%FwShr-|-nEYUfi~X`=`VJ3 zFp+O+4p?#jx!1q%CsbG(Oc)C9eeP(#G)*<}>(Q;*Ehj8~yT15dqS)tZ;G(qtQo*C< z&8u&vxzurIx=iVMQt0Lq`{&5c%I7{N6D{Yj;o7zSPHc3qZm@)C7V8`h!QJ=%M@u^H zjXAXQZS=Yb!%5nd?GF^ZZ(`q;EgAc%x6{`Dqcg_6!U4h5O6SsA@c@n;am!>q`UU z`MjL@%F>*DHP-`Q$+%DBRJ!(`<=8yW#PoM@j>{y%m75#y=0{nk>0Rv+eJEk=dD-DD z>r54C(bHU$?E2zZq0;(kjnmvTm-&?RuX1DdFkrQt=(E|Y|IL*+ z;VpWTl^O-#Zc7eOe%<&${ixaf`^%HXu5hjU^EYtWrsd8Or&bir{kZ0I{quwekzbbR z-(Wwvt^auT97D-9e-Etx%3*g^*{K7%_#D5@v$kYo*ic`A0FQEa}I;^lgTcY=XxGG^z7qSNSfYmSX}YdT_*U) zshqzLY7{?j*E4wLuf$!@*EHqg45n9{Db^BaZZOt7JT3b4x<-4A?X3X2wc5;IOB&VO z8`N)1IXU&+>a&je;b&jYmEA2-bJU6X<+Ur?JQb`bmTot=^U>$$p-98(kLqPbrV$CN z%3X`jZt}QrJ|u&G%OACv*OhNNGT*OrzkK5LCMgN88xomYeXUQNv0XOLbgt?tlj?kB zckNvX2dD1L@jfW4H@D$VG1rU`o^v^G!WEXY#s2-Q!nSctit}dv0s9xC_FM0U- zw3D|4zs=!P&Yp2Jr02%tlgn@UbI5&IkaT+W&6z7T?xfAkDqeTgezSO*y}*%{lskV7 zJ~|ve)hs<_kH9m13z7Y9=iEN&b8AaiG%pA*cDrfx^yA5=Rs#FyG;BMoZ?Z>8@~~0S z9hDnaEg zu;b(>(HY9RHILW(dHwBQl4BkcW*!q3pU`sq|K-Z#)-$?p?pVv5_Ow*wW6FWrRo%)p zRhjDz4urForSviGIrV9RWA6rORokT^zIFw3TDmv&Sjs2Pd2;XCq<_g+2&UNf49&L*89zgVhh|BZ!Gn+oBOGG z&bcJRj1^Ov+a9j|@auQjN7Z+Kj2DWml&qd>c`Ne$HQTo{kfP1^pk zd_Nwr+{!jJnX@lq`K^XYE064dcw#w&T;@je3%U!nx29y=%DBdH?!rR7%sq~xHOmt> z3fC`HYLX2Rjk)f;d+*$}qPidU{rkJdRB6whyE5Win*>kq^9b&bH4d7-($CFjmg>pk z5^p}KM~f;0e?1iUo~<_fPRYw0KIJv}Ne+@1JzlHHeY&@G!U?tu6`vXN=3n?GtLnS* zj6qQGFYB4d)g-<+NdMq{eB{T6_8aGqTfWlb{ytOg(yE;vrd@sP8{di~i*CJOy1H7V zpY>Ki{1+p=-PGJKzc2n5QO$LFb3oiW z&(lXgY1t*OT6ik^e{{))M-Q$`R)0R&BOP{JEY{wdXT@@7|E|*>uVy%#mBe4QPTBWj z^Q~^fv-Q)skGC034yfHFow@5FcelfArS5N4)0SDQ28MUJ+0GG2ZB@EpAsEdw)zN+a zJchb+PnUnt{k7=zN|Tw#s&)j&8?JuH7W3K8p7rBewi7!9xAk27wr9FSyG*wBpRgXI zN8A2%L}~uX)L8pq*P<3D*4YbBo?+JtGFot`bK&(R_ZQhln}6f@*|~JuhN&f*mnA1| zIUeace|>6p{jaV58yF^}d+~qTG`rIK^FrA*Z+&kuiZ#uev2p3LuJq#>(!D-yZ$fN0 zq#fRQuHdZjv4+!~KY9!lG1a_G-m!Y=`?OTz4`L$eFe?C{Gvo= ze^cJW8MyNU(}c+!Z8HDFMG9;dil4mW{F5)s)2y)iS+RhX$DES)EPiGh904kFciuSd z4uAUnZ2Of(F})V0GfHR5S?@Fg0@W7e3OmbZOj1b0Nq zuG0mY(cd-AH=Z~V8fo&Am&bO=bl%=M8P_779xC2{>BN-k8-J#xUtaL=wC9Y!b!M%7 z3w$ore4NaFw#rIEd*R0HH%~>mr1RvRH;c6`qmPT5Kb)FXU*=;u zbD4iD*pZ?i- zq03cu^X2`g{;XZ**Do-obxG&Z{mR#rbl$w;UiUp9Z{gaR)$cEx>h3E4u+=v0!O^+( zpL?%L%HPl4vnr@$^OT~yuB%?ITpj&mby4nzlxb0kA0H<>eR0hKGONm_}FZy!-m1;IW0beLou|Mp*K*pWITsNx()XteE}C!)WJ5+wunc=H+tl zPO#2(ZVLLTRlas>s@sm7mfvhK);F(*TN^YUoAqQxdMo2)%c(xc%aXg#E3$pEIl8!e z@gdf=JTG@n`}=)eu=$=p(kr^=%ieITX}_8A`cTl0+5dxYtW6NScE2oEm)SbB?zK#tt=G+4);^YLHitdM zx@P{=OMcvvI$eE%dWvPPY~rR`IfdruyDrQy%RXSxQ~9suu6NR1J;6gN`<~1ad9EOI zs;Eo1`^1c*+Z?3_`jUQ`iUcawEI$9n=)CcthYt5Xopb+SxFVI+>z#N1y{md`C#EfM z)K^qwD_~Z2*v6h$^TVC#LSpB=*(Y057#DBx`&oI9Vew7{^M}$9{9` zuX*7irVPI>?&v<_m}qDt;?T9{9k(6F+?l0muaqqRnOhuH47J%`Ww)kS#83C}&Q-U| z^RiE0J7@c^r7NDnRCaF?S5VgGlKV-OeQz$9PQR1BdW)-@%BAzk)Lo&DC07Mhy;{jvFXS~a5H3CvGE z?WXqRPSG8KW!KhT-L!m?o6PeY7N6A_!$W?oyy@Y0vE$9DEc?=%(`Y(4ORi3~QAmr`oO#%$^jyiuy$O#CJ}!yU zjo7Gsazoc@5x%@!1wWS3;JbTwG&Em)EGBVFPOx%;s^W_a=B`tBp5H0o@OEXQz}pb# zs&@~sO_o(jGpTJ-o9BAU^`xJB<{j46i^KQk73%&{5?J+`(WS?HbHsUuOSLaP;aA`~v6lzl9D8{ZOBbqw1 z{qH}Vb8N$6$!iX`T4Ws`pIZI6Dn2{-=$1({Bt68S*3#LJI&{*E;`lQI zHKy0SSjPRT_jtI#_0%1|bE6y!i&jx$X3SA--GO>t5L_9ldY;XZ8Q9_e&&RUcXwhD`L@! z$|wJ;pDaK1EMcB;WK!JWlCxeHoX>`>683R-5Gj>jG-=;=zqR?&7i%Bix?yFYy2R&( zT>FaU4r&43ygLJ3Q>Bh{==WZ6*0t$4Xt%s0{b%RdKl{Jr$mv^O68oO$ZxUFvW!bcY zfhLR!dlzW_5@Qv%_muk>oc{m0ta*dgJKu9wS3BND{Fd43wpL}q)F~>z?eEMFI6Ud- zv0Ex9RJRufGydQW(hzjkqia*?hgCNyI~_Qb{-aKFrf7P>OR|cLTmZ454weMB1bK ztcAq4JxdAh{n%*z=fJiPq5A$GimUz$3Z|d>^K?yo$NIvu3v=7QH@oR|Ou2vdqmQ`n zKd~ue4Q^->=Z6$*4X~~ zet3huYnIeYt9R=ipJkRrO%Gvd>3Z<$uFF>gw?lriUXvXizT73SPwK&YoD1tWeV1mM5ElQ6L69-=O~vBJ8cxRwEz1|$6i3ZpzEo|wz!RAb zrgjhiDz7@7oc(`q=LC){zT@w_dluHpzj+p>;%5~5mNB7Sba8>a4Xg9QGixV3+oZ7O zYEy85>=MB}4H1twDx?Gyd!7(ZGy81Tp_qG8{nX`sPc^xNEe+#Wt4qXRD7QCsU-0^A zh;35tCzDJO8?F_?vAxc-OCL?=F`YA0=d%;y2$ETmSq;-vYS541`MiF371dbTzctY%fqUWd=*}4n zl_6KS^Pi@)eEqKf0+M*v}3|;dfT*`E{R3_s)ke`6pohcG;t!Yi<=W zTW?yy<}i_`^+D4W_vbwPb7wr0+g-P1J>vrvHJJtPbq~LYS~+#y(ZgHB^J5=0)bcD0 zwR}>y@TpN@deHVSG7cM@ci)KgS*vU6IPH4i9SQaSLTXl?-3G==9^v}4ox8rXl&oV7 zU1}fmd;0_T)pJ81Xlh5Pvwl~e#w-u(;{C;Le5Sh0@N_jX*S<&M>w*#X@@HrA@YGdyuqAo3hvK&E1Q zlZC?V+FiTua=PZeSnU|~)ZxZe?pK z-~Y@Z?Nr)&umI# zdf3M1`Qi5J^0+-O%WtXg(*JoYQe~@rSX$2y-RlZ_9m}uI(+U4|c-LX+0}QF#J4{yQ z?|2@bI=fV@Yo&0eY*lLZK8FRGYv�R4!5bam~d>DLd|3a3jmo=P&ydZ`?S={lfh5 z+`>&>YgOF(y=9dq7aTEtVk=iznpS7|(5dg6S$D%@wRKznyB8g})*5s%=1H}nvSi3Y zgC`5W%jF)D5C6@Pb&!Kw=~Y9>%m*dO+1u=7*9aF`SnNNy_nBlu_xuK}usLDsOd+?s zEm(ysPPv>-z9#P%{)R&^g_GTS)5qnNjo;$`TvEQ~A$RtO#F=|$Z>OHBQ{MiIS5I(5 zbB1NiG?v{T{cqlE_Act45fglPp2uCsqo$J|?%i@sgL%I&&*^I)JQ&sQ8ZF!qJbf9r zMWNF9_v<`FGD~g#L|08Oh}-B!$03+TF>N57hL$p=x)Y$()OBcn6u5I=H|AOQ!3(LGPz2x zV5sGAYIXX`sOz-+$YQsv>5E@EvKTMEoh7(^iIR|8@~?|?9)5cN+DAs;BWU-Z9C`l_ z*EnVf8=Xsh(R6F#to}7_NhjxWUwZniY^mD6!iN%n_1$&zilj6yyo*p=9HC~#x;t#Q z_^}_lQ!d*@J=OJ z?Q@fOCTtXSI%~dav3V}9S}VU|RzpbF;!lZkm%eiCUbIiZuwv8Hs~^(K{3n|S^sfDP z{P$k&SjDE=axv!GhC`<8rtz%H(~oJMaXIKH6q<8q@|`)kPTk+;A5+zmuD_{t;@eU7 zO2;ZiagK>>^Ma0_XaD!*^M(V$W}MaeUq0;r^J?=6{s~9T0^UC=zQ4oFj-jlm#(QGR z@{a~-Tkb1=w$0;g!yA8-V>?t{GSe!4pvk;`kVLrNX6PEI_Z==t6MIS;;_@> zz|G{Hujk!YUY0nmkAHT-ai_Tj=N8#2g)q)vux!<$*`azmyDlCG*t%!?_gKrACdVm^ zZfmNRt_ftRI=p^OwBynoX5HsqC6y`ncz6Cfl=jSG;pvtCWFz9@4&UO|TW~DD{)bp| z@6V3jbx9l6v&=uGRLuVWm**kAw|9OC{rT{`Ji_bZN%mz`lf%QUF9rS1Us|*%&P4O( zzEXvkZ!h+U#(TYgtZOjM#!PhcB{k1mGm;kH+ncfTc2|iY2S@h2HMXlA4E(J++5Efj z`CsDN^Lb*!j%Wo<>m$6TS=aWo@jSXw8ksJ<#ngWfdy?*{OO*^YO{S-7wtY$uGeJ3JQIduZ>UD#;mod6RBNd zKedhB&NlqkxdTxFJ7*WKOp5*L8EU>ijPIJyq156#W~;s=A7Y>TuIr$**6eew8`N@V z?z!&~YoTuYdh*ohpy%FvSJ~g#q?o=q>tSi}eC2Y9#=X_AN~+oKr74{kH(}A6lIt9q z>bz8{>~J8HpX#ecf;?STb26*;X{k+KW^{gbmgKWzOL}ULcTB%J&+V6XXv*d_q6X6s z$_7gudceUdQqVuMdV{y4Rl&0xm%FpBh1hI=a;fXhjpgUAOyTc*^ke3^E!KfmdD?Rs zvMw9_yOkDwMfX2j)T`?MS?>k)w#xX;7d5zi{Bi%Sc^faSx7&Ms-_z0!k&4A{s}|2# zU8bhRSFuY#!*bq|7~W-H=5lSF>o{?qo1yc8ZIjo&(Br7}=;7ivnSb$)*Yt|G1#W43 z*E6zTa%Z2iuG6CG+@-YK_C1=1lWv}Jc3≧)ubNY3nW~O`o@PV&3I^$9-2*ZnDl@ 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
35v$qXx5YeaD#@E@s?ib}-rg*w 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

~q-o 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 K;LhS+X9@uJ+=0IU diff --git a/secrets/hydra-admin-password.age b/secrets/hydra-admin-password.age index 727519a..1445c5c 100644 --- a/secrets/hydra-admin-password.age +++ b/secrets/hydra-admin-password.age @@ -1,30 +1,17 @@ age-encryption.org/v1 -> ssh-rsa /AagBw -NlF3t9JuPeK0ovrAch1Vn7JFlsTROCw7OneyBq2pYGNBMKYCe8ahdAMtv7AxXEdr -LMIXeHvhgrKvbz1ZJtw6i+rheEjGVW12nukCCakZEZCDGhNhMDY5lsowgfu18PdL -ud+D06vpGCviV9dblpBX/WpBYX2BOLqzztCcw+em14cLxlJ3Ocnjin01RIdm8eP+ -eX6Dotzm99cq0l7nuB6FGTlb3xW+Sp67ryneh08F0uSD7c2nibadmmecnXYeh6Xu -iTYV/qIBB2PArV09BDotkfLh1C+edROXZ4i4MqQCNktaBJrsMzD3/r7/GorcwguV -OFDKVIgNtISZZ13qKw6GafI8dwkIHjWkzYbPe9OGn9k72NgN5Z0ABCMwkrhj93Le -Lkke5OpX+X+UBB4FypTVIHi9l4F2xElpzU6h3Cxw6gIdWnOzjOS0KTQa9sMyjVBd -CjJ757zWSy4OjN93LsoR81mMMmqzXxs3dVLhxGV6gBoA/YzSi6pKqoPmIvI9swn/ -iujA/wq/vkMNEjBR4uRVAU8Iemqfb72duHYVMm5ss7Jl4poXRVV/1zivWSLuGN0Q -7qB/iRk04WxTjU2ybGUuGe7RoI1AtXS3oYTgYbzm83rBjMy311enb/jv9OCqe5cc -cmX7cRaXLg08TZMQ2UtEB/MFw8xenKqcPmmWMViSU7Y --> ssh-rsa QHr3/A -LC1vc3SXXmYJnuOSwtSkdHT9i75kX9u9A7MlSPU9nf088Xa37uULhd573uI12Xab -WTJKUZe/ZOMz+8oelwlpipNgMm81osH7lTq6xLkKf2tP76BDtjOAPSVTESsFFENd -mmp5/lyTYjstjgTufAAw3OOA1IvBdRfGcncX6zBKOtyUmZWB+dU0kkerZmALgPkL -V+Ab8uph/ToP/ZexIGo7hRO7NUPhwV1A2x0taBz9sKqSDZY6j0d5WIg2WNSlV1VV -5Hcu2Hjr9UTJxuqTAJD3fK1+l3c3xSzr29j/9QrpUIfn94DFkbTnIrQoBWuwfrYm -EUMENTaqUIWozFv45NcEAqjAVBS5TzIXzL5YQ6zR7TgRAnbI6HpGXT9GtQ41xPEt -mgkr1mZ8BU6pi/C+ZY08rwhFEBlEHRHRebhI0xGP+qTEnjFb3bzwXJzy0KHcUo8m -QcDc7P1768yQq1REA3SsnX6yXXr9Lc3VnaroxVe914l2iJta3ipI6CTXcFTCwgNL -/m2ZpDMstX+64hhnz4kiV3v2F4tlwi21AlQLpdbuqobJDkXYy5uboPfL97xffn10 -jdhcuCeSv1Wabh/sIl2v4yTNngFpD3Bx738auX1TeTauIZSuk+PwDjyn2xO0SYoz -7lxK5F8CiCmxKFpP6aPGkuQt+RTLaydqdvLt2wHZTp4 --> ssh-ed25519 q+UPnA hJl5F3KJbhDDY/olYpkzl++bXtFAl5G5oQdFjqSZ/zE -0jQcyANwEuBYvWhBXvfvgTIiEiPdX47VKBjUBzdtRno ---- AsOTpKHvR7obXINLNmlag5zBsfRip/ykxGphCMbP2EM - -"Q޳shk;᠊{ll:gFnh o \ No newline at end of file +Knxlo3pk7/mpyHfJyl8495HmJgIK/tbw658u6d98GIXJ8wYrfOnub3dxewCm3SuM +q7rk97cf69qAH5ilPJF7iOW4S1DptZ7Q8ut9fZhS4C+TV7/VU0bzu8UoBJlXSpWI +Y7xrKG2Ch0eus2/w2ddnd6x37XmUOcRWDF9LvB4vYRnNG75OcfFFCnmJqlfi2Cbg +kx6+Nyq5h+YXZg4NxQUYeNRzT0YVNLrdI8mRGB1bPn0FKpoXCU/NGIlscn5oO+dT +cqZ3CW8VXLeZyEp+qPVn8hFQBwE2AMwbyI/j1epjkuLUfthTkUmNQzsW+UfDTej/ +hPzVwzwPuLONvWoWtbpC49RrT+nDkqcWB682yXF8MMdpeEtub8G3KTTF2muHr1pd +2Alg/preBQ/kkt7aGplwy6bEzwh7bj7+w/FZxKLl+iuOzIdJJXLwxr0LqpyyGW3T +zYTyGc+hRbE+CYNs5p9Dg/my4jQUZ177GqUpcEmmXn5pI+qAcFe6STlUMuEHGC2N +EjPWIF+TOssdj4J7S/yae9RpNjJA6o3QvEYp6aUsqSYeqDuZlsrQdkDIkazLOt3Q +/mUCTwxEOYzEQCiZsVKFQ2P8m9eQfNSLVUuay63ErV0LtJj4bL/eRdSszdA08OJd +nPQl043UuX8RJFcMmRsyg86SsF5Ghr1TtUAGEfK/2CA +-> ssh-ed25519 q+UPnA fwloW9Ax04f4U2n1+JJVr5UDj5c0fMXwkPC0bApgvE8 +Bp5VLrqD86eZmg8tQLHaExoU9tx/PgBq4x+fqU89j5U +--- 0ufXPayRvNFE9cvSosBB837DUWJS932FsZ5M0t4MtR0 +R%ΈxgpZb/4& =P \ No newline at end of file diff --git a/secrets/hydra-github-token.age b/secrets/hydra-github-token.age index f7b2d71..d927200 100644 --- a/secrets/hydra-github-token.age +++ b/secrets/hydra-github-token.age @@ -1,29 +1,17 @@ age-encryption.org/v1 -> ssh-rsa /AagBw -Fe0pelj+N777GlWVTKGO/T9opoAORhVVaJDch+GAoOh5fHk330o2dIAfLBsRSq3Q -LCPgxpbrXcm4QTWK51eDRvFP5cMLIt7w5yY75j15P4m6q2tgxVMw3jChmcn4MSiQ -6aewkok0zsw6YFVqSvdVAcQbTM91Wq1lmSk/l7mD0L/m5oIhHw4tApeYh+vc0+ST -iMnzIt31hAPPt44inEwippSfEI0LeIfXp75TerEEgvx+9vxpBKOPg6mk2wUkGxKE -V1nJs9IX5xWiGocYx85ZsB60dOQs976y+6RX2s0xFRjcQTf2WmQ1FTToTltWKimw -zsOs0hCMqz5YRAHmDDRig+v4K523Pk7Bc637uosnYKq5zifTjgSEITTEEKeyfTIX -yJktN20Lt5icA73+qWy52AqTz87shMvwEpkQA1mfrCyKhtr9y7Q/CAH/UW+M+8mg -VjcTU+skd6u0Uz8K2/n8zSxYuk/HhD0+w/dN72/ik7bUwt6+GzBGxbFrFPKqF2/2 -3xPTlUVT0PZvFUfAYbUJvfF/eB6z1lFgurJsGcAHAruxqQKwiVMem9ZMFxj/NB/c -kM45+mRWh1vOrxD63g8UvwKbqF8FfRFZYavQA4gZD7V3zAYpmKl0ee0h6XP51i7Q -FtLkESoqEWwm9nwIOrxA8VWvCB7ydpSP5+9qkDpiyo8 --> ssh-rsa QHr3/A -LnrfxxaLe20Jm7nnWJCwynS6fCMhqPwntvpSV/TxKj9UHzpW5Kkjxb4SfdUTbkHW -Y6bIJJsduktMJ6f6o9+2txNvPoaBRnoLhvpAOrj4ZKJUOePajaG9VIqqJRoQtfYs -wcxkMdSApqhWPzo176BQH0Su0TwngcVZR2Yodc2rkfJTY9+XEywpTbyhVs4/V6ZZ -P57kbiI/HtU8StzVG6gQR8oyPR3d571PyOg9zQD0U/0YVgD9plmSoDsT4x4FsJb/ -WkBUy9QdN6ezFSKif2nGK7mp8yJSz1LvWB4TTE34crh3QYLtpxLHBWfkokY1OvuQ -pesLe78R82GhNoROqrSO23YnkAWnWF8BZsOo9jRvTXV4BJ4c4DSQtDHY9YdH3oom -f5vz73CmHSLJQz80cjO1/H3MTT9a+6+Vtkjcj600j5cco1+r3V4Y7aAFrkYtIpTh -DdYypZVSkSv6UGXZN1w+K/7BxPLNKaSmcJWrvmW2qmKgmW+ev928NZoxjlRD6Bt5 -LV/pJRWZnEUGeirrg7NSqJS3IG3B2z7roicRCnrjjObMlC3VXMsx1Se/4OQdelR/ -Xbr1M3jgCDVV0mbFUvjEaLy/wS2zaY26XPbjhvzdiQU/pItUVJZwrGeIx0cG8kzZ -vYGCtSeYTcTzvjvmn3TqIOVoiBSuJlzVHx7nh/0I1Yk --> ssh-ed25519 q+UPnA MyH8Ye10JSgUMF5d2DW02xXz6ZqRm+ZNAuUTIB7WOAU -EMwBlc4QMdtN1Ozd57f3ozZU+NUZXaSujMRJOsbBAvA ---- uCpRMA5i83F2dzJbs0wLbY7jcm4W+GiMZnmfARFwiF0 -oo*|}MvA|] z|RAH(ke+B<1B,g8iˋ/,ޱ)8Fή>@^ i2՗OU \ No newline at end of file +b6ZHlRbQn9KYOTG8kj6xHDnQvhbO38eVQtyw13WbBDIB/2hocxBDQnj7aM2vtKma +yu/xEeAs8D70Z09NxS8Jojxwlf44XfzQUc4qDhB5RFUy0Fo9ZddJbTY7gMvZWq2f +Z9blHlB69478yCgUxt/KRJTLqpUNUJs16CdC+AIwo2y1j+eUAxfUdsX5D9gnj+wT +nP6PqJdbH4Fw8Eqs1kAJogqdMfxs+rX0o6nfz8ucULcsrWQGdRktD0Re+LAESSAU +17WofgLNMfV4EExnELYfkh7KzEAL+sKXLCsxBeCcoIiLulHRtvWHCCj0gvLlpVoI +ZP/dQPJRQ1f+WdnxEYDCPMdwcinrvrbzfOSses9Ygsbgo/X+ZpCO7qobSu4byDWH +C4zW3DA6dmhHZPMV68teOGczfh5egYeSmjBJc12UJc+Lsa0L4/eEwOsygfhwy4Su +zA3sp0lv3aQ8ylPyZoZhRg7CMyYznOG23UWSgk8bvBkhtYjwDB1qA2Nm2asftton +aT2utaRPuUTzOp6A4pVsDX8I8DjPWequDK9iIrWT8sTbuMZGOuQWmdDZwlwrYU6O +A/0uE1clvh6M2kIviiaSncki5opCutWKVt6H5sR3dixyVJraV7XJZz1YwaxhhT26 +YJBuYRraETUeiEtc8lNVvxlmVgcHIieJFbwUZsc599w +-> ssh-ed25519 q+UPnA PlE1A9nxfSXmkDDtjTFg9yyHCsWAdTIR1s9czofed20 +cfvdwkEdENSMviOTx8Jnog4dEdi+YZ5Exr6Xc1vL9zk +--- Fj1h5F69adWg0k3FhtKRvsd7LVQC/d8GlOXgtTEdWdM +@b }5#ԃ =oe$o7Oo٠LE R#ջ{pIcXK \ No newline at end of file diff --git a/secrets/kirk-wireguard-private-key.age b/secrets/kirk-wireguard-private-key.age index 30b8cd3b2ad8c6039d042d6b8b245bf6cdb32ed5..48cb94bd0a652c41915e5161befd7de5f8496309 100644 GIT binary patch delta 943 zcmbQpdy;*EMty!!Zl#HDS!JUSW>0Q)X0YzOSomzIKkGd#O=rxVyGxsgX}`W`R>hfkC;mi%X@8 zTclZDc70h;USJuQzngh>W`%Y@K#ISIZ+>Y`UZ`bac}lR0cZIQUX+*wrVsV6iX?BKj zj-_F8L}g@Ufw5^?M4`X0sh@YHc3Pq@SE-wOU}Qm-pR0F>sfDp&il=^7K$3e!rn_fh zp<_x`L~yFNdqreoiJ@1OQ+TP7L3*gSTR^09P<@KKL3*~fQx%tyQ9+i0bGB=4X1H5$ zSf*cCmV1?Rwtr4ea#d)iezAwPTb^;TWobxKUbug{X=bWvFq8b8w=Oc7a!rg-N7eq<(5rV2-{=X>M?_n~AA& zV!fxgSy)npwth)UI#+&(e}t=LaCVZPrAui@rdd@;j4a(%F;pQCGGid$(~NpM;rSA;=jL~x>8UT#>D ze`0dFg;`#@OHiI~MoNxvX@+G`a!RmsdahGIVsL>4m#&>cadC!jYKoDmsiCEUex*-} zd!RyvW0gf%Qb0~sx?`|KXk}4VsaZ}%Swvutg?CbzepIDJXiiF*c8R`aunAYGQ@vqo zh(}qfUvO!fp;@J?cVb3aZkBUyTA`nJRaBavVWx#eQfhX7Vqr3uuCA_vkwfV+Q4RNbADjCaZW&a zNM=x;Wl&{MVN|78VnINKYj|ZzLAaA&wqs?kOGc_sPJNOkS9nOCk&C{6l}nL(ad=U( zPnAb((zJaHixnGc>Pg-zMnz>^@VU%-mfLCc+ zc}{Y0x<{~4wxO3-ny*uUlee##S7v}aS3sawmXBYii*~82SxR|GqFHWcRjHFnSh%5u zySG!iN0ei3WvOpSj$dSCez;qDgjZHjhM7@nNWEEZiC2i1pC?yNeog|V}{X_bMqiHBjXXL=Hs zzJ8Q*fQx%xVL?hrl2?{?NxHdLu3ly8}KK3Af7sG+~3c92PynOlKhiho{-ex84JP?oz#NM3M6X=Z>=q+h0| zZ zVp);DMOH;sieq_TdR~=rs%LmfSV~G*R(5i_ezsvbm#&>cadC!jQE{R|phuChz9UzN zUsyy$QC4Y{lbNBpbERd5k&i*DkEwrAaH)xQd3HvwrFKY~v1M*jadKu}xtT|{d3{P` zgt4DNzL!D1WsyrESFw*#a=Ax=nX$8}i%V%@j*EUtaZX6STVR%HZfatslW~B#f0jpZ zvah8}UU|8DMVMcfw?$P%u3tuqfpc=AKUa{8mw9Ssh*?#7uwzM5vS*p4pSQNTNmQAK zPhhyKX--D5NvJ_tMPgB5Nuhg~VSS!SnXgf0X=<5UYG$N~iGL`Ud5V)$X{2YUXOxM1 zcDb96he=7cr+H;+Sw%^TNr*{AahbMRRFPqjQ)-!Eu%mB*mvgygRzzB;LAX<5d9tZ7 zS7x%dQ(;(Yc4WGviDQYoqr0JdshdGccxj@Cg}G0Ok87lNL9l+JVMRo+PrZ|6wpn(v zNtu_che1@Ndqk9Lwkua@c5tYZX})`+bFp)nyR&{tk(p&kKxJrRT2`Qbn6XD?W?E8F zWnfByfsdPiQGkzga(ZQfSx$t3p?RoBa)~>aOLjzlU{sK2U~q<8Nw{%VuDMG}dAfN( zuv4Nt&@?rgv#&s+o3HPH0A?cCfRdQ+;5NZ*i%+Q$bKk zaHX-2zlDENeyWjiS#n+$S8jxBV3xCAcx6?Eg>y-6WM!pao~f~gQE-xWQkrq0pILHt zid#-pQc-ZOXu4V@2MpY(-t{!I25zdB5sXqFN=@o|BspZ)vCBan& z29^eyM#cr^S=n5=y1EKJ`W`+(X2~h(hGF66B{>0RIg#3dg(10xC2r~IRf$RY9{OSF zZoXmRnPHJ!EXm?7-_}+!e3O}Cz|fO6Wop`z+~~88pYDB{@_+v%=di;8QJ)snH_Co8T1 diff --git a/secrets/magit-forge-github-token.age b/secrets/magit-forge-github-token.age index 8ca7e24..72b0b9a 100644 --- a/secrets/magit-forge-github-token.age +++ b/secrets/magit-forge-github-token.age @@ -1,31 +1,19 @@ age-encryption.org/v1 -> ssh-rsa /AagBw -Gy7+4P/3PLgJPnir/FY164mMTBJ9UpDUxDjsJBiTcgg4i8f5BVyjF2fYPscUPXuj -4+rPrzlsza23flJkCscmmwTcV/qVFjgNVS9bKtQ8UFEsHQH2K21EjZdmrZFOvSuW -njCcKwKlGsFLODS5j05tD6JvMnz0uPCZwPDabaQHKiI4YCggbFjiwFbczHY3yfhB -aE1eEdT/OFOJeQdEdiyOZ3DIRMPUlX07CLHGFoWdjklvPrHEfP4u2+YidrXc0lNE -TGbE3Pfg195oMOA8E9iCQTcBu+Br2s1+fmcy+QeTgZmIdJ0V5PfrBswT7WUEMEDy -xwiF95mDLsZ9fx2SXmSBToljMowK5WxKgKOenjmhQ9U8Y60OZ3s85mkI+JCQ2XLz -kvQA9b3p7C6CSYOU6Cgy3qWhKLWNlO+/vjovrZiy7/9r37O/u6LxWGuuw3qpQChj -c/BmKPBi9Btm/b+3GIJH13ICGO+taJi3bkWnV0/SXSuRqGmjRBWkDcGSi8JAoKX6 -1676KYR/IUhd2dXzilfEYRQ8m4OwSYDLsBBAoINLqvrSXqFDVaqRuiS5XpzVEmXQ -Hj1uW2MXyiqdTDt+zbxc5lZNtZjZjxq15jCbLwgEFpbN/3uhEZnj4XkRJZFqUSJP -2AsV5xuwLva4TTJYA8GrqKcrGMJKSr10KsCTGB/LVwg --> ssh-rsa QHr3/A -F2YNuhkUFgx8KrSd4llqqbJWEFhA00EtSCVVBdPn4j6pbnOkhqt7V6ayJYNn3Hfs -1/W2N8qU8tQQ19tW5tQMu6UYr9aHfW1raNkTMAG1GY73O/o08dVWOHRm6nOT2mOQ -P8k92gWCCiK7Dz+U/aA1ukX2ddgw0gma4lWYY8SlY7e4p8csEP+1jJFCjrzSxyQA -VCkhF/4XIHnSw8HxONqhx/V6qRSVHtjMH2TffDuN2O/+p9cjPJky8Pypn15MsWLe -MJ0SwIhoLuQDo0jzhV0wDbc7gBcYoZes+GPQhxrAfZtN/FWMPXB5So41iZf5A6Xa -KPn73bXXxBpXoYt9HGQVuyjteN8hutzwyWMEGaLrm8/YBSeZ5ECJZjdQwKHtIrTX -GZQqpRWu4bJcahka+ajwwacvpW5yBJZfCAyjaKz7XMmemiiQJxX7tshNJllzaRVc -QOHzFVVrbxnIQAGWH3TMkav+neXqrOyUIu0jrGAtMsGzKwnw0juisC7FJbypbEZj -HCPRM+AtqEHu1lWfOYtHOkmsnr3W4tIn/EWo7HUvc+FX5rzQYU9Ih80sNHG0RkA7 -g+g+ylgiL18vYY3VS0D3M8yenyZbQgnTEAejUhB9daEJzCexH4zN9iO+2nZGK+qb -bJBLPT5hz2Jbte8gtjGaM1YcHqe53tjkakw7GwAi3Bk --> ssh-ed25519 q+UPnA O+16+Um35CFPFkj506piwZ86j53RLGwTfPPOLAcUPD8 -od1Uq94VCnbvSl6hqKoeCgeMIfVstj2smIuU8b1jRUM --> ssh-ed25519 /yLdGQ EkYYMh/wqk3w5mfEL1sIyeCP7Cq4kNB+mR37i/835xI -cRA2WfSRaluB1F2WxIouDkYgvr/gXB+yejXFvTtdA38 ---- Cj/TVrIh2XcGnGLJsrbbPR1VvhacW8vmYpfDItMLU9o -Q3 l˽6i̙4c O$=®0^"U YC;zL@PP;3 \ No newline at end of file +eey5HLNKSSPfJSfUQn8DaAR1j/cFP+3/9xNips+QWHAgdoZ4LNe+CB/qDp9c3PVt +CuWtjSb2dBfZg8AfrbZf7olZaZnjJEtSzqVzSHMyEEcF5+iNed2isDPHrG36tLiF +tAIIpmwb8itf2CuVpm3GqVW600e9NFIR9vCNHrs5qkUS8NypNVzujllhE0SxdnDl +u9vEetoCFlxqO8O8JZYzBqnN8PFdEOUYVcAFYGs7F4Lbva2pxgbdGCl2xbvhmLsA +htG5w1N61Rb5wjE/Fa75yTkhADeYjrwgRyjTS4dRG2uJ1GXyrBfBRy0B4X8DVnpu +UTluCuhty0wK6HVBa2b1K6oNK+jFfn2Bp1EPl6jlbszk6xchmTQxFAWX6m9XrTlg +TErfyrgLpjl75WaEBkqGynKBYl6JqlzOu2hP/Q+qoRWPpxqsDG+6S1Wv0yOQQuH3 +qoeoLW9DdjjLNzFKJ2sI8C5aaLg/AIKQgVeurPlVzAOj2RP57GLtB5zx3z1TmYcS +3odGopL9Eu8eh7ONvNv8/Wc5i+mRpjqbl/dFqx7bZ+IMMxl5k+9lMLpLBHDGziuH +3+fvWa9Y4FGwxa8gZRzsPlEWFRgIVvh15tJUQgPCVsNXvtGKztasuRUsrKjmpTqI +l5g+dzx8x/nkbro2iXvrHw/CWKyldyc3Pj5MZS2kzOA +-> ssh-ed25519 q+UPnA K7uWuaJ6GPeWpM3b6hqdsO0/p5JH2rVPYZupUfx65Ck +PF0AzdXwZuOVeia1zhw6NCS6mfCH1T+jNx964Ve9rcc +-> ssh-ed25519 /yLdGQ b/7g3+9vhk9EUniS7nSi6we07mzlmfRKep1iKYweH1Q ++NHkRQ3nXQ49wctg1vCWqYHAgIIDo6GXkl7uPseYy8E +--- I+nIQ9yIhy6ww/VFhErHU+WBTPBlxfuh7xal/B5D+tM +=t@'LU>J]yyL+8 |^<ʠSS*-҄Nd2 \ No newline at end of file diff --git a/secrets/matrix-registration-shared-secret.age b/secrets/matrix-registration-shared-secret.age index 85c1ca5..26efe61 100644 --- a/secrets/matrix-registration-shared-secret.age +++ b/secrets/matrix-registration-shared-secret.age @@ -1,30 +1,17 @@ age-encryption.org/v1 -> ssh-rsa /AagBw -LyWGdc/bqB5xeZBpGUdfY+h8A9LnrO1ayy0B6nKs5lS1GkCjOOZYBg/K/KNN3dv4 -Ymgj9ZF8pygy0SRWGLjnJvXv1776koEdSsIrjIBJTylS7J2kuvhZ+hExBk2/63Lr -nYseyIRG/0XLe9inWfid41IduW6zPtkB49mQptMEEz+B3MI1ZcP92dNuOZzpYIfw -u24kINWcFOJxXsYICawP5att/EAbtv6y5OGw/V3w9+HiaDtWNaA12FSYPAol1UKR -aeLCXgFAFopN2d3dNbA176c+z64gHNMnpCYAONcMwwETo9/pJA0Pbpp+g2dHaBIv -3D38T+GwU5I/dH4T/kHRbhRXIbr3s50jodNfeJJ6Bn8Cf0mCRG1BRmzH9+EpTX3f -1FqaQ0aDlfikLVqkkjcRhqDy80sskB3Dp/HmbAzn81CMr50pnwnHvzJxSEmCUkJg -Pf8yiZgIOWBa04NZu5N/V/YyUuL5Pi8Y0tD8d+T3ygAgWUzIb+zVxAgbvsca2x1a -vbCN1lKDY4cssXCq8xI/g8Y7kw57OMV2k/Ca1q/Dky+BaeM+lsBhBydwV2FRLBH+ -qxq0kXEwBTLCe7+d1aMdk7mTPR4kMrKiBKRRJ//1p5OoUNC8H7F02UOwrr9LFC4R -Co750gRdYHQIdIhRQrHqadb8LhBMECJ4fsgb6Zc7vBo --> ssh-rsa QHr3/A -iraKh+rC1td7LFoREM27z33NGEEjZpRbdOI7PT0Ma0JNocYD257EUYOJSwr60A7y -6FOiUn3aSRhi/qca+kxuLdq3E8zrad1fMpIcL8bxooswf9OLhqcKsfy1mkAdkm8H -arRa7KqJqZAJv12MZ8UnQXx43rShHF1PFZsHfd7eKkHfjz4JgMNJVA3/mLMiK/ac -gc9RNU955HiEqngOrX5web5A84ajjQAVoTmKqQ+sIV2du3e4kcCtrMUv5lDoHFCL -+L2vREc8PdfVSwWpIAxH5rBRUENnYuJU52SW4yOgomrR6bVqdVB/DzNq6flo9nFE -jTprgE/Mj7AO6Iv7zACMRKM4oLfjuRLu98Cjv4zE1P/jOrCLM9Uh1H7wsPYjFXKu -oy/Y72chTYJPTXWL6t7H2Qd8nAqDp1A4xMPBpKrpJCHZwcoX9blOlwbHMu3c7Bn/ -GL/kFWo/Z1gOebBSeaaMpALhn4avDko58wOixh163BwZBC/ePAqZhkLY1Dck3dsb -RRTJXYJlGCPGKQ+kyyWrj19x3kgPOmhf0ev6Q76E0WG4bw3cwIFTFv5fldD5frSN -EPyzwP5SNSuKmtMpBuIEQYJoxApDJUjN97v8vfAAsgCkVOuUSD7qORGu9vVHb6lE -TvFAqLdpCBPvF1b66sC4WeRPWHeBikSD+7A73IRyV1s --> ssh-ed25519 +vdRnA TxbWEdi2XEMh16Vv0iiwUyYuuTKzpwL8ZILCoBnH5hQ -8S1hpfBI8vc+Gqk8kW4ZlvrLuYe0g4f7Uad+DBVel0U ---- BQ3vUfo8FPKjIPIQ3Rztw6bpLAAejuWXWozFla5hfDY -sRT 1]WV‰60sّ$I%/hNG'c -b*eX]5UG;<ѵۋ"cuR4ڊų \ No newline at end of file +px5LyxkFuIYpUrgNhpvbsTqn6f6j1eHGJJ0xtYzmR4rwBsunquzCcHmR0EzE8X6O +1wIUsKnOP1s1i08jSxlJg6JXx41wtHXjDLrqD0/SNp24jtsLgEWWVHwUIdEF2HYN +3ZHPLuDjpo272KLTYhE7mjVgOTTyqewjdxhw3Riry+zbSv8yiF7n97jo8QeCFLXB +69POsZiAHGvTvH6giuPfi89T0i0MmzVSf8aco/o3YeyizI89GA02yHBTUQR5uh0L +kMYhab+MGSerciSByvXAp23HW6s48EkGzaRxunvfdkv7aLuRwhuUuIQ6lD/LntHC +Xv5gS9zgSmY7u4vXpRexJaIzj3/MhSFmcOJkmlBijSfmKShTxbOmUKdZY+3/0fI/ +FaVt8IHKVWDc+4pLj5VVicd7f8X8QHzuu1OnWnak3Kv3fkj2IOZWK50S+3mlMc2n +QsQAJH/5NC+F6bvGKTsbCyS0FGUEKiwFOv6CvoKFPyCN2RMl1zdc0V5yYoH5Nd/m +uyC74Be5GV02ohTIqgsPHS95/TnL4e5Df5DL1Cf+LXMzjEZZ+k6ZN8Ba+l2342+d +KnXq3Vtkq4PCuqiEaL5J8Dad/OkPt1PCCxHie/ug3kT/Cje3HO5i4R+TYYowLLTj +vog0rdCDJ3w4RjhdIVbirmLWVj7HtW2uEyyjax5OXVQ +-> ssh-ed25519 +vdRnA KkRZ1VgAc/You8Pv3lvrXqa7JrTbUtjT9xtZrW0LtHk +ZCPmTQCTOYg1olWelLDNjzjgueouf9cHIp3TNAU252I +--- WEpHzH/7Eft0WeztVXOxPYSk2Op9ptrNfy5HNDQXLxk +D'=#ʼnefUISvo4zVhi"a ?qN./rES]P Ce6k\b^/2we \ No newline at end of file diff --git a/secrets/matrix-sliding-sync-secret.age b/secrets/matrix-sliding-sync-secret.age index 204ea781a3bcc4dba58f05e10acd0b9487570807..8d8d6e0dd8a0dab549c67a2a6c34e4292fa39b4c 100644 GIT binary patch delta 977 zcmdnY`}wMYefGm2reugn6E;nWu4DMsh|*L|USwiBmvY zWtdM`VV;q5c$t?=O0sKao=bV5St(ayxwolrgn?(Jk5OQLc1W&aq(`<-Wn@%RUP?-6 zsDDY3hl_SlSy^&Ywn1fnxsjJgML}|5dX9H`fLD}%K)rT4S7=dsR(PbTVMc(ZyOU3% zMPj(8UrDldj&^X4k8fsSqPtO+V^ox>ep#MHae;}UyGKT4Wv+3Cqn~?tVwi5vxnV(w zQ)P;Wfmu#)czTs(M1G-fey&@7Zd9cOS3t0#Q=xvkzgfAnyP>hRXHu|9M5tF_RAHd8 zpNq3`xtU*(yO)uBhH+q&lV?apa(H-@drFd%dwprCqe+B^nSPkxxib zhKEOGrg4FxS3y#eaY}GfM6y|4MS6z6b474ka%x1}GK zuSY~-o|}hrplP{Zrdg?ng^yoKW<;)WNU4u+UXh2Jd!l)0P-t*!O0c7mc5zBsh;Lf1 zWqm=SwqKRLetJn!4p(HFt6OeHVRlNEdrD?VaE4K2rio!xNO4kXmP>_pd609iTW~~i ziD7Aag?o-)T5*_1xT|MSx}ia+Z&+YSxffSqNtlIEd2XSpS6ZsKcUg*malWTdQf7*Q zfpczwPf&8OvuSQxS+19}Xfq!XPYIunSm#&>cadC!jYKoDmsiCEUc3DbL zo}+?KR8f&xq+ynZIdDlxIGduCA^^hO1e5rHfOf znTKDgPjRWYX}DoxQL%Smy1!S6i&I!;pqrbKer}Gwr;jg}*vt5J+)EyoeG~ngA=Gt1 zr6&1Pjqyg0!X06;U9!32!b_UIn<#kA{(aL@I&Y2c2}$1MuRpXjGb#=k2kn1#iFd)i zLn-Iu9G*1>TszpbH8}2&HG_G5+mB5hZ8CO`a?dz^tCFk`l{&*WeR7cI+MfLa2LQ># BSKj~t delta 1676 zcmaFOzL|G|M!lPUNMM0qmZ?{;skvW>b7YXGQIM~ZNswQDaYc@0ShlvYdrnqVv7fVk zS)O5rk!PTBL{wCvmuE(?Po$BvOD0!vVxduoy5rA47}v3a()S#oAUX_Qfjk%eD)a=u@ASXf9|s(!Mifv2lMgkO=9Q&@RwP)1QoQkjc? zxp8KBQGJzuh_@G)tB*yBvu|*US5>Y_W=Mubs#ByvL1|)8p;K6-e`0}KmW!KXxQD5s zc4Ux6Zd#_9Yf_q}d1OeIW2s@3e`HP-mycyhVN!5WR(@2ve_3H#a+q1LM^T|ksJmgZ zr*WcNxKltF6Syi!LS~6FacSur5u(q>hZbhnJ zfqPb7Qe;?EMq#;!ho5(mX;nn2cVTLNW<;g2t8bNWsBdK_WpZ|qg-c4P zXMLi6N^yCHYnoTNBUg~Nwtk_7pL3CqONp;pPD)}?L6k>QYGIInaYbfOxvQI>XIiR( ztFcd5VQ8^)YHD&?XsM-ZslIl8RkmfCi657tpNBz3R=SaYT2@H9d2p41MWv5dVW2^I zxS3C-Z)uc!SVUx`S8B0&U`C{Sc9~O(dwqeqNl{cpd8LPYszpT#S8cadC!jQE{R|phuChz9Uyy zdVz~~mS3*BQ;B|9M5>QPzQ37?yNOAZZ=i*lzI&K)SfF!OX1-;XueVQ;w_m!kNxe~G zZnB$YT10+YYG8pjm!DTefSZAtXGW#3MMQpyzGI||d7^iUb9jJpeqL6Qzj zk(*C|N0n=+Nv?UJk8`1WNrZcjzgJq03zwOvOM01Cu76mfNq~oEQjWhxp;3r&x=(&! zPHJeGK}C|0Td7}xTSjPLQf8=0MSV(AgnxEKsEcVtV7WnVc8CR+ajKuGah7LcdA>(b zrK5JfQKdOYsP;y~rR91+;Yl^FWMMio-NNK8%k&Ag|NN#DBk7c%(e!Y)TfqQ63 zWw4XBOMt(xOG#c;ZW&irhGAY=pqZI_c0^H-dx2%Jg}FRa9hARF1EkK~Pv& zy02GCfT2-nx|dsaTDV!2r)6S=v3aC+aIqg(MPP)7t7}qHR;ou)mPJ8ug`2s)sin5I zd1!G&M2260TduiNhSV10l|O1{5EVYX$EQ&K^8VTo~JaY&k18dtbygr$=~saL*v zrJJ)^R7GK)uV0p*UuL*@aA=WHfvIzpms@E{sB=L?c~oweb8$qKhf#WFZiQ))uWw{& zN;+4zn^RGQyJ@0WtfL$MMPP7uxCMVer`xbYQ3vdx>2B^S5!`N zijQTPxwdCXgm0y5zFCnGS9yAPh@nAoNoGh_vcHd!b3uxS zzFDfJhjVbgxlvGVQDu^$M_^J)utk-Rv$tQeH&=L3YGFjAv42&1RI$5fT0~W7ab;R= zl6RSFkZ*QKqGfuzF^8d}b6$y;bN1xBOyc!MZh<91DF&h8`9ZnP>5gTYMdm@N_JjuGJ%CgohZy1EJ}f$3TKmOie&*+s>XMn?Mj9!61~j?d1%Y(>D9DxW*`EZT9 ssh-rsa /AagBw -E12H0QXFFjXnEV7aCEg3O40q9BSrFndat5RnprDO/4cIvW9EDi28WL9vAylS+AsP -42SaqwpFgEM1x7yAfhR0Say4s31WNE4U6ZbJ69GCTDgo1/BLUb2G/ZDAD22la833 -ZFJ5kkumuoQAn8U9CHQlhKmkngyCcpOUuKh2PQhnYRbTFLpGPgazRVjCPGXhP8zB -29+bV+Ona2LhEUfMNYCI7sQsD2llZr3AvJy6lT0+kfn3+rWOz2Ef2VAhuxNEOmlZ -Rj7hE/26JFLObWupfHRye+tuW9CMd4zDHo+oQwbmX3Z6TyF/HGIqMdUNhQgRcNY9 -qBO/O6URtMOK8Ep3dexkarpI+BswFDfF4CxqdQMySvgjlc4AI7WaUXYJ3yolcdPn -NrNhHbBjOthNpsFCgpRxUo32fZM0+Hn+1acgxM0+PqHynLJ3uCKAsLFcfcYN3Iux -43vy+VZfSaVAknSilXMz+5KmDlP9KD25+CzAqOkSttrARVAUDY8y48IXatd7oyPO -i7mFQU0YeGWNXIfkqH/XTyUauNVpLB2/P1b/8NJ2l6qbsVu+t5NRlaGPnR2Itepu -gnFE7MJ0RwOdpsLOQwIWEbu3dN4Qsi3KBiComwiVwlj+8201f0znGPixD6qX9S0I -IS/J1+TUphqiAq1Cfeck2WGu1i9/YGubkGCMt9l4kqA --> ssh-rsa QHr3/A -gkL2UE+aQUw+/SxW1ruRn92QHzZcV5s2NMjDEfae6CG8ehSxmi5smkUb3PBZuQ5L -6bSAu8naXJ3nGlB9IWqj+A5jIO+MmwNVYUsvTgPLHFb4Uy8kdqykECNkgrtqqJrd -3ZFBmsYZEPJNam7BbKN6KThdzYRyE3fHEFMGnVUS2suVH8jhrJylvCa6FZMFu/QP -uFMwHl/JiEifCxtlpTqjzyPPVYDI6e/lFdUv1TDCsPB+bF9OoUM4LWizLHdiN1Vu -LfZ8xgUipsqrEbArkd1Dlo7FpDhYotu+9lioSyn0aAIVxr8ZwpB5sT9e4F9gVRBx -nRWFhxNmWZtTwW5nGugftYwZqy+F0D88u6VBhuxJR4UUP78vg+suDKBHJA9GXfda -VhOKDnyhVDpLC5F7SL87U0muNIMCAGZSkHRaVk2V1dXEbZqMWdmSxCxjqNpC/2by -AO/SgZD0+Mg6MWYk3caLW+zhWyEMwXvkFcCD6ubDg45Jwv4J22+U643qE+fjiHZH -E41GfJRcgzYC9AYf0ZYVSeveOxh6SWr9SkaZ4nSBKSwZhVTWUOwTda/c2oPMAEgs -XZn8csdXfBP5ikRjqFMpyK2zLjGr47qbb4+X+p+qdPuWvs+P7iS5nxFt35ztVAGn -X9LaU2RmR0TfOc2GnE2oSODKPecEMgZv0D6Ghz/tOUs --> ssh-ed25519 /WmILg 5zR9ToCpPvD3gfX/DZkSViSyH/k/mc17r9PkHyTUBRY -Dr1vkLrZaxQrksmkDNHCIuvcWW66vnfMX6ApHo2VtlY --> ssh-ed25519 +vdRnA B6tOXNobJUtx1AXG/a2rGb7a2lTXox3b6CvsNg9AhyI -M6VWGHl07La5b4xfLa2fq1fPn8rM8ZER36HVIiMSctE ---- ZYI6+FsdFDX4gXbp/tfcmGdN4mZM6CSuYB+C62M+JVI -Y +X Lsz\ۉ/:Q_PBґ%"B`440|DY0TotBk*m8<^Zvm \ No newline at end of file +c266zF3RY4nmjXKJn4/K27HKXH6wSoLXAJrX+NAz472ScDZhOIZxDlGYhctj7hAa +MrEsnuYqsJVvM5NtjyCXkEtExYPRfC01Xk2ecmUMhhjvcy1GPR304x4ExVZYAG3K +mewSmKFEssMpm1FQy95AbonP3EYJ1+yCA7R11Ke/CzIfFbvqRvNUSPLH2rsODc1C +Wp0YjdnVYnpHKf8bPT1m+HEgoMGrI2FH9A4vEsmnQLMVPqUwR6NXIK8zvY1uLG32 +zOTZ7mHncLrB8eMYRznvKFHdLDpTHgMbll97GpWUOcsLesOcU2JM/oQRl4gO0W1C +VoSnC+PzU1jmbJIk/VNK7TvC7DWEEdbMJrdud2zYINKi6gV8IhtVouL/iXv1nM14 +8a/2SHN9UidbmCOGqqTf6K7GTOdZcBIDKmmMNv64fxFGkPwtHK9I2dgLVYZWEtJF +vXbhq8IjYOscbGc0bKcqH0A0K6pnjhtBuoCl8YNQvFLXuinWxUj3stk7SGqq1YvU +uP+e/TgIwIN0dKja5FMcBfRGdII5sYHHyhDoC8kT/JJcf1QZUmw9R7qV+9aOhuON +P/DVC5Je8YKfliqjhDs1TGkHgwnRHsxDqSdhPs1Yf67o96KR7d1YJ+lD10flomWm +wSYmQJOyI5CFjeZOb89RmasdVioH9d1tRsf2TTE/A3g +-> ssh-ed25519 /WmILg 0Mp5aS1udTC3rd1cQb/00tWtvcCLwAbbfuz06OQIb2Y +HNn5QSUBy4K9WDsySx7RYiKi6NB8NdSJJy/mf8xYQhI +-> ssh-ed25519 +vdRnA Defq5I6VWeVIHIF7GRaPGSnfrsq3nq4aOs/+cXh6izU +v5dL0ZiDtlXRKi0ATleO+HS0lW3BrA0cWS4497AmEuA +--- oK6lEGnwkCmPBgwukR2tLRCgeWU3fGcPE5S1+4CbprU +);(= 7ؠPOȒۭQOׇQt{ݺh 9 ~W=^ Y. `*%4s \ No newline at end of file diff --git a/secrets/nextcloud-admin-pass.age b/secrets/nextcloud-admin-pass.age index 3a837de019f8fdeb5660a072eab65f1ea828428d..5ed1b678196107caf1f25476e98f0a0bec0d4778 100644 GIT binary patch delta 906 zcmaFEvxI$uM!io}VYX3zzGFmAV5LWDU|NuVWreY4l3{6@c|=a3VPRQTL|9U0qHAKB zb5L+vT1rHfVVZHMWmUd$Xij)oZW@#cPjGHzc1EPLK}t}V zqq}Qpk$$C-Q<8z7ze&D(c9cu1Pq|;dnO}rYxMy;nVSP##SF(kpL9S1QenydTnNfL2 zN?4|!MXGUlaENhPKz5a5TCl%wRa#DBUbv~BTW*T8Nrqc?T5w2Kgn_50bER93A(vx; zacYF0XJT2XlW$~TWv)d^xOPQVpiyX5dAWy^kzYu0n73Pco`+d^NkOn>kZD0>m~mjG zerU2$WPPzyRf<2CpGjF>Xi|nrc$r5*l4F{0rFp7jctwdxMQB)|i)DaWN=|-gVM?Z7 ze!69GUSY6np>|H9yH|OhONO6Oc%*AMSBQR2c)3x2N?@X;d#F!-x_gqNx4V;pVXCWt zNVsRNMXqO%ON6Uoh)ZOsNw7tlZ)Cc$d0JVDL48SNPHCz^sy~;pU%F3Gah_XtNSd2R zzENVBet48)R)N2{uSJnpW?n>4No0g zM4pp=VWx4OtFfO~sb^(bW@wV7o4bKiW_@;AS%#rkX1KR`iF0rcSE^ZZK$2rlPGx~t zmPx*$W08w_UX^c&wqcr6T5*n(acFv2pl_ZcadC!jYKoDmsiCEUc3DbL zo})sRTZ*Yix@)d^mSuWoSZrDvo;u334Cp-Ui_uCA^^WJpACut8x; znRbC;a%ygccZjJ;nRj7ks+p5dc3yB^k$I4BmWhdPWR4?Oyl!iV|DDQx>dz{-o;r3t fP$Tx_9&rQV`fEZB9fHM2S{F{|ku_vKbmt}jiR9nZJL4vwLBLmuX&ZSa?*RX^CmNiF>$vnUg_aQlUqf zzjlCjd5KYYu76R8iJ5+gW3GE(SPoZKu}f7{s8f=OiEl=+WlmzSlfH>-aFvCrd1_H| zxQT~xSfXigX<2BBcd(gCLAI-BX-=7OrD<@U zX=s#TSy*OriAh*#s9Uyid6BWJb5^h;mshy2M~HK9mAR!)US@GpgionixK~nXiBoxH za(SY0L}h7Im3fN4VL_T@V4|T?zk8fF&YoKvNqPC}HrM4HB zS)iG#m#Ke6re8^#c2-Jcutl+Uj!9xjW%l5=UATct-qd0wQpeqxeAN@QhnL>^a$erQESUTAVqnWag&XK8v_UO<_VkH24q zYe1QHxNAs6mO+M_Q%;GCc2SCxcSwF$Wk!XwxwnO7WJcadC!jQE{R|phuChz9UzX zc5;-Hc8*z&Wk#55QbCz}Vr6!=v8$_hguh{Ol4Yc8RJKQGxmR$ccX3%jZa|cKZoRL2 zc$9&^iMDTqL0M=emzi^BVPZ~pNLZdhd5)i7nRae?xMxUWW~jTPYpPMEc6eZJV1T=G zQk7v*fpbxQu}?~wajKxpq>DkyCDHZfaIyor+cxlyH{CeX}GahM!j!&VqkcY zQ;wy3Vq|uxeny6CNivsLa%ELSa72-|YgJZGuwlA$MWkCmW?*n-wpmq`Z3o_ zQ;LCaMul5sQB+crOKFIOi+^@rp^0-zZm=^~YI0VgueX1pc0`u1r*n2-q=ko5sDDOY zRFHXbwrfzfK}1RBoVgZbewOqp_=RlxL<#fJvFJXPH4zQEHI3 zzNJMcVP2)9c4c9BS-EFba8$NmShD$>s%qCWZl7 CfE6+T diff --git a/secrets/picard-wireguard-private-key.age b/secrets/picard-wireguard-private-key.age index b221ac73fe005b5c585e7a4163f603f690c631d4..41b286015bfa8724de20fbbe9afab04fa92bdfdf 100644 GIT binary patch delta 942 zcmbQhdxCv}Mtx{zsZ*t=e^^FdetEfnM3hH?yOC#xX<1HXRZy09rB`8YfLnQZP_k*7 zbAf(oX}N!1Qdov-iHna>gm!XKWCd4*Yl*8_h_i)pikZGep|MA3o@;rbfvZ`vUuC76 ziE(kco3T%%L19_8iJ_01r+I05RGN`NaD{WYyGwYUaeb&hmvMkulwU+(NI+4#bCkJL zVNrT%V5Vnoet2PSNU)>7n_GxMs&k;bak-OUn5RLNrL(?emQjdvuBE%9qo1p>1(%ys zlDU4Sb8>l6j#+ZBXSkPHQI30VvU9F)d8DO*W3j1sM4@Y*MWwNGYDSP(v2m!WnP*gC zWPV^+Mtzlkh)WVzxo473ez}`@Nxq|BMz)_}L{YeDL5_F2iFs9Mwt29bduEY-K}cFj zxRYyTrDNpY@sSV2Kzv8AbN zZn;UBPh_THK&VfEwoi_WS!ilxdZM<4r-gH9XnjsaT6k$riUn6;WuaM7u1}hGNJ_DG zW_W0Dnxk*3Z&ILpQGlbqfq#H=WPz_~acF*Kag=MSM?gVTo_0m9cWAMXudz>dsc|xw zbEsQHc7COKaA;XlWww!LenGH%Ri0UnVX$#lm|2c%c3xDlhg)KidwyYXuCsnX?=ETj){f4NoBHUlyj~zmuJ3zRbG~lQ>MO$ zcTreCMvA4ck*7&=m8WlDqFYf?Mukh2n`=>IZbn)cadC!jYKoDmsiCEUet52@ zPr8DUzI#qirbm`Vj-#tjK%!}7YPn%jp{I{uxOq-#QDl*MrGG_Xs832jpeI+kX}z1D zab<*da-NG>u%%m6Zmw^nVR*Jzfl-BjWvO4VLAps^Sdd3Sfk7yjuCA_vtD$+KX>w|= zf3SH`VP(3Tv9^1eVUlB_Nq(@oS4F5%RAyk7k*`5mZeTu_&sQ$~HP%s$Wg!7Or8gZ} zsIYe8p4uvTR^ERxPg9q(Z#?JjpOdKGD|$HefS|q*kN=F?79IInD+TKK4R_D;xqRQ} QNuaX<|Es(G`tp%)06v922mk;8 delta 1641 zcmX@XK7n_FM!k!_d5MuxZe>K3MTL8$Nmyoplg7Uc8Ifkcvezoh_R!7y1TD?WKgL` zfPR{{YkjzOns+*vpJ|pwV1=V)P??*frM5?gNqJ?anWslZX?kE%l5??FuAfUzRAz8W zQJ869rg?Z|wzEk_fU~=gi$`#li?&ASrM3{+_QE`q@VTMPZ zU%8vJTUlAq+@=blW8EA zXNIv)g^Pi!hpUC5c7c0UV5D)FwqsO=L0NW&pG%duX?|EvaCTOXlTScUagLX#g;|NI zNxid$Wm#!~lT$=VFqfl?m!XA0q(M%xPkE`SWmb-FgsF2_aaDz9l(UgXRcWwMR(guF zfswyYQG}_hvr&+btB+}2?r(=Y(w`r1@rB9hxx}kAicvg0iM}3Ktc1d7PYDIx>fp>B^S58WDVQ4^=VNj80 zv42)jK!jnTt8;QjuwQsda!5%~pl5oBuW_cOzeR;3m#&>cadC!jQE{R|phuChz9Uy+ zVQ#o%mW5MlnO9|KZn=Jhg;`;RYe7X(L{?6qV|I36V0w~ezDrs_Zh5LnPNHdZS#nNjW?n#YfWJq9L6Wa;zNvnsqp_!#dAYBXZ=k+oQD$IrWuAVRON60WSW0Cj zmuFFafoHLEuCJGIfU&V-NQ8w+a8P)XerkxHK~Y3lg>jBskV$2DP-$gQLA^_QL~=xg zd4Zc@a*kz$aj zWt3ZfWrbOOP)bm0kb7liMP;O+MQORKerTzqM{-$qriZtYTS{SgS-DY?V_>$nL8@1( zryG}VaAA^Bo@HWCT9RLKR+YD3zOQypgr!%ZYnGp{S$UFaS+be0X?<{(e{zybi9vX! zVRC7iv9piHn(AdF14~Oyc#%X=YVs-aZ*VnPDcrmW4hQ-dV=siOwcv zrp@H5$j^QSWh2_ESVV3@-xkWA|dFkoi>7JJ9f%(qC zhRMYq-k~LC`T1PBy1EJ$&X)dO!A4$z2Bu|}$$=#v5q?>Y6{!Z1g-O|og_RciK`Ei> z5m{+zkx2$z*LQ49@Yq=NN&MWuM1!6OO%LPLu1RfBpM4~Ux20g-r@t$GLbzY%$;{K) pyTyC;LoG#S;gb#gPcO~W|99%C^N&++B9vEcVptt-H|u5U8vxWfEqwq0 diff --git a/secrets/restic-hetzner-password.age b/secrets/restic-hetzner-password.age index bcfb630abb859b7b817ac47aa75fe3e50660c0ca..f75fa697b1a4a831972a84a421b673b5ba19cb71 100644 GIT binary patch delta 1244 zcmaFB*TywLqu#|U!Yn*8#Lvv#C)70}InBo)%tbrVFDbA*DlOEo%)=rp&>%M=HM6iF zFuW=<-8Z7bGqS`n${@|dE5bE9ERw6ZI4eY3J2W)KtHQ`L!>hQ|ugX0o(mcvI&&jpK zsieR%#J$YKJk7fxD>B#JEI+g)H#H(P#3H{aFtjYZpg!D}%RAYrq{<^BDzVJaCBwhW z-MuW+(y72GF)Fgk*gV3;z#uZDJUPv>*rPB-yVA5U$Fd}##4|L}Ak9fXB*59vkjuot z&C9LKETSwdHMua%w>U7+E4!>b(Jdm;G%zeYGCRoA#5Xb1Cnwd}Ju2O#(#_I2BQn_E zBhVr>wcfV+lgTsu4}qbNDZE!!m`z`HQV#l_K|D?cbaz%A1?yD~S~z_-k_z%tp}xzxkoE2$v0 z%FM*nz^KH?FGJtbvq;}3*~!z=FWK9y$k(;pyx!O%sW8hR*qqBW*u*k0BdW;MJ)_8} zG|}J0#VjnTsL;}{(Am#hKUurLv!cK?)Y8ww-%Q^kr^3V3+tu92yfD(Y(j_P{%h;03 zFx1!A(Wk;KJj={EFgM9v-!L^i*{Px^xZEQx$jd9q&^*(_CpjrEIL9YEB*i7w!_O%KPM|a(kMN}v?MZ+OV>`JxHv;MHO0u()X-8vKRnmd zCtbm`GORGwC^RVDKP)LJyP~up(x}WdB*Vh6DnG!&EF#k{$;-$zBrzi0BcIElq&}tG z%fHYuGF9K$KwrC{GT%8bG&Cx=IK7Dnc# z-evlhIbj|lhNaHli9x=eC1vTp;eP(ERY}GsT;>LD#*PNwE(T>qZdpO$*;N6R>Av0- z;l3`p$)=gwQN^hN;h~mcIYEI2=w9)U45}&%R46xfE3Zfm^sor>HBIsH46vv#w+zlP ziZsql4>fYkNcMMkO*1G=O%Cuk@Z|DwF4PXsbMp#z%RJ z6_FW^=2>M1Tqkze#O>)fRJ2&Z8X@-c`m*1emLk_353=&k5?a}?HOSA|%ikm=E2KOnE6>GDTR*$1IIld}-%H=G#5laj zEk7~aJ*Ye_+}T?@EZeo9#Mmz@#F8sK&@DSP$uKoH!nDZKq|)ERu&lD!r>w}p*sm%v z$j#N*+%c#m%*i4rxu`18B0pI>Gs4R&I3*$^H>f--rQW%KE6vM2BiJvm$ihJ1G0`Z| zSKB2l*S$QzL_0AcC9lG2HOR#=)59nr+sjbfj7vX7 z+uSoPG0(@;Ez-EE*fKYyAjz;aLqFBq!>uT(xWL=Q!XT$GDA6_2JhC{z%O}mYaP zAS5KJ!q+r7*&@t1DLK6?BqJ*)E#Etw%gE5w-PgIw$TG^()yz29E!)wnv@F!cD7!qj z(!9*g#iT0A(KIDIEImxyuqf56v@qYYFxbZ}sXii5yI8-dz@5t}H`g&K$3IHDJkP1f zDa6|^JUJrF%qJw$H8C{P*C{Q-*Q?4cG~C6{BR?hG%*4?&EhNG(+c4EI)F~+~AkC30 zq|DGeq$1SF!=TJbKh!ugBGoZFF)}&K+04%;+r82+s?@FAFW1G`G{~dS#5c<{%rwi- zu|6dvHzUt5QQOnZlglllG$bs;BE-$B!pG99!l%5#G%CZ>*w8J_)5sz$FC!{BJH_1F zpt8(3qs%wOKgHQVJEtVb$+E;T)il{O#E>h)Gru%T-^o3)+%L?+z%|jSAhfa|IVd|K z$|u<(JEFufJ=@FFy;9rR)Xg-Yyu`U8t3Dvy)YUP$B+xn3#l0Yrt3=zl(9EOKzbq=( z!X?WuEzd10EX%FPq_C_qIXP6{EUK&^IXE}OP}?=1OV>`JxHv<%s5ns}(4)v$-;v8H zAg`*tsG!us(#P8*(!j~rJha%uJ;yXBB2B;C->WDx)v+M5JTKG0#L+y+D=EVur9Q+p z#NVVM$34@~G@>+-%QP~zvM?ngEJ)upy)efu!?{x5)HOW2Ks(UFG&sC6vZAak$W+_2 z+}+%-JkQHBJg_X^+}YnHBiAY0w_IC0i_0?DAjl)byC~1QC`#KXEv?+3Fe56dxX8%F z#MB}^+a)B>DK)Fau`IyQ#mmgexjr$?BrL_y(xtf2Cp^m2xx$$%C^IZD*F3evEjuj5 zG%u~(C&(#3CC{uVJVM*lyrjr1(YzqSF;_d&IkUK+G}zNJC?h4$H!43bydtb5IXo|f zD>KR{Jj^Y-)ZHTAq%x=|I5p6xILI$Q&BrX&-KnB5Ey^u8FS0N<)3-Fks6MgK(APUF zFiSf)&@`af+ux|7!i38$q{=ueyCTyg)IB}TB;T#l+cn%R(b+#QG1xsVz}GN2KRGYU z%+#kez}q=2)F`Cb+}O>~+#tNt*vmKAS38+2C$Yf1!mupL&?DG1r_j~K+0vxaGuKJv>d@NnhW@qtM9MG{>`G{4H&FSIlxKf}eFE8i#5*xOV;!qdgv-zg-tGAy7hvB1wLBqud8yeQM%$SkWg zyE4&BxKWGS#WT*v&97 zGs-wK*hAY#J1g9>ki*H{C)Fh~!gumrCh>Zo?5HqrOY@@8VAF^a!-(L@qRaqKk3?7B z7YC$nUI-!eb5)WY;^H>VWeF3nz2!90OQRNlh^_H8r$U&@M{}%5zjmFDo@M3iS>R$af6R^$s$vs4q&XEDEp6 zHx733_0=zTu5$FOuq^gVEzR)c@^g&H@-)peOE-$}i1P99j?|CxPjfQzGxRE}G%U(X z_R29R^+?y(4lZ&;w@$y(C&fKbAwAj6KwH~9H6Y)#Jjv0~HOQnS+{N9kBHP=ssLU(L z*E6Kv*EKS$(%i$tlgr&R*~=*)Fwx5*SUV%2qAI{Bv#caB)5$9$(BC8?)xa{Pu-MYe z+*RA$f=gFdSHa2AFH+mbvn(q=!c9NY)jYo}DI_&8JIBba*tImX#4#w!uf(XpvBaa& zfGgu-kYM!L+uVJb^`|ywc24Hc Xe;#4jGI__8BN~}Or>{R06fOV&a2jVS diff --git a/secrets/secrets.nix b/secrets/secrets.nix index fb4a4c4..8724ce7 100644 --- a/secrets/secrets.nix +++ b/secrets/secrets.nix @@ -11,6 +11,7 @@ with keys.users; sisko pbp picard + pike ]; "magit-forge-github-token.age".publicKeys = [ ccr-ssh @@ -22,6 +23,7 @@ with keys.users; mothership kirk picard + pike ]; "hydra-admin-password.age".publicKeys = [ ccr-ssh @@ -40,6 +42,7 @@ with keys.users; kirk picard sisko + pike ]; "hercules-ci-join-token.age".publicKeys = [ ccr-ssh @@ -87,6 +90,7 @@ with keys.users; mothership picard deltaflyer + pike ]; "cloudflare-dyndns-api-token.age".publicKeys = [ ccr-ssh @@ -97,6 +101,7 @@ with keys.users; picard sisko kirk + pike ]; "hass-ssh-key.age".publicKeys = [ ccr-ssh @@ -117,10 +122,12 @@ with keys.users; "forgejo-runners-token.age".publicKeys = [ ccr-ssh picard + pike ]; "forgejo-nix-access-tokens.age".publicKeys = [ ccr-ssh picard + pike ]; "garmin-collector-environment.age".publicKeys = [ ccr-ssh @@ -164,4 +171,8 @@ with keys.users; ccr-ssh tpol ]; + "pike-wireguard-private-key.age".publicKeys = [ + ccr-ssh + pike + ]; } diff --git a/secrets/sisko-attic-environment-file.age b/secrets/sisko-attic-environment-file.age index 97274634192fa829b29883ed306a7d3b1f4fd675..691339e869d9d15f24471d3361bd41acf690b2e1 100644 GIT binary patch literal 5287 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 U%%4isZLT}CIc`l5kNEF<06(q7n*aa+ literal 5999 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 diff --git a/secrets/sisko-restic-password.age b/secrets/sisko-restic-password.age index c754950..591e61f 100644 --- a/secrets/sisko-restic-password.age +++ b/secrets/sisko-restic-password.age @@ -1,30 +1,17 @@ age-encryption.org/v1 -> ssh-rsa /AagBw -TKW/pV8ANvSWay5wTsFhV0CDSqn/wZAzNRP0WgRzBJbsrFP2/YYkhRHFtwkMjeXm -qEJPeXYdpgT6+FXq3nfhTaK/AbeebBRWO7dgGfKBosJ6Mc+PMhephrQ+oH6/zbG5 -l5QclAZ4NOfkD3f/nnqog13nKTijHjHcTnEWYZZz8RowaUEkEjo4Xbgw1MUbC8yJ -khyqZOTVFnfKgcSW5rlnsbrZKkmwYYY8mej27I9AFeSLgE0DOF3OWxrNxuPdxICp -h/kfQ2lPw75TWX5vj8WKOOxjAvheIiJDAAdfOoroK1BqKAUmpC6HjpC3cJZhrMmE -Xtob+esC39M8QBO1vUB639/I0AKAMbn3rE617StUr2QyyyNahnOOOPaZplCk/uM8 -Sde8d+VwTuvJXosuxi7Z+lQbeyCg7WmRigRoSiL6+9HcdMtDMDRjtloVq1o+iHXc -5A99Eeq0D/rBVSDmXKkVpcwLfruWL1v061+K7PPnjKa2CjnoEjAZDfqeQI+OBLZP -zqJ1CcQUnujYEpyhy4YV1ZpLZYOt48osEhUvG/eFnfymeDeAVAts725uzboN3uX8 -ETM5k0cW1ElSTL0BltRn8hRs8BSVXtKIucRXERomIwK+45ux8DHFS2NQlEHs2x1g -d4coPbCgMt7nBPYGnAUOYaWyw6dcaCAPNoVVIyUP1ps --> ssh-rsa QHr3/A -GM2npxcLnNk81fSJUW9tcDnaKcx42cuxaObl8oCB43GIFm7K5L89FHj4Ww9RUJy0 -V41RQ802OBgudJqOI63DcW7mZ905fqLTnKZ75EJJSGgqjY0EcCOc2Oy8kV/BidWP -scmDbd+mQ1INuZBr9GBkD1brESh4vHtByPD6wkFKXlVkVTL49EQt8uBw8/0+uF0B -5a1aRQ09IkVPjluDMy2fc4VpgvkdnuXsMRD8vPk6gGzVlii72htGwYYWtIP9CgpY -trp85RxVGuqUTULFBOGXcc7YjfE1DWkPoeokCL8m7aVzdasZl+cl/Ick6rJueuQI -5ESvYKqRTfZ+oA8MapNtAZ7Nl8CT8VJoRyI6IQvPynRXCBK9D6gEAWc5l6Kv15Fl -73c8Q5I2oIaLOfeMYcZ1bL5Zvspa6Rsb5BtvOuOkacxx7GjMar1G2tUY4W3vFqn9 -yf8/Uc61LU6BYVvFh6DI6TwHp6xp/DrWZYhXCvNfirMn1NSw+8q0EEcIr2sUdkbx -gf2onMjtRP/Mki0oqkMTXnIsCzL/Y7D13GdouVqz0Ttbg/BEa8RnSaJxDIwQ1Wlz -VCC+oK/jTr+0pfP+3iR75WuGC0ce+muEN/L29H6wFk4N2oar/r0BYZZ6BtV9I9kS -8xnIxKvrcJ4O5dYy4f/lMeTRlPp6pz1jjtb6AVcNzHE --> ssh-ed25519 +vdRnA qQe9nesjyr3dCtSa7xfgsw1RjKx5UGTzg+/XrcDzl0A -912JZmwcsvsg2D8G9LakTfOa70hCkk4DALZP1fKcw2A ---- GzPDMAdvn0Gvp+gqVd/1EKvMPtqPhIjpVYRDAcvhwaU -Ș x -ydOSa)avGჳMX %O=`~$  \ No newline at end of file +pLExrrrritKhmHonhKGK5X5BZ2u6ywexZoKSqIqG5drChitojcAspTaICrFIlmcn +nrKVKDiwCvdekIHV0iotyg88FsBOCh/CtyWaay8lhPOwhy/zYNAZbe+UG7yxOAUB +rGvGzOLfOnk6FHDpsE1GjHtthhel0IYyXkEfAj6TFjzI2TlRXN+VwX3Yu5ko9cgu +N2t1fzCeTzFZ/4QhRKfjvswl/LUCxplwT/h/i9b6hMtyMpV3TDYXYCxYcLkK3eCu +n+MAD1ZgxmxExYF11YfKQFZppOoEPdimmCbIlzZKHl4+4Sij3bNTtBtXyk7QjOBr +1FuwNKjpc05MdDnWYsKCHfqjNDmdvrDB/UYIJqBdPVj3HO8MQ6loRYhoimBQqug9 +HF/G/4PR3gFZXhbXaTih5ZQ5ozp0scEHwtNWK3jN6WF3KqLxkqVjcwMv/picoPRS +ceT1hNTUoR4PyBTZuRAYvVcdc1z3nkN0FZ08b+PTtyAR7yWlhG1GBLqQmQG0w74R +iYAT2ZntjzDUki6MCl8cqyfQeysqNk3JYmgDNYW4bsMKVrzlD8ULNYt8Zo1pbL8r +J3Iydedbv+l3eg/QYv5kPz7/6oSjmNiSB2nsFFvvTdChWSOgNUKUvYhSKuH3JGPA +iGL9l3m4UBfot9DJqRzW2k4RmckeOTBossrj2YOdmqw +-> ssh-ed25519 +vdRnA U+pN4CpCDWkcsI153U2rFfRZpVuGSCkHSNgoB1ZssnI +ew8vABvUVp9er3y81OBY9Wll72WoqESgatcQ55QdjPw +--- sxKlF/97wNPlrfT3/8zW0ln9IH3m8aka5crPz8W9vKQ +Mͱ/q}\*%k Lof"q[8.A \ No newline at end of file diff --git a/secrets/sisko-wireguard-private-key.age b/secrets/sisko-wireguard-private-key.age index 77f6f60..ae717fc 100644 --- a/secrets/sisko-wireguard-private-key.age +++ b/secrets/sisko-wireguard-private-key.age @@ -1,30 +1,18 @@ age-encryption.org/v1 -> ssh-rsa /AagBw -cvRfm6k7zHvcAWGj9Kpu0HphlcfmYdZtp21VZUKx5RWH7hcijvSxo2mgk26JVwb9 -D8sB3n0QoLlE5+Ej3bmpepJUCeaUVKhbLiwMzeKGNUxlzGhbOlh+aj14iWM9aWVZ -kn7f1TlnzhEqn572z7DvKqVptDHiCJ+b3eeGUr9Znhgnp6THvoMIKdr2wK798oxT -RBnL0bCZDDJUM9rYZb6qF871ijKAqxpCtkjzYfSGKHBcgQ+lsehRQxH7t5O79j/b -PXIvg5ZZLjjXsUo4tO1P7TCv0L6CheQwlibCHgkwdy0u5VpZ/Za2IyRAxLD803QI -K0JTjlgOVkPHMWeG7VMgr/DLxn7xhK4ZpnrzglaLe2+wueK+VxxSkInoEgbHWfBx -vj0MUaY/lHcAs6RJIu+7U2Y6NnV1+kNpE7qqiDRCi/pz2fAAgIbeM64ymkNsNDOM -J0yv5guQNG+gHWqGK0B4BnNQUANZhhr2tljzGL/PTwDHPXSQ2Qz0tFqHO3VxSHEH -uyqhAe9oC0IunIcukbPYB8dPPM5LBeLvaT3l63B/I0HosRUK6Q/ts0hZsBgr37oK -MVuLibW0Trj491UmSNEfLoLTvXv+sHQy83IjtU3Ubwa4fXxpg6ql7WbE9sHJGPR9 -8u4JDj8b9iYAWa6+SUUf+a3y664FRFrMSWWw8uINKCA --> ssh-rsa QHr3/A -OCTxQPpTZOSsG7ZIupk6vp62ueJBX9oE2aFF7DRo4uM3fhtrojYSELVrmpvpIxCP -vepb976mdGS2IE1YQWLfZMW2KMi76jOPNKIFWcnvTRcVVsNwj13xZYrQCGfRx1LJ -Flenvyr9IL51xhw4fiaO0lBcGJZtTGe4sK9uQj0g1zaFx70t/4ZAu+w0GdGn4df2 -xs+ikBhzWovQNWsDjhXZJuxkds2S43luncAT5sElHOvgw8+wV1zFAwNkjyJnEOj1 -grUnYK7aZdMalu9N+Iz6S89+m+JfRRHsL4fk3570NrdQDfRw1fhEong/EaNOx5+M -mW64h9ac5TrpwTdJdY6v2etBfnjeDoRmxKPdJBxawSb6baJi2d/7L12wju07bEIi -HRVvLNTyvPiVB+IPyUUpI+eogMN5tJXEQKwf3K8hiWgXyX7DmubgdBjEqqLfkUjn -CS27J85QpSdPHFaVr3g7w49LW9Pey/s+zuIpdiGjVh8+fMB+4y4zhKWvVuY0X0n/ -QOxgaCykB/mlR3Prz8bOLEmN11RVVE0WWoV1+x205/sX/THdyWcg1/v0+sx/IaVs -mh/rUFV1cpVsYluS3VW8/BrjwrKwRwqtgqGu0pG+sKetkeRY0rf7uGfQjlwQJbej -YcfuuoVy/j7ejnHP9fdEaHrBvVbF9CkH2iDrBJvd2I0 --> ssh-ed25519 +vdRnA pKUeraMwzhFh8kCFPf2Tm7NVvQkX5NPB8emAk/gY1jI -0q4Kzyxs4Izmo/NpL7HSt26KWFpkhT4TUdbSdMtgHLI ---- /W7t86EbCxe1cpyDfpD9wzk4nqycHHqNiNzaZ17YiJk -ǶA+nTW<^zp {-{ -m'1 m!lɯu'F0B??$y \ No newline at end of file +mUgaBjme6NXIzta4kZtrgKw7S+N8ugSwm9V7epeS/RVSRubWeoEFLS9eaPiwlEcT +ex23Z0sWhwkpkeuG3FEjBOe8VSg6NtplKdnNBKGa+kwG74OQA0msDMwsiOb0ppDK +V8XfMEw6Aog4BXBykGP5/44YTEFJ6CGa3Z6O0+dD2T+tjcRcNOZ+bFjbGvQArEYu +E56R7ydPNCRb99DsDpOrd/xbmcmDOrdOgUSmYgHKrwaYDGn6u+wIGcMUrZxATTe0 +1o4cog7tZ/JPSm7fVRPyNmfVumfXDGr2/0zV8jgJL13r4GjPuycC1bg4WrQGk9vJ +e4gWxuj5D7Zufa5rfgbP8QfFupBKQQqjyp3PU3/354hVIUB9ZRK504TXI2NnE85i +oe0HcBhlibyse09K5p2QTbpafNK3X6v2S4HuOQH1DAIz8xR7PACIZzM3YmhYz8aF +1XksY5dNhH1C8E7woijlgMm41TYaqN7rcdTEMLQJdpfCh5Rew1A+tTBar0i1Hb8I +VD1NYU+czSdQNau1MtSF3JvQD0WmKw4caOv3L6a7nS7HEIvRPEXlHFzujoElWOuw +dRvU3LxRZ1OHxxNy0ju170LAoXZJDmccNIwYdL/SfJM9aaAJSbzyuc68QzP38QxQ +AuSLKMP0o+jKKPf0Knb2emKuzm7ntLXY30zUdt9dAgQ +-> ssh-ed25519 +vdRnA 8hlOzHTHf+CajHxLpt56IAqY1D5uODIAeW9w2C2PGG8 +S8qyq6QMLfHd+hnCDwHubuOZobEdtH4tWNCuDqdzSfI +--- yIbeEytnq5wrKNrxCoOLWEIabw39pTYEgtUx8dwMBmM +"Y~7pT~ՂW6 +9YZ%LIg<fim>L `Q^p ps \ No newline at end of file diff --git a/secrets/tpol-wireguard-private-key.age b/secrets/tpol-wireguard-private-key.age index f870a1dd2a00dc5c855555075227b72bc5b2b5eb..9281a797be894eb9beadaa64c951f44473cc12ae 100644 GIT binary patch delta 923 zcmX@Xeu901Mtw?%w@XNQVOmvYXjq`ROK`ZaL9%0Mv6Dx!w_{OqWqNR7roXRAx{tB8 zW2RS0M3$qckzqkmR${Jic~r1Pq$O9fiED0Nj;V2Qx}m4Lk6}SUuzs<5rKgL3W^rYu znMJvaS!rQKZedtZva4xGNoHiETWMOUe?Weivq6coUwug>S7KgLxW1FSW17BqQDRDD zL`9KdSa6Y7v4urWvVo;*WpZ(TMv{9;m`AdSc|dSrN<_FxXoi1TPPSK;c3xFZIG3Tb zrDIO0ftN>qs->$%YEpQxmq~7bXGN)pajHw1zq_-(M~O#pMOA7>vQv;#R!~^Be`S?v zq<>VHZ@rmEpNWO%Bfk9S#EPHLu6U~;($S7CB;kdtAyvy*p#nQ54%nZH3&fKjQpS+Gw< zh_XjOW? zzpI&9YNktJS(1^tV_34jMT%KUWui%xQF?}Uxn-(BMXr}mq=99qiL+yxzKM~Mag;Y# za!7H7d10w{l)0NlgsZPvZfd@TTYy<%giBOTRE23kNTN@YL1;v-QDu>3MP#OvzD0U^ zdVRW!Z&_$ac)p)$7?)*Msdt)rkV%B4hjvhzo11@Gc5z;qPkwo&e^S1FWI<+XiDg7o zZec)hX|7Rmx@CpAYqo*5c7&mUTU2gDVHQ_$nRBvPQGSYNq?e<6T1li&cz&g8eztpA zW^kmTw^_1Oq?dCAS4DYgq=A8cm79yR zsk@6WH`p;ZRy8Q#UdiD?Ew;pKsWT>5zihNT%P`XK>9DNYepl}SF4e#OQC z0jVC@+Ew8ZQ5lhWg<&b)mTrNbT)Mit3Le@n2Cg9)KEVa~MQPrJ+QG#}e#S}p<^_@I zZpp^le))lZp}rvLfk{|dW^sT?hF5TwpLa%TcsN%h6qxSM%tNJ>CKo?oD^x0#cZQGH$}S9nfZsZqK~QE84@VwiTY znYUkNm{Vbnw^yF2kzt5`wrgogafDk|qN7(qUQn37yQx8dzD2fWT0m7+gkMx%7MEXP zu5X5WmcOe-iA%9%h_7K@xUWfNq)UXcx35d6Pg$~)M`d!Dab;joRdKniSF%Y~p=G{L zutjiEWxcDmiAN<@iicT7cDPSwkZ+ZNSwy;tn?XcontP;4PI^wVZ)RYjUy5IiK$3@JVVQwTV3xMCQ;}<= zX?g>hhMkbYKRS!RV(gqd-nUt(%iq+4!*Q)zgB zd4#8VKxsghxpzuvx~sEans0JRa#*f&a1vLAhj(sdcAAB!MR2BJO1_(aR8pjWL`G_+ zr+$@Rwn2rDqrYE(r?yX^SyXCnsJ}}_fmL!rP;hW|MzV`{U`mNIS8-8AS!GCBq<^-F zr(0HTR%y18SEZ|ASbvDnFXOq zZiSUq6+XsBp^;G)rY=EAfn4Ru`{Pz$ik2!<$yzmQ$~<$Q+>$NT{Xc#t?E7P|a(XQL y{~b9m8uzubPcvThvA^{(@2n5i&YNPkZoD7S93{KFXTuK7D3$#tDYIMj^?U%yFG7C+ From e3849773fd0a138f6d43a7fcbc481b55c2f77284 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 11 Apr 2025 11:06:33 +0200 Subject: [PATCH 371/492] Fix samba --- modules/sisko-share/default.nix | 62 ++++++++++++++++++++++++++++++--- 1 file changed, 58 insertions(+), 4 deletions(-) diff --git a/modules/sisko-share/default.nix b/modules/sisko-share/default.nix index 22f52a6..4ca3368 100644 --- a/modules/sisko-share/default.nix +++ b/modules/sisko-share/default.nix @@ -1,3 +1,4 @@ +{ pkgs, ... }: { systemd.tmpfiles.rules = [ "d /export 770 nobody nogroup" @@ -34,10 +35,63 @@ }; }; + services.samba-wsdd = { + enable = true; + openFirewall = true; + # workgroup = "WORKGROUP"; + # hostname = "siko"; + # discovery = true; + }; + + services.avahi = { + publish.enable = true; + publish.userServices = true; + # ^^ Needed to allow samba to automatically register mDNS records (without the need for an `extraServiceFile` + #nssmdns4 = true; + # ^^ Not one hundred percent sure if this is needed- if it aint broke, don't fix it + enable = true; + openFirewall = true; + }; + + services.samba = { + enable = true; + # global.security = "user"; + package = pkgs.samba4Full; + # settings.global = { + # "workgroup" = "WORKGROUP"; + # "server string" = "sisko"; + # "netbios name" = "sisko"; + # "security" = "user"; + # "map to guest" = "bad user"; + # "vfs objects" = "recycle"; + # "recycle:repository" = ".recycle"; + # "recycle:keeptree" = "yes"; + # "recycle:versions" = "yes"; + # "hosts allow" = "10.1.1.0. 127.0.0.1 localhost"; + # }; + settings = { + torrent = { + path = "/mnt/hd/torrent"; + comment = "hd"; + "force user" = "transmission"; + browseable = "yes"; + writeable = "yes"; + }; + }; + }; + users.users.webdav.extraGroups = [ "transmission" ]; - networking.firewall.allowedTCPPorts = [ - 2049 - 9999 - ]; + networking.firewall = { + allowedTCPPorts = [ + 2049 + 9999 + 139 + 445 + ]; + allowedUDPPorts = [ + 137 + 138 + ]; + }; } From 035540b33e0a42727acf07f624b7f55567c89fce Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 11 Apr 2025 11:06:47 +0200 Subject: [PATCH 372/492] Avoid error in recursive let --- hmModules/niri/default.nix | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/hmModules/niri/default.nix b/hmModules/niri/default.nix index 528f7e1..61a3301 100644 --- a/hmModules/niri/default.nix +++ b/hmModules/niri/default.nix @@ -29,7 +29,16 @@ let }; }; } - ."${hostname}" or niriVars.kirk; + ."${hostname}" or { + floating-gptel = { + rows = "40"; + cols = "140"; + }; + floating-btop = { + rows = "40"; + cols = "140"; + }; + }; run-floating-gptel = with niriVars.floating-gptel; pkgs.writeScriptBin "run-floating-gptel" '' From 25425b6b7c2d20e59fcfc49f37b9ab5ad5f92e4f Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 11 Apr 2025 11:07:19 +0200 Subject: [PATCH 373/492] Use `copilot-language-server` --- hmModules/emacs/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hmModules/emacs/default.nix b/hmModules/emacs/default.nix index 61afd35..ccaccea 100644 --- a/hmModules/emacs/default.nix +++ b/hmModules/emacs/default.nix @@ -46,7 +46,7 @@ in nodejs_20 qadwaitadecorations kdePackages.qtwayland - copilot-node-server + copilot-language-server.fhs math-preview emacs-lsp-booster ] From 205311a514532de736ce7054ddbfc71ab8f5ee1a Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 11 Apr 2025 11:07:37 +0200 Subject: [PATCH 374/492] Allow home-manager modules to use impermanence --- modules/ccr/default.nix | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/modules/ccr/default.nix b/modules/ccr/default.nix index dd1f0f4..f2fba3d 100644 --- a/modules/ccr/default.nix +++ b/modules/ccr/default.nix @@ -70,6 +70,31 @@ in type = types.listOf types.str; default = [ ]; }; + + impermanence = { + enable = lib.mkOption { + type = types.bool; + default = (config.environment.persistence or null) != null; + }; + + directories = lib.mkOption { + type = types.listOf types.anything; # TODO re-use type from the NixOS module + default = [ + ".cache" + "Downloads" + ]; + }; + + files = lib.mkOption { + type = types.listOf types.anything; # TODO re-use type from the NixOS module + default = [ + ".ssh/id_ed25519.pub" + ".ssh/id_ed25519" + ".ssh/authorized_keys" + ".ssh/known_hosts" + ]; + }; + }; }; config = lib.mkIf cfg.enable ( @@ -120,11 +145,22 @@ in }; } ] + ++ [ + (lib.mkIf cfg.impermanence.enable { + home.persistence."/persist/home/${cfg.username}" = { + inherit (cfg.impermanence) directories files; + allowOther = true; + }; + }) + ] ++ cfg.extraModules; home.packages = cfg.packages; home.stateVersion = config.system.stateVersion; }; } + (lib.mkIf cfg.impermanence.enable { + programs.fuse.userAllowOther = true; + }) ] ); } From ca6f5e69198443de3047f276daaa0d453a0e678b Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 11 Apr 2025 11:07:54 +0200 Subject: [PATCH 375/492] New wireguard private key for `pike` --- secrets/pike-wireguard-private-key.age | Bin 0 -> 968 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 secrets/pike-wireguard-private-key.age diff --git a/secrets/pike-wireguard-private-key.age b/secrets/pike-wireguard-private-key.age new file mode 100644 index 0000000000000000000000000000000000000000..05b98efa68446545c40a69d4f2b0c3a0f10a6904 GIT binary patch literal 968 zcmYdHPt{G$OD?J`D9Oyv)5|YP*Do{V(zR14F3!*`Do#|;cT7xoD(6a!$Ti9H^)}WH z%6AE_NHX#Ya7<21Eem!u3eB~2Gb$=F2n@|hHw(>9jq-EzN^;Bb2{bo%c8PFKGz@Ze zbIRt*w(#~z&dPMx*3ZoJObT!=EAcSTGfB@$EB5iRO!CYsc6Lh6cJ}wr^i49+PW7)a z$+4_*%P=m=b$6*sGBESv$|?;C%PTi^b~h|_bTQV}_Oh_>bW1X~$jLIQ)OL3?t#S+r zO%L#MH+GD0O-%_5_4iCI$j*u|uSzu0PPcG(;d0IlF38JIF^^2nFfy(%Gz~Q@taQ$d z2zQAzNXyB~Hm-0gcZm#0&CLxcOi$BJ4KEG}*ETOIt;)_1F80awaOcW!jB>BCbgc3S zsmKb^cJ#TrPfRmR^9{Bz zcX8qJ^RKAzi176EC=JUl_wtPJ&W}uY&kptvHh0QMGp^DPFZRtdb1sfZ^zg6nHAxLF zHz>*XPcn!IF!XjSElxAxiuB1d4K#9dG%e3a%`bNL&dN76i1ev2jBxSxH7c_V_AiYH zHM8(_4bV2MaL!Kg&2cu$P4qWNFN^XD@-wQ;;mUKiNYPHRbPP4{_RFX;GBwKdO?C;W z)ORjVPBqWS_b&-HGqETwOK~>#j_@dm^vU*gb2Bk=NhxqLOeykpH|EN4EiLdXsZ0*A zG>8g_G&OP#tjtVL@l20O^GYhR^i0tYPV&h}2@ls#vkWycG|nk6OAdE4OAkoN^73&n zw@l^A@U-yH4)Z9oEKf`f_Q(vZ@F~sCtP1cjt8k05Offad2uY7Hi-__~&(Tj$ch>gF zbo9~B&Uf+lO!E#%3p7mQs`L*ob~32+DlyOXFift<2@Q`-wMZ_~ck^&7igZkKv<$Nh z2ry1D@F>lPrQ_5TBU4jDO9lVPpsKP!1=IYrGS@8cV9zvP-%zt0*W!E&e{IJ+S4$s5 zZ{vvKkV2PoKVSXqj4&euE|=mc_wr0LL+3PYpD@=<(~Qu_N*8@|bFVCO%fx`>oJco) zV=reTbA7{XE?r$+g`y%ypENhGT(7(+v+yd@q(W0~{S+tDY=4XJ2&Xi&klcvWfMBB} zlTt@tF7uSd{EfLunv>ptKAL-G?PSsG46~+8T|8yV(KGIK$LBZIEf*_kb~&@B=QneQ mGXf=j5nzsom*zilkT{dJb#H6r{(+vpA7(zC`8i$ literal 0 HcmV?d00001 From 73814bfa47ec3b7e5a813205878415e7509e4320 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 11 Apr 2025 11:08:47 +0200 Subject: [PATCH 376/492] New `pike` host --- hosts/default.nix | 27 +++++++ hosts/pike/default.nix | 176 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 203 insertions(+) create mode 100644 hosts/pike/default.nix diff --git a/hosts/default.nix b/hosts/default.nix index 8dedf86..87197a3 100644 --- a/hosts/default.nix +++ b/hosts/default.nix @@ -121,6 +121,33 @@ }; }; + pike = { + vpn = { + ip = "10.100.0.8"; + publicKey = "16ctjunXCXDPLSUhocstJ9z9l45/YuJFxlLkpoxChjI="; + }; + extraModules = [ + inputs.lix-module.nixosModules.default + inputs.catppuccin.nixosModules.catppuccin + ]; + extraHmModules = [ + inputs.impermanence.homeManagerModules.impermanence + "${inputs.homeManagerGitWorkspace}/modules/services/git-workspace.nix" + inputs.vscode-server.nixosModules.home + inputs.catppuccin.homeManagerModules.catppuccin + ]; + secrets = { + "pike-wireguard-private-key" = { }; + "chatgpt-token".owner = "ccr"; + "cachix-personal-token".owner = "ccr"; + "git-workspace-tokens".owner = "ccr"; + "autistici-password".owner = "ccr"; + "restic-hetzner-password" = { }; + "forgejo-runners-token".owner = "nixuser"; + "forgejo-nix-access-tokens".owner = "nixuser"; + }; + }; + tpol = { extraModules = with inputs; [ lix-module.nixosModules.default diff --git a/hosts/pike/default.nix b/hosts/pike/default.nix new file mode 100644 index 0000000..b41a811 --- /dev/null +++ b/hosts/pike/default.nix @@ -0,0 +1,176 @@ +{ + fleetModules, + lib, + config, + pkgs, + ... +}: +{ + imports = fleetModules [ + "common" + "ssh" + "ccr" + "nix" + "networkmanager" + "bluetooth" + "dbus" + "docker" + "fonts" + "qmk-udev" + "mosh" + "udisks2" + "xdg" + "pipewire" + "nix-development" + "waydroid" + "virt-manager" + "ssh-initrd" + "printing" + "pam" + "wireguard-client" + "binfmt" + "greetd" + # "syncthing" + "hass-poweroff" + "forgejo-runners" + "teamviewer" + "sunshine" + "mount-sisko" + "adb" + "prometheus-exporters" + "promtail" + "zerotier" + ]; + + ccr = { + enable = true; + autologin = false; + modules = [ + "git" + "git-workspace" + "helix" + "shell" + "zellij" + # "element" + "zmkbatx" + "tremotesf" + "firefox" + "gpg" + "mpv" + "password-store" + "slack" + "hyprland" + "niri" + "udiskie" + "xdg" + # "spotify" + "lutris" + "wine" + "cura" + "chrome" + "email" + "digikam" + "dolphin" + "tor-browser" + "kicad" + "monero" + # "zulip" + "teams" + "obs-studio" + "calibre" + "reinstall-magisk-on-lineage" + "vscode-server" + "zk" + "catppuccin" + "freecad" + "zathura" + "imv" + "libreoffice" + "emacs" + "vial" + "chirp" + "sdrangel" + "discord" + # "ib-tws" + "zoom" + "pantalaimon" + ]; + extraGroups = [ "plugdev" ]; + backupPaths = [ ]; + }; + + boot.kernelParams = [ "ip=dhcp" ]; + boot.initrd.kernelModules = [ "amdgpu" ]; + boot.initrd.availableKernelModules = [ + "nvme" + "xhci_pci" + # "ahci" + "usbhid" + # "r8169" + "thunderbolt" + "vmd" + "usb_storage" + "sd_mod" + ]; + boot.kernelModules = [ + # "kvm-amd" + # "ddcci" + # "ddcci-backlight" + # "i2c-dev" # needed? + ]; + + boot.loader.systemd-boot.enable = true; + boot.loader.efi.canTouchEfiVariables = true; + + fileSystems."/" = { + device = "zpool/root"; + fsType = "zfs"; + options = [ "zfsutil" ]; + }; + + fileSystems."/nix" = { + device = "zpool/nix"; + fsType = "zfs"; + options = [ "zfsutil" ]; + }; + + fileSystems."/var" = { + device = "zpool/var"; + fsType = "zfs"; + options = [ "zfsutil" ]; + }; + + fileSystems."/home" = { + device = "zpool/home"; + fsType = "zfs"; + options = [ "zfsutil" ]; + }; + + fileSystems."/boot" = { + device = "/dev/disk/by-uuid/4AA5-7242"; + fsType = "vfat"; + options = [ + "fmask=0022" + "dmask=0022" + ]; + }; + + services.zfs.autoScrub.enable = true; + + networking.hostId = "30fc8ed7"; + + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + powerManagement.cpuFreqGovernor = lib.mkDefault "schedutil"; + hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; + hardware.enableRedistributableFirmware = lib.mkDefault true; + + hardware.graphics = { + enable = true; + enable32Bit = true; + }; + + zramSwap = { + enable = true; + algorithm = "zstd"; + }; +} From 5a107254d245dae010c21d44b6490485c3bf3093 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Wed, 16 Apr 2025 12:39:16 +0200 Subject: [PATCH 377/492] Use upstream cura-appimage --- hmModules/cura/default.nix | 27 +-------------------------- 1 file changed, 1 insertion(+), 26 deletions(-) diff --git a/hmModules/cura/default.nix b/hmModules/cura/default.nix index 96a2f2c..a4999b8 100644 --- a/hmModules/cura/default.nix +++ b/hmModules/cura/default.nix @@ -1,31 +1,6 @@ { pkgs, ... }: { home.packages = [ - ( - let - cura5 = pkgs.appimageTools.wrapType2 rec { - pname = "cura5"; - version = "5.8.0"; - src = pkgs.fetchurl { - url = "https://github.com/Ultimaker/Cura/releases/download/${version}/UltiMaker-Cura-${version}-linux-X64.AppImage"; - hash = "sha256-EojVAe+o43W80ES5BY3QgGRTxztwS+B6kIOfJOtULOg="; - }; - }; - in - pkgs.writeScriptBin "cura" '' - #! ${pkgs.bash}/bin/bash - # AppImage version of Cura loses current working directory and treats all paths relateive to $HOME. - # So we convert each of the files passed as argument to an absolute path. - # This fixes use cases like `cd /path/to/my/files; cura mymodel.stl anothermodel.stl`. - args=() - for a in "$@"; do - if [ -e "$a" ]; then - a="$(realpath "$a")" - fi - args+=("$a") - done - QT_QPA_PLATFORM=xcb exec "${cura5}/bin/cura5" "''${args[@]}" - '' - ) + pkgs.cura-appimage ]; } From a53626d5c3da12609deac22576d4e4c2c9461715 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Wed, 16 Apr 2025 13:19:37 +0200 Subject: [PATCH 378/492] Unused module --- hosts/default.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/hosts/default.nix b/hosts/default.nix index 87197a3..44a0c7c 100644 --- a/hosts/default.nix +++ b/hosts/default.nix @@ -131,7 +131,6 @@ inputs.catppuccin.nixosModules.catppuccin ]; extraHmModules = [ - inputs.impermanence.homeManagerModules.impermanence "${inputs.homeManagerGitWorkspace}/modules/services/git-workspace.nix" inputs.vscode-server.nixosModules.home inputs.catppuccin.homeManagerModules.catppuccin From 58238117001453a5012751b20e171141c5f612e6 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Wed, 16 Apr 2025 13:19:43 +0200 Subject: [PATCH 379/492] Fix --- modules/ccr/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/ccr/default.nix b/modules/ccr/default.nix index f2fba3d..99cdc60 100644 --- a/modules/ccr/default.nix +++ b/modules/ccr/default.nix @@ -146,7 +146,7 @@ in } ] ++ [ - (lib.mkIf cfg.impermanence.enable { + (lib.optionalAttrs cfg.impermanence.enable { home.persistence."/persist/home/${cfg.username}" = { inherit (cfg.impermanence) directories files; allowOther = true; From f5ab3abe7648dcc5e09c65533199af5f5facb1b7 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Wed, 16 Apr 2025 13:51:20 +0200 Subject: [PATCH 380/492] Floating rule --- hmModules/niri/config.kdl | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/hmModules/niri/config.kdl b/hmModules/niri/config.kdl index a7baef7..eecbd3b 100644 --- a/hmModules/niri/config.kdl +++ b/hmModules/niri/config.kdl @@ -335,6 +335,11 @@ window-rule { open-focused true } +window-rule { + match title=r#"^Authentication Required"# + open-floating true + open-focused true +} From 7d8736ecad668e1c7f56c14bbe086138b849060a Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Wed, 16 Apr 2025 13:51:47 +0200 Subject: [PATCH 381/492] Disable promtail --- hosts/picard/default.nix | 2 +- hosts/pike/default.nix | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/hosts/picard/default.nix b/hosts/picard/default.nix index 03fbb85..58038d3 100644 --- a/hosts/picard/default.nix +++ b/hosts/picard/default.nix @@ -40,7 +40,7 @@ "mount-sisko" "adb" "prometheus-exporters" - "promtail" + # "promtail" "zerotier" ] ++ [ ./disko.nix ]; diff --git a/hosts/pike/default.nix b/hosts/pike/default.nix index b41a811..4bc112f 100644 --- a/hosts/pike/default.nix +++ b/hosts/pike/default.nix @@ -38,7 +38,7 @@ "mount-sisko" "adb" "prometheus-exporters" - "promtail" + # "promtail" "zerotier" ]; From 3a88101b04d8af2ce1db02a69d513ee95cf26fc8 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Wed, 16 Apr 2025 13:52:38 +0200 Subject: [PATCH 382/492] Remove `hass-poweroff` and `forgejo-runners` from `pike` --- hosts/pike/default.nix | 3 --- 1 file changed, 3 deletions(-) diff --git a/hosts/pike/default.nix b/hosts/pike/default.nix index 4bc112f..83ae586 100644 --- a/hosts/pike/default.nix +++ b/hosts/pike/default.nix @@ -2,7 +2,6 @@ fleetModules, lib, config, - pkgs, ... }: { @@ -31,8 +30,6 @@ "binfmt" "greetd" # "syncthing" - "hass-poweroff" - "forgejo-runners" "teamviewer" "sunshine" "mount-sisko" From f7b386e25ac40498d1ee73d18a317f7fb168a2ba Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Wed, 16 Apr 2025 13:54:45 +0200 Subject: [PATCH 383/492] Rename catppuccin flake attribute --- hosts/default.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/hosts/default.nix b/hosts/default.nix index 44a0c7c..7ed6ca8 100644 --- a/hosts/default.nix +++ b/hosts/default.nix @@ -19,7 +19,7 @@ in builtins.getFlake "github:NixOS/nixpkgs/${rev}"; extraHmModules = [ - inputs.catppuccin.homeManagerModules.catppuccin + inputs.catppuccin.homeModules.catppuccin ]; vpn = { ip = "10.100.0.5"; @@ -50,7 +50,7 @@ ]; extraHmModules = [ "${inputs.homeManagerGitWorkspace}/modules/services/git-workspace.nix" - inputs.catppuccin.homeManagerModules.catppuccin + inputs.catppuccin.homeModules.catppuccin ]; secrets = { "kirk-wireguard-private-key" = { }; @@ -76,7 +76,7 @@ extraHmModules = [ "${inputs.homeManagerGitWorkspace}/modules/services/git-workspace.nix" inputs.vscode-server.nixosModules.home - inputs.catppuccin.homeManagerModules.catppuccin + inputs.catppuccin.homeModules.catppuccin ]; secrets = { "picard-wireguard-private-key" = { }; @@ -133,7 +133,7 @@ extraHmModules = [ "${inputs.homeManagerGitWorkspace}/modules/services/git-workspace.nix" inputs.vscode-server.nixosModules.home - inputs.catppuccin.homeManagerModules.catppuccin + inputs.catppuccin.homeModules.catppuccin ]; secrets = { "pike-wireguard-private-key" = { }; From 652fbe4026721609462d43999c91c59c1d886c5a Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 24 Apr 2025 11:54:51 +0200 Subject: [PATCH 384/492] Add `moonlight` to `picard` --- hosts/picard/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/hosts/picard/default.nix b/hosts/picard/default.nix index 58038d3..3eecfbf 100644 --- a/hosts/picard/default.nix +++ b/hosts/picard/default.nix @@ -97,6 +97,7 @@ "ib-tws" "zoom" "pantalaimon" + "moonlight" ]; extraGroups = [ "plugdev" ]; backupPaths = [ ]; From a32c23d47494ebe1abc8a61f434488c0a7825059 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 24 Apr 2025 11:55:01 +0200 Subject: [PATCH 385/492] Useless comment and args --- modules/wireguard-common/default.nix | 2 -- modules/wireguard-server/default.nix | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/modules/wireguard-common/default.nix b/modules/wireguard-common/default.nix index e67cf81..6451aa5 100644 --- a/modules/wireguard-common/default.nix +++ b/modules/wireguard-common/default.nix @@ -1,7 +1,5 @@ { - lib, config, - vpn, ... }: { diff --git a/modules/wireguard-server/default.nix b/modules/wireguard-server/default.nix index 27c8a8a..a02ccad 100644 --- a/modules/wireguard-server/default.nix +++ b/modules/wireguard-server/default.nix @@ -9,7 +9,7 @@ networking.nat.enable = true; - networking.firewall.allowedUDPPorts = [ config.networking.wireguard.interfaces.wg0.listenPort ]; # FIXME move this to wireguard-server + networking.firewall.allowedUDPPorts = [ config.networking.wireguard.interfaces.wg0.listenPort ]; networking.wireguard.interfaces.wg0 = { ips = [ "${vpn.${config.networking.hostName}.ip}/24" ]; From 44c45c48a1bb45b9f095ee25706f3288418946c8 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 24 Apr 2025 14:05:13 +0200 Subject: [PATCH 386/492] Bump inputs --- flake.lock | 98 +++++++++++++++++++++++++++--------------------------- 1 file changed, 49 insertions(+), 49 deletions(-) diff --git a/flake.lock b/flake.lock index d2b963b..88990b0 100644 --- a/flake.lock +++ b/flake.lock @@ -26,11 +26,11 @@ "nixpkgs": "nixpkgs_2" }, "locked": { - "lastModified": 1743801669, - "narHash": "sha256-RxQQQCGqywOPbdNrWGbFyFdcrdrXM4YBHW7vYt13OeI=", + "lastModified": 1745352209, + "narHash": "sha256-u3vJEzi6zxgG59KXjMR5koERsdKT5nd1OEKCpr6zgn8=", "owner": "catppuccin", "repo": "nix", - "rev": "07beb389d69a52c4dd5895da9553463c3740a26a", + "rev": "6268e50dbb0ac9375e110560395b5dc199e4dfb8", "type": "github" }, "original": { @@ -41,11 +41,11 @@ }, "crane": { "locked": { - "lastModified": 1741148495, - "narHash": "sha256-EV8KUaIZ2/CdBXlutXrHoZYbWPeB65p5kKZk71gvDRI=", + "lastModified": 1741481578, + "narHash": "sha256-JBTSyJFQdO3V8cgcL08VaBUByEU6P5kXbTJN6R0PFQo=", "owner": "ipetkov", "repo": "crane", - "rev": "75390a36cd0c2cdd5f1aafd8a9f827d7107f2e53", + "rev": "bb1c9567c43e4434f54e9481eb4b8e8e0d50f0b5", "type": "github" }, "original": { @@ -83,11 +83,11 @@ ] }, "locked": { - "lastModified": 1744145203, - "narHash": "sha256-I2oILRiJ6G+BOSjY+0dGrTPe080L3pbKpc+gCV3Nmyk=", + "lastModified": 1745369821, + "narHash": "sha256-mi6cAjuBztm9gFfpiVo6mAn81cCID6nmDXh5Kmyjwyc=", "owner": "nix-community", "repo": "disko", - "rev": "76c0a6dba345490508f36c1aa3c7ba5b6b460989", + "rev": "c5140c6079ff690e85eac0b86e254de16a79a4b7", "type": "github" }, "original": { @@ -122,11 +122,11 @@ "nixpkgs-stable": "nixpkgs-stable" }, "locked": { - "lastModified": 1744337628, - "narHash": "sha256-ghjocOkjH1pSMiyX7h6+gJmLsgcief/+D+Cbcum8HsI=", + "lastModified": 1745483009, + "narHash": "sha256-nMSo37sprHHbK7uYAw5IwVbQ/qqB9piMh8IGH77EqSk=", "owner": "nix-community", "repo": "emacs-overlay", - "rev": "8aa1c071bbcb8a270bb841e4797a0d14528709d4", + "rev": "acf94b5dd33ce8e3fb995421cd1a719bb0d9c804", "type": "github" }, "original": { @@ -191,11 +191,11 @@ ] }, "locked": { - "lastModified": 1740872218, - "narHash": "sha256-ZaMw0pdoUKigLpv9HiNDH2Pjnosg7NBYMJlHTIsHEUo=", + "lastModified": 1741352980, + "narHash": "sha256-+u2UunDA4Cl5Fci3m7S643HzKmIDAe+fiXrLqYsR2fs=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "3876f6b87db82f33775b1ef5ea343986105db764", + "rev": "f4330d22f1c5d2ba72d3d22df5597d123fdb60a9", "type": "github" }, "original": { @@ -387,11 +387,11 @@ ] }, "locked": { - "lastModified": 1744343724, - "narHash": "sha256-DkiOZlkXbdf6f09pSulJPE0IaaJi1p7sqia/G2kqNKI=", + "lastModified": 1745439012, + "narHash": "sha256-TwbdiH28QK7Da2JQTqFHdb+UCJq6QbF2mtf+RxHVzEA=", "owner": "nix-community", "repo": "home-manager", - "rev": "f1ffd097e717a8d1b441577b8d23f9d2c96e0657", + "rev": "d31710fb2cd536b1966fee2af74e99a0816a61a8", "type": "github" }, "original": { @@ -448,11 +448,11 @@ "rust-overlay": "rust-overlay" }, "locked": { - "lastModified": 1741442524, - "narHash": "sha256-tVcxLDLLho8dWcO81Xj/3/ANLdVs0bGyCPyKjp70JWk=", + "lastModified": 1745271491, + "narHash": "sha256-4GAHjus6JRpYHVROMIhFIz/sgLDF/klBM3UHulbSK9s=", "owner": "nix-community", "repo": "lanzaboote", - "rev": "d8099586d9a84308ffedac07880e7f07a0180ff4", + "rev": "995637eb3ab78eac33f8ee6b45cc2ecd5ede12ba", "type": "github" }, "original": { @@ -464,11 +464,11 @@ "lix": { "flake": false, "locked": { - "lastModified": 1744302352, - "narHash": "sha256-QJQecf/Z1rLZBpVoQaI+EunLX5U7c7uYGER5iw00YrI=", + "lastModified": 1745340344, + "narHash": "sha256-FUhusarVwMBrKmsfLFWj+L67/JT4bO/FILhHqKQLnZs=", "ref": "refs/heads/main", - "rev": "81d476984901d1f00fdcac36a0a8f06cb54048f6", - "revCount": 17777, + "rev": "7dbdd5bd0cb44b3e0c1bebc91c1f5a4d46d6b702", + "revCount": 17786, "type": "git", "url": "https://git@git.lix.systems/lix-project/lix" }, @@ -569,11 +569,11 @@ }, "nixosHardware": { "locked": { - "lastModified": 1743420942, - "narHash": "sha256-b/exDDQSLmENZZgbAEI3qi9yHkuXAXCPbormD8CSJXo=", + "lastModified": 1745392233, + "narHash": "sha256-xmqG4MZArM1JNxPJ33s0MtuBzgnaCO9laARoU3AfP8E=", "owner": "NixOS", "repo": "nixos-hardware", - "rev": "de6fc5551121c59c01e2a3d45b277a6d05077bc4", + "rev": "8bf8a2a0822365bd8f44fd1a19d7ed0a1d629d64", "type": "github" }, "original": { @@ -647,11 +647,11 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1744168086, - "narHash": "sha256-S9M4HddBCxbbX1CKSyDYgZ8NCVyHcbKnBfoUXeRu2jQ=", + "lastModified": 1745279238, + "narHash": "sha256-AQ7M9wTa/Pa/kK5pcGTgX/DGqMHyzsyINfN7ktsI7Fo=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "60e405b241edb6f0573f3d9f944617fe33ac4a73", + "rev": "9684b53175fc6c09581e94cc85f05ab77464c7e3", "type": "github" }, "original": { @@ -679,11 +679,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1743583204, - "narHash": "sha256-F7n4+KOIfWrwoQjXrL2wD9RhFYLs2/GGe/MQY1sSdlE=", + "lastModified": 1744463964, + "narHash": "sha256-LWqduOgLHCFxiTNYi3Uj5Lgz0SR+Xhw3kr/3Xd0GPTM=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "2c8d3f48d33929642c1c12cd243df4cc7d2ce434", + "rev": "2631b0b7abcea6e640ce31cd78ea58910d31e650", "type": "github" }, "original": { @@ -711,11 +711,11 @@ }, "nixpkgs_4": { "locked": { - "lastModified": 1744098102, - "narHash": "sha256-tzCdyIJj9AjysC3OuKA+tMD/kDEDAF9mICPDU7ix0JA=", + "lastModified": 1745391562, + "narHash": "sha256-sPwcCYuiEopaafePqlG826tBhctuJsLx/mhKKM5Fmjo=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "c8cd81426f45942bb2906d5ed2fe21d2f19d95b7", + "rev": "8a2f738d9d1f1d986b5a4cd2fd2061a7127237d7", "type": "github" }, "original": { @@ -742,11 +742,11 @@ }, "nixpkgs_6": { "locked": { - "lastModified": 1744098102, - "narHash": "sha256-tzCdyIJj9AjysC3OuKA+tMD/kDEDAF9mICPDU7ix0JA=", + "lastModified": 1745391562, + "narHash": "sha256-sPwcCYuiEopaafePqlG826tBhctuJsLx/mhKKM5Fmjo=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "c8cd81426f45942bb2906d5ed2fe21d2f19d95b7", + "rev": "8a2f738d9d1f1d986b5a4cd2fd2061a7127237d7", "type": "github" }, "original": { @@ -821,11 +821,11 @@ ] }, "locked": { - "lastModified": 1740915799, - "narHash": "sha256-JvQvtaphZNmeeV+IpHgNdiNePsIpHD5U/7QN5AeY44A=", + "lastModified": 1741379162, + "narHash": "sha256-srpAbmJapkaqGRE3ytf3bj4XshspVR5964OX5LfjDWc=", "owner": "cachix", "repo": "pre-commit-hooks.nix", - "rev": "42b1ba089d2034d910566bf6b40830af6b8ec732", + "rev": "b5a62751225b2f62ff3147d0a334055ebadcd5cc", "type": "github" }, "original": { @@ -906,11 +906,11 @@ ] }, "locked": { - "lastModified": 1741228283, - "narHash": "sha256-VzqI+k/eoijLQ5am6rDFDAtFAbw8nltXfLBC6SIEJAE=", + "lastModified": 1741573199, + "narHash": "sha256-A2sln1GdCf+uZ8yrERSCZUCqZ3JUlOv1WE2VFqqfaLQ=", "owner": "oxalica", "repo": "rust-overlay", - "rev": "38e9826bc4296c9daf18bc1e6aa299f3e932a403", + "rev": "c777dc8a1e35407b0e80ec89817fe69970f4e81a", "type": "github" }, "original": { @@ -1009,11 +1009,11 @@ ] }, "locked": { - "lastModified": 1743748085, - "narHash": "sha256-uhjnlaVTWo5iD3LXics1rp9gaKgDRQj6660+gbUU3cE=", + "lastModified": 1744961264, + "narHash": "sha256-aRmUh0AMwcbdjJHnytg1e5h5ECcaWtIFQa6d9gI85AI=", "owner": "numtide", "repo": "treefmt-nix", - "rev": "815e4121d6a5d504c0f96e5be2dd7f871e4fd99d", + "rev": "8d404a69efe76146368885110f29a2ca3700bee6", "type": "github" }, "original": { From 403029e478ed92bfbfa16a421a38471a79bdb589 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 24 Apr 2025 14:05:20 +0200 Subject: [PATCH 387/492] Unused comments --- hmModules/chirp/default.nix | 4 ---- 1 file changed, 4 deletions(-) diff --git a/hmModules/chirp/default.nix b/hmModules/chirp/default.nix index 7353aee..f6ff45e 100644 --- a/hmModules/chirp/default.nix +++ b/hmModules/chirp/default.nix @@ -1,8 +1,4 @@ { pkgs, ... }: -let -in -# nixpkgs = builtins.getFlake "github:NixOS/nixpkgs/932fc16b263f26803d3960e4400bc13dde84a972"; -# chirp = nixpkgs.legacyPackages.${pkgs.system}.chirp; { home.packages = [ pkgs.chirp ]; } From 79fd28061b4f19995b91f10ea4360ee1a4a69a76 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 24 Apr 2025 14:05:29 +0200 Subject: [PATCH 388/492] Use `sdrangel` from an old commit (it's broken) --- hmModules/sdrangel/default.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/hmModules/sdrangel/default.nix b/hmModules/sdrangel/default.nix index b241700..4b65cb5 100644 --- a/hmModules/sdrangel/default.nix +++ b/hmModules/sdrangel/default.nix @@ -1,7 +1,8 @@ { pkgs, ... }: { home.packages = [ - pkgs.sdrangel + (builtins.getFlake "github:NixOS/nixpkgs/063dece00c5a77e4a0ea24e5e5a5bd75232806f8") + .legacyPackages.${pkgs.system}.sdrangel pkgs.kdePackages.qtlocation ]; } From f889c8fdda331bea0e2f239e2f19e3308258541d Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 24 Apr 2025 14:05:43 +0200 Subject: [PATCH 389/492] Unused (was causing eval error with the new home-manager revision) --- hmModules/waybar/default.nix | 4 ---- 1 file changed, 4 deletions(-) diff --git a/hmModules/waybar/default.nix b/hmModules/waybar/default.nix index 0e544d9..d311a89 100644 --- a/hmModules/waybar/default.nix +++ b/hmModules/waybar/default.nix @@ -22,8 +22,4 @@ home.packages = with pkgs; [ rofi-power-menu ]; - - # waybar needs the hyprctl binary in PATH when started in hyprland - # TODO still needed? - systemd.user.services.waybar.Service.Environment = "PATH=${lib.makeBinPath [ pkgs.hyprland ]}"; } From 11efc745e3b718ea699456f81e9ed66953c355a0 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 24 Apr 2025 14:06:07 +0200 Subject: [PATCH 390/492] Unused --- hosts/pike/default.nix | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/hosts/pike/default.nix b/hosts/pike/default.nix index 83ae586..1e278d5 100644 --- a/hosts/pike/default.nix +++ b/hosts/pike/default.nix @@ -61,7 +61,6 @@ "udiskie" "xdg" # "spotify" - "lutris" "wine" "cura" "chrome" @@ -71,7 +70,6 @@ "tor-browser" "kicad" "monero" - # "zulip" "teams" "obs-studio" "calibre" @@ -88,7 +86,6 @@ "chirp" "sdrangel" "discord" - # "ib-tws" "zoom" "pantalaimon" ]; @@ -101,20 +98,12 @@ boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" - # "ahci" "usbhid" - # "r8169" "thunderbolt" "vmd" "usb_storage" "sd_mod" ]; - boot.kernelModules = [ - # "kvm-amd" - # "ddcci" - # "ddcci-backlight" - # "i2c-dev" # needed? - ]; boot.loader.systemd-boot.enable = true; boot.loader.efi.canTouchEfiVariables = true; @@ -152,6 +141,12 @@ ]; }; + fileSystems."/mnt/shared" = { + device = "/dev/nvme0n1p2"; + fsType = "ntfs"; + options = [ "nofail" ]; + }; + services.zfs.autoScrub.enable = true; networking.hostId = "30fc8ed7"; From 10946e39aef25f8640b2c0454456d823a1f1329c Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 24 Apr 2025 14:06:15 +0200 Subject: [PATCH 391/492] History completion in eshell --- hmModules/emacs/init.el | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/hmModules/emacs/init.el b/hmModules/emacs/init.el index 192f3fd..4d4d304 100644 --- a/hmModules/emacs/init.el +++ b/hmModules/emacs/init.el @@ -690,9 +690,30 @@ (defalias (car alias) (cdr alias))) ccr/eshell-aliases) + (defun ccr/eshell-get-current-input () + (when (eq major-mode 'eshell-mode) + (let ((input-start (save-excursion + (eshell-bol) + (point))) + (input-end (point-at-eol))) + (buffer-substring-no-properties input-start input-end)))) + + (defun ccr/eshell-history () + (interactive) + (when (eq major-mode 'eshell-mode) + (let* ((current-input (ccr/eshell-get-current-input)) + (eshell-history (f-read-text eshell-history-file-name)) + (bash-history (f-read-text "/home/ccr/.bash_history")) + (history (split-string (concat eshell-history "\n" bash-history) "\n")) + (selection (completing-read "History: " history nil t current-input))) + (eshell-bol) + (kill-line) + (insert selection)))) + + :bind (("C-c o e" . project-eshell) (:map eshell-mode-map - ("C-r" . eshell-atuin-history) + ("C-r" . ccr/eshell-history) ("C-" . corfu-send) ))) ;; i.e. just C-r in semi-char-mode From 8cf062885e25a2b0b9e10d8e24dea5807618db48 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 24 Apr 2025 14:54:55 +0200 Subject: [PATCH 392/492] Fix `ccr/eshell-history` function --- hmModules/emacs/init.el | 37 +++++++++++++++++++++++-------------- 1 file changed, 23 insertions(+), 14 deletions(-) diff --git a/hmModules/emacs/init.el b/hmModules/emacs/init.el index 4d4d304..f941643 100644 --- a/hmModules/emacs/init.el +++ b/hmModules/emacs/init.el @@ -690,26 +690,35 @@ (defalias (car alias) (cdr alias))) ccr/eshell-aliases) - (defun ccr/eshell-get-current-input () - (when (eq major-mode 'eshell-mode) - (let ((input-start (save-excursion - (eshell-bol) - (point))) - (input-end (point-at-eol))) - (buffer-substring-no-properties input-start input-end)))) + (defun ccr/eshell-get-current-input () + "Restituisce l'input corrente dell'utente nella riga Eshell." + (when (eq major-mode 'eshell-mode) + (let ((start (save-excursion (eshell-bol) (point))) + (end (point-at-eol))) + (buffer-substring-no-properties start end)))) + + (defun ccr/eshell-replace-current-input (new-input) + (when (eq major-mode 'eshell-mode) + (let ((inhibit-read-only t)) + (eshell-bol) + (delete-region (point) (point-at-eol)) + (insert new-input) + (end-of-line)))) + (defun ccr/eshell-history () (interactive) (when (eq major-mode 'eshell-mode) (let* ((current-input (ccr/eshell-get-current-input)) - (eshell-history (f-read-text eshell-history-file-name)) - (bash-history (f-read-text "/home/ccr/.bash_history")) - (history (split-string (concat eshell-history "\n" bash-history) "\n")) + (eshell-history (when (and eshell-history-file-name + (file-readable-p eshell-history-file-name)) + (f-read-text eshell-history-file-name))) + (bash-history (when (file-readable-p "~/.bash_history") + (f-read-text "~/.bash_history"))) + (history (split-string (concat (or eshell-history "") "\n" + (or bash-history "")) "\n" t)) (selection (completing-read "History: " history nil t current-input))) - (eshell-bol) - (kill-line) - (insert selection)))) - + (ccr/eshell-replace-current-input selection)))) :bind (("C-c o e" . project-eshell) (:map eshell-mode-map From 1216292c4cb26670e7254807a9f55d908718449c Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Mon, 28 Apr 2025 13:08:59 +0200 Subject: [PATCH 393/492] Add `gimp` module --- hmModules/gimp/default.nix | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 hmModules/gimp/default.nix diff --git a/hmModules/gimp/default.nix b/hmModules/gimp/default.nix new file mode 100644 index 0000000..2785649 --- /dev/null +++ b/hmModules/gimp/default.nix @@ -0,0 +1,4 @@ +{ pkgs, ... }: +{ + home.packages = [ pkgs.gimp ]; +} From cbd5408e455cd9db2c4d795664a9fd0104e35c4a Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Mon, 28 Apr 2025 13:09:12 +0200 Subject: [PATCH 394/492] Add `gimp` to `pike` and `picard` --- hosts/picard/default.nix | 1 + hosts/pike/default.nix | 1 + 2 files changed, 2 insertions(+) diff --git a/hosts/picard/default.nix b/hosts/picard/default.nix index 3eecfbf..92783d6 100644 --- a/hosts/picard/default.nix +++ b/hosts/picard/default.nix @@ -98,6 +98,7 @@ "zoom" "pantalaimon" "moonlight" + "gimp" ]; extraGroups = [ "plugdev" ]; backupPaths = [ ]; diff --git a/hosts/pike/default.nix b/hosts/pike/default.nix index 1e278d5..1a7e3ab 100644 --- a/hosts/pike/default.nix +++ b/hosts/pike/default.nix @@ -88,6 +88,7 @@ "discord" "zoom" "pantalaimon" + "gimp" ]; extraGroups = [ "plugdev" ]; backupPaths = [ ]; From 9b47d50dc60f5047f064f211a1cf54f5a001b9ca Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Mon, 28 Apr 2025 13:09:22 +0200 Subject: [PATCH 395/492] Add `moonlight` to `kirk` --- hosts/kirk/default.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/hosts/kirk/default.nix b/hosts/kirk/default.nix index 812a16a..f08b669 100644 --- a/hosts/kirk/default.nix +++ b/hosts/kirk/default.nix @@ -75,6 +75,8 @@ "chirp" "sdrangel" "zmkbatx" + "moonlight" + "gimp" ]; extraGroups = [ "plugdev" ]; backupPaths = [ ]; From dabe148755e926f59c3deafc8ad706eba1409549 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Mon, 28 Apr 2025 13:09:34 +0200 Subject: [PATCH 396/492] Add `vertico-quick` keybinds --- hmModules/emacs/init.el | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/hmModules/emacs/init.el b/hmModules/emacs/init.el index f941643..3c857d0 100644 --- a/hmModules/emacs/init.el +++ b/hmModules/emacs/init.el @@ -378,7 +378,9 @@ (vertico-mode t) :bind (:map vertico-map (("DEL" . vertico-directory-delete-char) - ("C-DEL" . vertico-directory-delete-word)))) + ("C-DEL" . vertico-directory-delete-word) + ("M-q" . vertico-quick-insert) + ("C-q" . vertico-quick-exit)))) ;; (use-package vertico-posframe ;; :after vertico From 663b2c4eb42e4670dde299036db7bc22c705561d Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Mon, 28 Apr 2025 13:09:50 +0200 Subject: [PATCH 397/492] Use `gemini-2.5-flash-preview` --- hmModules/emacs/init.el | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hmModules/emacs/init.el b/hmModules/emacs/init.el index 3c857d0..26f1260 100644 --- a/hmModules/emacs/init.el +++ b/hmModules/emacs/init.el @@ -1015,13 +1015,13 @@ This is meant to be an helper to be called from the window manager." (use-package gptel :custom - (gptel-model 'google/gemini-2.0-flash-001) + (gptel-model 'google/gemini-2.5-flash-preview) (gptel-backend (gptel-make-openai "OpenRouter" :host "openrouter.ai" :endpoint "/api/v1/chat/completions" :key (lambda () (require 'f) (f-read-text (getenv "OPENAI_API_KEY_PATH"))) :stream t - :models '(google/gemini-2.0-flash-001)) + :models '(google/gemini-2.5-flash-preview)) ) (gptel-default-mode 'org-mode) (gptel-org-branching-context nil) ;; this is cool but I don't feel comfortable with it From 40fd5e3035a1906a1c1f22558bd2c3735e5432df Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Mon, 28 Apr 2025 13:10:01 +0200 Subject: [PATCH 398/492] Disasble `gptel` tools --- hmModules/emacs/init.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hmModules/emacs/init.el b/hmModules/emacs/init.el index 26f1260..13eb711 100644 --- a/hmModules/emacs/init.el +++ b/hmModules/emacs/init.el @@ -1025,7 +1025,7 @@ This is meant to be an helper to be called from the window manager." ) (gptel-default-mode 'org-mode) (gptel-org-branching-context nil) ;; this is cool but I don't feel comfortable with it - (gptel-use-tools 't) + (gptel-use-tools nil) :bind ("C-c a a" . gptel-add) From ae8bad7a0358860f251387704b89c0343ffc130c Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Mon, 28 Apr 2025 14:58:11 +0200 Subject: [PATCH 399/492] Bump inputs --- flake.lock | 86 +++++++++++++++++++++++++++--------------------------- 1 file changed, 43 insertions(+), 43 deletions(-) diff --git a/flake.lock b/flake.lock index 88990b0..4c86252 100644 --- a/flake.lock +++ b/flake.lock @@ -8,11 +8,11 @@ "systems": "systems" }, "locked": { - "lastModified": 1736955230, - "narHash": "sha256-uenf8fv2eG5bKM8C/UvFaiJMZ4IpUFaQxk9OH5t/1gA=", + "lastModified": 1745630506, + "narHash": "sha256-bHCFgGeu8XjWlVuaWzi3QONjDW3coZDqSHvnd4l7xus=", "owner": "ryantm", "repo": "agenix", - "rev": "e600439ec4c273cf11e06fe4d9d906fb98fa097c", + "rev": "96e078c646b711aee04b82ba01aefbff87004ded", "type": "github" }, "original": { @@ -26,11 +26,11 @@ "nixpkgs": "nixpkgs_2" }, "locked": { - "lastModified": 1745352209, - "narHash": "sha256-u3vJEzi6zxgG59KXjMR5koERsdKT5nd1OEKCpr6zgn8=", + "lastModified": 1745598511, + "narHash": "sha256-GWYB7PngGwTJrp7gr0w6E5nnvwiblPvN2kjRCQw3ZEg=", "owner": "catppuccin", "repo": "nix", - "rev": "6268e50dbb0ac9375e110560395b5dc199e4dfb8", + "rev": "199cb288a85b15ed203089804c024ae5b3eacd7c", "type": "github" }, "original": { @@ -62,11 +62,11 @@ ] }, "locked": { - "lastModified": 1700795494, - "narHash": "sha256-gzGLZSiOhf155FW7262kdHo2YDeugp3VuIFb4/GGng0=", + "lastModified": 1744478979, + "narHash": "sha256-dyN+teG9G82G+m+PX/aSAagkC+vUv0SgUw3XkPhQodQ=", "owner": "lnl7", "repo": "nix-darwin", - "rev": "4b9b83d5a92e8c1fbfd8eb27eda375908c11ec4d", + "rev": "43975d782b418ebf4969e9ccba82466728c2851b", "type": "github" }, "original": { @@ -83,11 +83,11 @@ ] }, "locked": { - "lastModified": 1745369821, - "narHash": "sha256-mi6cAjuBztm9gFfpiVo6mAn81cCID6nmDXh5Kmyjwyc=", + "lastModified": 1745812220, + "narHash": "sha256-hotBG0EJ9VmAHJYF0yhWuTVZpENHvwcJ2SxvIPrXm+g=", "owner": "nix-community", "repo": "disko", - "rev": "c5140c6079ff690e85eac0b86e254de16a79a4b7", + "rev": "d0c543d740fad42fe2c035b43c9d41127e073c78", "type": "github" }, "original": { @@ -122,11 +122,11 @@ "nixpkgs-stable": "nixpkgs-stable" }, "locked": { - "lastModified": 1745483009, - "narHash": "sha256-nMSo37sprHHbK7uYAw5IwVbQ/qqB9piMh8IGH77EqSk=", + "lastModified": 1745830889, + "narHash": "sha256-P51C3ennff9hNhHr6SsxowZKpbPsa2U4DjC+DIu4Lyg=", "owner": "nix-community", "repo": "emacs-overlay", - "rev": "acf94b5dd33ce8e3fb995421cd1a719bb0d9c804", + "rev": "2a6d6d064e33d65dc660b65c28ce17195e539db6", "type": "github" }, "original": { @@ -346,11 +346,11 @@ ] }, "locked": { - "lastModified": 1703113217, - "narHash": "sha256-7ulcXOk63TIT2lVDSExj7XzFx09LpdSAPtvgtM7yQPE=", + "lastModified": 1745494811, + "narHash": "sha256-YZCh2o9Ua1n9uCvrvi5pRxtuVNml8X2a03qIFfRKpFs=", "owner": "nix-community", "repo": "home-manager", - "rev": "3bfaacf46133c037bb356193bd2f1765d9dc82c1", + "rev": "abfad3d2958c9e6300a883bd443512c55dfeb1be", "type": "github" }, "original": { @@ -387,11 +387,11 @@ ] }, "locked": { - "lastModified": 1745439012, - "narHash": "sha256-TwbdiH28QK7Da2JQTqFHdb+UCJq6QbF2mtf+RxHVzEA=", + "lastModified": 1745810134, + "narHash": "sha256-WfnYH/i7DFzn4SESQfWviXiNUZjohZhzODqLwKYHIPI=", "owner": "nix-community", "repo": "home-manager", - "rev": "d31710fb2cd536b1966fee2af74e99a0816a61a8", + "rev": "be7cf1709b469a2a2c62169172a167d1fed3509f", "type": "github" }, "original": { @@ -464,11 +464,11 @@ "lix": { "flake": false, "locked": { - "lastModified": 1745340344, - "narHash": "sha256-FUhusarVwMBrKmsfLFWj+L67/JT4bO/FILhHqKQLnZs=", + "lastModified": 1745775537, + "narHash": "sha256-X/mfPstVkj3hhIIBU/tGAuOraiYpm3i/A3BiBg1VH4s=", "ref": "refs/heads/main", - "rev": "7dbdd5bd0cb44b3e0c1bebc91c1f5a4d46d6b702", - "revCount": 17786, + "rev": "dad17a54f7cf2bae24274dc2b9a535c1938e6eb0", + "revCount": 17805, "type": "git", "url": "https://git@git.lix.systems/lix-project/lix" }, @@ -569,11 +569,11 @@ }, "nixosHardware": { "locked": { - "lastModified": 1745392233, - "narHash": "sha256-xmqG4MZArM1JNxPJ33s0MtuBzgnaCO9laARoU3AfP8E=", + "lastModified": 1745503349, + "narHash": "sha256-bUGjvaPVsOfQeTz9/rLTNLDyqbzhl0CQtJJlhFPhIYw=", "owner": "NixOS", "repo": "nixos-hardware", - "rev": "8bf8a2a0822365bd8f44fd1a19d7ed0a1d629d64", + "rev": "f7bee55a5e551bd8e7b5b82c9bc559bc50d868d1", "type": "github" }, "original": { @@ -584,11 +584,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1703013332, - "narHash": "sha256-+tFNwMvlXLbJZXiMHqYq77z/RfmpfpiI3yjL6o/Zo9M=", + "lastModified": 1745391562, + "narHash": "sha256-sPwcCYuiEopaafePqlG826tBhctuJsLx/mhKKM5Fmjo=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "54aac082a4d9bb5bbc5c4e899603abfb76a3f6d6", + "rev": "8a2f738d9d1f1d986b5a4cd2fd2061a7127237d7", "type": "github" }, "original": { @@ -647,11 +647,11 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1745279238, - "narHash": "sha256-AQ7M9wTa/Pa/kK5pcGTgX/DGqMHyzsyINfN7ktsI7Fo=", + "lastModified": 1745742390, + "narHash": "sha256-1rqa/XPSJqJg21BKWjzJZC7yU0l/YTVtjRi0RJmipus=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "9684b53175fc6c09581e94cc85f05ab77464c7e3", + "rev": "26245db0cb552047418cfcef9a25da91b222d6c7", "type": "github" }, "original": { @@ -711,11 +711,11 @@ }, "nixpkgs_4": { "locked": { - "lastModified": 1745391562, - "narHash": "sha256-sPwcCYuiEopaafePqlG826tBhctuJsLx/mhKKM5Fmjo=", + "lastModified": 1745526057, + "narHash": "sha256-ITSpPDwvLBZBnPRS2bUcHY3gZSwis/uTe255QgMtTLA=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "8a2f738d9d1f1d986b5a4cd2fd2061a7127237d7", + "rev": "f771eb401a46846c1aebd20552521b233dd7e18b", "type": "github" }, "original": { @@ -742,11 +742,11 @@ }, "nixpkgs_6": { "locked": { - "lastModified": 1745391562, - "narHash": "sha256-sPwcCYuiEopaafePqlG826tBhctuJsLx/mhKKM5Fmjo=", + "lastModified": 1745526057, + "narHash": "sha256-ITSpPDwvLBZBnPRS2bUcHY3gZSwis/uTe255QgMtTLA=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "8a2f738d9d1f1d986b5a4cd2fd2061a7127237d7", + "rev": "f771eb401a46846c1aebd20552521b233dd7e18b", "type": "github" }, "original": { @@ -1009,11 +1009,11 @@ ] }, "locked": { - "lastModified": 1744961264, - "narHash": "sha256-aRmUh0AMwcbdjJHnytg1e5h5ECcaWtIFQa6d9gI85AI=", + "lastModified": 1745829891, + "narHash": "sha256-aRkV0ZpfT/ERgRlGrbgjHFRcEWdseltSO+wPnpdPYKg=", "owner": "numtide", "repo": "treefmt-nix", - "rev": "8d404a69efe76146368885110f29a2ca3700bee6", + "rev": "d1863f30d9ca67f679f9c2583d7adf674b5d9b8a", "type": "github" }, "original": { From b82994c914750f9ba870e512b0dade11c51f4cbe Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Mon, 28 Apr 2025 14:58:14 +0200 Subject: [PATCH 400/492] Deprecated option --- hmModules/shell/default.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/hmModules/shell/default.nix b/hmModules/shell/default.nix index 0e0d9a3..c654977 100644 --- a/hmModules/shell/default.nix +++ b/hmModules/shell/default.nix @@ -34,7 +34,6 @@ programs.lsd = { enable = true; - enableAliases = true; }; programs.vim.enable = true; From 29734b6bd7ca1c528723c29559e8ef63944e1411 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Mon, 28 Apr 2025 20:20:46 +0200 Subject: [PATCH 401/492] Add `amule` and enable on `sisko` --- hosts/sisko/default.nix | 1 + modules/amule/default.nix | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+) create mode 100644 modules/amule/default.nix diff --git a/hosts/sisko/default.nix b/hosts/sisko/default.nix index 9542bc1..50e3cc2 100644 --- a/hosts/sisko/default.nix +++ b/hosts/sisko/default.nix @@ -33,6 +33,7 @@ "arr" "zerotier" "mosh" + "amule" ] ++ [ ./disko.nix diff --git a/modules/amule/default.nix b/modules/amule/default.nix new file mode 100644 index 0000000..9752f8f --- /dev/null +++ b/modules/amule/default.nix @@ -0,0 +1,34 @@ +{ config, lib, ... }: +{ + users.users.amule = { + isSystemUser = true; + group = "amule"; + extraGroups = [ "amule" ]; + home = config.services.amule.dataDir; + }; + + users.groups.amule = { }; + services.amule = { + dataDir = "/mnt/hd/amule"; + enable = true; + user = "amule"; + }; + + # sometimes the service crashes with a segfeault without any reason... + systemd.services.amuled.serviceConfig.Restart = lib.mkForce "always"; + + environment.persistence."/persist".directories = [ + config.services.amule.dataDir + ]; + + networking.firewall = { + allowedTCPPorts = [ 4662 ]; + allowedUDPPortRanges = [ + { + from = 4665; + to = 4672; + } + ]; + }; + +} From c745986ef41b610bac12e336a733f9cb810c4917 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Mon, 28 Apr 2025 20:20:57 +0200 Subject: [PATCH 402/492] `amarr` module WIP --- modules/amarr/default.nix | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 modules/amarr/default.nix diff --git a/modules/amarr/default.nix b/modules/amarr/default.nix new file mode 100644 index 0000000..0412243 --- /dev/null +++ b/modules/amarr/default.nix @@ -0,0 +1,23 @@ +args@{ lib, pkgs, ... }: +let + pkgs = builtins.getFlake "github:NixOS/nixpkgs/d278c7bfb89130ac167e80d2250f9abc0bede419"; + amarr = pkgs.legacyPackages.${args.pkgs.system}.amarr; +in +{ + systemd.services.amarr = { + description = "amarr"; + wantedBy = [ "multi-user.target" ]; + after = [ "network.target" ]; + serviceConfig = { + User = "root"; + Type = "oneshot"; + ExecStart = lib.getExe amarr; + }; + environment = { + AMULE_HOST = "localhost"; + AMULE_PORT = "4712"; + AMULE_PASSWORD = ""; + }; + }; + +} From 8609d6341311e801dfbcbfef1a9bccfcc1e5a6a1 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Mon, 28 Apr 2025 20:52:22 +0200 Subject: [PATCH 403/492] Enable `power-profiles-daemon` for `pike` --- hosts/pike/default.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/hosts/pike/default.nix b/hosts/pike/default.nix index 1a7e3ab..d699e49 100644 --- a/hosts/pike/default.nix +++ b/hosts/pike/default.nix @@ -157,6 +157,8 @@ hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; hardware.enableRedistributableFirmware = lib.mkDefault true; + services.power-profiles-daemon.enable = true; + hardware.graphics = { enable = true; enable32Bit = true; From 7792eead8dd415671ddecf477e65613a1cd17711 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Mon, 28 Apr 2025 21:06:40 +0200 Subject: [PATCH 404/492] Update `ccr-ssh` key --- lib/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/default.nix b/lib/default.nix index 724e0cf..4330d49 100644 --- a/lib/default.nix +++ b/lib/default.nix @@ -1,7 +1,7 @@ { keys = { users = { - ccr-ssh = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCzCmDCtlGscpesHuoiruVWD2IjYEFtaIl9Y2JZGiOAyf3V17KPx0MikcknfmxSHi399SxppiaXQHxo/1wjGxXkXNTTv6h1fBuqwhJE6C8+ZSV+gal81vEnXX+/9w2FQqtVgnG2/mO7oJ0e3FY+6kFpOsGEhYexoGt/UxIpAZoqIN+CWNhJIASUkneaZWtgwiL8Afb59kJQ2E7WbBu+PjYZ/s5lhPobhlkz6s8rkhItvYdiSHT0DPDKvp1oEbxsxd4E4cjJFbahyS8b089NJd9gF5gs0b74H/2lUUymnl63cV37Mp4iXB4rtE69MbjqsGEBKTPumLualmc8pOGBHqWIdhAqGdZQeBajcb6VK0E3hcU0wBB+GJgm7KUzlAHGdC3azY0KlHMrLaZN0pBrgCVR6zBNWtZz2B2qMBZ8Cw+K4vut8GuspdXZscID10U578GxQvJAB9CdxNUtrzSmKX2UtZPB1udWjjIAlejzba4MG73uXgQEdv0NcuHNwaLuCWxTUT5QQF18IwlJ23Mg8aPK8ojUW5A+kGHAu9wtgZVcX1nS5cmYKSgLzcP1LA1l9fTJ1vqBSuy38GTdUzfzz7AbnkRfGPj2ALDgyx17Rc5ommjc1k0gFoeIqiLaxEs5FzDcRyo7YvZXPsGeIqNCYwQWw3+U+yUEJby8bxGb2d/6YQ== andrea.ciceri@autistici.org"; + ccr-ssh = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIm9Sl/I+5G4g4f6iE4oCUJteP58v+wMIew9ZuLB+Gea"; oneplus8t = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIO8da1Mf11vXFF0kVDgxocVoGwpHHMEs9emS9T+v8hLb oneplus8t"; hercules-ci-agent = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGPupm00BiveTIYF6CNwuMijF5VvEaPDMjvt+vMlAy+N hercules-ci-agent"; }; From af7de46bf5bb0c1d084f9b91e7e77c38c539087e Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Mon, 28 Apr 2025 22:22:02 +0200 Subject: [PATCH 405/492] Fix `adguard-home` and use both for DNS and DHCP --- modules/adguard-home/default.nix | 34 ++++++++++++++++++++++++++------ 1 file changed, 28 insertions(+), 6 deletions(-) diff --git a/modules/adguard-home/default.nix b/modules/adguard-home/default.nix index 4020c07..8c4451e 100644 --- a/modules/adguard-home/default.nix +++ b/modules/adguard-home/default.nix @@ -1,18 +1,40 @@ -{ config, ... }: +{ config, lib, ... }: { services.adguardhome = { enable = true; - port = 3000; mutableSettings = true; settings = { - openFirewall = true; + dhcp = { + enabled = true; + interface_name = "enP4p65s0"; + + dhcpv4 = { + gateway_ip = "10.1.1.1"; + range_start = "10.1.1.2"; + range_end = "10.1.1.255"; + subnet_mask = "255.255.255.0"; + }; + }; + dns = { + upstream_dns = [ + "https://dns10.quad9.net/dns-query" + ]; + + bind_hosts = [ + "127.0.0.1" + "10.1.1.2" + ]; + }; }; }; - networking.firewall.allowedTCPPorts = [ - 3000 + + systemd.services.adguardhome.serviceConfig.DynamicUser = lib.mkForce false; + + networking.firewall.allowedUDPPorts = [ 53 + 67 ]; - networking.firewall.allowedUDPPorts = [ 53 ]; + networking.firewall.allowedTCPPorts = [ 53 ]; environment.persistence."/persist".directories = [ "/var/lib/AdGuardHome" ]; From 350c745cf1260ce934363a7fffa771a787867db1 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Mon, 28 Apr 2025 22:22:17 +0200 Subject: [PATCH 406/492] Enable `adguard-home` on `sisko` --- hosts/sisko/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/hosts/sisko/default.nix b/hosts/sisko/default.nix index 50e3cc2..0beb993 100644 --- a/hosts/sisko/default.nix +++ b/hosts/sisko/default.nix @@ -34,6 +34,7 @@ "zerotier" "mosh" "amule" + "adguard-home" ] ++ [ ./disko.nix From ddd85e4830e9bb5a6228944f5625da8bf72a340f Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Tue, 29 Apr 2025 11:06:45 +0200 Subject: [PATCH 407/492] Disable `promtail` on `sisko` --- hosts/sisko/default.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/hosts/sisko/default.nix b/hosts/sisko/default.nix index 0beb993..3d3fd83 100644 --- a/hosts/sisko/default.nix +++ b/hosts/sisko/default.nix @@ -21,7 +21,6 @@ "grafana" "prometheus-exporters" "loki" - "promtail" "restic" "atuin" "immich" From 599690ede5fc31ae6e4c133cd0ffa152ab873e4e Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Tue, 29 Apr 2025 11:06:59 +0200 Subject: [PATCH 408/492] Fix DHCP server --- modules/adguard-home/default.nix | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/modules/adguard-home/default.nix b/modules/adguard-home/default.nix index 8c4451e..4a472a2 100644 --- a/modules/adguard-home/default.nix +++ b/modules/adguard-home/default.nix @@ -1,4 +1,7 @@ { config, lib, ... }: +let + interface = "enP4p65s0"; +in { services.adguardhome = { enable = true; @@ -6,7 +9,7 @@ settings = { dhcp = { enabled = true; - interface_name = "enP4p65s0"; + interface_name = interface; dhcpv4 = { gateway_ip = "10.1.1.1"; @@ -28,6 +31,7 @@ }; }; + # otherwise it creates a directory in /var/lib/private which can't be easily persisted systemd.services.adguardhome.serviceConfig.DynamicUser = lib.mkForce false; networking.firewall.allowedUDPPorts = [ @@ -35,6 +39,21 @@ 67 ]; networking.firewall.allowedTCPPorts = [ 53 ]; + + networking.interfaces.${interface} = { + ipv4.addresses = [ + { + address = "10.1.1.2"; + prefixLength = 24; + } + ]; + useDHCP = false; + }; + + networking.defaultGateway = "10.1.1.1"; + + networking.nameservers = [ "127.0.0.1" ]; + environment.persistence."/persist".directories = [ "/var/lib/AdGuardHome" ]; From 84e19cb236692fb9d33d1d7b0ee77fbd231ae2a1 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Tue, 29 Apr 2025 12:21:12 +0200 Subject: [PATCH 409/492] Fix DNS --- modules/adguard-home/default.nix | 2 -- 1 file changed, 2 deletions(-) diff --git a/modules/adguard-home/default.nix b/modules/adguard-home/default.nix index 4a472a2..cd9cec3 100644 --- a/modules/adguard-home/default.nix +++ b/modules/adguard-home/default.nix @@ -52,8 +52,6 @@ in networking.defaultGateway = "10.1.1.1"; - networking.nameservers = [ "127.0.0.1" ]; - environment.persistence."/persist".directories = [ "/var/lib/AdGuardHome" ]; From 70b61a74ae8e97d66e2d3bee90351c20ad07d1de Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Tue, 29 Apr 2025 12:21:20 +0200 Subject: [PATCH 410/492] New `alloy` module --- modules/alloy/default.nix | 53 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 modules/alloy/default.nix diff --git a/modules/alloy/default.nix b/modules/alloy/default.nix new file mode 100644 index 0000000..728ca28 --- /dev/null +++ b/modules/alloy/default.nix @@ -0,0 +1,53 @@ +{ config, ... }: +{ + services.alloy = { + enable = true; + }; + environment.etc."alloy/config.alloy".text = '' + local.file_match "local_files" { + path_targets = [{ + __path__ = "/var/log/*.log", + }] + sync_period = "5s" + } + + loki.source.journal "systemd" { + max_age = "24h" + forward_to = [loki.write.default.receiver] + } + + loki.source.journal "kernel" { + max_age = "24h" + forward_to = [loki.write.default.receiver] + } + + loki.relabel "nixfleet_journal" { + forward_to = [] + rule { + source_labels = ["__journal__systemd_unit"] + target_label = "systemd_unit" + } + rule { + source_labels = ["__journal_syslog_identifier"] + target_label = "syslog_identifier" + } + } + + loki.source.journal "nixfleet_journal" { + forward_to = [loki.write.default.receiver] + relabel_rules = loki.relabel.nixfleet_journal.rules + format_as_json = true + } + + loki.write "default" { + endpoint { + url = "http://sisko.wg.aciceri.dev:${ + builtins.toString config.services.loki.configuration.server.http_listen_port or 3100 + }/loki/api/v1/push" + } + external_labels = { + host = "${config.networking.hostName}", + } + } + ''; +} From 60dce8e6810327136ec61770f1452a059014917e Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Tue, 29 Apr 2025 12:21:31 +0200 Subject: [PATCH 411/492] Use `alloy` on all the most used devices --- hosts/kirk/default.nix | 2 +- hosts/picard/default.nix | 2 +- hosts/pike/default.nix | 2 +- hosts/sisko/default.nix | 1 + hosts/tpol/default.nix | 1 + 5 files changed, 5 insertions(+), 3 deletions(-) diff --git a/hosts/kirk/default.nix b/hosts/kirk/default.nix index f08b669..72cebd5 100644 --- a/hosts/kirk/default.nix +++ b/hosts/kirk/default.nix @@ -33,7 +33,7 @@ "adb" "binfmt" "prometheus-exporters" - "promtail" + "alloy" "syncthing" "zerotier" ] diff --git a/hosts/picard/default.nix b/hosts/picard/default.nix index 92783d6..3cbb5d2 100644 --- a/hosts/picard/default.nix +++ b/hosts/picard/default.nix @@ -40,8 +40,8 @@ "mount-sisko" "adb" "prometheus-exporters" - # "promtail" "zerotier" + "alloy" ] ++ [ ./disko.nix ]; diff --git a/hosts/pike/default.nix b/hosts/pike/default.nix index d699e49..e5e6ca6 100644 --- a/hosts/pike/default.nix +++ b/hosts/pike/default.nix @@ -35,7 +35,7 @@ "mount-sisko" "adb" "prometheus-exporters" - # "promtail" + "alloy" "zerotier" ]; diff --git a/hosts/sisko/default.nix b/hosts/sisko/default.nix index 3d3fd83..9faac29 100644 --- a/hosts/sisko/default.nix +++ b/hosts/sisko/default.nix @@ -21,6 +21,7 @@ "grafana" "prometheus-exporters" "loki" + "alloy" "restic" "atuin" "immich" diff --git a/hosts/tpol/default.nix b/hosts/tpol/default.nix index d73b62b..a586bc0 100644 --- a/hosts/tpol/default.nix +++ b/hosts/tpol/default.nix @@ -24,6 +24,7 @@ "battery" "printing" "wireguard-client" + "alloy" ]; boot.initrd.availableKernelModules = [ From 4f293981f82c820c780c4f40b744936cb25f45d0 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Tue, 29 Apr 2025 20:53:11 +0200 Subject: [PATCH 412/492] Update planimetry --- secrets/home-planimetry.age | Bin 564029 -> 665617 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/secrets/home-planimetry.age b/secrets/home-planimetry.age index 2926aae9a0381f1f1730c1bd28610773014791ea..96190540fc0e74558e42add063c0b20c6ca25639 100644 GIT binary patch literal 665617 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%0DHQ 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

Ry|<8XwuEEN39pg?>J>WFKy@J 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

EG)B*OC3!_FBUk_U>b4+-d!hnL>!YTv zp4hA1|IF)R>E$JnkIEVz>mPF2plmPyW9s4)FEp2k%9Uyh2dwDiy?$P2!JmV{?{~8< zE;i)b*<~FZ|%OcUff`+!NZ@Y8;deFh!}7BRo1*iWSx1nMWe^V z`iDaCXHKs5dbMi`-?YR70;R!9Yrlvdoc=VXn4RP6uB#@ps?J*vsBejDbg@-hw=i|N z>)cChqIX}cib`pW);_*h^p|G5`ne+?#1|N`b6nnKr`=e#{=tg8$BwIaXx}jS)3q;X z*MzHv6N}}jsuyAoU*%Lw5DsAHI_(sa3x>*%r;@oiltI>)*icES5_haXV2E< zy>IlGJ~y0wa!z{FJSz>|qq_su^+$0QY+Uo#O@J$6{X2K$(DKT1;h4J8INbo%oPe)|7YcS@4PRs zQo1?M{VKnEn;~HGw~43pa<`vfFFm*Q=97nBQgan1bgX^(VW!t}-XzyaA^f{No|tU? zcz@r*==89*^lo|1IXag({tLcax8s=iJ&t|OoO8bMZ4f)m zRC&DAk}W!YS^lov+Vig4&lszI%sjAZ$w_gmmyavned?JPvhE+tA_I@=_6gtj^Hdyq z@?g{9tuJ3bU-#$D&W!p`Mh^_Db-xSj_*u!mAc#S*u*Yh1s8>S1eDl>EqEUAg4>ovQ zP@7(}Ywe}ZmXv4a54S$wxADShXF=76yH!(Vqgr?JWrQmKZ|1i6shzZ^&*RlLE-~eY zE6XK*W>)(yyLd1?%F4bh!*Kiv$Bh|5!jYP$bDy0o+EHKsSr$KSUN4ZnQ}w35|5_E_O6S{> zkuxLzExEnNXytF&OpHhL?@~6|$lN=9-{-lrxF^Y2 zh`+r#?~DD#Zxb81E5E+rxD+|X{dmA6XXz;xGu~V&)PMJ%^aodDty~jqYj>{ffLxUWq z{^vKm5WHeR=bq=rZ*r~0&b%{7lW|Qs{p+eS*^cE8Z*55DQdqNim0-^!;h=>-!~Yq*&B=MIaC_xk%W41h)oj9IwzkD@)wQti!S+Sye1N0eUuRKHVQAYVLrQ~BQb zhqIX9de!lku4H40m0`IkI(1>eN5?I?X=NL}Uy}NA*Z=8<1E1b%{_VU}TK%=`iN_`D zJHNX{cU73yTwVBo`OIY>S|x0+-u}~V`g+U$fBSx{Z}OWwsemzN^0WFx9rYTSX4Xyr zn?B~AFTA00sG@g$@Rsn<_wsK|Lpr>Bc1V3>ZV9sNXn4loB%d@#;G#&)#lABd>yPzJ zS={2gc)=mhS1X;*_Sa8ph<>muU{%N-tsT=^KK-1rob|j;!~2AVoM+f>NM(pGzTdo0 zah0@~?d55r-HSH%%)8@PBzUItyVKhF#TS09I^R5@`;KOfBa_$Bt6YEg$pk(T`PSe0 zL%ZX+U*!i)2BmbKJS-%g?qDtQb7hCj3!B_EhL2A|(G!QaG}m+xe#ccyfc*w@pG&Yxeu zl6#`}y+8L?i{)qa3Y>6alKa@km9tdi^0A%87e6|S_2+6{Z%Jv^sj8o9bxHhXcG!Z= zdXIa)FzR(hy-?_9*SU5;XqT7i@lf?ESG?qo*~^^|`~2JD1mBaz23n{8KF%*K+Bh|5 z&$sURi|&sXgFy7C;ip`8;tE)gFa*Y|h_CeGza4q}?An|{!@|?IckfY{93^maS4MWX;O+I_JDx_qm@Tks zXWpmXr5`;5Y!afmBw4=3N=3%Z;Ho&OCVlZn(b@N}Y=lhS^D$qSlvKQ?T3{No#*Hm# zpPceZ4?&M5n-h)1R<8{g-XV6rRq2*#VNGCtrpb!z_OGcT^WztnX0xvP$@%4Ct{OMf zip+1fj;~7hohN#BfkjY^O8dDjKY9*ibDVf;Jn{a1oAaHAa}O2tmF)Qy`fXk1`QFzD zUjJBnBJOOU*{MfO_sa_{o%8(W20gcznv&+i_+HPHaaLqgO_ROf=IidA2SdJG+Ufek zCR7%;Uz>{H6a#z}IP!CyH+6p0+x&WA@#jW_uRq{knB|N7sJm zOMAMnG0ZFfH~-)~t=F+fH)vhc7JXdF_LeK`ye8MeHzpr){~rjPWjyC$#fl!=%9rca z>n<-maA1>ig_p<9$3e!GHx_)h6kRl}_;t=F2kpATUoU57sLf{XvTKvsy(>noVsXf) znZH#&#T|J6s&!-Ej*Mm7PT$(Ar1nnr(MGA9d6A*YQ+aaMH7V(_v0s1nm-GI$x*cSfGb+aCSN;n2kr-|3t>Y6o6Tv%lk= zXfI)--F((aF!}98!A@Qh)PuX9#& zO8nv8V*99OiSET-S=0AMiBH*UoUN%K(kUdgF4{p`N@(T2LkY*;roA!zx8PfT(WLgB zUyNQkiLie4W}d$H@s#AhGmaQvUw86j(YwROXAYl#JX4bIPpBT>r4R9JYVk!*NjjXI zF7^^45ASWe^W?sm#B95B`Kx(USHwm8c}9qG6!!?6{aPaX!yxbOGlP82$?L_0n*Ovj zTsjka>}<;KuC1R6H&xVJUTN`|=_9}BsZFsLr9@^5zR3T3i-99CaK7+-!Q@G6#dZsR zc)|93S!WfS4O=6-@Q$Y)wcZP>e4JSQr(fnY&MDl_K6gXXU-eQ6-d~y%U5<(UxVr!0 zr2X&9c*HoLX2^-hA4%TvToA~XP6>F?l?wM|Rr%+Mt^7~T#_%PO8Gk)c> zJrn3&@kFkubn-!`uL@0PLnc)ARV?`VW8;V91DcO>_eELkozHRHT~9w+KjO^Mpj~O% zSvS{Sa62n^?^oOZ$t!*szI=1s@W%4*`8mZEGr9DO-fTCDoa@z~u})C9JHuevq&=e6 zh8w>G1w88RT{Np{%Q~M4(@yVTyu}%)G2dPS!CEOpsTmP*@x#9Ke)y{Li zbf&zIEZ=!vkRj>6+_LuS8a6qTLly}$C+I0$h%yd#I6m#hefN1Y51wV+>ho7sY;H5h zqh$)x5^L^hF#gP5b$8+4Jf*{#mO&F=ov<`3Ojs!RLZ?sk+p{Qr57!3Q{E!cQ3pt9v z_+;=Z@9wre{p_lC)yll5dg2G=0!_UaJx<%~!KKD^A$iH;U%}Ego?1QT7yfo#F!uYN zdQ+&J{c(AftzboLrq$J^-UQXxOU`Jh6uQ^`vz(094tFh>a*>=w}HFln`0q7k64{j9%w1I@0u2NDVpEZYsI^` zLl-+|hp%cre=VtNTHng8+SVSI@4NC|>*EyqQkQ#oy83gw;&pf9kJSE;DQcfzsXjwA zvv6tj9(^Sz-2c#von6` z_c7i2Rnx!w&`q_gEnYL`dMp#$%j)%Y-upvyXSHz$e%-XMX!UHr%QxG8eEo1lp6Swg zUM`l9rz?(Dm$4OihB*3ZetpkeezNFe`{@e*DPr5tc!b;*JrZ2UtemRe`3L|OG4RiGh{A(tU0^br8oP!W|i2P z*X*A|v|il1dG~Pg@U2=LbTfo|&$i!UrE|9);xPCW5h;25bjQ7vn}A z>w{u0f0oM+G|XACJB7vC_Q4L@tM7azt2ZkvmV{?NlC2fV)-71X6u~cUDBwPcbLENo zr@p-YTXrn6q+GutJgcwe?7yVCtH;0W3cKolMzQxeb7;%*N8UyAc4+9f)%Q7n%3^1aoS>`^`yZtla-UXwsQF<$%W1X6zlKuz zyGfO2Iv*@<*>P#Y6HR_jjl&%+(|r5Ch#Jn{>!xrw@aCb`59{6)%iinBwor<+5jfLx zPF=$B>+!55jwO>BU2a8oUTj`+UTMk}Q{FhI8E;%U57fN%oP65-itUL9IleZQo94di zTUU2=>yeaI3s#;}s9cz}G=Z-vt53|>`sP8#b+4}Iu3zL|6MW0fXS*-Aq)_cO`Uh@T_;`M`(Uc3z&7<28-gN?rl$o| z*`0q7aHwJVVbzzuI<0@(HkPN!Pnb5fF;+7y_qIT0W$$$9MQO^Dm1|e{A8}}%|KRXC z={PNG>lN=Awm;c@_59wa^Xu;>$Ek~n@3}a2O}DeGjrMNS8m>&~x?O5)FW%~BJv_JX zFz0-czRwEo{8N+p%k}m5ZkK(y%xUKJ`scdG+;@033J7XU+at{swDasEruw~^!Rv+h z1h4mSW==i!zU-C|f6-Ze*YihYDz}~Ny?>AG%|BkgU9D5y0>W0sy}4vH-A(r6^)$mX z{ED})doMh;>g(pMydR9W`zgog<{!-baQOP$)tQy2)*ZQaq1}1D)}gGgY$0==cHMhg zTdox)YccoaFFnh~FrT;KhnDYY^lLrORy?&pWQFvX<>L33`?2g;x|aQTU+ey?^M8^p{#PMCaQ&5}*UK0E`&p|ba{KGnwW5(%pZ-~x zww^b>D0+hWMXjVa&2i=PXPx+6|0msUNtI<_o2SYV+roQp-pMCDvzB`+J-vNxtK`h~ zU4bkWHoW>Dmlx#QEDJcGnS0^OozUx~E7@l{uR&OX0ikNjSX zrm^49c=pk0O~JW+^9~5z|LI_Hb$RX_eX}Q7QQ8HyZQ-%&+iEL5_k{fEE_XDz*e9`l zn_-?2^G&T)8~Ts6Gi*NNe7X3LjM>Vfe4pjQ>-%1vm?tZ>G zQS-wOw$zB_jP}+1#=_y&*KbDMy{vWkpObWELS1)(+MoGvPsyFa@ow{ zwOYSQSp+qliqfC5Fo`7ketz)wrr?uwYl|sKpC*<~Hn~#j|5VZWlKNSe(D`f2_pq7L!i8C_qm1YR+;(vU&^^f2Y!Jkj|ZJKO$Hs<(KG5r`WUn$kTj~7%f3Z32)e!?no zhxV6CFL*EafATu&zF7F}+zVF^PF0&`e?6A{)uxrN1#ee5NBlYWe!arQzLnF9e0?|a z7PcJ_%X8u9XK#>fn?50jxum2tG+5D#XW53I-3K_QSlYU?vu3-K> zIKt|=Pts08#`|M&pYV)|l6BjPPMnx`gXybWl}KTg>~c1Ssi%CO z@pK9Fg)M2?@anN~&bBkstl?>XrWdxn_)&UCVQ=&Xr4*@ku5=$(}!*dUn>v zp4&W)wG*Y@*uJ`Uq;;~_{LXE~f_YwY@4_4xJMXqT$ZHg}-0FU&%m@A($Gf)#?qB@# z<*E4|E4a3cZ_YfS>-A1A!maW9{I`NGE4I`;n__5dd8_4Ze20VM;?|`FC%VcOR<5bo zy!~kCjOB-`y^POT2|J5C`MqLV?t95O*HW_{?OnJ@IQ9SYgehxUmNz`M*OyD5bhy{a z@AGz+E6ofaVoDc0Ix!akNZ$s*+L!_&R0 z8yEQ%ste8i^7^>|7C134;Kq{0oYVdsmyZqDKU2$lxy<8vADDfd-mgAhvvQj1|H~ zFKge7-P~S}s%?yprM;b!*>Q6B0$*NJ=1+^i`zcJgc0l#?dE-;Lr%sATHQY4cveV*K z?3^<`4AWHFQqxvzy!t zYI?U`45*9yT&SFqd6@gIf!h5E=p~B(s+PYFYEo|5l6#)7OtN9H9k9#y#Evr=Jye$l%n{oF||e;j$6j;76)O`j<#jK_)z#~-*)Dy3w3%u7TsN-;tI8uLp4cKP zsA+V$vnPS}bIK?C zl;5l3F44Dp7Tn`;HQ2R&rr6x+s=SKomd8$gI4=_`RFZYfYu2jAxo@YxySR!aV+vOc zi|*OUJDUxJB{O3dbg>kEaa@}J=k8R|TSff`E*!n4vN}>Xw5#p(oyY@fv!6A;wq0T# zSLSb96Z&bZj^)I54dvO(Z|5Ah?YeP8_p67aL~_sAuzbUTEsHKsy|P{8-Se%o zf)gjmp7*S|fT-3O7D|6A|b5@^4%XNQ+-+$PY z9wBNOzU4>jaovlP_r6$jY_)FFX2y5d=UjGJGFdwRRDzV=w<#Xc_Lp_`_wdIe9=^{dsm*2rX&S^Dj6(fj>h?$}m^1ub5c-}!FCcDbpWR8Mf{t0-K$ z^X)C~yVJ8~e%g4t=jv?Zr89fdUw@hF$6AuG`mAb5Y5CLU_M& zme2heP5K;O2e}?!J-hGWN1s-8*}MFi+V!T>OCRaV@x3{d9~yVZXWGi(v-_Uu>}Fz+ z+1>j!ll6P`71Kx#hlkUq|8SXbaQ+4BEGg}B+nA-%wtMC!mUishHZOkj-36QPOi)>? zzOZ`o%3q5!S`*jst=Y?c!$@+*)l{bWuam{ypNOB83p~5@$f_EyhZAxhm&u6T-8E(I zm4iO>i#RmB+?SubCj589{8$djearp#S^8+lUp&iqYTa#%1IupBc_C8%XaDog$Gf+E zi_7h^YV`H_$+Kn2;@@ju=wELXlKI@RGVRs}aj927-4h(d3zn;HUb0J2Yg_QD{`8!G z?;3Z1`bdqrBly zDzy5Kuo{cGmUolHWy7g{1q;!+ATg3n7w-OFG3 z)G5k9sD+(BX#136(;e0(UpLjyk#uv^6~~$M68^;n39M~pF1($O zO_Sexy0F(=kg8ui?N?jm$`}({snA?*@ysVr_n)lwxGzz2P3OD|?^{+8si~dcww$zE zmE2h}=}CIK@yFZgb4$a{hhA}F+t78sXCco^%gt&fN8g@5arf5WLybX8gF{+Bt-JV7 z@H3Bx@M?|Cj92?6U+_E|=DI8^>+;&);ky>R4)yEbq_Wy?=kzvjpS-oz4M%z8e61ov zj&AYzFXSS+>xA-*OXtqjos{Gka(*IzsC-rN>ig@<4}4qN@YrJNDzVVd6*(El@@FiZ zdVROy#jDem%aT^RBs((2i64FW{ONQyzoeK<`Sp3rR|+k&{Sap`v77Dp{BMmbycA78 zb#XnvU#1##=HJh~xikImGB-^PJ1Z=D&!^IR&(r>zAbtfsA(rt3yX=hpe=nXZ7e03SbxOz*7e z@6rl5UYrdSe#-XlZn0IVLdE>mohs(d*}RL4#53-ExMpp;-TCv1dCv|_a@5_Sddn&O zQfBz~K&Ed(T+(0Oeoy)k@{mPN)<*E)+^b&3p-XJ*KJU@k9zE;iw)3%)Z8?gH+q8|e zKE|luT+q}w?aiiJY|}rTd7dpH-CU&+d2NlJ!nC@7^cwP3-@N2TnqT@GuLRB^W8*_L!NgOm6H#i z`E_UE(>rdDuW$SvS$2+5*|tAvhwF(cTm~vyisr@L(rYfhSF0~tHnHoRNHI%iajizt zS=rzj8y5U?yU}dM)^D8m_idf|p}A4-PA`mobU^y0jc{-FzisSy)|g}#nLIrDo8Qjv zkKp#JcGFHhzPjy2cl;Ss_x@zw1~*}!Sr=GlB@{$&P`Q5WsM_n(Ho>aAoV?!-=c#Ei zE?(IioxC(|cYbDYj|k(6);)`|E1sA*v1+8>w%q&p%nZZ+PAApJOr0^G=M`UN%nE(2 z60`J;<)fSl57T;9{w?WKw$D~n^Qfs1>G6pb@_HipsquzX`o){w{gcjLsAD>u&&vCZ zr~RO_*eUsMpGB6X%U*l2^@pT(R$=wOMduFPkNM?$`0Xjf{i=)^eE-)(OJv=fwrP3t zas#P|{ac(?3CA?Bu6y!%?}-QfZ@#$|8f%sA_?YV+xb2l#9a~T9R9|D+D0gn{?pF&Q z9KOS_;zHk*GQT~AceeiC@@W3C*q;skNsWBpm$+RBS}*)&lOs>vj7ZCkpZ*6Q+fe*P zb>YUtlRxM=+>|yC6a0T9_}lDKX(dy})30_{&v+T$#9dX95rj~4dIk_q% zZEM#J-Le|4G}-lA51sv0XT4*?6~6C`D+~Vk+DPn0MO`bkx6XH!n5C+t z_GYe0dv{6p?&eR^HMC;m3q6w@#6NoOG1iOPZ(nwa$Kft>o%E&!`-Qe$yc1uPt1jSq zvVWa$pkJ=QsuunTm?->L4 zoQOKBkEf&mc|NGfzdu_j{Yc&3d3UOp2#LJf)V4KI_i$_Yl3mj>qf;Y}IqI!do#JWm z>zlYln?ZU|7SrcM-|1^sF!ubM>7-wjviwO;SZv+t9k1^**rtk~`p|1r9sOqMmPH%Z zNBp`q`QxTTDLWV&rt;~gsCZiZyjV4Hk@Vv?eRdfN6=&m&16oxV_^rIP^uU1{U+#DP zr{Bx_O_(}GD7!ES7tsZE`ew%7~r(EIp-W2%tQgcB`^0Vijt7hH6Iw=!&FhmErb z7jK8#n>WYwB4%}+ad(c(W()G^KHBhixmC;mb6QVjnp&E;G|hMJpJe0kVybZbKUd$C zTTB1RcusK;@_ILy^JmDW_pkbRVj>oF7H_b#aF~$OsJ-Q)zGlku$OGyblQh5DXsl7O zVDeu5Y5ucCUH5lv7CY*Ad;et1xtmXQ@4V}Lz@lo24u|S@H-jICItxCO9KRWCTx2p) z>y`9;<#`51CobPxZMu=!tjNl(bitF(YxFIyu@sk$UGX~*JAC&hP3+ta` z@xQ!o+Rdqto}Xg9n8mhK_3Y)o!2VcKXP>Q4d`e;;IDYvwbNao4{F)E@Fa7W?yp^%s z{H5)R$bK8)#C?5J{+hP@yOCG?*G$ajL0qDxsM%}A53k*9d@DOPF5YuSa{Jzc@=jvG zvD?&Nw<7!kD~2QGq)|)3zX*NTDHS&2haWtvwMCFD~PR)3> zs$@fR!%L5#->>)bKhaQgxXRTSx8iV}!4}2d&UJG%TK`wBlnuLGbMW}F!s~xBCdkd3 zqi1|yQ|ifIRmG>hCUcJWW=C^}EIB``Y0bQg_x2=p z`7_Gp+BJt-F5We%UU2#DtZ9FA%GGA`ODcDKxyZw3YVNBbcI2GKQ85uFU)BYee=ppT zyoce?DTB>-f9B6yY}Z}3_#aPNZe+j6>yx4x!mARmoR~2+XvLHu^{U3LIlC`0Tir30 zc(9S1R$Zm_s(?{)8x z9g`mjuhqCQM|g9##i?5!Ta`T$?mh}))%f}O%U-3G(^tL!x-KfP;FS4Z)eXl^3xBZg zl{%^|me#-TReVgjkH2Ac;_7+ftGDWi85Eq~7SevsuEFJo?&9*0G`~4N=9S&qd1F$4 z)&-uff;px+|728W&gq!AQ1R7%?afWmyXyMyWj<{W$rftNX_E3;!Ybdnm^nA&(UZj% zojgasW@lQY=*irj?e+J9LZ?Lt>L%n+UD*0d<&0QM=w9e?4>`hPJHyi zK0VLO+vtdGz`UUJ)?*vFZ=c_ozAhlbnBnXei|O%;t5zJFfA)e;!|g^*-inIP$ILn2 zIV5y0`Ix~tPo8ml(&fd9mmVB95z&yGKi_P>@tjxovo=TB@N^5MJp6gjX78Mztkp&Z z@kTLGi-H=TtcchA-|;zoo4!Y3w!)#KyO-$HF%`4qe!pU(-2T-65WDCXgJpL#%y#D$ zmre{_+}*(FTr}ZCbH&ToKR16~zgU%r+3LH+^OolgdM4|R{oUsBS1MqKxqY?k)RX($ z?gXd!ZoNJ44J)VC^`!h|1~=zBJw0=3Ng|Wqohi8t6*Fcg@3T$@JGMKqy##;~Ig73f1YEH{K?hcrKsU!R^ZOvQY7P!#jP!fajuu z4|*G0f81Utr|M)7zU#PS%qsI6&px`>-(Z%BXZ2v&o2qc}dHbhZ83ng%Tb3o6Z+rVQ zV^P_}=Vh8VB1=6A@_HKL@0G27ttR%>BseKAPd%)*Bi~toN$PdkY|iH|bd(({rmrZ7Ot^4qO>4Utaa7h`9&TH$pMZ8imnYnJ;&!zY4wApJ+ zTi;3~pA!hQIufwFTw-2PY>duR&oW~n6$xjp9j$xMIII72QQ#U|Pcmo>+~Su}2&| zvd#sC|5r39(O4;eV18lfEcwsN7Bus0=K8I**Y-)Wy=q(c{YYZy>b-YX zu%xf$Qk>jdv@ZNh$2@^D9I4ct#2t4_)4Q}O&UN#nq~rB!f7kR1pG}`z zeyuS{{PC$HTuF;HeI6IYrlxLs5>k9Lanr#y-JC*7^W)+ezdkzqe1=@QrOh>?9g6ej ztp2)lvM%?DZDCUa7cYCa;z$3I@^xNa^Ixb=|1mpm#_6MZ5tAxce|3E1yW-KLH=F*t zhwJcNjQgdyVfxEWEM2~rgFbo^8U|{e_zt%j*hT-_xs@Hdbar|zF0~!WL?{By>aS_s^<~>I^FF|9QAXY z=c<3LP~03aG0T&`@o~wuw`z|jX>Hla`bL#`rOd6U$nf9|A1=SxV#M?JN8V!gn@(54 zyPv+`TIpnT_~WMI-nkEBrZ0Wx)-k*4l-{@8&vJYVWQ!!;^3PgnK7G6E)wSEVYPOku z?NFVwJZ5G^y?ESbMXg&K%hP@CpZUt9wD#9q=AA6>H{MA;{qgL!$`w*;zCU+SdMc^Q zJGrl=@#)-MKUPYdl@yu9KQH;CdPaBeqTjD#wWj$kIKHZ8!;=KdoD*F;rZMKboxT*f z;Mk0{Yd&s1@BCD6?+LRNiQ)>~hukx_gz28{Q#5}4=%A#qqd}pY6=VKDp;o>mTq`X_wtdGV+Y} zuXL)q`gQxivj>k)WqP~&V3@PQ!JxqA+S(&lwsL!v*YD$C?$hG*|9SHKV#yO5r=M&U z{5xZ9>w$IAcZI8c!x?-1)dzkg!5RQDVy<8)|`;yVt zqhC^V-*P<>bI|oITH&~(zmYv4LtuWI&%ea7mB%?ImEQ`Ad2DdyT}S3&AI&XwKOZfQ zO_Q>=c(a<#C2Nrr=ijQ#eAiOJzl)PQPj7$Q#=8EniefbPl%!KxKRV0n7YH8l;ha`C zbLq65Z~bpRdREag_wMrltS{V;=*^ye{aE)mt&|_TcX$?T?zgKs^p@wg+s<@1-7VHX zXP3LjO}xBx#xC=hqV?v#W>>DdeX;tuvsyvXfpyU@+Rxr}P=3p67B9BfM=JTPxL@J_ z^hN7mhxb36!EyfivxORmbdvrX%@k@(&T@;XKg6)C!{E`fT{ax=%IbA%1xr{|lVZ6| zoh_qhJfFK}v$|ZHhiQ;~c^}`^Acn&$R=wEp?Pi)GufJ~NlKkqfexBRzQZ*^v=Yrx)+g3XJ1VuaA zZ9KR4!nfTT`%j&9dOhcyOJ28*AA83eONRSt^Xm^MJe-#*y>-EwMZ0+uc$XSZopJKp zG?xXT$KTa^Ifm58a|Sa^TM{+vrF8s@=^kHh%v`C>_q}a<_q7aR`P~!F7tW9R#myw9 zcqn1OPukW$*!`JpB$5| zm3ZF!@P;f<)kq93%sSm^d30;iwD=u50fmaou1?@zpMKS)H;!THztqDb3i~pzbmpCP zzVg%mUbd8L!jg%1%S;v*PSL*K@^%;RF~5NL@QbQ<-#B&Th@Cuap>w6$;l#VSiW|dA zMW0I4G2D<5u~$MNHg&Z=$4M5o*i*mk15xx6>_Ra=AkvCDqx zQ406hUFTV4z`OOBb;t4PZuXxJHvP;tc)}#u5&ceasmiS>a};aUc$TProfY}FZP%Oq zPVGX^n;z9~$n_Sho!}ldd$xr7H~y>@1ejb*0p{ju&6v{f-%( z(YqU8PhEdmV7q9Xgsf=Rf`SN9mvU4}X@Qe~)9T{G)PB7q!;~GsM16GhOMEdghSh!Mn_> zQ#_pa-du5S!ozb;69VUa`}OM6_wXna-8F{4nzKYaeMCgpaZmDC_D=ZG70<@@Yl{yl z$X8U9Z)(b`ZkiMv(&QIzJ!}5FZTua_5C3u&YqfrvQ!^=OW#zp*&U3%hFI;7IGP-ni zzhB0K7cVtS0`&@J#Cw(6>|J!)MwIuVVOGIHh3VN=W$RQPRZF}nxy|D=-Irk$(Z?^^r8)${tZv+q_G zew*=O{kc=?^A<9QZ=ROeIzc~U$`$WC>x-|lzjIGa|M+{Q^o%oKEv2sLt5i%lJIN=w z`3~1V^$GW8Ru)-^be`dv-4u6e&x?Mw3z6(64)(ptUy-a;^q{?U#oOW-TRw|lCeJ=| zO`CPt=B4*p_O2EUS4F)`Yt`oL;&n-k54QAua_y2%X0f~V3)kqVf_aav0`j)Fh4gdG zXbMo@YZKJG$=%jGX8L^l1J^!2{_Pl1JWuGxDTiO-t`D>LStd?%==>taw7!GsLc??0 zjBWiN)zzOCul-XrVI`xKZoWy@)#XLrK@CrTuRq~8@0_vz3gu`O=g2P}I>sL-T=?mA zXS0DR*OpBI2M;>zzp?AwKj|vwi?$DDPTmwDeNgiCwkLZneR;A<^Ere4ms#$fGln%ZDcvq%>wTkdZe1t0p`d$#oHkR-!d=F!ucs&(UKUjFuw3*r<@@{C<5!Oug`IyX zz>pn&TmJjb{Rxc{ai>0?@2GQkNceD>#p!{9-|3T_5w>BgubsZMMEvXn_v7+``xLLK z-{^Q-$*$v~(kNAGG*epspYgc^47Log zC0S&zhAgK&uT8Ve>0%RMOqW;y$h1GdWMW zpz4+W$=U1ftj@dAHsivk?VB$K?kr|FubzBGyCGKbQHK4~RrxKxUuN7+VaZNpUNyn4 z^{Z0pxv)#(sh8jVIiwS?`Tfg%U);qqY|S-ha%gzBns~2fdgZtByr9R789R^e@zJke zr+4FG7u%I@yVr?$-QD-sDrp(_w{w}hH5{I7eRp(?g2oc9iJEQJ$9=C#hEG`Z=Jdam z12tW3Cuq;xb3cdf4f%aV?pDT z2RR`LGgB&WOl#d&{O*{LmeoaLjkwd9TU`Y<)poD@c<@Z1_^Y+H$0y7?9AbHZBh&Zx z2H~&`iAIutS2iV@6|-IQzWVrC%6#tR_Rk?yO`C375ioSQANE|q^~ zi1Yq4lUKa^baR8EtckhTC5hxEb$fQNlJx%nGA8+>zx8xiMf=WAns&CnQiu7^dE6`9 zsqQ5%ox3zfq-B|vcHIf#;{tqFRTA!QSi5QcH<`98dp>wb$ah~CvUEMk_|H4tLoacv zdEJ=_F5Kc3bHCYrG`CH6`Bt&_+mpDiR_XQG>k0~71gkC-$@T4wz3@6YX4Bkfs=>29 zRTmswxzu8>m}0N`t#I`_xt3{5Kj)XnU%SXM?}p>f4FQ)~HaJORTc zf&ZQF=!bU7d=#I0BKY^JwdPXV&&BSwR87g04gPY6RrvX?;Ab~)1>ahKjU!^Y%$kfh znpdrtxJ5k@PkS4!DYSh1GhN>^CB5HECg=2i_DxkLhz(oJiQilP|kP>Aysi*@A2T z-MKF(EfHUPUQzM)EgiowmLE5YyK4b43&}j8N zwXNN3`~Fr5freOf&aw-)wQgTpD42HP^vYLkS0<}|{PX-u=r=`$-)ns{dY3mw?%Ocq zp~9ux#s%V1%Qv2T@+V5@W5dC9jW<#_C-Cn`+4G$Jcm9i`%n3rPH!+JyZ`5QE%32!0 zU!wl)&uZ5#t%vKs$L|cf`hROnzo&LF^0S#NJf*94f4mv7BY9)`G`^{M8VSl0$6T_L9k|}GG3LtDoH9t(D--x4!5H^4 zjp!&G_}}! zShw;D-TTAl6uYDN&mE@SX;v&3(to^o>n!T>TSH++Yt?s#`{EN~ek9t+{f+s)?*H5s z-_G$(w^_NMZPJZ=mRV96g$#-cI&I4(!|Ki+Tyn$d{kvm7o=d&5kKQutiEik8_I%DW zsZrOaKiFw`bqeFuz6WU&4!q1bv3u4I{d$j`_l#Y|9zBbkn=gL)u0!MDjao0}DQ*6= z{qfHFzBg)jl%}zo?ed>rv)+Sar^>4i*<}aHCms%sS#@bP_h$3^Y#FO|Te3~uZ@$@a zrCr>cJzRn*ZF@G$Ei5c7n{j1&-SM|oMs>9hIV=|$q%AgPldq6rX?FPO=x4C};@5M> zw|!in<7;+e>%}eAJrRp7X4tyFH*G#=oRM5)ApIq8mDiPI%M+Kwr!0JFvg6K_3v)SC z1SAfYe!aH%)4zkx*F0<09v^?TE;2gk(&Q%>ZR<5BNkx?4 zYO7tofCmVc`4v;DPJ;6~@)ch9D(Z+`zjoAs606Jb-%JS*m$ zCGQ`Le!Be2`uwiz$rB#^o+;27sVex&c4}f@Y|4x82NtJQ_S`8oe-h^@ox`wwn$umk z)O9)G>Rzlrtsk6=KUJIRdOSn-tFA+b#m0Z-rz8ZTx31N_kZ>hCV)fZl@2WTx*^a2V z{_o3G3_rZR?`>Qps!`S=5vJc(_~fQ(ZnH<90@qQGDdEYhF1gSB`>dqk`Q0RrJN$Xl zvq~=&%oP4&`ff$)E-A*2q4yud{)X?_yr0X$m%oNbgpE z!y$U=W>2{4*=?egpXAPOy`k{GROL}zqlj01|E&+HliRDKPUTOGUKzcw{yoD9>(ifD z@{8^KC99vkF%J`vUVoIQ`CoujeQrQZ)dKbtuCBF`h72bcNV(*BJMOYPyuB>l-9yCw z_lXn9KP~y|&-Bm#ARcn#tia-q18ogaubwZQlF7pibvjt`c5`IRghxjgf>@h{6qQiGmeUj-W8@jXXS{x`)10uY>t&nE>Hh_ z%7-&E=t+2@Za{q9`8WNutc)``m)D;7(Rl07YLAroqSN{8ksCHRT()(vybuq4Sym~<$c&aaZq28Qo5#Rl1 z+NZw0w6LJ!u%#0}J=$)-(ODiKw$(!u`bWqL{m{!rZedneQ(TAUStGAt;@i%Q! z$kGSRx3^^+i5CkGv=BW0>)P&}hkgiTZStO*!2Z&5hvdO5p-*STxlXE9-wUhZyVdq2 z*#1X-A7_O037+z!n|=u#;okBhHvof)?FNAJpU9-SNL!dIO4RDomr zjE8rZ-&~zm6nk>I&IO}7zuY~)%YW^dSbk<(_9bztuY2cNK4oc4zQ1d7_%^3Ces#0Y z%w&r7_*t`IS+#rWi8wA!)*1Ox-{v){?WyBYUs1l$an{l{yJE$OPPekoC-5+Depqp5 z$CHm)&+PNn{geJo*_wUZ!MrN?PwtCTNk_In*l~YLf#Qi-aT~YX%wmoS+H0Ws@g>_* z>7|Q2DqhP=3e?y<&uC(w5vO-cxo$10 z=&BUjnXg{_S*79m&MA{#$Nn+=(Z9jpbC=j(7NcX~^E?|jpJx4X-f8LUzdxFrJ0|}5 zE#N=b^E=ymhONfsPoiI~T-5r`t5P|rEqdd28DlNWpLrV(w$~(P9cir;^0&)>XeoWt z;!)#;T(Q=@1!o-X*(RwdsBG4h*!Gdltt4s5N%t?i&wbmF>uqImPoVN)oN9~5-)v8L zVP*4{ZHc$oD#9o9?w#@8&U(Uf6{Qp6&)Q>nck@TA?)MYCURqRa>#X>2{ng_eO^RYq z_tkzh*w}VGSVciPfHA9~{Bz}%_HyaZ*GtV3I=MfbHn-s2_OZKgN%2`_N%Md1C!>7k6ZXWG;PFEPFih!HTrtCrKyRLO&?C zu36wweU_!}`x)MbUowF`bBfP=XPYGM4w$e?xVA7XIEL2t#@?q*W^NJi@7XyKb9+SC^6{HUa-Kfeh#1k$b8xN>npK8d` zwPN9Q-A?x^(d84*cK(>WG;h|*4Xbq*_~dV}Gpbo#n_KX?sj22vsg~EGQ^yWPZh7RT z%N-bTRAhfv(TQV@EdmZdS|>Cv6PM0B$v5YA#KC&qByoew6&b1J`kP#>E}7}x3o%$6 z>NBfc+xN#AxA);Y7^TFge^F;qPMFc>QrCa{Qlz$IslvDAW=c{IVq9L$x3&|E4qd$E zq|EzYALP%Ow#d3oxq3x|acS_L#ysb4)~BZyYs77GxU{-9ZY4u>+2rU})(;wuikx~XVWfwcF|H@xhtl}`|MvtS$&olO?3K@;Pq_#F^-<9 z$0hvkmpSe^0t3WCbM5Sf~97txD(& ztkamla;rpAdjAWneRC(S_?7wUrtI|QtexKfSIez#n0fU3>lr%=SD8%zQqudGXLMcWoS-qyXTb9nL>wohzl_jYf{PN?kan_<&^I%va|?WKwZ zD})>VFL?ISDQu@igvp7fm71zQ3{p&w{57bYv2dNLrmCa8toeU$7S^<9=Ki8u%bMnx29}v-(|~IB=@=aXub2_ zItIsu>BW1O7(MhkSajeD08-OWBvTA0}>i zrc=wsxz_pOqwr%7<;vPLp9*pcY%HBPeNp!L10u@%ZXYaoBHvdkwkxnIQCh=&3g6jR ze~J0(ZUeVqakF;=1l`8oSqX?kV24 zm-Qr0KUubseV%UBy{YXx)y%7(Hq1MG;NJaX2e-_Tsk%7-9LrgAmJdIt)PCE+^Ik46 zZ?)dr{<(PzR-P)FyJKqHBh$5093liyGb!1Km@&^^@?t^L+-+BrPMSCS@?Lsq8d-fz zKGSUS#HYFc7HJ==d?~?TCh;`w$uy^3c5{|B$L|VXdG;RLG0RCmOY=ORY81Nf*}pTe zM#AQSdH(KO$u)s}WoH7WK8WR;ckF)k!G~6Bt`}~7!#Dq7gp8;Pa zGwos2@qC>NQ>MB&pHGRjX_gNS`{=l`r}BVyEkmR1q>i<#e@}4QofaWIaUx%Du*m&F z);Fqe91*Wob5;_|KcBH{thC|ct?fI!wJ@T{l<{bIckwpQ znQew_J7uKVWoI5SankVlQu&lp= zMhV+%CNrMr*!Ir6F!=21?7ydLj~K4F^77{Mn6e4;XY;rEm2E$E%k_%kjk_0g6Q4iO zUz_>#rtr?=Y(LG^cefR|NSgd(6VE%(f4E^$`08)-X8t_?*T>yeV4Fom?!W2}hfkZn zK4y}*P5GAS;Sfo)*DU{TvK$g(c^|js&V#KfQd91+^R%DXl=L*D;kR|b8c+WB?#;gQ zZQ_#K8ak{__jI{-Jq+1V&AYyF`-A&8uLa4jE7%;Ot^KdYr6Obs=gTdz2e!>9J!kUy zI`@MW;zG&m4ZrBS9y*lT@bOmnc?Z=w|L&b*s5$5UMq72#;{8_9+vXe;%%A_TJ!i$Q z4ZD|2niTWyp!SuSJd3=OPBYrLIR0Msl!M#k7TX!F9K*ZckA654?YZsduUn_q?aCBr zJv6V+Ia0)Rt-yuv)%E><&iq}%exurGm6AlpdsVKopQUj=d7IhU_pyj2KCt9Gc2sNP zJ&u2$8T{M=4O0?hHValtRCg^^dGcgNWnH4?#QO7RJsUzE2~3{jyw39sQ*GSM*~d@G zzSR5T!>PeseYLatd^Y#Ci-k@JyIs9*C^?!m`ow)Z0QZBilu$D=vb z{k+~r%n_Tj{^;>2VJVmYR!MJ;U-%}e)M9y2aB99qgi$@yx8sqP+kahHk!!uP`p5dD zGgr!fTv)@?^LWBcDJfmKUl%#Dubt$*A3jT*<7r*)vb$Na`4=9}duI?krSJ0H3A;}v zX);UfESTWj69ieHz0ir!$^bji}q{g7VXYV&iq`8Gve zZBk}De6ai36NUx88Bd&-9-Xnkq~+>)R(XTvaZU3(Z)UUHe6Ccb8M)W-(r%Y6Q7#I5 z%O4+|DqY^l`hji7TTyXFp1pR{wAi0zwy|=hrF^)1=U0?$;#+p(dtn7%BlbHcB=s5bq0dZ)2uvYFehMP9;F56XPIV%AdJnv%ThqFMO5m_UoG8*9I5cNMmt zyO5FhbmRQv!Q3mt6dti|*cn^Rx@z{;OrB3$F6Y~RU9&nsDcxQ>`b+Dyi8E}MecoHo zF-30eHm%1CIhUxEOtoERnON^{Alq8gy}JJP>(#o)s*}DXRm5NaB)H+xi|^`J)hlba za^85`BF1CQ6R;t$w)fGl3VVY?*Z2L`^m(x7+Mbsaf+uQ&5#G zhcY*=KL6#(rf!CC!I_Vy&zv$_ymi^5Chs?967p{s-(a2mY4SbsSvyNhU8hzV=H_f} z3kdmk%F5i)hhzS-l?Si9Nw7N3zWDt&t&N*EZ%~sv@#o#?bF=fNtMgup)zA9s)RFU~ zX6xEZxf}1RC9=3WK3+8CfS5$%>hfRzna)jIn4W4YSol?E>ec(FHeShFcWwT!-x+B~ zL~o_C=Lk&j+upMC`msCV%BvbepM2_536?p!!YgKPyWQMH zWpi^rtrl81pK}dE?Qh>NQCi{=%llV^ojZEuL_pH6k2zZd6ufv`-r7inJ$^D>*yxPW zqhk}JZ3j;nmw3&TLl=wTEEtNUX#IVL!s^)og1!jtdZBLId|cD0>}2mqegB? zF${f{FK-)t6`Q&H-0Ov+_5KBh6~V2MR}vLNk1gB2f6eI>&zsMLUb8<8d-gZ!o#&fq zrM>Cf&a8{s6l1Xb`&Pe?I+BsTZ)aUK?79>G#BU+z(_@X{A2#%dBzl$~d$f{=NjG42 z$f@iuy5GY8@)5`2u+s1 z^tah5y3oO0YR;^Kmse`>gv4-8d61^P_E^%jW&P*2226^%7JjQ%KI2)<{j6ic9LVR*I~7@cUZ()YwCl zkKR`MRuy_qTxO-s2HV10_ey&pK6ijyQ+%U75-$ z?#Fvea~5x4>VDBFwx%~xeadyS9mnomNSbo2_s_SbMZGsxO352=N%KoQPi^5#Sl97g z*vIzFqA-RNWo=ukbWzMpp3atkTVl{LWuE26UbSAH5~duk+zqR}uTJlN zxcu_26?=9!OJqbJw@9(SGw1JZOLi2?rA@3fTbIF@^8t{nIP!-M9b^5y6_!y>pgM&cS_ct{Sk+S6F2HOA7vUal$2Ju0g3 zZQiFxqGBg!PgE3}fB9UfZ^je3-w!j7?X=Cm#dGDjobj0%mp(V-2K^RT;T^dpJE`*i zx8(~SEPL8g(558f6q$VIrqh27scB|GlRvJ0RsTooyYIDB13j6bEp{urOII&>;Tq3u z<;(oGp!{TK|E?GjMGr~N3ICENS$xo!Onra({44Gtw_Oh-LgJQgeY)WpbK9Hsp0x}A zTsWrdv38AZv1oOwl>^tawNXFq__Vw==QXa7nRK~$#ywv-t<9&>=O&&N;oYFOG=1L| z9T%ZB2Y%|^`W;=iU5nwe(~4Tz_Nu7pJDXXE@Z`I}ePTeha`aPbj+%bdG> z>x=#=vr{bXr23RZQ&LP-4jf}-s#4j-)SE5OxF%p4_vdG9%ic`2wAddP>ucTc_S)Hv za@S;@eBQe4meFg6%a5BD%6_~UYH9fN-nz&oKl04KT-?Pd(b>Yzvp!10W1eG5WVzwz zI;#^$85aaa-fGxrShUo?y3{?5e{X)sn&iYKm)Z#``rKNMY(z&r6;#) z#U11Qsp_ORWu~7~x6qF7M(DnDc~->wI&JC`bQIv9BTD^SylX)IAOCt=f3b zb)DYpe5zp5n@-L(Oo>L9z5UND|Fv=AO!0QD*UGE>_8I?R@Gi(c9b@6yyJpUkKc02368F_P~mX#+< zUOZN*bzWq{k*dEtw|>%j{dP*3pI}M)x8skO8E|LcZkD*&GtKx^Oy9n+<@awo7WLlw zaGg)c>vY#ofr8s-xKD1@nVIYBKl@vR(T5VBwyuu!c@Eb6?KO-lR((QlYiqty6^H>GFr^P1O z9X--g`K>P6`z&kwtZl+W|#Uzoq30TWgHV(u%o>waa~%F zS>mRaY*Fs>20s7okEMO}^=LdTsiJbERO|CYPPJtQ`CW~>GAt}V=Cz6zRvj0*bhWa5 zl6=cK)^IhW65Wm0f9(ykQ~P=1tta2yH~TZWFQ3_(+^6o(yS(&8O5nCoVG+}nY2Usp zEHx~fS^lQU^z@FpIm{97jTM6#cusa+RKC!qabb-C_wm)I*P8f>a2soOF#YmveSLb~ zh3Imft=GAZf8KprX^!zmla9SL>63Pyh|E56eo8@P21 z!@^h7>}Otecv$n|>b;uyZ4UAO->+~uIjw->y0**_PRlL6hXjrp=<;=owa*XuG4YX( zOyY5U$DAcMTzooM&xuTuW2;Ut^s>tj?J)bHuufEx&EKjgeXU!5yl~G%-FX`?s>q0J z_qM#|Y8YAlj^8hf@nFQ9M|T;VXRmj8?fBvbOFqB%r(K_9dnXysY@KY!-Wxt&>0Og% zTtv&=|B0e=cU??lc-rFg^Yo42*v04Vd)Sssl)l`%I6*z&+oUs_7qF=lfNtpldUh(m~ zX8H3DCC;Bap5?o#&ts8RJ?DP=wFS$|o2xlQFK&-J{AYH`rSHC(SG<0?*QPt4E{)E& zuajBubKL{Y$oiKzS+54L99k>C^Kj|TkS81YzE{S%A6$3wMrhT(h~0C{oWgHR*R->4 zn!cZFO_`*7-tI%?<)IPY3>v1>s*LPXIKGq}-*x?m@U8UsU&6cNE;2s-xL!oeJIPtA z$J=L8rcm>V`iPG$<$3SUSj@b9oA0M+TW-)Do1@{JyZ>5UfA~uJ$PcF&O|x8vh39y)qyT~pp{?i(I|6Fqe++x9&7^EH;JKe@h5 zcDdWG4Mxoto08ACp3vTRCVO%5sob~no>ybn3Hki#TUKZIq<#~(-%H0b`S6HOK^6}W z&AzLV@=n8Vqw}ec{aK09_U(rb|1&82aB#-Aw#`>=eQ>{+eeEW%aBE6WBzuHby_e~n zoTNp6Px_hHh(7g6XXP#Qn9lIDZmaH_i(!q^{<5_z8Mk+OC7)G)y6i*Jdgik~&pge( zBwu_iq((*K#>_V>gueZe{#=rC*xrEo*IbX)g@W7rrB=%w|Neby-ahsr%Xfxz>BKsT?vZ*i~|I;TyXq=8cvjCv*;JhSdLAAza_9wp}4n za*?B&nC@S@_$Qx>%x~DAD7$|5{7QBo{hDk~lOIhitgceJTGM_RJmj5eTR$nmwCBan zL$jt&k260hKJDcW=dalA^G2@q)_VEnw^j_}J_vV*5 zks0t_s^aLGoF}aTjcj5;XP4Pqyf`Z6adz^l7b$L^Y&iFs_WEB*+;G*R!^Uxbh|B4q z3Cpz8bP~h9?OO2n2UjA?6mRq7FeZDJ9*&Tkn<{@lsBZC`dOG%5!#Zi*WVQ2Z?K|#$ zQ`Qn%6U0>YJVr}?&b!xHl27OF-8J?0!*osYiv|9nkDV?pv?`5tbj`dnDeh#Y>P_3Z zXI`&>Q)%591FFY^0>&NX5ZFsK6%@?to&IfcP>5sV#3g$S~o9$okV%Z zgARd3S`r>7%!OrrvUM-k>TxzG8gBV^Q-D9amwlN7!`j=k*H=9&(w01abKU9>q3v=K z-gS2EY&!!w|I2cfIeglk8XS1E`uC}@;Ca>jb5g7~b3_)jsh-M?jndOnS*D8s-4;;x!&YC&FwdHJMabnQSkDfQ*OkVprw4C$P z_q8kk@~sK{!F=Oa>2rmYj4*rF?~L{B*Tqho=uDB$KG#@Qs-{ zdC%O;<+`b-_g_6!I?MCNyV7@8CoZqqeoT4!zIz{ecB?+_=E-gOSGzTXZ=%P=V^3`t zb>v@6Pk+9QW8PZsD{_(nO9iI-&T*Gn=6~{x!T*TldUx$Lc^!AtE#$o&-#wLDm?1Kc zRZEn!|3JWl-)qXA2mR7xYoDW++1$$V$ng)CM~$&`?Lp&P#cDs4!@ce7_t-q?lnJJkvbp5_j|cLWN7z%YcsydB zH~Xk%{KZN4&a4%#TE_i1%g)+8Vw>F3EvlUQFL^ZMomxi>~h*p_LrLLhKbE zABIVDL>q((PgfE-Y4l*zZ08*h?KSvav!kYN+$m@G>*4&MpBEQQe|c)InrL$CwSSB6 zyxCQDxg>qY%Pgs|d5yn|xB|=FKiraDzHupwDT7eb&8I6%bf;K_F4553zQ9-Y>eF7< znQWrgshNd;{AA-kJh|Va?|)m=Mfz&FC};okWT~Y&S3SSHx!rEMlZ9<}xc18C1vidA zEODDYaavpM;xpa~`sLErt!i_GFa293FuSeaVYhj76SJxmgHgQBA=`S*-#ZsR6EC${ zHuL|KeOuQQJua_Gl&H!zU;DlEw(bX$7YrG>QexLNcpVE5L`5%@sBb^9hqb6kz^q=k z;CMnpvWw58Z*TQF?%(&RXjS)idB{H{Cph(q5;u#5%^4T1nXlR(ZHWDOjA`kP+nUpl zTw3+(nncgB?d*Tg?fQ_FELqdGHQD(BfBDX-?G`Fr>^E;_5ab5Og(+4jJy9WT2Z$p(Za8bTYuia_CLieoheqwU;X~Md8d8phxp@? z-vza2Gw^4m-I%jWxAfq?@_z^CG$}9UR9ttHRd*AE+>zACuBBYFbHkszOg?w%|D3Rh zS`iBi$GE=fSGt8}yB(S8_V!HgCxfc2)9$O%qkDVf zWrM8z7F7gJdwK9A-@cpY(w@Xkzibi_F~4EPpZy=!ZRnCY<;RfMD&DUfmbn@S zUw*M#^x3|}RHb3_M3ZImwYzPUMHhU&$13NdJUx3qugu<+_a*oBWiJr;y8q9q<*E02 zM7=y1Esob_N1Odo*cWq2kw1)MdH+1d9j|7yj4Y-{+fY`JgVyw4W< z{`=-0O1HR}SHC~US~lW!mFk4|w|=``F#7Q2I(yrtgPwkdJC<@E6_aeYba;LCZ==nj zj_*59FQ`3K`!V-*d$s1Xq8)8bdzS3j_5Px*%`D9qJZ=-4Q7{8K5W%BYWBfd5I~?r1&7lmF&DpZ0!&=)@^ak)?^ZugvFMX~S!_iYHUX+PG_r ze4f6b;>+0guWJ1Dw!WD9#U!fd``)$hE!-?V%vfArJJDwT^9hXo0`~VK?3>TazqNeK zlvt4QbN|Dp+MJZcu6vK&mQ0r0ulM~5i}#s$ld#14sZ%)4|K9yTX`|rA`aSDnSD(ud zcy87+`-IxAe*bk+J&cFl{HYIw>tXAJg&IwK} zP0f#H>g`~2n8&fb@b&G!s&_$GR?Iwl{8V!A_6eoO^K8E}ZTqz>SN)A>bI?4^lsb{^ zJAc{EX8)XDFRYozS7X<&b2?(VL4EomX_MX7i9xp{t2^r#T~=PW!Tj|4eakyIxBO45 zkL6|d-Fk1@qknJMZasV0&*1TV+xf&*pOwoMx=*kja?`o7XOZC+PXYbtgS;ux4%fc= zA8XRs@y|aj^y=x99t)2m_I$DJ1(BU^LagKW-2SqczlyRA2h}s$=)X&rdZj9#Ok_dDGgnG6lVYp(%5@4^1|Zy*cf~clRDY zW&Rg7d+e7M{;jyZu*OlyP|m%0Q{=bEcVUBez5^vVzc>6D7JjcrMA+G;L+EstI)@LoN=dSsD z`O>AmQ4V(E{Zm#NpUgPBAo#Ilj%Id#O5l?Z-%U(S1+?$S?66s7_{!A9>$a}6INRe> zE>bD?W(QrI!24o@+Q|-y?F-X5nbZy*+{AoT%bzdC?XS|6T`xL2Kc^S@oL(KrwcBF1 zdxVqw?)a(uixk<~%~FGQv9Vu#({v{>p8LgZ6G!*C)-TL*1C&e-zIr9lZ1M3H+rEgM z{9#XxPL=MhWI4;k8)&22P z?ur-jt53|hZ<7=exSadqqJ?%n?FNsUrBh}GUt6GOeNc4%>+5xwcvY$|x4hfTG1X2! z&+GQfv;Fq`Vn-_~3(hV%%Ja!5bv4`dFHe;pU0*bh*D&1dw z|Lqst_L$Y@`eyBQ-d$D69kMoZTFvr@uc_bk%6ek`V1G_<#LiD^7rvV<`uDbC0AJqn zTG!=?Njt2LUb}vIE&tmh8t3NZT~<*@o6}c(WOqmpbFIw(AF2fnfwu8?u9W#^PAQT$y4&viE#Yn3;(hCv zZ!Md)@4d9xyk{0%^?W-;H$|1MHqc*NRkJs`UPS8QD#r?$JMM<(H(Sf^e{r~fiiOUx zI|ULKU$a82iI)fCnMu|h~r|y|NK+^k9KyHB`@}l-msd*TJ4f}`l=J& z-Sf{Gb|~7_znoIZq?jMV5t6PrH06cOLtq)6!YtK~|+HFVcDD)?Ie`5XU|Fzh6$NPy8|F&LZj04eeWH+XMbj zNR4)^`(Cx{p3pLzLr?!nuK4h#R8+#d$~gVXq_RH-n=?9A-A-TfPixxpvVX3>&iT&W znf*;{sz&ZKQz?Vr4DM@ltULGY`?qHLjeo3f?(JAxHc@ke!_(B9AGTL^eod~_d2Spj z;Xe6ho`B4%8UNUiJzV;I>Y3YV(TCZmrAnV^yHL@|ll&~*pU3{xJIme=p&ljgci-=r zeD7%PWkts+9ZsH6A8+$K;h$U}apb(NZCtj`tFvnE!rxZ}L|g4XJvm;b)8O)pH#b@y z&-^{dwf499tn}a>A!8-(M^9SkvXv#Qn)P}emmgoZ?a>IU?@1<~8c)k5zBnAn`<<_A z=F=y}YzITl7ficYrJ?41IBW6Mr_~=ZftM>$y|7Y9AuyCSVg@ERv z;CoB=@T}B)KBFvol5WR*y%a9n4`DGPA@dg4ooJZov*6B|*uxnmlb1|)3V!frf4E>? z<@#+d`vqI9Uw(sp_IiS7fYBlSb^E$$Zm+yCvGNIPfc3q9kqf;y>*g@XT;KCE?b-YH%N9<2 zKhv!!{`t#2jnnUcmpFLj?Z0xV*Qbw4UU7H2eC%o+&vKr3?Iwm>OU$hTvRZCEQd^t8B`;ysr%iLZ3?0R>`-nErMPi9u14bINk z`s(|o9ko{YIiV`n$qkPwxN(ag9U-J*0rv;X&YSw`QjQ>?kOjq=wi*6v*V>AhLq z55aQNiJW(0eKI3EPu@>Q^wmF)fu~keRupAYAZc=&QdqWfgwk-oChGXOni0 zmCN;^&+9m|gWJ7DFFw1-CE0Nx^XW~FjiqpHuafp*Lxlj21|9#)O(mPJ%C9~~cHe0Q2@0wL^JWvU^o}K?{ zZp9D&>5_+1EPTFsluym(DzaUlFA>>aW5N6Pw)>plGAG;%@{(g~3VutyS-nri(Aj)a z?8_AIRD(~!zhmT%u$*1FG~IjC`zx>G_IxUt`Il`j&z+=gS6}f52`z4QKQ?K4L)^KP z`4&3se*V8=bMa%TKSZw0li2Y8%4yk?f;O*iwS`@5uQGj{ z{HXuozvi#DQL6~z13ScXzS`SO74AgZgKVA zTC1lIBTJqM2TBL2Mb5WhG|zG;Q()|#rz_^M1!gO%3e8xy`+(#7qEpdd^p30USdcqe zAa>au*`M!sFV_qB7xDR!M_}jUYg?*j+A#=x`Q?21oU2o<>SX>$4XfXu%6XR9^?9y1 zE4N6Z)B?-0pGS8ko?RwbktOr#FJJninG5e#dnkE1Pdxd>-!C%M2o#HclW9usx;nG(T zhkCi=Rv+`)-Jls@?7r(Z-wD~1+wy#KmZf(jo?U4ud-I~@Mqjtxhr5KCxwm?EoN=yL zloNW~$!trSW5CVnI#1RdJ@Pt8bjP3go`iB{`=f6*ip*(wEibRy%}~pqpzLh-$}88$ z@msU`FXzLD-U*9o{fb^8vTcIY;|fmM2m`s~?UvxG(6So(mq=3AwAz3fikeqFzH z&*6%pCSQKGp62d}>%V+a?x_p@_glt3Z+iF7j4xSs91d6N4_}f#qJQ>LigJa}1N&d5 zcLJ5}r38J7(SCK0KO$CMc0zhe(V{!2MY+nm-mBHPUplk3zEJ7tWEtftAyZ`K(n}>@ zPssMtZtK#$ZC@zWvTmVG&+)A(j;lX5U6<~NKl=E<{)TtY&TgOcyk*vP2dk6555N66 z{o7SkvhT{TbmN9??H5mkXA7uUNA@RwiGI!SsL^fTA}RYeiCGQ&GIxCK)*sa~cbg;3 zGS9NR<9mR*#=(>WO5rU#XZ%aK&7XF^b-B>{x6!N}MWr>u@(a1vg{U^$_U3&EHsiBC z5_GA~*7fyzwswt$3AxyJ79rErR-D z9D4I7?cB5I`EP|R-Z*0(Yp-mEEvNQ*?iQ=g@V-)6xs>l&!otP#*p9|cF*j4*li9y8 zDT%{vr`y*D7C$`=W`t^UpPyCV$js?Hches&f3F=k3{mGEv?$P zb9iQy z$+|a-Q!bykQ84{Dc^S*cYk8YaE?=4F;k+ZYF>uM1udcQ4msec5h}IdC*h)RdTmblXDSozr;+5 z+p3Z`y~=BMuSk3EJ9C+%pyTRQpNw+@Hac$fBt7QUzoK~IooUh zkD`*y%8Tq74ED!&3U4<2n?2{WA9`|9m@qYY}UnSJdt$ZueSJR;J#%`H4Hk?#GVCaN%#N5BJusQ?m;z zzw-E{n%S?}T#vq}9a(sGZTW|mPi(u*PSh-If3W|GNcNIIam5uMe6uXJtmfYT->mOI z#|v)OGmB(uz&%BWMCTVw%(%l+9r5DOwJ&*Qc-;OU zHnnc!a)z?9Lrwn^5`_fvmxs=e+cV3S`_rikp0%H5x~^T$p(%GUjX$&G-m9;{7Bhz7Yn+-?iDhQ zZaX&dH?Q}`tZkMv8&17mm+z%mrT6xh>+y28s@uzLHgDPH@xJVn@b3c+8c}nYE(vUT zw{FAoi*ZK^o^vUB$w%DHV5+}Oi#q%+96pz$_ z!`Fk)IPm1_1{FICKM>?Q5dOm9b!_d^1m)zkcm0AfpMUbMWbpp$c$it>;MVo++w%FH zKTcI_zVMxsCry1Gr?u^*Ay5IiO zubYi|`hWKyJW^#I_Fch#E${B{o3(W|LQz^2DqdMQe&F$yfhgDOayvaQA zYfGNwid#8TR$O|#^4%GpA1TQ!`&}+q>AQp^`WB_eI(yDdF>jR)Vs6_IdDZ6nlJssR z$BF6b`zL$u5nuASEAqtl7rh6ScCMdp^Sa3|^wgdk$F4mHPFXhZ?b+@2&kWc3aLIMv z&t12P+mM+l{6p$Y-LNU{@50|q?yvlye8IDG)@QTOz_`e#Czjn7N~pc^SLfNS{k6ya zE;GHgnh~xU(3z2@7i_n=+EI0P#I4t24jYWqU-()UoxZhMaP6VR+Lk`OTl%G@x+)#f z{?;J=Q9bSDf0laV{Op%A?stj4a?zhLy*5@y=;#Fz7U$v`IW&i7KJ4_-2G8S&Hea5RCd;P!6;gXNm@)9o{ z?^XyuXkWCX`tcntJLyT8c54b>AH89h$|7{tFZbGmw@Vgz>{dPQEPt8vWu5U7_tzQ` z`U}|Bq(z!1mc{BBTe>dzQB_pZ*1UaAV5R7CXJs?)rl5Ui6Ze{wYXtv_zwty~_xFP) z<=KI?tD25xc1m-Xy<6DgJXM~fY~9?7u-ofYCB^P~f8_BNm^(@PP=220F-a}09j=*+ zIl0&Ma0cHl^|-@2Rrg5I)Qai@S6;8Q+S&c|o`p7dc+Y8Jhef-d$VzPaT&I$~@s7Id zZ;$m!8d5c1I{M%GOHKUt^84XJ<$a|)UFdot0cV>49 z^(yMGTzhiOq}^swsXSK_>N|Q*G_RbTI)ich@$ARV`}FUx%m01b*RL{u)n@kk9VZks zUZkI9oo1i$f9{R#(fONlKVCWZS90nGaVe%|^`|f1+RgQ4UBmryjl1{vn@K9HcOG+i zpK<(Nrp2&(_xW?5PKJs`&APnzQCiBSk4jf~S@i$rO`qeR7P7zFw{NDR%a_$`9~~J* znPRNx)T+(>{3P9@jJ^A|;?lhC*HfRLt8SW>D)!Fo`QGD4&7*H!*d=h?w@zG;cf$K$ zo04XqH`ruzy)W&|oUp@rB=ygb!@lH2dE z?Fdfu*vQLcdHv&(*9&KU2@Xv^EP88YdDzspf|9m}LEjfF)ic{4c<%a^+gHEIFsNGo z;+|q?#*-i0r+)ungU*?-5bY!DO7@y1Fg!l+XUpT*{J+zd+8?c5x!| zDGKS4AwM?0%W!tu?euuK2luW7yZyVm zPlUZySU7d7-BPYFos@TXjwkV#TsQyn_QSR)wqv=!Z>;l-dSL9~{73&A=blD|V^uGA z-d?_m>EYXpy#eao)2}V%{Pk>qWWGbep}VVfjj#I1yz?$qovWzgT3-0FG1#Z2aO=*! z*YZUJ(^8-8YB}e;pe=Ss+`AnI?ufdim?W*pZSdaXw)e-(cWE;Xe63Q~YniN{&bGmE z&3#VQt7|^Ts^s<3; z&IgV^Otg1QUV4c0)r&ayJ!gAfJ$bIm%zbM5o2}swl$ZOR_nYb~`#GNOZ)AV`CH~&EYftoU$Guw2v;0NIv1y-{{8m`lWvpPq z_C|T{8Iu)trjj1p++t3jUa)X#n|bSxUU!3SNwMr*oYnjLg*Rj;m^U%S8+0;rs83|xzgZ^T z*k_AX>?(VOo$)hcrgBcdu+!p?@>btJ!97V$H(xr%70Pk4ds`;N{h!so&_IW=%IoQ> z^lwVDN~G5Fg)O%COIXmXn2>06@Yw6hm6NuZZH`f>b~>uNR{xIUlhb!g&0lYNAOBkH z{@1X7<(EPQH)ota?K3g`Rjjw6gm5UYn&0Y%yjgK?re$ux$u7L!elr|N&*n`Hkdv+Skv1+f>V7jBkZtqjujuFqd2V8^~a z;Zup$@sggEx6;%?9`4LPvHg2G7gz0zthwKnzRVJn{ZQzKJU*H{o2^m$Me>U1f{(wSDWqC8Eb!#> zPu**fV7B<4WO7c_qib5P{w>`l^+Wl<)ST-PpvYfE9O zw5k!3ku-I6+WG&()s*D=j&Fh$Wl>5l$L)&tC4Mup6b3S{<_ zotr!({qT{gT-Qo!Y`VPs8|UtcITu&d`}U}J1mm3t?urE9tfB zq)DtdCZBcD*M5BJS=1(Ozd)9iyjwP`zQg)bAUQVf-NAMc3%d3rZx8?U zpOU{la?QN9|J!jau%k>^aZ2Hba(1?N7qhl9aXH&R+uJ<jyn`hPxAsdP5=`&>2zN}7ijyQ3XDOYjtQ1}i7AMK_Q*V#9zvt=c(qA_xIG+BJ^G@IJhkaYPopy8q!;Pg`VHcVt6f3LWKJ82J z`oP(BOKX9Ka^@XjE32gfkLG4HZfgF!V0V$k($Hgn*{5y0xhs>KiB&Xh%FQD>Z#HxC zoXg$wtL_W)Lp`IUwg~g11vU3y7D~La^!j~a@qV>eg)^FyU#CR|94T`vzQZZ`@73GS zd&C|{{x_Q=`{A~la^Tmgwk%>|T}t|Tvpl<5U)>hyoiwTJh_8+r;~(3K>1V7nsP{r~S>Y0~#aUaxgJ`cSxDe#QMJvqd#t)=s)2 zIro}=XZ%^Vb@?I7MH{Zzu9(4iXFt;ychmTX=HX{WRes-l{fj66ra)lnnue7tm3}z< z6XW12$Xdb=hwoQ zOliA}q#}x{mKE<}{^D1)YWs!I|FJu&tr;1jJ^p(ZN3J|jY%6{=ck$2jbIL9(?%tsr z+4R(XeQkaDIc0^zVy~tpUT$NE+oZ*OKm7i`&#vp=7wSbU-W~BiX)jl<+{`0^Gq^eX ztFuAN(zH5S;7*rd-dYY~J`Zu%ryZBlbONG|VmjY9|bT5Ov)rrcfA5Vo_pAyUy2TIgtyT+(RgO86`P8Y_m2>)%SBHx(UwiOnrT>+c zzrIhp?fkH#&^(;AakkanPG+r1o2Cey=g;FfsV7y+@o%SoeAyl6494dfKe_HZuNO~s z{-P|piQySXm9?9P=bry!8Zwu?Zv8ZfYzj79zT&U`r>cK;Lc5(7w@zIbzy3JO&BTz7 z6VLaHaV?OyOH@!*lw!~8k`QJ5;FFBtrRz5{KM_T#(lfOaUTbf)Na;Pi za+-yx>Gx|+`;r)?Ca=;`Kh)`2+Pq%syYYrK4iVx4|IF+cy?yg^amH2+ugh;$xD-qt$5?(iG||URd&4e%1@qgy ze1uHnM7(X(c^nCGyFDy^&6O7^{7R220|D?E1 z=XRQqVfmbSN0_9lW<&<}S{z?}YgJspN{{-R%r2J} zDTa)vS~pD#+r*&R=X#af>CwUd*+nx>sHEoZn3-zFrax0D`e9D%^FB_s&rx=pwHX4h zIRE=Gwdvt`C9R5x*L-tNc3cpUK6SAtYKg4p5tB_b3Z99!U7z-3?^CvknrS;%J~dpq zSNyEY(zyr2l8!j=8_vI^{cBNL)Q;}yIsC@&4VP(57M;e^_eRhoS@isw{RfIKmiVs? zik+)5`Dx_SlkHPBTdaGk_dG@P*0w$D1%*nX&W+D@mNBllc30|8-09V)%$&M=P9M@r z(pLDF{m9<5%_VxP)5mTjb8pw=t$Q!Ev-rKyUbOkikK)78w^sTs{J#8koy1bF?LY47 zC@~0q>Tq5s(y_)Q=i{9-L50?mqQ%}VO{I};f>|jR@9IU?H2f~#_uj4dz=>Gq9}HVp z?q+tqFCX*&)&(^AAT44O~^4I)L>=suZze-!qXmiQ&_zbP`t_7mrQ+_Z$ zx={1XLH@p|qijlm_M9hz*Y>K;X4sXq`b^cE*C(el-+aYn{fe)fwR7_p9-XoZ@jo1| z?tM@#l6^X(ENkiemRH|YT~7qeWiYd`oOz>s8mHjj-O1e@|N5CtpBT0s=6N}BYGdEz zQfEe`zp?K>_ng;UX2n*?oz2(#-P22zRj)iO-eIEu;?%a8`|>YTN58k3@bI{0WYnUY z7AdQQ?SAL5ELWbh+)aFymGq)wDV2++irKr$4fnly))nvOzQt9~;PZvjx@&j8Y`?yv z#&A2M(~kdtioZ#{T)1pnU=;Vix9`8LTN=&E`tFO~r^ts57xF@18Sj3n5YTk+bo)8& zRx3remUmYY_eV49@NZ+klKN=Y%fOY@=U*lpYz&ysbT=gN_u-~r^V9aQ9hCI1x-v)k z&T6SF<|UcWnc~;1EK$0DC@;JDO4kejcSl*9l>V*Ka?M?^qiFJl{u1{+EhbeeUsH5L z?ROh?-~Czew~z18;(+&c2X?I9e)Z6~#&4@?W}Ucm`*yeL=WU!0ou?Pfo^@*f)JgJN ze}23Xw=b|<{xXl3#Q%x=Ewfm9Zuo`-bTnppc22%AyYI)&ZD*%0QriD?&kmuVbN}3B zn5)}=Kj4AP>xE}-`<<#{W$`}r^1ay9`4JjEuWl;`t-c*#CtlM3R#DB7cGOFPltHctxfcZyT4GGsWfZz!S3>&=?_D`A26;qygkqOt21}T zRaVd3m0I%?Z~h7lInI0SKzc;{xf#88Qo@b<*T<-(T;FY1wCb*FDaQ|o*Qd|?zQD3w z;@4@GA5X%U{bZ0eJD;2-cV$kk*p#BrC;k`~WGTGb`Sx#E^FGPLHC6tmJ=~cB>#P?{ z>zq^JU&WN2t5=j@HS4s@9F^w>bgo?Tlz3@av0?UY_s>Q-lUa5?Y*O&!;?NP#uvLk> z@79{d@o2Kl)T8QR+y40d-<|r~^Pu65of<0tWvhyxM~WS8{Mh~Wz~o!M{T?z)o;SPM ztn3ux|EnNx_gtAd3g=$Ner{ZaRJT zS}FXgU#+W4FkM5{H>&+(Rg^@gWB2vrzc}8>h-67e=KrdyX=iv|_kPaWN~8a$f>e`F zoPVZj!D)Qh^629^8oyPiCnlWuC=)kpP2!AmYV1o=^!Usd{FwiJ(|7AfKPE^1D0y)t zJ*PL+ihdgZ_Krq8}RPj-&Y)~{_xq-MqT7sr3RRw|c!lD(^8TjoJ6wR1K9 zO6R5jTsif2X6U`brHfpCnsBz>h>CyaA| z9{rSWui5xAjlY)%rZZ20rH`(fr; zlWy5eHhdhEd$3?q>2a2K*314&Z>;n$@LF|TJ7Ae>hOFNEceN34=+Ol$;y9EAoS(jTL&YD_cUnsIeHb~|N&!Li*2xW;S){G~8Pj+wc zb~_!`9DewrXdlI-zRBHY%JjWJ`_1zHW{vm466wc{V?~tR4~vQY*~?RUuKQHcwO@{6UFMUQ z$Vg}8Zg9xHH|MSHbK5Bke~Rsk7G8Otv-MH)L6y5(UuKK9{QJMNY}LAk!t^cXPkR0; zzh4)!+{@>VXo_6))^efA>os05yjZm`L!^X3boOrJSj~0)?#5hGUmu&XTunHlZx2h~ zx4!MiANT(MT&Ht5Q|i~z=#aP42yyTyhcyl`%w=NYjXVXuBYx!vZo@2dV}&Yy0U zUiVz>r`ag!GWaz|FUWZES$wX|MZNSr0vmwu^ey{zM?-FRT)fmNPwmb(ChO~t zE?_HNBIosBRad9#nR2J>8|Sxus*AOYl?lP z%G5GC{&w!S(&u#u@Veh!z4-nVH;Y%1^#>0rx@x{XbHrHY@v|MS$2k%s0)JdG-E|^w z_ix>-UB}%tzkRhn`&eTC8}sgne~Gs_ocE-2ub4F97u&2buUj4aA_O0O<9@hE{@i2l zI=0^6UzwG6y!OsL64Yl9!Pcvx^G<&KfgtI?=A+Y}s_>t&HZn9-$rrlq+{vT;f=P6K z!`gS=fg5ViTM9a_+OB<?X^0ubKbuz>(WGlxKLp zeE0RpW4EX4-c}aQe$8(6M#R-O=f{G>r+Au6`rk$M9b0(+@cxE{952$6Virx4HIR#S zvEG<|clqI~=I5S0`+wz2{&&{tUO65DSxY=+veV5!tSe5xc4*d>lfmwqMiTFz*50W) zwYv1v&jh|@S3MF%*EB_nYp8NCw%Si}`Np8&zwkcSGUN6)OBOW69(}Hy_4b_UwVant zPbD5D8f3ON3Fq>^m#^m8Qu@fO?sAOMK2h)OM{jrehfh-NZ?ZbI|I<^&CGPkBPTKrD zwe#1520y`l$qOIvcNW>`8x-N^lOoC(xht_L``jrFsoh(@G`Kxd|Iuo`?B5Q-7I~9e zc~{}e+gE<_b6JQ;O!L{fIGg$Px$8N5GPgWwKP8jM7koUnzGODD$%CWMRGsW%^dze0amEr`5@uyE87GS+H~2w!VEG8qYdk9B4fx)L-!N zo8qO@GfI?r0!1J8Kf3-pwR`{D6U*x6E;~Qry(;_jBDF0aB__ykXOVxZb0xlAMegXQ zzn2?yL@m}Hy>-~nD^g`y(zPcZ$>N-nJS*35^-jHI(v|2I6rJ#o&4g|R|dYg`wI^zIdneI{n}eDJX@TKmpiJITXtIA?d9QBdeS|KN@$`|sV_YK3g2@%*eOr+V}E zD$J99zVpgV*@Mn&c82nq|F*y4#v1-Cu9W%PAK9|L?0G#ir5+zm7ueZu~?vI(c`o&~6t5>!P4*4x_ZuV%hO%+LX3oB9WpQ|^Cx!B`UuF~tp zd;T^`dKB@LyY4+=R5fGHc1FIPpM*CW%&t%))4+O z`+7=P&;-{hD}?`_d7;YN%6LEYj$M&W9lw~kK>VRT;VOlH%c5>LnLDMIz6rWG=l){f z#_IS>=cVWMSw(y~@{FHPq;8Qz{FPbOiJ5kOM=cJoesO=w-V>o*+s$KJk1E%fOP-ch zop;p6^I7GIe~voFKMIVMSM)o+Wd0PlY~`#B&F$yj`tZ3bWhIwct@Pp7NwZF{D${V} zvOZA%g(YM8lJqNEdR8d4lmsh$_wQ&`Qr75y zdZ+2_=e;ufa|$-TTwGH7=fxrQwZEAr3u}H++VOl^_F4CT`(C?#56XD1(Y>ele&U92 z+BQG0Bpvpa_{n$ekG;30wY`u)e#Y(jADbr^_cqR4`%(GA?ZXT;XID;%6mgW}>-Q7C zc-`3G=HYss#(zN_F2A#G`mk^;^;Pmcx0u5qZml@$6XuJ1BVr#0rB1bux#h@q#((bP zEMt!o-EEoAoc(32xBK!`v6m@*ur4tFaNqcl*t^c$)jmG;)#XJ87M+b0J~eM48~?Pr zptU=H&rZ*kYpjS_f2By-On;U8RFSPemFli)eoOLiG+p~qc5T_l2lGCe)|4mkU+8mN zt7vhXVd9QY9Ltx+luTRtNb9*sy^efehe;3XtUmrb?n3!xd#&zHijv`5Zt+%d-VZ0` z#+bJiA5D3FZU~*q^6O`f^poRiJgUkwmq#9Tn_gSdVQtVq_uXv!)@_r1-DegN;55{^ z`}X*@d;Hqgb!(NZDzBfpDpB7X`)|k8eG%I3VoovZ?PtGC@G|RtR}_8cj_dS@m@D(Q zS-Ku}a4a}r6n3Dg+CtIplhKhzJNtJR^YrB7R>;lyTa-OVvCv>1U%+1-g|o8D3(J@v zM&3R*W8rDV_V_Ng>|)N2_lu`ZE>bxsd~wR*WpnPDE$kQk{CR<>DG_wv5^C(o-WSUaCxU^y*Q&Y68tr^acQlH%jDpNUDg zz6;3?X8gp|@F}w-?T6Uu6KTB;O}fSJrJkHsiLib3IPLz%3is>}ku5z!fm)H5KXN_) zwf*w}`9r2gWgjaH(?4j>^83ee|MPh@7c-u_e>!>R*1UbPJUHvwB^~q0mYFis^Vb@x z%vh5CyEAb6%V}|QRi^T$Rq3DCTUo&BEI+Ly*G9@=;pzPN(4z+y)|iQC=s%9yu^^!+ z^ux7@@7`$6Zp6UE}acrW?kDE{B)lQr?e0ZQsyL0>E_o;k3_Fs=4)JV8@c+TxPYuV1` zM+gd^i(aGkl2bI2$1OE<`}9S#ALku?!zRK1>e&4cv$`)oJhQT5$NMLb?ffp!u?zLS zQ+{rR_H|XZts(plF9NM!l&ySef6biJ^Yy8xH*!l>rmoPOnb}{%VV&?*TP&pW9LJ7{ zs_G673F3m8%Ou>Dts;~Iz8{Z0^K23emtWWN>&`os{F1ic@cvTB+sglKP3mLsOTP9u z(sYz7u5aMK_$RG_D^jmu**@u@#++lqh8|**`eK6~@4VK%x+_j#TPbtZ&&xZ4Gp>p3 z4hv z%~gI6)#O6tbaNKVMK8$dPjW5v4O#Vm^NR<{M;17CPkU*sfBDisH-m5c@3T4G^1J^x z{?mQ0XL0_^3bzL7M4CLA8*;>8i}|@n$w5h9wg|j^v*=m7yR(>q4zJ+TOB{DsCR9k; z{8Csy`STV9qjhb|&drV96(hU<#QwDbuU$p5nPp$CPcUL{yZHao+;vCK9jp#cxs;-H z_+nzB`H6K_9P*LtvMLq})TG<(@cfwZ#;bc=FQkPn`3f;+=qnDH~;GcbT)jsnsn;LCeaKP{-0KPDLb`xzDeI= zryhSJ);X>GS(RS+ImQ6b=^tD+6}>iWQx-X{JuCdri;2_Z-u|g)3S|h{k--|soOb^I z8i#oOJ6l)0niKfc?(X>&@(cIO`SEtkGO2#!7uVAtY~a##c5{&Ktw~Q?^DfSNUu}P< zRq)%FDi@=FDyuEY(n)HO{VVlCz-uns6Yh+Lm&esNeY@6u_j~v~A&o-?&Ni?4Z05_J zt=oBEYt^kK(MMQzwI)3_=LvoJuiNIN-v{5bBA}0EZbDLqIB+t4#^#xKJCI%m0ux;&*!)LE8x|XSN zbNS=)Wf9h=E1w(@xTJTfBjQS6xVh0Y-=0T&EM5~tm;Nd5E*74q;?-LJzWnNvH0G7> z6DrOdzWJbYWn#I>`423q`5U`WMA*rmdo*$NoUdn=sBg2fOAU~`v%c_`>5DpB#|3!_ zSq<-sLmDRE+;5!X-a8{SZ&su31j*9l|L$$C<$t`}{FkQsz3HBpujwc^suXX#F28yw zLr!#S>h8p)X~z40I|-&wpQd`O=99z8=X=9>mKfH_G2|b;ljv`o{AcFo^Oqj)oe?ZF zaq*Q2jAFL;%QhdqCBfTaXW^-OP2bSdC-nPY&-;1Khf^*Yn*3d;y~%ukuE5)@y&iNr-)a@j_Bf`+*)i!@p_#&kpYh4%)syKd$#} zL2V?5`h#q>+mcIJOXQ|-w0NnkpYuWD`qWk2bBg++9xea1`3H0Eu2;=hvv!Yq6V|i4`^*9xUIaUs71)0IsqOMmz+}rZrr2zs^wgrg)u&XR&+7kroLx5N$))Dj zODq{`8+%?zx4doCmG%g^)D%`JvwrHjTNbP5^>jsOZY;gB(^zQMMves!>$iD%pP8Nz zHA&ekdglAUt8zveMLXGkNNG8=^`AB9ysmfg`K2!z61m;;HNGt8JEg1Ikr!D0|F!Lu zu5&g$tg$7=h3}r$toU}3(T#QgB?*4spH~kxbejL!VZo5Awqw(|IWk{%OmvGY3s%VO zNL}J9b>MN&R?!;m9tqvIXD>`~`W3&N?*aSPnySB@`wz@0>zt)1{dy~ho>^)61liah zH*$r$wS9k_o#^2%KFhMiXPPb#Bljek6NmPGIurGg`{Y9V>h+z42@5W=yqZ?m^jp#B z8_N-|yIWhfd#5Jd-nl+B{O7hwd-gX!o9?@8>M_%WtUXQ9%4eo8%bb$2dDhMuQ=e_U zvF7^)j@^Dt-Uq%fSa9@GjDYq>t{ac-d+SU5C&}DpJ-TJNso%|Lp2waKtSY3re*XNO zH1Bh@gy_4n=~u0e{Aq66a(!0i`b!HJOD(Ob;NQc-boztZoWuU7l}@@Oe(H$6^zBFc zwnx_zT)S>Zx=!s|~p)Q>>d_H@>X(TlT@r|CjE8$&DviOk#Z&KNGrPnDJZrUy8`&+wL2rwd?kViTd=M zxYQ(kbH{I2sf?D~3+dt0%})G#lpEa59-4GIP<(w*tBiGcd{3h7%v#>VcO`{8Zbz0W zi+#PHe49toh%Hy{N^tbgNgq-xf-eRf%v|#(JK*b|RtE08pD(3m_S{Kwm+W$}I#J-J}{Up>~dspF8;`pSYD) z{yp#h625s3*;{2zkGztqF{>4cSUc1G1JmoW>7`${s~)*=fPW7Yt5=!n)X0yK)rl3d z3s$=B(cZL#C#L3M2k)BqShXkB-Q1AIBBtPAK$&!;TVQSrSXMB(6shcs)S7WZ;li>35WADU>3tDRvXH5L^ zY|)h2y%H^#Gof&f$xmKWlp@-xqo5 z)`g?6tnOg|pD zr{uuO6FXw^Q*YfnarXZFDG&Q{=I=_K72UW0V_N#$2U@>xY1OiEedp;{&VAu-Yc2Fp zdsArjdz14Q4xW{h*jyprw2)0qYx|s|Tix&J9s8rr{rAHJ=4yGj#F;&x_kD4nvGbL& z^rjx6{k;E-IQ*2OnWY6<8)$6lzAlV-Kqy8ra;aOU%kzk;P!v|crR`sj?+ z^wqW!`KDWo*>q<)H|K6&d;aBdi;322pI=q_E2ElQYyNG9v@v^qWzPNujLBEeFRk17 zX8&`?ge4na`^isXQJI+WZr+#6Tj&3Y+^f;I{{MZxz^ONHU5jw)Jk=k6hv}O`qL+ob zXi5GIHop(MyS1bIx6I}jU7Ec1$)fbG`CDUeDSddVF>M)H@a!St!3;X_Ch6|Lvb=J~=%%I{kcX_?=e^ zs+}(-NBH*CEeoCHJiQ?0U%(dDWfGPvypO9msLxw?VG+w?vDeQ(ar`XvuUh+%VNKZT z54TiKh^)LZtyyUyx8lm4DCU;kUZLeh&n_wzrMpShoA~GMo_C<*bN04Afw}pK7bIf4 zIai2o_;E^|&$+uL`(LzxozI3<8}qbRZCL4%aqByCRrm4_8QFh}s*bQCw3?%JrmcITmRwQZR#nej{TaJ+2UfiH~wRudt-lkS5A8KnkCNrZg1i{ z)vGK!^LcTh+RD$f-aOR_s9N>y+oK73h6$g=PE1>@_P|&xEcg(g$i=_6Ca(Q4 z?#15zRaT#udZ!*JQZ)6El`CX!y)2QLxZX=mY0bsL9T$@v9?c5pGAli@X>K&Drpd;x z=XO^Vp4^%4xbJ|oa;>>wh6n3?-doHvHupBbClyIixouu^}VxgcXm+0xtq!h6HAux%RZN8a=7tBTe~A6WZ^}T)3z1o z9w~fG`|20G-%s8^LXO2yrtG%0we&5ax>{ume!XbN4WV^rNuArb{EVOAeRE-kxX-P} zd9}hKvPP|&*rzl5Hy2elo#88tj*a_MwYKPawC0lucbr$+gkKL>^1ilo_3X1B*nc!% zV7wgZs?$0_bNLT%)v0D%RAO&_+uobvqgraWe7<_Ti{=*V^~--bxo(7@&vG2R+|8omV*UsL(-{cz>Y6{HSYh?aL(JJ)Hy6x=P=S z9dUDg&eBEsGym$Id1U7H@3&#!wh5}%7o&r-xSFP2_eogNao}JlpKhG-!H0{E?pe04 zFxbTQe~0Zh=j2l1n-y$ocBkF$n>~wKcGSyD za!Y=g|66Od?T&c9XO^s!{r1px#g}|e^G>)}?zPrpUG_BFqZ-0ZNe_gQ9BbFlT@W&V zk{qAafr>4gBPwQnxiR@#3rE*uwiynlLMj_`jvkLucxiE0?5*-H%fdf}2PTSbU-45AoCw=S+WnjV6Vw3?(4X?`IpL>P0o{;G=6JKC$0;u*{Ugb@a3o58y-yJG!?uzg^W;ZUk z5Pc9(6%yazhxx`hAW@NN2A;_9N=6()Kh9xgy1dBJGQHwJx+hIr-ah z{*M%utIJDy$Ibcv5reUw2||s)gcI<}V%*dd~{A z+1+fH+*>p;;f>(T@Q-{p7x);9XZ&RgczHh8_fT`fRCcwllNCFZ=RKIAvthf0UoC$j zllOzU2hJPCtkf}2D6XiV)6ROrng*QubYk#tTw`1Jj zoJB1jO;#=2BK;Ou-(PH^U$)1Y^(43cHsMT%NshfQb9b)U`Au_9d^m@3wYrjZ_|spR z6-yRmT)MZzPPFbtHN)S?<6UmCNrkaOPqtTGEHm2i_QrMon!9tnPWD)RPJe8sGB2C! z$_3}r!yV^Ct9W0g&PZSS&i8Z3hq!$!)r9ZV+BP?d+b;-|;61D|?LXrbv8;BTCdr?y z)2p3K@9&8Zv99FJxb<1(>FcWBrP+J_$lnXJp1%3Zv-Z-{x)y$)J1(&o`W}10R$v=v zvAI^3&$#W@q(tp@<0VhH#Urn=7i~8$zaG-y+{U*1z^8)NUCH|Yc~?5cFoi4K+o(R{ zOLRs2)3aYqd%f(w%j>9I5iDd5xjgIrq{>Ttv-WARs61=id~i;}-(#~L&kXo2%fCKp zKHIMw2RPKPRUEK5(0s{TVgJ99`!)ujzDlST#$70wJFo85o3pJ>{x9Afl5kkZBrUq_ za?#%t>K&%0lR_+0xw=G_|M;5dxA=9T_U%hOdwZw%_%?D0FY^4S5g6%yrthB$qh#(Z zABn}+xNd4DGRPOC{nmV$kn+H1+mo~Eyj1oX zY`$>7DoU~B7K`wdyK5M}3+#CR@`-R;-zCpQVpk2M z%ntZV%FWKXcite!X6wsW`c8J4BCa*R&T6^bUF18T{cyt;gAz~k;H96Qa4b5#)oF__ z|F5iths(q#pV|8>jk|rttYNLwSwityTYlrEwX2Np<*78|P zNS@(T_1Y@OX*Ors5#9ff{S;Qb^VzGk-T3d%I|UC}*6unp!HHw*=2$?menEjL-^ZWOa0JL2*4GuPvZeIJGLFDRNd`F0i66n!`+JG-eN zX}|UJRSWwR6Lc9_t+wyox1l%e%iSj5*B;$_OW%HBzrti1(;D4KA@Zzgs#_hb1KR9k*Fy%vNX2m9lIpzC|BHgnju7=k>6uaqS zzk12__1lb8ZR@ny!wiGOE(u=#Yi$@ims3!?^pg4g^uqHoE17S7bG&ft@3qHOh6mTX z+&lGS=4bQcMt(YBwL0&1^iK%d-`SwK$n(jrTPkgHzi6%9#P3<&pTOJpet&uWh7EoTozDD!&2;(g+Kt9K zHy@s5@{OroZ9Z?+@{`@W4PM`U7JR>{ODOR6q2d{g+6!a8FG^r$66^An{I}7OIez`A z(kDl@RD~Sb`R?fpUJiw%wwKP|So-dqp2>al%A99M0;F?}rME~jG{34lEHgv3YM#@P z4OcWL)!JNh2Kz{+#%y({YiZ0gf3m=K@AWwr zo=owUz8?jiF1~mFoPe6p(QToo^y&c&=`@@|h90 zxF=Vuetq({b{E6-2XpQpe>VNMK%(Dx7EC^?)w_{VyUIS`&=K%IVpUQ(mcE-S2Y#lGPoRrU!Dq=9%i9X)(X_W1|DV31i7y zsfpIcw{B-DuAjN=z#NO?2mHH!C(X@vPh1*wYlCX=qoi3`rLx8=H@tcp@;m3|-ott< z_ZOwV|GTn$^~^|Xot~7Z>v{LxSkIN2eQ;NHW{=>;&zBmT_Z@k%YW}gMeH^FqZdb{F zt<(Bnq1!uS_3r_{dtLjL?ey-FrG_J5T# zUK4uqyM}s*pJU+ePg%YF>37zwQ+u+YThiyXQhQHwL}19f)6H*Je(Jc_T3pWHy|i-e zUzx7Ip{1XXzL@UDuYY%@a$d;PjCiB9vo5W@HiOISH|w9ie=J&A)z%x;o;crp{PnG8 zw781ttEso$mgLVm;nZ5c*}yAXN2fmHps`SufY2@FDJ!Ptz?4=&rMRPm)%=%g|#pWzoRY3-~IjG`zP74vjv}y`LXx&{uwfVUosgqiHLr)Uc^)1Y-yFLGW+<{j88{a zMYBtt3#n>CRJEOst%=?zjDiD={tgvP?Ot zqW4@yBRc}QfAq~OUbMQ|=E*d}FFTfW?w{I!^LOgx)$dem{nce}TNtN_FtD~5mdwp| z(Xn0rJA1*`*GJ3ee)ak1`u4&y3=&_;;{Yf#!3RseI`#ph=&GRCiWoNj!`ibpXx^2(VhF7nZ?zW1>cQxy7@9?y>ja*$5wPp1c`8Ait z{4<4T-#0$H;DEm%kN+&4rNv$n(-(Pa2FqtW-@5qKQ+5Joi2S^;K-|!b$IfgVAHtfLM6*L&NmFEN_2!roxGvU zc2RQg^PHXUJlKy<4K)7x|IFl@YciT2HVGRi=08rj@M2b!KtpTqiEmC@bv-YwRaS4m zRK361L9F+YX|w%iZiU|cOD9}c5(}1$pY*YEulq|;OP!i@?)-o+9qXCb?fc3gzAR<^ zp*7e4UR}N>O<0S;=jN~O<*8pqJ+CGFO8a>&QI%~wTZCEh=M6d?8%3C=sGivEAbr%y zal!K{al01XRmxkhG)r!=XLl%$WbHA3{cy=Yy;5mEXOrq(p6@nX(~jULraAv$UkvOD|=6 zq<`<`_doUhkoz{)C6n*)bIy%;FFfsD z_ren{?O|1y8U4GZ1=;+5HLHsrJMt)T=8B~{@2U=DxUbWb+Zwx9C1;U`j^Z1KRu}d# zu0ze@@3v;1md^{jer(EB9&6E*gVR{T$}6u-_WpCiZR2*q((syBlL|B(Y6L>3J<)w2 zdE9XK#NZWd9(OjM_}~I)XvQ~gOCS7*?_GKD*c>(9wP9Pz zw3dag=&#RY5qc!kI49xV^k0iUEcKRfoF~x8eYxqJ%;r`11fHu_u2y|%Tf05A^~MDs zzFBt;>mS?wsYxZeHu&3`RRQL)o5Z_}&3ji)?orZRo?0}iFKEq1&Z8yuT&B`0Jo-*Ufs`?6o#ewI`% z;O+bothIdJ<(=wtv-570NnMMSw!FsYtdiw^!6!{3>Y`=0o@4*xcZ@kJx9aJqzvf)> zEd3zI3G*eaPPe9P@Jx4m6S2U|_wTfd|^)~13g;Sr%_++kO+Uw<>!yxMV$}Z~c*@m|dl+WK_*=^-_{^)|}U9mvJ*lQ6g;$4BOXcLYFIkx4FPsMIN z*_khw;nwFZRDIOaf6LK}TbD~7&%MhZyT|m)#>zcY9XNWtL$7aO*Zx*tEb#O2vTnQc z*>|ReUYFQ4X}Nw2&(Rw*PZj=tdwjcBkd8_Gr_Tmvfo?vto@H2^{WE=K+hakI_@jaA z8`ztJCuK_=?s<^?q%1MCZRHD&Z7X(f^j7-1*q-B{;qmvoWliIiBIcer&)E=oWAf8Q z?E4!E`>#K1@L_ALf3!#F`^E6Ar7vQ9PW+m_-r!Ue2VXJ6VZM&QorjWgFD`J4`Mdo- zN3hson{_KTT^E?nc|p4}+0Sz3^%-|9(t2Mr*W6z}BXs$>oeYYu>lO3g3mBZNULf>k zmdVFsZ~1=Au{NLIbmIY|#p9VfFJAZ()>OdZZu8;2#r`{c1x{Me(#t12p>59v?cuP zVrCujq_4~3pu#v_cN7Wd$WWtbiB(vv-e|$)UueJ%$BoGwtbCR(C}WnBFuXK!h11S0`hpP zbEg)vbjK!1HAHgg9!x0 z_nzK6b=lU(I=nUNFAlp`sTjSTxBO@l?~3bltqO$e{(qJFw5R6h^3MHx|Cze4-K+OH z`~B0#lmF(s-L<+FvUASQsuj{(>Y6Q&H2j{+{^If5h3PvA#4b7HE_iIw_2TohIqX}z zc`h!nI1*lWIGVGm`052a&3~>;$Kn#KW(6;vc3kP~z3SO*7X{>Ut9RQ9`jtE~nlIa% z^O#|a;Kh(ODHbWM=&q-dvs>lM-6I;?gg&=@o7>4a?^5DFSY+!L1yP`XAnEugpE7b@BUsr^bL=F2}C@Xcf}fn8~#)#(cfT z3A4T}ABrV*>Q1n4{!@LFTb|cqr;g2WZOxuj$M5E4{aC1(>bhgO;&tT}QHReudOj%% zdpT#H=`PQ}ttMx}%Wdwq+AZI*Y@#;rt=?R^7wE-`9hkS{3O9wvAkd0 zb-4|7=6>;?@}@TP#No~;wZBD)wcEc5@bX3-{wDD*t@Gdnrhiq-+(OL$CaB+H5n43! zk_-2(_uu~XY*kiuWl53^UY6DH{!Y#YL)LxLAMM`$VENL}E?6PZ!xSL;Z)auEj^oFfTGa;^VnnfV5I-5Jg*=t6(1vl6SbN2ib+yn} zwXJL9H}~b*_1b(fE>=om-*;^Szvs_{Zmomf;eLU8{{9vIaWdb2g8p{Jo#i(B`BH8K z7_QZRzOpoF$MK*^hkw4;`*_E0`Oj_JIDW~rh_CWFc*&@_*m3`KHEqUUr{=!&lDTeh z((|HtH(P-3z4-9NZ4$5dO?~ZkMRxAVoH-0qyDYuroKEd?pS=6dB>%2XmfPE;Up|rz zJDwGK^un(%wug%hlrN^PIvoFfUDkG+l11e^M0wnI1xg%fB*c=To7|!f&2G zb6eqY;AQ15j$RS*FX@l!IwY($E2kJ#u?Pei^;B-syY=SW1>cBEEvs^seS+HzeqGpo zaO$O%iost`s2t`FIFvi3ccpMkcyoKv^?;-gD`k~hK1Tntc3V2vwZZG#sTJSPoN8Wj zclk82>bpnU<+#^F=mG3lg<@pd-7x+ z8_H;J*>OSEB~It4tm^+Kk=AvMVN+HtIjd`OgvBf9tIXVW(wSNdG-7p@m$u*kW~CBs zk(YP4&CGd=bK$0^Q(sg*YGHBM_+|6$TX_oqR8A-y&Rx#SD=7Jpd7_8)6*vI z=~?t~dVScGSgvr>iEV*rD!sqW`xEfELPXX2?Xfa5#?;<-sk1Hks()lIpON8Z+m3BYOPRg4^TP7= zix17;_t~Hz;*KcOv#nW&g{SPl;!jZQ>)&zlO)NH@kUrlatvSZnXXBYU1w~H+w-jky zS&`80x7BKA_~frgD_;F$ZM@U--Sb)wn}1sG*XiE--iGV-x6eP4dHBkqRjlEQWCC|d zUw+3lYmUXON$QVg$vxr~ZJ9r-^W6<2j-_*Ws;zcZ73=-CTwJ)kYgX$ygZduV<+Aoo zXUk`|Ukkpa9dw>!XS!zi!|ne|({F749Wvia=-0D7>FnMceb+qDzP(2Df_iPiX{V~{ zQvaT!kGgAfOj`8zGi=^nc;#IOPve&)nMdcZEnojp=ckgUQ_M_7iFCo)Q$N(q(JE$& z_`Nt&{Z$(kK|?w5Uf8#nW#Df!>E zc(wO(K2ko}_2We-jaRk?(wmD@^4hrB@$Lf26&;cT>y%TdotPzFBV8DsH$kKYFQ4 z{|)tp;g7U#C9s^iKgGK1rjt+r_p0*OTXhdUJ|N7&cd6{)k!?L?$y$AhS5_UD+azmc zt6gKa{oV|1M*g}fzNTGfrzb=tX*3wfJFxuYKf&#D^zi+u7VCKflxDGAT>18BSm3t0 zbN7ENoAdfQPqeA(%Uw+Go}4zceHWOkyW`O3r7^ZljK+`NpI^1=qO*|sI;9s9c}-`$ zQ+O&)PdUBo-|C8*N}l4F>JQ6uWfI-~zGvKNqb8kdyJkVc1fLuk`)yL6R$G5&e6P46 z+vRS;vJ~-UK~4we6$xDmPua6_@{|h(@dszzkFkh*pYh1^1b58OR~f2#iyds!{+?D| zJ?YlNYhqg0dRo3@=O6TDnX2E%`8uWL@TZO!Q!O(bh2L{^C9W@Z?>+tZc3wrvo)(^U z-m8v1WvIK*xA&u0v(ApsUv|&hbtC>q%Yq*Me%+mCrsqlTeCy0xlvdT2|LbDW@1;it zcCDG0b$^Xtq`YbTkN-yu)vgQ32?d7l(wTNAyi5MTF;&s2n>VpIcTJx2LgK(OlXI6k zd^6lXmihW}2pieNKWe(4$!j&=ao4t2D=t6r4%z$lz3k#O>HBV%x_9jOaHFpMD(jJ} z1}!Rg-YPtk-zn@h=kRI6oHufscD%X~(@QT#@@>#A$-R0eMYP#fv@yJ2{DtLBF@_Xp zqitpim-g1t7P=SbotP)gmwkWktl3R64<|Z3-*)KF{k)6c`j~zt?|U%epWcr*7Y^O4 zZgKdWxvbEBR*oJYP`ntZC)aJUTi|P8)4*6(nUB0l>nn{oO8jo^_-<9CnH~X(>EfMZ`7__LhKE85m z;>Ocy58buJp6;+^u>SDDPp-<&`bBWM&qk3?&z!b=dZ%EnbLGOOJ!LExRQtt<}o%}6S@%=HOO49|7(t}rtQNHeoEO*1Zv z%1m^x@;6T|PjSsOcgnWp3i1ugGAQ?(s3eq+<4-CxD4a_jgbPr5-i!!b-=5k5$&-Ko!a?5oLG0SidGjq|;@-8$j zH%Q7U^v#R#ayNHR4#-b(baza1_Q*GO(oQu^bM(s%Eb~kX%yOv;wB$-jHqQyFOmYeG zPAfO5&^Jg;t}smWOv;Wj3CYMWElkYzuXIg~47c=iv@}W$&q(*qFHZ5(b}jS_%+1TJ z3X9?jFbNFFb2ba|_esxBb;~pkO%5pWO3n69a`ZR#EOs%?@D9q$igfY~sxrvW3n|Vv zFo?wSuanEorF*YuCcXv%o&2h_j z_e%3Hi!ez}%}UEIkH{$T&h;zyG)s#}jSTV$@G^|bcgqU)H*(R>wB*VwNO4c{GxhaM z53j5=_cIH0Dspp7wJ-_v40LxZG%q&`4f4u1PRmO4)KALFPALp?FD%o~$no;Z^sdY( z$tvdxD@{pC4$UnsF?KI3NcPK&GM^mO(sN%e6KH8(6S3oQ&Y_6`avGAR!W%grr| zED1Nwbu12rrQ_5TBU4jDO9kz+l%PCE1?PZ#!{qdgO6|z2%~&2 zGsmi|@X~x2%OdkKGq*5TuF|kvA1{~4jNmF0=NuDDS5HsV%z$Da<4o_IV$a;N9Dk=` z4-=!@vaAAEE?r$+g&_Upu#ohma6`|+l3+`HlQ7H5bc38+kBIQH(lqaIlhSPe(iHQo z+-zT8E^DQ(ws1$rlVaM%v&Hhe?p%~@UUEj}+?Q7m-fc|bdiW<#tzRrA-fo$;?d#S4 zeH+>Lc0CB*@KQ!gX`4dEFaNI@KPnQANnYz-r8s~0Oh$#}w~e34`-(7gWT^5!Trkx( zR`rC!=7_W1cAej9-qYD1*(bUvd&uVg4LRBtF{Rha z;^w!@>;e~mYv)5YvAjY8f`}Zo0DGDUg7l4 zD`b~m%Xwbr@2$JpoUEb$ig?1b9zB1nnb@J6!?7^KQL2GK|G#Y58JjgWi~rdF^|FhM z)bZ^vpOvuP|N311do6vuojP;=FPh{3Vb7ioRr?s11?qg>AEYa*Ds+^g@W1*WZ;Sk{ z#pisvW|ZXI<0{T5`to$){X_D+D+PFe+-OmpoaZ{9^Om(rN_VB8H6)@j)+~MWP)&HleaTZAL(AM9v^Gm?OV1tHvKjc^4 zdA&1HRmpO7t?%p#Z`qGM#yQ8`;)M*~aO;1$`{H2o8fRyYDQ?Xh{yvXn2yuL#dTar6 zqN9!F+f?K0-la*l=VxoYaoll{E#SeeKcA;9KKbP($4$SO>5Fy#Xs`cqK=t%38}U1m zZs`Rx`|Dnm-E^68j-&Qf!>R`t9h&ufH$TdI5u9?4rAJa@qSOoNe2z{&v&z{UwG}yH zXPKOry~xCDmivXPmN*J>YOzX#Co%&@gnD z$o8+wT9aO-9iLj*dLVS6QmFM|3%xljR`m-qAF^1M&Y;}i@agZRRlgb7_)U9)pUo>W zK7QuF{a+s>Z`>AIxJ%`;lY*qv=EW;*)|X~1saxkYZJuokvrfd!B@aqMCTz=HH0xjD z`93Qv_T3Ga=1+L;(`)xeMWEtIYo*%Gy4;e!%2}T0cC6&->bj%N^R{@ypM5puQoAcN z?`*yuv_x~6)~efcZ<)Py+QSp0*U;s(EO;}&ozlJhh*Obk+)Mi`yqwpq(4JMzn40XHD2}c&EE~{Un&Ch4H9%A$xo*pIw-ts(cG;Yd(Q@1 z#Yep?dG!84V6dLoHS1~TvvzOa@1=AuYwD*qZ)YL1$sE<8w*#j*KAx7o-nP{^rA&2(SB;PF8ntHBJe(sUw9tj3_L_4+bY!ADldHB-`nI9Qz#R96uRaEb@ zF>}s+yzlh9$I~yKeEaCP^X8h1Uj+)LZN0%THHd3q04(A7*-2 z?XyI2)b~UghJfQ|{;m7G_~C1b1bOQh_F9jZe{pZjQvCFD=-~`e}-{o%K2!%zL!U1(@cC^H%?T>Z_Au zVtL|FRLKd3=^L-D`}N=OhRp?k^hy zx(CgL%z1aJY^?4Zhk4uj`+hOy`sf%UP?FKQ=zx4}nV+A=S=Qu;KieABV;&r84%_(l zcfjl3$Wp2vi#CNqiQV-WuA9xoVvsPG5dhl z9A$Nng%y5n>5Y4y%-hD>=$&!<j z^7VGEz}c;z7fj+_KVQN2n63ujF6{}0-@A|R{v_A4@k!YNhF+JpD~ESW9NqrlSLG~! zll2#ltNcrNKS7`+cK5RxQtxF>_XyU>o%+1dA@5xNt5i8IE^p6`A|bsCj%;Xgy_=W% zrb^#tX2hI;Emw9OWXSwdJ&9#Dd&tj@Pjf~8Pye^_T>9dE1;@ZYT2cSBjjL{M?P+CE z$$xy`t>JR()Bw9M_WLW!tedvg{Qf;%<&586;cq|m+bT1!y=0p3HZ1O(ihak4m1^H= zQ+hY;S6{0Yqoz0E!bB#6U`M5@*Xz0&Vt8$oyr=7!-!Hl;moRCE2;V%1l%ogz`CI}H zJ7;Ppmj5oUxOQ&!4#}LnJ7%_@rkwLnbP&+I@~d;>O zxTaloH?M|konVpJGcnfN`gGE{t-8M7H^wWdc5PTR$@FgPl8TAPV{gX4(pP2Q(7Rfo z{6mv;NrlI2tt;7T8y9v-Ux?6j?Ga>KU$<~qWbR?+l3 zPfopNnO8Pv?>5xUHfPBz$?p^pZJ=KGS2(?=F}n`zXjRL$#|g z&?+GK(B1nLiF*#@$1$d=bG=@as`}rYJ5VrC_+zn}9cOxG zSRdRFdf(?%tGSFiM_!*rV#V{wr0}Uv?=H4fxqNi*i&y#?HxJzGtJXhLxOV5wvM1t; zk|K&?8~cA~dTy9;aGv^+s>cj*f)5{99i3Nwub}Do^yjvdW2(xww>@Dm@x7bI^sdol zX_6#=$-27pXT9=TZaP~R{jHO2*DKq2EPEIC$NWphdtPuiZG3v)agB6+;=Y%H>m;^p zZQ+}Jc;`AZ@%q1A*{k+l55MY@cR)l+S(_-bNHy*TrB>4 zt=hAg-#TC4YLuiubCBiyV7UB~@lnOX8Ao6FROT?d%5KZ*jk7d6VkNX9dEH%Ufq%~b zPx$5T*m-x=WPux89nlsN7V5vWzgRBslRkX+qR#$9kG3C8u;G7qL{Y=rxZl>AOX^s4 zoYIE&sN(C>^(<_9CqI79@aky6*QhCC%TJ|DER3>v;8*ZbTO)nuv_(l*bWfF3>YAUw zo$LB>?f=I?rzZPs{M_s$@0BEQ)Pdesu|K6D@8=rLiJ#ogxcP+e*%+J_Z+4!OpF8tUVbZ5FofN!a9y(DuPA)?Q|gQ1>|IM$HGX+;cUqQyE1xz^ zRir9)<;8Uef1gofKfht0K|-l+)G@a^3y$s2nkpf0J5T+B%w)06D-KQK*%eUD%k?_{ z#^Eb$0TWuE$If=1t8Hp*aJppIj|FA?YBzX#&wZ<672EaqLTlodQ%6<@K6|s!IvtaA{r6}mi{TLSjqt9a~r;k1WJ@wtze__O+6uer7MSJ>vGk@rqVSJ_8d`Mi^x8msd7 z)U|M*(A2DZ+bW&=!^LZpnr*Bk7Mq?*GW;y0mL=i1bE(Sv(65$H%1#-#2OgC*=bLS_ zK-PTU*4*zBmeco?xlKQ;J$Ez5EZzo@xYId{mWLSDs~6o8nCbQ-guj_ZJBMMm1s8{L zV8+8E^RH*Q>6l%;nW^+sM&L`*2RrHYE$dCW8d?>EDpUQ}lIFmz(m>SpO2e%A&^IqL-EL%rM%y zl!M`#`ld(RvIjSpwhC+z&pO^QsZX%}dRArk3@xXNHXH4&ufI6oWT1H`nCs!;%gvV; zeBWz&^t`EdXU3MUxU^+^KYWqT4xSaQYn|)-=x)-+d23}glF#ja5@oS=Z_ZU+%f}wU3vFKPd!e!H>!v$f)`?6m>GqlBskf(3g7r`C zZ?U`TYyA|j%JJK&Htg@7W^wuJ$FyS3tg}D%$~W`R-@xE$^P{FiEZqC|k)j!fC8FEh z=TB7Z-LD_2W+r+e%YfzM&--f|W|gif{{KRM);q}wj7o3w?{(@#m;ahpag=p;^HsL_ zizU_-U)epo>mAd^6;J0c%xa3bw#>VvvS#@q>ko=zr;<0Xc(|AC!DFXxsdG8MBp1)v zY*YX9>zdxF2CkDAEj;esx35D;rGEV(j+z#Ytrrh7e)suVHOcen#4iDr&vv{p3s73L zqwM)Dl^@NABe)bIdyP-0eu_SGY-$+$i91|6zgfk53Ip<{#A-{n$LL&A|NUn(=h6bk z@ceV@B$l!r`8GxG+p^Dj?Cbwc*4gC#_v&U|#)Tm>I-V_W-2IbVZb{$QG(FE8R`EB# zCo3e}7R~5YmvF*F){p2@OAZJ_z-= z=Y26Z4&dG}`Lp-i)af5WEB?=2ef}3q4nj zv2Aa-GwmD4|9*pQJO56O4m7bYQB9P1a_7rW*PAgp(Q=D=$~?MOZBoj4IsbI`>2IQC zr+2-1W_s}9GP7A`>pWLX@h&=R=yP~M&V0j;d8Q|)E^^!HtK+lWV$Q{>x4*ve^0H$J z`06?9)c&W+Q$P1^TPU*GXnorDe}VxT7GDo=mr4CkK|`FqLVej(;}TA)~d zhx;`{QP$qpp0)bl{Py-+OnRT)@l|xb>i@2Yi*6h4ExOq9Qe6IDxAjMNrE|gmKke*l z54d2y^T-00cMN*ky~Pa9feVacW{GKiIQU9zdH3!ucWPNZ1)_J3CiQBUo z%q}YEPu%d-koPF_{H;@_o_qB0?#>x9m#f!Xv>SInsk4$-jXB#|b2+{&YuSCj_8-3) z4^0R;o3$}mR_Swsm)HBVIyKwMUzN(PVVE{Yfn%Gf;Tg5fCYv*gQkx2Q?V4tDI8Q+K zr`?&NM8A)1b7$T&T6gtZ>CD&ShB2HA`t#dk=lm>WEStIbX4t)*H>3NaU7vB>*!Mj{ z`^x_LJThK-Het~z&GST+IU4>>Og6kMl2Lz7d;7Zh@cvH|--I#ooLn!(7;nN{<7&hH zAYsp~+H+Yx3PxQ$N0>x)7FadCD zvxzd+sb<@KSF7M?z6>;`%;Hf41Oin+D>&}~y zG-G4@eOAl2CTDNzp5vWy=0>7>#V4)pyd{fXoW3j(DYYqGd}r6%g=5nWK$JQ*` zp4ZYSar)W6`;51ImLxFt+cs``xPM<@)SVsw7rkSC()Dkivh32xwI7#-`^|ros@Yxd z`Eyp@)XB05!g6^VHTWEszq;!*wRNta%f+BJp{5Hf7CFD0<#fF2XS~$qLpo9GGIbws zYkB#2H*@pBs5YPTC**c{7_h$ndDQLLsyYAkz5m^8uSmIiCgs({-LO;ccye z%WIX>jWX09#0o}CoOxkE{1NF@fp6DVI-f2y+j~E6e_d0+Y%jYXTx{)k7O$$ga9dI7 zp_pF(?#`6C z2SZv`e?48jEBoT9NuNy?HU_l)J7Xa_iT@23D+5D=A+J8?YN3~J?_chl>&H+#05` z<+8>cy?M{%D}RcmP3L~P_iFiO5n0nZsk&!L8SI=wCb^ZXZ>@In-B^&kT-o>9{cF`l z+2(KdZl2^;zH*1)BhJdL4hi!M!#|lwS-$I9{*3LO*8OE-FB9LEY;g{n%YLO*cuu|2 zVXyZ*2C|V~9%*hnHuIDu@1gL%pXU|qtr|i~>-EyzZ^~P)u6-`MD*Ddbsd`dco7#J) zD!hDm$u4U1UbT1oLMMOLj``G)$XL_4X_Ebpe5K##qq(#+1LvkIJ*(2)_5Y5HoAo!l zW4Rr_n*YX$UHx-(mfX{0#TQO1-f4C-)?UH;rP_&Wnz5+F*UjvewI(%{Q@WR*(iL1< zRPQs}_cWVvP>bo+m4QWq`$}eSI2XXJ8T~G4w#+p1XWe=~gBrHJ)Neg}vL?ds`zN6< zesN3NpIUxf;-91T#r$^DUcEbN1u>lqTD1F@UCs~pma~7|&wFm~hrR8m#MI6n-|ogU z=}t(A`qq6(j=Z0LoUru1v-(!!j()5EIjiR0i=SqvlcI6++&@c)bgovEuX`Hzt-hu_HSJui{EYA^ z-8*bQO@6n$Wyvvf0Uu-QJqu<9Z=O1B0?#S;SMtuhUGJtas;u&E`K({b-O~Sg*9xD< zS^mf8-<;Jv!)M~d>8^>tXNV;@9eA63WlCnu4AU)g4_F!0H|~02?7jVir*MMDUWsUf z33le`6SHL||9mnrGh_12l@&pM471ZL+e+5jTn@d-y6yA%j}}aBd#_D2oALUS#7@pD zGHylZ%-xrYHhX<*oh8l};yBAUV0~U}b<>`m{tmsZDw2;ZVoGhF$3(TVWYs^6l1~Xr z)HU+HUa_surPU`r{GErOWQ_QpS5Ly-@7TXiFUfC@_A=Gr=X^9VK0|H}|4|nEhnBg< z8m>JP-8PzdaO`9(`)~K~e%+eP_ousLmuSD!-1um-wC(Jab&vkfEnK#4`hkGT!~Yz) z-UMEW?+-D2CeA4P^tD%mxX+GS%lFJ}Q+DiipPFR7;^>bRldQQ;pAb=vU{N@ccHy`C z4b5BPl?N+7vq)Kab?y0hFu`F(XkPUkuY=})j{g6qr5^TvK8sAGQodZz^B;QQ)}nlg zTAeJhTta;>FGvRP)y$gxdf8^v@6jdugz6sGCK_$i)ZTeS_4DG>db_4(|L$N~wW+P$ z(fxx4>rC}u&!!~s*wr(5RV?BCacN1cNKc;D=KK}zUUNSSrO)Sk-NUz5_j}wP?_1$U zm*$>Ki+**$r|kN%Fy8bkwO9Ik&no_qV>3O!-|d3b<`umPJJ?J4BfNIc+^TN>|0nON zUkS#R6+iyXt?KV6TOTF!~Jw?iKw#~}N7H^lGwVkWsD)=^3 zWpCGu{VUW?U1y%6#uNQzjlMyziDdeY9W{N|Iwo&Cw}xH&cn5=nckkRucCHoj&Fe4v z=@;|tEKA^el>2_uPnXS4?00R^X8ftsQ)7Htms2XrB>h@`qn<^7jpfpp%HlH2$5wYb zT|dv3`Xx7dvBJZTEz?(h_-0$gcF=xRlI)CAYErRpMebTXo@J$4V%@8X*X0}T_ByGi= zLUYgD4KI#%SDu)*{=m%>?QA|DjLs}E6l09rId{gse+|L+PKT<^{$jLmKj(>UZ^Iu% zY(BcVSl-e@cr zy>nNme)O~ZE9d0!#m$)*!p_aCpApQoe-hV;EeRr5R_3;JD{0J{p8Bp`-FmU`QwF)p zY1eO>&F^}d5Z2I89+0W<)~Rn%^HT4BHqULsZu7nUbmy-%Qvj!Kuu@romu^27wf|(|HQeC;Iq%@9%8cTrOD0|YddmEbYVqa^@5Pg^ z{tz^;de&Z~{a_Lc>%;3(@87Z47|LDP|4pG?NpJO`qq;nA95?-~7CFshfSevg+)ZMADOWJF@LOA~;U+bS2 zCS>-fM=*G7D_-~~i&IARZdcL;6*qoQWbWAIznE%usrKjH?Y%jM^S4bisM%B{ z{jTchgbgASl0RhGIPEit{GpJz_|;NxmYDi^SD4RkUh%)Nq3CqH$%P+DYYxQiN~>d# zPg_21qipf-rn|ALYP%2UoX}0Gs`_ekQEV#90_X1re;p#af38T8T2Qdk^;DVC5ABtQ zGWp65GxJ+rRMXOV@anO4%B4#YfA*;CRLH0`-zpIL+)L7RWAVvs^B#xp(v$R0v0*Yx=Y)Ohltwk{>L^|a?Vqd)I7w7%V&Ra-FCQ|!2ryW0DIAI_ha>ADyF ziHU!P3H#54=l+JjPn2d)nD6`O-q$Ea1-2&#+r9hFKm1g*#^Lz;nd>)cpZe)N|JUvd zNv2%#yFH7;r8o^O{{Cg!dF|@-8&_v9R+hY~dPObx-)%$gll*y0uIi-u?p${3?&*IH zRjQ|An{F`7uQ;#hr>oU25mJ8UX8nxb7WpZ!IdX4^$InPex-cUvg6-dE%(}xoar2uPZuL6e^W`~I zwRxGhoM-q)??B7KeU6(gT35gMuGls)gymLlsLIVeqjwf_Qj+f*bVbbmp*#QJ!ufk+ z@4lTAvX}MRjWE-9eevJkUU7)Ir@E(N+ScD+F5X^czhzPXx~7_2qR%XXHuZ`&?QzuK z{+IvYy@Z}u7c1Z1J5b#EO8K)A!<(rlFRU+zeNpbXJ6E|+EwF2W;4w{&FKJutT+U@I z&AHIolf-W#k!EuVn9cpG^FdlZ$lsTF-l{ z$`)thX8+UG zw*Jb&{p+fo$zyNJWmB`%SPpny`}tAuPK{!i?~XLhO_P&lOg<$Aw($0RGZCw8{P*bB zbKmPyHBbj*I|5d7#xMJ~yUVfD_l)6LrafuPV?AS+ z+ns$@xw*ILz^}@i-xpmrTB5%8$9C1-Ke-}pB|{b&k0h6$X5%J|)4#ep8H(vQs)>WeA)04I4OGiQ(&l>+Zg{w5=bI(8J z4+`>D?H6;+IO%y$eadm6&@ zUF6Hul0O`IH`RW9pQ$pdxu3)4f}E6xiN%DT<2-ksO76ARQvb8BJzlszk3CXsI-jzl zNQG9N8q=(q0wsso_Wor$+4J5oKKbmCGX1EPhO;a_yyZLjEWlnY^0(l=6JNV zUmuIx#;Y)6?t!Mz^^AX&1=by0<9EvW?xwYci;m5Y&HTvR>B7+%xbL&!C$3}ZXWl*b z6)66mV>WqH#2c}+nH{;}ZHf`b+*kAeZ9C$*HD%TPm}z_!0{3<_r@LP|Sfarr`61Bw zaq5xN-()oQR8L>`+-V!r?35R~3)=WZCq)G~E^2*WxVdNQ(ut)e;xqKJ=ay#Zt0dJQ zHFqeUIc4#upABnY8(rv`_3UjHW5I`SmA_02Un)5Mw^5P~_Q+ZB{f(WlN?^!0>sD1a zqeE^B7{6ZZd-}rf+02AXuL~#KzZY%C_4%CB%!;;VaUs(3sV#>CDMxm0_ zsZxHorS10pSexL{FLLi;rFU)2CETs<1f7w zcd1gkJMDGD!)0rji%XyFSw6kvgVW7rU+kQJ)_(WE?Zmk>oL+OFeA#uwKf)QyKPD@5C zPAE6|`L}-hfwItFu_2RpDe|ZAlnGp&&MtEy=%kX+&NZnP%R^@HuG!a8s-WtW-x7NM zZOY^)PC0KBVk|QcTW>Wwx8TX{Ge5SQaa48reaPP-`84QH@ycbBeC|z|+jT6nLr|#B z>e8CdkdXHHKOBGM^W|2}*v@n}vqXb?dgJ1ymLeB!?|eKv`e#Cu(@f9k>+$7J#bj;l z0}C&o@Q~wJp_rKMgQsBclA^16XGPEb);rc6<8&Z?(;wGRo{>uFg!# z?Rv`V8gAu$m2y7D-_YCrrE|iRcY8hM_DPsMKK^E{&0!zgi%XY0oA#^Zklf8JA3x;x z&e*-zXShbmQ6elicU@2IDPVq#PXHVOW1h|`8Gs-PG1)F=?O2Bp%gb`vEMzd z?R**?_l37icync@W2gF(sYg7Yxl5gNxHx;mC67|hDSN)X^slgM8(gLKYM5(Tvx7QlnPq@ukB~_q{CYFFJ|$b*1f=T zVoOlj*Xi3?)x-SHc+QJ<-1wt2Pgzf8+8ssHkakybmD@p( zvUu(4ypE$SrR>OBXVG7Gq&OBk)i=1Gd%9RStI24){5$^HrPDUnnU2`NJ#SgY z1OE=gr3Y?Rf1MQg>RNu;<>&LW`YxFqV6(o%pRm6<=wziiUfz1! zOm0K2`A$EH*&06+8Jp$^ZdxQ+woG^9{x46$&Z|f2X)n2a-tPJG2@~=>Q!O`LQYaGi zW^?)Rz~@N_)49(0$mxwLasSF()>&`*^*A_Q<#w@B?H9)Rc6Haj-A>k@Uv+#{)g3Oe z<+be-&;`ZU)y!&nT9dt-m}w z_So$Fx+x+4OjxL3?6!^_wHaCb#^NbeI_j=%dBij+;@f4w?$+e^>kKZraydIVzxs9V+}QPc#r);Y zRy7K0(>0&6E)$U0wE45QY0US)oLT=TzuR>sIIMO$@7gu;3!DlC7RUu#uPs=z$o6FO zYpLB4XL}~IW~D0D&Wby8v?%;pXH#Y%Z`iH#l zSHv<`8Sby!e`w0l@}* zvS%05{TKP7pI9X&d0uUM&aQlRuICq4|Tm^-C>ZTp712c#>xW?8c@&yJY1 zBK_Oz_7RSKdJ(Vrq0=`5K1y59R+L-@O$Cz8^`1>`>M{At%7m&-H#OseE7L7^a( zNZ~E#AKv@$>ClC}5iBA*^&B^TzR6qWx4n=1+@mcv7p!i?AK3lXK(RG!_v{Xl70Xue z=;&ydCA?ZJy20=O%T%p*5jv+hFU;>)yl}^99oGrnHyY+_y25g_;HCD8Zo7okhyE*i z_?%Z2Tz`DH_(yz}s8X)C_tZ~1{2NTImL-(_Oc&eEv@EapsQ8&FnVUJ+ZGHOgU*ghT zZqn;F+~fUbl(fxx(Hes<)0b6qnM!?KTh_Bq%lxFu?Ivvz!I^CL`HRcHGkj4wA9vb+ zzk@CWxjh;oW1O;@HL~|{R!_a z{@KMndhh98-+JKIsm}PR@in^Yy-U`XyK7%gRGV1R7aGT_;r-&dv!KYHK*6IHccTdtI|^b#MT*VRv%ZKbcu+6bXIy9ukVJbeKCs7 zo%*~EHaQVt)A-C&>aO{0wE5hAaCcMutg|}`X6?GkH*50Alf89;i*1}mDn$b`9#7O) zDp2D7TEi3-E~0%pZr!s3%a>}WJh^Rs?L)=EQf{FKhj_exyOg)&|JGk?%~YDact7{6 zyCu4Y1`}b2bk-p&$`ce>zI#lr{!0>u75VW%H$_m&07Dz z`}s{{@wrYvx!P8*Y%BJ>qWiM@`imQr>Mb10_qo|7f3`Eb(xxwUyOP`MT~(=Mh(P6) zb^ATvR_vUZV)t=DROu6&liW=b^JPtW&em`IEvf#3XIIwxDYe@ySNy2BBm3c44TFpJ zOCOCsjoJC1ANOtXIH2;oZc6VVF}JP9I~KPl7JiZ!`Wi87?#b+jQOThpY{3mh>wJbn9N%;M{ofn+x4fvU91atT@-%vqG##RE4)e}+XL_L?DL-W z?)#>)^7$9H`acaZwYKEcIHlrRu3#8>wkG9Bw!()Ur!IKBl3TgDjsLMuhVI%HJ;5|h z-|eTF7i_G*y3o5LQDWI0&Ix?473JP{o6g^df->8M9say=Hk@qDw4&<# zXDcI(7tfU>^Zse4H?4{@-zr_q@Y%5Y@$!e>Hxz%x+Z?@9JNIIF(ks1!m>=eOwf{2#Jdm&dy}mn+;ks1X>X}wIbr@=yf7?u*urS7E&RO4;B0=*6Pl-ph zKDf&*A-;Xv2gSz$1r6MOChXH5eEKmbaBuSJ)`cn@;lV9&8hf}Gu!Qbery|2AoBbwB z;N!xjx49fYt}rjnR$9q;`=)%8&w8tS`7JYc6l|5x{Ak$uE$2t5)v7k$fb!xGtikTJh z>gHb--pVOld{|0bahC3z$X5=$hBx}Gq*n9pi)vbPYRdEGuzBbBxg*lUPbk*R5{*r~ z{=@Rkoyi9oELK?`{%YIdmUME{6yqX;72j9=UwY-8agwaqqk6@ZsjAoiUtafDh%-}r z>EeZTX2w2GBa0f%8vln2cirw-d3kMmFB?;wpdfEavPrjM`ickrQc59)J+3olUf*J? zIi8($>ZBZ7@!ZxGXMV+&^vr%W|9S$ev7)~PpY%-Lm$Rq&uC!U%cIGqF@=y*zWB0h@ z&tk1=EON3|Sp@uA^POY<#;BICbG2H-HQCV*7gjV`WMdDEJ*!lP{GagYhwfRyrA24VL?;B zUfGb8`p$&gdC^pVt&2Bpl|$=03U&)@idPqt?!VDc-BmQd`ttt+CHpireO_O)_rkl&i3eOUFOHWe(rm@a1!gA zb+>udBW_`1`K!>DTpV_NMOfZ}zsx)ws;LWpVJaw=6qTZM(m_URpWJ#xcz6zxUU_ zycxz@V*GMHF05JWa^KiclWAAwQDNRqdd{iwuHOQmi=SOAZ68&fD(XL>P^{zP9lxww z{jZrHocfTrJ2?H-&+XUUuLKFAHemRDPU+kK0bV>HN6{yCjzSLTG+ zGh4Yn*|&4G3V%}F{H^<<^$ML`Tn}daO!Mm#XF42ctUIIJ@k46pnMR%{xB6Fen}ViI zHP#OgVEQ>XJl`YW^^vaTE7!sj-}e=yv&wf>ys}7IWnDIDlfglA^@cdxfAaP#y=L`Z zUmCP`uTIW2-MFV7hc13&`_5_D8-rt0>&3w&AkKvb}43TW$oDU8xF> ze`;8_`rd5bel7Rnr2^LjZ%q=6=H0S{m&GLVzGJtAwXdh@!A*Ax_n&gi$;qD=tyLMAT;sD;|HO5dzL+WN+zpm4(0U!XNUYQ@%ILm;*q*wAtHEv23k|Mk)iwt_ z>ryUo5m?{6U3=|TDee6$bruE$cE9gVxw@!%<>#_r>4H)d7S4|Ek-eo=t2RN8l~-vR zx8l8H<}*qg%O;lOY@Da1@hsv!%Qwb;gH3lg6$gqx)bfp&xL9p^9i>fPw#!^V`J0xSYgKT;A=BXAIM5B=$tzFZuYK4ckT8sy6x}MnDmN$TCwxo z+IfrWr)yozi3m(xy~u~T;A!&L>Y5rMxy!+r{!wb%XYV5C8Rre|=uIU~%Mz-PP}>$xWLr zlz;lp>Z)$0lJ1Bi&zpaAc@Ha{sCc#8BckDcY}U-wHrXFiPZMRN=5Ls8b-Imlhij8Y zR!L)=T;aLX8+1<`m13P^wN+t4x36YyYRX09r+MG{>(it@xn7x;XeM2-J|N+ay6f*C|5~4}UpQ-BPM5vV3EkR>mp3PJP1cWg5BGQVeNs4W zua%9vUD0Ku`}ODYXDo;cbI4J?8KUBU{MgG+Gq2iIu+gMC` z6>^u#1+6y7Tweb1=3DJe{D-gl+8B3xaJ%XK%eHjrGUMKE{43qe*R85yS&I9keT{qn zbbnx9F)znly_+fNnRcYg-h3x_^H=BeEZCPQPQDy?J=Q;N3Gf|7I|#*wON@zOhl^x$~@UsQxh&T^?!ZgvaI)yrfE$`lGU)0 zcZs#PmyZ3J{Il<9-OB7L=_-Mjy)I{_Sci3c$Vt9yTX{BK=va+@Wn{deQ{Nha%l<)s=Z)~QTYakSiWTOmsKbMU*M>PvDG+Ase# z9~P20@;6wb?D71Gb~5WfxEy+A@meX#`TkO&i6+?v(c#-UzP?iTxUkA3sHz?*?BOYqa@KO({eq}N&luta@*=;mU~~i*3o?VRQRD=7$RvkH)FT3U5j)`HY z*_>%`w)p?9tV>3ZUg*u+o5J#Vcc$w56>K6$?mp?zWVkQ0f0kHnznZaNxWerzj5d`m zGgobV|M~uvFNYk{D`R^w8ebt^`B*D2WYWuw&QqElYd~A7kAE=xJ{ha z@8W+Qt`usU&-hUF%c}>@`=;L9R#CVqajNh|-pYjEdHk;LJmh|CaI*Z+`pRJTPlYEP zoc<=_{Gh#MN0qv%_!b2{@O;qevk8(?|n~&mp?dDrENDot+Z)&?u63W z+g|D|-Z_!$SzP|RoQF>*T)+QtpOM5Ovxk0pQqw+6vwBl>WX`ce|mT%4_CJi7MBIKN-FKFICTt_5-uTQoB=9PJGA`PZkKiXYp&HuBz*!1hfU)Ay~OvAliJ zuZM|q1x0Qw|1?wU+Z_E_)@pc`fs;|3QtJ=F){8< zxx5MMy;GwWdDT9ziJN-+8T+A=_xV-ImZ)`datIsru8S#Qaz6`(&4V*%@!9 z+tLucd0kUp(&3;qUd?E2Eh}~9vr=D0daj>PJaKf6)r*zt+U>q)j3@MZ#mib8bzyXQ zanZq7NNwlInfZ6(RxW<%c#VPg>6DXtyXxB?uQA-wv^qMCHU4s^+eQ}!q4S$0i_**b zoEAlJ-eU2Xy7-XqjRV3MbG6){cZ~@Qv-pJtEc(R`FdKAS}cd(wtD?P!O}2c0`p0652vM0e@$baibZK0 z3N=YMs-1O1ZE975Ip5EQ*-JLc)OTf1b?S@S%jPoAxL~gHzWcY1=qpzk)lV(B{quyC zQf-^gj+0{lvOY#X4}G(^!uH#&nNJV=3ADX2)2_p2zNF;LSqiH56&Lqyp7Ae1O6R(8 zX2bMno4BgBBvrAk^1s+~Utqz9*LNPUOyT(Ut9{XXXVHm1%uhb*%e*!MT{ZdUy9r~F#Tufpxy|MRU_Q?jcqQHdcrNP9|xz{79leXDIcr)d29 zka0yNxMR1}gPy=%))gPV1y#J1nNiKRKvqj9{isjmH6OWE-cQ%Wmm7*&CBHV*&A{j9{R~Urf-~C;uG4Wv12cv=@jv; zbKlP`IPMh{$<4+e?HZNw?qd2Phb^BcZc;99k8cZyM$FzwiEZcUr_z^NX|07F^r6dx7N=DS)aeR4uKHm(jGcS5; zM33vQa+;rhXPa~SzM~)Q_MDoOx!Ui<{+1|%W$P|YeVe&MYO++qBfXP#nG-{H7@v^1qZTsJ=~Y0O=c%HT438bec(1=Tx+~3{ zSn+Ma(uYp7Gqs}Q4#sVsaBg|QwLbm%?>Tt&zdB#nw6KrbutZE+El2d^y3=i^>tx<3 zhCCJGoY-9PcH`=#-AyYePPuee@b;sJ*Va!ed&--&Px6TyPy1?Rg_))ci?U>%_d4u& z`fQfJqV|m|yrF$A!tFuLr*1rrancTx^$GbDRxHN6*(|SV&fQp%>UBR+`!wwSnHw>+h0^z}0@lQS@axg`6^ywvX@<7r={4IJvV4|G9lKk6zj43Y^tgA= zer2s$v&V!{^8M}m9HQI4uh^bbBd59io_2F@-jq7+tXlg{m8l}`YyV#R=)*l*yH>{f<+Ur5-{!1Mn{fDoX?ovB zm*W$QCQY)csE+e56+YA~ZSI_yGAXYsgqhjhE?UYm=Zy@f_w@DNmT&JpdYyg7?7CQf zgDu1Qx?}rTCD#e;uG8DfVdvfR% z>mAZHXWn_*t^FTk`hT*6JZl>gV1Ri%zCG{om9(GTgCADJv%3nfz*PY%I$y~SZfMkD^4o}T~r`}KZ z4lpNuu5$@IzU$91{^V+P&e($w-rn4M{(4o$rK`Dyh3A{@{p_E1V|z2}ISuJ1wfmm- zqAzyValepscCh^~*0rL5 z=BVZW{{L@H+oMtk<;=?-+3*R!Sfiuam-5r-iPoI9ypJJHSBJio3mVPTrp+?^TX+f&X-~>XjW9{&^dn=*vEXQT7n8?1bnxHeTUh<@#}>Sg#f&#kjrc_y~j-`$;`vP|lGk$b34Nn=lm zMC`SX7xY^khvFsoBf5{`H3? z51UoOa^`Nzopm*8OJDikj8=^*@$NewGA+?xnjd#>{<~|xPqWb`*MHTe$&pLKmbC9Y z*7jGen)5(hCfEDN&p(%QuPiyS;Mt~P;iC`d&$Mha?^@B?($Cy_{`5@Usg2K^OBp;@ z`Gkn(r9}(OZ`NJMd}MB~wyAH&CsXxx%+qofg-Wuh@g8GHXg2DQ@X0KHd|~J0PKUxd zt7_Zjw_0W2mf;K&y5?)O=Fk4y*)31*>ug*YxN>cv*$uC74uLCK3%vIn_35h5zV@r} z+ks>W_o(w*+*cRfRg&M)#dcBKtZu2yKJR5c`Z@Ezuh6-{bj8BQM>wH9FQbj*{rOoa;@#JvT%*5s^=Jivj$}WDT87^_>{{M%WOQ)Wi#ccfV zcyF@i50S}F9h1MEJ9utSR=r}+qZ@py*xGLIwO=Tr`&LC@)|>?KZ9E5_HQ6sqckz1c z6Joc(uJq{hpmla%Yps6xzMGoi$77jm_0GKV{hNk!XIHcFZDqOWHu-|C=Chib7qcEY z%nUywyy8~R(cXP&`rai>Y6sNs&%aaDu*!6mnNsMS)8daTi=C!bbU zw{5Ydm;15HAA>SBbwoXOQn(Plbka|?8y95WtiRFNxF`4B!rs}-RP#4)&Ux}p(!u9w z^AvOM*kl9c#TK0G8%nRw7m0a$cXh^N)|rBqm&F{l&cl-)1+KePqoydz{4-AY`K0_A>s#(N#l8QU=`_7fnOkDw zlmp4BBK(iC>o#q<#n8S=e%X|Sxaz(JuTbYpeNM_3mT2$HTJ@)C$h0#Zd>>+ zhbc;&d-|76w{GU1)Y@Ft@p8RG!}-Ld`!zZixq|!u@`OAQRy`__y*gmltmyt{N+px8 z)tywhvQj-G_rTsYf0Z(Gqw~5rPNZMETWosni$YI>=Z)OU5a-uG?~iQ?2qkCuiLpq z;!}s(jkeuR+xIHTbBjBRQT1qUS}5BOidxvwucUoGdSFZVkhjSJiYJM(IM4`0=>t$Xo@ zE&ld3?Xy|QSG>->S!b1XXrbRrzBS7ZteUk_wD!+KvBapSlNeRx1RfMlH?#k&|GLXl zP;HBDyjRG)aMuGje?L8X??4&XXCt@PL#J;wMMQd){P)VK-w^b#S?v9d56p6fd9e;c z_ja%5Ro8sXge|Sttz4<_1spy$ju-s04eJQ8c$4gvceI3lE^e^i zGV|Dc$?&kgo&bhR)5Ln?75?A+=D1$x)UykE`bzNL%n~9o;m+&zJ2}&SM;S)G=)b~0?cVbP78N}!T3egd`?_T; zYpm!m@mhA7UO01o_{_1|CMOCx8=Xml3KNFZF zS>iiYaYJ-=yV~ZwrbX4;4jr5KaY8Hm42=h2=6SsP?P#p?lx5toLd4riHFbwD+G;vCS=i zfy4Xw2{A`mw`}Xo*m*_dG?Qgo;AQjoQ8$$w++4SP4LQ#=zjD>v*vH#8GI6W?O}?bL z^431%bDbwt`}#9p1m&%+oOmnB()&xW zWoO}h@uT|^=I`5F`>)yMeP!E`_p&mFE}AU*In`M;jr-e!7mNJg@3j5!)b96gJ{G5# zlygzKEWB?@UQO8N>9x?q>U(6zRGWge4b#7QsqB(4Ye>Jx6dx8h|Ms656EzaL+t;++ zv33l+_~cgE$K>3z0lR)j&OUHW^#e=TQL-+ivg*g7pGJ)q-NpQ>8g;d8-N zU1>IZLvO7v_FlH1ds(5F|G|R?*zzBLQ#luE`{8*1)Z4#O?;Z$Jp7!Z^t&PUnXUs7Z z^X444TiE1RerZi=M#}QV+q;zOj;k{$&6&`d`r^fuIBjNEn};&Lw3&}+9^{i{J=c)* z&+L@0(C5v+%Xz=B%1_KrL+pRT&ef6wbXQlIliGl*A;vxGUzU%7Nx=Dqcg=CI(>EpD4~9tRf%%-ym0 zOr+}02|P0#O6qKx7u02TxA(70&dbwF;(9n^>p35zM^j!L5WF$5RHbU#?dFT0YUei} zD}FYO|9pFO71*>O=Ixkof zb&>hETHcrR&l*Y-R^{-gzMZtGc%7I`Q-2t7)Bdp&N;)a_35`(z*XuSw?RPZ#*Alya&=T_NX?VlT62im|)++_j%PZ&tg# zF|$*ib;os!fn)5(*Df=BB@1&tHp=_*?uf+4Ek9EqZoQ#S zSuJStk9QNMDZgIne(A>1KbKrP=kgi9{66C@`vJCmg+tT7o$ZpE9)8-+Yq9#JPe&8} zdpws2>r>u-wwU|jvaEN<_G-3noE~{{hs%4dJ3nOS*-qRdd&+$M9gYX@C#S8Eh&&~t zwri`}tDF62j|iP#^6i%9p6Ht)2_^>OyQ=0NIL@2ET&i(%29t!|9i1XCKWk<9A}~ zj*eArK@AmN3==0XMK1Z>c!9UkVX8~8#FvWSO@_}4OA=qcpHJa#Hv2?AsfnUY|PM_RYiQo%<=j({gLnb}zgm8=}zKK0W90i5i;S)S$WRUUM?;vtQ@|yhUMXe^m$!2zHKY)|FqtDbJ^yC4zG?^%)05tJC8Cje46w! zC8qGef@fdqH!>+4jIjM@z_`F_qrx-0&QF4$n>Q`|cVeo3=+Zaq4gOy9Q=DxcRIu@V zhwyxVFDw182SR40P2xVqm~++e_mc|N+&ll)-w{(cco``?KlkYOKWUjy!YLy$<+*8ckoBX5#f3*U%W`iCn9woFUtUOdzj5dB(pk;T zi$zQx>&O0kIHx>c{As(z|Cz1qHRT^yvz(e|>rW-4D4wZW4N3>+pYXY@l=5*M}#| zN)NTUZ;Z%S-?^0e=xf6c(XDwZ+q>j$ZJs7LeL~BD#MY_WQcDvq+sAE)TbSndtAkCy zDQUY5&#}MO=9Y@~TkJ|Y)=w_KR{d1u+Rx)VKX2S+Y`ep$**#-di1#(m+aK6H^Y7bC zVd-8KnmPaTijTi*AC}v!K40=9uv)jI?W7@Nh}MlN=YLy%>jl)7MlTF>n)%`pLtFIo zS+6dyulddz__ltPha_kJq;D=iyfwVO?Nw52pDF$Pyj0!H#ckf<4+VBF_|>^ENO_gQ z{rLT{X{$KO=59~Awg0oznmZSTLrxmBY069NUH#z4GT|jVj3zD=eaUw2#lg0Fet9*= za<>^B&8bP!Uh?Fv+v*VQ13xA=yehpXa(ny5%4Bin>p$W;s{V&PKcI6UQA14S-j-Aw zyLB_2x$?c%pHlt!V6${e$>O(duU0pzUCG^Dms8VO;??|7dT+qu|J?1&T$$4khAHh{fo`R4^g^0 zO4Yte6Ly{1KG%u+c2A{f*(TLj1{-cTlm<+75-(G|@TBYX?32Rsep~dXXwB*Tzp3@$ zAG_mc8D6B_D)kj}e!SG9!v z3wjUja5?Opl)!e=rP2Jh>N$n05qmgNPBs5+niCOXcJLIBX{EDuQL5EO_6qLWyQ!|- zRgX({lq}v8I^)8zogb(3-v20Yap}^i7T3AQpNhFXQsZskRbKk>_=Bg?CVck1OftRM zJCt_b;PqAsIg;?;Wp8%;dxev}uUPXt`>w2i*mu!&@seM+w>hsnclVsz@AsL)Jkme? zEe-3K%5r#`{M`gNHy!p-&`W=?_cH%q^N*3QFPNtVt(lxbN222oh8t8u*u$WR`xQV{KJb1d*6Py;j+E0tgPd5{@dbD_hZ+^ zZoHk}WwLZqwD6K+HA|*nl#k@!Qga}%N3i9}1>w50eIYVG4DP;4TL0+8^z_hF>x*SV z?{}H)VLm_YCcE~LIXlnYnd#}g|3}OUm#!zimhqEB<;3@|^V+~ZgU5Ek`RCjCA{H7> z&(m2gTs6b|?B`!^^QX;nGMg~B!mMwpOkuvgg>QH2PJ#13*VMhAex_`p1=sP#?+=K^ zbvL#mPUwO>_aPg>d|KD?FEGtc#{mwT!tIcoei*{PG zwEfDnw4zfr{SWqR;k(bf@lwhKcBSG;vFkN%vF?-mGvD>krKdh?!t3wsIJGp(_`>7A zTp~}8YO|a%ReDgudGF533+5Z+?*0|`eSCQN4LkMxGMO1E`(Bsd+4Lsup=3b^&%2`c z3jZC{rusaZaPsQxB;I-xh54ed_Rb6WkZ92RSL|Y;`NlY&a<*Bz2X~x$ekbsE_KARl zp5981Q||8eoy=t-;ua{erRnX>U44>G-t{LMica{Q>R>y;6Zrc{pv(XL2P&_`3e-&F z`tf@8$(~yRZ`>@Kz8s19ddyS*p&OTbSKbS;PYYf(Yk6;Z?HlrJ%F8dJhyBH0Rc)F7 zWv1`3$t8cLyLw(8qoFGS`B<7OvFUCmgrey@~iDl=+g8 zZ@T&w^*e%&my&*YHOTZ8D|!oD=DHLZr&K2>&ws&vPUvE-^5dr0ThhZRy zaV`7*nr6<$7rrf>C-Lxvn8NB}oq%f9C2iHtQf7^AtR=tRHf8i9{lePA4hN=2igZ!>@~A9bpLu~KXInN^iK<~4NRN84{-E9Fn#t(IQ}s!r+va@Z-pO;xj*K= zei&UQ0dinRwjP03(%p2Cet$oj& zSixpKUuS>+ORc%CT-#SDI~7dQzrLok`rqtNHi@5`T#h|X|MPoI`ZC8gC(Mj8B2TSh zD}Om*je4Vzty9O5`#Wtm$87uVG;_!6+&wIB)Y^VccihjHyy@C@jkFE?Q+pTx+o9cZ zZrax~pYQrSF%e$yOLh}Oz~P1(G3)P(+Ut|@s=g=PlG?n!Y5nEb0T1`j*niP!{}?x}!HAve*2?)o*g2ui5%u?&Ln1dEcyP-qhx~d49s{O8!nk3eqelW?N4}bB6JFNwxbX(}xldP&Rxgxfo89O$t#b+@D;6ueZeY)U??cd~l4NC$O+#wsYBn|EHdv z5xa2Z0RL3&Q{Uz+{C1){=(Xt+k4YOl89Bu)I(0_t4kn(ybn3yA z+NbB$zVL7MN@nh@uk=0mKD9^QutaFr!IJ2n zESbNSW?o{sxKp??c4bGb9>-?M3st?Mcb|QpIyr96TA`Cir*y~f)x0IXb5oVztSpfi z1&bSJxiQJ_@%U+CA{i+#>wCvv&+lv3C+~Q3_TiGx3OWmYYCf1B%eoyeIbGxD)`@mq z@jbyB_D1gS9HS(?_rA)U;q=S?(TOcvB?C7}%=bw)X?yZ>%GUU~Qh$y$XQ=Hw9r+`+-%Q&7AFR%u4?=*Xew@ zvC@9Mp>XfPB(JjVhc-@T5qc~kAG@N#?|UvhO3Hb>xYlOQ@w|UhkK;Wu z&axJ%u7ABU=5izY-xEIE;!v7|3@pJ$dqh}it3?QVN39-LORIq-0aA54{uwN| zZd)inf786V+wLEZogedU!Cw<)(I$gAJEt@sU2FK?EX3BT``$9utkjbakN(`v;&bG6 zWlOr;CcaCC&lR8Yo#E5HS;^R)bD8h?UwxOyXP>Q-P0*HETA}yBPd?8m-1^5&qhls| zDq4RQ$!8b_rR>`CsB>2R8>gV$xoa1Q{}0|3T;rZYVa+{XNBd zPbxKAH%MOj(0Yl%QQk@DdWo^RR378G9Y(oL9UkTxA8yr~%1%%5|GJuIl>v8V@i+U- z+%o6y^4!kJ(<~Kk74CSmMg8cupV>z~-72$HeavsHzlzW6%OW9h{w*K%wR2CTGwhnA z_CBokg3QAI>u%mLym9iPiv=Is^-uFB@-A`bdJ%qB%x+R#w#lpPvo*D=QyxD5!v0R? zTWLg2RH!;f(qi*NpR2-KRRllHWqDj*Fm3OQ4^nD^E4^d|RSq0{m;7hB@KHsJmpi_M z^m(O67Q_g$bFG}(lPp|o8Nkz#!g{gn-m~=2#TWE)|4mMMB^tJ1i_25@T;oeWPb``_ zGx^D--ZghVY|$4h@7%V2vas8_Z3i0<9t+6zp2j=VZS|*F@;?mv->q9$@&09tr}44J zD&lGxHaj#}JNUjO-0fXtdhqSRy%~(k|5t8dSICsC<7<1Ul(s(D=x(^&clU>fbL1zp zHHs_k(q30^b6Y*9sc;m(nAl=Xlf6}EpFetHF>_MVDUI~su`53IXdijeU8ZwWTY@j= z0pB4uhKnoo?AV0mTn;Sm&*t>%>y`y zPmc%Fo{1ACDNfJg6D&M`Im<~ieD3F$?5-R2j&^Vu>^7J(Rk~O{AZhEyYt!`7Tqf77 z&S>|~Sn*}^t+-Dm5iS>;*Ds&&SgmhH>p~{AiK*882aSyU=WlvG>BRL}%9FZZ^zROy zwU6&|)g+_$lR{5v=nGlzJ3hVWg6YHX<+WAUQU!0Be3xfZEWYt%S96?DYq_IG`CREw z;uAL|UvyDg^u6wJ%MrbLzcjZSVfw0p>lo%Ro-I;4&s%o;oneQuUEd zu6tx~W7bObUkb~As&P9oiJc5EE0hb^CLNt17MSvQ@7&0{L9vprvT{PVnF}lm7UBNP zaL??@!Y9%@p4jm0YS(`0xV3D`ho4F*tg*)Z_f*r&1nL{E9b9f}s$zHG{Q0HaGoJR> zF>YGLZK&K}wSqhC%x(saidFBD-d{}%PAGa)S5VlQ_buqcxvegfqAPydzuK8_IANcq zUEsRs>jIa~wl7u9*|W*iN#FeRS}FILRW_@7Hh76CnrZBgId$JoNa*+WrUe|=J+~Rz z-(L6s!4>YWzn+=t1Pg1}ZhQGR*59s9R)2k}qTxOlHU;M!ui6ej7GYs&F+YAK;$TCu zo>!d1v9K>}J#*4_tO!k+{oa!^@X3qfyOLWrsFqnj^*&zrjr(6_`pILS)kn{6)m5I9 ztbRY`(YCca|ICV${dwW9?Ik0f`!i2Xj-99Ko^-E<=gOo%JWhuXoELn)V`=;xhKSE% zSlq=keO9Q{?bjO@{biYy6M;-!44=LC$#1H%*gT-!nh?pEK0? zc66^c@tOF(mgNF(k^Rf|6T0D>oL2ZhwB!~z{=eIvU3$w))!uEXa~;k1ObK#L<@=c? zT%NwFBki>NCOtI|Sq-&~=cWsUwKhvk?!7fjq)yN(bF13QD+hkRidl8taLb(RgjadW zad%H`+iYF+{mqo+UFFC0*J-@?_d@z(=+-$*_ij7*?`mz&`?No_yJ^}T*6nXapG?WJ zy!Accm(ra>jJ%I~x5QlNPkh5>8_^B}Pf3i3DIy97Dek^lo=KBdR z&L8*xCwJgw*gpqD@q4+!#yl4!1p;~OyWU@ExbuO9i_dcV?Nl9^-IceqIM#Zq2(o8P zm%b_Xb%qyT$KmRQ!TtN5tP{20d&zOy!FNjbCvCDO1=t%{m?gaGz8EULkL7UId6}c} zW{1AYUaGW`iH;E1ekbgtzG>E~V-v1wyonV5J6`BhbiYr}!6iXGpqP4+1)`gGOg45RGM-kLuq)=Ls@AK1j4?9q@O z+F>6&e^39x?!L=T&Pwv`hmPdTFSs%NBkPk@Ulzq2m|yYN=SsrebF)RxFVIVS9_lOB z{854Po7eBcsfTT@cDuJpJ=ME4tMJ#eeV^)LiVJ7HT=Uy5;n9gc2C-$WtClI;xgYS? zG=I~@^ZoB8{A=04;`oF!P_vkSXUz+f9X$^3uh!T4rkc%LzsgpE>yH1M(=T>(ZTaQota^Q9@9#4o)<~X@_d4j%Tqf31{6UB- z_5bI2CNI2WZ@VtznXA3v=VaYe@+&JU7j-9xNBwW{_cAWCNz1id>|Xr8wS#w|#)cP_ z=hm_`d|k2S;i)hALRTW0a|^_p%l73+JDvzF|Mumxv&@`|@;t7+#}+MQ;M(`R>P@_R zhJsha>IFC0_Nm{_V>og^Q7DwLTJ;&fOGw%V?W;`oG3We^yFFq=<$gZUw5(;0-RR}1 zBU@jdD-;n>@$|+|Rjwx|m$$AxdbCc!QU9&@mdyVz8tUeKS`+tS*({Y;ui~Hc`B(o+ zU%k3j@&4No{(lQ@-~Cy$Xug7Ay^q1_?C9s+hxP{wuju@1oM9HEmnWghP*9>-utH&J z!J%K;{_LsRoGaRuW~9GVoYnAAfU$fp?|VhY)sk*)#~+^JIw8K(i|0(Jz?=!&wkqG) zwc_5%<<6~==cX#}oBvLHV_(^(_wlO6A~UBLYdmUg(#*5E_jKWg>@5r4ZvEt0e*Vn2 zb}ilbN!~5rmY2Ps7i*k5_0+!#SJ&$d{;~aQiysSY`=@&5MD60>*zf07p5C*vMAvA; z=85S`-8qjO_B8uhCv?(IleU@tMo>z2g1nf9-iw81$}LiSP6tzcqP%dXGaz_`(C+3eq;R27Q%_ zu03%p(J*&!$eOb`ZMjF1jBe`B|0cHZqU}OMYjXq54KnJB;(e0SOL7jL-rFm~%)0fz z#NL3S294${-_x4uk1l9sI_(LY%X;Ydw)tu`_1AQm*73YrJzezJ$J^ z`0HK^`9{ zD(-G%?LpIB9y<5xcAeWV%d+77mHm6nj(ysxzGnZNT}8zw4hjBI;6GyU;Yjb*>;L`! zK5pBz|9IWpUA)G=oyM0_PCacnv|RPkLA_Fw6TF9gF9}ZcE_k=lLOq6eQ&i|tu`AQP zEBLv+v%YOLKT-2kLD$M$;<4MiYt26b?ATv_dk}oy|eM=Rab>i zmfvSrOo$D-r8BAYhuHNC>BmomPQ19M=mnq6{Vv;AuitGKDmH2TSD9GIxL^O}TH)g* z!IqwytGfF9AE-`mYhCQ`-T#c|GV7+^72amQXMXHxKE}9j{H<_mvZ*6L4*JH8>(?Cm}Y@3U4SGkflJDAy?6 z;Q4-9-D>LnWF@^D3OU{%T)8D}4fL;hI=f!yTl8kbq(41Z&s;Qc{Juyyis#8cXH7Mm zy!(<_Z8zUPtw~)ZV!eBslIpWnn_jN-W_;haCb!jD(DQ?c+Ftd?y4xjd_$MFozLWRw zOE}lg3)2@ey|X(MmsSDk3~|Vyq|vRX$bt`@_TLUo#Y5`zE^AG9F6%9mwp+ob)_N@@<6l^vYjrZYw>zHpACoWmLm97vpIh z62%j?+P&DpF^A3aoUVlDwHKcQr=Qy%Q@(Sb|H*5GF`7DZTg_*9yR6(Ep}$M=h|J#` z>3=ynjvxQn+c4c#a<2Pi|2;)bTYGo!o45Dh)r-^kYfm$-SW=p%!;$e>UH0+ft)Wxf z=VnjeI_LMi#|NsW%Y5;YoLc$ipX%f8OA4zM|8gJKyl1VjcWTlvnZgTE0%4~nS;aer zU8;+DmAhQG*ssvc&sOM6;oVz@I49{`w$z>E^4E;hNvSU@&c1nfL&6T7^2ISaG5pt? zSDOFJ{MWz7+u`5qJRQdHnr*XZgno16T(pWWR?(i5cbtgfNp z;M6y(8E+7)^@5IoIeS$e z-%GnQlfFz`+O;ZGk#+CcIO{2&dd`Oja$R2DTN^1h^Uk+7&no^^u}p2^w=lWfrNyB6 zF-?6}mDBpnhN+#4QkVL@snR~M>qh?0%OBl6OdhRpiu)sarmcQP_HK9Y9XEY^Pn-Oh z)7$KMJO5n5d!c6qb?>Hm@z0#A7_e!@9QWV-pFPs2yH4K}>U~ICU)}kjZ_?{6e#=@f zANqK2>7UzA1XO>z&)xsfds#x^Th4i$W;Kt?74!aB9&4UA&qc?e$337S_~(Ch|H`>_ zhS{eQn-6J_x?TK4doBKf#?rb@FBpS4og9ebaWLzxpe zk2~GEyzqpcP4KjR3B1~OMWd?BY*J?M-l%%AX|~YiMHg7-hjQF&Y`k>Dd8449)Lhl) z7ozR8L-#xjT5;e}2=9~fRXdcY9WPU#vb@7VtVHGB_nW&moVvPV>-nllz90T)ubp21 zn|pV4-mY7h)0C}0ADAC^{9-6?kL%%=)tpPz{g(Fg^6NU!$v*YH{q&FOa=)m``63aH z=R{Ke9&me?#?Z#UHOgJt^rw>cLLCo*_CSg246=e|ZGV#l{Vwxjd!&YPgMqv(;GLQcP7tfa$*&>vkJIxZ~TS2^#l zciq1$(zlxJKAtJzOxrH8I&ZG>~n zie01^!n(&VD(~ntoy2&0@%_g>FIc{)s}x8`Ovu_=B2pJ0bNZfn zu)6<8#WbY@a%*$99{gWW5pdm8O3qN@bc;#0u9EBwjceA&4^}FC(E7NvoPBBEj0IC_ z#GYRhdVcKQ&+7g0yHs-+W*t>;Y*E)$+uZ0|}5=`!%obF@3=bepmW$EhPvj#uPqh@$UJIQ2Qp51-w?1X8@TPxNrdf7C6)%yo= zTeqxS9V8?x=6=`1b1%=DAA4g@`V@$ME4}o+|G^~&r-eTsUA(qZ(v5Kf*IM^~|7%=D zGZG))k{5K67AuH&rIZ?&zj@0Io8os{I)%*nLmejmU(eO^s@G=wRKI_B9>3pZyTHnP z&f((=nngXg$1XXTFoR)USzwpr*+%JJ{bOadTcSJup1aO_z2Ujgj6l;oqaMi(UspN0 z7|iN8<8aJ-Rr)60-!a?I)y#j>=V}$n^8fw>XWi0A$6tAvc^t8NI%nnHSqo2js!jjU zWSslH>ZjeKw%o*HmCN?lYw7IeI`YswOK1AeYJ&!r9ah;>KZi~Ec#Kh0=|XPGQ8gPo z>04)>Kgv+kuDkxc^zg=2Jf5|zU43`?C+L-V)R%r`K6d`y4c4GT5@ zKRE87USf1VrLbkinT+K>TyLaa*t2#1I%AD58(I0vD&F3TQ9a%y`2W?N!YP86j%dg3 zx%;%B>G8hx0tcH7f31}BOf>AguU#}VcBXvU<14qm`*5oj9OC)XFwI5x!Q`9YTkBlH zd_J|6RXbd5crG&al;f*_Y3%ow9z5aRW^E;H${v@!rt-j&6|+_^&;0RR=8W!>)&I9> z3+1@9GEU{6w%=myyX##JjTMD@OMLu3De(5Ky0B$N(bFr&@~u|2UONB0Q-avKFQ+vx zn3uOt{lJ1fuf=A??0Ek+lzH0(mumm)nv1ilTHOwc@o(D||E^|-yxKCce9;NP6_G1l zE}uT~Jw1=x>eUt>vpf42?U~JfXP$)EhVz$A`ww4zHu?SO#n)@OgexxT{<~4Wdeha>$nvtm*=?OZ=O+3bKjc(vDfxZdiRTG@d#_iuzdrvWou@)? zdB-))=T%o2)>eo#iZ7`t_*(pI&gPYy%FWN4UcI63E_zbxm4WS)xQO4E1Z8w5hoqS6 z@3{T$$)eQSo28znjn!xq?&2*xMe7dRGKg9P$WPrW@ZkzaNyK!Pa8oG(i^SiqTUVUJOzoxCb`R`4IE@gN0&U}jx7LMHVrh4*(RhrzVt1r7P z>H73~*_8F$C89p|_4&V5&`rK@XI9i41xsbC8{Ab&XSzE+?-E_07JQ~A*7;k+r7OE$ z3UR3IYq@8=WUCCgcw!dy!sOW7ew8>Lx?-IX?gUK8AO?`8$YD?CU7cD92!IzhAh}8MYTbRLS znYwXJ=pm=uzn>JOiJ3V5`)%dEs?<&SoJ)yld<&<-}6Z} z+cZ00r8#&o=H$&2x&CXNRmZK_OLi?hJ>$HdlCN7gt6}L%_U3@C;;L6yypX$~$9lOl zRFm%x|F^R0e_fA)*VaG3?sz%OH+53hddn5+kM5MMv9i6j@ZaHtDmzBT)e^VWUb`_} zJX+z+k{kNB;GcBR(Uy;?_jvjKbZ_%CpFGQ9)`v;=>Oz;*+pwE`i@Lvaf%x04uijsh zn5gY4Z6lDkQHDG9Jpbh@k@wQ|Ux#`q7cIJT?)uX8H~!^RAGWt%(Yw9R-~s8MMWzP=>2c;okpiLGIb zj=W;K@^+OO7z#_TpO~;h>0E8u-Y2emV%J>hx%K_=^Q!ydO|v4)4fT^!!!hBB{SJP|YvjL1+H3Rz>@dE&>@z1?R!V^94M{_}Lf zMU|y9oSfR{Pyg6zx{^n`c)9T2Q<83v;`VLd`)IOyp6;i_Gkufo|F;Hg?|&%m^DI`G zZ{jSkcUvE=dEFj!t)f75mrK3Ha{cZ@+nQurR;7NDjEZG@9j_~|AK0hdWS4PvD`n{{7wH~mXPOWVF@r*w)_-UmX7hj06`bV=_ z&*!9eFD)x|5($%BqTL@cx!uH8IDbp;CrQp&ZufsH8r+gaQ!Tet* z7ah@ObW%B`XSMTy>DecLvu?;wjFhaoZ}^*?uoKyUuBw1O!;lR@RisuixPj5ZDY3u!s z{p+VKdJ}Z4V7-D%m3LYw`*o|szZm&19KE;IVcALZ|N9>qA9^le6~z8YYMM)fuB1@= z$$3-b<{jADqt?E0QsTd9a_RG#&Tsjy*R3;0_kg8ywier5Ur$YUrax!)^a|bFarNmG zCSl2++Whh#vrM0H23t?I4PDokvHIJODR#5!AFF%!oV>qpx_0rRP5*aqFm?Q`5c98H zbA#w=9_GK1^XF(z{QmdKi#XldMy_>zcMb))-Ia3m<@~~PU;nb>D=+g4?|LGR&Hlj> z=y}ROQ)Z&Y)Qes$iM>v#4xvoKFXkThnm+rk{m>Blq#T%DnOY~*mGhoUUvC~5Io0Ojxhto3EWZA|=jX&obhu)Md*afjUd%ioKVm}4wBqf*+js&fvOh&zC&nDyYfump z>~ZDo49D#b^Ll^ppBcJi@ei*08{+P(^X^SxNx3dv%-hE9Ud<%_Mq=yhme(hXvZ4Y{ zxV)?2l|0qSk!f?l{gUp*1y+mi%ilZUa_E1_tGs`zM;G{Sy<~XSH7{qw#F$U-BbMCv zc9?d{$#1&z$?0(e}hs0qHSExgEH&BbWBR)ZWl$QeUzuVAYm8^_zD@fA`owyM3iNd-E5M7IWu7 zqt7l1Pb#@{wPmg3#8nF1yc;KZ2!w5VD6mFGVSkX{T9JUCX{R2~4sx1$A;8izW9h*~ zX}t?(DLvTRT;VUus@s*lf2{(`{2g464esAO`a7_!GT%1V=M#5A*qyC&r%Vxj7&h;% za=et@vn;NuzDGCeob?j>n|$=s4w)O}wz8Ahch+(1{;bx2ykc=n{jSTli&)DV)_bm( zW>2xD3lo&?y2|RZuI~{gY-VtP!`epr>voccRa#_9C4(Bi>pG`D*zWn5t zQ|Ip_y#A}$pZDy%+};2UuW5x_4N?y-i_l-UWp3Xu$raDP?O7SOOy$Fez`KIRJDq)w zeJ;AUsQA%lg-dj!HyHV`Smp9jQ1D?K~cc@UPr#t#W`19@~8s>k~H_zF1 zoaeRo!8du`E1o`f@$Pk;Q2y_9+KaWF8flxBgyvc-+;*kdnI&Svl4wyEv-K}Ws~8MW15zwEw-@2_f_%aIqUA}H-A&B+s6IN ziQ|)kvAyZTvYrT)<(jvPU%Wh<`OP;@{Qvc}{$2;>nurD*uzo1}DAdgA^Vd~2efR3# zTwl#E91+5memZ_l|DOA8?;mJwIL3D7++HPmvq~J^Y-{>qK96eons@i(pU>W;a*gNgu5Zy>J?=f_PSy|&n}51OOYOF@+C;^5 zJ0ERun=@JSLHbjP^|1>kvdnm@^k1(i`1CB()k%@2r@dECdSIxje__PqUSCPUAG)4R0ZIvjX% ze2%5PXymg;M=u%{Ds$!K1h!rK%^AzAaj)=^h3$pAS4@<5v&}kQ{4k48>EAi?yN_n- zTHfBi_`{~{weM;fFKWDGZE#tHFT zWuxz=)pu~R@*71tJsgT{OtF=D! z_H#kkkn>`1r<*-GK5<&=%zX=vGpw>F#nUx`^Xkv-d0?U=TqT}j7xeMcb8Z&5O}CcW@F(dvB+l9>e!*dl z?ak2RX2D_W#)BS=rpD&rUmUU!{Dww1-zKM0Asf z(NE>Y2X`^;?T&fz_^YT+utmb%6V8mP>`{`29hde`-8A{OhVi4G$KMkhV%<&t&FtCp zE>_fK-i8f(ivQgWxl^vb!P+U8~CUHyL)r<=4o3P4t;p2b#Kyl zF-x2M?>8=felKCZyS&=xOxcBd-<@r?h>8+ppOw$_Sta|%$@uIkdhJ)u<^{$antNjD zW0^1Sgbk*V( z+rRk@F1#gnuev#-szeR6U#!mN}oH=+)&f@Tqo3=GNogW_?eax&3^}4GsigTauSnoyzOE8KcGE8@J|^ zNBv9IkK*$VBykzF{*ryMaZ}COTO8)fZ3TJ{^V^r}aV?OEykO2=+s+_=@?!v3V6%hj zS&sQz_bugm9s4zO*=-(^YAMmn`yzB^O$!Xz=n`_-ar%^cCo3BvUEU4XGgjSpdGU2u z*VUs=93ID9^;{w!OP}rgQPFa@SM1{ZExxk_=QeUn>t8P5D4a1z&uqaZ$C%CK3s*C6 zDe2A5O>6!7^WKFRWuBO{O;SF4O3sI`T{@j>50{JPY{zJJo5Rv~zKEt5n!Inc%m@hD z`{`%R+x8!U_UjKze+iGW`#sNi=?hMU{pH(=JgwmXW!lnVLame$%0;eEmeP$ z_?Uli38czAd|@QT8&qk%|JGLfR>|;d=VewV=U(jp^=EE>Uj26c687c4F5dL^FOprj z$LR2Le=9f7**qCLmPGH3NlDC4dyv&A{=$OSuF!Ucnybj<^Vf~<7=&;N7^Q5IeDFhW zoi)p+_jMDtxSL0|pJwxXVQ21?^80Ibk?`J+3Y87p-x&!oII*VfRMDzytiKT68&k6G zqUO?%sb+j7hXvoxvooKTcm9){r0MkE#{~~p?zWww*vPdcB$lNlQoi(5Lzrr{UeWi4 zMG77d!y4*NcU&uu@>Z>o`LcY*#asH{FLTLEJ(Mf+Cn{-Es#bf-8||6OH<{&LNj^SM z)t-G}@=N=kN!gMqyU!OqIy*DwpV$ZgxHA`b@#ajDdA4**u8DvCqb}bLnVQf2!hRRj zc`G;^wzRLH#avdy7%wahUd)JxfpIbEWCSDQKV$Yo%t2Ii>#iuNopLu zp?o~VkMY&%6PBmKEuw(b~ZK=rtq8Hw}Y%~q@ zN?U$-hkMU%);({oZSS8f%hAKe{r0Qe+E&p$MO?ETXNk4ucc;F(cy2}jf0N_V+PbGH zrk^fs6W{FBb7*x7e?Y0=g!{5rcZxgL9wR*1ru+yEr*kN+_2f zYZfdWXChGOtS}xjm?v5x-FM&d09zVG7aFW~Y`q8Eh;o zy8J;vJ7&Y1UAsPWcJA|c+x&Xo?Dvks8R9K1$;XVRt!6aKnX)JA`JR22r&2yW3toH3 z&uQwz%GA_C)qg1gEBKq0HeK}iU3Y3u>il=YiYd&TE?qZVvL4@1jGJZMc4ec6qv{v0 z#uZ{dF<$BWGaqGaRr|V+@qPZkEKW^du|=-4IUhza71c1Nch)G|L*TYrv?InO*gBeQpnX8GSf_kR|dJJ#JVbvVhB zrT5}P%D-Kg`yF@B`q*62QFZG4`Ls_5TA4r3IOp%rbzVZKTkoS#Y1Svvf*GnjtkVOP z6Rs|ZP4vqtTyLp#_x#iPeg@kU6<^p7xiilTc-;T1K*%RykNW2<)#X#yEx6(L>p^c< zm~6JgC)ssI{hxPj=~`gBY3-@*!=Y|jtHlGq{@yiV{i!65DfLrNDM+to+&$@${G(X{ zCttPb9jrc9o;$ts`0sqnz2WY{qt* z8yA-Eb$6(BX1VhJyA1m+Msa=hV%-mK(vE-TvYh?xi`@&0lItAj+m`)S+2^GuS0Zz1 z!kRMnuCL4DZZ*o7M_1M!@tGDl`A*$z<=e$7^LfAg{mS`ydxU5yTj9i*NniT>f9g*+ z6;5(KP!_d7ZkMM^u(Hjh*XwfT^oLsulrA$^X~7cF^DFVmwfj{!O7lCK6|ZPDJYBnF zL2_M0y>Qgt_qPtY|EoH3T3h&YqwLAh=@*99?)_}BN|0&oo;_7l79LnVp@BW5Y~AOLubF-Pbn_dT zIoz5Sp*upHmS(vB4USj2V{Fj`;)CUD^A`DkU|39_xcj=h@ zsMzJ|_f8qPdNaWdi%#C_bDDpb#hpduzQlDC=Kip!)v|x`&ZdhWQDI*FA$gyHA>#*O zanBPE=EjIUf1+G^itR|AypFM|Xh-gOl~oJg={rhi$@~7&v3cdLurTB1ek~c#*;W#U z6>GWb4!*XPQDWV(=(F}cv7N%j7GdAkOj@40{Ku>5_O}X;HF5L`w5lJFFpt_TB+|E8 zevwsLf%4T=+ul4-{k+_Er|ao#_0y3ngr-k;X#TIH|El5Z%P&t=eof-C3OmXaFmYi} zr252&R}&kzq)RqWN^h}YXf}4tQ}K}~*(#cU?9If+IPqyYuN{kb$Z^(Ox^!K=y~V4$ z>V8+76hohOp@Y?XW0{;txAo0aG7g$efSL*$Br<`S0HrtZYuJcFiuXpZ|DUn{f{#^2uH8xk6Govbn z9GE5SWZ(9LE|tHyuri|mVbi0pvpTs~%ywl7&#Yn&PwV{(n@oG zb0VgQL%92V@4r327A-Yrbc;A;U2PwqW@qPUaG~Iw>j#%df8RY?@y*OheBEogysF-$ z>XNT1N6o^z;$9jU=$7}yCoJ!)|JE|uG1lzYcH8NKBxVzExTATSIL9(e&@FMt=#CN^!LJE)7hq8`|G$^IK!jc z1o+dk&Ru+c=@g2kD)-u|6ru;Rv{h=_wFsbaQu6DqA8XM8GfKdu`5*tErOCI#Tk@7#ITyyx@RLgTkc{gr| zG+6uX&n;Kk{rHJ-DtFMcxM{W5Yxag@y1 z!JPL)*srKTBK}=aGlQWL!?)!=ub5rrH+3AoCu92R1Jln_Hs&eu0AbqcS3tDfg#;_p0l%4YTI=A-G&nv-&pG9#lU zI2#VU{_#O;jtCGDOMd~;%GfL>i37+kJqQ9}dG)y;OX7sK7DmoU|S0>DzV_0o@ z>sjiyna*0D!j35|4ZnZ)&-M7_{SzkHwW>tz{&G2M#@=N9Z^x1++>v$sdj6)`zIvIr z+b&DFa4>CiY_a|;6LfXWoh|;0Bz9=5QeoK9aCh~q8OL_d>-ev#>ez_3EA=+oV6gjseNE^XXa_wTK7 zRdbZa!7Wx?K^C4XpTE-bc+IJm%q}VXU-aw+&4aHPWFPrx`yHR9R-t<^Ztu2#3;uUB zTekgUyE-Sg?j6_5>dX%(C+wY(Wo*#5w92a$+FU%X}w0v}y;BqC+5IxGT6#@b(Ae-T&!+fO zm%D$Ni#ahnpG@>V;?gzuc6J)qi$5Czr=}c!rf?-W+~Q@fZ((30*D>y<WsXpV5N!qMUM~}vNR4%rOeJd=WUQwKso>ftz)_d^OuZq71 zuV|F6=u=}_`QVS)?EAV!0WYtg^|Cw>`(weap9U%H57l!LLtcbvJQ6!(>g#+oXx4|R z_CW!6rT6gMsh%kRu;t&5m9Y^a2cq)!{%&^8%-XvxynI=ckkz#HRxOJBPvtj9m>=24 zvXlGW+TL{Q7w6J7pc1!MjI2!B!Hpl%F1;SFT0Y z_%^4o?Njz)W1Str$SeBo34f&1vlDq-Pk&$hek9<+bF1Ulw@y!UIa58?IYThxy_68& z$yIN-=kI*=Z_c@vkf{M5!w$LLjM$SD8hvhk(9h%5){D-p(*5@9c9OF0?>QgO&f{#@ zQtka{epUaX+A|7YmMUz#q*eLkLRaLW-dok`*DX`r|0qZ^DYWa%Tzi|xYggx+^dC(T zI$Rg;$$s50cI#l?aiew#hsVox%@R_V?9rFHJnin|%IN}|?IYfNnIuu0^*nHG$;ky^A3w6ax0V2z3g1tIgADFK*rM5o(t@bBB zMBcV4UuzB5zUuc}o-*e3jHr!2OrjVf7UPd$vLSwZFA!01-;6G!)XwYg^hYOkB?x%yGtLsss?3nP}wvy>OkY-iS5ks0mh>9~-~ zW!dh0(et;yt=A7eBlO`{N>#k;Rhe?8%N zbEzhx+jaZli@P;)cU;rl)iCWU&znaUo0FdBDh2k4AJp6Y``)bD8GUbbCkwt@D4G09 zA}nm)>&Fk?ncb}Y-}p%I?EGGC*WxIHuUTuKJmJc&jNae=@b}ZZX_~gJ0)@|P7Fsqk zG~b$OcId#WX9EB1-*7#3)~Gx+J6^7Q>K%oL+>@`de?BeQZXI^9eJ4 zSrflMZldXz{~JqQI&;~po@L?1=$~%aW<`rU*d?*5uW@HdUV~|aT;+owk?%h4Vegf^ z(0K9b^IHzKN&my1?-v*5y)GuYJm$vMFITrb>lN^SIwP=vdFQHIA5{)~^|N9)nk>RE zVRUlh8s1ow3zhfXHWkJE{r0!-U-i@FM+4@_t`M;)o8u81)w^J?^Cz3yuVIH`J8RZX zm)&fru=nQ=SvG+aVmsyu?EmtVeU%8WWbYGKFSoSX13dS3HHn`4@qF2aOA(ekE`8E_ zkZ4$t6}F>0?MqBvYxZWX>C?BC?%ZEw`f`iF{rNxRO4l&1)jsy?vqax!-r!dqKC_nh z$b2lk)4aLthw|=!&#Ob<3Dk2-|0l-f*b#wc2D8h`|r`?&^gsctBOB-6+UhD ze}ey!a|s=D1=x=7Nm{0RV?!OYROt)G#L1GiRkr3`NfT$P{Pk&@QP>?`^pp7qa}ZNZ z(cftTD^0F9>hWLA35h?Qx#7maY#vFY8=t2Nuylp^pGjjn+`KEWHYLBI>Qw#J%;TnO zH?>N?YuWJmp<7AtRHI1Yw<)1^MMuXze{OBNkJkew}XRVHwP z=cMk#({JU!eJ%fV;zfoS`9m*nuJPXeapjvk*AAo_N9w+|l%C zLff?4r)_&U_k6ix^po+l=8=;=asMAlO4Mw*(fmKoIHd5@vu?S*Z)&ehb4%P4R_!W& z%wUo5>6}u&XxDdbw7A}2h;@n*%{Ps=GUgy^9izbR0@-4kq_h|a^Lggt--O3%#Tv}GP z|G!tlZr3?Ra&Jw{w{5t?Ab;#&RlC$}+3OCgrg(&DoLl2|xxmw{*DFkLt>J`BIYHK1 z`P=KH^>=ae^|wZhkRkrL}yRq|--WgBV$n?I+ z=d)`To?foNeooc-(vf$+PO$3eOLjVFtGzGnyu-dN|I&mrTCyAeZQlQ9&hOfm?zqX0 z&y=VB5}SH>e(o#-F6q{Fk_WgFE?oF0*0qVtJomepT2YSFtch)18D7;>4b2RTC;7X) zpDgj|%rS23lK}@iPAuyPWxOK2e$)IuiN3u;Ne&0^OrH|4FF9%P9FusFvloMnGwZZm zYQ2p1URF34wzo^jsayYb-ag4Cr#gdA58MNQ*YzzHUE!@zntC4s4*Q12` zN%02)GZ>xbXZ`fPtuK=5WFHxuE4xiZFZ1!79VfY7qzZ-yO;l?Noc()S*ITC!Ti@_I zU*9i@jZqap;wPkTn_BHWHF4Wp=WQwfv_y9IuK#~$_G8n$vr)AhIUoL*T>QqSt@G&O zdO81Mcek!Wp@ZAMT8ho*SQzZ)7-PoobpM<`!vnVBEe21*{$EKCQj>Mtz!+$I`K!fGGbUm)}Gt1aul6DD&Oh&}Bq=8^4sB0V$a z(cPtwH_BG$@hR=>JAG?)OO~8iGfP%_QuvFw@XbrNW-sN*TQG5gMElCe8TomcdkWW` z+B!+tLrIva(}S};CU$!b+sWr;_pPeF&VA+~mHuIC&-Xg}7jEBpPhS5o9l!GOfA!sY z%sy*=%y@fD!7)qLL+JDo53Vb2K5IS2-+L`c@0fTmTjj&ll+BA7D=uXJ37N|GrlC(m z#PCa-h0xEcE0R)7zv>Pi6u)AYrun)uxc=|qXBo#7oKC#iDJu{$%jwlF-YLhl&5y5t z&ZItjbMyn=yi%UT=V46WuW^~#8Gh}0cG^2l^-`0elbM2J)`>cX)0>gPd!~(MNkLg$l#pIdYtG z`=s@3LrAWbRag0Q9wBKf1xLC6rkl=x<^H0(N?q%~uEK!W7i;6Dy*^xgdv)La!cE63 zJ>r|coK$_@l+foEQhrZ+QhI{LLOCPcE9+(b4Bi_@!f)y1XdF6r_V}9*KbCwb zi#jxCMW#h`FtQq~U+P5mLR)2g)g0oW6n{CddT^yXdJ}utd8}ab0)T-OB z*sh%niOW=|eI(BRIPINk{i~qpP?0m~QD2kwW3-!0uvcby?DJIr zZ$2i!f9=beU?{c6Q@zw|kJ*D|@tT1w2CQtm_84rM-LDe!)SRp&0t-VDYQi;_~C-D5r0*W@_6Mk?$fGNZAj=lZBv&o zS9zc~FD)`KOM4{KbUyp zSjMNa^!o<D0`*0Z0@tM!E()0ci?o7dT);+CHL z&rDk4xa7abnn|x-GCJ|y&tp8X^Zn-F4`!!#Y9xGez9af@+UJ0Mm+GWSoYEGp)4jgz z^d#P=;&-f_8gKsn+GhN=`_;O1ff*D3DY>)HOLctY#kE5ET(Z(+i!Tbt{ASgC<34>{ zuQbd~J?Ql`>Flk=2a8v*UXU?de2d}LoR(}2z29~_1l>E7To%k%yvQ?glX7!H%EgUa zD_-0^zfMN%l+D4Ipc@}KH=iq7bi@2voy5wQS6e^1@Xa`5dQvHH&hr%tRabYXSLbOf z#c0U%UEjl~<6vTY<%WQw)czuO8ADnA2dNQzggGrVO$z-x``5@Db{yzdEZrQYpn3Y} z!8M0F6EE35`cu*x?-#1Y5!}f%Pr=ai(?ZugwbkVj(kh4fd*8lf_1{_$CL}avn(WCL z*S^H={?+$7ugzxqya&p)4|Y1Shr0dT*p&4^f?=lZBaR~#DosUSHf5V`d@Ay7A? zRX)FdNEF%a%)q5 zBCE}G+34s`-plD{nV(I2$(MY7qtf)^N&YI5fmiRgHzfYbdGBjnZ25i`^HL>OF&){b zwHGaqRs5J%nkemDcFCf~(M|u^YTm%h&kMKwaJsZP|Jg&M$mEJZg-aRSEAxNvJY}ta z=Ge^7*DRLjeOSAnQGOO*`CpxEpZ5=)zOC5R<|}S;K3B-MTXrk&&t>nVr!4w@z{5Wv z^5TXxMae^Et|AKm+-lY@3yMqkkH0TwbjjDeVbzv-ZJR#bnUa-MviFE$m282ok4y4G z&!R_DU+eB(J3Fh=Snx*pWA$*x@2ar#+rrSw1isw<{33*ty5Y!eRab2Dc3mMPCxJJSIphS zbkEGSHuvTJ!&~R_E7ZC7O%}XxYFbHIhB(Ux)l8n3H)P*Mez3XzDw#<<`^prV1vT*u zsnymm_I>HQrOAJ}qUN+_Mo8CGpJk<9C)4+S7xjMb`(zsHgJ9tYSDd$q&3e@Q)+GHIX zscKJVY@B^9cH6_`Z|zbingY9in0?}yDstP^{_MG1Qw8>(VJ~}KYPnWu!9RvATb55L znO`tf?qRrrbJel=pLff?TU900kSvg{Z=dMTGsWQVqK9)TXH*&1|GzNr{Ds6BTXh>B z^!_@$I>_`pcp!_-;(-j*%=e|1t+;k=rfFQ?L; z-kU4XzxCyWSE630x9qb>TJ<#VgiW%V)|*(#^EJPE7GFCS@3%Up?-Wv(T!p#S)^v#)$HmN(JL@ZV6|97wVRuq&JJ#i!Lyw`chtaO39&l?R6SS?QcGb!4ABa47Z zX;aC`=~1(J^iw+0>JJ}Kk6K>tcuzuO$|?61(b;#mC4ZW|+h)(&|F5@exwSHVa(VJi zFn#CD*vOwftQ7&womQ76POb2GlO9rG*tJnkr10a^y@DI27#)+Z{UYO+?LO;tN7#F- zJD=a3YvShk_|v>5?AwOx6Cy4In_c3p%&0zIJbl9I&r3z6r#k$uR*=xS`)t~=t&R)j zje5nH`3f$uuUaJfYT~XLv9(uLzw1lizI*QkYg1{S1JYYAZsT}cSLv_)COlzTMt+Oa z&BEACY5SL`$~x+=S@NWn%lbm_2^O(CI`KzlIo)wu^OZe)(G%JIi$8Qsl3mel85kCq zvv`m3<+vpUX2uyWoF^-HB+WiK{a|xW1lUz`%-<3oYZjvmxEhX;yhJ1sXtiO@mk|@?B1w_`+Hat1GpKCB}GpK z-fU0pO?`0EHIn0a{UsBZ6+N|jW+EfQt*^Sy z{=(uI`G8O>J?WkH+;hGOWrgxi4ZPD5(PUwMjB#0o%f4%p{c{Wt+XXe0MPGqU?F+9saxC;8b54!@uQ+(4=!m z0(F`^9J8%Lc(pcWHqJ=BXYuX|gX6qa-;cSj54GONWZ3bFv9h|_p;Bt^=IPs#lMVM; za?gy~Q!(?$t`)t<6PFhs?{%?t&H6C?RcO`jyI&Y;&pWukbkF?F)tkHFNw4AkNc(nQ zy?MEJZ^}qLN#Beyy?O%)*qzxpO?DoJ>~lo_)wJmTUe&aVv1XUMcWpJEb^3qcg&P4rZO5nITpYD5!G%>wzv*+| z+@DXym{ngK%{F>-dk0^=qqD9`$SV^bXAySOIeIU&?H>j&k__zJUDMrE!^AVYtbg?@ zc@Gms-H9*itryD}Eu55f^0G{Mu)~Kt*AnjKeh7MNf9e0~8V$y-RIQtQP19XV0`M7q~V+NSCL*$p~ta*E0}JI?Yx zerLf3NspT=q7G^Wem^RaP^$NBR-CqS-~)ya6T;4?wHl>aB=m35a4=iDcFy5hO?wkp z{@dB^Jj2Sm``yHyho7$g>-2hWwDmF7&8Jpw%CNFj$&_()n0?R7|HV7iPs?t1S=klr z`gTU0J6b43nl-+s^GKAb@lj3h#x?6@w=|noM6BLmlcX(V%A9gzu{!5Zwe0H}YiGP= z^IjN~x8nZmiwjQgtDUl-=49eB&iiW*tqZ+;FU)^0pUDhWNuPsK-(tS2+RXkmZBGj0 z!))1wyO(A4y}GHY+oZoOS2|11ltp58MV#TAjf6Dh zj~`X(Xt8rSlo=M+(!kM@T^h98Gc!JY>(tX7t~Yy)?j|NYG%=W~_)C4cn7~!0E9E~b zJ_KdXTeiNe<<5yK?h)6FlwU_*-xOALWI@8qn8Q1#6yNQsUD@~9^yK-cN?*n1w->Ec zmGFPc!LI#j!$Tz&rHZw|=acf+)<#sDsIr+(P|mNBtyVo0`ejdAG}Gr=#&5r}@)j?b zvq^CL?z)@f%f8A2lfT=ZDO<}jZQ2s>|6aH zuT6f_@6E!T>pth4Vl~>bQf$%17hcJa-pyLHN9=&)+d>^9*$ctp%I3yxCaX8CWtesF zOV~>8`;N2BE^cSo#GGQj^xr(4q^${Gf2arLFI9{@DD;!7gnz?Cm596jC%RLAT}dpP z=5*Cy_d*|))4i`Vl#Wi*J9BW6tyNOO?|Z2yICSOnzbUU@T;{Ue$djkbUrqm|%(cb>Ozn@?sR|Q6B;U8Q6WrD* z7jSjzGy~-pm4y%dcNO1rOM7rH{QL9^yCh#0vVLp%t?YOD_sa{X$`7yE#Z`QtamA(J z>zUbd_hJuxwX%4$YI)-B{^lKPQtkIn7H6FN_QfN)j%Eq=pW8dy()+UFttT>um9AM` z{Q6hrv;NRXfjjGRE%H<4zMF)_D!e_$XZp@*+i9`c(?q2CjyzoX&*A&7pcw+`Tf<_T zr}xInaP;op)xO~Hw;z$&6HRAH=%yZA7_ul*Ic@fgi7gCg7N0s8tazmM1fTDDT@N?q z3pa0^`k?l|>Cd-=@0JOAbZcgM@b6qE$~r^T?CkZg9!@*Mj2L`u3O01Dm0`WNvHk0x zrC09UJ>U^N@$uEDqVTEwYZvabHCkfu;lJ39?OV2IS?riO_ss#3ZbskdLW`^wjtkA1 zW_%%J+X<`1@{V1JL8-h=%A5L%GK_aESvNoGN{w*OUL7HZX_I#({VZ9b*ERiKy{7OD z$2}pBx7}Q^WmlTS;dswqE3C7Xcv4e$*?zT+Pv()?w$5+2((glp+Gn5zm zPY#yOzL*^^wPnil_nvl+&8s%$M1)BkTTzmbvv$w@EAMxFx>;o5AY~~&iI-`@@>_mg z#(n?Ks`wm=o`1FWYhhN3viu?u-s=($zt>utHrW1++3+W~d$p}R&&kvnzx}+s&KXV7 z`K0i@KSj^se^yTa_Jz#p*WEs=FOdoRVB2ul)^f^G&ayc@NwHB%+n=$X|0^sTAi0_K z0^fWHP%lQSbBa%)=u4_XfYn$!(HexZvf9%FLsyaa7{o;jOIl-uRHo5YrmpIat}gngEo_`z<={2=vRGrer@I<$43 z_li*4c0H>yROseuX^!rzYFuwqId(iaNGG1uPTd0VXC7gYaJukT%# zjP#0{cT5%mqD7`nzg=#5%Kt9<(#SnOtt45LEjLEPuE&5QmD%rGfs4vvscf z5}2Wp_O?THS&?Jgy9Ch>#{G`0Mf?p}{L|MR5IlG@#{WU!MUHEtlD7=!#7c$KtPc6R zY4sU3;gXZN!Dmt)2Ndd@_1$7x>ne0QLF>bm>{%zd9v)SXUwa_<&9107ds7`W_sveu z?cTh66Vw0o!Eb~&)`;d6i_M*~Ywbza?}EF(*5}!|a`;Z1{N~pd=e6OI$Ahyzt#^6V zxTvsR+|oQW>-SpO6O5l1dH6_gbGx-P(?|8PqII~2N6eOg9D2)cOen1PeCLqJESdf3 zbE|9h!8~o&ilDSGu87aOy+Z7_&%5&~rajAZdPKCKS8P#Hi|h6&SuEb33{wLCwdnpY zEF(U z`bwInCMJL0CbGF(=#1Xh+2>ci&th;ixwDt=J?jdOsq7Q%qSHT^+}tBA|C{qGchJwg zr%?f~|4kRT-?H_=$9u20ZJog$DRWS?nAc`oluV}V?E}Ikwfi>l$7J~5nbDsfw5B^F zOj3$Zs!;P!qC!E8>6QGWT9dAd+Mf9{Z(43bwdM7%ukD;pRK#p~#9r~~-=@1c8BVF3 z8CUmj+q~SzddeolEw8Rk^pd|6{qUyfOFhv&?YVcvWxdHJ1r#}rNXYo$rf*mHgJ z#RMzm*{O%4Rl747ICuj$ZC=?|!Ccz)wpDHKx1^YrZi}75ue!(g>G`d``K{n$OH1&f z*+s`zPUe*K`5AfQqx`f3mn80_ufHbOHvizXj%!ZOGCBp9e16$u`|`DhulwpLUwcdY z4Aoy|O{>yj_uaape}Pj4*KKdz`bnGlrRHq&SG9gwaqD94n@YdSO-EH<2puS>es$Gl zF7rj-ct=^g=08nV(k(AnFD>1um-XLHL8Plvo@;WX*GXfiV`l5MxcEhT*1Y1GFylj5 zTEE`Cy(iC1<$rBlr(+jrsT2H~ zaa+vBb-!1w{^{q#SiSGohwoDw9ptX1+h2&Cb8*)GxZq#6iW|NvRG#QuwLa={w%YGw z&42!etexNQ6}t6Jnq|=EB}?otMlMbKyfdh|{N)8^^G}X$9l>YsG|e)K3o=cQx@rGu z^XJ6@tom~@9Cqm!BrO5fc(GB5SN$Y!ws#tS9W4=-H(^F{LZ3saS53M5JYJX~9G zNFw&}i~J@=KmA9qKcAU)!#lckx$+LfC)2_$Vz>QX_F`)LUd~w`B6k+uKI(Wakn#25 zi_iZ)WmH`5zp|?I^^b{{(yUJN@2LG~(y_bc^jr5=;fvqBzP{smeAL$^0oUZWm7YIY z`b(uD)P+g!rE$WH=}NzjZrT~)zc65jgELbpr_F^9Wg+hw50~q!ZB(cVkKR3X_W@_8 zM*qE+%#QnU^zXZGYwc_Fu;@U`ne7dei%KN6PqB|yar!wwc%eP)F`PrnfKp``->+Jo+s7qT4{Nj90%4iBP2uYsmd+_Q@ zYom~CwF2v}h3!*xf)6}ja+z1Y@$TP4+ROa6@h8`Fcg#F{al6Q#kSz_t@<;tse|McY zDN+|xcgCf%AnXVGHZT9awB5d|&t#rBzVKX}i=Fe@kY~r67}Gqyd)}A&{`KLrN%rOs zEIx4riQL^BxF#>`TbPwewRXi_uB;EHqDe-=O-EVxJWlp_6>yo4f6GiEkF3+2c_$Zq z_gv$1fSpD#1-{n`8T?*i*vN-1gF zO7(ZoJSr5In)v(H`HOxp6(WSx3VTz^7|pdrTn{$d5=aapDX>~_t($!Yu=j7 zoENKe{4^FQ7+zRuIsg8}Q_ob~ELoHE&xOnmDed*q5s+J#^8ELt_uemla{Zjp7`XA%&s=g|&Qn!LsL9B+cC7bGvA2#;rB8 zCtcyLkb6=i+hY1b^?i7^>LlY!7Z{?&-#iM6d%Us5a0hqCvGwLI`+jA8ZVR0epTm_Z zt#JLV&i&jk28@+Xffoe&=C2n2Fj;Pr*Q1@)r{4T+KN3CX(`NG!nWL8#WpwnG39)?& zNskP>Gv6dKYPkaQhP9$XS&s`&T(MlTMP_nn!jA_BCskV5r$6|>%ffnkMf55CgSFW) z&v;ge)R?dMBAj^5-}9aQGQpDuvzg>uPO|SUI$TwJe&gB?ljXGCBZRJ9$bPj>K1e)f z-<^E!j59phoKX#18v@+wIAhix=^DD7o8R`ycsK@$2%a zQ>VD!-v97y&h;-!Gj>k+R3h5bI&({}jIUFf?yI2LqAn$;UY=et(JVfr^|0S}k;QzT zkB^_YHB0nrqLkM=n;^F>2V|_PeFBc8xN#Rv+kR=&FO4S?XFPf&FqI+j_Pfo&cDYZ^ z<(OXo@yl)I!}KMNGgGC0uQqP5@Cr8L**}Nrj$r>Eg`VEjQ;7$gm=@H|eemCcJ>ph? zO4|0EPNm)YYbujCURlVvL^bivyA`QFLGoOjRQRW}?sG+>+kW)Ueadjg;meNWiOZRP zU%YoiPu+Ogp@PDe7k_u_?J@{k#nqC#-1|$;Rht?6)A#TGezLiDuhBiRsY0G}su}o= z`^||t? zQG1%)r{}*qlYY0StQTXlEfPI09kjag&~-KUG`A~aTKlz=Ry8JNPJ8n{fBn7nuFOt< z4n{C^IoT(P9&dI(^8dKK1zT~l^zZND&rGL^6xtbtyH4+%Z{zpVqVbM8LzLBJUL$Aa zP0Y0s>UOv6*kezwUE(iSSn$U!Iqj>K{mdmRR<3Y*V9ro1)_?te-VdhwtH-9UyBi!C zch(_phI4A)@k90#Uc0*Ql4|c@%%0&@etUV(+q%ry;?K`+&NTU2z%88ga?PcGQ*5#{ zCmdYA*G={4H>=gEQ@GmNuJ|tT3!PkV>6vHLcjBq#Tf5$!lP(;-{?eDzd;}zE=wgYWn zE*zB7G@iS_+oRLg|Cvcf_&<@UOIVng(l4Fl&=oY*X?`{1i8E);;VKTHn9Ze!j~?7N zr}e{=ouSpHf-1?oN^h6B-?B;;R+o5kwa$>;aSiihh6&U5T21;%xFf8Vo@%@3Vra!37wyYJkcjQ92Wwb%VOIBEa7{$!!rCo}D{ z(P4?Jr-pl;4?8?nnUTHY!r?BF_3xz3|G$e5{dRB9tJ&6JEVF0Ux0l#4Gr3q?6}Y;~ z=mmf4(>20Z8hC;|`goo_xF7yu^4chC4P`NLMR92*&D{1td$a(b7vAchM2z`3GEj9ICR?E5V z-j5;~FE%M%PWr8FRUN3GTQmK8^RHybqc;_&UNKL*qWteh%I4V@SPR20tN%Z7{n?An zAC)r8mg#kF`_Rv7A^k?g#M1LRbK~^iVY`>jcVbMGxMaROqv>^GkjC3bua-@GyQ}*S z^R9UFwTs;Di`dRlSt|V5@50o?d;d&&a!#M~QCRcb_{yWr746^Zf~y1nC2aIj>6?G+ zsFjjy*q6OGJdV9}W_`_RdhzTgKv;R6lZ=l*EDIJ(T*(l?+cxEq=O++qqV}eYDe9r$yww5jT^;gFfqLO-Y~cK2GB9o2qaL@6xE}?RYy%dm zy%M==(Z5~drwn^d?jb+XtwFDLaUQ!TFK@3B{BYAmXBoCbuNg8f)vub=^)RP=@$nCW zKdf>#TxF5BIurgUv)=sGziO2OopXD)ty#3w#`yi;gWStZ%|Ge)sO_3LWy`n4Z)&}# z%bm-wc-yM~UE#?~RfA%U1Zf-XW%rj$U69c}9{tH-af?=##O!Rv2c=85Z2PtJ|Ep@P zs){K)r=Moupz!p&=}Z}u+TAf+?^;eoZjs2l(7RjuMEC9DzIiETy$0`Qn*WUqJ>~mI z-nfV zE4`aH+9oMDd|7aCbMDbwJ{i``jQynwyJplUxPJe^A|G1VpZEVx*GrSN?SXf6jCJ=e z+91ir^5kO%zu+rP|7*$~y5bk?e2P>bY&Jgr>f%X}Tbxt++|qmlm?h)bXWIn#9^b&d z^35Z~s^2XeqU2K!f2%*bZ93*#fH#`yb}7opEnQCF}Zoia(#S{QF>hT<@hU z)8hJnS=*HO?kskY&8~I(`M>qQg_xtq!PGT(YkxP&2qrX$vZ(IL_d0a(*zMb$1)i&x zopRnVWyK_k6EBa!l&wDKc}A&Uj0MS{KCEGZ<@vRilyYHoDwjHb zWN^r|^?&}m@;D~8wQeh#-VrWndF|1uoaTeiCfDtLWX*ZoSYeMHcSMJ={(oty8TpE5 z%%&_a`kgo9;XSLzN4GnaOGcaUKYcUpn(3LqjlQc^Oxm3L?V|I^`3tYU%S^p}v&^`9 z%{P&~j>0=DRp$rRep!~U+ZsG+LK2tewVg^6IKNHOTVHA7EZAS6xnA69vyotoBG3G< zT&(M)dOB2#mahDeaD;Q0Qh#s6MoIb2=j8qe{{4~O`n-)@D|L(LCne*$QmscjbeFB+ zstC5u_4?1(xb&0zRrWo9YHuBJnP8}FAd=e1DWSQ1qk_Cyep{^7K2D7#;$3_i>hrqT zzZ8ZP&pCE^(pA}W(wRl&N4$JH@4YLKQqu8Uz`u*@#Cx`{-y-a;w(Xg`-0e<{k;luM z$+h;cb!20|J#oKyFpMYhV5{&3%isQ!ip`oQx-PN2c65X5-Oqx3eKX54Hb*S0tkkI4 z>&2E%5IDEG;LW^^j(=88T_qdtTrd6Q zZTlp-b+;ZTRPu$|p199tzz zJg4QiU2|If(`6SOV|>F-%e-SfZQ`RH)bz{yK7SVFK zKWguIV|G2)-It`Pa8q^jvPC8O+)sNe8b8dw@O6iB;``D=b30c(i<&tn=-~S0^FQ*3 zTdle+CVzXOVbzA?cjIJ2l#C|Mp2G2kFKTj>>SKr74{r)^wrep93qw}#m;R>kRF3~dP(sQ?jTPJvFa7GMj+$w> zQ1{*9|Es@0zF;)>+WziapZcVjYJdE?5csdLCbg>LYaF-E?Njkho0)aKm!7@xH1AD^ z$;A`@>R&u4TJT@++t%Ojb_<-}DY0AKT_j@O#ycrS^srTs`EXziu&h!f2o`ddJ$5Ww!2(RSgprG(8V<%`Ry?&dpSpAmiVRr z%j9lw{l5HsciH;Pg=x>alI0G&S#K_Gb=kGI-$Q)9`?UF=UmD)6dwo%={8;?o|Cx>@ z*WMrS?bTVVCZW4ZQH>a#Xhjq@X;*b8n z|2TK9T_+o+zROWXZ0FuZh8_aD>JH49adsWE!1Rb03CtJjnHE*IZT#2%c-qP@2h=7s zXgDOufB0c@N?WRXmFUah-TT!NlP6b8V12Ti zUlsG^focH5{lbULH?2=PU(MSS9kp;)XXD8wAcN?*CrtWKq>9 z*tEp7%e-~zyc^cP*{^i$iz;5~WuY9Kcc)l0b}dVrn})|k?SeN<-}f7?QL?qMf6nnh z-Knak>h+?`nNJj^U-`$M=kP*s)7rx0x^w5x*zA5Vt!Mq3HS#9BT2kvDuRS;Qw(MRm zp?-n(UxiAnr_S6v9ILl{%kqk?>jGc0-8#Ef_TJj6u7q31+YYoC$V|DEt8mD6!@adt zp*dUP1@E|SkzhQ&LAHeR(j38sA7bJ+3Dh$vwS4sWpt@II+dPPEi&UW+kIU!j?1voG zmM>@XU#b06V}if9PF?W#H_3M8=k0w0#rJ&Pd#Sdf=Eh-<$@LYCyE!KO_9&>?cXaW_ zi>z$!fknj@NGjZESm&-~PC>`H%N=yDQh3G!(zAI4`?t z{-J~7$q$O%cfCp8b!?U9vv=lqr?OZcjj7%w@Z$RFgr(b4N?zUg8NzOJV8%iof%5`- z9=}#!OfKEw>+NV)Qa3&S#PtXIk8g|Xh^}t_qAZ^}Sz2teyYrOeLgCL&&kL;mZ=;`O zq_<#uXZflloXM6K?mk+=T#{N)I<&Soh@vKD}4eSh`lbt3>7n>b_a`5H@=PH%d z7{TJz3=54@uFMqq@FL>$;haLP;^wakS@IEzHLrjEw-e?+`eDcRN>M(=b-xu&1hUTS zpL(@WX`}kF|559i!nDpGu*|yHB6_5YL%%~R@JA7Fn^{2Sh;aJHT<*s(N{tAl@TIyu_Mz)@G=@iNPxm>=# z$Aq8PSHfQkFj|Z5zIair(Z+Augfp+y0%C;HeY)$nGM!MLxzgyUW57Pfe~15u z%f3Cr66d<(lTgtU;R&;}LMC)qa)ib_+aB0iz_oDKJK3;+qRHKzMUVbutW|%y^YEP$ zM|M3bTci0;R?;D3HWQ=MlAb7~>~`z@joxWdzXF%LYi)3L&Z;hcxPEDVz1qUhX|F7I zAI!d$&&Vjg{LM~#ftNQ^bQu4}^g7!WuPLyf_SLr8PUX0&(d&y6U$nz^3x8`8V@nB- zV>mw{fhSl(s`-@b{~6sWtqtEir|mnVa;wJc_VnNC#il!UEW1(G#8&&puZgS4U0%;{ z;gh;1g})tkO4SEnPc+FmZi3>&FAn++W|;CG|R=718B7KIM7l;^Gu_p@^Cd z_M2YMyYK!WEb60|W26}0K3=!2^{EGpZ=ZV3+5P6so)*m+R_E8P4V$!YbDjR%dqp!k zs`ht2OP+8v^!CmTR}MX0v@9uKwvX@NmaP+3P7~^n%DsKBE>)qRL$_ISAd++rYnGj~@KUa3wFdDj~3KWWbeiu-2##8f9 zmW$I55UJ~GcC*4pI4 zI|r@i>80rtrZIlu4sfdB_AXD}sL#Ky%vJLXii<Sv&c&g{c&GmMYscpOzcYt|aQ z>fOrgimj{<+HHkI|CP4C2yggy@nBctTh&(GSK2R>xK;{hosoNVC)svV(WTpJ3ycoO zOnY+WqTO3*iFew`Z5f|p*Of>1pHKVc;XEhCFJon&PyZ}g9`C7UZtoU;Q2rnwD88oZ z!E^7oAp#*wqE)4uEgtt|XZ=c8A$ivOyqDqX83?H6_ZaNhr8`oVbt?w7BJ zt>1Zv%TKyweue? z`k#FDZG}d|CxL_ZTY@}oYac#J63^f`sq^LBoU~V!62^RQv`hUqq*Yr^O47aiJSFke ziv!mAHNXDfSgBgJ?02cm$0^23B^^#D9bA0YNV0{GbBX!V_lLFW>$TasU4K2ZxVzrx zvqRuaa(P(-#gZ*E?lO@l=!zMJG72j8UUUYVb(%%D8R{W=|ZrWrd ztYsI}GG|l$yW@s`|DJ~yr&r1yOS#WtyEDT__}7j1O8eHEy3RcsnY?iMkLQWELi;WD z@NVCuz;UG3E{ef^!g|+5mn&K4?CGE5C`Gii$d1|G8|AD(hBdwUr{leo>P@YnMxfZGLg$R$W`(D&Ieo zTbv{P4$oZYFB-*WIP=pJ4VgPOe(iD>Z5`{Cm*$6A?otUfy>P5!>HDMAMOmA4uKcQ# zoK~gsxBknym@R+Tf1ekya&LcN;rs?3VWHN87g-)|w%@$7ev`W7fA<*KPU$Do$(Pyd zwp~@}tv<{1Z16w`;wQuCj2E}bqHd|Bjc!2=N%_FHe3T>BvI7Vf$vv}VbMs2$U$#>{Pf zu}tW^<+Fz~J1kfx(Ee(fiQnG+EZiZxE$4-4Ro@#^{(Y@)Zl286|FF`QZJzj!uP3&2 zdCDH%?9L*;_TDp@7mH8tF8dQRoti7Vy zDY#m3S*WbiFSlP$Z>(ss?$-)uTl12~N>JhXOoMAJDwFrG{qyC3!{a5}Z>B46{^jVt zwpld#`Ax5?L({)=>S(D|Etnt5r*}*?_VAZN;XhUFmPHpPTYcGSJ57y8U}cP+y=^V4 zFYB~Vu_3)q8HJrnEuw$iYmTT|=RU|Z{<4jy`}syrCF`;XF9wk%ViWp)eVNoJP@w*F zVey-zxhj8S`XugFKaTyT*I}}t@a|um2$nZucvX7d``{^K#%I^GmBY4xuA z_rJ;d>`WF<;dJedvnLdGo&NMgw*2z>JrX;@3|Nak&ZzmjW@$j6^4XWN(QUi$KHDd6 zf8yEm_FeVeiy4cjMm|b3^?JV3*irvP{L(vT4IWl{CH>~`zHlY)-u1cXR|M}~Ix%(j zie1HP{Ei3g{~Obkvexj_=RI!QbkD?g9X~$F)TJCh!xY$ z|GIQ+)9$=ip*^>x>dF`Pe=je~5&IJ~Nh-icaMIb-BM;7e#j=F*4Bw#~vs1Ew5M^s>S5DH{tpbmw;zS0x#;d6zhGCYF)8a?M`5- zq=mt;F8K#0R&#}ab6os*yxS=ChEA5HbTqqO{NvaAzxG}f4gNXjm(B*?g`2GBO)_7j zx%#0;^uBXBh12%4xPRMbywuyk^vuS(uHGZY8aEc+M$OOYxdF2f(2aK+D#hzHkdZ<}DYCFp;59h;%la_>UynKAi_K6pAj-S)m_U+vH zPM*L8m!2Nmb1cc!W}nnlrsZiD9E|6O1-y=oHocxBzU=UI_DtZxj(6iel|q7f7CSZ>v0an(2^?J~hdCoeGk)kWj>JEp7REVlhUn%-M^=biDvx$mr} zpL@NSYbnQ1<@dp+igigzGr8ZoIWrmUVi!u7d9Pifyx8Ar_PT`6!qvG~mKJ*Gq}@1W zbNp_kLR|Q5*NGW_xt%)~P4UvtXfLyQ_J-X<$3k>@Im`ABfir&xPkC?l=IBWS+lU*V zKS(&J#^yR(>^yr4oc09XIN<(Nea;ri)mF!ux6I_<&-1CT##dx^ z?^(;;{|-)wtkb{sE^Hyw{e9my&ujJ%UAX0O<)O_JG{rvtRo|&vc=(}{o<&04$$4(4 zrp#gP*_IKf^uYU4PEy5;O`8=gp0Ma{OvzlsFR8Npz`X^0a$d@h=N;*-zVv*;k>u%xNBScJai>xGB7=NI?Ce_kV@W%%D<^OK7`ljI_I z_Ij&t(ddr+&2#Af)$GK+Q+iL1t1dpWO*>a+|MHv}7G)MK-q-TaW>wBfS}|ekPmY_H za_m#;6T&MPuQu#8YCKYS?H$8J*{~lhrYX^Ov%@wNJQiDa?0bgvl}A4p9PbJ&-|08w zml1ynpk2u}q`U0lPZvW=rDmafW-Ee|$)a4wfo^@QQ6|C`gL zo(hDow%Bo0r7X1V#@xWEf=9f!^oKm+nYul_-f?5=1A!Gg9@1&R& zO+l1T@stCrCUXYcgjI>(R25!5zb4PAZJqRqMV~^ZlnK^3nF=pYsq#;k2@lGmDD!)CnpIR@slVvl@x@ggriVCsc zdzW<`KjX_B@3CH{sn}?vU`f%5s%v5?Pi<5dZJD@unnk+W%J+u)>K3QvxDyv?*t0Zz zEvTK4?ef(ZA=!X>9Mc~JX$$Z-D>Lk7MHcQ>S8<_<>yttUS-5< zZ?;lzj$?o6Jk#zikGR%b*S`2Cxhz^=UWj$;l+@+=j9vk{f&Pn1jZ*H5rA+-Ddcw7L zvQ=#PjMik+x%ZhOl%&6VTK#$8vypW@*IGr!Eot{EInP|!XSOnAYNYdIp{nd3CtE6S z-!uuDvuO7Z*Wb5hf7|EN8)xu?^B>1f^&jC{Nl$*pgq!Hyzhfr5MOd zs~PfdbpLWO=iZRoW%w(9*R>h%8MwT!%$$E9!L;{|+kT6X_l`Q1zE%^beLnj3nba}k z8~5%OU5^eC+4)TM_pOfG%a#PZbTCXfsH0oV^dWw;x)1L~^Iv|l^8+u3nEpE*lzdOb zL(uu7id%?^P5D~&_V9#LLA75mcUVr|&D--SHCXn^mpdVKU!6Y-tF&K{lj)u2MfMny_D0C@yW6fppRND)oQc_thTq zwhWt*c_yQ+(MZ&6#}Upfm5^O)ZOd5W-A;XQst#YjqqU4d{Np0mXY11>lLPi-I=y@6 z>XT`%aOLK_9)=0qUOWn~HQ#Fb`-{{?cBM_rC%=pT-xcyodb#_Tsr5Oh&(Gc2yyMlP z`Ai)rSxrox+F~TiZN;DF@!y;H{nWK%{U)A!4bx;M_#BY*RehuyRIxUA`Fo%LGD(_M zA}<#ocwD3Dy*KVc`8~$a!T_%PBfVcYw>Z69v1fu@#gxGOFoBovKJT7#;l=DTNwT(9 zBJPu>w@Nsz?n5D^_S{@96T%oUf8WMax41vcIdt6BJ(Fd{WNp9*vo_^ ze7E((WpnnbzMByk)1KAVajd!5pnR3==L{}sk21{*T0I6i`3wRQ9*+VKyqN!Z*OF_O z4P8Pd_HM8e?cZ(5Vr~4rI3R}Uv(3?B8G))jGj<)YHCk`8Q-8L(iP4hggu_e~8&|J6 z!`$57Gw(XG2Y~J|274j<(OdC$kedJV6_EXm}+rH>$CcZUz53wt3S?!)f8YqBSPJ-X=BRC%E?u^ zLdUncO#2-D$({2QSJ{23^(%h!*Z$dj_S&J#|2;1IO>6&U`Yq;k*KGf7hbOqM**N9v z`w5oqGt>G#%LLj4{IBzyC0#Ii9`)>T_Y)3hY1apjS8w$bd(2aCtUl;2@0JOS-%LgP z9WDt5c5sI6bY)ciS=pvoyL9TQ#Pp7b47$>xGv>2Dx;O8$&OIYt>8LY%Jb#`m)6$-5 zrO%zy@RP}UinJYv?avM0^>}mT=Dt>5dMlmPC~Zqzo^R%iM1IpsL+A3T8(quXYV{lD zB*l9@%bc1y$+S&2YhGXZ`n~GU)&;)&7=4BN>7;80|Mz#itNpF%qM|(M>^uJnKAwv< zgkN43I`b0uNdqm$o);e#UwynKH23C|wkw;Oyqep4r*zv}oMWMJo>t|@K`5Sv+PE_T)9IXN~XSsPR(mL#&s&u8_sIqU-TA}RfWc)Tw zeu7O3`|&e%?sohB#I)No zj|ee9FCDYr5z4Q6axZIZM~? zyoWD7z8i1+En6-#FU+vr-bnbxu_cq1`bx?@dnd(aq~DUfbC&+r_1%v>V<&xke9BI! z;lAhHhMB(FX6?&M_a0!~c%eLCSAg#YS-Wk!PZj9LM`x)R@FlNM+P=#1#_cGRt{1Wj zB1^5?ySDD~_#BX_()xxyFF5esnln^$OwACkPWQgx1>4qNud%;p!%Bx_B3+>RU++Hz#4#KOl%B~EZN zF5J=RwDXmzo0GXxK6`q^i)GVpaG(FaZqbBaT-ziIEvi=-&n@1OaDTn;(Ug0EepB78 zVy`(GpFbVn#J=+IQ|23Y6M0(yss4F6!(_F0`mE4~-XCw8T-=*qxE=GJm}glOQ>^y$ z+l#nm-&aomb;m!*^60$Xkpg)gnTHmB&~B1HX|^pwHasxx?V>$K)+hh)S5IEj6m9+| ztzh?Mb+gZ5-tyP&WqwINtvJlzz3v^?Dm6t#CYdvR@5E}Hw|}uLd3xK_IeO2@srmKI ztM9~ioxRrC_a=As%bQ+x8#R|@^l(NjVGNp`!Ww+~%15~dUtTMTi=s`{$^ZGk$^X(w zlsEZnn#`DXO14B|hS`PftL#@6rMOJG*7r>^O2I?&XWfT~QHG!E57e=8?(|#wDvIGt zDx=1;nP-`HFNy9;{l-=1An~=Dd298gM&5Io$E=xh?p|pAw#dEBIQ1%X^ucSvUvj>8 zzwCdlwq(M-8@vw+SN*!5`@=A;SorH#rs=YN_NCtKeXZSGtM59S6uUGj0xqR)JHjb$<>$A`NAnRrvm$XDXr zL>1^1_Ys}faKCJ%unuFI>Ms()#cZSt}>UN!t{4FN*lXFI%$Fsvx z4XVK(E+*}$pSsxNVZLL;M5i~)Lsx6$Oqg=OgV%OprLvs!+;wvQrak#wBE4E$<#b@_ zx&`ikrfL4ZE2QyDAn#dM6)o=PxvtMlE5Ah`#PdyrsIN!Hb za*DhX9b22Zk4ZyDZMy9m%Sb;y+jrAus($XX{@oeseY~cp&e;DV|9t1cC2NIMO`gvE9$oQF^v{yI^6HJ2&nE4g{pp@W!<^5? zH{R^*ny)>*Zu()RsSBpZx5-X={i4rz^P;B`tPe%AKgE|w-syPH`A_ZQrS$nf|0a6% z=?KqGeYde)ci;Mz=b9>lT#P$UZnE5R_OhyQr2Ae;zlw#EpUhvO;rMj7rXaf6h@t+BhnDvDhEq3F1>2y7xEvzn>)2@-Teobe#piXD^gL{7-Ao^KXwt zKK|@U^%C+fdM6}5_0N$f&wWb2raaC`J8I!LS-C!J=I_04a_?B%Jn4PTxGG?!+YSCB z(OwBk0&22T{|i4%U)gbB&Z^=o>#ykY7|(ydO-)YnM(4HZfxmfA9F*L+r+sI7-1mfX z?er(-?*3l5giV{F|NKnhH08=^MO`8fI~g;$TqRP{H10{OnXI24|E~LsPR~u5H#_AP z?+UrHhG%Kpg>A=5FO&t(jPY6Gd(UF+Y!k(+z7IHLI6CH@dA@a~U`Nl(>F&YSKA9(V z;b0C7eCE68c-$%F-ASw$)xJk$EI6omQZe@4B)|- z|L1Z%OIzo+mHUz5Y9XbZB{#yt-o^d;6MU`U@40#BE>B9D7W25{l;)M6Y<+2G>Zc2p zFLC~T&03AKBKhI7gEB_b&&jve-mjW;$WBr`IjMP3MWpI{e$KlZ8$8o<6PW*PwJMcB}_2T1GV|u3anI4khSlY~W`f%JE>v9Xaz%S*Li7_T}paa&i`k1cyI#C;H)AgYo6#9mXj z@VvsJH_e9CZx1Q`u}pSK(s@@XRWtucq{^LG(SZJL4o-H5c^98Nv>PFmutf z3tn61xPLo+GeN59`qeJc)j!kEMKm3IWBH%=zx1^`^}PvyL}a^W+XTnnHHv1K%N}~o z@p!b3*XvilzI}1CC$5UvT5;}%!J*f!m#<0r>3x6Hy7bjWPs@5HOP2fFqSNxSor5FV z%{Sx=+HB(us;vBY^Xd6*(YJPNkvTel>ZwLoL9Ia6NUPf>+ahfbZ#iH0B#UiBV3SXT zg^tDb7Y}E&bk0269CFR;{^gGJ=6mZF?Rj)Hknh`p#ufaty2>e3na|-SdQEd-EN|%ED=75wDfLMDpK0v8s1h>WwK^gg3fOdD%Y6 zF|PCC=ER0V8ICLAFShUdKW|!J@D3LLc?|)Hv#zw?cYom%>G z%a7*R%L^~f-q3gXmdhEZuGV0~Cstv5bH`#$xX*6M~sznnIS3ON@W2wO+n?T|Gt ztpD6C?HG6Ao@V>T*17ARZP-+F@=}D2;Ur}f>$rl{@>_f}T2J3Ccq6CxB!lT@+tJE3 ztJ}@YT*P*Whb(29796?wWS!W-M!y-QpFW6w^AUWsP5J)o?{W|Noi6Ts^JLAF={mJ( z2UZIG>NL1}!i-GykXuABH;*O~XgzH^+{_iWvk(cZG? zETg-qXV;hDxJgxY^Cv8dyf!sw&gUqRNkQkr)Az2NzvsvFBhM~*^EEtNUtje9fb*7) zQz6^L(o{!Pq}VB*Gk z+XXMQoGQ?)^ovM#V_cDb>cF0(oSF+OR+ZLG5n4J~_1g{If;StrKOadb+}H9yZ`rrm z4{vRLs$7%MbNi6Sip|?IzyETTo+@(IK7F;oyXzLMe_sZ+>fI@Qmy&Tie35lZWON(X zN;l@ql`A*;DF;kuJ#Nu{g3SDa{~b$KO?_0KVie_S z@V{bW6jM!U(hT;N$rqm-a-Tc*YeW3&&iy`5ilarEM3lmfBHv%D_@B6!D`tUeXa6tV zH^$%OUh&M#eJ9oMs*&rL|L-@PvmUg0`DDnY_1!(NWmU<`v%&(eR=Ak>G@h&0|LcDt zA>OAu`@)&WmPRupcfYl0Z2UUmxnZw*)uYmS6UR+yJyn;V1cou5_4%mMF;$j*=8BhY z#}`lg@<+dK?H>ozMYHw)JlDLQq~rR#`^1_fXYbk-RF>{v*TvbgZ(+@q26@}Pr6oDvdqz*rTpaz#mkj8)bvJ-t(k+yJ~my6r49UrRRDOFrN91wne)!I)x zG<&DlKUk`5HLirDmc;L z&VF3)M)#FV2l%9dj9x$f@Xu*~L`Hn>o=ei}n?0Cj+E0qR&mwN=^vI9h;!fuKJ=R@K zpN{U8`tpR;TkwZ?|JlyRYbVQSo?m`^?e5uo=B!^?ptR)FYwc|oSvxl?uViRVZN1fO zz_E8?#JO^|AMEohQ~uaY?=j8@3v6P45VPV~^71>bovE{Jo9i~GFBaRE!1MnnpFxok z=T`R{YA;GMe7{{ua7+sQWh1yZ)5zB)qVwj&IHMXT?O-=;t>o5MYx|RecYUSWckDL)%sQ{}!n4;4e+wMmxIt(S%R@_zt5?OXzgYR4 zd;WfZw!4)l|1mzB7iTih9u^a+IU*_JAYAXkoh~hA>L%G%is#~pse9g}$Xe8>7V6IUue%KGss;ZpzmH)o4HTbfp| z-nw~q_4OzH(TSBI7jxz$zBszpyWQ?q@2+JfJ2pw|J9gJPB6ij>`@22_dUMWDDL<5=nCB*Vj8oUr({HY@7hpR{r3K@#k&8dSMqQ>Gd#OHgY8tu zO-tbq*1-a&uWVa%`k{1}+TG8)nbzOzm?9}yFZ$fU*3#y|X=M)Y>HHRwvSH;nL&C(W zPfgaIq_wVnx2ICl#V7s?5=0+fxOQJPpia(qg6h_3hc>-mrW&_<<)`L9dFekn1UHvW z+q`1iEHe+67^~8QTK8}A_o{B~xyY41?^xF>pZY_MtO*Qr51M-QzdZYscjsK*s-9a{ z6&^?YiHnz;RWOb5#}D@W2X@b|1f-~4o%H*>`O5>+5_>K`lf5d={OYNkI$K(TikP#1 z``^n&N>P4I`b(#IeX5M#egFNhx4(KJ_V|BC$IpZXOEQHy*S!-+{&#Hk z4U@#bXBq@A8Oz6|=5uxQgl?K>QWI{G`hC;ai_s;m+skG@Es=QfMcv}lwhVXeEGDhw zgDjg5oo@T<$ZmMNr=Z)`L<>DQ<6H z#G^FNcZ1YEeb-wnxj3s7-rWzHvHQdd{`28pRUunusV1ZtIJlk()^pI_daU84REhyh z%r+6Gx!wO}$3-k)Jm}bEV^aU(P|l+IT-_3lGINxoD+^s-WV{6F|b(k z`)wW1@`nrOY~Ii%f1~|J>a!fNZblT*wA}7Z%O`1jfr zhj*OwUmh;~<;JU6O+o*~IV;x{EwFnkVP0-0Rjp#Q@OT2pvqQb=2W@T%PnGn%$F8HD zwdRL#`N^;Dyk)aI!sX^VrIT}B7vGCuJkN4OZ}YR7 zzd6afC+=XpujA}zbuYKc>@TieleUL2ZYe(9)fd~OIdfVQgR!h<;O8Xeo65IeMl=UV?|Q<`lapF&wKRjl zsP(GM`P_xm)}7w-eX^!?)5P^&=T;=S-r3m7!&@`arZnei@bc?xjU%i!H!8lqsCZqC zqj}ZB4Q87j{Ml=B$~RHYWKLk?6w|3M0Hm1oW? zXjrhr>$l#A(%5H$-yZT9_-b1C?^iy){==Fkzc1Qn1Pi9-=kaUqJ(Ie4j#m4Zo8R(z z;^QW+-TNf(<06=4^BK2YTB5}JrnkP#{@%~Zt4#L= z&fM_t73!3I%&=k0?Gl+o$)P`YO7C6ndH>V8^S&PZtIb|(vBrruIvCBCyt8|@s=asA z+<;3Nsyt?e9l1Q4yDq-T*mpJD&8?O{`qGo~wuaxQ1!lidTPdCXYfgY{j7py5mg`ra z?9uu!Xj_+ie|3Ghuh72PC*J5cxEEXsedaEH>6q_oi+z(g4o^Gl@b~_86+utNZ)JQ8 zb%zUfHO>kB%rWs`mbvp|>t(?6`UoMw{+aUKJ{^~_5)=-XW4lZ)~`2dWf5hYs+_Y;<}^dZiuBoK*DGD;%H*yN z{M#<{pgbaIf^4&rm#q8owo9i(xXjd6%vrKJz~Z)&s?x*PPqqeG=1#m6*|opMG=Iu& zt@CEnZ?9S+#k6}uL~u~slISwilbL^{BF|}>onLfsjn(o`OOJb;-L4mE;V79_#ddc6 zBtP!jjhe@eV#P&sLbWb*t`|#qU2{ z6<-8nSDnwQjbRJ^{_3NN=z+S*D6Tnozi#}t%_`pR<8+3DVslGFtlv6q4bhIOJNafs z7iUzqyx%eQ;;y)f-l+#$C!~mdSDLz`l>f`6iu{iUU!1c(x+E&-R!i|3wfXBA9nI(J zGVEL&J-J+ZfndU>wwDXPHOXu%ySV3gUBI-aJC7F5telhEcgtSU@sE8smua4jm)Mr5 znUA_evhJ`&{P?-$*}-7;Z0+=Qa&Ggwz4g|02DLA)d_47ixj+_ek?f?8vQ_Ew&Mz+rahY#Mx;)~j+jWczByUp!^%p2D}Z~JDa^b_VY^4LUYFw3MmEbnOj$M|{q3l4mZFfv_j$F7-V}11G2iMiC)9U8(NXxU%$>b4ToX-5|g3yPTlUvrz zcKdl()V^dEYs=1mpJm@G2YoEtURLtJs1Ra+Z%@UPjM0zn^D*S0zw3zEA4yve!2q ze+R7!YH~VoTI)m8A7OKixVf`6eVg@`&dzyz>y@nBE|uz_9}N!^5?-79Ea_zxn(cn+ zz=mlz>i6olWY^e!)xBTzxTqsknOh@Bwd+@MGQ+wT_BY)&&N|(uzbsywh0U%dgE_@q zY>7zdRTb?O{MQV2^?Z0ImFBx6eb+1_MjgMb)TTJq1JU!}ZK~rqu3I}(#jg7NrN)<2 z>$mV;?BDvWzdnL@o?hCV#X4U9KmFjIb+PdBlEdEFjrUktZmRam-a1>xvi?)G_3Usd zSvwb2y<^^sHJ047E?YC1=l-5pjqiuK9*G1mzdQG1gHqCk%WL{&SF&Au9(k+%^khlD z3&!fzoWYZd(jylYh~JYC(^)Q3#X3{vuJqmu5!d!DWm00%uV1`B_FBY(oAduA-JbU3 zV(+hF%gdY2$Xa&2i|4ZNFucL^Rr3t%-r0OhF8`2iN!b)RXRq11t1UJDTPEBsJ<`=? zz-`ZSvtw(_AGPPFyAE1BG;m>?SC{8dFY$Cn{Cs=+I~VS&RS2>)IUJ3iXt~{Q372V~ zPgT>oi&O4~o)^j58~n7WNoDr}wP((C3i+D33*F9a|2VIcpXbVy{pANveQ~y%TX;j| zgf{Qxol(j1VJ~j%6XsV~aC-6fRkm~cSGzT7^=(cUJN9Yi&z&mDEc>(U0$cR%`7n``AHoo3sx%>B9cW0lA z{_h?)tcjV@Ulwzh?b7>m@0YVZ)SbSTk$vm(B$L2g#<+i?2PPewb~Ae3nh6Da{XBPM zx}CqZ&G*fk`!&~&r0jUMi?gKtx90iT{y*Qif5^Nh?egf8Q2z9T=Vr-s1%LJ7nk9B8 z`5yQ3yDOa?K782p)6s34jh6TkjvEgvgM+>Nlbg%)b~yZemg;jm@28fQ+ZP7KGg+th zZ8+A`;G-s_xw?;QLLtY_@?EOwfw{;>X^gzVCJY^;qxZ8x{E-eWgV`1R0B zneXzM6X%4j1m8Jv=Hz#LdegV@kYdusgrpsx=C3{N{d3~6(-}ASz6!i^v2VR0%boge zZwJwTNo$dp;#*anY=_qM+9nVp5+{W>~zv{6FUAwunz1@jsvcJooK> z#gysZQd_*Xy4>IV%wPSb*dzhFwOlvvPf1=Fy?nW6-s?+#k;cgZZht0t-=2`;wfWyq z-mk}Jcb#HLlWW))B6`POXWxkv2lfaA?oJPT8uLk`%S!mfqa1<%8uLFo=Kd3U@Z=-E z?sw~?s&*OGe_ach7fL>K`cgFY?RVeK|E;?|oH+kNa-!f}KCzI8x5`ad*u9jBS`)Ht zeKXgc&3u8fJjdgX&01U~$@KAeK-`lrrx_R6*~rcC)pMG2QPb?Hb>A$d{%lXRRQtH_ z_cyj)>zI=odZ#!1?4@;^e@|JxKEC6HWvH3mu8%kSwN}qB+NF7VJ=3k+y-$wZQ_53% zE67tW)gKxg;{5A$jLjlLmM2z?{lasyF4jDl|9Lgj)dQy0`)el{y;!2!k)HMCWyY}& zuCaC1RkJf24`y6E=yxUZi+aklV)dsx%GKW~crWM?d%kkzYp0jHPt1QFSu^3fj$%^m z6DFaL@sTqP4&+A5b=oz)KNG}JQYpe+p7Zyln2rwLA)c_~ca42!dub~fS10|H6PeE= z?VGsWcfv%DXJvoCO}vpT@TQ`=_U`TK#z{NhZ#5J>=Dwfd;`YOZfAl5!`&Irfv$<*R zu$l2IN8F3T!mbB8`*+FaJ$i7Lv%h%j$6X(;JIm{C-2c(LsAO~7%QDgOA~qgD){R%X z7l+#aDC%|l8FRm}?2DnSI9JaG53^e@R@rC0i8h&?c)BDscXG>|Np0&FCm!ru@xIik zy1b`$y;FPK%U21tNoVp)4$rY&w8q_Pt@Q`@uLgYIYv*Wi=gMxCnX=D$(T6Sml1^T^ z%jOod1{%xjJ@I<`ZgJf@!}W|3wojRU?B+casTI2Mww$u)#(C40Es+b7E;%TucIBdI zOz~CUAA46e$H$-Zt~Y+3F{$~SdWS-~;s)D)SEt-8EfhSOy6~w-)Z>e-$-xIxgRLx$ zidhYLIHjjQ3Yx5b`up76g}3+uO5PX6PL{KE_1Kra=!<66gJz5AFIxA^dUc}eX5_oH zrny&+ncEq=wLG<6Hl^>t(%eS%^!3G^Z+D)4xc#@Ln%F)j6{$l@+Asca;1N&zG(GQe zcjLJ$7xSVtId`o3W_9|2h{3d9>)s!2dKUX7L;dDq^R#!1_Skdt8$^ru9X)n&k&58) z#zo88&bsWcW%Ks-y6v}7Z!Tlsza7gIZRUwh{p>1O^QD>l;3>n2%zNklnXhglZ@2Ns zg^(kxN7iirw`=oB`GQ%NhP-Jmu?q*y5suf6 z`T5vx2)?Scxn}|Ui~bCon4Dc~d;WU4o2;@j61#4F*CzL1m>qBG?{~c#LJAjZO6ILH zdGsVLyC&t{_2ezN%WhsXRFPfhT$sD?_%uF!KSSe#F}clE-*1WAnoOCp;Yr=)RoWc7 z30=<4ZSR&_pOTONE~z^|ZKBky%>noLUcJujbBg@O7JXaU^ZCEmPsj67yj-*E0Io+4+tu0%4H zcl!TM2bP9MC;U!wToL=GKVv_`;#11=AMNdSryiXC zax*sXLS8#h!U4}kZ*>#$x5;gh_pn`*+~3^568L2K4w(mwx-z?)tTN4(EwnkRdcr}$ zY2r&Cc}9E3JrBiSEjan)cfymhwA#4!mDV#H1ca)yRT^sjO+&X&ZrZju z?+^**_PuLcO158_Zf;&~QucdKw(R>y8p{$VZ8bZ1r{~bTSjQP_Z{JkSyHVAm-+g> zGxzvgZ{_SRrQ;&HY$s2z<_xy!u{*yb^2`4~EcG z(-W2oK05V8xzwYUZ{G6*n$OHO{?GJTMI-d#TCs`UDn6$zG$K2Hd~W$!%zOI4+hnKT ze8E*)COzM@A%DTXs@CkKg7^FL-~Cf>c4OE#y?W@(5ve3-mx>)Hp> z%`1NY30k4xHY@dR(UDEUk$$0@Hl?oaT&b|S@7=wZneuMmzqbZz8OJQmPHXz#EbMI7 z{(PxCIKO7Pd1qwp)!DE2^l6z` z)J$l02`jm}?xv-a$KnYmnxi&&Z*hD1I#T^=g^SodR;#LgyOx#;cc?a4U3heitLv8d zA&#R<-x#m`w#58TvBIf>^Gn}--z*_kax4DEjiR>A3vYc&-0^Tu?!qPSJ~6C(;nc#i zJ}x)Et6AaA;rRjcPwlRFZY>|1GuhVQg?2%anZEgR9f>XPpFWtr`p@4(ue!Y4|Ar@6 z8@q=muUN1t>N@xQoq7456EassPMdV1*nO$mEsJpWuKm|}^sIKQ)t_zFwESGwV%3I} z4Zl9}CN+6fH>`W^yrEdZW`t*0$wg*<3%r+4H`t->WWknZr$sty-)hG++;GOO!+ul7`& zzQMHf9ZPWYVdYCLvko8F|4CMq+hEm_3CW6OqEn>4FB2>~Bz<|zq#WuMe?#T!p6XK266UVbr!_jUey)5W}E z9Gp&Kdm}e&;W=$Lx$nB)Y%hPElHIFc@IK-BT6s>(pXc2XE#5h|+JE&`ICA%9%u?Mt z`H*CM%Ez+Hf220ly-VFFt#nU3kd?XcX8ylxG7NUtRio4G_gtzB6utJ7{Y~02S5bLi zuctSDcznIjt#;(npFNyQGwY5qNM`Q6#qweP2Yc2Z$7|MaaWG%*>ANTY+6pzn&(ngR ze|aQvYqJAOymqhqf_G=0e3}_EN!@PE#mP?jGwRB-7#?k3Qt!(rsVkWNvGl^$^2n=; z`;PZH{%>8S)v%w}|5(iD{q{@-N!-6{q#2mM8D3;a;+nQ-kIj<8_2+KcUUakU*E}F=0YxeTm%hrlx`MOo+0bRjvm;X(B`1kc` zryRXz&T_GTfor$OK0k4;v#>KmK!4#=yJt5iIXpjUa6p9n>T|Plt>jmkcE1Dz&zHZr zbt>sl>-U_OcB%X~R`?l4bEj|pGd3X2A#l2tNT)S4pdA!wa z-m0apJq!%I8`ZSZZ}9&MiFG{F2&TZ%I1#z zTJ0)uYHIwm7hMau=jlFkOg#Mjcw_aBym^Ow1g^1apFU9Z+2RO8%eU4~^W|)z*HIITwzCzj67))%xu`YIZsQ6so8`;) z@Fstsr5aIqSzv{S+69rb!K+PoT&vAl|9{$*{H!hiiv?Sw)e9Ro958+*ohICwovhC3 zX7PJ(^85qYd8gNjT-YbIu&+veea+?tubeGDZrQebQ*+M44aqX5@3HQD}5%4v;|LJrK%R*(3B?l*LbUXSmNJ2|Y{pOXH z)uqAe4pH|4b}JWdk@0-J(Mdc|-95PZeZKTd!|zkPAL_reWvcl6*U0K@_b;jJ+8_Nw zP2Zw5zA|Y&J{2UF^>5ougR)7jcYJneR`i>1h!Cz9nqHZ;!(;RG0O4IPv|ZnSlKuKZ z_Bq?xNi%L0&+Aj&(Ec#_jac`Iya?m7EA_vevU+Lh_}IvHjb0l2?`4l~cIzE?z2Z}U zV8uSWJQkK&5xb=<-U^*-c=BUz_iyIzT|NaDZt&ThtMRM)?E7u~pM`7R&(88)cP_w& z^_D?Ko`9s)S&p7J5qT!+FV8*FGDulc7`SiqWrs$qn<1td$BsS7m>PA|Pc_1!`3mb! zr*H1Z^j$@C*OpAVRdDpg(>1p>ryI@lj$P$&V(xXFXR6B|o_@k!a5=Ny-2G5@)MoZ| z4A$>l`y8dpOpbAGt@PHc`FQKYq6I$7H*dKO!x32kc>xUO#%-7ABX+I!VLr zDfzwRv#ZxH>zn26sK1IyRAKKF0lxGdh8AH$_1S-K8~mPr=G(>t9Z?ojzL%+|6?e$o z%$qMWePd3Q!-R{~oD-7IiiN$|(-&C!+pDtv`|G3Dw%q}&|E0d{n5=bB!-nhJy^PtX z^zVh$PHetdxgqiVzT)RQYpZ7&D4RCabUvNN@T~0FYV*I*g^`+n9bbsvF<5sj<;VPr zo0k@_A35mtI&qs>M8}f&Z3g*oaB1 zEA?i(u-$vUYWvHJbF;c5YG&;eZrA>p>oL#d$=WX0Qgt~kA#J909$`DAstOq8{(9`s zD^5AO#e~7NBc%3;!T~|?I2M(v^_j*FvENtrnkp6eXnH+ar8vdVao7C)&A%*Cm~Ot_ zV$$+q*8HIUShrZGITv>5G-rBmy~w&?$xpcXE(6;-m5_+8VYY)cl&i?QESoWr9yX_J)p(UOltoFS= zBhR^_XI{E++&&kHLm{>_#6_+@Rh^&Zb(vowyH>L#nq z_xrUcZiD`;xb=&SDDKuA#c6v z-w91)y$AEZ?0Kf$G$DVv5$Bp4x9&ai4)|17{5*n5C9?0wjCu2VAM8j@D>(gs=FBH5 z_qhzJto+(-#Z**&6sD{x_x++_rI>t77W@nKBr8M_Gm-!GMZ95A(gc~)n$mD)Y4)fIjnvmd^GC3;)o*M_6B z{!f2h-dQ`fbj{(Z+{}A3e;uBu`%wQ<%Zs(Fo38aU(7){(f0`$A zHTdrJ`1DNjv(rz8rRy!ECC>i8w(GoW*6W`Yw|Hms&lX=YvFdIX+u@QAAKm1yWHl{` zpE9F%x|l_ff!nJ#@qhUb-bbyF+?aCGxou9b(w<$bJG}dv)+<>^PF(wK{_M3kUVnOB zQoZCB_paBzPp4nl@#fmsj^9bQw|ieZ$1DAx%QsBx!!v26$W^Q+9ks{)aEfqkE4pNp zVB+w@YjNcyKby*1laJnDJ`&wHH}9s;$;op*ztKCt?xJwh~vl+=DF#koC8(e9i))vadtDo%$wx1Yx8-VPk~{YUrxb&`0QA!8!vwQ(`~ zd9PZgEfS7#nr%knGdyRzU-q6`mY1}z#JOb7XPt9Tzt>)P8IX4&$^3TvWXTuH?AlZ( z3)J4T5$;@(cB@@fR8!QgjOn)LZbR{)SI=LZn6TjUU!{4g4n7ewTgG!yE|4X=EToG! z)c(=_`$^CCwMG7O^4iz(-qX4UKXn^y5|bD1ZkUi!!_ z%RaTD&ESyC$8Ud6Hf#|3^z38LX=hd8I4P+=vrlIq_S)onzu`o;ZM?2te54^0L+ysQ z|2j?9WiLAA$e8A>_tPx1OR*1tU7YGa#5gM}l&t6X7&jYD zGS)RwoUp15UfAOh@aD*-n+;!YMSJW~P!=~WitguKwwv!slBvCSyXB^}(V8MDKvc1FWB zeSh8LH?EJ{wb;tN@0{RYFY@7aj`O-rNyl%*t(iEvtdoN#qNtSg} z?v`1dQJ8unY{SZJe3xfmZoXwVEN$zYPqIoqzI2c|Vg@71$oI4vaYzgj0N z@5`H0d>T8PO?j0)m*i%2iYi&=Z?pKka^g?XLk7#Ici)p2k14pL-#^DVb>cqj?Jk?G z(r+K@-H@pFcG?5eWxLO^)z9~PAolj3!peU?48Hx`AZZ%i71+flp|^Z_#Oc7DYH`nh zFG>^ayuiUKD0$*a$jsnm&R4cCtbSfR*O?P;zx3+2HmQpj%#IeWU!xyf|1I)M^w~B0 zEPhWc@h!RaeKHeINSoe)h{*c7khR{{UqqbZ-n4x^xbs76$XQ9--)VgFKJL0?l_9)a z=#J4x#{aGYsx$4@>s1J{cS?5VJq&i%ii**53Ky5M5{8iP(jRI$`O_^KrVC8Ao zX-t3Fn}0N2pQYrZ;`R1(rS;!qGB0NL7o2_k<@tm58R6U(^Fx`J%esE#2s-fY8kgXf zB}q30EBT$~ig4|Y?z8rn5sK}ro2YSh9g7^>xet?e_x~0u-)yOmVei{zTIxNz0lETQ=Ia)|Muk`S`Tt=oqfE$;o}q* zqmz$yG9w%x?7Vhvf@OL9FB9I_+@)8q%~LRud?tF=WPV^UU+=Ly&%1ie0<;(J|CatJ zeK(JC(D`)<2e&g>C@DstXB17o8g(K2Yqv+&)XA>ew|CtZ3H@)xGV9GEo#OJK7RB6* zZoW+qkADBTvVFa;<8lRVjhcB~cfPSs(0?j*DE!H-hjT6N{p1K#DO?r*RHFIJ8_ndH zy2$iaSX|`1o6`O;?S@R7n7}8`zMR~^yYM(ymrS+8!kAtS_Uc=k1#i~n{C~5PxjXh3 zTR@v!r1_ub#Eo0e{5t*n^opvIg6uncen0e?CMtFI9n%+Oh1{Pv7qPzKxoP=*$KolG zUX?;$vYt(SzfYpF%Uwz|?A>3Ui+-9`*V%Hn-I&7g0mX6cMSW?_#rd5#uN zti64hX;aOGr;Ub+YWMv)4Km$VC$T4NkysagEGVDb%-7N+itCYZ{Oe57$_vI<@}!i)w6cOlS=%jeKjdXw6>lh_0A3J8Zj7<}ceWZ?{7}uA_wp*c zN$!Ge_0`)SPMmG7C&9G1v$V)!&hx(6CdsGX|JF=mn&4F2aOaC%aD9Zk_9 zCd%olp0CeJJP?k#`)_|v{@i}$?90C=`~N=D_-)R)`7_t;Snw}#)*Dwb=?HFxqqllq z@rDR&^H$__z3CzzJn`r*Z_$_UxL2?TbPB&~V*Dn<`aNr^llj7pyQ+J_?ux(A{j&G( zrAXn&+Via) z4^9S=?=SA!=xsX0bhE3YG-u%nR-2WxLUw6-HRtGXZ@WFotZ3mJht1Yq%hFAnm#E&h zlUbfpwNs&zVV%+GX1NTFw^MI@)mymX`^x90YFvfQ8{J(V{Mx(W>Ce^c@_N?qJe9mU zJbBIO+EsIdKkjGQ>%m&ioPJMcqfwJtl}`071r@VNNelKLl8O&MEzH|@@YKQ;(R1Ve z6@S0RbEIifgx=Hx2RG00P-|SlspX-$L zhT=29|LPR@K055`oK<(sT43!_HMRNQB${SFU49|urH^ZByv4t@JW&p}B#d&*R@ICC zVN1)LF(r7i!~vGHBfdNdQ)M={)R;|X7L62K_haAcyMMH9iFX-Ji#EKu)R6PM<8@|n zO)c3-CsUOO&5Kc5ahzNy?lnx$W{K*R4x9IM{`$FRToo#9j>a3xUj4YpMz8BZYxw!U zy|WiKC$3}s8@VR_E6FhMVYFtop8fS+uCJZQ+|E=gtabW|aK7`_BB3;iJf)z2}@0t=Fb4 znUU?h$?Rxepaoa5d8XUr>fj%dj68Q&eoJ|`ZlzM%$phV+8=nMh&N&$-)O#m!=H~p3 zFF4M!)~z;s_x!t(>Ri{&?|FM_!w$*BtjemJ9KP08_uMVsQyUKFO?4IXf6wUe%~Ji- z;P%lTd*=xSLRIS=4GiuuAE*_Uc3N@wiv3j0xt2#x9lO+XN-$6)<%{9T{(S41zxO=d zm8fW4^RwY=*w(y&*5|+e zx+Rj*Ct9C>I{Ng^PjM9qiK5$UZ>TiJFa~c}K97%oilg{(5hadEXEh@HTTff&eZO(( zlIx@sR|Ghxs;J)Bmn)cbPQaI2_QREGoyoUq+j$Ewefew>WM~{vWBN6NX~vr+T@Cze zL@H(bch~xy6Y#qCG;9iSn^e-+rGq{~o_L)VFkHVJ^e1&s#-5uVrOh@cO5O(3Tk%Wl6Vfe&3oLu`FcH zwnmMQGuTrYO;@DhEVLxn2+)zvLdckg;H*_QXHVcM&omlvD# zJ3r6Ko#dv=5yU6*$xNs?#e0#7&&kCFZsJK3uKrq-d0eV)qeTj{-ZY&*8J}x+w_LiJ z!`pG3)AO}-Ns6$|hQdXe>{+YA3LY(3UsK|pv4iQ0xM1CjMJAJ0eladhoXoZA(}@j_ zxt7h4`FL{kj)hZYr@UD3v}aM3!J8v5-~GJmeQ<`Ql;S;Q=bT@nho`%)vq=5yX^^vP z-UNAY7T6h7A>jhlk`^%J`mRQz4uDm->N~@P79dOb8Xk(K%YoqHTk9nIUUC%G* z-1{O_^O)K4{W9Hs3tvr-S~UNk?P3%8zdTMtGex!(XiWXbD;I?9Zr{b?4ERo2FY5r_T^ed#}!3&DZW zR(oc?+gQeFcr~!&mW=v4mf060>|APcqdw>UG%DAZ+`Xh|#ku7=Np5Mf3d9qSd*vSxrx0EGwR1AbPu=KR@z_p{%^b zleHz?8b5beU-dkb;ud@9TQ%p(cL{yH`{(OiIIOzbW=GMacl!B)(pn0dSwb7O+gNVe zU+42%ZKwKC9D-_Gh{XFIyT)=e0OW6&a;I=m-|jCJ-KZ? zUm!62E9+5L{+q{^JD!NPNzYuj#^Tfc80%GA4PDmr$uUYi(Ur=XeC)t2e#Wp{Ju<=z z&dPJoTJ-*Q+*Z*&R!qCsszrA8O#IdL!Ncw83BLwD>j@VHv)F~Fym%HY^yu~`wqst- z8#L~GFy5hT^P@dt@)3(-jcslQ3Q_0vuQXnZHQx2O_swjPC9KcZ2L2LXkl?W1+3oLL z-5&=hp7>+%a7#_ulPd0D%kUo)pEuOs_j;KU-^-#bH*?Yrj!FLxM_Me{>^Aen+I{D5 zYBc>1pR%cZt^dmzoEJXTa&8yZl@e!M!`S=rwl&+Hvl>FxC-W{|{Be0v`9b@bS9Mc- za({9C;ZU>@EnXfcm;C+s?~Czo>cZ|{^DlBUJQVdJ#`N}5r8@iTh`7Cag zfAG8P5V45DDHb^^&Kx=}v7Twak+WgPfAgg8SHH*4i96^kyvO|O#-Jq`_eAGxOBOEi zmq?M%SbtZ^BfgEj_>{0?=E^>YEmLZj^@h*ZEHBX$IKUkJ;--b~)t6@c$DTZs-B|HK zpKIzA)t&3s9XZk)b8OAJkQsO19{66&f2Lgu;n1Nl=w zuioFd>Punf1@YC#j{mT@KTWN1f2MUKc01 zt$F|R&-wh#n?)Mdy}7)3;{C0wbp4j|Zqe&}#qHML$=>QR>kZrA z?n_JOp1#-`#Cu#gNh!~N>b?`PavY6Sxf;&mI-+vPT^AxW4!!wu=Ss$+Z7z$R85)Pr z`1f6oYe8e}wg)frK3$#qMdSqY=YJ})xBVv-CC*=Hr_hqP+SJQ1EKB>q+m7>g4~idd zsMcPv|J<1!_g2*^8Li%IaJlGrjXiI#x09>%*2~9?_v}ef6g2m9zjJ+-*hKX|+FsYs zzT^{7-#_i^>A7)^QWO6RpNLv^W#Ze#+fG_WnCxf#Z5y`f(G`EQf@+_6j6Y0Qe>i>R zm-nTS#zpV)wvJ_q)k;5x;*YihkbKX@$Aczk5&-NVCydF+M&!9YJNfO>3QXSF{$pAQ9Mt@Ghc6Dk6O(qCdc*V z1k2`q3H5r1Q~FCaUv8VG|8fH>OT&|o?~45khzWhY6$ z)V+SJDOI&w_6nQr0-+gq($?(yaAC>gD%*to6>nS)+?g6Fgxg+?zD~=vp~(IoW`a)%sHCp8@@Svt(Y@U$&F{LNtT4! zw9W04d=9+c6H)WCY_q$2pV>TL=Oc2r_kLU#_q;L8{fps(T{pXpRiEmARxy9IwQbU@ zf-n1eouVTdH zqZ^g?DwkiLe_!p^x1X;LOMLwHo%v{cS^A!v`b#r*r@5V8w0iO4JoA(C`TZvrtm``3 zxYbW~Tj0f-xc!;_RWnK}X|?%DYHLkRPmS8W@^FLtl+No~2D zd9h>3#ZncOi>_X)E`MS#@@txdjup?CpHax@!Gt50`az-XZh; zEUx6(9Aps6ovl`BEK_Nl8OG)CxJ3IVlScRVL)^Fi3EdG%Gp_%4uru6kAM2zaC!2EB zocQ(%1*iN!F3Xj5-mqZf_SzYzg$;Kv44AL-TSnpSC(nyHf3@G<-rX3jRU3Jtzj2G? zRh79rqt18CX_pK3TxxXo}}l-*3KiF-nd55~p#dg)B_t7F*jnC!w=-E~m1#aPF#0d$|*S#ee%1^MCI83pch! zZriX#a)swSt*WlA-qT7$x300)&sDtZ&=Tb`?hS1jWx1LsXZ0R&`mSSO`RdYi;OFu9=BA|~Upp@@mXKQg zseo1gz~Kb;3BNxwu{vonviUXLKPxhw)qk%^ulY@L^RC}Z^gX|Lm`*<>>-kP-?c)Di zf@F*sTLJ@37u@vHeRJ*OjMN1?RVB@@e7{`VwX+~>$6Jdq+5VcgRp)9CuC4k#U$x>% ztEYX%7tX7TUH3o8>{Y4tH5ZOMwNvWQ;(w=%{Axe^KlWqM_2B)_Szap?DjmKn_y4s+ z)YVs~>v&4{J~3~X+^v$gwy9;=nk<#Yf2UP#T5B)2q`Qi5+YF0u#~Y>3m%o^_w|VX} zu>(`A6#Q#_rnPmPw=tV-YkB;vFhh#h{nb})&Ocn^c~S1VPgKur)_pVc3qIIv?hrMpo?f(bI~QwQ{|rkl6M^_AVdkyry<0AcH=pWX9Mg04qT3Ne zv3S3Kar!dy#%lzaZW~)vH80bR-PF~)OyB$XWDT~j;rH??g(j!xTzmb8_`OW@!UZ>~(+e5GJZT5@KXZopV?Z6U} zASkim^eVeObIfhO7tGti?e&8Ftg2?>LH;x6GWnbr*!j-QQ2l$LN8|I}6RBo7;rln6 zWJ-TJaUqJmeaHEG58qGSGw-ooYj@q6?HXE6>t5=Ke^-8)c*tbu$LlsJ;>y9NoIgJ~ zo;1Cu;c@iodnXsX<(0Z5DIvyQu&Yk$SV>LJ<$cbqynR<1UiS2ST(%^(aQ7V-rjWq4 zXXVYj9u3PMNxF)JU(4~|<+SA8{;-$xByRmWy8YcI`A?6-l-sOkZnynmeCY3N4Zo)k z?Ve3K$QE^AyIJ-9!+E?bSswIloawgei}N0fkmDDRwpef`mMCqTH2I-gh}xg2pVfbI z^l)Y~obzFjUugB=z|5F$t^0*`q#m$ocqM4%I$8Cv{w=SawGN9nJ@e(;wJ_Um^G&bd zR}&UrFqOLn61nfwN1OR*nGeG)CX>|o0w;B-aJd=Rb+eC)iRvrKz`9BL0)|+PQ(o9IL%w&pdv8ZAjlt ziwh4kVs8Hs&Xjc)597Qd^K-M|qpjEMm&IAgi3M!bUGyb-#hsPxN1Cj&j?X)#x=qQL z!6a7j`}}lkv0oQ=-a6jAclzF@8(Xi+O6p(zrQ5Pq2{DWIs-0TKjs&oU1%i8)tDDMl61|JU}+ADC(1McU?&* z`}`MA-V3S~ukv(Wb*Gm5O@G^k^EZl011HWa+10_8#P})g&US&0DZ#S@56|*A9JXuf z>%!GO_h(L<+s8KlgXn}_=ab3uT5ozp@=pBSr@!ZFeH4H1WJ}+lb5d_sI_Rz`dvQnp z?-~7NRy-5i)uufXTDyJ5jrU#p&x0MU@BTW-zC}X!q2c^3CtjSl*mgmX)iP@R?)ZJU5}2W|Wc9Dp`!-da+LU@Pbd5XH!8^gKza_X+?AoV1T{0tZ@4JTgXW!k) z`Y+*q@&2E8Gk+^x{}^-3cZ1F^f1yJ=Gcvx!$r&uF<=VdF?6TOiSJ!M>lpz_~>6xS+ zm3iqefA0lRjpb*qGg)t#_?xn(K&M%eMP&&%dkgObVwrxRtLTqiPzsj9;c}m;d zcGN32^{+P2IHuZjgQw85TG~^6m2Jm+o}-iGcGMerch&M8ekRAAlXrcujmuiy!mP}m zYb)~>yQ@jp&ivH5j=k=^TA%r&*&*katj=8e{+h4cwMm^$*Vj$k`rvvslZ&iK!`#Dr z{w~}fvBFn^(__{;&VohR6+Avgn@;uXeMw-yv2ewo*Suc6ytBR+-1gx6y4P2&?Yzvs z;-5y^#Tu4hHm}Ki(f74(Nx_zTRbLDjPne+EcT&CPz?RlLKJyi-QKp)nUYl*#&0p)+ zdFP6)NVZ(>GnNgjw|r{<%CJjpTkx|xf!g+(r;|PjUHf?epl)o*SwLuJfk|9_dupDV0|oAgI#UQ|Z4^3Uv8^?S30jlUWH!xAfFnY0zU93S>*e@edl zVwujaP1zn9IbSCje41&W^1*1Gy}|7XwrlLNXY7BM_xM8Uwyo*WEBB`f*DpOhiA}a? z$*Ldg7P8f^ZIaVU5#(4^{`AB8oi98~k6+vPGO8|Y!It^+1k-+4YV!&ATd-7kHysQ= z-P*$Iw<&N1kNm{Ihg0vZ z_1%4)DhGm6@fMCk4$;^L)|#qCNbY*P?B9++GRaCjB%#An{V!b#8gy>bEXa z;=MCAGMCQzSZ4B zPmXUD-@Iy#M9W9_N9U(JzjVuCYU{*=HG6NStuymXFggC@uTeroWyAgFizx;i|h7+elMCQMdHE+!1uwVRi=@j{c8@8zX1@1Zi zrCBoX$n@_oyz`1&+Ls%ZAO7EVm+8}Wg$>2?Q`TJT{?>c&$cplmboUzPt#XgI{rlEf z_<4m|qo$aK$3gcWDT%-RFGk(^*ij$9?2^pqu#SrA|E5>w-VFcsWbP&z_7hLTmuFA@ zedzw-zpoeO>y~kZ=`UR67gt&{SB!h-#J*RdOv`e!ct1XzV5XiF_D6iv&DK5f;i9Wr zV=wpTb$)#>_3P13=Su(i`$S%5^G)Y@`^IkeKF3s{V_JM~`;VqoA6NbIXlBLK^+7BG z%N9>xDY0ZzgbQoo&I#X)SRz`(p8m9WeXL-$h}*8c=2>jbrcAY5%=6179E2r5`bzIz z(kUyjq3_zKE%ry9bUr;kb3yKy^86~>ghGaD&2>yOwd|r!|9`RN)TDp=wM&(D`TWeC z`(o32wwG~B*R7m+o$a8fU_thOrN5u`wiO3dKQ(>So!L?nblt%C3^S{An(q3>j;u97 zYeNcL*9Nok<}O$^vpwxx|64_)L)$o1Wc6yfPQ5;|G@~oU_SyO{=GQuZ)GjX6xOvWb zDvULqT&^`Q@PTjhdb{h_&K8|) z)VenJ`h(-zkvIB&y!h?&%Gt+7k$)$F?GX7j$4 z-95Q}VaXTwL#{`PxQ~B~m$7%~TKm^@;gyLh8JiYJE7s^~Ied^lxW)0&DxJ(2gHto- zB?OoUEme6i?bK^cZdP+6qbYvR>wfjr?i5&Hp%Wr4(boFS)9uNNWn13vJ@I|AoQKGR zre3#MX{oJB`m5QC66c)jd0u{DO)Q&q{L~X`mzMJ`l8aY+JcI3Bn+aq2nwHeZuJggTN_%vzKVGc)dL1?o~63&&I-*XKym^!K-t5)9*j-*J1gb zH063F-!ApWt{&A(Y?)u%<;8L}_jC3CsDJy_XP#lqt}f3-?qS+zYprj${?B`saO(J3 ze_8i}_?7$a##!!GQcCjVjkvkOWUv3tO3%DvzFV`HdsDP}(gSA;{qN6+*skM#Z`S6F zPTzc7Tl?ytBCtZ0X)6q9IxkU99W09XN zBM)8G52@7W3%cx7v1YQc$m3(j)=%Hg5F1|{#IVZ9@5;>={>#etb5wBT`r5^x(qwIU zraa%wz+Cvdr^aN@T814D7w@S*WxvXJW0#@2iNs>gDHeOqzqy|)`_Xi2Ky&QxBQw@6 zEq_tGSi}3R&F6dm?4No&XLJg63vGyPc>KuB_ra^4IzCxv#V@DWZ#pTZ2WO_5TJL@S zTw{y>V?DnadpUIPIjZiR@MyNOoU3_9aIdkXY`fo~u2t0%t;ts}&!}0PX*gLXE6kZS zwy;cds})n{;h($r2pzQhr+IO$=;@O@x^XwVHJ`;Mg!lgXH9w`PyY;pL$Fzl?^{??4 zFsN*0nY?qu0;yvaJ3mSI=~Esy$kU0!6#T^1BuKD&3N-^7#FE3Mz1UFJEtH}QJmg$oX*t22)~vm|HleI@YU zrLoU@$=>5rjLfCZp5avaXi+wAn+mtA&6%DxcE#7ix^9a$tr82ntr?(Ka%*q+I)SM4 z+A}lG>SdMI+0Nm-&3!4RUE|uLyc10c&$DJvN`6~WoA&i%jLmOtQMa3xl0RfGG?%Sd z_s#Ls`UPR9c1H5g>tMFdxvaVSi=62Dp57L(cdD;`>Rc1BI=+wbArz7-On7lyy5ssKmX(Re=j_Dah3m>8Me{QtLzS{wLa>xXje6O zz2qMMU9**m&Fv8~p@|9Gom(dxR-TP}94R?f-H#1}*qq<@!1}t!@_Wqg6>WbVWY$_m z?VH?p@lo*ahhLKOgARLW@0V=sShIOi+0kgznmfIdW|?JWsVS-*PI0b%INx*TaW)N~ z$am$xX8G@bQt5l~a^4a(rT;FQEA2CG`R|(f(|Qu`OVKKm6I(tr`_EeMb}&=J)+6T3 zLVfOEf{njqw;$Vn{*PP2!eu-mZ_jDQwf$B`*B z=loFFE$wY2_w<3-t#=z+Y8dZp1pMQAtNuk}X1emB2e!MeF#P=ZY1WZNt~{#^WHj}z z{1N!(SiPm?^JRXdp?*0_JHfv2qqGWV){CN|m%d#h3XQr=HV|@N9Vzc9m&jJPy^bdqoS@{dN z?pK?u#d6{KK4G>wVu$l*l?SnXx!JJ!uMCID^qEP=4=U|8+8OS&e&I}3hmZU@#vPT; zvuYm6*?gHObLT2=>f}@V6lBiC$qLplvj6m#@ixN_s~Ww#Cm$7;g=w-moR{?};jtDI zT(m~RYkGID?M%k2nS5S9&MlqF$gA@9*<6=^JFEA0-G0fWRNtX}@XKlrHRG>KIh{iG zSS0IBoo$|#=HC>d;<)VN_RsRi=6*iJXPtGaN@dDf##5)$crLB5WmvNOjOUqV)AZK# zkCiREqHaZbG_RC5Xfv^@>#XLBGPTz5x83?vY|Wc4t{dN^*0(#KJNTtNbm?7Ld%*(> zIOhtpy!g&>GJN6N>?cZxA07^GnymZAEaVG+)}53MM`4?c=zCcb>_ZS%CF z_;hydgn}QRRy>R~{&7HD>DB9FW}7#vED7^BVR?F`JCMow=H-XyjFjZ;IbP;IZf7jG z#~XV2t7frE@kgIbt2-0a7XN&5s^E}n|LGS~M4Fc9@z1|IDY}Yz#Si1+Ss(eYm#f7Es&9q27|1g3xNF(A(-1Aer)_OR(ls#`x zNGy^25Eo#oapdy#&XfM@S547a&K~n8R3RZx`_5~ZBU5)i)$zNeu=eJ`F1wo+1vj^B z(+cLR`g-{@WBu**hM#IHUPrTHLjKy=ie+fq&=wR`f7n0515OeS9r$oO=3*7W3SLND$7kLDeXKD5p1p~SY! z(+XA;KKwNOo8c6<`^*uNeG0bBGVIqjMrnTj&7FL6qetzW#7wioAFl;iJ@ZcfJdn^~ z5vbkuJN@nY$w^Px#aDeecEK-qs>qKeK?XLr#Y!A_SGU)moGyK_!}+R1p?vdA0Kr~reJ2KxJI8`cb&(MoLvW2O9eK(`tgC!>tFa3WqPgh!e zed@~ccn{vJ)$i(4zA@hvpL(jyZ~5}KtJO|l%#ZtX(RcpCc#HnSDjMgeHs(C}yDDaK zVUkhLy9Zi3^d1!Gis^Q~YCe6hbVKs}BjTrBWcPK8uZykOzH~)wLZv6~1ef-()4!T) z+&sRmByua#u(3PC2x0PA>+NTA8yBF2(P-j z`F7WKbKSdaoGkI*gYQ&37w|v1XRLJg_8O+}!%25yTA6-Hi9NNSp}0!T`L@%dMV)c! zwHXuU8%BpM-nu5SKtMRqs@P;@=N0z+PY1=ed^|seD_Oown%{A4qVm1+Q#~n{zI?3a zzo91Y5K((_{bv8))q3@KOqkAte>@#L_T)))GKQu7x zNa0?g7w>AHt=r#sef?+qsY+%?%pOe6R5`wu`IVm7^j{3?%U(xBd{hvdSNM?ei^MGJ z$JdRRCYYX`x-0z4z9^$zd-adJ*dZ0Kuzd1`Sd-xQN^XqLrz^bM9~hFnr>E!hL&2o= zKV+Uh6O!3ix3l%moOQD2_8B+G?J7)oR(AgKh6(<&CT$GAV*a)(Ui38&n~59uCsxyM zS4y;ILg1^Ucw6aHqT^O@Q2!On!;C;uN}7U=rQXD;_M!-mn` z-{#}wyC>dGtLKQbx#gkNHz~i}^4QBzm&6}Zx1En0OrM|GFKzJWOn~ckF;=JaGpkFC zzf940n$NZH^ETTYuh_qW1v>&l6F1JZ-`9DdLqu+sUHP@$TW-D*xi1u+BJ0pF$MJ07 z!XN7&s~mgg*Y^3js5tkf+&{^6dV=ZkY1`)?eYPU(%N75_j<>n_^>kAt_!OEIE9S`8 zlrOf{zb5cw$*rXs%xB*4FwXUS*D4b7l4nDP{hG}e=TCGtnLE$bnwLjzL-nTpxAU3n zS890iT*_azR>gxce^$Ve#{JuG8_$VvGnhPIg!lSM&I{k%(zwFkHSc-)RBK-81tF8C znVEsP@-lBt#9}_QxtU##XDe1Rl|CGG*8D1K^jGhFrUHL87Aybc*UVp@ap=ab?LVHV zOh`<1{^+NweqY$ZMErKLTTE(~*7FM@0&{!{CN(YpbTLyT-iFCaQ)I<4uba;%eU9R? zxn|RUdYyY>v6_YUn*AGBac#YOj``5y#V)aNa<=Y8T~8e~*YEglB{7fRe&2nuC;c0v z=j?aL;rQzp$-x%%W9E$DDuwEUKjlu%bu=ve-Mm8V%|+jgf(^^|Pi~p{Js?0M<$#D* z-66@PQpKjCtxH=I*0g^4__bYRairr3wzN?F+}S+Ixl7Y|zNMRI37om(aJcKH|H^l= z-cM@(&DbvI%CEe+I$YOup31fD+fF9FpY8EsG1EkMHmA<*ceSq-1=odb(_@{%IWPL+ z7B{nI&&DMVU!iNi7oSL+{yQm0a>s}0 zvdl~E8VqMx+uzT<_*7eUP2XhCJ4(kl-1fY<_QThkQCUy6w7z}(PiX7PKwVzTzN$m> z_?{f^n<1?)__~SpT%AdU6~l(m(9Q|$O23vcyl(vxc&gy{l|>aZU-tUt_bZ?HaC3=y z$X4m?B1>N!?#X|^@wGA5uI%p`op?pl`C5x+D$e&=I(t&=!UsM^>;-R)W;{DO;pn5! zs_%{aKJcvAu;ROF&4<=_Z`=0K<^i=4FR(HAHJbUA*YERqL+<$HS=+w~t z`Q10G{jLT7&gp4d>aB78Yr0v+?W){|ir*Tw)8=nlVtUzOapBIpr}oXdb;n^!v2W~S zi$lUsj=c-I+#B`p?c@hXS+}u^D!pcrn%;5evqwFb`isjO@+uUK@7LOiJ1v}X0E#Rn!ow}wAXEguxh;AwfYc+`(oxvM0S zjCc3=e-d9J4vA8BU*74A_^;6SM`yONF>kYZ0CnU3T`qA4QoOLeW zEGJg^e3|3X`RLiof_2yL*CqMp2PZWMZnJ!GVvbWFyS50G)o--W%$B`1Q|0=pXSFBIR&s>>U$x)@BkzyM%{{Z)9ohBnjW#`60rbElSxW?|c>SGTxNaN~cdoAt)lgz^4Ie)9qu z!|FA*KiDfKmZ(LX)N4|hCoQu1O0xVP!^LUM7eqOjIDUntYy622oOigb!$QsA`-GkE z{<6jT#I!GxYVhB)?6CN$cRRZi?lrGr@14@fT6W2_RQap-i6ytDX8P{7|7Olt_G8PJ zpqGYIOIL5)yI73>IZC2bIygJ4)N>w}CUCZrqP4+X_YYfjOcV&j$`hMbt+d=C` z0VaXRCIpoh$)8dRFkHdXJZZ_9Pk%Ntm8Ym$SCzF$Dwh@=J0SnMEj4k~nfTxO?-%j~ z$yHrRk4*DrHMCEj8QDG4ZmDGK4VINrIZ{EaqxXIi(=(g)`5RjqpC1tU`~O-@h0x>ICl#+H|2-jb;CaK`b^Erc zH}7CvrukA~msOXIf<$VMWH)PhwP5r={i?K_RqIvXUz{~*N{UFK`7fatZ!H%IJ&@`7 z-!J{~$YO52x_uQB*?OO*OuDtijY+Ue@zkr_J4bT=b5}p-%yxfpX7P*8CpX`AU9|gr zY{!dNdh^O>EI)jv=KHqu)!QF`_bC&+ma+W)+ZENm3w#>4erHsVJ>mEJcYfaachj!U zSdh3Ubn5P{Mz5?TpD#ZZ`MNV?4u^fygd-yD`;YIapY?>NaLSJT`)`CZnM$4bz#%O7 zdwbl(y376%=O^ua)yk%DW9jcR;dj}$|Mc&Q+ao^d^|kwpXS1+L2EAJ^^5g5dYLgw} zf})idOy=I>lj{1W5MU7gEt!u)BZ6kax+iZC2ZN;<@BoGZ+?++M9}o)Ni!Z4 zC-P5Py6120-QawgM;ku<%-r86=IyxH{h>g1xrWBy=$O}&FEGTdR@(RG{ax{^1yM|z zdLJAm9NS#nrR=?qdOK~nvdY5l2ixndp*vS=)I>Br3KaLZPJ1f#=Hkf@3)Zz4<}741 z4v$lg(pg!aclM0bA4BU-+mia~KQpVpN4hKVTu(dR7ppJru5ZSjy=;SeMpQ9NgYE6* z(=@gOA9K&R-F>PursCDjh>3y4J)CzI3*KM5>fE2r3qq4xPTxEBq%T71ZR*_{Q^emj zJ^3GLGv||yc8KfF_09~L`4i?^?ce)&rg~y*S>J1K8@cjYTPdE}^Iz0M?AAZ;jMUre z6eZp7@#Vron{brF%mj3$2mXTf3v9kgz$Q^tG+A`?_YMBvqJWEbHc434)4qNw{E}E6OcNvpI@u39#cT#in zsw9uh^Qobac%NVGzOOcg@lj6~XIEKO$~(2G%pd#W4#=|3coCj@KPm0x{;d`kw>Egk z3RqlCUwvi!dai_{JB(S1<(Kwa3huZkpZ!@ltM<*Y*B3kH=pJn7-;=hu+tIlB%*4uw zCnt5}6WpsTwy8M;_Mi37Q#)F9;`%wp_y4VLEp$Hi`F#Sv<)bfxGt}=!uHceLIIOO= zuxW8x-xG#w4S7>70u#~*pUI2TD)xN{zq#FPTiw}1S?cAHR(uR{H}K_`PVZ#*Gr0LUYzmqR=K-5Ab4`-oI^`|05m|EO@6}~VoX0M(IAo+8K9F@`8;gpFbhYf^V>>+e2-=v4IVokG zPdm@v=eXtfqiYWTR}^jdvD)r@kjM2sk5>vx8D~vf;%#*%;KhW@7oN(SkFIN+7P6%$ zLt*b_H~m$HM_Q&{T~+^Su5GlfVTW7eTK?K!68he^&;7l&f5#8kz*|pRQ>6t8&-qM$ z^l$#Zsgqk3rb%49YW(cmFQ;2_r(LAh+bK-m?qu`l_vb2q`SOcOlch~vWKL~gaqm<_ z_G{JLkE^n~L>?xjeYZWgOk-b8ocOOvUMrY3-&?$l`~Ao6w~Kk$Zco1$t~amYROYt# zisjqSIG&m)_KoM>;c7FzN8^gk$D8uLSXLBcKO?>!4 z|J~`&t4hk2Td@9BbE`5_I>6^PS2gySZCjh*rRhy(F7L(Gq}5+y_5a2%sjVEpVS(;x z)ul(-w66v6C4`&$OH5jQu&z+d^Fz6H$+kZRGBrQGvc0%hxLW!}vTId%u%+GT;1Qcb!9LAA9m1DfDY%OgLaC z^6qP<`;>#aCCTb7KPJUJGgR?j)~S2&=)4(i?j>y356<*4V*Px1ujVnE(^KYbo4g{r z!1e4oSJeZ@THePrzcP6L- zYO5r6-Cg$ow~~x<#sBraR$M5YOt%QoJLW!lY=l9MNSa{*ue^w)t4=S?`>wxq0brunP|ufFoXHnUT+ zni+j5L%rv($mwaBr#zV6SkCf0cHd<8^~cJ+pH!O?nbvrel@$l=XP>w1%)f=VepTOU z2sIMgwD?4nkGj8(ufkvTQ=aEoSJekp9x`~f(|qgd?E5kET`Se(y{-0IFWxH`p_6Vi zS7OJmwK84nd->;@*I#^bd#?7epU zPu%y5!p(12mf7x9o9KGoa8+&iHwpGrj7r}a_pe!Za!a!PxqrvlIqJU~6)raYf9S#I zN}1CMHCjH~PgU*M>|{B=X1Q+o84j`8OI~YjyJo$p^%&pH#FrCf9KMMbM0grmWCbSe zt~hk=mhi&xzj^I~YiA@F$-bXaaJj1~dZYf$#Tn-J6Lk-k9IcuYw9<;NH?KQCKIQAK z6$>=|#f0@v1_WuvT*`RxAtT%3TA18CGXsNtx0&8Iy9Q^6_4`cO+jdOb!&&!U)>Nt3 zMH#w@R{F{|^A!%vKasZUifY}XC51w>730pAPY|}YT+`Ucs>D9^N`2LmPMNig?3It! zT;1&YnN^#uSmTtec9D5b*s&iUe$|Ag-+Jhm8qGVqgtLs(aAnHcr*AY0>z6!ib-6W5 z{MA*5;92(>*91IJ(dpo4`D*;LOV&7C`<8e=Rd2!6>V&=en%3)0WcYKq>a^POE&FCmC@gtXaxDAaq5qrjtzLeR z^X2CnDb=EvPyZY7y4eJM^^V)VMe+8{)kor4*R5iBAXM|IZQ8ptOe<|3+i+g_73fu; zew3&0Zg|A(x0=F9di!Psec8(CwCBv{;#q8>2OToER37~l^i{+oocCVcZ9(RDmk$3; zICJMsS?<;|$+wsPU3evOnRCP z7i%0BJ+t`!eu<^;R>^uw)h-d-yLj8>wN5T?Y_3eKPWz~n*%}qg|L$ghvCb;CmP$9h z2a%};5_8n!swPbB6793Q!0EEGkmtIO)zbz4xAkq_U-t6Hr8=>=wA%*E90FbMnrq`j zQ+snC=uhc0Uv>La`2H3{kyDGa1xl|bNORX*|9tKDy64WHpHGqJTk<;U|Gas;&WZ8c z_46Lo2mUv(yiolud{_4!vv(ZJ-}rJR_ls)x*uLNwtUOn<`N*M3c5SE4+AiI`pzz-y z&5GZGiFbov-?bkna`ld8EeK1|6JebFR{feXgA(8MqldJQ<~+8UY9jpM-;~1T6ZKoC zeVnmtne^oYQ@^fuJ}jRc{akDRx2*eYKhH0p=6$I^^R?HtJa^7X*-0l?{@=ODi!)67 zkYI44=z%X$MjX41!<@|CZFJr=;ag6{{XLgt?ppeNSQfXHao_9pCmq9u=X`SXGTG#p zuRcd_-5kp_-!lg;JWE*f?Ab|YG2>O&&9-J;I&;&m_lIk?|Ihc5g7ZvY8O?Kx>+cOT zxnvbC7@^U>d3AgEo4fu;pFOt^|H`-jb$i+&ms2)R0}mFcAHUPkp;_~v{iE%BwKnTg zH`c=Qi>uuhU*1vnRB_HTvD%t-b9Nm&tN%Pq=Nf? zX8+OJ$@RHY%4=S{x8tJLV#7b@_TDbBKhD;$eN*cHOR27{{m$hX2YMfQom%ltTmSLK zTQbgGPAd#f&X_N-$Rv*;c*BBOmhU(8uiX%v{zA)TZomchkL)j$Q}^8GUX`B1+R(V* zllkJ^6AH8?<nr_{P0;Rr&A#Z8JU495VglwDX7FHJbkns#B0C`Mt3*3P0}8 zZF?)uKWWR9;`E&_3o_2w{SRkL%T=&YVD#F@Z`-8yASOp+uS?SLC6ZB+TMJTdu9GX2 zVw$^Sbn}vWGrvX4@R(UESf*@j&#`=wFhN3O7Zth)DeYSnBvCV{sz4ktZWzh<+-yCBx^<^0~Ez30A`DcZ!??Ymc-KL6pN z7tTd9!e$&$dsleSB`t1|rNYFe_tpq+;tG7xud2+i7-i&LhD{0tm?#CpPvTXqh_7n z^5zKZ)&{QwmQysZdtBHZv1U&k%Nh2EO)C#p9|@C@yu|)d>EPurR!?g?Y>mD={&D~K z!&^ert3PKf%`F$sU-mgS?X36xBW&z){+Bz-;=Xr0Je=jvu>V-sw3Uy7qGi*jjRjhFYWowRB3g_RA`M-$gIGYiLy_BsjQzNU6`@|)R$_E)3U2}e6~ z*a|LeI9=kf)FsSv=AVn}9~{c~r17KQLr_MQaks(iZF8#2EFHDdlb;2yN?0Q)xHV+u zL(LUB^*oU?LknEXqPzuM9V$xyB=_n?;*6E{ln8-^m_Ol`=hP?}TOZkMSqz1y5;eIdr*Y zy4TdN_Ac|x`RfbshG#8bEUH>IXF<|+nUx&63l@EGZU0v`r%B*gbN#kUYp)B5tgL67 zd+F-N?8ng^QcJ$R*sw?K+3#V_I~3yD;#aR0=W zR;N3=`^U2Bbvp;N;YH+`6 z;#GZa6|d-DsY5X(S}Jq66P5}tD&B8;EQ{lN)7$rVpv_zYABVbsM0QUK*vr-u1UDMJ}!E zPG5Sv`}E`;4jD5}uU(P7sPbgi%(VGT!aL^fUOADkl2?(9&&srUZiBp5faKvVZn?tG zXHP4g{^RHs-SP)78oCuG#%=D{&0XU9VXK!VbJ)dIrc6A0BA@5{@@Q_GQFQWTy~VRR zxAGo~xLumK;&GVHmiV`qGJmXm?N?~9`jpiLv0$dC1I}mG*dE$=E;;W*MD)(&oc)!P z9A~TYdI*aBah5z@vhvlmzlq}OHCY??N;~r$&z~x8kebt~@t3V<#k6lqnjIacdk#7 zX-+P!v$2`rxh_#IZD+PcCtKn9)5Q%hA8h-drl%~O;v2!g@q^OTob4-3URb8;Hf+th z@mu4lO`1w@Utq+-cK)^Yfl>1XF6~M>qM7#O_otu}ZyK}?Tr0Q{c(2^WN$U&$`8NKU zkv}*C1HW*XCr>aADt+G&zh`Onl*#|jdreuKR@l4W_i?f^!`FYQefNzfExdU5kfX$> zm1o>rC*>K$zqa>kQkwnP?XZ(x^|2jSdS(Z!MnC=cX8RIt8>j0Vk6qHAAH8W_>+AHm z59-sNstapqnqOdEcVRX6?0 z&NCd(;v@DRRSlVWS5{m@=tqoh@|Ec2j+s{j?42_2F*a#S#5b;v5;JZ8+D~G>zM-vJhBxCdf2Vr-^ovPhLOdnvQp|N-OO$ezu2mi8I;HzD z`rZV7KUv2s_2G+b*iKy7os)U>V25|v1Ti+33;UyMKN0dtpGfXB}3nd+KsXFno zR3iDd&&KuAy}kP;{kK-X9V^Rs*)Z+xYr$tW9=v7Gn|bH2EohNv^%NH7xuCvr>2dpy zS6*$8KL2WR%lhzFJm3^R{B6z7 zo(|t>leJY>e45n)^FMLrl+xcw*8`2y9n=FkL+*Y3 zc4Kvn?au3KnBQ+&qIxBTe;voHi0KnnTmIUzNld;hYfGBK1SY1OJqvT+SW3KA*ys1B zzfxX%3!8z-1i6likXMnMFV?f#{>sw5cf$Y0sXcR94~0!>z3KQZM~boP^S3Umwd_k@ z24Cy1+R}QHfp23W9A#|!oDd}M#Lmp!#&(sh=a)f|W8lw<6!PZD&PtN!8a+-z0h zJ5hV$9zO8Ye{uhy<#yKdRWsV|)~s>k=lRGmfzk0*wYOZ#*WD*o>aMM}o;6oUZDN65 z!yg77p)Cjh)?BhaaOv9b6>A$+tXDYAf8e@ovWCWWzmI{AEiCSJoeNke^F}{NzT@)y z%&X%LtP8G&bM3gjK~SvS?lzZQaO{>!n@cH?t&QHB9DJN^z0_Ubc=NT0rkQ`-)i!nB zYyJ^e-(P(fVo@&TXdRTgZ9(YmW!-K&_L)3XG&WliaC(|xn!qe?e|>Y7D^DNg?_tU7 z@T*cX4lN1}et)v-Vr%t>PrVDX9=`h&YW+0rqhOf^Q%1o1!vS5(Pn9*Um;0txtz~;e zHeTrR`6ITTkK@#$FHE?zO8%Vwo!@ug#6S4G$LyoT-}O#fQAHiW3KAK6c0ReXNjT5d zpW~Xw>Y$HP0uD%d7R$6~p4D6WF>wNCPG+3J<< z-)h^Pls+rQo_n!Bc#dQ~vz76xlTWe)*B{plue0z_nrt2#yRxT&^Bbu%9%eY?kG(&niL_GG?Wzn>^e7NZ8+DN`r^@x4e%NczE`UCbl%ppXL=S_gcPd zW6}f>p#|AI9p4o%IBj|o=#{Tw{(Y_xCu6tgmwOF9$FsUxHJxTNZ91{@E&rD`scUV; ztM??ID&*!@PIC~uEwhk%d??hn}y>wiADV$-@T#y9;s@>gfw zs$x|3Ra##he#Of;B6fbt&HKLY4eywCSj9-&%~zWHb&+@Q^Rr#XT&+*_udl4CzBJSG z1ow-1AL1^)yT|?6_gLczet+(TKdmp7Uw$mLe=zX~Fm9hQ&u-3s9p6BMchkQgyQkFQ zbwT^{$%PY4-Uap4<-C4f&hV>pV)Y@%>ldcKKgHXrnYek&IxqK5qhJYv+aDj!ys~9I zd+g5HO{{twZOG+vi;c?Qiru{yY02Q}c7hM)B{8j2&C&NKW~#+`d;OJ=5Te z=@z|1GvZ%v)yO;fc8fei@;mKT&vnmooZJdhWapL~Tli(^l82S%f^*IOOMSVRsKvkX zMgBY2IZJMMKiS%-X6l@`(RFIsH}Bp-;)EXt*J(h zAO4Hoov=GD^T>nG5n^#amrd$UJi_5}R=spT>&2Xab@QafcR0K)S+)22YQZp`3miFH zUHtZcjEkCc?b3VwnDr~qdfyX_US7FC=i7shUpv3X&Gp_jWoN4B*DZM`bK>ha2hR?> zt}W~zc&eJ!4?)w-qskU$CgQZWmt()X5^HNax4~vd&$mhss zto;YnX0;`^o@5kbS=XAsZ0q`!d0g?mE4yO2LKhT^rktGI`FTcY<(rj9`YrCL-3xyj zvUAtwFRLdmcPaSIdwyqXFLSWpYR%5*-M@l!qe2d;zth|KP-9lrA5ViyrpX}-*GxO# z@N4eFzMZUml~(nSZ%<=R$(w1lTgaAW=OX#Q)%#yPQhm+;>Lyp=er@w8S9*I4|@k!AlP`tV8bkc;2UPf1^_o;qgpLAlzVtJicnkQa*pZMZ*&(`0e zw13Cl$;@ARtuFD^)=ZD6(fPgYPNYivpEc~CUOsYltlfC6h3#Xd)uP`bS$D1)OCjdaBxk z{-4FK8uz|F`}g9se-AXjZSZdodAy_TBV)ww>Z7&GuTHj={TWw(O;w{*KW$d_h4Md{ zaw6N-DRJI!+PS+z);Bw^p}E3~|ofAz(oPqS$E)`(Z` z$MgQKV7dS4Bj4x34UCCF3TOEeb)IrxSmk?s+MV(v47`szoZQ(MQ!X5PbiBLGVqw2D?j=OWAHuJe1euC+^Pg_wL?cJ;2^ZKphM$%0(@<$GS)PW9j8=yl-fRc{T~ z@N@b-AI*5wC!Bk4<`@5UkAJQ#J8}DmZ_=jNpF6a*&Kv1h zN%MxV$kjDpD%w|-{OkCiRK}2^P0Dt{dmBH@zbVIT&zPjR$@#u}@8_ixbu7%J4@vzi zm9}B|rTY1e=rcKX2f<%=15ec(tHu4kxlHX3%M-PeyAGU`^(j*=U-0L^>i7kpOYeMJ zF}>?+Zr}WbnLgcYtOAo}%#d33$Z?O@r}*XDRKF+4I)WUqf8AXnMe*&>YL@UM+`Ja%wU(|9ZVNy*0nm->>0x(=vtF>3cJhxHp^H zT#MhBFe@aW=wy?SrH2 zq!YY5d7tQdH~klw_y2mhO#gp!hC@eZ{6Zp9#CVta7;qujf^;&aWfr5#wg zdg;{7JFXsh#B3T~z-B8ykEiOi(cyCnvn?~1&$}QSP$PML^`jN{Zx%BxpD?#yd+jM9 zhaYoU?%(T~BDYT{`Ji;(EAy{+^}O;~JR-R4BDL}ae5I}LgM{GXEyI4b%2Y zd!)OmMen=X67(!^Rzmcq6vM{_cQcsIxl(aBye)^jxB%A#%>S$Z@v42 zWZ+$)s}w0~QfO`3e^+7_O-$v*oh ze_Jl=+s6KPy}W%#mdMpWsa4|T^R^lM&KCLlSZMn>iTzujb2W{LL-T z{2i3>@ZPcWeC%J7pFDr-6&5(*mFlL&3Tx_Y5(19eZjaky?au4@eeN}ecb6_kJmR)E z)ZnteB*5+VxoyvWdECC)EO)EoictSKHon)w|D767y%jyi=%sC}z}BQ!GgBpV&Ftj4 z$FE5rc#<+P#VfexgT7|;gQ_zuj_MmG?G^aa@ZMuLkAe8k^ofrb{ABuQ%94C&@wLcT ziFadttJ)3~nMwQK>uGb`8vZ8g+s}BT#A;n#t+!0!mCY&4FAgahyq!>Pd}>1HvW2&o zGmEF*(S1B~$x4N*OIAp8*Dvt7)^_Qf>df`Cp6uW;d|_;_EEu#rJN(Mm%^OW~Is#mx zI=L&iHOQ-9h`e}iid=v&`{u&F_qmh4Kf0wa?D_iF(riJ!rH7)9-*f0z^!=85a`M9p zJCn(Wb=8+TeP6h=Tlv|JgEe7%%ks?ZwUw9MnREHZrnS4aBqb@uOk;nMn6WT^PMzhX zqpt6)0?*8Nu+h&+plIzUquV*wFS1N4r~hM@@QJu6vOV+POyy;~6$*`q{WrZ(lFQxm zd4ELI6o*KeU3(m^&HMJcj#2OV{Puq{xI6SY!~`1Vb*!n$kqj(yK9v>ExRT*9$KmyA zc{d8>qa9w%&0cfI>QtK{&#o_yoAs*=mMJ_trZ zqL6dawrUO4O4ZMV`RYPW=1oyZc7DC`=B5)Xi?&V`IrNj$Y;x4bhfDNW?W%cCuRgP# z|NYNoiKZLJWh!m9tvJ2n__-w=Wh-{Hz2{e+5iNgg`>RhIFNbICJXpn^S~2Tu;mdQr z8xM)evu(UQ+vh;hoadLm9@12cp1M1|WXoB>T{EBepN(lZU$!ddW#!Z3pNo%c%;7lC zRpD`f&4weiNB(S7ui6ihqJ^tjZ~NR5+!z{`P@r(Uq0=L3-uYjVt3DS~cIe9b0mwzxGTq&-X(!mYZ=~RervaFg-(K z;dXw_pZBz{ygL2p%O%!u|6es1e>}8$t9Lc`kv)@>g`Ic)63#Ch@}iO$&mMiCYtt^h zDeQxS&!;~MU(Jmt=lk5_oE6(HAi`Y8ajvdFzD?|kqtiV@`z?LD%YJ;7y18R}n?T^< zf30;pR-83#G}*RBHJq3s*Yyb>H}THt^)Wnge#WYtHXl-M?6A zQ$MN!lV2gcU+OC(+Ue~=^d$3b7BlUhK zdrRce?`v|ar+lBVc_*)Xz!BrhHES9jPfjdd#btK9!=>hy#}AuV?kx|h{kcPGCM|B;DoF~>=ZV?u>ZPto(DVkS)7!QUHkdMkA*hnPKk=I z*B@9cvdr)P537G0CtjX7O|1E*XyG!IEPKH+eZ~pXSI(IJ(D#(*g@exp;%B$-oWGW3 z<~tXmuL{#@e+E8fFey{xpZmA3Lt&q!F|(k{?f>cQ$8J8z)e1S*oW18;;fvqq>int2 z^%nb6^DVZ1*EI`|_u1~7-6KA?U9ixTNzAOfz_2B0ZG^z$T_1EFET*8Mq}$6i@1Z`&;O^IA{BzDbAv zoY(p%XFJ2j>oETw$z3aB=bLm@FKDg#I7gAMdxCuC{#_rvV=jLy{&V8u>g(6C<4v{J zujW}}!I&`N)-0pRPgdx>I$k{GbzEa>%B3JExpnovM?IZK`wo#@or) zcQi+qa~PCF)oZ8RoETpCV5e!&z75_dcAP%rquYGAN&bCRRoAQ8Z;xF#^Prf2*RR|y z;nExahEI09BE|UFy!`>!Tg4+HjE1foOj}uMKHt^AtY~PUeg`cLZK6{O6u>LYYI&Z&Pm9;+2XD zHA{Y84Osekp_#xcq4)dtE)SVq6tQu_zGpX&zP>o)-2bA`d?82oio^{+bdxd*j^`Pd z%g(+Ky5;HVWj;!M!Bvc3`}%+EtF2^V@C(0lEK=REYT3(A-(3#H3)g+W`|f#c)Rp2D zJ*&UEcKLq275igSgjcESbESs?v8Gqzo?q>s+u>xTX~yXI?A|S@h2~Z46PKng%6MSQ z%{jNIpv|5C(9ylqBe_cXpS-^AC08yO;=d{KV@cGiFCP?L4tJ;9pN??Wc;x%Ux;epS zj`05~?YK0rFtII9JQvg{rkQbk&_BOJ^`?@PbZGQZ%L6|oC#Hysl;*hgbR?BbT5$iO z!2P5O8?R!QYX7FE*T2UV@8#cFoYij8r87tRm|s|bdUMjcle70|$f`0OGilhjt2U%W z;N%(OjEn3QE4{ML@7CO{)>PM@>+xj2S7m1Ij0oL?0zc3x$==WyLcO8)2SVtZSCuxoL`*xbf3%LW!q;c3QcamH=Fy? z;;&q@9vUY#uI*Hs&bC;%=2BJOU8|FP)yKn^tU8{4O=Hir`IFo&ErQv~!uoa>{Fa>h zA+hw!CGQn`>I4+#-}$8dJk3ub{bI@8CBMtH_cw7rb^OlqGD`1bYRBr-T#52&Z?x^* zCUHwxew=gAA-spxlQ%2DD%&s5|Nc()jgR|Rum1H@pu}?ZhpGP?T8~3&+V7}zw~}>RTpok`<;?swP&^V zGx-bkwqDeq{7+e1iYdCb_Osv2{x4-(AH!=V&rNzUX?~{S^wobdmi!XhI=A)8?qsJs zM>u^_{q@ez%#&Fw@tMu*^G7C^*K86q4%c3`Yf#{<4e8UpEO6ue#=A_5bll%L$9-pr zUlzHh>i%-xINzsLu{!KUvu7`?Y`Um#eQk4{2lENjgzNWW%hmF2Zk~Rgu`b}x<&a?i zEnF{jW)}Q!N{iTgwa|HcTEfwW=%+KHd<|dP@ZDnD{?Q~{K6|RW{nK~$`+QoR_g?2& zYiRAL`8(3-pZn`$LSG%_9`z-A=(fH36zS1Ep`%YT@ESOPk~~EwzLzMb{kM zKizSAP_}M%l32|gA1-@i;pxW%OILp0p7==T@r&|bJ2tJ6S`;MeAnSE=#ou%6{yHn{ znfJdtvn}p=L1=|))Y+v~QhcY*=bOFT9HV76>3QM}^8=~Ug^sUYOtLbZC*s#?*fdQn z=JDE1{C_+3V&1X~Jc#04R9)ukGwqsl-UW_Bs!vO96kRO6s&Md`#gz>2*QbwN|9WJ0 zpTL8(=u+|NFU4QoW!tZMJ$+71X;mRtgT&|f?(Huodd$t3U@WC^B0{+ID0f+t=h1)X zPGA4KLq*SH$I4Q#kBR157u1$rRQh@KgPria?RVz=dhhkhlFKNBxA6x5-Cu`(^laLw zl4|^Dj)6#6ytuT~9G@5RMP(~&IDZF37#Ai@4R9)cvD9?$n=`Y%{}8oISd{DaETh6} z%H;Q7v~ueDYBYX-m}KtmVDPGF&$~y5(|&K)xl~@%jHo&$$?D1Y8)i0#h1lEiw+A-W$EJb+Y;n(Va)0h&}Rt&#hsj-uPcrH23ni zrz)RKW_UP=Ke@b8I$MT$mQU#qrK#&4zu(Z*zI#^invOWD(|K8&`u3RFp8nv=c-ZDC zd)C<=+3)+_mQ=2>ICpi!2TMtZ1-)0jqVhxx}B${XVpQUA)WugC46~Js5lb;qF5=*V7rdM7+O0SEBIUS)uyO#=Wb* zee3j)TGY_p$y2`dd6e9XOBas|zUA3`i(}%6%Xdn9!ni*K>#EwTGC#Rnz+S%QVo$rn znza_5fn4Q6K;ih<|pr4 zo^rAF^Zdi}MAN^{JAE#D+Sk52Jx;l7;gJW8yh4iOr!hP&JQMuu{!vB2@6TUY&abFk z$GC8&(S*NuO^>}^p#7m})rFa*B^fKT!`4{N=n1V+YcjRuy1jIE>W?)I-=Fc#(OxSV z{m$Lr;Gd>1(htAsk-x+TF#%LFh*h|GtL6dnMmRbDUaO=pvAk*2;XHI{7`{LD( zKyTN2CZ^~&H+Hp|m>Y6z$XqS<`L>a#O|+I_1H+CL)0ne@JbbqCazDxuW6hGjob>a* z#+!*HsyY9f5==a}wfWu%b9n7N-8VT~Qps|5lsI2F&y2D#^RIl{Y^D6KmAz))yq~%B zv+INNpSSy&U*!C5bpO}cWlyrtvToR&`tVtF`B&dV>t470eO&(~VwIzhjX>DhoX5AO zAAiTz>3ii(mlLCkbT{nnyZ!vaE$wb; zgQI?bWFB7jGXAonmp8ueguMHLxE*0Hgjz*ET5URDQT^PZ^-#0BmW%smTY)XhcCjuk zDVrW^`O2d6-JUlq7w=rJp+_OFh0Y(_pqAKw zJDBT4G9Po|Plgr3*Ux2Uy}Eo?(C5sKS*LHVR0}&@SLbB^n(bv&lBV=5_ZOaO#j*cb zmsEsQe4U@LBtH1!inF;Bvo@V8H92#lU!D6GuY%=#>%>{lZy%IMkgo|8_sW-PbiI1y zRojd0Y}J9xOMT8ba)@q|Q`y-2>D>bH>btL3xU@V~nP=ZUq1~Bl!>MDJq-F}wRr&nA z*EM*{d)+H@?*1q_C|>@()BJ75lNjaGw--(j{&0bXRdjOlHKnabljNd`z9ziTJj6Up z^2H@aJLdSRO`mOMt`J*h5U2R~Y>&m%&64%jU%aHd|2=q+yz&T3Z*$azpk(LC&6gX$ zo-ICUXee?bP2fOSsh=ua@$#;9|2`k-bhh)gYUpx3)LG?{x#sxE`&{8C?o7&9b@JM# zzE_u~PRRH<%k$rn$bH#a)l0Iq-UK_!c~9%&GxJQFIw^j_k5hABT(Y~q{?e_*jzPU2 z7j4tkJtyWBe~jZ-X4n0G9H`i;I7D}IP+{U<4LuBJEvyLNA7TuTTICwBmo#jJsujciS z9gVe;=l*^AtjQLfvf$&Ji)&eg1JyL&PO@7VKX;M;g(;rvo9t#WYS%=~WvohSz0q}A zC*3(WyU50<&OJ_B<@I`dTVb!gd5-4w8K3T~T~TP$pBbrqU_P&>)bCY!FNza3YIs-F z@H|dZl-(otZ&%?u_Dt;`wM(jJoiF~vIKlaM^gRXBwA&gv-&{+ZJZ@fKVdUSJwSFh|?enF}}Cj8yuzy{uFhwe`QX|iF{LC#(u;hLnG{WC2)wk==Flp}cd zg~Rs6hc1Uyh~=)>!J@zHH2WR5np55;`YgLv91?a7&&d;>Tpq}>UwhJwOUx%$Z&ELu zeIR}}qX);IpF7_4{4p1F`+xN5-=BwC%fAbK+I(`}-%C4HU3_jHu+NzwbH4fD`Y7$( zILD+vdN;Qef6%ye)-Zd%VtD-wp#|Hb#Vzf>pE;?_ma_l-8|nJeg)tQ-*WVuETC`DO zuM9X7#Jx`> z)8vzj9v||AHcQbr0qAE00Q- z@J8#DIP9CbZ-!oSVM*e-*wwX9mG;WtSa$A%l2OOw#)9{+9kTa|b|2~RY+*C3nw-+!S{9IQmFz3>IipB;X3LihrXQMNub3Zf z5^|o-t-U1vNlUNJ*MHv{ZWR7$u{u&OzN~ffai#r2_NRO!9E#SqsdESRee&R4e&1Lr zW_BW5r8Y^=ZhSNS`?htgf8ISW`1at4 zuKj9yy~G?XuH7_3n#^_^3_GKOUda zXuQ72G3SF%qD4EN%BjIJW?riyU$LBP48nW9j|HL(Y zYN1m@*~0fLoz!Qa+WB_aUB;@2^Zy;@0@9dYxvzG13kNn*Rqp3P5j@542Ip1V! z>4HTQ4{ki?ox}d(+y$R1=f~-s*4tGNdCa|RQKxbxSE>AMUHWzDeVe3Ce_+<)xvIbM z!o|BU-cG(A(d8q%e#LQq%G>GDi(6kkS^nUM zb@tS+ic^D66ueRY6ngKAL$hN%^TVwtFV7T+yLhTmXy&d&Ulq;&UnLfK9nj$YJ;~_b zlliA+@jR?}^X|gY(?_{8b=W;>n2)cIR*w!}_)SMV#Awll1^c~b8Xgz^9QNs7zL2e_ zpWeB&bMF_=Jh5Tx@zvR@Z5#6V1qCI_S$j{f=DBfu^WVSUFRXg4&aiRqv?(V9=9-Ca z$PVkc@~wJ%^MPkO8W*o=N$>A-@LT&_>vh`QC%-v3&y|&X1aobzN^$yQx{ULmqOiy5 zt?IKq_ek<^@Mx)QU;Ovc-vj@Ig+%xkH#}PU>h;QIC%q=t3zpl`=cHX;a_&c-8#(UaQE31JU)Fckd9(d$q-;izEKIRXse!(;Zd1Ceg8?{ml2t-rY4%4D@bp zue&(+%bP813M+y$R{awCyXck4z4x&?-`?_Yh0R+lwooxX1X z$(XRe0n4 zrK>XQ*W`Uwk81Dm7AtRz%Q(E(=JkaXiwTYYOm&U>j|I-X=i^?wn}6EI8_5~^yN;aq z*?K&qK{l8@Ju>$~HUF#Ye%)N{Z!V>_9*LWt@ke3NhoiF|`7CT;d8XR9rBmO1TjZvt zMStof-|VfKv!nhRL)L=g6`UK~x#bg2T$*zD(NvE-QJ*ZOeez|8?P^3sm&~_T|KfE` zTlRkC>>~g8`>&3z-S5nt=zaIB;O{y6-fsW(^J4hF_|^kA&6VzQsRcPirXSzDAxYt| zi&i=Jw5yNg<((!K<;*JoB|SPJ68z5dCfDU8PQ8CU@NS8JTJ7OScVF(` zZ_^$f@ny$L6=TCL%qTZi^6+q3>p62GJDw};%qbL*wI zn=fkK({J?WnVPrG*NF=kCKq^okl;R`*HMwibFfTdx!xI9k(Zr*ao2gGUolArMR@&E z`eU~Ilp}M1ari;iJB+xnOiN_lj zXQ4WezfwQfT0Ruoccgmi?DW1Ht1b&ZY)ITud?~He06nk zv6j)cFF$`@IsT{X>Gn-}yYelZ-!1KL5q<9e)ZAW!{gGXU^77N=KI_iNPMEBFR&b(> zgk8;-GN%P?{nEPm-T^%ul%1s5TLY6HfBpLZWSi4I(IqpZ)HIUAQ$ppNzx_~}eT1{G zaNR~ZX03r3)o)lm&{TO^)2Ey##l z_LGrymi31<*3OKC?BocSYW&_=#}vDc}{O< zUvcs|W@q+x9$)bB^^@QJ+rqO?e_i^&hOC(TJCwpgripzLnCsqNX;AUZ;DPw;*z}op z-;34QAB)=7tvizEQ5tng z7$JD*n9RWvwG&fTyY}#L^g40od9$fYUAtF(?#aT6gI6rGwY|N*EIp{#)4*NN%$VnR zVb!lK_G&vBzck-C6`3Fs(J^J-{TTrb%D19}`qOXks!hExm;cJ%DNhY5x)Q~6vzcx^ zyzlW%MDnKco`)}Gv=_21DJ_(Ebkp#M0)p*?Hf1qwRcQV&U%@(&F=tie3s# zSeL;6=l^bI)|0C?{O}TcQMV`NgpI_CNxxraWnP{$>)F=Fp{?iVtWsapcEuue^Y8MT zcO3Hl_7u1)Ogtd4V*1)wnI8Lin=2I}{~malb|vNXo3*Y|j|z=Iaqi2&o#GSntxbL^`-&BuoCFNUJF8Hq7;`V6~kNk0VTUnK2|hdT zsvA^A#PoLx&E2(g({XX`Pv2tg&p$C&S)pHLbYZ34hT>HfTddEP)c5Qx*6&`RDOT;@ zara9q^Qx>C35l)MjYlSjZ~3{hr)!y-yZUP3trun(C3jZ2Pxx!`SD1xyD)Xip6*}RZ zH_y7%s0FAWuKaJ%(j$4Y%+PUz_kp+P74FNppJ&Ul`rl@{Zh6hoxi-^0pS@E3DCA&u zaQ3zJw>R+RonLjn$EWb}G5e>^N>i(*+018I=;M%Tt}WgXR++dx^w{+K2dD5ZxEFAL z|2*rILyI_hNNFZc}K9A%-+Z?Q@p=_Td=ad zagM>IRG}^BHso-L`S=~s6PultCFykO@Q-z`jQd_VEnoj|)|-tv(+hQ+^Jl-$40!z0 zxNYD5ZP)vhDxzwh^?tH_n>bf)Nl=NN%$C*J8$Mlm^=Q6R(S?=oOF7Qooco=J-&5wG zPEGyuuam8%IzI?ViWPHxeXQfq>~_FOz2;^Gk7b1O+TvOB7Mzz_d#m8H!YO4jqx>U3 z_HzX4ALpO9E@)=W>yOhPdVYJV*LZD5qw5OZ5B_ideA}Quw?li9{6>{uGqSwdYI&7r ziF>7K$!yj5S^A=7?!~fyqF2>sdrWm+wr$__V~sKA`rX?_f4AFCQ>;Ihj~2NSChOu92f+60!LDgYaJ>YXp+EY^uBd{!q@vxbsanHa+s!^e=Kh ze<^;-FWon5_Z2G6HeQ+A&ce6gw{TP~a>p|$hi48`vTn@`lG_>scxK>W0 zLCR_E*XXMbGr z-{Jhe-}dFcK@oYYYxGhr`Y$WkB(v_ladcLcg?`k*w7{50>P#NXYL@+9!@Qqk(ho=O zX-~?Jn4gjt{dFZj>RQ`2!KoiJp9^V5NWOh``j%1kmJ2s8oNJi)_r!$)&P>yDu3uAQ z4u0CVw_%>a(aKvbXIF08$oo70jji_NWJlLK;%Du$w;epXQRF`JMFY7`+torlubb`c zh?=+NtKgOAQzODVun0GcK3ST(i@P%b3TWF_1w~n`1|J z0Owx8uIFwhGpr9^h`SsyZS6Aa);|r28?EnlKjWHl;@bTFn;*osRau#HzIgiRiP7_j zyQ`~|4DR@^2+mIxF!+0I(}m4HY;S~Zv*wAlj6W`>%NsIfd5&k@o1VyB{BKsybvUW4{Z`YCkm4dm4 zpVyuE!YX*~e#B|hj6}AH?H#P4L08tUi(a~)XYu|+TyAq%+r8Vqe_S2=$!kVC%cZ1s zU$k_UzeL+RZqQOTezfmOV4jdqva!RwuFnVR8}A)+Sz!Nd=4``R9&63nrgVw*9!Xhf zdMLN}h4t}C+Z6SE3xoLA7ba@H`8}D_|BFWM)Z|VE2VWgE;o$!4^!K%<%$%zgcWQXN znlOWTlri1SMkkPhaVD(yaIX5u>@C zr&$+1zO>-jX*b~wJJ|Pfs@DFvonHLBctX_tmXoY!=Cx&Bcl`ctYF^k&#+tjY|LI?| z{cx=&O?I7M?H>O;W$wwJBwG))@Ny}Cci*C`tR;KL>-P2+2UH|BOW!Ou6>2i7j%EVr7u{$_d~kN3;J9kE^xi(Yj;Hkdc(+pkH?cVZnaF6Oqaer}^KJ+Wo(S_6*| zEu{t338s(Vu?x*pJ+x-&Zt>ZxXS}|9N2o)ZgYA;R`UAgjq@3;Y_!@Bf-n7ii`)i8o zP5b!WBPQ40zmOCh$7a}A^iRm8REgEUdjC1adwXU*aB)+<8|m}(PTrRV!gZ?a*UULD zYq)89^rN;Cz!v~2^WSXj z>@1Vdx}Q8rU`Oivmp2Q&r^je&-wWHWV!Sb7uPmo?H19dqH>}e|=Q5lB_5iDc=_eTw+WA;>!Mp4G8?8XA6seUt9Na z;g6<)=@ujS@C$o1ex=R z`{%xryu>6fVQbmLCV!_=EdP~D)&6YtP0W#57A&s&&dWLdm-?{x;e72^|1~bF$$xV? z6ZPTeqS{v*+OtDa7fMbzzgN&|-dm9{_nhseQ4ZgpADFj(X6uQ>?1O&K_(DE0h})kR zZ(#SGuT{Kjb$hhSWc6pJQC!6)KjXFrXia9|4d^xE`n0c5fBEIPMeiy-;xBj3@xC9i zP` z2)hZgw;A)QCd_#DuF&BQX9NF|8K;*i{z^{ze_o@aZONz2uZ{$Ji@!NLpUvw0sb4V9+}5pkm&tYi+va?6=edKo>}8ITzchJ&l$O&rexF}l4G;OQ zn=H7T<0{RTX~pT5)Qg zbi~W5cvqFin;#lc|A<^7gRmI1T)Dm4Ngv6)#A^>d$lctox$>*!`W=1 z--Z*kN}Bz)bQM3go%4MCuBE!!i{Gs)x!CJjruloS^0lo|e5)1Ti!TloxLf$c>T%33 zuLoS$Vt;KotM}b@WspkM-P?7qM==dS-9%QoDu}<^P4wzjoU%b}5N} z{pe)CuH*+o>4v$HVUNzw3*V|6T(;4^*K?KCysev*Y}pqTg{mzTKdP@cOXKNVxt?vuiI!91?Qz+Bs z+WiZdSQo?@98GbW(K6dk>_TGss!YXftDg_qo~0(9zj`|E!8bdJKeLK^eIFfNztSM| zf51EmmP(n_%h&t!g}EeexF5UbR=px(|E6WPLnh^2wS9S->(Z*aXm|DhUsi6?tmN(7 zSNd4t$Q=KuAKy;b%wqLWF{_CBUvaUlwDos@%oTf&hj+4F@0Cq>`%!40@R{0HQDv9s zr!MPi9jS17SSdGqqFV9xSuuuld5>GP9A3QolWG~qL5qw1ZTUxQqLfOqR188Z?G~0S zTFG+gxzti^ryG)GqRU%;y;|G&y(T36_vZDxPuuX9g$T7SH9?Ym1)xH`(F@@%>O?slxU zNcL@=YwOZiL`GS=FBQ#MKe>nF#uMG2f37Xs{zdYLeevD~mE)|lE(aJXJOBMGD|L?{ zQ*+^iyo z{MyNPS5B?ZO1Uy*J1dj8k-F~B-7_mY-3*lsHb!$T;`I*szIY;2oq5=;t9OKw8UKFw z4pmkA5O1^kS7d|tG->m-3W+PXWo|k@r6A;k>7O<67g?C@*VWH{?sCm5QRh^jTHDpW zMYmjHl@HC0F|>Jm=y~)5m+gK>y$=}9yKuMZL}N;p z{6KM`@xI{Hhjt`}v~C;R8qX@15CeBBYxY?xpfGhRv07jm4(<&TlsG zc5*&)^4+=(^Or-ThhG^jJoir%vKt&iR+q?#cAtXcoAc+f`$tmVTVscC$#>s}vqyt4L_ z=(N z*t;ie4u^kwQe8o&P{1pbrS(r2X;?0bxc!MaDCO0*Q|*ljfgMtUt_K{>UeycKeCj%F zVczAxZMzm2U;eV9YCDSHKt*rTW^&jIi zYnG$JC#__cOtU}W$(ZvfQ^Edc$L@Pw-)pztGU@o$QMUQGL8jKJh|fO{?U?xJ(Y{sh zyRN$%K7P^Ke&ej;ai(9o>`H96zUs`FwKhC3#fIg>6!y+@Zbsg_T|50wNWJ`cT8BR( zPM_!Z-gp1cFKmCjiv2^+RJB01AD><^zCAbpLY_T`byrxh%ib$Tw%t;aXS7Z4(OC28 zj`zO3yjjO|(r%t=V>`EBSM<(d#%JxZO~rl<9yiu}aw?y{abM01Q@eDPRY50rF4Irg zdiU4&uzmekcJ_VPmQy#m)$Q6J_qpi@M4nWIhn=u>c=RCqPM!Oq{lyxQ zZ+`t~I;d?B!Q*^eIG#g!cJTd#HJw|QIoRZRzWuKr=e}jvqZ3>o1dmHrrgmRf>b`bP zYrQGE^6l(tBAt>=_J7Z-`tNtY9jkhm{W0@GvkB+ch=_UCIpw9FUV8h;u7zK8w93m) za9FY=ty|(GaN}FzyG>8!I6kdQHn*zJ-76X7ssC)<&$HJ#9y`8de|+$s*MrLpvK-g9 z+U{8(enqQv=KYz=8^q4`GE7xtmRQ~A*4)%-to-W!*0~?1b6Rm3>`b&}*xCQ=_w5a# z`P1|qJWi(w2;J-wk6k74YT>DKA)Pz!MIR1(8Gqu4;d4d@BQ8PJ(6;@m#}(g6RZD6< zZryj#lnH^mxAQ(uEvngP$Mgh_!J1Z^*>u9vB?m>fWu||7FTN4lS)b z+mgkz1?Ci7_AOe)<0+hUws+!d&3e~>sD9JAB30FwR|~s0OO_bkd*!&}qt(Uh$)El* zJ&iN|tG&vuPOLs{kKaApw@eXJPV@8z@OCLIdUW?Umx(RUTVaEbmvt_>{6C#I;hw`Q zVLNAe{qFq-&aJ5Oa#^dPUehbq$iR3w)BOE`oUhZC%3eCyw_Vm%Q1A7N5E-`Gb>a)u zgY~Zc=bIU|VM|i}{8O|7*|L?3Vmp zHq;`Hr*{X(i^9!c8+D&sebLYeO<6AJ`LpDTeqmjGbB2)Jy_9QRKW?2AzGSi1@p9h> z`xP?}T;URM@{~ODy=C)L?KjF9ynbG*+*)(KuKus~^>x9fvlU#z!K=UCxnkPW z{k`g>uIu)d^5Tm%+15|=R6Ctwu>RQp7X@Jf$%Y&$>$lbHcD}l(bg}i7%Ig>9l?5xO|@X>dn2g-TYHLJKi!1_Pn3(mGX4U%%{7o`9&YFUf+MH!YXJ-ONCJ7 z_PZxmc%PkC_VJy|Q_qt2lQ9)1(iWuK7~h+Dq9C>4|H`jtp6#l)lur4yCpyD1fNhpko#Jt{Wt zYxrBj`RkqTc89z<&s?PEJUN!>H-nA8@2%Dn+w=c)wr*@a!?mVgJLhqT#o7gHy>GCc zU%xzJBRB7w?9c0#?@v;6N}Loap*`!4@lyA1CQSyc3-kXd{tA14`sp#};Hk^5bZz8c;8kvXl ze_c4rviot$jI@sE2Z}83QaMESrJ35F*?IEmBm?<+hUh)Nx(?mkxW>UMAmP$Gg|5k7 zEBqep7F=m65YhajWWRffu(VhW-ngUS6+^pMJbnxO?lO)@fR?2l$!`UJ0E3dEujw`_)rv z^Do<#o%(U*QSW!l)k+6HRZYHK$C6^>%J-f%rB?vwvD#k9J&`6W(cTy!|^* zK)Kzs=$6}_F-d|&pQksZZHY6MxLEJ|;`ejg1#4`-Z)IzXJvi(7L$9g`4F}daxxGQp zE%c_=^i>_3_ay(oZGc;b#p_q!8$2MuV2S^i!0BX@LIo+ zlc9}UN%+zyvvqA6(xFkGB>KRQ{6*4LOTLPX~qM zf7~hyn7h|t?L6?R=3r)p1ZnM)>`Gu2EOwOqWgK6*F7$b`TE5*H1YSMV^=mF zxEQ*l?rnb4jrrL9@;e|XWN3rAOQ$eBhsuG42?vEDpk_oe?8&y}Y+`)x5VU zfpa%hJPG*Z+EZ_BvJX9^x{!D7{b@IC}7gXu9*obX0$Tg^?J>-7i)j3~AFo)6XT^~>M%&&L3oqx%RR3_a$sw0w?IgN9U+|uvy zobx*W+&tU)MDp;&i=dw6NiM<%zt zZ>?V5vlZ8OEm&?D^vFx0xv7qYr#-}Ew}s^)i+%0&zW3%O-|$)Y^Vv)>Q}b7x+$&}p zq?h#nGZiQ=&tq=sZO;EMT2=n@=j2~Ej#w>oVvv5ZWa?I7i?`k`4ef5euk9aaWMAD- z$u}`o>1vVxK6eox!+XDKRx9nu-RWTHeC1#14!b3H!WT;J(J&Qe`yuc?;@p<2`_Hl) zDhcrUvLEkIetXI!BjyQj&C3$OXL80m0=De8GMQhnEk2dUSaRNBx%dAnhSg%S?zi0g z_cP3S_vhdAt_@Npu_qE=P5OE1)C{p0K8d~0`R7}D*#%eg-L^cZFwcZ9esRgQ|IvI) za(i<4c7A1-S^oO-#ba#VCO@9ZG+hpuALn&iY@V%B09Uhzfb87R+q#1AxcZ<=`4Bj#VlZ+#epyJv9Elq zb|yY=FEP28A|$dU!tPA&jnBLvjMhJ>a;lqU$KpPJyGyWfD1XNLDlf*fWfuQS=lVLu z9IUt?nfB#aQ~u$ObJv%PiQHi5v+&Y;q>*y@_wxPb(O0DyjW$h+wiBNe zHecl$&g~mk_=|3}wmtssgs5w)_fErp(-3?|b(7nK0wyli`0>+*Eyb`9<_zotZY1*KORk{TXkp z(40mV!;1{u4wDjOZhg%%{rGxe*ZGPpKKJiu+1yT@$hqAe5(8 zmu4Kz4BvaIqNsvVYP!|&l^b4dFFEp~MD_A!?%>ngmMlEssZ~|*Bu<5Wwujt-w@cSd z|4!>=z`u)a<7(tF*u z;Ox3I0^q zQwkNi@%!E;$yCnh)Ah>Mrk=$~MlsKRzgKLqv9_OKKkJ!uk=w2(=B``sc~$Yf zzL-uZdrIT<6xquYB#xZ3?f#SAvniE-tJu8fjWPx`Sqkwh4>Hfw>0~;hF;|4?+#{*# zRi~o^TUJgwm(6tgm+kHqFLJ9V{aiXe#*DkfS>RIUE`PelK~3$Gf}K`twe4T=sPMXvQl3ZvWFCj>1b%o}O8?-HvtD z{p3j3@KDf_^A{aUn>`t^CvcPeKqyw|#G;Bjuv3%CB8-7Gto{A2W%Qgm=3(E z=VhEb??HmoO?h>TR}$^|`f*Dp$*Z#*J@a35R`RuMwW`+)w(nBKTu(SW_|_Mf+r0Bm zK*tufINgF+H{LBTjue-x6ntIyO?QIKmESK}*WdNo%DUY4_OU7V3QpWSrR~h(yOP0; z@tyJOKCOQliH>XKG&E6lK35qS?c^EVN_i zf?)lbCye?&{5jdYw52%Z8v-t_pPnj+3`RupZCZim(?5o{S=+wtra!xc6QRP zY158%X-E9~nW0k>*}>u#Ra5_Sa@3YioRIvaMY(QKYs0~Z+mcovx^C0O z-F&*8F(N8PBVExlG`@Yu2Cjos_FDNq+$g(c_2TSBRoV+L_oo?rW;#1}75{773UlU3 ze}BIHcx=g>8$q$&O6-AE{_7&`KD=2}s32JW)lPN?r-hKJ{#&(q4BgkZo#wX@pU8c5 zlE;Fx=e|fjT5wo1Z}Ai!BXfC$FO_Xd2Y46BJO7tj6I6d;UY@Y}zpnc_Hx+oi-p9R} z<-qwNx$Mm;fro5&*)JoWJw(SWzni_hgou99D=dUXXK9s`W z&$C5UHYw}Z@((X1qy^P_WRIw(2Wpyi822wq^myc6ardX>adSOwKHm3XI~kQ%%RT&l zzQD8BaQkxcxb6EhD`I4q3v%08?9t^r=`Wxu^YwzhLaIKG#Ao*WlFpQuH(R&-Z1u~y z8v63}jAV{1_rJ1txeNt%=yI(w`kXrX*js)6NzdlizP9i)+&^bxkAjhREg#>xt^V5t zmv7nBc+6Vv^gkKr-(mJ%-RHJ3U5)L3UFfmCTKTdaACUVD;xk?zvkV zo#%F|KK-4SD#AB+x><$!>1@euhkn?yCe4qF@7hfEC%IT|*H^v{~XZ)(& zw(UlEeeU_1U0<|bHEhz_^(DxbDTDc%@D%d|LE&2-5=t#+Jx=Xg(l|-8*5sClb^lw= zgiHCKI=7d)$!z&LV@;=9lHV-JsV|?t)!R{Km-SqHj`O0EFHRlwtK6j`vLI%+V^;gu z@@L2DSQefu|x+xVBPro-3BqKjUV?k3b|~)!#wMcfBMxh)iblVzK=aNBlVjU@8qxA z*FMe`a8@oqd3Mvsqyt~w=jbnnm+CGzB6li?T>N?P29B!stpEfjvj!fXFvnVIPA zzO5Ji-)WulYPJ0Lk%!$wt}3oAxO>(KsUKewH{X;&c}z+#_``&BTGxK%q#u2StdO4ftX40{PNb_pRO8s zJ}VUXq_k?$Qpv<+`b$6Vk6vOf;&Z_-&a%dKc9n+oLTRS48Q1b)J7@8HxlSq+QC{8!s*+weriC?l;j@yS;`-rRnvW+Gighcgsd_cZQ@wP;BSiPhGVSHqV>7YfJspFazKRJk3%8vEILweFJ9Ij`S)e=BJ5tvkZT}=O zNt|0iVAr?zmin2`=f$7<%d)@a-(khMmYLJJf8Lqe@L4mr+A+Q97gy5{eeZZHF}A*~ z)2wgG)Gsbx&aup}t1aN5k#@7*ycyG0T(j<;T>De=ug~nJGcH;AaktV%>Nb7hnL0`R zccWRyPRGoBOf`k&cQ$pb-?r&-SxL=f=NAV(o^fmbvVWAQu<)&je4EqLUWxr;pUgJD z`+Uap&Wz`O3?jP4XZ`*fCYF3Zea72=1+tMJ%r0M^swGsl?9luZzoP%u*(`QSd?jX; z{&U|p(WLp>%ykd5OFq@SWRG9om^cX^{QGe<}FNt}-pe;DT-;T1Xm;^xQI_KsT}1Eh~_*(Jia!tUhGAB)!W z1ljVl^*!=`Bba_xV(DMGg{`w%r6SoA*O~{szWbWz=7cGK4{o=JPS)jJeT*aZ{1K;` zB?phc`SLSonpOz6_2P@4m$6R~n~*MX`**@mrkFUltFcEGtl2T``fEvD+tPG??-Pxa z%c^hfbjZ7}9g~$P=Fl3m|NPC%Qv52Xt|S^&CCNQDD9PH`6Z+Frqv`D_(@lxfUsqmz zbT0ak%DR>g87njI$6Zxx&t)i=@%g>j$FY>}rRBaY5^6shtG#FXxz~NWp?qiN*7k{K zu3peomA!Ru+v`QUYE|>Dw{;lIkI{MMWytz#g7>{=Au$pc(yod!gl<>ZIm?CTuZhMx zb2o{26VW*R_8FDcn*_Dz@)X`wZSyNQ_Bg;K{pgn&DylIF(~so;kdEHuDVrJk=#4XPy4_8HW2hCIwvS=Hj@QzR&WkR>*61y1;O%B*>O^j)jH=;ei_K6MuRj%h6rGyZjE)kbfl98unr zXE-iyn-hNFd~-=gjqCai&rKquGD7Z})IL)6JjDF_#s&k?dmgTh3~oQ)+?EggKVN8O z!QTtNcDa~66u z))~o7%u)L|k&|JX(*M%?lh(X^XtZO!-29*>zLz?DewUU`%`)14H^chslat$$wiRh_ zUvf#I+;r6s3rB&~>+(3G_`1kJwxXL*VgS(m!{f%+pFceN8;2&>&LIXrfzacR&jr@M7sLlzd-K#Tob;!f4f{~ zEnI2+g;V$ZCx`mTy?G&L6%X%vtGLUg)XY_An-*_=`l@~G%s>B_t1E>pO#bn5leH|5 zajwMDKAy?ttXfrK9rO8uL`;Pr_HEL5RB$rk%)7RR%`JO=JzJVzz3Qir|AW7#zb=>e z?KOVg=I~^h!xyGSn+vPOSPt^E79P1I-TH08yxpEt)<)WwY!}yL*lKyXWS-csY7Nm^ zna-ee$?bDj7wHz>DehwYUX;SR`b=I!)0Ve2nq1a9Zbu|+P)JQI{IA9T@aVb^3yPTixW($V(@L7HN5(MiI^y@Tk2tls?JX{nbD7 z*4w1_!5dq*-IJQJ=i~KbQU8_PdDhoYn_;_T<{E#IIn&-Q3J{3>*XMg{tKh4-#W$An zY0rJJ)P7ok)y&%)_?PNhEep%Jc`bCc^@bxEtCt?G7uR+v7Tz~g%%<^t3Hig|mE{n`F|lJeAo>9H0Qm{Ry}9$Mf!y))U6 zV`_l8*w>}o%O%sk+vX}S4$MjSRAYHP!FaWh+MKOxPAr(C_3&ZJ?-NU3Y%_5D>HOwf zublEzk;CzO&7NP+&f~l_*D4}u|H`V3b$#1Yr@c-%5viN=+$p6e<`&<|Wv=@?|3zG~ z{&D;W_w2)crxsqUi4Z#eXrt%s+=c1xLED%W+dc+g|KIdI>}Q(HoSJx>vTNriU7p^& zteRECeM0D?sOOs(xaO`8VR`t2MXN`2`SU$KF=wxN@foImE??-nyXL`vF>$|-7Jt26 zioAXwOg80u*cBoXbUyKsZSt3mQxg)5mPm-|F}$6+``p`WdReoSRyajToqaCteQEO~ zXZy;QVAo)!4QgAJDp^xhvx^tDGPtn(k(cNY+U;`pU}ahBKf!{sHzy_TithVunt68K zI{uYQbo#k_O>KS(i}cx;YoD8bdQ(F1SN^t5+h-r&yL5h>w$+^WycdsVn~JBe-7v|c zQ)p3u^2y`OKVm|Q`$MBX^Ue43y`$BAa5MXz9g}bB>eD%dBgS30%$-_Hr(pc;dk!^F@#2FG*;hWROxl+T^?Y z|2g^V2Swvw8q9Myb}F-XG0jKc&hU+Xfl=puM#*&3oBD5k4+I57rez#Hax(O%DY_QL9t>0MJ**8NzK)ju`nxW4l03!en{NagLBquJ+MQf3{_G;vRJWwK&!r8EUj}cVzI<_0A?K9LxT@#v+fC*i@|gHxn&lkUk6mB4T5Ql^ zQ+#`*QQ~W1Cnu}pZohAv?Hy)I?YXzWL+1R;#j;lxKRmwwrqFv?#YSbvMf34Tk=iD7P%}UZtTK(jOgAbjLuJz`Q_Yc}VvG?VrW(Bi(RtjI| z9L;e^?T-D^dfdOae7)|M_iLQ8J)_ucw!eD*^zQEszwKD{Y6^E$?wPF{8rrj5Q|4rV zd=9(Xzps7E<;5+&t!(o>5gg58_2VA5VINaJ>kVgHcCJY~R2R>9d@sf%SMAku;bm*q zZ4=0sfB0o_`;#z+*bA?X6(V2O9AuX&D{M~AP!dzox$v`M0q?iiSyexG9-cYPsc2SU ztG7*H&g`m=(k;_;qb48CJ^XLW-xZeXh6lGTowVy1_h*g;89Gd#KdT8G{&Z>M&JL}> zT~3!1j-1))ab-d%xA)?CJC?23a`@!7+6`-%zL&q7@-h6x-@0>6B@f@}Y~7(2%fKpm zR^BF~;&8+7g&*3vUDTg`wY{yoz3%0zTR)^13V*TG@QAr^@T6*%?W3hznK(VByj>q1 zep$@qRkZB!<=+BleVbM(_%%~zrMlP0+|REVPaJ=jYdd2tYv-l2LLDozRTNHr<$wC* zvgBJfztT^eT9%o{@Q4WIi^g7x65lyV#I2U)5o2NVw~EG@uQb!1ZeC>G)G%*)Mng^7 zggI*i-)^W{Bo@%T`pULBjBZ<88V@jUe^>fmx+METG=Kbh)AoH{v65ev94^&f`E>MV zZpK&rhg}?hQZn}>EV(7_b8SXAS8H|CvhK3ZsJK>p(Fl&GrpLP9O1^sH))2C&E%4^7 z8w^a1RzYjZ1EwV}Kk?Pj=*Oz3>FX5zR^@4MF^2jsuRO$aan|-Ej*`V|Uz~jwcF)w3 zKV?GGU!FH>3^Z0%&J)@aGH=ce#_b$?-zDyN=%V#kgQ;Ea(AM3{UZuF-dAd|=$Av2y1W^SO=}bW@Jr$=a^pec$!Cyra6KMx zHQjmt;$o-VtfUBzO7m|ATusEo1(hW}C+I;c5Tj|K{(%UwxIy zn{r+(Esy>9ubwF;eG?>RzspsL{QGzTq4`daO^i26qbT>G@g<1o*s~c1=sPn_Vk=nWUEEvd5dUre(zhbiC^7 z?LTLnvZ!J25``d#*g0Pp9Qm`XJ-96I)5Hsh+urT(Y&Txp=$5r>-~1aqEvM(+*4*`c z+H$s&Q)@yNw%7j3`<3KUa>-2ICT_-+@M%p7|CS%#c}Aa^HLxppTDwa|km8&9{!${v zwuStBcSMDnx2P>pcbT?Q!bVQ-58tb=CCmEMctZcCv!^{gTm6_T{%zdcO`O+1J$&o! zoBKOnW=rbK*%!8@OTRAbex0lAdZXXuKZEE|VNdViz1)wdX*`%wxx{VH^+jK<@+2oc zsxAMt!b^U(TCDue1Kydbw_e*V?#)q-7k>C&KO)catAmE;t9iF<`uW{Y6f!Vse-rmk z{*?G`@6<-;ownZkZ#LXsD{><9z-HqK%ihaIYxTD)*ng~9Zk}^*TKK^lzolnxvuicW zu_o;9Zh0;1Iw@-P#ShAIT(OA<9p5Z5Y`?SKtG!71M~3G<6T!2m?&rLbRA<_n*)V(h zp6IN~r>x9dgd#;=Zs$2}Cbu*xWJ>)XN%xJu7uTq~t=!VQ`sBfXu3eT5QEPMEwtjsx zyIN*J!@QGECtpo`(AAtb6LB7$4?AmIde5qn&w=(ut%`o5j z>%mD)uIvA1svX)iS+ahD4%_lM4|DH`e!je83yZ>R^+kdw&EB2*8hEL6QRd43=ggEF zAM<{^yC_m8F|t1MF1OCT6Ar@mRVSz4;?c-{b0~28q9}u#ZH)8Gf><2FqZNX_&!7BB zq-Ys`u>O38v^QpHpSGO6*%?+U6nOe}r$uC=2;bv>b2jX6xNOIhU$gOB>9H#urmqgP ziyFMCeo&+K!<6~Y-zLZSlGK1RUnafs6V^^OfAoCcqt2vT+g5pq{%db_mppWJ`n3zQ zzWjXYY_;xh%d+LCU(ZkTe{_elTbo0|IG`-+LgD%CPg2ep-wp3y_IgvStm@I--#>5i z;ap^3x#icy(^o!vCQUEx*w8MkqAAjPZpXD9oHsIhf9V;@{=azNM*9l)8Nn+Xy4r%1 z7rK4;)#~ZP^6cL$gRs0^RxC1a>h=k0cGbRf(qDJrrqOq$2aJ2q-<&E_D*N(IE33qj z^RF9~au@7M&kepbsmp2C$Jf1u5uz)LRrRGOSA6-qM*fCkW4=*{(S*k)QfqEs+PW-k z*V!o1mrHvN9n+0WEv)c;VLM01UrTTHgXA}vr*?BUPv_Bk$zGIfa-pzdVrJ;vt_0U` zkzV~Yy|p?;Y$`==w>jCh-bATot=^%`$b5bxvy4p5s;T*`LVDlq9xSnTR8ikv)>bU- z_2{EYP2S?L1zvKN0WAMDUOrl>w^L0r`ubJ%hwVaYdu`Y4pTly+V|L}|nbxkFlg=~+ zKYf}r$E<1%@8=As(()}WRu6Oj3y7Guaju>gaL?_yv~4ttgwD^><+f2;VnQhrk)KLp ztXg91Cft`y@lIJWt+h;P4!ec2U*G14V3sHAW^Jjd)i~79eOz5n>=~zY-kY1YXZH8x zIdzFcmY z@tgjgv?D(!Iz3u_xqoh;nD3;>2Ilw24_-WE*{35IlyY@ht54WHuIEN-)_0>jCE35lrI)8TQ8!x z=j>E%xs`&wwW=|@J@3f%vwf^kwNaAoeyw7)D=PE3)RCO|ALc*UsrsE|PjZL%`@>g7 zw%IQ~G^6TN;;&Wa>z6&XHhjgtCheqJ=e*MNY5TIy%dW{t^IMu16Z(J4s7KurxobvMA5DKmXe|>!Q$#$p!`+p1u)g z5|#OKtH7saaq5#8i|y_IKRYC!o)Qp~xzJjETK=osdz_P&a?O~hE@jVK{f2SJH;Hvk z^VlcdlD&O&vU91#he+OO-vczxPR07YR=S+d!Urf|aEuCq_obcEyvTf>V6Xvpj#q;i7I-zY5 z(b5|yHKXuepW4yZ?ODM*yTdH*_+I=x&wB3iJ#*R>zQ0Jn#a?^gQt0Lj_Q_tZGv_wR zgkHZS89U2$o=)RlfrCatxg3F9%QkGaYfh`3yYtV+n0HGTAJt#`&T=z&iTwJFNl6*SN>k4?dEGncv{Tx#vBE<%VqL;1ft~xKF4_dV66IJl z$N!6avc!sSp^DEEXJp4otvssu!qoAlc@^`WPqj}(H@Kgk#L89lYOGN1E1)-WP3ZqNyYr@Vj(YRWn)gBZ@|#7QLsS*_ zR%AYmF|j^;@yJUa&fBYxB+9H6kNr3=_{Ho~1UL zeA3P6je@}sW?Tqter8-J_^)MEc}VG;&-JGqdzFHsmgdhB6q2cYkUsCz&;2*#tFn)` z{d|1m4C^LUmZ?&6T2-dEcb-e}Jt*aS!*`Qs$%bW;yUoAXE#h4wV92+}+}0^rHpcsC z?xK??7n?pP{C2oZgSTj~Xotkj{;mu7m zC%#q=NxHK8OX>Fl<+`K9uempuDsn7KCpV0z|f{6klornAvn7=UT z-p8={(i}aD#>g}24l^G=W;H446y|@k{tLS^%aOFj90&ef_Hngyl@%ZdR z9-DTD^4$C`vrP2}$Ln54Mcxk!F50X=TbJf^hf(sPdb~m`v)vg>*8Q!M{Hrqmh1N4? z9?p91S~TA*AaP}E(tn5Eyv-sXKC~LVtZ|+lwp_Mw-c;Md+dq^I-!5gl`Sh;!MYa#d z^Gk$fMdq&JznT=kNNiHem70^=BPCf3vz%_;@HcX}rPuATX z(#nat*r?oO@X*WDXvUpw3vSJj{~I4&{k3A#lqT=a`rZj)+Sa0TrdG~aKd0rKL&u@_ z9jj0NewF^@?Ob1vH7rYh`b%Uc$xhpAxp}=~m6!aTH3DaQuP9~*1eUgcS@+_t#61qZ zZ`!~5Ph~e(uecC#>5tau&G#d&Et0lU4D!E{{&MD*tM7x_{Xb8+aCGg}{VzDGQp)Sy zPD(9q36q<|w6`mIh7pa`6>tC~Ed;j?lTl4li?b-DDlIr@HV?lbH`r5P3 z-ceJUs@(azvgBRfQ6mwn8*M+8zqQVqFrk38psszgU&?Ij4L#}$xM!bQazT_=*Y~{G z*QgN3#wVXdoM-O8Hfw)9V@~taH>$6??s?O(_ zrrsBRVKjY1$}C@<=RP+?Rqxjb1pWK_rR|OAhVyq~7n(k3df+N=X*~DYM30a2L(*<) zacbYvS8#3q{d4ogc~|6{uS?hXPTnmM=qR`6!81LE)+7<%kcls^T=x8yVE-U!$GStu zIt!;ZaUS?;uN@+x`^v!;&Xq35T;G~3)L**UOZG}zy3}LYbJL&jY0a=-eq~kWoLkyGq7G-GKTHrY z-n)XK=!|!_$6><D+*@(gN@3yoKQ|n! zZ|?5+)M?ImU%cl>Y-GZMOC5(eZ)-_Eei*%6KH?GUs%`Ff=JDytA8K2o^f_i{~)N6`CGpif!axH@@;(6oc{B%HJS3x^gKFa&T+B4j@2J>7p`s3IrZC_ z#ji!put@FJ(ss zOxRg*$@cK)Q!kIY?wd19$62%Yz=A_hx|1!JtxjJUd|7p=zP}hxj+ybBXHK%3n`VCZ zoVeYf>AB~G-HvQ;r)}!gVS2`WBd%hp>UmYY+&ML&38L!VQE%cpZrL5aZn0y(mGY0H z!AEtJ{=Kl(VAEA<6#rrui>D_-53oT%!dcihwUr|sGGHmz(o ziuWDSE7O)fcsX~S<>veipG#BQ>?SG-r#`zMVj8cfwvvUe=y)?Lm9?efJmdsxL5~lNGYpSz{sNqU{U4{(n2yI_2A@-}_Tu znhW^dG@rqnIB!>2f>Ffk#zgle)2zSNc4hV)G)&!dZ@TUc*Tc)6EH8S_W_12W6N^~g z`Ot5cZoU^Rr}*mMPz*5X5@b4E6eo5pz2@N88WUONfR6vB8>Hi+isD>#PJ0BTssvy9 zVCk1-a{H3b<(`y-$7&5(Sy)mSdBo1y_x<-46Z{bK`pvhEGo8e@zD`*B;OBO}ulr^$ z=JR1r<1y(|P}sifbH41;WmB(nda%|vv`=6wJ9p}2%&CdltKC(uZs@VU!{Y3ht!NtS zh?tuHk zd^d54E_ZQ$<@ayDeK=UIs~`FLEZpG?W9*&HmxFZPY~7uDcEjedNUlGh8$+9O?Z153 zuWcB8^x|>@tzJFLGw-kIwl8kzKH%XjIHl^y|4SBA*546(wm<#Ki~Wk-QAeF-#Kx>% zk$=sC`{IVIWwRbXFHPO1)2Oknr}eZd)_N42N`CTy?N8vY$ye&iEVrK0Gq`f@;Ir;0JSp+} zZ@S7YGIV~@JLh)e70DTX@iq)6i@TopwEsJQMD_N5qsgb%`k!5)^61)!i=MK+pVvH8 zS@ZInu-T$F;Zu&xUm5=rj#f4!$v z`5;b*?}o&GKXF6HhUxp;Y?q|$ef`0{?dQ9x^G;|lu-!J}R;+N^c8PPwDKp!vEJFMG zn(|yFbS)~gCTE}K6#nh<`enk6o3+-ft|=uYWw+}{39hNU_iwkgvU+7;;qTkg(n<_b ziza(cSk1pG(qYX#cfVtA6t(xvEUNzZ=#~BNrC;*8U%or>W#Pl-&5!o|v-iGQ(SG-6 zJZsL?x6dX`IvaK?u|C2kDC?4x`>kEOZ%T4?{L{O+_0QbXT>MwA<*jVnq;&5_OYEF? z`}M3R98B)I(W}MFnIfcTzbuRE>Sc3Q-W47EbD6KscUrdKOv!^;e>>y$q(szj`xdZa z_v_jz(|7Bi+T@hFO6{ZO5nYD1iBhw^vM9Z{!<4YfxZZt&=PiG=$9<=xCwpu^@~bz3 zCGDbg@OoMMM72M!Q;d(C(OGM*ygiC9M6o2}##gkv+NE@nM<8gjLr#O>$lwSuV1cCq@1a zmpX%n_91@nFQLp|CBr?P9=@BoGq#vD{@%nhPj!NgHZc5sI(LhmgiQ3)dmiPN4?f8i zbU3p*Eu8CE$Ih2R%cQ(Bb?xMLxXWovUi+a=-btRfC&pcki}&Oa<(xGtJ9wG&tV&TTlJM z5<4*^eBD_`UQs?T<^$X6Xa2N2MmU+V^red0A!0>Qa zW?@m*7sdM`m$gc=mQoNM~`s89Ij zbjKY5M;99Om_@hf9^Z{=U+HnXTbhj^vYHP zD?axd{ZZ5PCS~CVz~cU&hu`M1q|$EF)C-~zh2o~ZNMut zeL>d8Yp=~i3-mpfEd0iG^^T%GPwcGkM$LMA_e@T@ALo@Z~n6S(ecFVj6%nJce)yXXFA0cXyA#X<%Rn^w-(Rou<;f9k!(lbf;} zVsB?$v$bbD_xGKA*iB}mb$z!P8BC9J99v?~xh!?}Wslxn>Ex^1DUQF^&N(tO;E5Yk{ECDusj$^CB07Oz)6TS;PY4#PC}4cF`%KXFt`qHDZ}U#~ zx73Fl&5ajSo^oCA_ZsaOBff(>O0$l1pPsN~mDR+8rp?jUHA=oST(o~X?z`pUg$Rin4h*?=$g zlNMey6rNu2X!F&6{#nl7{_k2BlvS$oGP-kumWW|g5c}g5D`!N1ROQ!}i{@L^Hn&FO zjPUO=nY2^)C1-^Tra2t?9N_w5?UBvDpYP7z^ee*bdSk1ftg=m+mcf}1i}tu)zwPm5 zLga)G_Un|w#Jt0V-7luUo4PqUi|O8uN7L+;c1O)Uv@p{=;i~k_dx=NdmSkU#Sn%VH zc<6$oORO7zZb%Y-qW|`Je_w6b$?uOV-x~zqoUJqe`08tXYBv8}ZPU$JZ%JPN-Sg1; z-V2%F9sCb!$eS@hPG6#m5ysL9+OPdy}JXgR|JK@GA%U^D%gGFN`JEPqhF7(}T z*fhDgUF_0KncOheEAFC?Zj`dUjOa~pc5-E$Inicf)ugV9$e0Z!DNFqN8>aD`2`k{P ze=wJO#a+Xk>fi+jWqwBJDeU%8Y~S0&Kle~?QSzzI-?Fw2N!+c>eY03UT)g{2B&|Pb z;=+q^;ai-a_}_aYvVF<+W!gM*&exXco}G20P4L*<&vM=V(<5D!J?+{O9tZPg{O2&r zs+X0w5}U2^HL3B}39-%AoA{^YOgfRwexpXD^uT1FsIJw)G7DR-HYDeqZe-Bp-nvHE zCpR$ltEAKMuYK2A?TghXtdDr~(3<7I`z43j4*!dK&Dm#p_-U2C;TKCemC28c_Su?z zT=m`Kgjd?u{rxV7PJLmT`s}%a=n{F^pKleP7jNoZ%zlFHw28tj?1&=cl!8Z};7xXByb`)Ar`Ezm~N|(%J|9{7%eDl(5kGFCoEyYvG>2h`3;* z6^p!rMSCCgi+TE|`F8FT^NkN>y|7oB`R2FF;=&>FWuNpLtXTI|)UEK&O*MLwtJLFi z>^Reh$qz27EIItMYVGW^3Gb?xEaC6hgW!)`@OG@QVEpR#LeeTbO*R@ZAg&#`Zxb6G)qn)q+f|&jLK7HS`{q54s z13jB3biIjLceL-e5X+BM2fBXP+`7g*e_E-G<9c_GB^&QD{7#spdiQ%l>!E$kKlV+% z(pkyydzXJeheMBPA-jmqLF2|SDc*{{OY)qLxj&y#y>dbQ=1R7C%5JyL?eIIYvh3-s zBIWY>83*s5UscY%^>FcAlTEj6t?roF$DMRoz%nsT_PLnD<;5{y%C9r;&|0IxQ1fAG ztHO&99gm#FH}v;vUU~P-dG5XTw|nZJweD4J=9`%02Uckqtb23is+21dA zP3Hg7ShH%Yd-KEmonr+AOK-H82K;@aG~?gh$XR6?d|vm(dJec>a&FipJe6-%jj51~ zxyv@Wt|fKecbI$qPo45xXgNFIKHJOewd-bX`@Ltk)mJS1v_;D(?D$NM6ESU_{js|q zZvCaS{KNfufA+0W6R+&7obe=M@r*NZBKgIE^I4Rb7~k(+toYKNud2ypgC5U;4=;JT znX+s5ui-7}sCamI!@HnvwXH2vF6pnWJGcCYMS4=DI#F@cIzD>UB2$!Z=$y3bxh}KzOppqj?B4gd$TP+W>hnlx{F*s zkncaC`%}J=hVk>H7xO!XcP!Sq?DF8Gan_T%bMir#IE7Yt3HZD?ICDYI{lIux{`(@! zj`&y{Rh8P^C9>5uI3e~J-?<9QQ+kVPf0~6%E|ELG=;Dv`T)q=_2V`ZgEI#J=n?EVv zZEm<;zxwQ{vy&!YTd$aCB;N3{z9ufOiubWbn-}Y{LYvkL1@j$tizRIOv`RWo zw3wZPtW@fG$y`CKE7I@1E9SfWUUs{45cf2;$Nut5nA+3#xb`q5 zhZu0A#9h7kZ_?1*|gZ2lm<+BVCUK7W4)K%owH~*M#W={lvwr!Dk>DcS~Z(8$(JgAuP zV`_-G@f^sg{vA1@#>+e7jGw~``oy`GSG3^>dOrmI3xcreKO&- z?AzNKpZed=S30X)RCnqKOTUoK)lilVoHIVEE7}L|xp;oB(sdt|GoAN8-Mca0F2?=U zhjvFr<$E0F>8lI14^FxJ*=&2&$+Y;oxXZFvHNAX#4_7XDxPVE(|*-CI|R;_TVJjdO|$kek6#;b=D1s1{+>FfXP=T)$irN=%a+|2Bz8zHn|0^3TYR*g&PT!78LQ)zPE^cvTFkrrl4AC> z-zImjCxuvk)XdqyFz1q zi|n^fQa#)DaPf-JdzqT~kMA}W2bekN1-@^db@n<$suj@E*TtQN88DoI;(LbJ?lurfY9Mm2vX_GM`+- z!sD}c8Y#A%5IkZbIO_vjqG)&-`xoKkt6nbqt{;-T#Pdna>kpnMO#EDgE`8Tq&(OE) zi}BH%Gxm80x&uzE-?YE>(}`^@`vmqYE8g}$Ez9@(^6mVHbNw;vYSy2ZdHDYCe1o$_ zKddL}@7mjHCH}E@Zhfn!%LyyJqA5Z4+b2A;6n!e+R?c+1rrykmU4>)zNp5btX6J2_ z^m`jhL0lg^JeMZl{`qcg@jE>}k+Vt#Jui0TKA&IO!97pQQr^A$)2bi7)8A-mZ?M{X zZi%*ZuEV~_LzcYRH)XCa44GuDUfL-*kXuHg472|M@PXWl{8$bN@8X zKj^>j>38Mk8?o0jGwUUELng(3HPYkIv}IEK`@-@ow~PIzw|{#2*Tt-0)r~bWdbeT4 z^w+P$?e|7cKdtGg5yh(`^2+^l$-k?KYeau>s8zbEd2Mpsae3d;eX8Lf&Hu`%rf%WC z-Wb7TF8bp7&F_;PHoW}s;(Eish1D|^{rUe&ediKCXmCl6S?loPB#-7B)*EKO7qMym z^VjQ6{7RhIqvi!NclD&jIb=uRr_tn{$79KQ>dbeZiwZ=vn-yo=pBS~%JjKaxDXp+ETy%q=eI-?6TTz{KqWasE_Z==GiCKb?AA?*6r;{$tV+iFi*ea$z;KOWv}nAnGhSy z>T>x8N4jg-?&S~P&ND4Mm)iB<-^DzQFv+e9&nC|(zQfPOSy}I6rWt7~r)lKb%W?a1 zN~)mm>_<;G#IB!fA(w8oR7qjU(M7jkzv258&OJ>(*-bRPt+D#iz5`-DzFQoH((PxK zg*}bAv5+k&kaM5@gYSlyJ$35T9(yj*eYm^t)~}|!)`{E7I>mQaMf2QSkt`o#xJ_;I z@xLA%N{YPk=0B>P=B!X`6@7Cq@s3lc&-4?Eu5j$!CUYY&^xUU!t(W^(t6zMfno>N~ z^}wx`zmwR$eUWrw;+j|H-c+-_wx+wFn)O$))XDwb`YT$F+1dJqt9Rx4yqP3$ea$8{ zT|3_D*ZY$vC~^Ie47oD>qu$r+Zm~H|ANbdX1_rmF3?WmjcBoUX#r zAoiw@D`)?qvQG6I&o{I$ul}$*ZF9y_wVa0MP9K%6@>-+#HMhJJ>tB5P(yUKxYE271 zOhS(L#qr22*|HO++L3Rs&od3RPOAU&O5%X^(+=~J$0y|O^geZ*_^>cD{qx7nC?DG> zjtNei_xW`NT|0gEj`lXzx)$#wKjzq#`EBkxt`;$3_Ge2HteRt%JU03Kd&_>#)V>4C zNl(9QJ>HQwb%m_pw|BYXW`ayJlpo7%bv~1`TO#MJ$&J8Q%A4~QJXY2}bL8o-Xa5y{ z`IzL6Wm&133`Y*FKIQoFVATEXbuLZ?DUYoGajbaQ@O8ab!X%@0(aUA+_v-2eM>0v9 zs+X2J9bdefvyuCC`P!pr0w+JRyj%9-ox#Jbo`Ok7CjUGivz06CrmR_>o>ZHM=1ZSb zHb+-9Kj5{!kr9$EF!kff`QcNf|NYr6EXL~9R(&@1VCl?L9!xUR9A9@=+gMuHUp;U; zF;V8ov?Lop=ZHIUFM9LSR7)d-o5HM~`Y46AIT|f4(`Ir%e7XFXd#1U7gwWqB-q-sb zE*)--DQVk$?TAV%gV>ochDzzeqk_W!FZ$20ZCW&Eo!FTIPL20Zjh2bel(1`Nf5~C@ zdWcg{+&G&{31~xtgrBAz@K&DK6~yc@6~p-vYeynbGmHF>J58-zU10@ z=6%iG((gTn?T^oBB+p%JA)|IJAcduKyYwCQ4(Y|4BaElH`#4Nqk=C@ur}Ih>i+JAB z?;SGCnq6yM)E?`5JFmO-aQ|X`r;0@ z9)Doj6Jj&r!580auD_>hHVR$+%(Lq7>kUy^FW`la$uoLPy~eU}J@5XFx~3O5ggjAtvB>(Ru!x`^m*Kj^&dHQE}VPW=%^nJKIhtY?*&n_i>QVl&t#H6X}1S9$9nty=R+j^Ygw4 zwRK8i``%iVHUC`3@i~6amHAf#?&oh^&iY~f&Fc@oYeW?&p6^%x=RZTg_>SoDrWeyq z@2zs!yzRgV=IxqKY>M=@2D5b}-}$=q*Os~YGd6k3^S9P*HgB0>lJ_KejPx$DSW}@ z@b785@!L1epI4tQk$>@-icmp_%m1D492B^llO+qY?ENOsyk0N-IcW2Y+a}p;y<5^Q zY;(}PbmPymsnd-7kFJxs_;I7zinO;L0?X`pOW5lV-Z=TgQ1S@NjgT#i^7p>_&}Gfj z;#Xf4x#jo9n=S(G=Po_(*~rxN-n=~c<|5CGWkyG>XZ`Kf0z`B%MePEMKmLr%GxqftxKChEFpe>I)DCr(T0W2MK0`m?8h z>aA{dHD>s}qV{tmTW(5T6S?8XAA9q<#AGwmSI*-r9fRi+|R!`R_8r zjyoFtv}!7Ia+Wo{p!~;3ZDLhx{M-YDGN-RDxbb-X&4)bPt+Oo*n{_Sfo%k9z%-tZG z^Ljbojh$Ot7EkMCc4MAve?sutfub+TYK{wqj%&HhoTw3_zTu4VWN*g!2@`a9ifRm( z{Rwz@Oru4YNnvA5-#o8NUmMRe@c5LbSQ&6%Vv{^6?`f*+`EXI~^gruAoLngpe?j*= z$K&^QhxnH!W?Z@A$bWLK%KqZjtdE}ma;@3bQF(vL!r*r;vv{jTPF&e~z_L_h#yZx> zIUK%A7#lt~h2$;Vc|PE$NUhZu!$i5mha5#Xszn55ie%f>u--Z(bXf3PWP#`h^(D6# zxUaO_IAccI6bn`Va{)o2l?N-o){Bd6ohflriT(L${TOeaLpP(>++E1F#a=4&(Q^5u zoC1Hp$uoB!Wvl0zJng!%zu#lO%ToWIf4$(Tn0o3i8`p=iJ{B`LP zyH&@;Ue;U-NZe|w$XLMckXsVD)7`UVNP=s$9?muo+| zM!vXu_*-K1qmTpV4o*t?I^4IyT(*?J#64Yc@xuCJJ{Jw|W;v7ybN6)P7y`8h{*z?X?CJ*?NRvAcG6HfxfPfcv%Mo?_oV zepvozl579L*Ad67n(v35Ox^UPXUg4^aW@*9by@xwM*O$CxWU1dy(Vf3Ph4;4jwYXf z8A-Pe{G5`RV;Ht2iy`V;%Jw5m-uKSrx!ic8-%`~6?!>PzN|taRd>*G|B)U{fA)vF% zX8!9*5>>Ww9J!b7yL7!RWMc@Z&Ul>>JH2AXsg*fbj>pb_z$o5uJEuSK^wX0C5f8GQ z*1I!G@wm==eaLB(@4H6{)8#`p9J{;!%3EH|S$oyF7r5%2dU~O9qN>pzZp-5adHNr0 z4HmQJrz>U6<&b{3;&85uH=pja&9U$1DhleF`d!_S=i@YOg^1WKw___hqmS-?^@}fj zqG6wewux3u+`4*m{~ND`a*;pRwaVwO3_fKY z!4%qm<)J}nUXGxL&h3-h!U^jB3LX&(n}ilT+GsQ}_3o*)6OU-!VLQ6TkkR;1*p@ke zR)34yUsaS7{&t7S6_e_xiv#y%+!hg?W)T@6@J)xs!C$%WY<1?Oy(&-7Z#o~5=jnW+ zHBmfkr`r96c8eQl7V&oaq#bLCo#3%)^XDm*F2#z*feml}?N9T5ZWNPk_wiBhah2cB zF6{RfxCIJa|9x^JuR`UaIgf+dul_q+9+ePk{8Ud(h~dHHtOXo)`>fXg-`#6lyE>X< z$^?TYUp)V39xP(8yJT+3qIWC)-+rFU8@@ODs?NT9Dq3*WG10iWKYpKhs`$2v=~&<8 z`IqE1&XrG8WtH*Xm&Y~RGkC)OAFCrbUssUzv3z76`r73{|E}kk`z>d@GdV4`?SDfJ z_s-p`EK9HbTwb=%^y0g>uIInAM{!sDub{#}s%#r~%Iv3vJZ`_}Gz=Jf06 zaqAVl(-s+=48FE(TSdBgmk8s-dF4mhGu7D}DqXGAbPD=K&6MX(-nKC1vQgf3lhY<1 zQ(1SX|GKn_+cK{4OFysdj&m+-JY_BJZr8*seoZW-x$U8vUtPh�T$M)wf^K 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
HbJQ>s+P;Udd+`Z`{-M%rnx-YE8Nz3 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%0DNHyKRUc|IU*zBys$!A&a?#JVFJ?`=w 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

N~~Qk{1i_?>oq0 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�R4!5bam~d>DLd|3a3jmo=P&ydZ`?S={lfh5 z+`>&>YgOF(y=9dq7aTEtVk=iznpS7|(5dg6S$D%@wRKznyB8g})*5s%=1H}nvSi3Y zgC`5W%jF)D5C6@Pb&!Kw=~Y9>%m*dO+1u=7*9aF`SnNNy_nBlu_xuK}usLDsOd+?s zEm(ysPPv>-z9#P%{)R&^g_GTS)5qnNjo;$`TvEQ~A$RtO#F=|$Z>OHBQ{MiIS5I(5 zbB1NiG?v{T{cqlE_Act45fglPp2uCsqo$J|?%i@sgL%I&&*^I)JQ&sQ8ZF!qJbf9r zMWNF9_v<`FGD~g#L|08Oh}-B!$03+TF>N57hL$p=x)Y$()OBcn6u5I=H|AOQ!3(LGPz2x zV5sGAYIXX`sOz-+$YQsv>5E@EvKTMEoh7(^iIR|8@~?|?9)5cN+DAs;BWU-Z9C`l_ z*EnVf8=Xsh(R6F#to}7_NhjxWUwZniY^mD6!iN%n_1$&zilj6yyo*p=9HC~#x;t#Q z_^}_lQ!d*@J=OJ z?Q@fOCTtXSI%~dav3V}9S}VU|RzpbF;!lZkm%eiCUbIiZuwv8Hs~^(K{3n|S^sfDP z{P$k&SjDE=axv!GhC`<8rtz%H(~oJMaXIKH6q<8q@|`)kPTk+;A5+zmuD_{t;@eU7 zO2;ZiagK>>^Ma0_XaD!*^M(V$W}MaeUq0;r^J?=6{s~9T0^UC=zQ4oFj-jlm#(QGR z@{a~-Tkb1=w$0;g!yA8-V>?t{GSe!4pvk;`kVLrNX6PEI_Z==t6MIS;;_@> zz|G{Hujk!YUY0nmkAHT-ai_Tj=N8#2g)q)vux!<$*`azmyDlCG*t%!?_gKrACdVm^ zZfmNRt_ftRI=p^OwBynoX5HsqC6y`ncz6Cfl=jSG;pvtCWFz9@4&UO|TW~DD{)bp| z@6V3jbx9l6v&=uGRLuVWm**kAw|9OC{rT{`Ji_bZN%mz`lf%QUF9rS1Us|*%&P4O( zzEXvkZ!h+U#(TYgtZOjM#!PhcB{k1mGm;kH+ncfTc2|iY2S@h2HMXlA4E(J++5Efj z`CsDN^Lb*!j%Wo<>m$6TS=aWo@jSXw8ksJ<#ngWfdy?*{OO*^YO{S-7wtY$uGeJ3JQIduZ>UD#;mod6RBNd zKedhB&NlqkxdTxFJ7*WKOp5*L8EU>ijPIJyq156#W~;s=A7Y>TuIr$**6eew8`N@V z?z!&~YoTuYdh*ohpy%FvSJ~g#q?o=q>tSi}eC2Y9#=X_AN~+oKr74{kH(}A6lIt9q z>bz8{>~J8HpX#ecf;?STb26*;X{k+KW^{gbmgKWzOL}ULcTB%J&+V6XXv*d_q6X6s z$_7gudceUdQqVuMdV{y4Rl&0xm%FpBh1hI=a;fXhjpgUAOyTc*^ke3^E!KfmdD?Rs zvMw9_yOkDwMfX2j)T`?MS?>k)w#xX;7d5zi{Bi%Sc^faSx7&Ms-_z0!k&4A{s}|2# zU8bhRSFuY#!*bq|7~W-H=5lSF>o{?qo1yc8ZIjo&(Br7}=;7ivnSb$)*Yt|G1#W43 z*E6zTa%Z2iuG6CG+@-YK_C1=1lWv}Jc3≧)ubNY3nW~O`o@PV&3I^$9-2*ZnDl@ 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

CDEj`^cX+_1|>C5(-2z$)$Q1tsN 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�@C|ux#Bz7;p}0@ij{WPmcRYE>O#MUSrrW+3k6&4x zX0ZFNo7ZLLs1phs*GbN4zOT>mdby;jqvVo4?b7f<(Le{zi<$b`g~sz!3>R(cWXcJ; zs>H8z^6f?LMYb$|CmapQzUv;z|JL>8IlrT|Tf5l*@x6GO=xR+py#gXuLAd*oDuJCH|_guv)c6V|II3&_J^H~ ze8brFe);|BA7u5XgofSTRiogZ;k6||PNKcpAi0fiR^QEahj>3cU-rY)=2PLNxRzPJ z7gXI~b7{Gvo}Krm(V@MoM0C2CUnBSXbw_ea3$AkMjq_=ItDYNHG*zNQ6eN!yXr_aH$a3j+tr3I52r!T$L zlkNKObZ~Kptli-co$`zLrfU~XxjyCN{Y$y~6J|;ErhA@wew54g)202%Q;(#Ve5kqd z{noUC*XD1- zo-QEC6su}?Idzg|UCQ}V*ZW*23wEEV{#4r3p440vJ?rnW%9d3OGIKAjd3pD?@4hW* zi;jA&YUnv~n=NtYucz7md`o3tZ8%-6Wb{ktfui0$*0PmC3|)F#K6F10d@<+T)pF}I zMbbX++%vjo9GtoE`;Yl4RR zLx?S9zr#&|h}Ve`P&55m3Ind)ut`rB}i-9VaoL`pL!renMrtUjB0C=p)s?KIdC*4)x(G-wi&7R$-&U~0hVGghA#~;0`7&Id7I+k{R-LyMzn@fXGWtrbE*^S(N?>>F} zrG1z)yu!41mweoH#fi+N9Gey|e*g7xmeAFvsg8!4lO@kh+4aV1r}gTu6Q69%ke__! z>#calYuAhOZ$3U%$T2sCLVTyQ#jD#oY8{pI+D>k^S@AiVV3MTMce_y-y5e%@&A%QgUU&!o^1p z>6RQ6{hj-Hxxo9-kQtZt?!Wu~vdC=O@!UAh0~@l_HdarGa@*Cs+0KWh?0=N%#a{xO zPx%?HHtd(lh7-m`y__GVYk`dz7R%V5_Q%(22=b*}Bj7M{MsuPOHOt);D^dn&{ay^hqJ zYjW|mB*x;?x!EfF^@~knb$9*znRX@CP@FSFV8wN{%NO+i z6>Hp?QI?Y^ogu=#Maa!qKl{p7=Wi~zE-iR_(Y!x@suk^8) z%b(A+uPza+5q4>uq86V&K|A8I=bQ4W@=qSh?#g@mg}dhwqtJ27wb!hNLy-W%3UeAdfZaP1^RE4TH8D@{{;gO8NgCTzS@!*yYY zd5xy!+xuF%BK;4Xy>TTp6i5t>-YSa(;~C9FZ6Yb+N?=I z&hkY!C%p(-6qZ%1dH1t#UCYnBIn@U*UshYQkp11M)w6rYoeq>zbnFvzP8?SP@fY ze9UbT<5gz`|F6PEnG1wFvhO|?|Fb7KTxk8QM;|#%k|YByJ}qiFrYp2O)Pzk<$M+}0 zX&<9UGKc!auZY=o#~4Qz1+yQk)Lz1LC4Ks42e$~**9DPN%nz9~D8D-VX!*=mgR0ZT z34gv#Sb6%i?2F60BX~1IPk$3sdA%k@r{~i23H~Lw@}2!H)IK>1Hx#gz{p9#+f zfBr^uo_~(>8AZ{!zmD=&sw-sQmUYj6!=_m%dr9y3O}Qzqlk%7Im-(p`K6Pv~3c2O# ze@(^UNw9+AHi^IwH{1dR^32qv+a#WOU5dA!K0%~Zs^V5?H`Db}X@v}y(@E?dUoB5P zO?oMLHoRfK|I&#USMEt`EKNAlFuTi3p|SGu7fx3zowhR9mJdAZ8{12sTet_$I5qc1 zo#=s#-ZoL;fw*IB#UYg)3Z_di~!EF!J!rRR9F^zY5(&!297)p%o` z)7!`Sv+7Up%&J;8N#1qk!_{2u;?Z^YgcTRgoi1dusZ#5ojovk@^)V-Wbay4U>|S4R z#mhNAd0PE}TYOocpXY4dxxlE-=vc=|U2RXJ%Z|m<*Sa~_*ZuM=`*UY6i?>JirKgFp z3r>g3kUJ~6`(0j*a(>@N#qaJn*dD*0Y0qJHQs;&Fov6!>=a!sXktn%SktZyf{X*gI ztv06WUm~pCQ#W*7jyj!u&BDV})7EqM-+v6Bi%KQdWnYr9yS3>4>z9j_JCu5EiP$<% zybyGn!_~Bjm*+$&)4e+0%nsPAm({b)Fp%W?L zmF+E)wcD@T1fKb(w<>YLQQc1-AGE9&`QBX_81{X8@gI{No@@H|?^YMw&F-^EkTK72 z%H+=%!+Ngm=1P4Yqop^)(}!n?LxLmU-pAJk{M?`Yc`-L=%8j!-IBQH?*XPY{WmsFM zbE4y#(^X% z**)>D{pVB5zq$(-*XKR4*jfKEKyYsZb10KW*6gZ1hXu?nmp=9GtvH~3Wa*z5RvwR- zBl9InlFSx=S(=t*@<{#7v5cF!GAAv)Jq>RAURvs3um1D>mcQFsoJ$IwvgUp<3SM<$ z!OZjL=WYMEgel(0?8E!5>6a7wxt<*LVN6@U!7Y@NC*s&6{U?WZye&Pe*>z-RILA)! znZgqnmv67!{(&oo@stJU^Iv-|1#Z8S=-?^(_j0U>-H(H!3q!=2XX~*{nHeTI}^-vXoo# z^W>GG2JUP-Q*xh3bO!HRGVSD=TPELbyf3*nAu9IdA0t zK5W}|PxIcjHG5hAlygV#I#RjY_u%Hqfr}jW)(JGJ1_#}id-hRQv{7nX?^6AlD$=KS z^FJ25zai*B>68ws`xP~PU5kA#yiS-J+_7(se*5MLM)%HMy0c_X+U5AmZ5O4=PUKcR zI4FHQRZ=jv-!Dq2%VOf3j}<#Ny1ZA|HN$7g{U@2dnlVRiFPyw(;jxA0dX|5lRXjc} z!}T|1`U%eI+`Dy}|McGG+O=Wp@1Ew{3Qk|c*BpG{6`PWzlx}|G)VuIx6Nxvk9rOh+ zlpc6A`O#@bz8dW{Q)4*mP5TWuFRgg_(bjOC%h#u0&in|BY+V=FI3eosHp#Y@X9uDm z@NPS^_B~gF(lzl1hGnz0&qXYp67x!2WQx*?qpI#_)@{D)dAi7Fv_^#ruIs_7nCZ4->=2 zeG_z9=2Wr%&iJ@FqU+j(cm2zJ|2xhKn|8HevCzR|ia@|^(N|*aj?$m#sw`Nb0>(2OySFenhy{V1f`)AUe zc?H^*1v>vjYcB_MNtFp+>o31QN%H*cM^`oDX4+LRS8QqYT5@@_XTxT}NiDlS%=vAy zEMcRw?RgLJrZ$4V?HszSu#uh1Ha5vrlmhhlVt8qEWN&lZ+T~s+WQKD?H|Rw zX3kPR_4K8t(dXq0I9qQWNLhNw_tYo-xA}2RLMx(|nqDn*GWoP@(s#y$02}kW%?1BM z$|PoLzIxXhnCaFx<^K79k9IUq-%)6~eBLs*=YDfP3M)1Wx)eOxr1bNM*VXev+tei2 zD^8u@H20b5*{Cbu%9?k!%M|oXyw5At_pOktNm*>gf}eexd-=q3d6%WRJ3g3{7$sZq zG2q9Hv{(~MwHXzU)wd{htkG z&kyi2Z^~7@ziHX0-MpG!TP76web|^Hx!bd&(T6uEf0;}E$s@_ec^ek-HP38Oa9UNh zW7@Ul@5EPV#do*AIl6ns&mQ{=MP5+`{ZG=Y9GV-As-n(sDf{!q`EL4BkGxggyc5! zd4I+K8`<1GGs3l6`}*{a{w8z&EC7bxHxq4ozxZj z(h@tylF`gke^%1h+llDQ@)oj0?jdc}M1 zjMI~?CV5(`u_nJ%ISeJ&q*uk`s_!H1pc zX{|Spu(2G7&q(%M5cWSMzUh&K!2yl)(GCBN<|y#5Dy!O3zWL4HYnMILC;nD{`*T85 zkHvStxaOVv!m9!VZ$EzVOp9-uZzD_d?4>Od%l^vUnJE2_Sk_vM|9wu|eQy#H7# z^WvD}kK^T4{l})d~Fg}*lX^N1ghUnCM~ z?wTUJSLjLlxnlC9>9FOYW3z7eO zWqdYtW>1KkeRIK+vTc_Qo~T4L{;S(m(Ys~x@`ZnMIKOf&?pa%twe(s}@qGiC9VMx( zM$-@eE}2@w9464dE{T<)({S#KqD5y;eJzV*J+R8N{mQ|;%^qGhPIatOTQ&NH_U&z8 zonJk(N$jlPp7C!9WS9LW7!>Fo`@JwC#cS;X|spX zens$o$;90{k31H?IeOdj~fq;S1c`RmO-`=j?x zJ!5k!ce2PkflK}6GO3YC46*xc97JA7JQ9A%ZRXS!$Q;Y?+Vn`fNz5G6mk*_H#E2NW zzBFn&I(?(x)xR+}V(uMGWK&_j8gROkyC7C{wzzlr`{3%kza(Gp%Y7)Jw@+Yi?<=NH zG9vNML!K!uh$v3EcEx$h;hO?l%vTiH87)>$T+-PweTB$%>6vQjXZ) z-hN(}dHdeH?w|u~SB@3PzHwFgnVCP;=;~$u-$}1Mw(sQ$NocIudot{N?#b`s?=`|_ zscqmiF4wobmRQ#qSsyh`y+1s=HcMLg&v_J%bdUsbm3n7lsYcFL4po^P@~I4nBBDp5E`MJMpBg2K^* zcS4S9b041j@7uh!?7FY_o$Gc{-sreQU*Yh-@?Dp#jlKNWJ(!co)%@t!=D_k(2UP>| zKW#DCv{B67Z2z|{GiG+}=#(!j56_mg?MS)Fnz!@si;oZgy$gPqk2 z-LdpOsde$j+i3CSB3~kS&K-AgRqc-Yd8MhZb-VVoiK`!13Itt{dcrn+NkqZDI~@9j zA#?UB%o0^_xpQo1vcmCs-5GECcA4li9&J8W!y>Dk-KTo{ZO4MA5?p8gTzs?S4|na3 zt7oGe{=N4(IjwukF^#?5(~M&T6_J0#967tnf{qGyF(Oa$uv$^DGa$bRa|z? z{PVIK=N|UzZxT^nCQ}k}dU4p1RLKQPZ_nnbt-NEG=h?b*e}K`ySE2b8M^;XJ#F9VB zyy-mS0#)W)yG*k$99VF2f3nP~kM%b{Fv@M)xfcePa(UhuoewIT1{SGKSQKh0hCE2mX)wMS29j9tC(#)OrZ zcdht)>PY)(4!@RNp^n@K4{SM}m^#6A#xtShPnS#tJ+%${|F+y%@qf?Dnj{vT%V%Ek z_AW~j**~QsNm)bh-wsR9Zvp=-jp{E;6?LvX7PfRtbl7M2|K-#F%=YxzY1(z&@2$V? z50l4P0lQyHaES^FDSy0k&*0WppDX`_vf}P2F8Nb`WBKdDVlR4`4Odq#`WgQ!%=Nb~ z=bC#Ri{qy|Jb19b?Oh`O4wng+>VJgReV@PSg>ULVu2VDaL>~@!Nb*=RD^7in+bM-T z8pV6pUt7)pd&&L9UJr`e&W9@Ml|B1Cw_pCi8utgMeY>i7Iu0)1CwjSjcCNm$@t*u| zqP3Mq8TX|Q+??03sdnYlhn`)sC9HanH%I>dDXlIbVt+YzGT-jyFQq?Ezqottjb-}m zC)u3Ns01%DGhtbLkg4I&0vWTn!X4bI*A|)grv82X;Ph?-PW#%*(4C^Tr{un-3m?jT zCGkQr?cHi&gSX$(wbTUm=5x(=y!Y2`=7cxa$y08*CrtjlUNYP)VO3Y7%If(4wmJ`G z8)IDmF0PvErSP$9aZ2dynTxI#CT*xnI=)@U>+P1i$^AD2Pxd@>^ANslz;>N|p3MCt z`RmI%vpo{{!Y-*vto#?EZ~DW)Tlzw>)#eHFjAtx1?XfqNh;B*EOuwaTIBBNbx&AqJ z6CFL@i+S6r%sL=zmb0X9)3nn~(+*yE%yRryRq4eYcKN@!9P7)on`f*Suh?X=$BpI6 zBDHtNzo{5a_clDpaZc^ou8A2Yj;FQ@eXHM^mX}{0dM)x_)7GZREi%$(Juh9BEL`^_ zW8o)>=D07_M?lB7rOtQmZeDr$l;ECVZ55|v8MR##N-i5l^exM@eQj5EW|y{a?%tb8 zr{5}iDq7|LJ#YACP2BTG`*@$MiTfNLa6-sEG;ckVZ3l;=S=*B8&AC4X>x+}wRNem0 znJs5?Ds;{l#)SNIo7q)6|Ne@+v+j%9yZO~e=2twu?0U8KLr-;Vr-g>h-y?0Nh6@#} zs`9U``YSJ*TgLH!O`TWflaLp?xD9P5uT*mrVv4hUsCI^dscK>Ow<|M$=s*5i89)16 z_|sRPj@$BDH!gqT8h7(e_m-I3j;))vRFo{P@NwWbPpUojc;Wt>`xn*!o-Y!u9_0wy!5Dwd~b0j(`7o&IvWP z9Jd$RI`!hlTe15hcFPE@TND($z0<_+z>2juxAjj7DqOm~=vYMYpZ7(rOb?@sb31!3 zD>az7-g@~ke%Bro*T+R46yCI&D0r^!iGASuZ}PK;Pm9Hy#nyiQ#w8ndXrb=54Hv|G zTT?z4_WWuH|Fxy!<&SFS{PKMV73Q2ZKDoB}{r3BB);N9n^5*CliNn{0WRiaEs*W|E zYHHZ|EV5SRPS!RJ-nc1G_F1ZIpM3CQ<TFAryb;nJFQJZ;OXOx;&c zzRSukV3XaqS9+panaw`k8Le{vuXA|6Iii^MFkni;_MeNDBA?xVH90$MQs@(lbH2vb zN&y~wRU7B5*7zn+y7unVH2cOt3Dvo!_Pclaa40M|SlZzHA<9_QDWUDUzNkc@lA}BdvaBy%q`IcWWaj|4G*EDlQIZ zTv>y3YU8S#CAR%s7qKUHtJjY&B8@M17)*|qaJ*b$^U~{7S!LGli-L|4iHpyzl|7bX zD>3!T9TP9fUp6aq?|iW~{GS(T{_nl1WpQ%s1NSYnyQ(Ls?@O)Q+W7pi(kD?PpQ69B z!(wccP1k+@D|0Vg^PaEDcW$vqu60jswi#~N?K5prbNu@j{zqrxkIG->G%vinZU3^Y ztRq=dAJ2Ml*VOvKZ)I$3^y?^`qX$(|yW#aDCWc0HS1d-C3u zg{SBJ-o4=F%EV(YI+w1rs_{DCwkZiE z)&Y!;zhvip{dLw{sgXnKC`V(1tN3;Q-9ILYMYw(4rmAwMOS{NP{72~y$=@#}IE9b) zaC*!=dPwGgd7|2WAB_n87q!CG!diDGzYOsSsDp$};>&-zT;cTBqat+FcUu#vx-k89h9JqLvTp7z*t`+T_D-osDM=v?aE z-E+F@S?|P(Tk2DuRmaZNXOy&``s%6e;phn;7kBq8F+93lP+-!*>>ZzGg{sLOpD~yH z`PEwu$)fv@bjNJ_Y3925)0L-}`4?XQGTYx^=e1l7{^@_T4t;mc(^<#y({PdC-)kkJ z8ck}B9gVF^ELn@X`U3WKio8+CbhG^Y=!w&UxbWEx+ukG#+cN$C7kS!X^`aYxs{9^> z2v>+(zO*)aAgJzRXJ=(JJ#Ko#d0(CG9^ai*SCQ~B!N@A-03Z`^kHd|ji&wDEL`&JZkN}GP2DLTwG-CgTPFPd_2adSN^k$Q`na3gnnqis&-mG9@%#B(HGNz5 zb>DM6#jYmI^1ru8V(Zs_hYji-XLqGtYM6gOYQl{ParYXmB^2@*NF-a@lL|AP|J-kJC^>lNu)yD0rX}4^*ZxP`6 zyXn)_2U|Z|7A9}>jW)g;HgDSA?qHvXOPm+nQqAACZ;7{z!zINp7JVhY zQa?gI$P3!fXxM(edT*5B)~g{h;-VVSU$UEOEL z_4v%Mn~$HAoL}1aNQ&vC(57!4I;IP+ed}HsX_mi9)K+#{>a(6*d1tRW1z1(j*kG8V zl6Z>c;iay^4974n#>cKc1NCwZdp-izgNSq z>D2D_-MXgwvp=Yu6H7=myA%02<+PLY&zn`|_w*NWE-`O3f(fb+Vit%5(_JnGkOKx-GxchFphyOzJm04>$S7q<@aq3;hvir95y{R|D z8w0lQl3Tv3sZi%E6Z>|P4OiCvmp1vY-}&Ec<*U10Nmr9i1KZPuc>eG+-_d6}f9r(c zllO+gzJ|M6nFwIzesXXkFMv+s)z*}5HF*KwWs zSAbM%!1m4;)1_xKw|wH^+~NPM_h4GTpLP7E`C$qze|ba`(>1Q`zjIRQ@U!2O5AjJQ z&kkaWtnjmG{QYC$p#s_M7nk02a6BZPs2llOXQ8UbhXT{cuO{F2@v}sgDbDlRXR*O# z!#d{$dbg}YJ|-nN_BcJV)K`p|;q_&;RBrS8@Y&NQ1Q;!t&Usf`z_^d?aaf?v)lzPa zS-YNo>7TTW?W1vh{gL&{FR^89*DYZATj20BW?AMr^&IudOTOzY6K-~D*!J>Lis@bV zB{_Dt4&VG-vnw_x>IwfX9;+h@H@`jnEg|CdyAMA19CofP+}9GbC_N%oJ+*d;t6+&x zT!*^2$kD7vtAZ}QJnHy=^%CZ}k8+wWRhuOmT{d1U`S<97NlCd$2D5AG`|5YL@Ct3N z3FA_)U4FwuLhQXJySz|kyA)GXVII5n|M}66IuFVeUn<`8rIKsa+3m%1`qcIb$ufni zRg3J_iFa&V|Kj4ME5}d&WUpRiv0Yf!cH6CgHEQ>#e2!o27OvrR$LQC4g&9lw^~87Y zo%;TdZgI-~n-i_RFVR%{%y=Mge=<{CPFBdHUX>u*7bnu{Z+wo~zfRq@j^(NA;ahL| zZf5MQe0f)4VdIJkHv}TtSlC(S-Ms9lba!{)v!${B=4HN5<>@!&Tea#kyA5k>g_qCs zYeGNII2uj8x{L84YaLI-q`ni9_q}r2zb=?(TE?kWbJ+(N?ZsMtlVUuLe7cX(FJ`~EH5tRRS z&h*$B!g;LUn4JZL&bU3AExUHv|LMD(MLgTe)CIkE8|F#O(&yy4qyOW1YjpOilKDDJ zc1ddj-esI?xfa~PD4jlal7Q){j=2*ql{T*IDf;|6rnWbaG2xC6Q*Y4GzPK}uS{wB? zUVrdhP`uc7x&7z(e|}raZZ+dr@JadeOs-JErzFJ7db3YaITU-IcQ*UTGy z=^Z=^R|IH(zN)lPy6mrZ`m)LEFF$(3E}l1e_QvK(zSBf5pBJ*VV)3xuxFb5d5(0 z`{$cYh55yXQ_g)l^iBKG+rG(_OYZTgMK~|%UlrL}?^w9n^7SL%XU@!AZ@#Kuf0HY) ztL?;@89vAE#?CUI@$%x2Dvs-S)_yWAzLm^4S^wyd`GFip-{g51`DW&B%ilRg`M+MA zc2vG#eWH@+^34WPDbC#&qh&3a{)U}7JF{sIzq8j77w(k`r`IrL8qQ%aw*G3mhQ>$sxbnzvS1;SHox#k$zop{&niAHe?9s3tCYI@D_smzAWIg3ssbz5Me@tuA$Lvzs>T>pe zGsF8olwzWDHAUaXEO`2Jm8C?Ozyz(Aez#XWtvlbwb3xgW*SJC0_0ZqicAhOa{dqP$ zxiFESFGa(5z7ScAZWiKV5ptUchVZ^lOjPy8L|)b@$GmfAr1cPObQOt*(e1o_U%F&;A#C z7+T$_{@MEF1lBL59CId$=e@ZXa&Id4zpb6>N0@agt;4tN{_vDF?b;cKKl#r&vsP~Y zzCpU^bi`NB5UYijf)@h(gsL@ka_c|8ezh+B?L4QAHgB9JyqWN4oAEllk-gOwWIq zB(sMyvmdzqev$iYC$10ejbf|!RmkYQ6`1I4sm&&2v({mW>^$SJ>3szgUVXVKx%K7k z|Jm>Pd@kwlU+H+fW3H9Yrz`AAFP##SZm;#xOxp7`RITx{bxBx64zp~?E)`A2(9a+C z743Rse%hwCGFttn#sjH$xqkmx8yBo|Ha7n$b+&!8SJx)(zbne?l^ky`@A=p4uli^H z<5$o2@;_$pX)>DJ%W|%u+my$D&fVqf%Ma>xhdo(ntk7HXK&T#IX9ytG638mD*K3n%t{A{hZp?N$HOy z3VzM0_7pxdUr#9Loy8FBA_cL=|M>rH5x-wm-s3hZ#dP`&4 z4*txw7o&C4qVnGtdrh-iJVWlP>HYc-6B_pJuv630`sOf0_;JnVoBO4O4Kp3?7tefI zy=h<3ljmA{Q_K^+dM@0SSmv$4pT+9ERVQAmXy4m|ZyzdhU7P&n-CuUS@0REGN~`t- zt}3h|LK5oNx5%y8+Aq5BR{8rBwP`ay3N=+t+O+2L9iCE~bN?k;S`0YV z#XEayS%o61dKL<@Y;z*e*VVG-?}zLn!N8W zo!!3u@-^wh6@fl#fk)ncOIni0+!ZwcQhlw{x_|unQyyC>u*e*cTQWIO_QcA_E47l# z&T?`DN&P=NvE_Y_MP{QpgR0De-dwFI+Lav^>sEAD-@a+EqqO?R+xE**(*1u9-VYPu zoF_An$GAQDYFLl`Z=T>;t}iCk-s)?7pnogr#uepr;rlPYslKbbou76Y_b0c@V zQtjHjp7QzZ=_gggGLxRiU1_&E z+_CAMnyugU{qlwW>T>p{BUjICX_Wr7yUoFAznA~Zh}G=>)$T1Y{c-eEN58&BM~e1C zu8QVGxB3%pGQ8()+H;C=C!6fFEZ#i{3cn@o96pQMl)0WiV?L3Mi(y`dLhnWc-|Kuj znhQ1gWTp#kJ816LxjVyhI_sIYQ@W~|e=`+6Id-IQZph2VnLnOC?+J~5y?N7ta)Ec& zQSwzzy_~tZ7Av+`@+{)}C>-#i4vfDSakaLizH%AL*}@rktJhUp$j(ZO5Yn zn+~?DJ!Vj(Qi--rmHAav!Fh`tUQl!e#g5b+LJ+-)GibxibBJa4Nr* z+x-H{-dUojHA3I%B4{~vp{=NEIHF>w9o=fmf<(SoK8B%Ay#`3*Q&F!7_S7T4m^`3s` zXM-|y)YE!xQYRk&A$qSObK>jcDo2$*X7}nJlw@ms z)U(=4`^@z|u1!-im+*DRw7%ONS-ds=r08!G$Fok#VV9ij3O_G<|AO1(pS<{KBSWj1 z685e;(#1~2@HpIYw_L5Caq0CP!%gAGR!zHHXgMZcbM+<%33WBcndGBp2_)-&n%qRZ7|7ZS5GmE78_-(K5pKypr~vh z`tRVvGNJjU#ym44*lNCgnpPMz|KzXDcO@dz)b{M2^dwbwmfM?`fwjIDLN~|F>U21> z!!d11)a&U>N<_lfmIUo`_LXE@uyjqEadz;;)JMxnW5-mv$9&KGUx}5~D&N1pv3lZ!L=~S$ z5=tl1GIuGQTHmBw`1?cByAtlhS$>9$jhor#JzlY1rA<4EKmMQf)L*iDAFUDTiG3$` z{_3ZqWyjnyZF%QQYMDG0S(kG7A72@J-o%9oMlx(--+G04w>Mqt(Q?Vw?6@8H?7noc z<~tL+{7^xTe7XPX|JR7V)Ja(UezMYyKWEv74Y!qZle;~^|=l01LVG<(dD`kG}KWuPjrc0=LYy5>t$+LJ-2QD=fHw9oC2%19Co~(XrH)Z|h{adH_{4^amlW5{KAYxuw9(NbNN$rzjzkqwE zU*F9%pLx>3ez%&%VfAHSZ(1>$b!t|gI1_m^WzWhzvN26l0^iKIJ8g}*#?z@ge?G_- z*t26aKbghnt^D7Pb<#Hrj%`*Nrz?*r&O5S5BJsFRYozMiEi{?DAHZ>|(5W?zi^yS%p9na4t7-HarKW%j?lHU8iJ zY;#4G*+P`_!rvq9S52HPcviliFvn_<(Mi?Kea1#&T3zBte1a_FPubZV=eeOPue70S zTFp8=ixAswm)9}JZ`7EcecKhg`(|uPBZhSIlQWeg4QaqzK`h-)8@uyR# z-?6d3J!*WTKBVyF<$25d+*xw71TXL_)E>3|yXew}x(3#F)v7$77jJc3Q0+3Wanf7S zse*hd_e?9dCV1(d{&8H@Hu!90=HKh5Voo*6PFumHs8sPo(fyc|ho?H#*Ji%H z?58=a{zqH*YO@myBaThq`D-QHTn#;ul_3w3>lHuCxn31_)03B4@T8`uWbgG4JQ?Aq1I2>2$lm`THSOG=-Cn;BguJ;YYTx7) zaO6%+cvyvA_LqgL$~Rk>HSd*Z-E(H*lF5Gq7Wv8OiP`KVsjXUTp8QHV8(RITY4e&j(@h)n_^;jZs=RoE zRX$L5=kx?W&b~U&?9H$C{Z8~bv19gQ%gArnR&)0#MXio(x%#yDQu4K)^CCfK#Ui)% z{j1#3?Xo@ihK#M8kSc?helF(=o(RG2m2czU+8p)jcemOq&*jw5y}b7r*Y-#ECRDxF zX1;N<@VvEA=%?8EhuQWW^1b7(61`#R)QLNH?aU8K_#`fLF>=+!{|6hTmYrqywBPvW z!henc{;hW$LfaDqM3-AeFZ6BC)%@zqwum>~>d&|D3`J-29|~80kqH!f?osh@>4WBD zey`ttteLQMqsE!tqKjYMv)%5q_oWm|$IItEf#SZlmpW3GXy1RhQ-!Vh^kaYHSy`KA z_)jw5u5kS8VXa>N6DK2H@l^9IJo-yOtzp||+gvSC+1RE3MYeS>QEOkjxx?V@>3iBQ zQYU4WyzvZJd{zw1Iu6t>9$7o-<=qYv2aJ73Snko~NDi54pv`zlW zXVbE5Rr?R0dMcPcZWqg}%DF!6=Yik5e=qHf%|Enc@~8XX&dc&>gro&;FWA<@$GPOj z)hMg8>pyOHaATX?=OeZ&Vt(X{>%MPJG)=0%TPypHOT4Cb`9u+C5q-ZIZ>I|XU}6d= z3Nm_DI^W@wj8l+9_hPpzt`1$!*%mKeKGfCSr?_SFZ=*}noW3#&_QAncnQx5Q7wBFq zw-sk{`OU*r=e2OY@A*yZ{ZnFG<|QTa3YahdsIKPcF`?Ky;cn{Lwhpb|ng1OA#n_|< zeJyxD<^I|(rM5LE`m#T%&OUT_omYgYh~_r2Q#=2NDX6?&DYi6nZq~&`$2*p8mo!KZ z7MOd>V($O@o69S2e>^f>zWmW&^+ZjBGc_M?ygZe7LGNAfS=CF+Yx8c@bM-k&T1j1U zZ4+aQ%XZNIpj=Zvy*X09Lw=Uqz6rk+i%%@goIKZIf>i1aFFS_9gZ68;&eCAof9kYO z5Br?AZNF1QSdjp)B3qnHjB+VqQ0ugCv$n}=kvKUG;{gq zxfbef=KEMN?SszV@Ru=R^EWseBGN<9hp-eDowSFTJhKB=_Ng( z_#>IIHAmeX^8c>3KW4yaXLfJdREH&p75=1r_^5pUWciN86{;Im!!$Nqv? z9P{$sODq@nDcOIVeP!y!)>m6NoR_++<*WR;>D~2BzcLs<24pR8zIbol)(I*bkDOP_ zmUC^2Ny>!p~7|z#o{?;<% z2;0-=Wt?xw!ud-8jJ+~i>4>fKQ}wQ!ZCYIRoL`svImfuMs-3aLd9u zUeO+z|0+&QecAf{?Yozeu`i8SKf7zaIH6N}=5y{#fBl0pH8)?Z+14(4?GvZM+PrD* zO6?O_zOBvMF1_Z?70b}7CA^JwE7!S*6$Na&=TaHj^kK@|SuyU}9~K?8Yh&kl->2m2 z?zVom%dyz-{z$Xa*$x@(arYfKrY78+BKvkyuRvm;V$+&d+HuLl+QU{dO6O1xA@YX3*J%86F(xESZ zf4Y1#n`_R8R9>N8Iip!eA2(WG-R5O+E%ant%c+;^#nOd;Ykd7$@bADP8y|~ww-u4M z+3ruVYx7opH*I-*%#(F$kLLZ63Anxax2{x9-FI{0DNp+JwOS)TFS&Ku{PyI#4|Mk4 zus$&P_M)lBM3Vn}`4yO%vU2{;@7!y}1x3^^M?_`JP21=3K=;;3Bh?J!qvo5+(uAC9 z_cdwXIhn>}8hXXa>~m3#u&?b>X}3iWyOdT-#q6)!y6sbdy=RYaim#HAf`IWV%eOB= zWxnq>o%e^wMa%TWh8;5xFVn1VP*h0xvUua_Gra{3Un8Yh_|~5G;<%r>{qXM-YG=(a z6r9&)jf`y7|E0(1(s1r`AH&^8o@PQHxsNlf7t-H$@^mgogpBkvUFI*ARu`(Yd>fKRJY|;H>Lx64>x#DQ?8gAFhyeJ%fic3lcG2)YD7gEuSTlW`x|y! zY!~)Pm6K_1(WR9fY z_>&vJ;#u%yexAVGi(Src+HEXnmi)ZtyG@4ow<3rGd36iVV zc{KJe_~^M&pOyKWb%Aa0%gGF9dHR;sd1+kkO>6qDToe5;eRI^LNm5s(=AK$R@#gAw zj(6YU>&45o6LNd)4{W)Ya%9e8?!+Am^Elol&kpkyV`vDUTC#zMO;oXR!U~0|!hO4( zR)4;<fG*mBL2$qSNe-Bqx=0fw)a*&37&m;HP=L$ z-Rg2@4^R4E_FJU(q=dZSZPCbe`O#&3p@GdG&bI`BmpfEV4_v&) zz`yQH+S_D)rkL{ByB*Hmfir$Qcw%hSqkCnY(xJny+FO~omUFn-KWAp%!`!{c+O)>p z;LMp!5yPrCyMixO<*nV_`%=*RXI$o$_z08N-UoQ)pYHJ5=N5IH;j+w?r4LmVmY!<; zQL6k{`D%iI6I*}IdHJ)qZbz%gKKHjz4`mLL-2N$3;8OqX&sE=~7aBS^IILlpF`O&s z>>RY;#`^WrsB0-Z)3$z?#eB+h(eBVK$(a%XHT6rUUz>E(q)mzO#M#3yYuKzS`ws1V zpLT0KNBzc!#m6~kp4aj)-EeH`TI2b)Kbv&nSOWEn(i$BD_Xmk zS~JJ2W3`ahF?@GMlVJm+bl%Lxo2Play*R7a$?f$l=k0UidpQ0D$Im$CCb@Uz;uS3` z?`xf@5@A{KPAPjoYo2^DALsA)GrnH$^A8Gb8O`s>ag% zMzNNt<&}TqBh2StxvjQS_05~8wMTya>Fzjf{-ZjBbB*{4zUl{V_kN362!09oDHpMu zS(-j4rBFqi<7`k~velVHH{Q$#Yt4U!Sn%`THB`5&wR@?#Yv~-F&nF)(HtkD(#8T^> zdern&Xo8*imwAG&HGzq9^G>lyZ8@Fi@h|*=OPsFVjvnFJ`wvClURE*tGFS1&m3Nb_ z#g?S-7#V-_-R$71%kQfEW7koY*=^ zsyCjw#JyKt;;h8`eRnui=BVzB{n-`pP$OLA*zd3&k&i*MwpD8HZC|o%)#|0otCiv| z*uK@cWGecXQ}ExpyCqJ%E%|-jmMlk%raVxZZnRCS^r7h$j?m4gZ{NMQ-RmCH0o&IF zZja4s+&SAkzenvjxpD6iZl3#bdnywRw_K=<-=QKYzN=e>|K2X8eaR;#Mb(~M-+W5< z{*Twj?{0W7?2}QLBJP|l^-BNucc}@Cd-mzvmY=z2gUjELU8*wDZ%+U3`n=ik7`r;7 zPv!OLLD^59{xtvMniO3fwo1a~R>E8pA$`-<*>Y8PjQ&iOt^M8g-$g>Bj_se4h5SDy zW#61XUX`gY&YjOLo_ueb;ev>BS2VAGy!CJs$DKuMp0C&~e0tky|8rAYOQRHTI(eT- zZ2z<9*uk0qXFV30%dx>pc#rpKPuHnQ2HTwCQ;b4We|U!qR&%o^39p|i`f5_sQ9&m5 zlDV_5rj&MhZeh*2Kdr_4in2(UJ@bEw?@R8bgtfJ7e!oSRbK2@Unf)!DocH9~_lXM6 zJA2mr*V4ICOMh-E`J}pc;$7qIrBsz&Szli1c(J7_aM?V` zCZXq2YYVTvy>8L8%QE@ozNG1L$NlZzom}~PTGYk$cPbxSemlEcNNv*mIaWJb3=XsX zWGxE4qr0Sl_sis68LYp~I=}R(s@}h2^OeKW$28bJJ>2?Hlxt&uU$^GdnGH?%3Lcml z_ivfOG2?1Xu=Xl1neBm0i+Xx|{kANQ6!5t8WbcM4K3D$6zg!n-*QTbmO(4|k_JR&G zcmLfxI(A#sti5VKMLo7XdS3I23pok4FK&pZ%q$RkEh)!Y_dnU(dHK4BxeN?e^PgOb zklVFWP3MWC|HS#l^TZMtE8GY=-kkX`$M4XdB_=%o7ns~_ZpoPTs?4WvTcsqztHNtthCelPVL9J&r@54JvJOOZBJNgEnogKUE;c~ z)Qrn~(V<6KjGTAK_gv=mxMSzMvMQF*-+e;rz8_B?KU+C{$ISY((KA*)p0PLLvZ*Kk z)*OE~g)2G-7z6iAY)U$`vf8O_;-%Nj4S#ri^FV^*ygcrJzY3| zbNbDSzMor8zg0Xv@9t;s4GyJ`ifR;R85|REUGu_QBPo;7>2}ne*(*JCeILyb3|NyJ zxhR|e_>`h*&-Vtw*R3U5-BY3`Pt!hC$nfi#MS%XXp88)OglztGpI*Yqb+bbx28-MquEM_u&5f)M9IMHgKmfQDEm9yp>f4dX_HGQRcYlM74!ug5w4!=A$>D9Z&6PFwq52$k4I3M0*svbMt zAmFX8zI*gJm5E$uZZ%H(?30)iespIbH>b<1Q^Y%c$%#4}(=X!ojowHBCyyE>_uDQ$hHzvl}tlVUH zEZjc$)D8B-HzqHiy8GF+Po-7eYv%R-dl6wZrDcXpk6D*$mB_x}bW{GUkcW%^7wI|q z%y{P}^=Xf#!j4sIXQd=8(c7-Ye}{ok@tKvPn^nBY5Y~$m*P%c4vwnfOw+(;#TiA(eC_$Gv>?Ktr~&F`wg6R-TUKjqrX{`_=MNJwlo z?3j1--0c%zgqgXr_>KG!3xAUpc`^D8^c zf6Zf(E7O0L`!N5?X-yxs<3IaSIm5-0+cw_FKGVBSm^1K==!vJBy=Qp2sA$g$(&*e( z&OAFirXl}{eC?bW3l=Upe|~e$r$>7FtLEu6SH(UpU&Z<-?_f&GOuKS3UGcN#dMBkL zPQ~^L9Ld!TSh#P-M!vaTB@%z;xo_bqNT@k@&*qzXd{L{GcWYF{tLJkM zF|GX(uE#98>U(H(_$z@3r^IJMc`n6ogM{W^6W=Mch4GtKRB4Xo)u~4-nNLW`9Q0cH z%%|#aVs%U0?y9IC9ak0}ese+c`@S89=M%2JUs4})-(uzs$4SAn*tV61$CT`GP&j`$ z`i;APjnP}T1sf8Cw_WNCYMfhFzh%m)7bi}!Rq}Chy>b&jv|3{4u0#LJU7DDt`(9Ld zwPOZXO4+stTkNLYG;Cyx+7bO$&{T9q-liM(8}E5vSM-z!i8{ajedY1JQ*$P)o9EG^`8D%PYX8-ru6FEy>iJ#+Kb5_J5IAw4TGsB9$trN^HinU1Z-tv6fo`ZrMb!-+|C(#G$|v0V5#GM$WkY4}lE077Y)(1(b7|_8 zvuk@6Jo7B9ZmBwSOm(5l5$>-G8AIQ%SMfe`;l(6|>njD1T~)jhH7C)ZbJnZMf61Sm zCODWq7vzjBd;0Bpcfp_9RpsvuCRD$zDrw%A-kI|5THL%}6@J%Zo4k@YNiF;n{Nlo= zcscc*ne~jRrQ2M0=T$E{4QLq-od3 zlK&Hrtmh7m)fTF2uQ#z!D%b*h8xMtk2yX6JWq*SRWLqWR45WRSg6++_vvpQktF zR@N=^O1v7&F=L02+AZH{o>$JiT+@;<`?lr zr!`mC^4m*J-MZ<944d0x)jMqlUk={2+TwMs@inKgqvn}|eVbD3`OCtVE;!d5G^MR& zCc~-e&tLBD&%4dvGEq~H`}Q8s-EL4dOtoddvc@Tu;qpI;)XX4 zH8#miKJFnFXnBce(ic^qjn6gh*%!TioF?8DS$v(nWVX{JZst|}vmd|fUt>@$eS`b4 z-<1y=J3g3+mR-LPTHB*HJ3;i!M7^~u^8LKks?W~i*ST`*r#IxY1bDRbq;B7{U!eWi1+NRitCeM$^<1R#vMT1S{P9`iRwB#m%Vv#g4rjUV zpUT!d$baPFmFz z4QE@VEAGKOk!9kJXY3JkD^CC2JtJIY3EwH5%ON^nntq(Ae`;MBaE`GpiCy=0o^o3O zOKe9g=cUi{wD0q2zumk&!aZJg(w|1o-QL%hrcXAU+iGs*(quX5;nW8?>*}qa@A3Xx z{BFyf>)*J&s+~gbRSDH*vV7{AH0g}v@_>W0vrJ5GT&bD=(K{$A|CoB*x{b22+hnzw zyi8_2Z-}0;VqWkHhM$|h?~&a9O=!mLBl)X}+;gwq-Smgabx&!Kxk%}vt`B+V^o4m} zs0m!?n)@X0%U`$NRS%~vynRCTy`9o;>G{Xb6z}`xc;7v?{zq!L_0DO_=h>ELFZ?_2 z{*ye5q8aH28UHe^I9%DdWPiYMlOF;z9zV;Puas%~*Xnr`JNN6Dz~_Za-F`^d=^hZ$ zOP*JJreOOz4hQWCd9IdWA9kH8j$}v^vA^^C{q(E6lS=iJ0=_@Ey(%U`Z=U(IG(X?+ zq&KT;jxj8j_3^U!I^9QDr1hfp8_~*Hep1mL75~fGJ!^FyrqqK%oR&2Hs?LKaBlwkw%1i#x#EO9#SfikHCS@| z>lNv%zj72pBG#>nzY?(Hp=i_lXib%pvO{Ij^Z9e$n2SG@SUzEoaH7Q1MxUmG9+6u_ zqe4Wz^^?79^{4KOu)F*D`Gv&|Tb4#W6jgP z&?((@3*XGjS2@BdcJ}F=#ivWo{>Ib_n zs|%&YwB(w3EqfB-^-t~-&tmr7UE#r6oa-{wy8_orJGitvReCLYtU77JR*5^ax#cfk zoTz^A#jV$u{_g&CFJ$I(t@)D!J-B|}o*eu2^(nQNC)?&PPd?FqIk!`M={kw~U%LMp zdGGYAZ+zg(`c=Eqe~SBd%@6Otx`+yI;bs1GrIT}G`Z2|_qQl8k{(WR$zwgBi?L~}h zE1jB8p656a{#nQ=UPk!WukSsY8Lx5~FWRZPGwF_1PWEtc8!9;^ES`G{3de zL^_3k?sAUM>9@Cru$Ub|rq_Xk)yeRy-?$b|XEabG6fjej^TYI=3du12#9 zF6F_0?&Uoxc)F;x;E^(iuYc=5r`vPp>Fk-e_V=48%M~*e7x~Toab@lOx_jZzn}zdT zdml{sf6JtK$~yPe$6T*)RkcaJ;Mx-Pu|Xi-@zN}-{-24j78d&YbB4?p5>@{rF)itQ zQ@GmWl!Nlu6McGWir2sXo4>8oFsby_>AGb zpNo!1)?VAq{F3YYy>*|x{`)^X;-I!{aq4CZL+$xuJ(l+*OUob4{W0rPrd~>&tPQ*NFFaY4)177Ia_Q9LfOk6E-_Bn5;+)K_O?}IG zD=#tc^@!n?di?pE=?}G?Y_qM)W*&@B$={_mvpeg33ztIX&m@D7%dh`fc}9QwjC}bW z-Irbm9S`IR@V=vdoHu3fGFC0K-;-nxzGUuLQ1iHE^*NKq7{(0DSZQf(%r&*bf&!)dUl5x-W1mEdS z;VR9Uxz{ZnZ(if}@QVodyYEr4?mzYmfV`+`rd>)2CNQz#s?VA`6Wg*DxObbqR*-6rdLp!w)V_s73xMF(DSDB%nLfx%ijO!yY!^*wTr~`?QQ1!zRMqXo^W2>n(q&{ja$=_CzVwX{I4`S*&KU! za_$V5>hF8rKYM-n+OfOuELJN#(@o`zp4c$g_hF``2-7@^$htRQ4s;)vimfTUyW*%t zL`}thM)#J9b%MoP?srFY$bD;<{TS(WYX6GulebPYS9*V2W<>|njC)DD9?H2(Khs-& zWJ0K!hW&y2C*pfruZA7&GhP1Z&~t-x=BtwICYBy_z3Sko*|F{V?~E<`eYmZ+Sj;Ov zWOBC6;{F^px8lR!{3U~<9qyercK*Hl%FUe>arbwnMa(|GpQ~Q*oGK0RK__0du-x@Wct>2?x%FgYd zToZ6;+VW?S*7`2Tf2Hm}wB@7jo9xH&?Xxaky6#@~Bd#ptZbmBm`Xq*>HVG$>uw4oI z)w`)RYS*2-&YY&ExtrpA|G4~nRhSeNQP;%2X^UE(3}^DnzezkZ{J$T+$E&!0fgyV( z%hW3t`5fLB>Z?yb%(&slS9Uz$M$-zLj>RJXZMF$su9}*br86UDiTKWs?g9t*Eq)l` zzj3BdU+7`$AC4E*q#_K%jvL;HYk9G<$TaEqwNp;5J@2N(S_?|JY)}*TZ?M1e@Z?VI zIVm0LS9c#-Gq)vu*YX1^j$6q;V@YP%zQ(souvN*nF(mHS+aF68$r{gcQZ1}8Xffyi z)x1wWhB1(xV|pB~ec|nyySVRO$=)C>@ue`|k zY7!@M;p}Xtn}YA<%09g=QaSTVbJ-)Evx^*b&-Sgc=diI~Av>k(m5%n#tusT4_-=f9 z)qmWHrJk=pO_s6S()gf`7^lmN&GUC(_^rM3t@l?q?a!y}tpWtaV_7{I4R?9HUfof> zjsKL6%QCedf14#v4C>hn$h5p;I?hb3>%uX$A(q|%qa)%F7Us+y6)LKmMf0(wMX`QJbP4d*u>Ra%KBet;5*)} zb_EXHY+*d>7yOva`6NK+uSKK76^%3fON8032Ts|xD8_jG@0|rxWi;$`RjjP)&5g5D zbpuLYCoSu!m!J6h<)2ll^U6E|=*7zHf9?jyrVd^u43b2JfxTRz5gz z`rpsi@{Uhr_kTG1zlTlm%{LWG-s$_(=Y3ND zvh>HEXugRl0g5e(?yd7zM<;EJcqnhlccbjz(##3VC!}wdo4RuD>kDO{UqvR1T$*j1 z`}XWlbJ+?VRjpccZ;|tc2~&PNxtCuXY1t^+>}51(!YQ3zo6@3hJ7;&=F8s6i{#r++ zM2BUom;IVyo~UIP zH=8u$^Mr`UOLMj@m@C_;Yx2#;<@karM~{4|XNk*|c*t|&;j!8~;ip%HIBwKUVY+S` zXA-mP!`xW$LtUH;4_$e=Th@o~;@jB@cmCZBJ)&MyC|tewz_~lWm6yB|-Cky7ruv|s znbGIv-sOi@uCyyE&Qvi<&G<8GZNb^hmqvF&BKjAprw4|;v2_)AS)DWKa+}OU|9?zE z2^t#nZYD0sk$-Y1Y@7AX=P?^v>~-YLe{Otw@z=qbZZm|=S~XYOYGgmLkMQsJ%h?oc z#3UZ=SE~}Ge4{dHQSgkHr#AVfyyPgD_H^-Khm5WDiPztow=Q38`^d!i*2=i%eQuBU zUC@#J@cGd{=H(vZ@2(wcRAjK4J?~X`n$TY#z3gU}^%;qsa~JiAXnRX(I4t?Bu+A&W zM{D9HrtcPi?yTGP=F_Ri^HeYX?s^^YWX`%ZmCRueW78h?T(=f!4Kg#GZRqxe(K+ba zjGbo=E{YM~RyvKfH+F}@r|PZhvBnepc9iW}R3pKYD9Ui5%|Z6=lsyY?yyo0=_DuJA zh2$L*SoUhJZ&yv49T8Mj^<=wOhTyH11v_2}l~`0ZpSNjZuKHvg#y@50h7V$XMNj2p zbQkSE^=_V<#!Ax?yZopAiWO3;Cwf+~y}?&lEat6BWBa^WDf{BINm<_*7OYt`zw&8a`}gd1$HIFTT7M4Ep8xG(S*{<4 zjd)R-P;{Bn#?|gV!KP<^EZ5i^_K7F@oY}-9bFM7?@yR@!r`Kuo>+5HZ{5$Y$n&H`* zFD2$)*j6(4ZMfyPDU0VE%MN04otD3{kcqLrmieEo|37Ejo2Mf-8Az3J82-4P#lC7* zvcS}4uWi$hM>EY#Nmy-lGv&n+Mz3w=a-PTYn6_%Cmlmh$NE$s!wDt(iIKDN}lCj|0 z)p;9c8?qSM21~Mj?7uFS!j|@~&G};eJn>2goB!4Y)!W`!DEn{Q)rtvWA@2L#=Vyo5Y-P-jGoGP?0@9Nnu%+% z{LBuyOE1Rcn;z^0!~urIfSywadf!2|qW?SiII|BJNsW;)a zP1~ZSHO{jupI?}D<(FGW_lM2{IsAZeEfa>1U z@vAK+|6CPo-gh(Qf19A`t4`4qU#=}a_VQ*>fm1Y<+GsiineUDam0|XWT01XwD6coAQ~9MN0m9!15buDcrhl8#Lnl(M$gLz4X)+h#QcKjaEs-OFTX5p%!v`MfKRj6y7Y`vMB@&A)hbr|N$;ZDvgMII8fvg{?v_dBag@ z{U3rt->)as|J=IVFu1cl{ck8Yhr{m!&(6(hdi3e}glLDBwNcycCQVb|s@>1}vSsFx zVu#CHL&PsPUi{wed9i+`h@REyfAXIHw0)|(%X zWM{iK%wv1^pEKiv*U7VQv-{JePT3h>6xLqoZDQTFKzzm3R?hJ5y_&yfN-fHc({fz6 z>D_;w>hkq`$3!=uK9;my>3Pe-Lbe$}2Ziw4<@&e{BvfiA?2X51;)zEH(Jds^znHDNRy2A`_r) z#*nrr{NI7Hij;-t)*n53qT}+-zgxc=t#rBYg1@+5=(VW*(L*{X?VEUxNE_c>Zu@e2 z$=4O8Np%WW)Z{-{9xK@q`+2g@LFwCNcQhx;yOebq{?tFPvxaBB?QwbY6KASqxy-hS zb*zt{`TDo8KijfDrak>$S8C?|n5lAmQE&fSW#eUq z7KgU4@xSrUbMK`s8?z*C&CyE?$w@Sy@A5l%lJ=K?0#3!&YXRo&Yv1Utd@#r3)WHn9 z1#in%DQtDh3~OAa_Ila0E1Mbpp0WoVVwUSsVtd0n^NJy(#N{ZJ%1Q*Q?vzgR7S-Hw%;}h{md@XkJg=Fr zPT6YYY@WOQXnb&GMpskTqPcDoe@lGdI&IHqSW_c${j8j(r$_3I@0^AAp6hYFNfuLk zwsF}~uhQQ$0~oeTD$Sa7eqNHb;Pn4~)f>2;oz9(@;vxOT%jC=)9;v20zA~q0FEo|Z z48CaYk=58MasS(i(zU7#*Dp-J?5z>Ux9mywZMQknRW*C&ShsF+Q(5BUpZfAhF{|LK zy?MUIzxxh}f9A^lIbq7fh07Kk*>rAc=o63Bu%j!s{51Ob?0&-OpM4EnPZUHfzrI%D zQ~lFuAn2K9oqEX5ul4EA3<3937N@>DUX{EiZNljrQyVd5&i0Gy66ODew)sa{t*pDq zC%Y!~L{YJ^&jt7A+0XjjLOyQ&zUcJH{}1i>EV~k?KR@-lE9}U%w~H4?pot<*gr=;s% z8Y74I{%pf}MP0T2x&e39Z50$2stAX!n#l2fwW-p!JKp=wzmTbMs@bv7?E8NnPL^+r z@6G(VT;F^5Q^mlw3R~`{S#MBZ`A%t{Y>vTu?S_UaQHMMQcceB)iMajkpQXt@-%MgT z8|Mo{mCeg9F64XkP_*TJ>hd|?Yf^r`dvE*gSUWR2)4^HaicFM(B%;l3JKdAndb?RE z()!kkrv-(tzIVO(_|fO?Lq@adVHZWhoTpDI*>AG6{Lib&nLF}$YVA!Ah^=w(FkNNy z!qt&4F>Y7VLF07(>%!g9zQvqRJAB$ZSE&3-iSCQ7ma(@_oF>m{eL3Mk)~ZnT#Lr&a zru4)=DQ9}}e*dH8pBK(|4qOoQU6{9Vt5IO7=h{mzDkMHjP1#TG=S=>g`XPd)``o+#;UPCt zm@Ic+-}oV3FfCw;Xutm3Vk5bn`vQ0q$Xpq2UaFD17- zl-+xM!g1o~yQRmL%u$d^+_i$kQFGbX^>z~7!kime!rz%yB~^x92$MefC-g%@w7HF= zlVsE08wb_SzH&YnIc zv31E~R{c!BH{N-|izb>oY+2m?gzJ!>ym`m7_w}!Iwy+*;Y3rD_zWCKi&&${DFPr^& z{VKK{|6JFk9ByxL+7#X0%D-;5zOD4?^MOC7b}kWnsp|B9?H}FcVF%_`s;4iG5bp03 zX|arYC;dD$L-v_U%!RJHbVntpYu=2Cd+myoX8mX{FR#%RQC)TAd0O_Ay=%4B9$?|z z@FXK}k3#shtp_2mY>m`IxqBqMANdTM<2F1yXk%X zY!YRAdEu_u)(N*2Bg3O2cTAbNLO*f>f8>Y6b}b>}11miaT-v_8qAp`1WliF4U5{&uWq7$#mbGqiK3emNH{VKp*W$1_g(?OH`@UXP(>u`LYIgplO#j0p z5!;(nR$V$@XZw5Fj>9j_1=CV^ziZ8}iS0BwE8f@fcz$ipW#P)54zsV^aVVT0deLyx zmm`G_^PlFYHhSH@qVV2G(f=!R)%$-s+fGSje8@;yd^|<3*436bZP9eD8EF>Wea5Oe*ug;lzLU%sS5A zDVsiBKeYM&llKlRH_tXZ?0bKsSKdd3<*Y8B-l_%nim$I+o<6_Z@T#ih|M$roT)jfA zeX1WPTwDLs`AJdK&cAc!hUMz^^h61NomJk{oV0fW$I?$r3NNfRIq_?P>($TI6M|N6 z`Sdbij;z(3aPcjzP0zXSJh6Y(qvi1WozYIawNoQ@HlCRrwoHA;?5VvG2UJdI_q}*v za=u6ZY=rE&b#A||-e5gby>!*GwHY4anpzKi(*>?_zkhU-{qdbg;rIR4bDoz{Fgv$*nG!m{4=IY-YX?Ms)mbJp~p3OQXhT^d=le4X?Eiu`tu{}xt4h56my7X&<_d+q z9_M%MyAyqlEtiCinM$AX$9L?%wd%CRjN``VUZqU?A%5g;(xR6|lFQ@- z?rJxFTCt_{VEgITqegLR+`7A0Z4hh?Hp$iSG57e*=yP-G6|o7Y56<0YY_ZfMS&@5w zeC)%0nzB+CW|}^F+;7=!Qats{(Z|xOUwoDC?=auMamQ7pNH2cUzoI1%LLV&LW5HI* zY~5h2rJ!) zT4Ut2a80dK#WKepo8S%euH;YKv9SF_8Pn8nmHR{3H-8DT;dZ%l;>9-K`D--iY?yjK zMT#{ck=ZZyAWuj2Pm|d%y>nZZ9FKSW=;gU}ANRZ0RWA-Oa^?#z`y<3JV$W4@RY=L& zL+$-5neAFGw`9*vO=3Eh`D~A}%5k1Ge$F@QUoBfI!}8$l(GAOe(sn#jTt5Gs!cXF92C9nlP8xH?q6p#XH#2gtM!VHtDk?{ z?fES|L{5TlV=&X7e5Ze_{iZZB`6&e6vCneeSMBuinReMr7oJE%8B^UAVQvZuOLQN+ zoGP04?^Vjd%X*@oHp-DTrP^u@9k%MxS)C!3557pvecs2m?ue%7ap|L+>+(-)8EzE% zoBrbet20|y7CF~t%_@9qb+X@Mv4Z8H%UwKo-D+KPuW@sqU+(Dqxzy^BedwL5Hx>5; zCzwyJ)ez9%Hjnf3B=PlU-}xmU5SSu(*|z75?b8XbPDE#0s0hhvt=^K#`Q-JHty1D# zmm;4`(si)wt$F%WNXb)V(z4T&+&%rDHh%vrysPz4iB9GM^dy3-)zy+J8RPX6o8a>LJDrdg042ul#rD z^^Ls`rQ6&yUt}I!y5;+ewDv~Uj%C4H&u7T6S5DabJKM0bBjeb&Rl5%BvL~{+J#1LK zB=_&J8$$nP%?^t$x>3+6lM~>P7P5Nzf`*57-T#}C*$N{(%9mZySW&aGck7X+1I61# z%I~d>>SgJ%J=Ij1mvYVSVyx7Bq0pndQ!cJLbvAp)DgM;&ADn&Pne?C2eDrz!ACsk@ z4ccl&9!xC_IIbsn*y@Jtg_+l$i4 Date: Tue, 29 Apr 2025 20:54:25 +0200 Subject: [PATCH 413/492] Enable prometheus exporters on `pike` --- modules/prometheus-exporters/default.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/modules/prometheus-exporters/default.nix b/modules/prometheus-exporters/default.nix index 4d1a70e..5841d7b 100644 --- a/modules/prometheus-exporters/default.nix +++ b/modules/prometheus-exporters/default.nix @@ -15,6 +15,7 @@ in "sisko" "picard" "kirk" + "pike" ] { enable = true; @@ -53,6 +54,7 @@ in "sisko" "picard" "kirk" + "pike" ] { enable = true; @@ -62,6 +64,7 @@ in [ "picard" "kirk" + "pike" ] { enable = true; @@ -81,9 +84,12 @@ in "sisko" "picard" "kirk" + "pike" ] { enable = true; }; }; + + systemd.services.prometheus-restic-exporter.path = [ pkgs.openssh ]; } From b2bb18f58379e1c475d214f1aaaeff469243f80a Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Tue, 29 Apr 2025 20:54:53 +0200 Subject: [PATCH 414/492] Disable `pushgateway` --- modules/prometheus/default.nix | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/modules/prometheus/default.nix b/modules/prometheus/default.nix index 5636fe6..e200d58 100644 --- a/modules/prometheus/default.nix +++ b/modules/prometheus/default.nix @@ -27,14 +27,14 @@ in } ]; } - { - job_name = "pushgateway"; - static_configs = [ - { - targets = [ cfg.pushgateway.web.listen-address ]; - } - ]; - } + # { + # job_name = "pushgateway"; + # static_configs = [ + # { + # targets = [ cfg.pushgateway.web.listen-address ]; + # } + # ]; + # } { job_name = "node"; static_configs = [ From baac8eed239f30e8d8e53622d938373e457a9a1b Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Tue, 29 Apr 2025 20:55:25 +0200 Subject: [PATCH 415/492] Scaps Prometheus exporters from `pike` --- modules/prometheus/default.nix | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/modules/prometheus/default.nix b/modules/prometheus/default.nix index e200d58..69f1ddf 100644 --- a/modules/prometheus/default.nix +++ b/modules/prometheus/default.nix @@ -43,6 +43,7 @@ in "sisko" "picard" "kirk" + "pike" ]; } ]; @@ -54,6 +55,7 @@ in targets = builtins.map (host: "${host}.wg.aciceri.dev:9586") [ "picard" "kirk" + "pike" ]; } ]; @@ -65,6 +67,7 @@ in targets = builtins.map (host: "${host}.wg.aciceri.dev:9134") [ "picard" "kirk" + "pike" ]; } ]; @@ -101,12 +104,14 @@ in "sisko" "kirk" "picard" + "pike" ]; } ]; } ]; }; + environment.persistence."/persist".directories = [ "/var/lib/${cfg.stateDir}" ]; From 2e20dabf069b03da88b1474e90959d12a905b485 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Tue, 29 Apr 2025 20:56:07 +0200 Subject: [PATCH 416/492] Add (disabled) `restic` Prometheus exporter --- modules/prometheus-exporters/default.nix | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/modules/prometheus-exporters/default.nix b/modules/prometheus-exporters/default.nix index 5841d7b..bdfe268 100644 --- a/modules/prometheus-exporters/default.nix +++ b/modules/prometheus-exporters/default.nix @@ -1,6 +1,7 @@ { config, lib, + pkgs, ... }: let @@ -69,9 +70,12 @@ in { enable = true; }; - # restic = mkFor ["sisko"] { - # enable = true; - # }; + restic = mkFor [ "sisko" ] { + # https://github.com/ngosang/restic-exporter/issues/31 + enable = false; + repository = config.services.restic.backups.sisko.repository; + passwordFile = config.age.secrets.SISKO_RESTIC_PASSWORD.path; + }; postgres = mkFor [ "sisko" ] { enable = true; }; From 4290a4d45ad559add2fe2c7a3f26a862e01c41a4 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Wed, 30 Apr 2025 21:20:31 +0200 Subject: [PATCH 417/492] Add `garmin-grafana` module --- modules/garmin-grafana/default.nix | 53 ++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 modules/garmin-grafana/default.nix diff --git a/modules/garmin-grafana/default.nix b/modules/garmin-grafana/default.nix new file mode 100644 index 0000000..90795e6 --- /dev/null +++ b/modules/garmin-grafana/default.nix @@ -0,0 +1,53 @@ +{ + config, + pkgs, + lib, + ... +}: +let + garmin-grafana-flake = builtins.getFlake "github:NixOS/nixpkgs/1f03fefb44665cd2377912033de22ffaba2be48d"; + inherit (garmin-grafana-flake.legacyPackages.${pkgs.system}) garmin-grafana; +in +{ + users.users.garmin-grafana = { + isSystemUser = true; + group = "garmin-grafana"; + extraGroups = [ "garmin-grafana" ]; + home = "/var/lib/garmin-grafana"; + }; + + users.groups.garmin-grafana = { }; + + systemd.services.garmin-grafana = { + description = "garmin-grafana"; + wantedBy = [ "multi-user.target" ]; + environment = { + INFLUXDB_HOST = "localhost"; + INFLUXDB_PORT = "8086"; # it's hardcoded in the influxdb NixOS module + INFLUXDB_USERNAME = "garmin-grafana"; + INFLUXDB_PASSWORD = "password"; # FIXME terrible but the databse is not exposed at least + INFLUXDB_DATABASE = "garmin-stats"; + GARMINCONNECT_IS_CN = "False"; + USER_TIMEZONE = "Europe/Rome"; + KEEP_FIT_FILES = "True"; + ALWAYS_PROCESS_FIT_FILES = "True"; + # MANUAL_START_DATE = "2024-06-01"; + # MANUAL_END_DATE = "2025-12-31"; + }; + serviceConfig = { + ExecStart = lib.getExe garmin-grafana; + Group = "garmin-grafana"; + User = "garmin-grafana"; + WorkingDirectory = "/var/lib/garmin-grafana"; + }; + }; + + # garmin-grafana uses influxdb V1, probably it's the only software I'll ever use using the V1 + # so I"m keeping its declaration inside this module + services.influxdb.enable = true; + + environment.persistence."/persist".directories = [ + "/var/lib/garmin-grafana" + config.services.influxdb.dataDir + ]; +} From 11618adc763ae4500cae8730af13c45a96c1b59f Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Wed, 30 Apr 2025 21:20:56 +0200 Subject: [PATCH 418/492] Enable `garmin-grafana` on `sisko` --- hosts/sisko/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/hosts/sisko/default.nix b/hosts/sisko/default.nix index 9faac29..9daa84c 100644 --- a/hosts/sisko/default.nix +++ b/hosts/sisko/default.nix @@ -35,6 +35,7 @@ "mosh" "amule" "adguard-home" + "garmin-grafana" ] ++ [ ./disko.nix From 65299f9f1f43a74e575343b383324227cbef9433 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Wed, 30 Apr 2025 23:00:40 +0200 Subject: [PATCH 419/492] Migrate Immich from Docker to the NixOS module --- modules/immich/default.nix | 114 ++++++-------------------------- modules/sisko-proxy/default.nix | 2 +- 2 files changed, 21 insertions(+), 95 deletions(-) diff --git a/modules/immich/default.nix b/modules/immich/default.nix index ffa5968..bf93484 100644 --- a/modules/immich/default.nix +++ b/modules/immich/default.nix @@ -1,99 +1,25 @@ -{ ... }: -let - vars = { - serviceConfigRoot = "/mnt/hd/immich/state"; - mainArray = "/mnt/hd/immich/"; - domainName = "photos.aciceri.dev"; - }; - directories = [ - "${vars.serviceConfigRoot}/immich" - "${vars.serviceConfigRoot}/immich/postgresql" - "${vars.serviceConfigRoot}/immich/postgresql/data" - "${vars.serviceConfigRoot}/immich/config" - "${vars.serviceConfigRoot}/immich/machine-learning" - "${vars.mainArray}/Photos" - "${vars.mainArray}/Photos/Immich" - "${vars.mainArray}/Photos/S10m" - ]; -in +{ config, ... }: { - systemd.tmpfiles.rules = map (x: "d ${x} 0775 root root - -") directories; - systemd.services = { - podman-immich = { - requires = [ - "podman-immich-redis.service" - "podman-immich-postgres.service" - ]; - after = [ - "podman-immich-redis.service" - "podman-immich-postgres.service" - ]; - }; - podman-immich-postgres = { - requires = [ "podman-immich-redis.service" ]; - after = [ "podman-immich-redis.service" ]; - }; + environment.persistence."/persist".directories = [ + config.services.immich.machine-learning.environment.MACHINE_LEARNING_CACHE_FOLDER + ]; + + services.immich = { + enable = true; + mediaLocation = "/mnt/hd/immich"; }; - virtualisation.oci-containers.containers = { - immich = { - autoStart = true; - image = "ghcr.io/imagegenius/immich:latest"; - volumes = [ - "${vars.serviceConfigRoot}/immich/config:/config" - "${vars.mainArray}/Photos/Immich:/photos" - "${vars.mainArray}/Photos/S10m:/import:ro" - "${vars.serviceConfigRoot}/immich/machine-learning:/config/machine-learning" - ]; - # environmentFiles = [ config.age.secrets.ariaImmichDatabase.path ]; - environment = { - PUID = "994"; - PGID = "993"; - TZ = "Europe/Rome"; - DB_HOSTNAME = "immich-postgres"; - DB_USERNAME = "immich"; - DB_DATABASE_NAME = "immich"; - REDIS_HOSTNAME = "immich-redis"; - DB_PASSWORD = "password"; - }; - extraOptions = [ - "--pull=newer" - "--network=container:immich-redis" - ]; - }; - - immich-redis = { - autoStart = true; - image = "redis"; - extraOptions = [ - "--pull=newer" - "-l=traefik.enable=true" - "-l=traefik.http.routers.immich.rule=Host(`photos.${vars.domainName}`)" - "-l=traefik.http.routers.immich.service=immich" - "-l=traefik.http.services.immich.loadbalancer.server.port=8080" - ]; - ports = [ - "8080:8080" - ]; - }; - - immich-postgres = { - autoStart = true; - image = "tensorchord/pgvecto-rs:pg14-v0.2.1"; - volumes = [ - "${vars.serviceConfigRoot}/immich/postgresql/data:/var/lib/postgresql/data" - ]; - # environmentFiles = [ config.age.secrets.ariaImmichDatabase.path ]; - environment = { - POSTGRES_USER = "immich"; - POSTGRES_DB = "immich"; - POSTGRES_HOST_AUTH_METHOD = "trust"; - POSTGRES_PASSWORD = "password"; - }; - extraOptions = [ - "--pull=newer" - "--network=container:immich-redis" - ]; - }; + # The reason for this hack is quite bad + # Before using the NixOS module Immich was installed using Docker, for this + # reason the paths of the images in the database looks like `/photos/...` + # and after migrating to the NixOS module I kept getting 404s for all the + # old pictures. + # Frankly it seems weird that it saved the absolute paths in the DB, perhaps + # it saves somewhere else the media location root and then merge the paths, + # however, nevertheless I set `mediaLocation` it didn't work + fileSystems."/photos" = { + device = "/mnt/hd/immich/"; + fsType = "ext4"; + options = [ "bind" ]; }; } diff --git a/modules/sisko-proxy/default.nix b/modules/sisko-proxy/default.nix index f35fcd1..19b32b5 100644 --- a/modules/sisko-proxy/default.nix +++ b/modules/sisko-proxy/default.nix @@ -34,7 +34,7 @@ forceSSL = true; enableACME = true; locations."/" = { - proxyPass = "http://localhost:8080"; + proxyPass = "http://localhost:${builtins.toString config.services.immich.port}"; proxyWebsockets = true; }; }; From 8d1023a4a2c039f0a71985d7a264dadf74a337c3 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Sat, 3 May 2025 11:20:58 +0200 Subject: [PATCH 420/492] Always use spaces instead of tabs --- hmModules/emacs/init.el | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/hmModules/emacs/init.el b/hmModules/emacs/init.el index 13eb711..b142b0f 100644 --- a/hmModules/emacs/init.el +++ b/hmModules/emacs/init.el @@ -43,8 +43,8 @@ (use-package emacs :bind (("" . scroll-down-line) - ("" . scroll-up-line) - (("C-x F" . recentf-open))) + ("" . scroll-up-line) + (("C-x F" . recentf-open))) :hook (server-after-make-frame . (lambda () (xterm-mouse-mode +1))) ;; FIXME why is this needed? :custom (use-dialog-box nil) @@ -61,6 +61,8 @@ (treesit-font-lock-level 4) (custom-file "~/.config/emacs/custom.el") (frame-title-format "%b - Emacs") + (indent-tabs-mode nil) + (tab-width 4) :config (set-face-background 'vertical-border (face-background 'default)) (set-display-table-slot standard-display-table 'vertical-border (make-glyph-code ?┃)) @@ -83,7 +85,7 @@ (defun ccr/nixos-rebuild () (interactive) (let* ((operation (completing-read "nixos-rebuild " '("switch" "boot" "test" "dry-activate"))) - (buffer-name (format "nixos-rebuild-%s" operation))) + (buffer-name (format "nixos-rebuild-%s" operation))) (async-shell-command (format "sudo nixos-rebuild --flake fleet %s -L" operation) buffer-name))) ) From 7a50d8e8d169cfe1e499646e2b2d1444ad9a175b Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Sat, 3 May 2025 11:43:49 +0200 Subject: [PATCH 421/492] Enable Video Download helper companion app --- hmModules/firefox/default.nix | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/hmModules/firefox/default.nix b/hmModules/firefox/default.nix index 9100a3e..50ff899 100644 --- a/hmModules/firefox/default.nix +++ b/hmModules/firefox/default.nix @@ -14,7 +14,10 @@ in { programs.firefox = { enable = true; - nativeMessagingHosts = [ pkgs.tridactyl-native ]; + nativeMessagingHosts = [ + pkgs.tridactyl-native + pkgs.vdhcoapp + ]; policies = { DisableTelemetry = true; DisableFirefoxStudies = true; From 197af4cb558d6a34971df47aa14f3f05132ddd9d Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Sat, 3 May 2025 19:42:28 +0200 Subject: [PATCH 422/492] Bump inputs --- flake.lock | 56 +++++++++++++++++++++++++++--------------------------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/flake.lock b/flake.lock index 4c86252..04719bc 100644 --- a/flake.lock +++ b/flake.lock @@ -26,11 +26,11 @@ "nixpkgs": "nixpkgs_2" }, "locked": { - "lastModified": 1745598511, - "narHash": "sha256-GWYB7PngGwTJrp7gr0w6E5nnvwiblPvN2kjRCQw3ZEg=", + "lastModified": 1746175539, + "narHash": "sha256-/wjcn1CDQqOhwOoYKS8Xp0KejrdXSJZQMF1CbbrVtMw=", "owner": "catppuccin", "repo": "nix", - "rev": "199cb288a85b15ed203089804c024ae5b3eacd7c", + "rev": "a5db9e41a4dccfa5ffe38e6f1841a5f9ad5c5c04", "type": "github" }, "original": { @@ -122,11 +122,11 @@ "nixpkgs-stable": "nixpkgs-stable" }, "locked": { - "lastModified": 1745830889, - "narHash": "sha256-P51C3ennff9hNhHr6SsxowZKpbPsa2U4DjC+DIu4Lyg=", + "lastModified": 1746240489, + "narHash": "sha256-DWMG7jkpxrEGzTZZerDqaxT8X983tibFGfNeoWtX1yU=", "owner": "nix-community", "repo": "emacs-overlay", - "rev": "2a6d6d064e33d65dc660b65c28ce17195e539db6", + "rev": "66bb2d7a4df96d0c1e63648850b7aed1b2e8d683", "type": "github" }, "original": { @@ -387,11 +387,11 @@ ] }, "locked": { - "lastModified": 1745810134, - "narHash": "sha256-WfnYH/i7DFzn4SESQfWviXiNUZjohZhzODqLwKYHIPI=", + "lastModified": 1746243165, + "narHash": "sha256-DQycVmlyLQNLjLJ/FzpokVmbxGQ8HjQQ4zN4nyq2vII=", "owner": "nix-community", "repo": "home-manager", - "rev": "be7cf1709b469a2a2c62169172a167d1fed3509f", + "rev": "c0962eeeabfb8127713f859ec8a5f0e86dead0f2", "type": "github" }, "original": { @@ -464,11 +464,11 @@ "lix": { "flake": false, "locked": { - "lastModified": 1745775537, - "narHash": "sha256-X/mfPstVkj3hhIIBU/tGAuOraiYpm3i/A3BiBg1VH4s=", + "lastModified": 1746186329, + "narHash": "sha256-MLz0MjeVCaqvIvf5szUwNwYEiXC/lKWL0I2VS+6V/e0=", "ref": "refs/heads/main", - "rev": "dad17a54f7cf2bae24274dc2b9a535c1938e6eb0", - "revCount": 17805, + "rev": "4e84fd9a0061a04627ec6962c0ed08c2ad0b8a7f", + "revCount": 17824, "type": "git", "url": "https://git@git.lix.systems/lix-project/lix" }, @@ -569,11 +569,11 @@ }, "nixosHardware": { "locked": { - "lastModified": 1745503349, - "narHash": "sha256-bUGjvaPVsOfQeTz9/rLTNLDyqbzhl0CQtJJlhFPhIYw=", + "lastModified": 1745955289, + "narHash": "sha256-mmV2oPhQN+YF2wmnJzXX8tqgYmUYXUj3uUUBSTmYN5o=", "owner": "NixOS", "repo": "nixos-hardware", - "rev": "f7bee55a5e551bd8e7b5b82c9bc559bc50d868d1", + "rev": "72081c9fbbef63765ae82bff9727ea79cc86bd5b", "type": "github" }, "original": { @@ -647,11 +647,11 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1745742390, - "narHash": "sha256-1rqa/XPSJqJg21BKWjzJZC7yU0l/YTVtjRi0RJmipus=", + "lastModified": 1746183838, + "narHash": "sha256-kwaaguGkAqTZ1oK0yXeQ3ayYjs8u/W7eEfrFpFfIDFA=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "26245db0cb552047418cfcef9a25da91b222d6c7", + "rev": "bf3287dac860542719fe7554e21e686108716879", "type": "github" }, "original": { @@ -711,11 +711,11 @@ }, "nixpkgs_4": { "locked": { - "lastModified": 1745526057, - "narHash": "sha256-ITSpPDwvLBZBnPRS2bUcHY3gZSwis/uTe255QgMtTLA=", + "lastModified": 1746141548, + "narHash": "sha256-IgBWhX7A2oJmZFIrpRuMnw5RAufVnfvOgHWgIdds+hc=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "f771eb401a46846c1aebd20552521b233dd7e18b", + "rev": "f02fddb8acef29a8b32f10a335d44828d7825b78", "type": "github" }, "original": { @@ -742,11 +742,11 @@ }, "nixpkgs_6": { "locked": { - "lastModified": 1745526057, - "narHash": "sha256-ITSpPDwvLBZBnPRS2bUcHY3gZSwis/uTe255QgMtTLA=", + "lastModified": 1746141548, + "narHash": "sha256-IgBWhX7A2oJmZFIrpRuMnw5RAufVnfvOgHWgIdds+hc=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "f771eb401a46846c1aebd20552521b233dd7e18b", + "rev": "f02fddb8acef29a8b32f10a335d44828d7825b78", "type": "github" }, "original": { @@ -1009,11 +1009,11 @@ ] }, "locked": { - "lastModified": 1745829891, - "narHash": "sha256-aRkV0ZpfT/ERgRlGrbgjHFRcEWdseltSO+wPnpdPYKg=", + "lastModified": 1746216483, + "narHash": "sha256-4h3s1L/kKqt3gMDcVfN8/4v2jqHrgLIe4qok4ApH5x4=", "owner": "numtide", "repo": "treefmt-nix", - "rev": "d1863f30d9ca67f679f9c2583d7adf674b5d9b8a", + "rev": "29ec5026372e0dec56f890e50dbe4f45930320fd", "type": "github" }, "original": { From bf464f6e3467b2e2411943a3da717b13391c1ff8 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 16 May 2025 16:00:03 +0200 Subject: [PATCH 423/492] `dump1090` NixOS module --- hosts/sisko/default.nix | 2 ++ modules/dump1090/default.nix | 31 +++++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+) create mode 100644 modules/dump1090/default.nix diff --git a/hosts/sisko/default.nix b/hosts/sisko/default.nix index 9daa84c..13a9b0d 100644 --- a/hosts/sisko/default.nix +++ b/hosts/sisko/default.nix @@ -36,6 +36,8 @@ "amule" "adguard-home" "garmin-grafana" + # "dump1090" + "arbi" ] ++ [ ./disko.nix diff --git a/modules/dump1090/default.nix b/modules/dump1090/default.nix new file mode 100644 index 0000000..cf74a4e --- /dev/null +++ b/modules/dump1090/default.nix @@ -0,0 +1,31 @@ +{ + pkgs, + ... +}: +let + dump1090-flake = builtins.getFlake "github:NixOS/nixpkgs/541f05042033467730fb8cedb08355dc91b94c74"; + inherit (dump1090-flake.legacyPackages.${pkgs.system}) dump1090-fa; +in +{ + imports = [ "${dump1090-flake}/nixos/modules/services/misc/dump1090-fa.nix" ]; + + hardware.rtl-sdr.enable = true; + + disabledModules = [ "services/misc/dump10190-fa.nix" ]; + documentation.nixos.enable = false; + + services.dump1090-fa = { + enable = true; + package = dump1090-fa; + }; + + services.nginx.virtualHosts."dump1090.sisko.wg.aciceri.dev" = { + forceSSL = true; + useACMEHost = "aciceri.dev"; + locations = { + "/".alias = "${dump1090-fa}/share/dump1090/"; + "/data/".alias = "/run/dump1090-fa/"; + }; + serverAliases = [ "dump1090.sisko.zt.aciceri.dev" ]; + }; +} From 40b8028383e1c0b0a24a74f946d6fc214e168586 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 16 May 2025 16:00:30 +0200 Subject: [PATCH 424/492] Add `tidal` package to emacs --- packages/emacs/packages.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/emacs/packages.nix b/packages/emacs/packages.nix index 73c6e96..5123818 100644 --- a/packages/emacs/packages.nix +++ b/packages/emacs/packages.nix @@ -206,6 +206,7 @@ let mixed-pitch visual-replace org-super-agenda + tidal # org-re-reveal # FIXME very not nice hash mismatch when building ] ) From f2da144a9271e07b50b963192e4641c4fa15deb5 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 16 May 2025 16:00:37 +0200 Subject: [PATCH 425/492] Add `typst-ts-mode` to emacs --- packages/emacs/packages.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/emacs/packages.nix b/packages/emacs/packages.nix index 5123818..9ab2c44 100644 --- a/packages/emacs/packages.nix +++ b/packages/emacs/packages.nix @@ -223,6 +223,9 @@ let eat corfu-terminal haskell-ts-mode + ]) + ++ (with epkgs; [ + typst-ts-mode # why this doesn't seem to be in elpaPackages? ]); in mainPackages ++ (builtins.attrValues extraPackages) From 8fcc7106c3a6930d63c72f6955c729336a5cd1fa Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 16 May 2025 16:00:57 +0200 Subject: [PATCH 426/492] Update `garmin-grafana` --- modules/garmin-grafana/default.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/garmin-grafana/default.nix b/modules/garmin-grafana/default.nix index 90795e6..e75b15b 100644 --- a/modules/garmin-grafana/default.nix +++ b/modules/garmin-grafana/default.nix @@ -5,7 +5,8 @@ ... }: let - garmin-grafana-flake = builtins.getFlake "github:NixOS/nixpkgs/1f03fefb44665cd2377912033de22ffaba2be48d"; + rev = "f24579d13ee035af96d4a68b765af2aa4b1018b6"; + garmin-grafana-flake = builtins.getFlake "github:NixOS/nixpkgs/${rev}"; inherit (garmin-grafana-flake.legacyPackages.${pkgs.system}) garmin-grafana; in { From 58cfa8ee1fa0505fa2dc36abfe62940ba29c64bf Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 16 May 2025 16:02:18 +0200 Subject: [PATCH 427/492] Use amule module from my PR --- modules/amule/default.nix | 56 ++++++++++++++++++++++++--------------- 1 file changed, 34 insertions(+), 22 deletions(-) diff --git a/modules/amule/default.nix b/modules/amule/default.nix index 9752f8f..6416e9f 100644 --- a/modules/amule/default.nix +++ b/modules/amule/default.nix @@ -1,34 +1,46 @@ -{ config, lib, ... }: +{ config, pkgs, ... }: +let + rev = "966199fe1dccc9c6c7016bdb1d9582f27797bc02"; + amule-flake = builtins.getFlake "github:NixOS/nixpkgs/${rev}"; + inherit (amule-flake.legacyPackages.${pkgs.system}) amule-daemon amule-web; +in { - users.users.amule = { - isSystemUser = true; - group = "amule"; - extraGroups = [ "amule" ]; - home = config.services.amule.dataDir; - }; + disabledModules = [ "services/networking/amuled.nix" ]; + documentation.nixos.enable = false; + + imports = [ "${amule-flake}/nixos/modules/services/networking/amuled.nix" ]; - users.groups.amule = { }; services.amule = { - dataDir = "/mnt/hd/amule"; enable = true; - user = "amule"; + package = amule-daemon; + amuleWebPackage = amule-web; + openPeerPorts = true; + openWebServerPort = true; + # TODO the service is accessible only from the VPN + # however better using agenix + ExternalConnectPasswordFile = pkgs.writeText "password" "pippo"; + WebServerPasswordFile = pkgs.writeText "password" "pippo"; + settings = { + eMule = { + IncomingDir = "/mnt/hd/amule"; + TempDir = "/mnt/hd/amule/Temp"; + }; + WebServer = { + Enabled = 1; + }; + }; }; - # sometimes the service crashes with a segfeault without any reason... - systemd.services.amuled.serviceConfig.Restart = lib.mkForce "always"; - environment.persistence."/persist".directories = [ config.services.amule.dataDir ]; - networking.firewall = { - allowedTCPPorts = [ 4662 ]; - allowedUDPPortRanges = [ - { - from = 4665; - to = 4672; - } - ]; + services.nginx.virtualHosts."amule.sisko.wg.aciceri.dev" = { + forceSSL = true; + useACMEHost = "aciceri.dev"; + locations."/" = { + proxyPass = "http://localhost:${builtins.toString config.services.amule.settings.WebServer.Port}"; + }; + serverAliases = [ "amule.sisko.zt.aciceri.dev" ]; }; - } From 995af1451562f006b2045af4f419433707d99cb0 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 16 May 2025 16:02:32 +0200 Subject: [PATCH 428/492] Disable spotify at startup --- hmModules/spotify/default.nix | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/hmModules/spotify/default.nix b/hmModules/spotify/default.nix index 59b2edd..5bc0a6d 100644 --- a/hmModules/spotify/default.nix +++ b/hmModules/spotify/default.nix @@ -9,18 +9,18 @@ in { home.packages = [ spotify-adblocked ]; - systemd.user.services.spotify-adblocked = { - Install.WantedBy = [ "graphical-session.target" ]; + # systemd.user.services.spotify-adblocked = { + # Install.WantedBy = [ "graphical-session.target" ]; - Unit = { - Description = "Spotify"; - PartOf = [ "graphical-session.target" ]; - }; + # Unit = { + # Description = "Spotify"; + # PartOf = [ "graphical-session.target" ]; + # }; - Service = { - ExecStart = lib.getExe spotify-adblocked; - Restart = "on-failure"; - RestartSec = 3; - }; - }; + # Service = { + # ExecStart = lib.getExe spotify-adblocked; + # Restart = "on-failure"; + # RestartSec = 3; + # }; + # }; } From cc3a0012b595cd991bb91abe1ce9c0b34c11cbb0 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 16 May 2025 16:02:43 +0200 Subject: [PATCH 429/492] `services.gpg-agent.pinentryPackage` option renamed --- hmModules/gpg/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hmModules/gpg/default.nix b/hmModules/gpg/default.nix index f245f26..abef97c 100644 --- a/hmModules/gpg/default.nix +++ b/hmModules/gpg/default.nix @@ -2,7 +2,7 @@ { services.gpg-agent = { enable = true; - pinentryPackage = pkgs.pinentry-rofi.override { + pinentry.package = pkgs.pinentry-rofi.override { rofi = pkgs.rofi-wayland; }; extraConfig = '' From 39b276d691c3c327b90020c016a58c0429162c7a Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 16 May 2025 16:03:13 +0200 Subject: [PATCH 430/492] Remove OS icon from prompt --- hmModules/shell/catppuccin_mocha.omp.json | 61 +++++++++++++++++++++++ hmModules/shell/default.nix | 7 ++- 2 files changed, 67 insertions(+), 1 deletion(-) create mode 100644 hmModules/shell/catppuccin_mocha.omp.json diff --git a/hmModules/shell/catppuccin_mocha.omp.json b/hmModules/shell/catppuccin_mocha.omp.json new file mode 100644 index 0000000..c5c74c8 --- /dev/null +++ b/hmModules/shell/catppuccin_mocha.omp.json @@ -0,0 +1,61 @@ +{ + "$schema": "https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/schema.json", + "palette": { + "os": "#ACB0BE", + "closer": "p:os", + "pink": "#F5C2E7", + "lavender": "#B4BEFE", + "blue": "#89B4FA" + }, + "blocks": [ + { + "alignment": "left", + "segments": [ + { + "foreground": "p:blue", + "style": "plain", + "template": "{{ .UserName }}@{{ .HostName }} ", + "type": "session" + }, + { + "foreground": "p:pink", + "properties": { + "folder_icon": "..\ue5fe..", + "home_icon": "~", + "style": "agnoster_short" + }, + "style": "plain", + "template": "{{ .Path }} ", + "type": "path" + }, + { + "foreground": "p:lavender", + "properties": { + "branch_icon": "\ue725 ", + "cherry_pick_icon": "\ue29b ", + "commit_icon": "\uf417 ", + "fetch_status": false, + "fetch_upstream_icon": false, + "merge_icon": "\ue727 ", + "no_commits_icon": "\uf0c3 ", + "rebase_icon": "\ue728 ", + "revert_icon": "\uf0e2 ", + "tag_icon": "\uf412 " + }, + "template": "{{ .HEAD }} ", + "style": "plain", + "type": "git" + }, + { + "style": "plain", + "foreground": "p:closer", + "template": "\uf105", + "type": "text" + } + ], + "type": "prompt" + } + ], + "final_space": true, + "version": 3 +} diff --git a/hmModules/shell/default.nix b/hmModules/shell/default.nix index c654977..6c7e5c1 100644 --- a/hmModules/shell/default.nix +++ b/hmModules/shell/default.nix @@ -84,7 +84,12 @@ programs.thefuck.enable = true; programs.oh-my-posh = { enable = true; - useTheme = "catppuccin_mocha"; + # same as "captuccin_mocha" but without the OS logo + settings = lib.mkForce ( + builtins.fromJSON ( + builtins.unsafeDiscardStringContext (builtins.readFile ./catppuccin_mocha.omp.json) + ) + ); }; programs.zellij.enableBashIntegration = false; From cdfa60ad5e4a93e4e61dd1d8e8df6dfc515744b6 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 16 May 2025 16:05:12 +0200 Subject: [PATCH 431/492] Add `arbi` NixOS module --- modules/arbi/default.nix | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 modules/arbi/default.nix diff --git a/modules/arbi/default.nix b/modules/arbi/default.nix new file mode 100644 index 0000000..02ab9e5 --- /dev/null +++ b/modules/arbi/default.nix @@ -0,0 +1,22 @@ +{ config, pkgs, ... }: +let + rev = "d531730d9640160f0519ef4b3640f8da49dd96f8"; + arbi-flake = builtins.getFlake "git+ssh://git@github.com/aciceri/arbi.git?rev=${rev}"; +in +{ + imports = [ arbi-flake.nixosModules.arbi ]; + + services.arbi = { + enable = true; + log_level = "debug"; + configFile = pkgs.writeText "arbi-config.kdl" '' + endpoint "wss://eth-mainnet.g.alchemy.com/v2/" + pairs_file "pairs.json" + concurrency 4 + ''; + }; + + environment.persistence."/persist".directories = [ + config.services.arbi.dataDir + ]; +} From a7c19c03dfd8bef0f7d4f39c29b63f78d077ea3f Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 16 May 2025 16:05:49 +0200 Subject: [PATCH 432/492] `haskell-language-server-wrapper` -> `haskell-language-server` --- hmModules/emacs/init.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hmModules/emacs/init.el b/hmModules/emacs/init.el index b142b0f..92eff50 100644 --- a/hmModules/emacs/init.el +++ b/hmModules/emacs/init.el @@ -566,7 +566,7 @@ :mode "\\.hs\\'" :config (add-to-list 'eglot-server-programs - '(haskell-ts-mode . ("haskell-language-server-wrapper" "--lsp")))) + '(haskell-ts-mode . ("haskell-language-server" "--lsp")))) (use-package purescript-mode :custom ((project-vc-extra-root-markers '("spago.dhall"))) From f55a6b64239d6219326ac94ff94be637c8abba2c Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 16 May 2025 16:06:20 +0200 Subject: [PATCH 433/492] Play with `tidal` (tidal cycles) --- hmModules/emacs/init.el | 2 ++ 1 file changed, 2 insertions(+) diff --git a/hmModules/emacs/init.el b/hmModules/emacs/init.el index 92eff50..b772192 100644 --- a/hmModules/emacs/init.el +++ b/hmModules/emacs/init.el @@ -568,6 +568,8 @@ (add-to-list 'eglot-server-programs '(haskell-ts-mode . ("haskell-language-server" "--lsp")))) +(use-package tidal + :custom ((tidal-interpreter "tidal"))) (use-package purescript-mode :custom ((project-vc-extra-root-markers '("spago.dhall"))) :hook ((purescript-mode . eglot-ensure) From 1ed4ed0da514970ca62568ec3f620ea3f992c6fa Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 16 May 2025 16:07:12 +0200 Subject: [PATCH 434/492] Indentation --- hmModules/emacs/init.el | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hmModules/emacs/init.el b/hmModules/emacs/init.el index b772192..a176986 100644 --- a/hmModules/emacs/init.el +++ b/hmModules/emacs/init.el @@ -573,8 +573,8 @@ (use-package purescript-mode :custom ((project-vc-extra-root-markers '("spago.dhall"))) :hook ((purescript-mode . eglot-ensure) - (purescript-mode . turn-on-purescript-indentation) - (purescript-mode . (lambda () (setq project-vc-extra-root-markers '("spago.dhall")))))) + (purescript-mode . turn-on-purescript-indentation) + (purescript-mode . (lambda () (setq project-vc-extra-root-markers '("spago.dhall")))))) (use-package terraform-mode :after eglot From fffef9090515b77c3d0dfae54423773d72904720 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 16 May 2025 16:07:27 +0200 Subject: [PATCH 435/492] Enable `typst-ts-mode` --- hmModules/emacs/init.el | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/hmModules/emacs/init.el b/hmModules/emacs/init.el index a176986..ff50b5d 100644 --- a/hmModules/emacs/init.el +++ b/hmModules/emacs/init.el @@ -598,6 +598,15 @@ (use-package gptscript-mode :mode "\\.gpt\\'") +(use-package gptscript-mode + :mode "\\.gpt\\'") + +(use-package typst-ts-mode + :config + (add-to-list 'eglot-server-programs + '(typst-ts-mode . ("tinymist" "lsp"))) + :mode "\\.typ\\'") + ;; FIXME ;; (use-package mmm-mode ;; :config @@ -615,7 +624,7 @@ (use-package paredit :delight :hook ((lisp-mode . enable-paredit-mode) - (emacs-lisp-mode . enable-paredit-mode))) + (emacs-lisp-mode . enable-paredit-mode))) (use-package aggressive-indent :hook ((lisp-mode . aggressive-indent-mode) From 36ad3ced81978a1b655701818a2bcfc93aecb073 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 16 May 2025 16:07:48 +0200 Subject: [PATCH 436/492] Indentation --- hmModules/emacs/init.el | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/hmModules/emacs/init.el b/hmModules/emacs/init.el index ff50b5d..79a198e 100644 --- a/hmModules/emacs/init.el +++ b/hmModules/emacs/init.el @@ -1030,12 +1030,12 @@ This is meant to be an helper to be called from the window manager." :custom (gptel-model 'google/gemini-2.5-flash-preview) (gptel-backend (gptel-make-openai "OpenRouter" - :host "openrouter.ai" - :endpoint "/api/v1/chat/completions" - :key (lambda () (require 'f) (f-read-text (getenv "OPENAI_API_KEY_PATH"))) - :stream t - :models '(google/gemini-2.5-flash-preview)) - ) + :host "openrouter.ai" + :endpoint "/api/v1/chat/completions" + :key (lambda () (require 'f) (f-read-text (getenv "OPENAI_API_KEY_PATH"))) + :stream t + :models '(google/gemini-2.5-flash-preview)) + ) (gptel-default-mode 'org-mode) (gptel-org-branching-context nil) ;; this is cool but I don't feel comfortable with it (gptel-use-tools nil) From 79c98d1e5da10da32bf5119d78d4abcd64b509ca Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 16 May 2025 16:08:15 +0200 Subject: [PATCH 437/492] Add many gptel tools --- hmModules/emacs/init.el | 222 +++++++++++++++++++++++++++------------- 1 file changed, 153 insertions(+), 69 deletions(-) diff --git a/hmModules/emacs/init.el b/hmModules/emacs/init.el index 79a198e..7959261 100644 --- a/hmModules/emacs/init.el +++ b/hmModules/emacs/init.el @@ -570,6 +570,7 @@ (use-package tidal :custom ((tidal-interpreter "tidal"))) + (use-package purescript-mode :custom ((project-vc-extra-root-markers '("spago.dhall"))) :hook ((purescript-mode . eglot-ensure) @@ -1038,7 +1039,7 @@ This is meant to be an helper to be called from the window manager." ) (gptel-default-mode 'org-mode) (gptel-org-branching-context nil) ;; this is cool but I don't feel comfortable with it - (gptel-use-tools nil) + (gptel-use-tools 't) :bind ("C-c a a" . gptel-add) @@ -1053,80 +1054,163 @@ This is meant to be an helper to be called from the window manager." ;; (add-hook 'gptel-post-response-functions 'gptel-end-of-response) ;; (add-hook 'gptel-post-stream-hook 'gptel-auto-scroll) - (setq gptel-tools (mapcar (lambda (tool) (apply #'gptel-make-tool tool)) - '(( - :name "create_file" - :function (lambda (path filename content) - (let ((full-path (expand-file-name filename path))) - (with-temp-buffer - (insert content) - (write-file full-path)) - (format-read "Created file %s in %s" filename path))) - :description "Create a new file with the specified content" - :args (list '(:name "path" - :type string - :description "The directory where to create the file") - '(:name "filename" - :type string - :description "The name of the file to create") - '(:name "content" - :type string - :description "The content to write to the file")) - :category "filesystem" - ) - ;; ( - ;; :name "run_command" - ;; :confirm 't - ;; :function (lambda (command) - ;; (shell-command-to-string command)) - ;; :description "Run arbitrary commands" - ;; :args (list '(:name "command" - ;; :type string - ;; :description "The content to run e.g. 'ls *' or 'fd '")) - ;; ) - ( - :name "get_weather" - :function (lambda (location) - (url-retrieve-synchronously "api.weather.com/..." - location unit)) - :description "Get the current weather in a given location" - :args (list '(:name "location" - :type string - :description "The city and state, e.g. San Francisco, CA") - '(:name "unit" - :type string - :enum ["celsius" "farenheit"] - :description - "The unit of temperature, either 'celsius' or 'fahrenheit" - :optional t - )) - ) - )) - ) + (defun ccr/edit-buffer (buffer-name old-string new-string) + "In BUFFER-NAME, replace OLD-STRING with NEW-STRING." + (with-current-buffer buffer-name + (let ((case-fold-search nil)) ;; Case-sensitive search + (save-excursion + (goto-char (point-min)) + (let ((count 0)) + (while (search-forward old-string nil t) + (setq count (1+ count))) + (if (= count 0) + (format "Error: Could not find text to replace in buffer %s" buffer-name) + (if (> count 1) + (format "Error: Found %d matches for the text to replace in buffer %s" count buffer-name) + (goto-char (point-min)) + (search-forward old-string) + (replace-match new-string t t) + (format "Successfully edited buffer %s" buffer-name)))))))) + + (defun ccr/replace-buffer (buffer-name content) + "Completely replace contents of BUFFER-NAME with CONTENT." + (with-current-buffer buffer-name + (erase-buffer) + (insert content) + (format "Buffer replaced: %s" buffer-name))) + + (setq gptel-tools `( + ,(gptel-make-tool + :function (lambda (url) + (with-current-buffer (url-retrieve-synchronously url) + (goto-char (point-min)) + (forward-paragraph) + (let ((dom (libxml-parse-html-region (point) (point-max)))) + (run-at-time 0 nil #'kill-buffer (current-buffer)) + (with-temp-buffer + (shr-insert-document dom) + (buffer-substring-no-properties (point-min) (point-max)))))) + :name "read_url" + :description "Fetch and read the contents of a URL" + :args (list '(:name "url" + :type string + :description "The URL to read")) + :category "web") + ,(gptel-make-tool + :function (lambda (filepath) + (with-temp-buffer + (insert-file-contents (expand-file-name filepath)) + (buffer-string))) + :name "read_file" + :description "Read and display the contents of a file" + :args (list '(:name "filepath" + :type string + :description "Path to the file to read. Supports relative paths and ~.")) + :category "filesystem") + ,(gptel-make-tool + :function (lambda (directory) + (mapconcat #'identity + (directory-files directory) + "\n")) + :name "list_directory" + :description "List the contents of a given directory" + :args (list '(:name "directory" + :type string + :description "The path to the directory to list")) + :category "filesystem") + ,(gptel-make-tool + :function (lambda () (mapcar 'buffer-name (buffer-list))) + :name "list_buffers" + :description "Return a list containing all the Emacs buffers" + :category "emacs") + ,(gptel-make-tool + :function (lambda (buffer) + (unless (buffer-live-p (get-buffer buffer)) + (error "Error: buffer %s is not live." buffer)) + (with-current-buffer buffer + (buffer-substring-no-properties (point-min) (point-max)))) + :name "read_buffer" + :description "Return the contents of an Emacs buffer" + :args (list '(:name "buffer" + :type string + :description "The name of the buffer whose contents are to be retrieved")) + :category "emacs") + ,(gptel-make-tool + :function (lambda (buffer text) + (with-current-buffer (get-buffer-create buffer) + (save-excursion + (goto-char (point-max)) + (insert text))) + (format "Appended text to buffer %s" buffer)) + :name "append_to_buffer" + :description "Append text to an Emacs buffer. If the buffer does not exist, it will be created." + :confirm t + :args (list '(:name "buffer" + :type string + :description "The name of the buffer to append text to.") + '(:name "text" + :type string + :description "The text to append to the buffer.")) + :category "emacs") + ,(gptel-make-tool + :name "EditBuffer" + :function #'ccr/edit-buffer + :description "Edits Emacs buffers" + :confirm t + :args '((:name "buffer_name" + :type string + :description "Name of the buffer to modify" + :required t) + (:name "old_string" + :type string + :description "Text to replace (must match exactly)" + :required t) + (:name "new_string" + :type string + :description "Text to replace old_string with" + :required t)) + :category "edit") + , + (gptel-make-tool + :name "ReplaceBuffer" + :function #'ccr/replace-buffer + :description "Completely overwrites buffer contents" + :confirm t + :args '((:name "buffer_name" + :type string + :description "Name of the buffer to overwrite" + :required t) + (:name "content" + :type string + :description "Content to write to the buffer" + :required t)) + :category "edit") + )) + (defun ccr/suggest-eshell-command () (interactive) (save-excursion (eshell-bol) (let ((start-pos (point)) - (end-pos (line-end-position))) - (gptel-request - (buffer-substring-no-properties start-pos end-pos) ;the prompt - :system "You are proficient with emacs shell (eshell), translate the following to something I could directly prompt to the shell. Your responses should only be code, without explanation or formatting or quoting." - :buffer (current-buffer) - :context (cons (set-marker (make-marker) start-pos) - (set-marker (make-marker) end-pos)) - :callback - (lambda (response info) - (if (not response) - (message "ChatGPT response failed with: %s" (plist-get info :status)) - (kill-region start-pos end-pos) - (insert response))))))) + (end-pos (line-end-position))) + (gptel-request + (buffer-substring-no-properties start-pos end-pos) ;the prompt + :system "You are proficient with emacs shell (eshell), translate the following to something I could directly prompt to the shell. Your responses should only be code, without explanation or formatting or quoting." + :buffer (current-buffer) + :context (cons (set-marker (make-marker) start-pos) + (set-marker (make-marker) end-pos)) + :callback + (lambda (response info) + (if (not response) + (message "ChatGPT response failed with: %s" (plist-get info :status)) + (kill-region start-pos end-pos) + (insert response))))))) (add-to-list 'display-buffer-alist '("^\\*ChatGPT\\*" - (display-buffer-full-frame) - (name . "floating"))) + (display-buffer-full-frame) + (name . "floating"))) (defun ccr/start-chatgpt () ;; Used from outside Emacs by emacsclient --eval (display-buffer (gptel "*ChatGPT*")) @@ -1142,9 +1226,9 @@ This is meant to be an helper to be called from the window manager." (require 'password-store-otp) ;; FIXME use `use-pacakge' idiomatic way :bind (("C-c p p" . password-store-copy) - ("C-c p o" . password-store-otp-token-copy) - ("C-c p e" . password-store-edit) - ("C-c p i" . password-store-insert))) + ("C-c p o" . password-store-otp-token-copy) + ("C-c p e" . password-store-edit) + ("C-c p i" . password-store-insert))) (use-package with-editor :init (shell-command-with-editor-mode +1)) From 38050dae682faeb4cec2d1bb4b4c19187fe7dbd2 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 16 May 2025 17:44:46 +0200 Subject: [PATCH 438/492] Allow CI to fetch private GitHub repos --- .forgejo/workflows/build.yaml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.forgejo/workflows/build.yaml b/.forgejo/workflows/build.yaml index ee456fc..aae572c 100644 --- a/.forgejo/workflows/build.yaml +++ b/.forgejo/workflows/build.yaml @@ -9,6 +9,12 @@ jobs: name: Checkout repository - name: Attic login run: attic login nixfleet http://sisko.wg.aciceri.dev:8081 ${{secrets.ATTIC_NIXFLEET_TOKEN}} + - name: Setup SSH + run: | + mkdir -p ~/.ssh + echo "${{secrets.FORGEJO_SSH_KEY}}" > ~/.ssh/id_ed25519 + chmod 600 ~/.ssh/id_ed25519 + ssh-keyscan github.com >> ~/.ssh/known_hosts - name: Build with nix run: nix-fast-build --no-nom --systems "x86_64-linux aarch64-linux" --attic-cache "nixfleet" --skip-cached --result-file result.json || true - name: Report checks From 4594f9d3e58469d4a2e309a6aea1c233fd82da41 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 16 May 2025 18:39:24 +0200 Subject: [PATCH 439/492] Bump the flake lockfile once a week --- .forgejo/workflows/update-flake-lock.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.forgejo/workflows/update-flake-lock.yaml b/.forgejo/workflows/update-flake-lock.yaml index 7a45fc4..abe16bd 100644 --- a/.forgejo/workflows/update-flake-lock.yaml +++ b/.forgejo/workflows/update-flake-lock.yaml @@ -1,7 +1,7 @@ name: update-flake-lock on: schedule: - - cron: "0 15 * * *" # daily at 15:00 + - cron: "0 15 * * 1" # weekly on Monday at 15:00 jobs: lockfile: From 0b640e0e15bb233920e2999280244204395f9adf Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 16 May 2025 18:39:46 +0200 Subject: [PATCH 440/492] Add `forgejo-ci`'s SSH key --- lib/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/default.nix b/lib/default.nix index 4330d49..3d15451 100644 --- a/lib/default.nix +++ b/lib/default.nix @@ -4,6 +4,7 @@ ccr-ssh = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIm9Sl/I+5G4g4f6iE4oCUJteP58v+wMIew9ZuLB+Gea"; oneplus8t = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIO8da1Mf11vXFF0kVDgxocVoGwpHHMEs9emS9T+v8hLb oneplus8t"; hercules-ci-agent = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGPupm00BiveTIYF6CNwuMijF5VvEaPDMjvt+vMlAy+N hercules-ci-agent"; + forgejo-ci = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIH5mbqLoZ/0J45J7J+17XMGv/dXs3DGABJsnvDv4rgC9 forgjeo-ci"; }; hosts = { kirk = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAH49KzayIro3L1bteR7nwupMM/vKlDh05t5/DFD9/uz"; From 5df791bd5aa3c7e5adfd394f1454984970ec2dc6 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 16 May 2025 18:40:28 +0200 Subject: [PATCH 441/492] Remove unused stuff --- modules/forgejo-runners/default.nix | 24 +----------------------- 1 file changed, 1 insertion(+), 23 deletions(-) diff --git a/modules/forgejo-runners/default.nix b/modules/forgejo-runners/default.nix index 3234a46..f6d7682 100644 --- a/modules/forgejo-runners/default.nix +++ b/modules/forgejo-runners/default.nix @@ -17,6 +17,7 @@ let gnugrep gawk git + openssh nix bash jq @@ -38,15 +39,6 @@ let cp -a "${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt" $out/etc/ssl/certs/ca-bundle.crt ''; numInstances = 1; - pushToCache = pkgs.writeScript "push-to-cache.sh" '' - #!/bin/sh - set -eu - set -f # disable globbing - export IFS=' ' - - echo "Uploading paths" $OUT_PATHS - exec nix copy --to "s3://cache?profile=default®ion=eu-south-1&scheme=https&endpoint=cache.aciceri.dev" $OUT_PATHS - ''; in lib.mkMerge [ { @@ -80,7 +72,6 @@ lib.mkMerge [ cat < etc/nix/nix.conf accept-flake-config = true experimental-features = nix-command flakes - post-build-hook = ${pushToCache} include access-tokens NIX_CONFIG @@ -121,22 +112,9 @@ lib.mkMerge [ nix.settings.trusted-users = [ "nixuser" ]; } { - # Format of the token file: virtualisation = { podman.enable = true; }; - - # virtualisation.containers.storage.settings = { - # storage.driver = "zfs"; - # storage.graphroot = "/var/lib/containers/storage"; - # storage.runroot = "/run/containers/storage"; - # storage.options.zfs.fsname = "zroot/root/podman"; - # }; - - # virtualisation.containers.containersConf.settings = { - # # podman seems to not work with systemd-resolved - # containers.dns_servers = [ "8.8.8.8" "8.8.4.4" ]; - # }; } { systemd.services = From 632cc893e544e68af3a25eee68efbf862e6fe8a5 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 16 May 2025 21:07:19 +0200 Subject: [PATCH 442/492] Enable `jellyfin-media-player` on `pike` --- hmModules/jellyfin/default.nix | 4 ++++ hosts/pike/default.nix | 1 + 2 files changed, 5 insertions(+) create mode 100644 hmModules/jellyfin/default.nix diff --git a/hmModules/jellyfin/default.nix b/hmModules/jellyfin/default.nix new file mode 100644 index 0000000..77d23c3 --- /dev/null +++ b/hmModules/jellyfin/default.nix @@ -0,0 +1,4 @@ +{ pkgs, ... }: +{ + home.packages = [ pkgs.jellyfin-media-player ]; +} diff --git a/hosts/pike/default.nix b/hosts/pike/default.nix index e5e6ca6..2248933 100644 --- a/hosts/pike/default.nix +++ b/hosts/pike/default.nix @@ -89,6 +89,7 @@ "zoom" "pantalaimon" "gimp" + "jellyfin" ]; extraGroups = [ "plugdev" ]; backupPaths = [ ]; From c84a98f1ac2b7d658bed6b9d5221d3af64fad463 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 16 May 2025 21:07:41 +0200 Subject: [PATCH 443/492] Disable touchpad when typing in niri --- hmModules/niri/config.kdl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hmModules/niri/config.kdl b/hmModules/niri/config.kdl index eecbd3b..06f54e1 100644 --- a/hmModules/niri/config.kdl +++ b/hmModules/niri/config.kdl @@ -19,7 +19,7 @@ input { touchpad { // off tap - // dwt + dwt // dwtp natural-scroll // accel-speed 0.2 From 39481006b8ccc94ec60809d222aee5dd2fc25529 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 16 May 2025 21:08:18 +0200 Subject: [PATCH 444/492] Enable checks for `pike` and `picard` --- checks/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/checks/default.nix b/checks/default.nix index 5bca772..ae2c491 100644 --- a/checks/default.nix +++ b/checks/default.nix @@ -49,7 +49,7 @@ build = _: nc: nc.config.system.build.toplevel; in { - x86_64-linux = lib.mapAttrs build { inherit (self.nixosConfigurations) picard; }; + x86_64-linux = lib.mapAttrs build { inherit (self.nixosConfigurations) picard pike kirk; }; aarch64-linux = lib.mapAttrs build { inherit (self.nixosConfigurations) sisko; # pbp; }; From 8804f04d28a7173489498e6e0b8ab9949a699df7 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Sat, 17 May 2025 09:30:03 +0200 Subject: [PATCH 445/492] CI test --- .forgejo/workflows/build.yaml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.forgejo/workflows/build.yaml b/.forgejo/workflows/build.yaml index aae572c..3231690 100644 --- a/.forgejo/workflows/build.yaml +++ b/.forgejo/workflows/build.yaml @@ -15,7 +15,10 @@ jobs: echo "${{secrets.FORGEJO_SSH_KEY}}" > ~/.ssh/id_ed25519 chmod 600 ~/.ssh/id_ed25519 ssh-keyscan github.com >> ~/.ssh/known_hosts - - name: Build with nix - run: nix-fast-build --no-nom --systems "x86_64-linux aarch64-linux" --attic-cache "nixfleet" --skip-cached --result-file result.json || true + ssh-keyscan sisko.wg.aciceri.dev >> ~/.ssh/known_hosts + # - name: Build with nix (x86_64-linux) + # run: nix-fast-build --no-nom --systems "x86_64-linux" --attic-cache "nixfleet" --skip-cached --result-file result.json || true + - name: Build with nix (aarch64-linux) + run: nix-fast-build --no-nom --systems "" --attic-cache "nixfleet" --skip-cached --result-file result.json || true - name: Report checks run: report-checks From afa8f62bb8bc1f49b52f040ef21f4d608a5fe5bf Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Sat, 17 May 2025 09:31:39 +0200 Subject: [PATCH 446/492] Run CI only for `x86_64-linux` --- .forgejo/workflows/build.yaml | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/.forgejo/workflows/build.yaml b/.forgejo/workflows/build.yaml index 3231690..b3bbe4e 100644 --- a/.forgejo/workflows/build.yaml +++ b/.forgejo/workflows/build.yaml @@ -15,10 +15,7 @@ jobs: echo "${{secrets.FORGEJO_SSH_KEY}}" > ~/.ssh/id_ed25519 chmod 600 ~/.ssh/id_ed25519 ssh-keyscan github.com >> ~/.ssh/known_hosts - ssh-keyscan sisko.wg.aciceri.dev >> ~/.ssh/known_hosts - # - name: Build with nix (x86_64-linux) - # run: nix-fast-build --no-nom --systems "x86_64-linux" --attic-cache "nixfleet" --skip-cached --result-file result.json || true - - name: Build with nix (aarch64-linux) - run: nix-fast-build --no-nom --systems "" --attic-cache "nixfleet" --skip-cached --result-file result.json || true + - name: Build with nix (x86_64-linux) + run: nix-fast-build --no-nom --systems "x86_64-linux" --attic-cache "nixfleet" --skip-cached --result-file result.json || true - name: Report checks run: report-checks From 69dfaddbf27a7d1da6673afa6b384154814978e3 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Sat, 17 May 2025 09:47:19 +0200 Subject: [PATCH 447/492] Add `git` to default packages for `root` --- modules/common/default.nix | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/modules/common/default.nix b/modules/common/default.nix index 5aa4549..f83e6e4 100644 --- a/modules/common/default.nix +++ b/modules/common/default.nix @@ -18,9 +18,10 @@ nixpkgs.config.allowUnfree = true; # Forgive me Mr. Stallman :( system.switch.enableNg = true; - environment.systemPackages = [ - pkgs.btop - pkgs.ncdu + environment.systemPackages = with pkgs; [ + btop + ncdu + git ]; # FIXME not the best place From 3ce5cff2e5abddae79c2eff7c5893cf4bbc505d7 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Mon, 19 May 2025 10:57:08 +0200 Subject: [PATCH 448/492] Enable `aarch64-linux` in CI --- .forgejo/workflows/build.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.forgejo/workflows/build.yaml b/.forgejo/workflows/build.yaml index b3bbe4e..a2224c0 100644 --- a/.forgejo/workflows/build.yaml +++ b/.forgejo/workflows/build.yaml @@ -16,6 +16,6 @@ jobs: chmod 600 ~/.ssh/id_ed25519 ssh-keyscan github.com >> ~/.ssh/known_hosts - name: Build with nix (x86_64-linux) - run: nix-fast-build --no-nom --systems "x86_64-linux" --attic-cache "nixfleet" --skip-cached --result-file result.json || true + run: nix-fast-build --no-nom --systems "x86_64-linux aarch64-linux" --attic-cache "nixfleet" --skip-cached --result-file result.json || true - name: Report checks run: report-checks From f7796d4848476d1c1f9b616ceaa2ee7c05840ee2 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Mon, 19 May 2025 12:35:44 +0200 Subject: [PATCH 449/492] Split cloudflare API tokens secret --- secrets/cloudflare-api-tokens.age | 17 +++++++++++++++++ secrets/cloudflare-dyndns-api-token.age | Bin 1052 -> 363 bytes secrets/secrets.nix | 4 ++++ 3 files changed, 21 insertions(+) create mode 100644 secrets/cloudflare-api-tokens.age diff --git a/secrets/cloudflare-api-tokens.age b/secrets/cloudflare-api-tokens.age new file mode 100644 index 0000000..57e68b8 --- /dev/null +++ b/secrets/cloudflare-api-tokens.age @@ -0,0 +1,17 @@ +age-encryption.org/v1 +-> ssh-rsa /AagBw +hD7PDjueXimBVI/rjcYxN77LHV2eGytKcUbmh17aSL1CNM+eriURFao3tj52Hiaz +3VMB6FxWUk9kzgjMPvf5WZukuZ2WbpPH8xlDV+6ZH7e/IzmjIfx8Ny14Mr1IF/Rx +TBiCIAM19/1/mR9MiIBW85bb+Bb/waWIZAgxW3N1RpqH5+vAVqx0iY3XRF5+0gOq +blP3yEw3QaL6FuY0+a+d/TnCsrz2Gi1Rba9oCUmkzOP96TsJYdN58Ut6nrHFkURK +mShL2xBMLmfA8Z5ep+D8ueyQbcYpeU3KHcIcRM6dRTwQKvWXAVkRt1nUGasKrO9Y +oJT9BrcxjtqgF/xhHRjWpamjFSI3mlJnJNEbruddDwQUccrJOvEzvqZ7GK0WoFX2 +HmhdDOiocMGWFeBPAKlNtU3+QmtZvhvOIgbjKhNxmCt1A/qxfvRk7Y2IDIBo+CFo +sKMrT1tCo4UYaJdZYl64XYNCQb3C2EfO7Exrq3d2urNidzUbr9OBx7CCI1nu375c +Qol9Kr28fLtxRuSZlrqIe9vKVYyLDPznrRlh6TmgqmMLIW70Y8cZwMtT8L8sOkcm +A8MoxpWFzK4BKo0Iqmw6eZ3nx/0LAzkz005ZEwrmi2W/XxOWJgBiaLmu7YwnoGq0 +gzwwvA5V5MT6Iy7FzkQpMi0h/H4MZ0mcbihKdPun85Q +-> ssh-ed25519 +vdRnA 23Gviu8hfWCEBPHP7xYIaOx34kFsxJJgJ/BNUDlb9Cg +ROiMY2gw/rpNBmJnlRVb7Qhi5+8TY3Velj8gEZcaedI +--- dhmvfQoCjuRUJtvXNI/eCjH0W+IeJm8bFRvYk1JihD0 +qMC,݈ԝ9-\KJ]J(Sn.Qp~Z$e"픒\'rSlu +UD<Սv]|/g[ W_>-fl8|wيlB[\.k(W{=w 3N}qG-wMb^Q{ \ No newline at end of file diff --git a/secrets/cloudflare-dyndns-api-token.age b/secrets/cloudflare-dyndns-api-token.age index 57e68b81f89ed04ace61da07a9fd220e13b469a2..6f09f5277550356ad8269d527914a73a6ef8602c 100644 GIT binary patch delta 324 zcmbQk@tSFZY+7oHk*TSnr9xDOxp!{4Lb^vmmb0a?Nshj8W|Wh!S#eRaSFuq=Sw^T! zfuBKHX^L}FxRalLs!>%Smvec3q@#CIUT{jbnL&U>a8an4fm=jbp}CK@OG-pRdO=X3 zxp8DvWLQSzHc|H1um&sp&q$aUMcxW1%<9f0cGXs$(H%am02nIT)Mit z3S}PJCh5s$Ik{=s=}|eAMh0%7UIvNonLeetVaZWdDgGILK}BV0iSEXg>0AtKh3pA! z%kNL_oshXLihZL?(lh0_(|33HH?5oVVZxa!HaEpA8s~2~zuio9eHo8-w%es&)hWe6 XD;K)h%xAHP{}^0%2n?Y<*F2qJq9-V!Bf~SB8sufJ;_sYD8wPQ<$fIQC4zfg`c^(k4KnMs(WRL zcXDV_Zibe`kw<1?6_;_CualWuMR;hoWp-71mTy2= znrV1cX?AIpQFu~8fQLmzj!T%fS(Jx)s=jAcZkA_SMZJYzrJ;#$k)fxXeozHhh*PGs zr=zc-rM{tlZjhyKrl(W5g=tcfwo{URd1AO{lw*2DxUrvMP(h)GsdkxTSYd@hW~6aM zkejKtLArk-S5i)ZaiwdyabTj4nOkY3fp(&Hihf9*b8%6Xk$a|LP*S30zH?}9c9nmC zrCCU^SAArPpQ%M?iCJEehg)`NkT+LuaE6ajg_EyOZknS-lxb>#wu?n+YGq(ja%4ej zsIj+4vS)ITuUSe^NO_=lS$KqFSawi}VP2?vVzGCTzhxv>zE_B)Q&Dn7R!L#Hn|?)x zM^ILHL1J!}Td=2bZjM);m!E4=QE5twOL<^ua(!}yl5k)^*=g}Jk{r(s^HvAJn7S73gQrFW5$MVe1ZMNnyQR8CQ$XR2kHcUWYl zk4r#RUQtj^hFM5%dSR}wk7u~KL8L`;RJm_Sh=q?uv43`QE|;T)Z+=BVxLcLCiIaD} zfoEZExmjwIabAVKfsbQVc9nsFX_RYuQGITvQMi6Yg@3qLx>IJNPj0DsWO-h`d!YeW zdR2LOnWJf#sc(pxXQjDYRd!&3Z>B+pzK4l#ltFHCQf7vCNJ0&< zS8u0Giut)%y(oB6PUn9y`O-VQ+MzBBY@S^0ExRCl>*3|t8bwx)@+UNjn%g03OsDaezoFD3f<4^mT&P* NVvp;T Date: Mon, 19 May 2025 12:35:56 +0200 Subject: [PATCH 450/492] Fix remote builder: change used SSH key --- modules/nix/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/nix/default.nix b/modules/nix/default.nix index 1b2258d..000ede4 100644 --- a/modules/nix/default.nix +++ b/modules/nix/default.nix @@ -92,7 +92,7 @@ ]; protocol = "ssh-ng"; sshUser = "root"; - sshKey = "/home/${config.ccr.username}/.ssh/id_rsa"; + sshKey = "/home/${config.ccr.username}/.ssh/id_ed25519"; } ++ (lib.lists.optional (config.networking.hostName == "picard") { hostName = "mac.staging.mlabs.city?remote-program=/run/current-system/sw/bin/nix-store"; From c9fe62115ba8f00ff1462aade3aad2134815fab9 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Mon, 19 May 2025 12:36:39 +0200 Subject: [PATCH 451/492] Add secret --- hosts/default.nix | 1 + modules/nginx-base/default.nix | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/hosts/default.nix b/hosts/default.nix index 7ed6ca8..cf4fc6f 100644 --- a/hosts/default.nix +++ b/hosts/default.nix @@ -109,6 +109,7 @@ "home-assistant-token".owner = "prometheus"; "grafana-password".owner = "grafana"; "cloudflare-dyndns-api-token" = { }; + "cloudflare-api-tokens" = { }; "restic-hetzner-password" = { }; "hass-ssh-key".owner = "hass"; "sisko-attic-environment-file".owner = "atticd"; diff --git a/modules/nginx-base/default.nix b/modules/nginx-base/default.nix index 5068162..a79716e 100644 --- a/modules/nginx-base/default.nix +++ b/modules/nginx-base/default.nix @@ -14,7 +14,7 @@ dnsProvider = "cloudflare"; dnsPropagationCheck = true; group = config.services.nginx.group; - environmentFile = config.age.secrets.cloudflare-dyndns-api-token.path; + environmentFile = config.age.secrets.cloudflare-api-tokens.path; }; }; }; From 71566df168b2f2a8bbee778144271111f287cd42 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Mon, 19 May 2025 12:36:55 +0200 Subject: [PATCH 452/492] Bump `nixpkgsSisko` --- flake.lock | 8 ++++---- flake.nix | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/flake.lock b/flake.lock index 04719bc..474c3aa 100644 --- a/flake.lock +++ b/flake.lock @@ -663,17 +663,17 @@ }, "nixpkgsSisko": { "locked": { - "lastModified": 1742288794, - "narHash": "sha256-Txwa5uO+qpQXrNG4eumPSD+hHzzYi/CdaM80M9XRLCo=", + "lastModified": 1747542820, + "narHash": "sha256-GaOZntlJ6gPPbbkTLjbd8BMWaDYafhuuYRNrxCGnPJw=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "b6eaf97c6960d97350c584de1b6dcff03c9daf42", + "rev": "292fa7d4f6519c074f0a50394dbbe69859bb6043", "type": "github" }, "original": { "owner": "NixOS", "repo": "nixpkgs", - "rev": "b6eaf97c6960d97350c584de1b6dcff03c9daf42", + "rev": "292fa7d4f6519c074f0a50394dbbe69859bb6043", "type": "github" } }, diff --git a/flake.nix b/flake.nix index 440867f..145218e 100644 --- a/flake.nix +++ b/flake.nix @@ -3,7 +3,7 @@ inputs = { flakeParts.url = "github:hercules-ci/flake-parts"; - nixpkgsSisko.url = "github:NixOS/nixpkgs/b6eaf97c6960d97350c584de1b6dcff03c9daf42"; + nixpkgsSisko.url = "github:NixOS/nixpkgs/292fa7d4f6519c074f0a50394dbbe69859bb6043"; nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; nixosHardware.url = "github:NixOS/nixos-hardware"; homeManager = { From 251266db4c779d15e62a53aed56a31c53899a78b Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Tue, 20 May 2025 09:40:33 +0200 Subject: [PATCH 453/492] Remove unused secrets --- hosts/default.nix | 3 --- 1 file changed, 3 deletions(-) diff --git a/hosts/default.nix b/hosts/default.nix index cf4fc6f..1b21982 100644 --- a/hosts/default.nix +++ b/hosts/default.nix @@ -142,9 +142,6 @@ "cachix-personal-token".owner = "ccr"; "git-workspace-tokens".owner = "ccr"; "autistici-password".owner = "ccr"; - "restic-hetzner-password" = { }; - "forgejo-runners-token".owner = "nixuser"; - "forgejo-nix-access-tokens".owner = "nixuser"; }; }; From 839cf0df5fe01222c8502de6d2a464465e9c3e79 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Tue, 20 May 2025 09:40:48 +0200 Subject: [PATCH 454/492] Use NVidia GPU --- hosts/pike/default.nix | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/hosts/pike/default.nix b/hosts/pike/default.nix index 2248933..94b79e2 100644 --- a/hosts/pike/default.nix +++ b/hosts/pike/default.nix @@ -169,4 +169,16 @@ enable = true; algorithm = "zstd"; }; + + hardware.nvidia-container-toolkit.enable = true; + services.xserver.videoDrivers = [ "nvidia" ]; + hardware.nvidia.open = true; + hardware.nvidia.prime = { + offload = { + enable = true; + enableOffloadCmd = true; + }; + intelBusId = "PCI:0:2:0"; + nvidiaBusId = "PCI:1:0:0"; + }; } From 22b1484026f9a6ef02d460fd0eac03a56d2bad43 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Tue, 20 May 2025 09:41:29 +0200 Subject: [PATCH 455/492] Allow jellyfin access amule downloads --- modules/jellyfin/default.nix | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/modules/jellyfin/default.nix b/modules/jellyfin/default.nix index c9cdeaa..6586166 100644 --- a/modules/jellyfin/default.nix +++ b/modules/jellyfin/default.nix @@ -5,7 +5,10 @@ openFirewall = true; }; - users.users.jellyfin.extraGroups = [ "transmission" ]; + users.users.jellyfin.extraGroups = [ + "transmission" + "amule" + ]; environment.persistence."/persist".directories = [ config.services.jellyfin.dataDir From ff5359cd505156ba4da023e9307a29928a4eab43 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Wed, 21 May 2025 17:58:04 +0200 Subject: [PATCH 456/492] Disable `syncthing` --- hosts/kirk/default.nix | 2 -- hosts/picard/default.nix | 1 - hosts/pike/default.nix | 1 - hosts/sisko/default.nix | 1 - 4 files changed, 5 deletions(-) diff --git a/hosts/kirk/default.nix b/hosts/kirk/default.nix index 72cebd5..0ccd677 100644 --- a/hosts/kirk/default.nix +++ b/hosts/kirk/default.nix @@ -28,13 +28,11 @@ "pam" "wireguard-client" "greetd" - "syncthing" "mount-sisko" "adb" "binfmt" "prometheus-exporters" "alloy" - "syncthing" "zerotier" ] ++ [ ./disko.nix ]; diff --git a/hosts/picard/default.nix b/hosts/picard/default.nix index 3cbb5d2..353f639 100644 --- a/hosts/picard/default.nix +++ b/hosts/picard/default.nix @@ -31,7 +31,6 @@ "wireguard-client" "binfmt" "greetd" - "syncthing" "hass-poweroff" "forgejo-runners" "teamviewer" diff --git a/hosts/pike/default.nix b/hosts/pike/default.nix index 94b79e2..c1c2579 100644 --- a/hosts/pike/default.nix +++ b/hosts/pike/default.nix @@ -29,7 +29,6 @@ "wireguard-client" "binfmt" "greetd" - # "syncthing" "teamviewer" "sunshine" "mount-sisko" diff --git a/hosts/sisko/default.nix b/hosts/sisko/default.nix index 13a9b0d..665b722 100644 --- a/hosts/sisko/default.nix +++ b/hosts/sisko/default.nix @@ -26,7 +26,6 @@ "atuin" "immich" "paperless" - "syncthing" "atticd" "jellyfin" "matrix" From 5692a37c88d6a53e938d0e701a9335040f4e6b75 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Wed, 21 May 2025 17:58:22 +0200 Subject: [PATCH 457/492] Add `org-roam-download` --- hmModules/emacs/init.el | 7 +++++++ packages/emacs/packages.nix | 1 + 2 files changed, 8 insertions(+) diff --git a/hmModules/emacs/init.el b/hmModules/emacs/init.el index 7959261..305ffeb 100644 --- a/hmModules/emacs/init.el +++ b/hmModules/emacs/init.el @@ -1027,6 +1027,13 @@ This is meant to be an helper to be called from the window manager." org-roam-ui-update-on-save t org-roam-ui-open-on-start nil)) +(use-package org-download + :after org + :custom (org-download-image-dir (concat org-roam-directory "/images")) + :bind + (:map org-mode-map + (("M-p" . org-download-clipboard)))) + (use-package gptel :custom (gptel-model 'google/gemini-2.5-flash-preview) diff --git a/packages/emacs/packages.nix b/packages/emacs/packages.nix index 9ab2c44..4852658 100644 --- a/packages/emacs/packages.nix +++ b/packages/emacs/packages.nix @@ -188,6 +188,7 @@ let org-roam org-roam-ql org-roam-ui + org-download visual-fill-column consult-org-roam pass From fd793b791d0902820bdaf5783fe5762a8875dd87 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Wed, 21 May 2025 17:58:55 +0200 Subject: [PATCH 458/492] Backup roam directory with unison --- hmModules/unison/default.nix | 24 ++++++++++++++++++++++++ hosts/picard/default.nix | 1 + hosts/sisko/default.nix | 1 + 3 files changed, 26 insertions(+) create mode 100644 hmModules/unison/default.nix diff --git a/hmModules/unison/default.nix b/hmModules/unison/default.nix new file mode 100644 index 0000000..081f052 --- /dev/null +++ b/hmModules/unison/default.nix @@ -0,0 +1,24 @@ +{ pkgs, lib, ... }: +{ + home.packages = [ pkgs.unison ]; + services.unison = { + enable = true; + pairs = { + "roam" = { + roots = [ + # Pair of roots to synchronize + "/home/ccr/roam" + "ssh://root@sisko.wg.aciceri.dev//mnt/hd/roam" + ]; + commandOptions = { + auto = "true"; + batch = "true"; + log = "false"; + repeat = "watch"; + sshcmd = lib.getExe pkgs.openssh; + ui = "text"; + }; + }; + }; + }; +} diff --git a/hosts/picard/default.nix b/hosts/picard/default.nix index 353f639..02271ff 100644 --- a/hosts/picard/default.nix +++ b/hosts/picard/default.nix @@ -98,6 +98,7 @@ "pantalaimon" "moonlight" "gimp" + "unison" ]; extraGroups = [ "plugdev" ]; backupPaths = [ ]; diff --git a/hosts/sisko/default.nix b/hosts/sisko/default.nix index 665b722..e4a3c17 100644 --- a/hosts/sisko/default.nix +++ b/hosts/sisko/default.nix @@ -113,6 +113,7 @@ environment.systemPackages = with pkgs; [ cifs-utils + unison ]; powerManagement.scsiLinkPolicy = "med_power_with_dipm"; From a7f927516e7d0116f3994888ca464ba5a14e36d1 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Wed, 21 May 2025 17:59:21 +0200 Subject: [PATCH 459/492] Format --- hmModules/emacs/init.el | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/hmModules/emacs/init.el b/hmModules/emacs/init.el index 305ffeb..b299d99 100644 --- a/hmModules/emacs/init.el +++ b/hmModules/emacs/init.el @@ -970,23 +970,23 @@ This is meant to be an helper to be called from the window manager." "Check if node was created in given time range" #'org-roam-node-date #'(lambda (node-date start-date end-date) - (let ((node-date (condition-case nil - ;; if the entry is not from the journal (i.e. the filename is not something like "2024-10-10.org") - ;; then it's always discarded (the epoch time is given to it) - (encode-time (org-parse-time-string node-date)) - (error (encode-time (org-parse-time-string "<1970-01-01>"))))) - (start-date (encode-time (org-parse-time-string start-date))) - (end-date (encode-time (org-parse-time-string end-date)))) - (and (time-less-p start-date node-date) - (time-less-p node-date end-date))) - )) + (let ((node-date (condition-case nil + ;; if the entry is not from the journal (i.e. the filename is not something like "2024-10-10.org") + ;; then it's always discarded (the epoch time is given to it) + (encode-time (org-parse-time-string node-date)) + (error (encode-time (org-parse-time-string "<1970-01-01>"))))) + (start-date (encode-time (org-parse-time-string start-date))) + (end-date (encode-time (org-parse-time-string end-date)))) + (and (time-less-p start-date node-date) + (time-less-p node-date end-date))) + )) (defun ccr/org-roam-spent-hours (client &optional date-start date-end) "Return the total spent hours on something (usually a client)" (let* ((query-tags `(tags ,client "billable")) - (query (if (and date-start date-end) - `(and ,query-tags (date-range ,date-start ,date-end)) - query-tags))) + (query (if (and date-start date-end) + `(and ,query-tags (date-range ,date-start ,date-end)) + query-tags))) (apply #'+(mapcar #'org-roam-node-spent (org-roam-ql-nodes query)))))) (use-package org-roam-ql @@ -1064,7 +1064,7 @@ This is meant to be an helper to be called from the window manager." (defun ccr/edit-buffer (buffer-name old-string new-string) "In BUFFER-NAME, replace OLD-STRING with NEW-STRING." (with-current-buffer buffer-name - (let ((case-fold-search nil)) ;; Case-sensitive search + (let ((case-fold-search nil)) ;; Case-sensitive search (save-excursion (goto-char (point-min)) (let ((count 0)) From 6d715d8878bbeeebc9592a9143a3f4969ff259de Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Wed, 21 May 2025 17:59:27 +0200 Subject: [PATCH 460/492] Rename org-roam directory --- hmModules/emacs/init.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hmModules/emacs/init.el b/hmModules/emacs/init.el index b299d99..0373bc6 100644 --- a/hmModules/emacs/init.el +++ b/hmModules/emacs/init.el @@ -927,7 +927,7 @@ This is meant to be an helper to be called from the window manager." (require 'org-roam-protocol) :custom (org-roam-v2-ack t) - (org-roam-directory (file-truename "~/org")) + (org-roam-directory (file-truename "~/roam")) (org-roam-complete-everywhere 't) (org-roam-dailies-capture-templates '( From 24a80896a820f63d45587b3970281a3e54512603 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Wed, 21 May 2025 17:59:56 +0200 Subject: [PATCH 461/492] New gptel tools --- hmModules/emacs/init.el | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/hmModules/emacs/init.el b/hmModules/emacs/init.el index 0373bc6..1686c97 100644 --- a/hmModules/emacs/init.el +++ b/hmModules/emacs/init.el @@ -1159,6 +1159,23 @@ This is meant to be an helper to be called from the window manager." :type string :description "The text to append to the buffer.")) :category "emacs") + ,(gptel-make-tool + :function (lambda (buffer text) + (with-current-buffer (get-buffer-create buffer) + (save-excursion + (goto-char (point-max)) + (insert text))) + (format "Appended text to buffer %s" buffer)) + :name "append_to_buffer" + :description "Append text to an Emacs buffer. If the buffer does not exist, it will be created." + :confirm t + :args (list '(:name "buffer" + :type string + :description "The name of the buffer to append text to.") + '(:name "text" + :type string + :description "The text to append to the buffer.")) + :category "emacs") ,(gptel-make-tool :name "EditBuffer" :function #'ccr/edit-buffer @@ -1192,6 +1209,22 @@ This is meant to be an helper to be called from the window manager." :description "Content to write to the buffer" :required t)) :category "edit") + ,(gptel-make-tool + :function (lambda (title body) + (org-roam-capture- + :templates `(("d" "" plain "%?" :target (file+head "%<%Y%m%d%H%M%S>-${slug}.org" ,(concat "#+title: ${title}\n\n" body)))) ; override default template + :node (org-roam-node-create :title title) + :props '(:unnarrowed 't :tags "gptel")) + ) + :name "create_org_roam_note" + :description "Create a new org-roam note." + :args (list '(:name "title" + :type string + :description "The name of the note to create. Try to automatically infere it and ask only if dubious.") + '(:name "body" + :type string + :description "The body of the note write in an org language, aovoid starting with an headline as first line. Feel free to exploit the org syntax.")) + :category "org-roam") )) From 9b907264c29530267b23c6f8ce9f233966539903 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Wed, 21 May 2025 21:03:24 +0200 Subject: [PATCH 462/492] Disable subscript after `_` --- hmModules/emacs/init.el | 55 ++++++++++++++++++++-------------------- secrets/arbi-config.age | Bin 0 -> 439 bytes 2 files changed, 28 insertions(+), 27 deletions(-) create mode 100644 secrets/arbi-config.age diff --git a/hmModules/emacs/init.el b/hmModules/emacs/init.el index 1686c97..a451093 100644 --- a/hmModules/emacs/init.el +++ b/hmModules/emacs/init.el @@ -786,35 +786,36 @@ (use-package org :hook ((org-mode . variable-pitch-mode) - (org-mode . visual-line-mode) - (org-mode . visual-fill-column-mode)) + (org-mode . visual-line-mode) + (org-mode . visual-fill-column-mode)) :custom ((org-log-done nil) - (org-return-follows-link t) - (org-hide-emphasis-markers t) - (visual-fill-column-center-text t) - (visual-fill-column-width 100) - (fill-column 100) - (org-capture-templates '( - ("j" "Work Log Entry" - entry (file+datetree "~/org/work-log.org") - "* %?" - :empty-lines 0) - ("n" "Note" - entry (file+headline "~/org/notes.org" "Random Notes") - "** %?" - :empty-lines 0) - )) - (org-auto-align-tags nil) - (org-tags-column 0) - (org-catch-invisible-edits 'show-and-error) - (org-special-ctrl-a/e t) - (org-insert-heading-respect-content t) - (org-pretty-entities t) - (org-ellipsis "…") - ) + (org-return-follows-link t) + (org-hide-emphasis-markers t) + (visual-fill-column-center-text t) + (visual-fill-column-width 100) + (fill-column 100) + (org-capture-templates '( + ("j" "Work Log Entry" + entry (file+datetree "~/org/work-log.org") + "* %?" + :empty-lines 0) + ("n" "Note" + entry (file+headline "~/org/notes.org" "Random Notes") + "** %?" + :empty-lines 0) + )) + (org-auto-align-tags nil) + (org-tags-column 0) + (org-catch-invisible-edits 'show-and-error) + (org-special-ctrl-a/e t) + (org-insert-heading-respect-content t) + (org-pretty-entities t) + (org-ellipsis "…") + (org-use-sub-superscripts nil) + ) :bind (("C-c o l" . org-store-link) - ("C-c o c" . org-capture) - ("C-c b o" . org-switchb)) + ("C-c o c" . org-capture) + ("C-c b o" . org-switchb)) :config (defun ccr/org-capture (key) "Capture a note using the template KEY and close the frame when done. diff --git a/secrets/arbi-config.age b/secrets/arbi-config.age new file mode 100644 index 0000000000000000000000000000000000000000..0e31ccf9da955e61bcfcaf0238a6550509765f84 GIT binary patch literal 439 zcmYdHPt{G$OD?J`D9Oyv)5|YP*Do{V(zR14F3!+RO))YxHMCTS$}soNEmz2QvMfs} z$;)#swoI`INcAfYHg*ijEC|f-DJ=Cb%q(_x%h%5|%``E|OXkWi@=0?EEb`6p3UW?N z%QB6~NDL}YtqjXeF0e>6_Y5_&)YdL?P4oy0v_Q8_yDTLr&r!iLE7`QFLf_Cc$-JPf z+}kzVw9vgU!!_5-*~{IuyfP_UKhY%HG$SX_FrUjK-K(UyEIYTzG}t1fq_o`C$;>Cq zt0E%P#KOhRtfIJ7-_$rHC9tZ*G?YtMS63l2B3V1fu{0{x$2=>_H=|JBKQcHkCB?|s z)zH;2xg;d5AkW{_)U@2EG@Yxa{gA}hT8Wr{pCe)w)r5O@J9m^8eVKpbS(?#P2JYBr z`7%!wA5SmP4arcOYw%OXJ7t}D>20ai=PmZjM=Ia5nm_f%x;dri4_t45F2~#&abtg> z*^`1S6IGWV;>G@-7A)>qw$)Qz<0F&yrG~#g=RJd~ANFrKXCvt$BAed)&@$=d9;J=z XT<7oe(~%W9zI#m!&rNaFiV1T8`Ddkt literal 0 HcmV?d00001 From 7e92d092991e3ba82cddb09c1f2f10fdb65dbc26 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Wed, 21 May 2025 21:03:54 +0200 Subject: [PATCH 463/492] Format --- hmModules/emacs/init.el | 218 ++++++++++++++++++++-------------------- 1 file changed, 109 insertions(+), 109 deletions(-) diff --git a/hmModules/emacs/init.el b/hmModules/emacs/init.el index a451093..1151520 100644 --- a/hmModules/emacs/init.el +++ b/hmModules/emacs/init.el @@ -163,8 +163,8 @@ :after marginalia :config (nerd-icons-completion-mode +1) :hook ( - (marginalia-mode . nerd-icons-completion-marginalia-setup) - (ibuffer-mode . nerd-icons-completion-marginalia-setup))) + (marginalia-mode . nerd-icons-completion-marginalia-setup) + (ibuffer-mode . nerd-icons-completion-marginalia-setup))) (use-package nerd-icons-ibuffer :hook (ibuffer-mode . nerd-icons-ibuffer-mode)) @@ -208,7 +208,7 @@ (treemacs-display-current-project-exclusively t) (treemacs-git-mode 'deferred) :bind (("C-c w t" . treemacs-select-window) - ("C-c o T" . treemacs)) + ("C-c o T" . treemacs)) ) (use-package meow @@ -219,8 +219,8 @@ (require 'meow-tree-sitter) (meow-tree-sitter-register-defaults) (add-hook 'after-make-frame-functions (defun ccr/meow--prepare-face (_) - (meow--prepare-face) - (remove-hook 'after-make-frame-functions 'ccr/meow--prepare-face))) + (meow--prepare-face) + (remove-hook 'after-make-frame-functions 'ccr/meow--prepare-face))) (add-to-list 'meow-mode-state-list '(eshell-mode . insert)) (add-to-list 'meow-mode-state-list '(eat-mode . insert)) (add-to-list 'meow-mode-state-list '(notmuch-hello-mode . insert)) @@ -331,44 +331,44 @@ "Interactively vertically resize the window" (interactive "cHit >/< to enlarge/shrink") (cond ((eq key (string-to-char ">")) - (enlarge-window-horizontally ccr/v-resize-amount) - (call-interactively 'ccr/v-resize)) - ((eq key (string-to-char "<")) - (enlarge-window-horizontally (- ccr/v-resize-amount)) - (call-interactively 'ccr/v-resize)) - (t (push key unread-command-events)))) + (enlarge-window-horizontally ccr/v-resize-amount) + (call-interactively 'ccr/v-resize)) + ((eq key (string-to-char "<")) + (enlarge-window-horizontally (- ccr/v-resize-amount)) + (call-interactively 'ccr/v-resize)) + (t (push key unread-command-events)))) (defun ccr/h-resize (key) "Interactively horizontally resize the window" (interactive "cHit >/< to enlarge/shrink") (cond ((eq key (string-to-char ">")) - (enlarge-window ccr/h-resize-amount) - (call-interactively 'ccr/h-resize)) - ((eq key (string-to-char "<")) - (enlarge-window (- ccr/h-resize-amount)) - (call-interactively 'ccr/h-resize)) - (t (push key unread-command-events)))) + (enlarge-window ccr/h-resize-amount) + (call-interactively 'ccr/h-resize)) + ((eq key (string-to-char "<")) + (enlarge-window (- ccr/h-resize-amount)) + (call-interactively 'ccr/h-resize)) + (t (push key unread-command-events)))) :bind (("C-c w k" . windmove-up) - ("C-c w l" . windmove-right) - ("C-c w j" . windmove-down) - ("C-c w h" . windmove-left) - ("M-k" . windmove-up) - ("M-l" . windmove-right) - ("M-j" . windmove-down) - ("M-h" . windmove-left) - ("C-c w " . windmove-up) - ("C-c w " . windmove-right) - ("C-c w " . windmove-down) - ("C-c w " . windmove-left) - ("C-c w q" . delete-window) - ("C-c w K" . windmove-delete-up) - ("C-c w L" . windmove-delete-right) - ("C-c w J" . windmove-delete-down) - ("C-c w H" . windmove-delete-left) - ("C-c w x" . kill-buffer-and-window) - ("C-c w v" . split-window-right) - ("C-c w s" . split-window-below) - ("C-c w V" . ccr/v-resize) - ("C-c w S" . ccr/h-resize))) + ("C-c w l" . windmove-right) + ("C-c w j" . windmove-down) + ("C-c w h" . windmove-left) + ("M-k" . windmove-up) + ("M-l" . windmove-right) + ("M-j" . windmove-down) + ("M-h" . windmove-left) + ("C-c w " . windmove-up) + ("C-c w " . windmove-right) + ("C-c w " . windmove-down) + ("C-c w " . windmove-left) + ("C-c w q" . delete-window) + ("C-c w K" . windmove-delete-up) + ("C-c w L" . windmove-delete-right) + ("C-c w J" . windmove-delete-down) + ("C-c w H" . windmove-delete-left) + ("C-c w x" . kill-buffer-and-window) + ("C-c w v" . split-window-right) + ("C-c w s" . split-window-below) + ("C-c w V" . ccr/v-resize) + ("C-c w S" . ccr/h-resize))) (use-package vertico :custom @@ -379,10 +379,10 @@ (vertico-cycle t) (vertico-mode t) :bind (:map vertico-map - (("DEL" . vertico-directory-delete-char) - ("C-DEL" . vertico-directory-delete-word) - ("M-q" . vertico-quick-insert) - ("C-q" . vertico-quick-exit)))) + (("DEL" . vertico-directory-delete-char) + ("C-DEL" . vertico-directory-delete-word) + ("M-q" . vertico-quick-insert) + ("C-q" . vertico-quick-exit)))) ;; (use-package vertico-posframe ;; :after vertico @@ -417,7 +417,7 @@ ("C-c f f" . consult-find) ("C-c F" . consult-ripgrep) ("C-c f" . consult-find) - ("C-c l" . consult-line) + ("C-c l" . consult-line) ("C-c L" . consult-focus-lines) ("C-c m" . consult-mark) ("C-c o o" . consult-outline) @@ -445,9 +445,9 @@ (tab-always-indent 'complete) (kind-icon-default-face 'corfu-default) :bind (:map corfu-map - (("M-d" . corfu-doc-toggle) - ("M-l" . corfu-show-location) - ("SPC" . corfu-insert-separator))) + (("M-d" . corfu-doc-toggle) + ("M-l" . corfu-show-location) + ("SPC" . corfu-insert-separator))) :init (global-corfu-mode)) @@ -458,7 +458,7 @@ (use-package prog-mode :hook ((prog-mode . hl-line-mode) - (prog-mode . display-line-numbers-mode))) + (prog-mode . display-line-numbers-mode))) (use-package which-key :delight :config (which-key-mode) @@ -500,28 +500,28 @@ (use-package nix-ts-mode :hook ( - (nix-ts-mode . (lambda () - (require 'eglot) - (add-to-list 'eglot-server-programs - '(nix-ts-mode . ("nixd"))) - (eglot-ensure))) - (nix-ts-mode . electric-pair-mode) - (nix-ts-mode . (lambda () (setq-local indent-bars-spacing-override 2) (indent-bars-mode))) - (nix-ts-mode . (lambda () - (setq-local - treesit-font-lock-settings - (append treesit-font-lock-settings - (treesit-font-lock-rules - :language 'nix - :feature 'function - :override t - `((formal) @font-lock-type-face) - - :language 'nix - :feature 'function - `((attrpath) @font-lock-function-name-face) - ))))) - ) + (nix-ts-mode . (lambda () + (require 'eglot) + (add-to-list 'eglot-server-programs + '(nix-ts-mode . ("nixd"))) + (eglot-ensure))) + (nix-ts-mode . electric-pair-mode) + (nix-ts-mode . (lambda () (setq-local indent-bars-spacing-override 2) (indent-bars-mode))) + (nix-ts-mode . (lambda () + (setq-local + treesit-font-lock-settings + (append treesit-font-lock-settings + (treesit-font-lock-rules + :language 'nix + :feature 'function + :override t + `((formal) @font-lock-type-face) + + :language 'nix + :feature 'function + `((attrpath) @font-lock-function-name-face) + ))))) + ) :mode "\\.nix\\'" ) @@ -533,33 +533,33 @@ (use-package python-ts-mode :hook ((python-ts-mode . (lambda () - (require 'eglot) - (add-to-list 'eglot-server-programs - '(python-ts-mode . ("jedi-language-server"))) - (eglot-ensure)))) + (require 'eglot) + (add-to-list 'eglot-server-programs + '(python-ts-mode . ("jedi-language-server"))) + (eglot-ensure)))) :mode "\\.py\\'") (use-package solidity-mode :hook ((solidity-mode . (lambda () - (require 'eglot) - (add-to-list 'eglot-server-programs - '(solidity-mode . ("nomicfoundation-solidity-language-server" "--stdio"))) - (eglot-ensure)))) + (require 'eglot) + (add-to-list 'eglot-server-programs + '(solidity-mode . ("nomicfoundation-solidity-language-server" "--stdio"))) + (eglot-ensure)))) :mode "\\.sol\\'") (use-package typescript-ts-mode :hook ((typescript-ts-mode . (lambda () - (require 'eglot) - (eglot-ensure)))) + (require 'eglot) + (eglot-ensure)))) :mode "\\.ts\\'") (use-package rust-mode :init (setq rust-mode-treesitter-derive t) :hook ((rust-mode . (lambda () - (require 'eglot) - (eglot-ensure))))) + (require 'eglot) + (eglot-ensure))))) (use-package haskell-ts-mode :hook ((haskell--ts-mode . eglot-ensure)) @@ -581,11 +581,11 @@ :after eglot :config (add-to-list 'eglot-server-programs - '(terraform-mode . ("terraform-lsp"))) + '(terraform-mode . ("terraform-lsp"))) :hook ((terraform-mode . eglot-ensure) - ;; (terraform-mode . tree-sitter-hl-mode) - (terraform-mode . (lambda () (setq indent-bars-spacing-override 2) (indent-bars-mode))) - )) + ;; (terraform-mode . tree-sitter-hl-mode) + (terraform-mode . (lambda () (setq indent-bars-spacing-override 2) (indent-bars-mode))) + )) (use-package yaml-mode :hook (yaml-mode . yaml-ts-mode)) @@ -629,7 +629,7 @@ (use-package aggressive-indent :hook ((lisp-mode . aggressive-indent-mode) - (emacs-lisp-mode . aggressive-indent-mode))) + (emacs-lisp-mode . aggressive-indent-mode))) (use-package eldoc :delight) @@ -679,8 +679,8 @@ (eat-eshell-mode) (eat-eshell-visual-command-mode) :custom ((eshell-prefer-lisp-functions t) - (eshell-history-size 10000) - (eshell-banner-message "")) + (eshell-history-size 10000) + (eshell-banner-message "")) :config (defun ccr/start-eshell () ;; Used from outside Emacs by emacsclient --eval (eshell 'N) @@ -694,17 +694,17 @@ ;; (add-to-list 'eshell-modules-list 'eshell-smart) ;; plan 9 style (setq ccr/eshell-aliases - '((g . magit) - (gl . magit-log) - (d . dired) - (o . find-file) - (oo . find-file-other-window) - (l . (lambda () (eshell/ls '-la))) - (eshell/clear . eshell/clear-scrollback))) + '((g . magit) + (gl . magit-log) + (d . dired) + (o . find-file) + (oo . find-file-other-window) + (l . (lambda () (eshell/ls '-la))) + (eshell/clear . eshell/clear-scrollback))) (mapc (lambda (alias) - (defalias (car alias) (cdr alias))) - ccr/eshell-aliases) + (defalias (car alias) (cdr alias))) + ccr/eshell-aliases) (defun ccr/eshell-get-current-input () @@ -712,35 +712,35 @@ (when (eq major-mode 'eshell-mode) (let ((start (save-excursion (eshell-bol) (point))) (end (point-at-eol))) - (buffer-substring-no-properties start end)))) + (buffer-substring-no-properties start end)))) (defun ccr/eshell-replace-current-input (new-input) (when (eq major-mode 'eshell-mode) (let ((inhibit-read-only t)) - (eshell-bol) - (delete-region (point) (point-at-eol)) - (insert new-input) - (end-of-line)))) + (eshell-bol) + (delete-region (point) (point-at-eol)) + (insert new-input) + (end-of-line)))) (defun ccr/eshell-history () (interactive) (when (eq major-mode 'eshell-mode) (let* ((current-input (ccr/eshell-get-current-input)) (eshell-history (when (and eshell-history-file-name - (file-readable-p eshell-history-file-name)) + (file-readable-p eshell-history-file-name)) (f-read-text eshell-history-file-name))) (bash-history (when (file-readable-p "~/.bash_history") (f-read-text "~/.bash_history"))) (history (split-string (concat (or eshell-history "") "\n" (or bash-history "")) "\n" t)) (selection (completing-read "History: " history nil t current-input))) - (ccr/eshell-replace-current-input selection)))) + (ccr/eshell-replace-current-input selection)))) :bind (("C-c o e" . project-eshell) - (:map eshell-mode-map - ("C-r" . ccr/eshell-history) - ("C-" . corfu-send) - ))) ;; i.e. just C-r in semi-char-mode + (:map eshell-mode-map + ("C-r" . ccr/eshell-history) + ("C-" . corfu-send) + ))) ;; i.e. just C-r in semi-char-mode (use-package eshell-command-not-found :custom ((eshell-command-not-found-command "command-not-found")) @@ -757,7 +757,7 @@ (use-package eshell-prompt-extras :custom ((eshell-highlight-prompt nil) - (eshell-prompt-function 'epe-theme-lambda))) + (eshell-prompt-function 'epe-theme-lambda))) (use-package popper :custom From 1fd1c845e8514ed5f4fec2082bd1fdd874917e6c Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Wed, 21 May 2025 21:04:04 +0200 Subject: [PATCH 464/492] Move `arbi` configuration file to secrets --- hosts/default.nix | 1 + modules/arbi/default.nix | 8 ++------ secrets/secrets.nix | 4 ++++ 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/hosts/default.nix b/hosts/default.nix index 1b21982..3ac0ce9 100644 --- a/hosts/default.nix +++ b/hosts/default.nix @@ -119,6 +119,7 @@ group = "forgejo"; }; "matrix-registration-shared-secret".owner = "matrix-synapse"; + "arbi-config".owner = "arbi"; }; }; diff --git a/modules/arbi/default.nix b/modules/arbi/default.nix index 02ab9e5..3417b51 100644 --- a/modules/arbi/default.nix +++ b/modules/arbi/default.nix @@ -1,4 +1,4 @@ -{ config, pkgs, ... }: +{ config, ... }: let rev = "d531730d9640160f0519ef4b3640f8da49dd96f8"; arbi-flake = builtins.getFlake "git+ssh://git@github.com/aciceri/arbi.git?rev=${rev}"; @@ -9,11 +9,7 @@ in services.arbi = { enable = true; log_level = "debug"; - configFile = pkgs.writeText "arbi-config.kdl" '' - endpoint "wss://eth-mainnet.g.alchemy.com/v2/" - pairs_file "pairs.json" - concurrency 4 - ''; + configFile = config.age.secrets.arbi-config.path; }; environment.persistence."/persist".directories = [ diff --git a/secrets/secrets.nix b/secrets/secrets.nix index 7b341b1..3ab2d98 100644 --- a/secrets/secrets.nix +++ b/secrets/secrets.nix @@ -153,6 +153,10 @@ with keys.users; ccr-ssh sisko ]; + "arbi-config.age".publicKeys = [ + ccr-ssh + sisko + ]; # WireGuard "picard-wireguard-private-key.age".publicKeys = [ From 146eee5abea971906e7b462d077ecef3fb4cd64a Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 23 May 2025 21:08:32 +0200 Subject: [PATCH 465/492] Fix typo --- hmModules/emacs/init.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hmModules/emacs/init.el b/hmModules/emacs/init.el index 1151520..f8453e6 100644 --- a/hmModules/emacs/init.el +++ b/hmModules/emacs/init.el @@ -929,7 +929,7 @@ This is meant to be an helper to be called from the window manager." :custom (org-roam-v2-ack t) (org-roam-directory (file-truename "~/roam")) - (org-roam-complete-everywhere 't) + (org-roam-completion-everywhere 't) (org-roam-dailies-capture-templates '( ("d" "Generic entry" entry From 6cd58095e48f990c0eeb47cec6f2d54bc3a1a161 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 23 May 2025 21:08:37 +0200 Subject: [PATCH 466/492] Keybinding for quick fixes --- hmModules/emacs/init.el | 1 + 1 file changed, 1 insertion(+) diff --git a/hmModules/emacs/init.el b/hmModules/emacs/init.el index f8453e6..8bf2c20 100644 --- a/hmModules/emacs/init.el +++ b/hmModules/emacs/init.el @@ -28,6 +28,7 @@ (eglot-events-buffer-size 0) ; disable events logging, it should be enabled only when debuggigng LSP servers (eglot-sync-connect-nil 0) ; disable UI freeze when opening big files (eglot-connect-timeout nil) ; never timeout + :bind (("C-q" . eglot-code-action-quickfix)) ) (use-package consult-eglot From 8e28001eab06f7efa98c52a3980cf6eae7bc9422 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 23 May 2025 21:08:53 +0200 Subject: [PATCH 467/492] Org-roam changes --- hmModules/emacs/init.el | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/hmModules/emacs/init.el b/hmModules/emacs/init.el index 8bf2c20..843265a 100644 --- a/hmModules/emacs/init.el +++ b/hmModules/emacs/init.el @@ -945,20 +945,14 @@ This is meant to be an helper to be called from the window manager." (org-roam-capture-ref-templates '( ("r" "Web entry" entry - "* ${Title} \n:PROPERTIES:\n:URL: ${ref}\n:END:\n %i" - :target (file+head "daily/%<%Y-%m-%d>.org" "#+TITLE: %<%Y-%m-%d>") + "** %i \n:PROPERTIES:\n:URL: ${ref}\n:END:" + :target (file+olp "inbox.org" ("Web entries")) :create-id t) ) ) :config (org-roam-db-autosync-mode) - ;; In order to automatically add an org id for some capture templates (using the :create-id keyword) - (defun ccr/org-capture-maybe-create-id () - (when (org-capture-get :create-id) - (org-id-get-create))) - (add-hook 'org-capture-mode-hook #'ccr/org-capture-maybe-create-id) - ;; The following functions name are relevant because org-roam-ql columns in queries use their suffix (defun org-roam-node-spent (node) "Return the hours spent as number" @@ -989,7 +983,9 @@ This is meant to be an helper to be called from the window manager." (query (if (and date-start date-end) `(and ,query-tags (date-range ,date-start ,date-end)) query-tags))) - (apply #'+(mapcar #'org-roam-node-spent (org-roam-ql-nodes query)))))) + (apply #'+(mapcar #'org-roam-node-spent (org-roam-ql-nodes query))))) + :bind + (("C-c n i" . org-roam-node-insert))) (use-package org-roam-ql :after org-roam From c8e32b689bfaa75c47db940a3679bf1990a24be6 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 23 May 2025 21:32:11 +0200 Subject: [PATCH 468/492] Add `netrc` secret --- secrets/nix-netrc.age | Bin 0 -> 1558 bytes secrets/secrets.nix | 7 +++++++ 2 files changed, 7 insertions(+) create mode 100644 secrets/nix-netrc.age diff --git a/secrets/nix-netrc.age b/secrets/nix-netrc.age new file mode 100644 index 0000000000000000000000000000000000000000..7b0438f51792139cfc5411d21633bbda8cd428b9 GIT binary patch literal 1558 zcmYdHPt{G$OD?J`D9Oyv)5|YP*Do{V(zR14F3!+RO))YxHMCTS$}soNEmsI}E-rBQ z@O2KV3NOlYHS>>f4|Dd5u*`P%3kpn2$xJE@ax}KEERHJ7b>#BNDv3z6G`B2@D)!6v zaZmLKEOGX7GVqN^F3EQ+_9zcDG%~3)EqC-PO-Hv)yDTLr&ru;gI3qPT)iAT5Fu>Ks z)zs3ZxYRu?*{L+#!X(+kG0fjNtRU4btT?mEu$ZgNsUpub!X-c0-9p=}AlE3IsgObuj z3+Gh*ykbXlZG+50&&2$+NY}uEOjjY^uu#KebN;|gCjCiGON6@s*F-|Bi$TLyp3EvDoV0)%rl)L zEY0%Wsw!PdbILu+-O9N<6SeaTTr10sON&!d%FT@RQ=Ky`tIBeU91D`tj8Y0LGmT8m z{EDOU3W_motMo~64^+^0G0ID=Gzm8IN>9!TO-}T$a8C*j4@j}BNRA3i(XNd2tn?1{ zu}sNw_vOlT$u=%G^3~2twJ3EjHpntccgf2M@T|)9kI2X__bu>rElP1q@iojh%jVM6 z)m1Qy@DDN!^f&YjbT-Hf%FJ{04|Vda3@h{s4@xs|vUG9wtO!Xh()KC$H{eQ`F1a9i zq38h#hPQ#9msej*b?gC1L;4JyJ{W zZOG1<5tjO6eg2K-3>VJq)Kpumf8w$IKhHOBR!b@fAIn&n{Qu!!@7D`=HLu;+ms-15 z>EV^v`<}WoKHqMf%@(2YE6(*`Q~5*wmXk@(PBghSCGI;h+CSB6@6{jNqx}1$p3}S(-O42@ zrtEQllYH)8o@>bZZKAA+kG%b-vW`c)uj_pIdwPcMSN)|w_O!Pge&l;DXDQQCCYP=` zB5}WCbPt7A)|}n4>O=3AY2Q?Xe#9>RviV*7#`a~~%dDII{4Rz2eTgXfb$rjZhCOSZ zch6rX^5&pbz=oy2-`XTU`@j-?^w^s-OIY6&bY#qYsC1j@OuO{z*h5DqOkZ=qEOA%n zhf{DvGvO+_KDe6(`rqU@HT2mvM>&mtpGbr5V+VVx^;*N-@by2SM4bK-}P|z{iRXVdY zM0s)TwBrq0>wMKRp5&b5F5kT7(9Ca~vTs)0dK7oMZC%XYC(VV+t;P8pmR7vjyU($k z{m1sQxg5pqT`bicB^$PW4C>s;@+5?(>G|Dl%bn9K*DqpZc$MN@rN_HS#mBTqE0ZJO z>Y-q1gRHy0$0ag0@mccos8>`4?fe*Vcx6d->iVj~J~B_6&Z$?ct0|eDESp=S@?zU> z-%HkK^6DRM7no61U0;^N(Dve#+bgX*pExHzJeSm(QX0Z-o4h7W@RdRTF%?q)Z>^v% literal 0 HcmV?d00001 diff --git a/secrets/secrets.nix b/secrets/secrets.nix index 3ab2d98..fd1bca9 100644 --- a/secrets/secrets.nix +++ b/secrets/secrets.nix @@ -157,6 +157,13 @@ with keys.users; ccr-ssh sisko ]; + "nix-netrc.age".publicKeys = [ + ccr-ssh + sisko + pike + picard + kirk + ]; # WireGuard "picard-wireguard-private-key.age".publicKeys = [ From ddfb93214f3e8b08f4ba20305b212c16f6c4fef0 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 23 May 2025 21:32:34 +0200 Subject: [PATCH 469/492] Use `netrc` provided by agenix --- modules/nix/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/nix/default.nix b/modules/nix/default.nix index 000ede4..59f2692 100644 --- a/modules/nix/default.nix +++ b/modules/nix/default.nix @@ -20,7 +20,7 @@ "root" "@wheel" ]; - netrc-file = "/etc/nix/netrc"; + netrc-file = config.age.secrets.nix-netrc.path; substituters = [ # "s3://cache?profile=default®ion=eu-south-1&scheme=https&endpoint=cache.aciceri.dev" "https://cache.iog.io" From 959016455f865cef60f6c080a2b5c082a634ac76 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 23 May 2025 21:32:48 +0200 Subject: [PATCH 470/492] Remove unused caches --- modules/nix/default.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/modules/nix/default.nix b/modules/nix/default.nix index 59f2692..ef46e63 100644 --- a/modules/nix/default.nix +++ b/modules/nix/default.nix @@ -22,18 +22,18 @@ ]; netrc-file = config.age.secrets.nix-netrc.path; substituters = [ - # "s3://cache?profile=default®ion=eu-south-1&scheme=https&endpoint=cache.aciceri.dev" "https://cache.iog.io" "https://cache.lix.systems" "https://nix-community.cachix.org" - "https://mlabs.cachix.org" + # "https://mlabs.cachix.org" + "http://sisko.wg.aciceri.dev:8081/nixfleet" ]; trusted-public-keys = [ - # "cache.aciceri.dev~1:nJMfcBnYieY2WMbYDG0s9S5qUhU+V4RPL+X9zcxXxZY=" "hydra.iohk.io:f/Ea+s+dFdN+3Y/G+FDgSq+a5NEWhJGzdjvKNGv0/EQ=" "cache.lix.systems:aBnZUw8zA7H35Cz2RyKFVs3H4PlGTLawyY5KRbvJR8o=" "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" - "mlabs.cachix.org-1:gStKdEqNKcrlSQw5iMW6wFCj3+b+1ASpBVY2SYuNV2M=" + # "mlabs.cachix.org-1:gStKdEqNKcrlSQw5iMW6wFCj3+b+1ASpBVY2SYuNV2M=" + "nixfleet:Bud23440n6mMTmgq/7U+mk91zlLjnx2X3lQQrCBCCU4=" ]; deprecated-features = [ "url-literals" ]; }; From 7188dbf66579fe9c443f38157cb9ba8239afad4e Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 23 May 2025 21:34:13 +0200 Subject: [PATCH 471/492] Add `nix-netrc` secret to `picard`, `pike`, `kirk` and `sisko` --- hosts/default.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/hosts/default.nix b/hosts/default.nix index 3ac0ce9..efdd865 100644 --- a/hosts/default.nix +++ b/hosts/default.nix @@ -59,6 +59,7 @@ "git-workspace-tokens".owner = "ccr"; "autistici-password".owner = "ccr"; "restic-hetzner-password" = { }; + "nix-netrc" = { }; }; }; @@ -87,6 +88,7 @@ "restic-hetzner-password" = { }; "forgejo-runners-token".owner = "nixuser"; "forgejo-nix-access-tokens".owner = "nixuser"; + "nix-netrc" = { }; }; }; @@ -120,6 +122,7 @@ }; "matrix-registration-shared-secret".owner = "matrix-synapse"; "arbi-config".owner = "arbi"; + "nix-netrc" = { }; }; }; @@ -143,6 +146,7 @@ "cachix-personal-token".owner = "ccr"; "git-workspace-tokens".owner = "ccr"; "autistici-password".owner = "ccr"; + "nix-netrc" = { }; }; }; From 81da82c1fb5f98ef4dae65d11b635524935fd9bc Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Sat, 24 May 2025 10:12:20 +0200 Subject: [PATCH 472/492] Backup `/mnt/hd/roam` directory with restic --- modules/restic/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/restic/default.nix b/modules/restic/default.nix index 52cd712..f973ce9 100644 --- a/modules/restic/default.nix +++ b/modules/restic/default.nix @@ -42,6 +42,7 @@ in "/persist" "/mnt/hd/immich" "/mnt/hd/paperless" + "/mnt/hd/roam" ]; exclude = [ " /persist/var/lib/containers" ]; passwordFile = config.age.secrets.SISKO_RESTIC_PASSWORD.path; From a055ebeaba05dfc2e969924e2a1076d754a0c2f1 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Mon, 26 May 2025 11:13:37 +0200 Subject: [PATCH 473/492] Make `paperless` work again --- modules/paperless/default.nix | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/modules/paperless/default.nix b/modules/paperless/default.nix index eea062d..f0ad8f3 100644 --- a/modules/paperless/default.nix +++ b/modules/paperless/default.nix @@ -16,6 +16,7 @@ pdfa_image_compression = "lossless"; invalidate_digital_signatures = true; }; + PAPERLESS_URL = "https://paper.sisko.wg.aciceri.dev"; }; }; @@ -33,6 +34,12 @@ }; extraConfig = '' client_max_body_size 50000M; + proxy_redirect off; + proxy_set_header Host $host:$server_port; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Host $server_name; + proxy_set_header X-Forwarded-Proto $scheme; ''; serverAliases = [ "paper.sisko.zt.aciceri.dev" ]; }; From 912ab8105a16a194098b51f192364c7a7803800b Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Mon, 26 May 2025 11:13:44 +0200 Subject: [PATCH 474/492] Disable `deprecated-features` --- modules/nix/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/nix/default.nix b/modules/nix/default.nix index ef46e63..a66b56f 100644 --- a/modules/nix/default.nix +++ b/modules/nix/default.nix @@ -35,7 +35,7 @@ # "mlabs.cachix.org-1:gStKdEqNKcrlSQw5iMW6wFCj3+b+1ASpBVY2SYuNV2M=" "nixfleet:Bud23440n6mMTmgq/7U+mk91zlLjnx2X3lQQrCBCCU4=" ]; - deprecated-features = [ "url-literals" ]; + # deprecated-features = [ "url-literals" ]; }; nixPath = [ "nixpkgs=${fleetFlake.inputs.nixpkgs}" ]; From 0a8e49517d6af14cb95d50b36394902ac0ac14b9 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Mon, 26 May 2025 17:32:59 +0200 Subject: [PATCH 475/492] Re-enable MLabs cache --- modules/nix/default.nix | 4 ++-- secrets/nix-netrc.age | Bin 1558 -> 1739 bytes 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/nix/default.nix b/modules/nix/default.nix index a66b56f..c580579 100644 --- a/modules/nix/default.nix +++ b/modules/nix/default.nix @@ -25,14 +25,14 @@ "https://cache.iog.io" "https://cache.lix.systems" "https://nix-community.cachix.org" - # "https://mlabs.cachix.org" + "https://mlabs.cachix.org" "http://sisko.wg.aciceri.dev:8081/nixfleet" ]; trusted-public-keys = [ "hydra.iohk.io:f/Ea+s+dFdN+3Y/G+FDgSq+a5NEWhJGzdjvKNGv0/EQ=" "cache.lix.systems:aBnZUw8zA7H35Cz2RyKFVs3H4PlGTLawyY5KRbvJR8o=" "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" - # "mlabs.cachix.org-1:gStKdEqNKcrlSQw5iMW6wFCj3+b+1ASpBVY2SYuNV2M=" + "mlabs.cachix.org-1:gStKdEqNKcrlSQw5iMW6wFCj3+b+1ASpBVY2SYuNV2M=" "nixfleet:Bud23440n6mMTmgq/7U+mk91zlLjnx2X3lQQrCBCCU4=" ]; # deprecated-features = [ "url-literals" ]; diff --git a/secrets/nix-netrc.age b/secrets/nix-netrc.age index 7b0438f51792139cfc5411d21633bbda8cd428b9..f2dd53c210997ed9f05d3288615896cfae9fa8fc 100644 GIT binary patch delta 1657 zcmbQnbDDR8PJNzBWu=dgms47RcWGf(c%@lVxk-j$o^yJUvtL?3PO5o+RZfP#c4She zBbR@GYeYaqsiU?_k+w@xaDb0zh+$e(ZkmgiYowF2X=sjrxVy7YnrnVwIhU@TLUD11 zZfc5=si~o*f_7O-P@bcLcTS*hMp9*WplSM^VWPppKdwPgTW>SE!g@0gWWPw+)Yo>Af z#E;_PmY#0uC5fg1CXt0E-o-_RK5m7f=>^9Ae*RwC1r>g&UL~2Pk=iLmULM(8LBZZx z2F7k4&IO)+<(A1AMcQF`>BU*OXA;~B-n!}Bc+9W4?I zOS4S0LkkUxj6+QUAzsF z@|?m$b2IY1i?w~jb8}PtD_lxVy-V`4qx@YbpJf!UuZ$=xs_^%(3N`Ra%5!y(s!BJ` z3d=Jv3v&u73orL9H8l(H^Ye7^iONmqvh;Ea^UEx@^zbwF%rq?u%Xjs0bqv4Tucn($&>fs0xelDGSccj0g_Sw}>z^Ep*L`$_yz9snRbuH_|uC zGqp&qcQSA<49zg~T85 z;$_1B-dSz!`!&b%@r%o;Z+)US)G$rHKi@fmCHioSm{Weeerm`3_!5)P?^Yf9|H%1+ zfYnsS9ecNL=Xv@1K6~QP&FXbwCzj;#CVXGr)c$?Vg2_9jn?tghE-aRMUG&%Ix{j~K z&xa20jckKEojg{b5U&q1?8z{*5%&D|I|D_wYERc*n@xk@v_O4GHvPx0H zljcV=7lhr|cUpw^)>UECby=d#cK=!}vfSqs2wF{7ko?8_-FDRyNnPv5{;@2Zc9|Z! zqT}7}dAZ?x#ZeEw2gjCgpUbnEy=PaIKYNJcl+r!Y#%f0wzLP9w~AcjlJAjKOFY#%;no#AKu-; zC9s?8OajMB`>;?U=L?S+`D(=z*Cef+!1Hs}iI@eSEu`$T-|f8eHf2NeQ@5#)=S;43 za^JV-;Sv3X>?{GU!jmR@-zl8DuHt$<|ATEM6PGIfH&`S*(a&+o;<&k`99xe+s961} zwM}zZ!OkBZtzxnNCPt>N)!Z`Ep~%#oY2WM6??=|Zmk}yd^IA96uwYl9seNivK(6zo zjPMhjMpNUK_q|bnbZzdz=CgNO4K*2dUR(GnGWU@7hF|kvD)QEzvgJ;h*el!jisNW9 z_wD++^}A0T*qLlROR?aqXyBU(T~c0QEn9t`|1iIDuw&)pb9d{*W@ z!<_J2v&5OFs;mmQt8}Dz*Cd|{2c}+ICA~&zk0kTSK&H`{&$Yo zZk2!KzGwGs{?27NeBT2Pt$x*i@g(mT?vsb~_9VQX8FZ%J%`@U(!JBJ>i{?!{&f{(A zSt!-CCSdc0u+>Ix{;$3pF!b%;c}BOl;i_Q5`I`|Xe~!!l4wbJiPk2(fqfVcHEzb`@ z#_6249g)*-?EfjT{q+yUCV`)EOIY6=s^dF9d5PHLJURX+Pp4RYev`2>H6z_C{q|x0 zlW&vybc9~~ncJ;4vAn+Ih1=B9l%;$kXD9Bdn!Eebvd)0qEbiow`>ZbUaoIk-vLfl< zwS?{7X)diP^E|fvYxBRzqxy8iy$`SB_HDcU++maW;$GH^z9p$Y7g(#_yt2G`#g$_} z?>qne+1{)@W%_1M#SO(4cTSlcdeO8YB~MxQ#W5?!kB$@d3oAq2{ptfU&J-MpdB5j& zNY&1;Buj=5i895-H>LK)#wh&zkskalLv?A5p<1EG4Eg3NaS7H_E>TH8*PF)t7u|gO zmUKX-!y*AgpKbFlmhYQlQae|nYNhjW&JT(!3LZZ?+40y$cfz%Bt5zqr^EZ}vPLY!A Mcy3^By+hFj06$XRX8-^I delta 1475 zcmX@jJB??8PJM`Tae=#suX9jUcu}6KnSX?Pn6qDmWwyItP+(e0W>RU8qp^i$aa3Wh zBbQHBNkpQhxn)sQv0t{2d#XoZiL;lJfp0`|NxoyTM|q&3kx8X#xuaKUI+w1ULUD11 zZfc5=si~o*f_7O-P@bbgdT>T+ZmMBsL1BQaiL0rli(7H2dswnlX}E<+vV~)qzjIhY zs#{obW|d(vSD8~qo@s4d;~B-nLxUqSQ!=Z( zvZ{&J%L(wT%Jq-P z$S(IS@N_LoaZB+v%s0#C($&>fFpKaHG7R)L^bB-1$P3EMbMy~&@~jLi^a>A3GjOtW zarUgJ4@oW3_9^!_;7XV-xgdF==m80aw}GCQS6@tZ%`khR`?gC1L;4JyJ{WZOG1<5tjO6eg2K-3>VJq)Kpumf8w$IKhHOBR!b@f zAIn&n{Qu!!@7D`=)i-+xxt{Q!(Cu-@1GY_!fCYZf~%4_v8A_K~)l7%D>c26=tqA{5@mQ?ekBT z>}jl@acxf+b9i05g{B1~`=-}RybI?2$bWiIzG?e2!?uV6lkYf1T-nzYoVsE0+6O;F zR$o2hw!L=R;}z*9BL0iQ{DvGvO+_KDe6(`rqU@HT2mvM>&mtpGbr5V z+VVx^;*N-@by2SM4bK-}P|z{iRXVdYM0s)TwBrq0>*{^gGM?m|mJehli|$?_zGr|J3K zZOfh0EY~k$WO$Y0T&2gmNX5srM=O&f;Oe1ZX@ji0zQ-jpHt|{V^Qc!;1?~J8ad>4( zb?W-6!#*-ko6f0QRjaEhnVu}0Tch$~+i%}X)@SnSA8r?zQB_@Emc!8Y;*{GftvjDM ZCq6uv)S6Nn!fl(pCQR^^LH{uoQvejKi**11 From 23b18548997057e84cecddf9dfaa511a265d9c7f Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Wed, 28 May 2025 10:07:38 +0200 Subject: [PATCH 476/492] Add `pdflatex` used by Emacs for exporting org files to pdf --- hmModules/emacs/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/hmModules/emacs/default.nix b/hmModules/emacs/default.nix index ccaccea..ffd5c5a 100644 --- a/hmModules/emacs/default.nix +++ b/hmModules/emacs/default.nix @@ -49,6 +49,7 @@ in copilot-language-server.fhs math-preview emacs-lsp-booster + texlive.combined.scheme-full ] ++ (with hunspellDicts; [ en_US-large From 0c91357de8a4d55f47e6676b8214663916449c35 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Wed, 28 May 2025 10:08:00 +0200 Subject: [PATCH 477/492] Re-enable `url-literals` --- modules/nix/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/nix/default.nix b/modules/nix/default.nix index c580579..26f40d5 100644 --- a/modules/nix/default.nix +++ b/modules/nix/default.nix @@ -35,7 +35,7 @@ "mlabs.cachix.org-1:gStKdEqNKcrlSQw5iMW6wFCj3+b+1ASpBVY2SYuNV2M=" "nixfleet:Bud23440n6mMTmgq/7U+mk91zlLjnx2X3lQQrCBCCU4=" ]; - # deprecated-features = [ "url-literals" ]; + deprecated-features = [ "url-literals" ]; # despite a warning saying that this option doesn't exist it seems to work }; nixPath = [ "nixpkgs=${fleetFlake.inputs.nixpkgs}" ]; From 41656bdf55f29bd25304e0e2640850df4358d0e3 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Wed, 28 May 2025 12:02:46 +0200 Subject: [PATCH 478/492] Bump inputs --- flake.lock | 130 ++++++++++++++++++++++++++--------------------------- 1 file changed, 65 insertions(+), 65 deletions(-) diff --git a/flake.lock b/flake.lock index 474c3aa..57c9178 100644 --- a/flake.lock +++ b/flake.lock @@ -8,11 +8,11 @@ "systems": "systems" }, "locked": { - "lastModified": 1745630506, - "narHash": "sha256-bHCFgGeu8XjWlVuaWzi3QONjDW3coZDqSHvnd4l7xus=", + "lastModified": 1747575206, + "narHash": "sha256-NwmAFuDUO/PFcgaGGr4j3ozG9Pe5hZ/ogitWhY+D81k=", "owner": "ryantm", "repo": "agenix", - "rev": "96e078c646b711aee04b82ba01aefbff87004ded", + "rev": "4835b1dc898959d8547a871ef484930675cb47f1", "type": "github" }, "original": { @@ -26,11 +26,11 @@ "nixpkgs": "nixpkgs_2" }, "locked": { - "lastModified": 1746175539, - "narHash": "sha256-/wjcn1CDQqOhwOoYKS8Xp0KejrdXSJZQMF1CbbrVtMw=", + "lastModified": 1748080874, + "narHash": "sha256-sUebEzAkrY8Aq5G0GHFyRddmRNGP/a2iTtV7ISNvi/c=", "owner": "catppuccin", "repo": "nix", - "rev": "a5db9e41a4dccfa5ffe38e6f1841a5f9ad5c5c04", + "rev": "0ba11b12be81f0849a89ed17ab635164ea8f0112", "type": "github" }, "original": { @@ -41,11 +41,11 @@ }, "crane": { "locked": { - "lastModified": 1741481578, - "narHash": "sha256-JBTSyJFQdO3V8cgcL08VaBUByEU6P5kXbTJN6R0PFQo=", + "lastModified": 1746291859, + "narHash": "sha256-DdWJLA+D5tcmrRSg5Y7tp/qWaD05ATI4Z7h22gd1h7Q=", "owner": "ipetkov", "repo": "crane", - "rev": "bb1c9567c43e4434f54e9481eb4b8e8e0d50f0b5", + "rev": "dfd9a8dfd09db9aad544c4d3b6c47b12562544a5", "type": "github" }, "original": { @@ -83,11 +83,11 @@ ] }, "locked": { - "lastModified": 1745812220, - "narHash": "sha256-hotBG0EJ9VmAHJYF0yhWuTVZpENHvwcJ2SxvIPrXm+g=", + "lastModified": 1748225455, + "narHash": "sha256-AzlJCKaM4wbEyEpV3I/PUq5mHnib2ryEy32c+qfj6xk=", "owner": "nix-community", "repo": "disko", - "rev": "d0c543d740fad42fe2c035b43c9d41127e073c78", + "rev": "a894f2811e1ee8d10c50560551e50d6ab3c392ba", "type": "github" }, "original": { @@ -103,11 +103,11 @@ "pyproject-nix": "pyproject-nix" }, "locked": { - "lastModified": 1735160684, - "narHash": "sha256-n5CwhmqKxifuD4Sq4WuRP/h5LO6f23cGnSAuJemnd/4=", + "lastModified": 1747658429, + "narHash": "sha256-qZWuEdxmPx818qR61t3mMozJOvZSmTRUDPU4L3JeGgE=", "owner": "nix-community", "repo": "dream2nix", - "rev": "8ce6284ff58208ed8961681276f82c2f8f978ef4", + "rev": "6fd6d9188f32efd1e1656b3c3e63a67f9df7b636", "type": "github" }, "original": { @@ -122,11 +122,11 @@ "nixpkgs-stable": "nixpkgs-stable" }, "locked": { - "lastModified": 1746240489, - "narHash": "sha256-DWMG7jkpxrEGzTZZerDqaxT8X983tibFGfNeoWtX1yU=", + "lastModified": 1748309015, + "narHash": "sha256-NVgo/saT8uehYYwwhzWrTTFlpH0icR2E3tHHKsUouJ4=", "owner": "nix-community", "repo": "emacs-overlay", - "rev": "66bb2d7a4df96d0c1e63648850b7aed1b2e8d683", + "rev": "0fba546d9aa235fc726fe9c8c3bb703e918c14c4", "type": "github" }, "original": { @@ -191,11 +191,11 @@ ] }, "locked": { - "lastModified": 1741352980, - "narHash": "sha256-+u2UunDA4Cl5Fci3m7S643HzKmIDAe+fiXrLqYsR2fs=", + "lastModified": 1743550720, + "narHash": "sha256-hIshGgKZCgWh6AYJpJmRgFdR3WUbkY04o82X05xqQiY=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "f4330d22f1c5d2ba72d3d22df5597d123fdb60a9", + "rev": "c621e8422220273271f52058f618c94e405bb0f5", "type": "github" }, "original": { @@ -282,11 +282,11 @@ ] }, "locked": { - "lastModified": 1742649964, - "narHash": "sha256-DwOTp7nvfi8mRfuL1escHDXabVXFGT1VlPD1JHrtrco=", + "lastModified": 1747372754, + "narHash": "sha256-2Y53NGIX2vxfie1rOW0Qb86vjRZ7ngizoo+bnXU9D9k=", "owner": "cachix", "repo": "git-hooks.nix", - "rev": "dcf5072734cb576d2b0c59b2ac44f5050b5eac82", + "rev": "80479b6ec16fefd9c1db3ea13aeb038c60530f46", "type": "github" }, "original": { @@ -387,11 +387,11 @@ ] }, "locked": { - "lastModified": 1746243165, - "narHash": "sha256-DQycVmlyLQNLjLJ/FzpokVmbxGQ8HjQQ4zN4nyq2vII=", + "lastModified": 1748391243, + "narHash": "sha256-7sCuihzsTRZemtbTXaFUoGJUfuQErhKEcL9v7HKIo1k=", "owner": "nix-community", "repo": "home-manager", - "rev": "c0962eeeabfb8127713f859ec8a5f0e86dead0f2", + "rev": "f5b12be834874f7661db4ced969a621ab2d57971", "type": "github" }, "original": { @@ -448,11 +448,11 @@ "rust-overlay": "rust-overlay" }, "locked": { - "lastModified": 1745271491, - "narHash": "sha256-4GAHjus6JRpYHVROMIhFIz/sgLDF/klBM3UHulbSK9s=", + "lastModified": 1747056319, + "narHash": "sha256-qSKcBaISBozadtPq6BomnD+wIYTZIkiua3UuHLaD52c=", "owner": "nix-community", "repo": "lanzaboote", - "rev": "995637eb3ab78eac33f8ee6b45cc2ecd5ede12ba", + "rev": "2e425f3da6ce7f5b34fa6eaf7a2a7f78dbabcc85", "type": "github" }, "original": { @@ -464,11 +464,11 @@ "lix": { "flake": false, "locked": { - "lastModified": 1746186329, - "narHash": "sha256-MLz0MjeVCaqvIvf5szUwNwYEiXC/lKWL0I2VS+6V/e0=", + "lastModified": 1748388700, + "narHash": "sha256-abzcNgnyZTX84EjRu6KAAauDv61OkTRRDc+jB8BxrBE=", "ref": "refs/heads/main", - "rev": "4e84fd9a0061a04627ec6962c0ed08c2ad0b8a7f", - "revCount": 17824, + "rev": "fda93021ca8bf43de1e43c223b439b41c3990e4c", + "revCount": 17958, "type": "git", "url": "https://git@git.lix.systems/lix-project/lix" }, @@ -489,11 +489,11 @@ ] }, "locked": { - "lastModified": 1742945498, - "narHash": "sha256-MB/b/xcDKqaVBxJIIxwb81r8ZiGLeKEcqokATRRroo8=", + "lastModified": 1747667424, + "narHash": "sha256-7EICjbmG6lApWKhFtwvZovdcdORY1CEe6/K7JwtpYfs=", "ref": "refs/heads/main", - "rev": "fa69ae26cc32dda178117b46487c2165c0e08316", - "revCount": 138, + "rev": "3c23c6ae2aecc1f76ae7993efe1a78b5316f0700", + "revCount": 144, "type": "git", "url": "https://git.lix.systems/lix-project/nixos-module" }, @@ -505,11 +505,11 @@ "mobile-nixos": { "flake": false, "locked": { - "lastModified": 1743812405, - "narHash": "sha256-BedQ9Z3+nqtp9BRjHjJNPUeLIMVbTsP3Udbz0b1cUn0=", + "lastModified": 1748200777, + "narHash": "sha256-ELbQ7Apk0QzfhO8WjQIqEBuN2bEnGQHNxeiOSx/mU38=", "owner": "NixOS", "repo": "mobile-nixos", - "rev": "6679fd7a8dd4ccf4aa538b82216723861cfe61a2", + "rev": "6e249e58b5d8166738ebcfd401f05f7496049dd3", "type": "github" }, "original": { @@ -554,11 +554,11 @@ "nmd": "nmd" }, "locked": { - "lastModified": 1725658585, - "narHash": "sha256-P29z4Gt89n5ps1U7+qmIrj0BuRXGZQSIaOe2+tsPgfw=", + "lastModified": 1747382160, + "narHash": "sha256-nlHPjA5GH4wdwnAoOzCt7BVLUKtIAAW2ClNGz2OxTrs=", "owner": "nix-community", "repo": "nix-on-droid", - "rev": "5d88ff2519e4952f8d22472b52c531bb5f1635fc", + "rev": "40b8c7465f78887279a0a3c743094fa6ea671ab1", "type": "github" }, "original": { @@ -569,11 +569,11 @@ }, "nixosHardware": { "locked": { - "lastModified": 1745955289, - "narHash": "sha256-mmV2oPhQN+YF2wmnJzXX8tqgYmUYXUj3uUUBSTmYN5o=", + "lastModified": 1747900541, + "narHash": "sha256-dn64Pg9xLETjblwZs9Euu/SsjW80pd6lr5qSiyLY1pg=", "owner": "NixOS", "repo": "nixos-hardware", - "rev": "72081c9fbbef63765ae82bff9727ea79cc86bd5b", + "rev": "11f2d9ea49c3e964315215d6baa73a8d42672f06", "type": "github" }, "original": { @@ -647,11 +647,11 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1746183838, - "narHash": "sha256-kwaaguGkAqTZ1oK0yXeQ3ayYjs8u/W7eEfrFpFfIDFA=", + "lastModified": 1748037224, + "narHash": "sha256-92vihpZr6dwEMV6g98M5kHZIttrWahb9iRPBm1atcPk=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "bf3287dac860542719fe7554e21e686108716879", + "rev": "f09dede81861f3a83f7f06641ead34f02f37597f", "type": "github" }, "original": { @@ -711,11 +711,11 @@ }, "nixpkgs_4": { "locked": { - "lastModified": 1746141548, - "narHash": "sha256-IgBWhX7A2oJmZFIrpRuMnw5RAufVnfvOgHWgIdds+hc=", + "lastModified": 1748190013, + "narHash": "sha256-R5HJFflOfsP5FBtk+zE8FpL8uqE7n62jqOsADvVshhE=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "f02fddb8acef29a8b32f10a335d44828d7825b78", + "rev": "62b852f6c6742134ade1abdd2a21685fd617a291", "type": "github" }, "original": { @@ -742,11 +742,11 @@ }, "nixpkgs_6": { "locked": { - "lastModified": 1746141548, - "narHash": "sha256-IgBWhX7A2oJmZFIrpRuMnw5RAufVnfvOgHWgIdds+hc=", + "lastModified": 1748190013, + "narHash": "sha256-R5HJFflOfsP5FBtk+zE8FpL8uqE7n62jqOsADvVshhE=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "f02fddb8acef29a8b32f10a335d44828d7825b78", + "rev": "62b852f6c6742134ade1abdd2a21685fd617a291", "type": "github" }, "original": { @@ -821,11 +821,11 @@ ] }, "locked": { - "lastModified": 1741379162, - "narHash": "sha256-srpAbmJapkaqGRE3ytf3bj4XshspVR5964OX5LfjDWc=", + "lastModified": 1746537231, + "narHash": "sha256-Wb2xeSyOsCoTCTj7LOoD6cdKLEROyFAArnYoS+noCWo=", "owner": "cachix", "repo": "pre-commit-hooks.nix", - "rev": "b5a62751225b2f62ff3147d0a334055ebadcd5cc", + "rev": "fa466640195d38ec97cf0493d6d6882bc4d14969", "type": "github" }, "original": { @@ -906,11 +906,11 @@ ] }, "locked": { - "lastModified": 1741573199, - "narHash": "sha256-A2sln1GdCf+uZ8yrERSCZUCqZ3JUlOv1WE2VFqqfaLQ=", + "lastModified": 1747017456, + "narHash": "sha256-C/U12fcO+HEF071b5mK65lt4XtAIZyJSSJAg9hdlvTk=", "owner": "oxalica", "repo": "rust-overlay", - "rev": "c777dc8a1e35407b0e80ec89817fe69970f4e81a", + "rev": "5b07506ae89b025b14de91f697eba23b48654c52", "type": "github" }, "original": { @@ -1009,11 +1009,11 @@ ] }, "locked": { - "lastModified": 1746216483, - "narHash": "sha256-4h3s1L/kKqt3gMDcVfN8/4v2jqHrgLIe4qok4ApH5x4=", + "lastModified": 1748243702, + "narHash": "sha256-9YzfeN8CB6SzNPyPm2XjRRqSixDopTapaRsnTpXUEY8=", "owner": "numtide", "repo": "treefmt-nix", - "rev": "29ec5026372e0dec56f890e50dbe4f45930320fd", + "rev": "1f3f7b784643d488ba4bf315638b2b0a4c5fb007", "type": "github" }, "original": { From 6bdf2e95c1470377ea5f06e1efcb4f627808615d Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Wed, 28 May 2025 13:58:17 +0200 Subject: [PATCH 479/492] Remove `impure-derivations` (not experimental anymore?) --- modules/nix/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/nix/default.nix b/modules/nix/default.nix index 26f40d5..e8dedc8 100644 --- a/modules/nix/default.nix +++ b/modules/nix/default.nix @@ -41,7 +41,7 @@ nixPath = [ "nixpkgs=${fleetFlake.inputs.nixpkgs}" ]; extraOptions = '' - experimental-features = nix-command flakes impure-derivations + experimental-features = nix-command flakes builders-use-substitutes = true ''; From 197463cc08da1b2f048f8b493d7d96efb62d2a41 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Wed, 28 May 2025 14:44:07 +0200 Subject: [PATCH 480/492] Test `push-to-cache` script --- .forgejo/workflows/build.yaml | 4 +++- checks/default.nix | 18 ++++++++++++++++-- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/.forgejo/workflows/build.yaml b/.forgejo/workflows/build.yaml index a2224c0..6edae8f 100644 --- a/.forgejo/workflows/build.yaml +++ b/.forgejo/workflows/build.yaml @@ -16,6 +16,8 @@ jobs: chmod 600 ~/.ssh/id_ed25519 ssh-keyscan github.com >> ~/.ssh/known_hosts - name: Build with nix (x86_64-linux) - run: nix-fast-build --no-nom --systems "x86_64-linux aarch64-linux" --attic-cache "nixfleet" --skip-cached --result-file result.json || true + run: nix-fast-build --no-nom --systems "x86_64-linux aarch64-linux" --skip-cached --result-file result.json || true + - name: Push to cache + run: nix run .#push-to-cache -- nixfleet - name: Report checks run: report-checks diff --git a/checks/default.nix b/checks/default.nix index ae2c491..9030d41 100644 --- a/checks/default.nix +++ b/checks/default.nix @@ -11,7 +11,7 @@ ]; perSystem = - { config, ... }: + { config, pkgs, ... }: { treefmt.config = { projectRootFile = ".git/config"; @@ -42,6 +42,18 @@ package = config.treefmt.build.wrapper; }; }; + packages.push-to-cache = + let + allChecks = with self.checks; x86_64-linux // aarch64-linux; + checks = builtins.removeAttrs allChecks [ "push-to-cache" ]; + in + pkgs.writeShellScriptBin "push-to-cache.sh" '' + attic push $1 --stdin --jobs 64 << EOF + ${lib.concatStringsSep "\n" ( + builtins.map (builtins.unsafeDiscardStringContext) (builtins.attrValues checks) + )} + EOF + ''; }; flake.checks = @@ -49,7 +61,9 @@ build = _: nc: nc.config.system.build.toplevel; in { - x86_64-linux = lib.mapAttrs build { inherit (self.nixosConfigurations) picard pike kirk; }; + x86_64-linux = (lib.mapAttrs build { inherit (self.nixosConfigurations) picard pike kirk; }) // { + inherit (self.checks.x86_64-linux) push-to-cache; + }; aarch64-linux = lib.mapAttrs build { inherit (self.nixosConfigurations) sisko; # pbp; }; From c6f951a347a7939a43279f4dc00ec05a537a133e Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Wed, 28 May 2025 14:58:53 +0200 Subject: [PATCH 481/492] Re-enable `--attic-cache` in `nix-fast-build` --- .forgejo/workflows/build.yaml | 4 +--- checks/default.nix | 4 +--- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/.forgejo/workflows/build.yaml b/.forgejo/workflows/build.yaml index 6edae8f..a2224c0 100644 --- a/.forgejo/workflows/build.yaml +++ b/.forgejo/workflows/build.yaml @@ -16,8 +16,6 @@ jobs: chmod 600 ~/.ssh/id_ed25519 ssh-keyscan github.com >> ~/.ssh/known_hosts - name: Build with nix (x86_64-linux) - run: nix-fast-build --no-nom --systems "x86_64-linux aarch64-linux" --skip-cached --result-file result.json || true - - name: Push to cache - run: nix run .#push-to-cache -- nixfleet + run: nix-fast-build --no-nom --systems "x86_64-linux aarch64-linux" --attic-cache "nixfleet" --skip-cached --result-file result.json || true - name: Report checks run: report-checks diff --git a/checks/default.nix b/checks/default.nix index 9030d41..f82204c 100644 --- a/checks/default.nix +++ b/checks/default.nix @@ -61,9 +61,7 @@ build = _: nc: nc.config.system.build.toplevel; in { - x86_64-linux = (lib.mapAttrs build { inherit (self.nixosConfigurations) picard pike kirk; }) // { - inherit (self.checks.x86_64-linux) push-to-cache; - }; + x86_64-linux = (lib.mapAttrs build { inherit (self.nixosConfigurations) picard pike kirk; }); aarch64-linux = lib.mapAttrs build { inherit (self.nixosConfigurations) sisko; # pbp; }; From 650c787cdcfe12db7940121446912d55b0819d1c Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Wed, 28 May 2025 16:30:08 +0200 Subject: [PATCH 482/492] Connect `picard` to the MLabs VPN --- hosts/default.nix | 1 + hosts/picard/default.nix | 1 + modules/wireguard-mlabs/default.nix | 15 +++++++++++++++ secrets/secrets.nix | 6 ++++++ secrets/wireguard-mlabs-private-key.age | 12 ++++++++++++ 5 files changed, 35 insertions(+) create mode 100644 modules/wireguard-mlabs/default.nix create mode 100644 secrets/wireguard-mlabs-private-key.age diff --git a/hosts/default.nix b/hosts/default.nix index efdd865..170cd88 100644 --- a/hosts/default.nix +++ b/hosts/default.nix @@ -89,6 +89,7 @@ "forgejo-runners-token".owner = "nixuser"; "forgejo-nix-access-tokens".owner = "nixuser"; "nix-netrc" = { }; + "wireguard-mlabs-private-key" = { }; }; }; diff --git a/hosts/picard/default.nix b/hosts/picard/default.nix index 02271ff..bf4c0c7 100644 --- a/hosts/picard/default.nix +++ b/hosts/picard/default.nix @@ -41,6 +41,7 @@ "prometheus-exporters" "zerotier" "alloy" + "wireguard-mlabs" ] ++ [ ./disko.nix ]; diff --git a/modules/wireguard-mlabs/default.nix b/modules/wireguard-mlabs/default.nix new file mode 100644 index 0000000..2d583f7 --- /dev/null +++ b/modules/wireguard-mlabs/default.nix @@ -0,0 +1,15 @@ +{ config, ... }: +{ + networking.wireguard.interfaces.wg1 = { + ips = [ "10.10.1.1/32" ]; + peers = [ + { + publicKey = "A4u2Rt5WEMHOAc6YpDABkqAy2dzzFLH9Gn8xWcKaPQQ="; + allowedIPs = [ "10.10.0.0/16" ]; + endpoint = "vpn.staging.mlabs.city:51820"; + persistentKeepalive = 25; + } + ]; + privateKeyFile = config.age.secrets.wireguard-mlabs-private-key.path; + }; +} diff --git a/secrets/secrets.nix b/secrets/secrets.nix index fd1bca9..8646ff3 100644 --- a/secrets/secrets.nix +++ b/secrets/secrets.nix @@ -164,6 +164,12 @@ with keys.users; picard kirk ]; + "wireguard-mlabs-private-key.age".publicKeys = [ + ccr-ssh + picard + pike + kirk + ]; # WireGuard "picard-wireguard-private-key.age".publicKeys = [ diff --git a/secrets/wireguard-mlabs-private-key.age b/secrets/wireguard-mlabs-private-key.age new file mode 100644 index 0000000..363e217 --- /dev/null +++ b/secrets/wireguard-mlabs-private-key.age @@ -0,0 +1,12 @@ +age-encryption.org/v1 +-> ssh-ed25519 Zh7Kmw 1pcva3l9KyvXlzWJVeul63s1xnL2yEMzuB1R73IdKlA +TDDa9yQYXrqFS+MCEeqCcQ/27zu3WytSmU5MBNyQTIk +-> ssh-ed25519 /WmILg z9/JeIxSpzndNP+1fwfdRfKYTaNp7wVITCkF7wwayEs +8PlFDHZbA0Z/3svhPWGE/sHfsMNmuXrdP6Qf0FhLMmc +-> ssh-ed25519 OYRzvQ Tk0mN20c8199ZvTY6jXY6ExSXGR3kb4qtnj8HkPj1xY +5SGMhFzIE98NgNw7bnnivVTvuKtBtJdf/2jAjJUSKl8 +-> ssh-ed25519 /yLdGQ 8J4LLlxtMFW8fALPGUk/NaHIJ59bo9tKe5TGiGAvYhk +sgE0SQi169mEtltDWIb4ZZaXKUXORyiKhmOZsNOiqKU +--- sWbCYolqfqwIsja6nNdyPBcOeM/Qq5GninMokUvK4xE +ʼngz{4 X? +A e"v\Ho,m}bq$h:fGkF=#0q \ No newline at end of file From 5fa324bfa2e1db738be456cc99c9a2daca6524d3 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Wed, 28 May 2025 20:33:11 +0200 Subject: [PATCH 483/492] Enable `unison` on `pike` --- hosts/pike/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/hosts/pike/default.nix b/hosts/pike/default.nix index c1c2579..bd39cf3 100644 --- a/hosts/pike/default.nix +++ b/hosts/pike/default.nix @@ -89,6 +89,7 @@ "pantalaimon" "gimp" "jellyfin" + "unison" ]; extraGroups = [ "plugdev" ]; backupPaths = [ ]; From 908508743bfef1e30e6f4dd0562ca4efab9de770 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 29 May 2025 10:42:13 +0200 Subject: [PATCH 484/492] Move Nginx virtual hosts to relative modules --- modules/home-assistant/default.nix | 13 ++++ modules/immich/default.nix | 12 ++++ modules/sisko-proxy/default.nix | 104 +---------------------------- 3 files changed, 27 insertions(+), 102 deletions(-) diff --git a/modules/home-assistant/default.nix b/modules/home-assistant/default.nix index 086e8e7..3801ed8 100644 --- a/modules/home-assistant/default.nix +++ b/modules/home-assistant/default.nix @@ -163,6 +163,19 @@ in config.services.home-assistant.configDir ]; + services.nginx.virtualHosts."home.aciceri.dev" = { + forceSSL = true; + enableACME = true; + locations."/" = { + proxyPass = "http://localhost:${builtins.toString config.services.home-assistant.config.http.server_port}"; + proxyWebsockets = true; + }; + extraConfig = '' + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection $connection_upgrade; + ''; + }; + # virtualisation.oci-containers = { # backend = "podman"; # containers.homeassistant = { diff --git a/modules/immich/default.nix b/modules/immich/default.nix index bf93484..505d325 100644 --- a/modules/immich/default.nix +++ b/modules/immich/default.nix @@ -22,4 +22,16 @@ fsType = "ext4"; options = [ "bind" ]; }; + + services.nginx.virtualHosts."photos.aciceri.dev" = { + forceSSL = true; + enableACME = true; + locations."/" = { + proxyPass = "http://localhost:${builtins.toString config.services.immich.port}"; + proxyWebsockets = true; + }; + extraConfig = '' + client_max_body_size 50000M; + ''; + }; } diff --git a/modules/sisko-proxy/default.nix b/modules/sisko-proxy/default.nix index 19b32b5..2a79fec 100644 --- a/modules/sisko-proxy/default.nix +++ b/modules/sisko-proxy/default.nix @@ -1,105 +1,5 @@ -{ config, ... }: { imports = [ ../nginx-base ]; - services.nginx.virtualHosts = { - localhost.listen = [ { addr = "127.0.0.1"; } ]; - "home.aciceri.dev" = { - forceSSL = true; - enableACME = true; - locations."/" = { - proxyPass = "http://localhost:${builtins.toString config.services.home-assistant.config.http.server_port}"; - proxyWebsockets = true; - }; - extraConfig = '' - proxy_set_header Upgrade $http_upgrade; - proxy_set_header Connection $connection_upgrade; - ''; - }; - "home.sisko.aciceri.dev" = { - forceSSL = true; - useACMEHost = "aciceri.dev"; - locations."/" = { - proxyPass = "http://localhost:${builtins.toString config.services.home-assistant.config.http.server_port}"; - proxyWebsockets = true; - }; - extraConfig = '' - proxy_set_header Upgrade $http_upgrade; - proxy_set_header Connection $connection_upgrade; - ''; - }; - "photos.aciceri.dev" = { - extraConfig = '' - client_max_body_size 50000M; - ''; - forceSSL = true; - enableACME = true; - locations."/" = { - proxyPass = "http://localhost:${builtins.toString config.services.immich.port}"; - proxyWebsockets = true; - }; - }; - # "${config.services.nextcloud.hostName}" = { - # forceSSL = true; - # enableACME = true; - # }; - # "sevenofnix.aciceri.dev" = { - # forceSSL = true; - # enableACME = true; - # locations."/" = { - # proxyPass = "http://10.1.1.2:${builtins.toString config.services.buildbot-master.port}"; - # proxyWebsockets = true; - # }; - # }; - }; - - # services.oauth2_proxy = { - # enable = true; - # provider = "oidc"; - # reverseProxy = true; - # # replaces following options with .keyFile - - # clientID = "shouldThisBePrivate?"; - # clientSecret = "thisShouldBePrivate"; - # cookie.secret = "thisShouldBePrivate00000"; - - # email.domains = [ "*" ]; - # extraConfig = { - # # custom-sign-in-logo = "${../../lib/mlabs-logo.svg}"; - # # scope = "user:email"; - # # banner = "MLabs Status"; - # # whitelist-domain = ".status.staging.mlabs.city"; - # oidc-issuer-url = "http://127.0.0.1:5556/dex"; - # }; - # # redirectURL = "https://status.staging.mlabs.city/oauth2/callback"; - # # keyFile = config.age.secrets.status-oauth2-secrets.path; - # # cookie.domain = ".status.staging.mlabs.city"; - # nginx = { - # virtualHosts = [ - # "search.aciceri.dev" - # ]; - # }; - # }; - - # services.dex = { - # enable = true; - # settings = { - # issuer = "http://127.0.0.1:5556/dex"; - # storage = { - # type = "postgres"; - # config.host = "/var/run/postgresql"; - # }; - # web = { - # http = "127.0.0.1:5556"; - # }; - # enablePasswordDB = true; - # staticClients = [ - # { - # # id = "oidcclient"; - # # name = "client"; - # # redirecturis = [ "https://login.aciceri.dev/callback" ]; - # # secretfile = "/etc/dex/oidcclient"; # the content of `secretfile` will be written into to the config as `secret`. - # } - # ]; - # }; - # }; + # TODO this file can be probably deleted now + # each module defining a virtualHost should import nginx-base } From 12b731ef9aa51f5ca73ef02809128f681a51b966 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 29 May 2025 15:33:16 +0200 Subject: [PATCH 485/492] Allow forwarding all traffic --- modules/wireguard-server/default.nix | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/modules/wireguard-server/default.nix b/modules/wireguard-server/default.nix index a02ccad..3b4b8bb 100644 --- a/modules/wireguard-server/default.nix +++ b/modules/wireguard-server/default.nix @@ -2,6 +2,7 @@ config, lib, vpn, + pkgs, ... }: { @@ -17,5 +18,13 @@ publicKey = vpnConfig.publicKey; allowedIPs = [ "${vpnConfig.ip}/32" ]; }) vpn; + + postSetup = '' + ${lib.getExeo' pkgs.iptables "iptables"} -t nat -A POSTROUTING -s 10.100.0.0/24 -o enP4p65s0 -j MASQUERADE + ''; + + postShutdown = '' + ${lib.getExe' pkgs.iptables "iptables"} -t nat -D POSTROUTING -s 10.100.0.0/24 -o enP4p65s0 -j MASQUERADE + ''; }; } From 4e90abc309e78b334d1fbba59a416119a293c33b Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 29 May 2025 15:34:51 +0200 Subject: [PATCH 486/492] Allow full tunnel --- modules/wireguard-client/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/wireguard-client/default.nix b/modules/wireguard-client/default.nix index 352aa40..28bc943 100644 --- a/modules/wireguard-client/default.nix +++ b/modules/wireguard-client/default.nix @@ -13,6 +13,7 @@ { publicKey = vpn.sisko.publicKey; allowedIPs = [ "10.100.0.0/24" ]; + # allowedIPs = [ "0.0.0.0/24" ]; # Uncomment for full tunnel endpoint = "vpn.aciceri.dev:51820"; persistentKeepalive = 25; } From 7303969233aec9a6a48546dfd561dc2263be72a3 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Thu, 29 May 2025 15:45:05 +0200 Subject: [PATCH 487/492] Fix typo --- modules/wireguard-server/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/wireguard-server/default.nix b/modules/wireguard-server/default.nix index 3b4b8bb..efb9b41 100644 --- a/modules/wireguard-server/default.nix +++ b/modules/wireguard-server/default.nix @@ -20,7 +20,7 @@ }) vpn; postSetup = '' - ${lib.getExeo' pkgs.iptables "iptables"} -t nat -A POSTROUTING -s 10.100.0.0/24 -o enP4p65s0 -j MASQUERADE + ${lib.getExe' pkgs.iptables "iptables"} -t nat -A POSTROUTING -s 10.100.0.0/24 -o enP4p65s0 -j MASQUERADE ''; postShutdown = '' From cea95102f76213eec83dd17b83e9fc2a873876a4 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Wed, 4 Jun 2025 15:00:28 +0200 Subject: [PATCH 488/492] Rename secret `chatgpt-token` to `openrouter-api-key` --- hmModules/emacs/default.nix | 2 +- hmModules/emacs/init.el | 2 +- hosts/default.nix | 8 ++++---- .../{chatgpt-token.age => openrouter-api-key.age} | Bin secrets/secrets.nix | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) rename secrets/{chatgpt-token.age => openrouter-api-key.age} (100%) diff --git a/hmModules/emacs/default.nix b/hmModules/emacs/default.nix index ffd5c5a..e8e9e48 100644 --- a/hmModules/emacs/default.nix +++ b/hmModules/emacs/default.nix @@ -12,7 +12,7 @@ in { systemd.user.sessionVariables = { EDITOR = lib.mkForce "emacsclient -c"; - OPENAI_API_KEY_PATH = age.secrets.chatgpt-token.path; + OPENROUTER_API_KEY_PATH = age.secrets.openrouter-api-key.path; }; programs.emacs = { enable = true; diff --git a/hmModules/emacs/init.el b/hmModules/emacs/init.el index 843265a..27c5fc6 100644 --- a/hmModules/emacs/init.el +++ b/hmModules/emacs/init.el @@ -1038,7 +1038,7 @@ This is meant to be an helper to be called from the window manager." (gptel-backend (gptel-make-openai "OpenRouter" :host "openrouter.ai" :endpoint "/api/v1/chat/completions" - :key (lambda () (require 'f) (f-read-text (getenv "OPENAI_API_KEY_PATH"))) + :key (lambda () (require 'f) (f-read-text (getenv "OPENROUTER_API_KEY_PATH"))) :stream t :models '(google/gemini-2.5-flash-preview)) ) diff --git a/hosts/default.nix b/hosts/default.nix index 170cd88..d070094 100644 --- a/hosts/default.nix +++ b/hosts/default.nix @@ -33,7 +33,7 @@ ]; secrets = { "deltaflyer-wireguard-private-key" = { }; - "chatgpt-token".owner = "ccr"; + "openrouter-api-key".owner = "ccr"; }; }; @@ -54,7 +54,7 @@ ]; secrets = { "kirk-wireguard-private-key" = { }; - "chatgpt-token".owner = "ccr"; + "openrouter-api-key".owner = "ccr"; "cachix-personal-token".owner = "ccr"; "git-workspace-tokens".owner = "ccr"; "autistici-password".owner = "ccr"; @@ -81,7 +81,7 @@ ]; secrets = { "picard-wireguard-private-key" = { }; - "chatgpt-token".owner = "ccr"; + "openrouter-api-key".owner = "ccr"; "cachix-personal-token".owner = "ccr"; "git-workspace-tokens".owner = "ccr"; "autistici-password".owner = "ccr"; @@ -143,7 +143,7 @@ ]; secrets = { "pike-wireguard-private-key" = { }; - "chatgpt-token".owner = "ccr"; + "openrouter-api-key".owner = "ccr"; "cachix-personal-token".owner = "ccr"; "git-workspace-tokens".owner = "ccr"; "autistici-password".owner = "ccr"; diff --git a/secrets/chatgpt-token.age b/secrets/openrouter-api-key.age similarity index 100% rename from secrets/chatgpt-token.age rename to secrets/openrouter-api-key.age diff --git a/secrets/secrets.nix b/secrets/secrets.nix index 8646ff3..dd664fc 100644 --- a/secrets/secrets.nix +++ b/secrets/secrets.nix @@ -84,7 +84,7 @@ with keys.users; ccr-ssh sisko ]; - "chatgpt-token.age".publicKeys = [ + "openrouter-api-key.age".publicKeys = [ ccr-ssh kirk mothership From f302514403e9f86e208d341ea766e23a7f144e35 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Wed, 4 Jun 2025 15:01:04 +0200 Subject: [PATCH 489/492] Add `aider`/`aidermacs` --- hmModules/emacs/default.nix | 1 + hmModules/emacs/init.el | 9 +++++++++ packages/emacs/packages.nix | 1 + 3 files changed, 11 insertions(+) diff --git a/hmModules/emacs/default.nix b/hmModules/emacs/default.nix index e8e9e48..3e46174 100644 --- a/hmModules/emacs/default.nix +++ b/hmModules/emacs/default.nix @@ -50,6 +50,7 @@ in math-preview emacs-lsp-booster texlive.combined.scheme-full + aider-chat-full ] ++ (with hunspellDicts; [ en_US-large diff --git a/hmModules/emacs/init.el b/hmModules/emacs/init.el index 27c5fc6..0ff7de5 100644 --- a/hmModules/emacs/init.el +++ b/hmModules/emacs/init.el @@ -1032,6 +1032,15 @@ This is meant to be an helper to be called from the window manager." (:map org-mode-map (("M-p" . org-download-clipboard)))) +(use-package aidermacs + :bind (("C-c A" . aidermacs-transient-menu)) + :init + (require 'f) + (setenv "OPENROUTER_API_KEY" (f-read-text (getenv "OPENROUTER_API_KEY_PATH"))) + :custom + (aidermacs-use-architect-mode t) + (aidermacs-default-model "openrouter/deepseek/deepseek-chat-v3-0324")) + (use-package gptel :custom (gptel-model 'google/gemini-2.5-flash-preview) diff --git a/packages/emacs/packages.nix b/packages/emacs/packages.nix index 4852658..2d1950a 100644 --- a/packages/emacs/packages.nix +++ b/packages/emacs/packages.nix @@ -208,6 +208,7 @@ let visual-replace org-super-agenda tidal + aidermacs # org-re-reveal # FIXME very not nice hash mismatch when building ] ) From c03cbcdc0ea967ef3ab642aa8049c21d54fadcd2 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Wed, 4 Jun 2025 15:05:17 +0200 Subject: [PATCH 490/492] Disable `element` and enable `unison` and `jellyfin` on `kirk` --- hosts/kirk/default.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/hosts/kirk/default.nix b/hosts/kirk/default.nix index 0ccd677..c9fa85b 100644 --- a/hosts/kirk/default.nix +++ b/hosts/kirk/default.nix @@ -46,7 +46,6 @@ "helix" "shell" "zellij" - "element" "firefox" "gpg" "mpv" @@ -75,6 +74,8 @@ "zmkbatx" "moonlight" "gimp" + "unison" + "jellyfin" ]; extraGroups = [ "plugdev" ]; backupPaths = [ ]; From 1783f89cbed86c870967431684ad1af7cc92f417 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Tue, 10 Jun 2025 16:18:58 +0200 Subject: [PATCH 491/492] Bump flake inputs --- flake.lock | 122 ++++++++++++++++++++++++++--------------------------- 1 file changed, 61 insertions(+), 61 deletions(-) diff --git a/flake.lock b/flake.lock index 57c9178..8a943e3 100644 --- a/flake.lock +++ b/flake.lock @@ -26,11 +26,11 @@ "nixpkgs": "nixpkgs_2" }, "locked": { - "lastModified": 1748080874, - "narHash": "sha256-sUebEzAkrY8Aq5G0GHFyRddmRNGP/a2iTtV7ISNvi/c=", + "lastModified": 1749223974, + "narHash": "sha256-/GAQYRW1duU81KG//2wI9ax8EkHVG/e1UOD97NdwLOY=", "owner": "catppuccin", "repo": "nix", - "rev": "0ba11b12be81f0849a89ed17ab635164ea8f0112", + "rev": "3a42cd79c647360ee8742659e42aeec0947dd3b4", "type": "github" }, "original": { @@ -41,11 +41,11 @@ }, "crane": { "locked": { - "lastModified": 1746291859, - "narHash": "sha256-DdWJLA+D5tcmrRSg5Y7tp/qWaD05ATI4Z7h22gd1h7Q=", + "lastModified": 1748970125, + "narHash": "sha256-UDyigbDGv8fvs9aS95yzFfOKkEjx1LO3PL3DsKopohA=", "owner": "ipetkov", "repo": "crane", - "rev": "dfd9a8dfd09db9aad544c4d3b6c47b12562544a5", + "rev": "323b5746d89e04b22554b061522dfce9e4c49b18", "type": "github" }, "original": { @@ -83,11 +83,11 @@ ] }, "locked": { - "lastModified": 1748225455, - "narHash": "sha256-AzlJCKaM4wbEyEpV3I/PUq5mHnib2ryEy32c+qfj6xk=", + "lastModified": 1749436314, + "narHash": "sha256-CqmqU5FRg5AadtIkxwu8ulDSOSoIisUMZRLlcED3Q5w=", "owner": "nix-community", "repo": "disko", - "rev": "a894f2811e1ee8d10c50560551e50d6ab3c392ba", + "rev": "dfa4d1b9c39c0342ef133795127a3af14598017a", "type": "github" }, "original": { @@ -103,11 +103,11 @@ "pyproject-nix": "pyproject-nix" }, "locked": { - "lastModified": 1747658429, - "narHash": "sha256-qZWuEdxmPx818qR61t3mMozJOvZSmTRUDPU4L3JeGgE=", + "lastModified": 1748838242, + "narHash": "sha256-wORL3vLIJdBF8hz73yuD7DVsrbOvFgtH96hQIetXhfg=", "owner": "nix-community", "repo": "dream2nix", - "rev": "6fd6d9188f32efd1e1656b3c3e63a67f9df7b636", + "rev": "e92dacdc57acaa6b2ae79592c1a62c2340931410", "type": "github" }, "original": { @@ -122,11 +122,11 @@ "nixpkgs-stable": "nixpkgs-stable" }, "locked": { - "lastModified": 1748309015, - "narHash": "sha256-NVgo/saT8uehYYwwhzWrTTFlpH0icR2E3tHHKsUouJ4=", + "lastModified": 1749547298, + "narHash": "sha256-2H1CgaACA+RUlUf942FvsmobSoSpmlkovQSOkbvX1zE=", "owner": "nix-community", "repo": "emacs-overlay", - "rev": "0fba546d9aa235fc726fe9c8c3bb703e918c14c4", + "rev": "5c793af459e1f5d4a36d41f32a4841a3d76b7e9e", "type": "github" }, "original": { @@ -170,11 +170,11 @@ "flake-compat_3": { "flake": false, "locked": { - "lastModified": 1733328505, - "narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=", + "lastModified": 1747046372, + "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=", "owner": "edolstra", "repo": "flake-compat", - "rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec", + "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885", "type": "github" }, "original": { @@ -191,11 +191,11 @@ ] }, "locked": { - "lastModified": 1743550720, - "narHash": "sha256-hIshGgKZCgWh6AYJpJmRgFdR3WUbkY04o82X05xqQiY=", + "lastModified": 1749398372, + "narHash": "sha256-tYBdgS56eXYaWVW3fsnPQ/nFlgWi/Z2Ymhyu21zVM98=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "c621e8422220273271f52058f618c94e405bb0f5", + "rev": "9305fe4e5c2a6fcf5ba6a3ff155720fbe4076569", "type": "github" }, "original": { @@ -245,11 +245,11 @@ "nixpkgs-lib": "nixpkgs-lib" }, "locked": { - "lastModified": 1743550720, - "narHash": "sha256-hIshGgKZCgWh6AYJpJmRgFdR3WUbkY04o82X05xqQiY=", + "lastModified": 1749398372, + "narHash": "sha256-tYBdgS56eXYaWVW3fsnPQ/nFlgWi/Z2Ymhyu21zVM98=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "c621e8422220273271f52058f618c94e405bb0f5", + "rev": "9305fe4e5c2a6fcf5ba6a3ff155720fbe4076569", "type": "github" }, "original": { @@ -387,11 +387,11 @@ ] }, "locked": { - "lastModified": 1748391243, - "narHash": "sha256-7sCuihzsTRZemtbTXaFUoGJUfuQErhKEcL9v7HKIo1k=", + "lastModified": 1749526396, + "narHash": "sha256-UL9F76abAk87llXOrcQRjhd5OaOclUd6MIltsqcUZmo=", "owner": "nix-community", "repo": "home-manager", - "rev": "f5b12be834874f7661db4ced969a621ab2d57971", + "rev": "427c96044f11a5da50faf6adaf38c9fa47e6d044", "type": "github" }, "original": { @@ -448,11 +448,11 @@ "rust-overlay": "rust-overlay" }, "locked": { - "lastModified": 1747056319, - "narHash": "sha256-qSKcBaISBozadtPq6BomnD+wIYTZIkiua3UuHLaD52c=", + "lastModified": 1749471908, + "narHash": "sha256-uGfPqd43KTomeIVWUzHu3hGLWFsqYibhWLt2OaRic28=", "owner": "nix-community", "repo": "lanzaboote", - "rev": "2e425f3da6ce7f5b34fa6eaf7a2a7f78dbabcc85", + "rev": "00292388ad3b497763b81568d6ee5e1c4a2bcf85", "type": "github" }, "original": { @@ -464,11 +464,11 @@ "lix": { "flake": false, "locked": { - "lastModified": 1748388700, - "narHash": "sha256-abzcNgnyZTX84EjRu6KAAauDv61OkTRRDc+jB8BxrBE=", + "lastModified": 1749471044, + "narHash": "sha256-a1KdOuDF2NJj+tM/2fufIyW5dDX0cHdmXWjli+0GRh4=", "ref": "refs/heads/main", - "rev": "fda93021ca8bf43de1e43c223b439b41c3990e4c", - "revCount": 17958, + "rev": "d8b1bb58622ee7af6cfa260d32d84859b3dc2ea2", + "revCount": 17998, "type": "git", "url": "https://git@git.lix.systems/lix-project/lix" }, @@ -505,11 +505,11 @@ "mobile-nixos": { "flake": false, "locked": { - "lastModified": 1748200777, - "narHash": "sha256-ELbQ7Apk0QzfhO8WjQIqEBuN2bEnGQHNxeiOSx/mU38=", + "lastModified": 1749499850, + "narHash": "sha256-Fyy9ySTJ7jJ7z2h5+KHJU6OUhPJvy12OlVOichkwmZ0=", "owner": "NixOS", "repo": "mobile-nixos", - "rev": "6e249e58b5d8166738ebcfd401f05f7496049dd3", + "rev": "26faf325d6efb169e2e4a2c435346b46c19d08bc", "type": "github" }, "original": { @@ -569,11 +569,11 @@ }, "nixosHardware": { "locked": { - "lastModified": 1747900541, - "narHash": "sha256-dn64Pg9xLETjblwZs9Euu/SsjW80pd6lr5qSiyLY1pg=", + "lastModified": 1749195551, + "narHash": "sha256-W5GKQHgunda/OP9sbKENBZhMBDNu2QahoIPwnsF6CeM=", "owner": "NixOS", "repo": "nixos-hardware", - "rev": "11f2d9ea49c3e964315215d6baa73a8d42672f06", + "rev": "4602f7e1d3f197b3cb540d5accf5669121629628", "type": "github" }, "original": { @@ -632,11 +632,11 @@ }, "nixpkgs-lib": { "locked": { - "lastModified": 1743296961, - "narHash": "sha256-b1EdN3cULCqtorQ4QeWgLMrd5ZGOjLSLemfa00heasc=", + "lastModified": 1748740939, + "narHash": "sha256-rQaysilft1aVMwF14xIdGS3sj1yHlI6oKQNBRTF40cc=", "owner": "nix-community", "repo": "nixpkgs.lib", - "rev": "e4822aea2a6d1cdd36653c134cacfd64c97ff4fa", + "rev": "656a64127e9d791a334452c6b6606d17539476e2", "type": "github" }, "original": { @@ -647,11 +647,11 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1748037224, - "narHash": "sha256-92vihpZr6dwEMV6g98M5kHZIttrWahb9iRPBm1atcPk=", + "lastModified": 1749173751, + "narHash": "sha256-ENY3y3v6S9ZmLDDLI3LUT8MXmfXg/fSt2eA4GCnMVCE=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "f09dede81861f3a83f7f06641ead34f02f37597f", + "rev": "ed29f002b6d6e5e7e32590deb065c34a31dc3e91", "type": "github" }, "original": { @@ -711,11 +711,11 @@ }, "nixpkgs_4": { "locked": { - "lastModified": 1748190013, - "narHash": "sha256-R5HJFflOfsP5FBtk+zE8FpL8uqE7n62jqOsADvVshhE=", + "lastModified": 1749285348, + "narHash": "sha256-frdhQvPbmDYaScPFiCnfdh3B/Vh81Uuoo0w5TkWmmjU=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "62b852f6c6742134ade1abdd2a21685fd617a291", + "rev": "3e3afe5174c561dee0df6f2c2b2236990146329f", "type": "github" }, "original": { @@ -742,11 +742,11 @@ }, "nixpkgs_6": { "locked": { - "lastModified": 1748190013, - "narHash": "sha256-R5HJFflOfsP5FBtk+zE8FpL8uqE7n62jqOsADvVshhE=", + "lastModified": 1749285348, + "narHash": "sha256-frdhQvPbmDYaScPFiCnfdh3B/Vh81Uuoo0w5TkWmmjU=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "62b852f6c6742134ade1abdd2a21685fd617a291", + "rev": "3e3afe5174c561dee0df6f2c2b2236990146329f", "type": "github" }, "original": { @@ -821,11 +821,11 @@ ] }, "locked": { - "lastModified": 1746537231, - "narHash": "sha256-Wb2xeSyOsCoTCTj7LOoD6cdKLEROyFAArnYoS+noCWo=", + "lastModified": 1747372754, + "narHash": "sha256-2Y53NGIX2vxfie1rOW0Qb86vjRZ7ngizoo+bnXU9D9k=", "owner": "cachix", "repo": "pre-commit-hooks.nix", - "rev": "fa466640195d38ec97cf0493d6d6882bc4d14969", + "rev": "80479b6ec16fefd9c1db3ea13aeb038c60530f46", "type": "github" }, "original": { @@ -906,11 +906,11 @@ ] }, "locked": { - "lastModified": 1747017456, - "narHash": "sha256-C/U12fcO+HEF071b5mK65lt4XtAIZyJSSJAg9hdlvTk=", + "lastModified": 1749436897, + "narHash": "sha256-OkDtaCGQQVwVFz5HWfbmrMJR99sFIMXHCHEYXzUJEJY=", "owner": "oxalica", "repo": "rust-overlay", - "rev": "5b07506ae89b025b14de91f697eba23b48654c52", + "rev": "e7876c387e35dc834838aff254d8e74cf5bd4f19", "type": "github" }, "original": { @@ -1009,11 +1009,11 @@ ] }, "locked": { - "lastModified": 1748243702, - "narHash": "sha256-9YzfeN8CB6SzNPyPm2XjRRqSixDopTapaRsnTpXUEY8=", + "lastModified": 1749194973, + "narHash": "sha256-eEy8cuS0mZ2j/r/FE0/LYBSBcIs/MKOIVakwHVuqTfk=", "owner": "numtide", "repo": "treefmt-nix", - "rev": "1f3f7b784643d488ba4bf315638b2b0a4c5fb007", + "rev": "a05be418a1af1198ca0f63facb13c985db4cb3c5", "type": "github" }, "original": { From f8fc687c1dcda7062c20211d309b6a5c44028aa2 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Tue, 10 Jun 2025 16:19:05 +0200 Subject: [PATCH 492/492] Replace `thefuck` with `pay-respects` --- hmModules/shell/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hmModules/shell/default.nix b/hmModules/shell/default.nix index 6c7e5c1..d33eeda 100644 --- a/hmModules/shell/default.nix +++ b/hmModules/shell/default.nix @@ -81,7 +81,7 @@ }; programs.zoxide.enable = true; - programs.thefuck.enable = true; + programs.pay-respects.enable = true; programs.oh-my-posh = { enable = true; # same as "captuccin_mocha" but without the OS logo

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%0A9y$LiaiUBLPwY?asS{6TJE{GC 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

CDEj`^cX+_1|>C5(-2z$)$Q1tsN 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�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%0Awo^73Uz;~y@C$6EWJZWgzc@;Twv{pOtP!HT&j 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

N~~Qk{1i_?>oq0 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 znH