From 685c571018b0328c49065eaee5aa77bc0931be19 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Sat, 13 May 2023 20:19:26 +0200 Subject: [PATCH 001/245] modules: services: nginx: add 'socket' option --- modules/services/nginx/default.nix | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/modules/services/nginx/default.nix b/modules/services/nginx/default.nix index 944cd18..dcaaa0f 100644 --- a/modules/services/nginx/default.nix +++ b/modules/services/nginx/default.nix @@ -45,6 +45,16 @@ let ''; }; + socket = mkOption { + type = with types; nullOr path; + default = null; + example = "FIXME"; + description = '' + The UNIX socket for this virtual host. This option is incompatible + with `port`. + ''; + }; + sso = { enable = mkEnableOption "SSO authentication"; }; @@ -185,7 +195,7 @@ in assertions = [ ] ++ (lib.flip builtins.map cfg.virtualHosts ({ subdomain, ... } @ args: let - conflicts = [ "port" "root" "redirect" ]; + conflicts = [ "port" "root" "socket" "redirect" ]; optionsNotNull = builtins.map (v: args.${v} != null) conflicts; optionsSet = lib.filter lib.id optionsNotNull; in @@ -260,6 +270,11 @@ in (lib.optionalAttrs (args.root != null) { inherit (args) root; }) + # Serve to UNIX socket + (lib.optionalAttrs (args.socket != null) { + locations."/".proxyPass = + "http://unix:${args.socket}"; + }) # Redirect to a different domain (lib.optionalAttrs (args.redirect != null) { locations."/".return = "301 ${args.redirect}$request_uri"; From 175a8acde2c3cc0e789f71b043c9679c63b5eeda Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Sat, 13 May 2023 20:18:58 +0200 Subject: [PATCH 002/245] modules: services: add vikunja --- modules/services/default.nix | 1 + modules/services/vikunja/default.nix | 123 +++++++++++++++++++++++++++ 2 files changed, 124 insertions(+) create mode 100644 modules/services/vikunja/default.nix diff --git a/modules/services/default.nix b/modules/services/default.nix index 268a3a5..4fcf453 100644 --- a/modules/services/default.nix +++ b/modules/services/default.nix @@ -32,6 +32,7 @@ ./ssh-server ./tlp ./transmission + ./vikunja ./wireguard ./woodpecker ]; diff --git a/modules/services/vikunja/default.nix b/modules/services/vikunja/default.nix new file mode 100644 index 0000000..1cdef5f --- /dev/null +++ b/modules/services/vikunja/default.nix @@ -0,0 +1,123 @@ +# Todo and kanban app +{ config, lib, ... }: +let + cfg = config.my.services.vikunja; + subdomain = "todo"; + vikunjaDomain = "${subdomain}.${config.networking.domain}"; + socketPath = "/run/vikunja/vikunja.socket"; +in +{ + options.my.services.vikunja = with lib; { + enable = mkEnableOption "Vikunja todo app"; + + mail = { + enable = mkEnableOption { + description = "mailer configuration"; + }; + + configFile = mkOption { + type = types.str; + example = "/run/secrets/vikunja-mail-config.env"; + description = "Configuration for the mailer connection, using environment variables."; + }; + }; + }; + + config = lib.mkIf cfg.enable { + services.vikunja = { + enable = true; + + frontendScheme = "https"; + frontendHostname = vikunjaDomain; + + setupNginx = false; + + database = { + type = "postgres"; + user = "vikunja"; + database = "vikunja"; + host = "/run/postgresql"; + }; + + settings = { + service = { + # Only allow registration of users through the CLI + enableregistration = false; + # Ues the host's timezone + timezone = config.time.timeZone; + # Use UNIX socket for serving the API + unixsocket = socketPath; + unixsocketmode = "0o660"; + }; + + mailer = { + enabled = cfg.mail.enable; + }; + }; + + environmentFiles = lib.optional cfg.mail.enable cfg.mail.configFile; + }; + + # This is a weird setup + my.services.nginx.virtualHosts = [ + { + inherit subdomain; + # Serve the root for the web-ui + root = config.services.vikunja.package-frontend; + + extraConfig = { + locations = { + "/" = { + tryFiles = "try_files $uri $uri/ /"; + }; + + # Serve the API through a UNIX socket + "~* ^/(api|dav|\\.well-known)/" = { + proxyPass = "http://unix:${socketPath}"; + extraConfig = '' + client_max_body_size 20M; + ''; + }; + }; + }; + } + ]; + + systemd.services.vikunja-api = { + serviceConfig = { + # Use a system user to simplify using the CLI + DynamicUser = lib.mkForce false; + # Set the user for postgres authentication + User = "vikunja"; + # Create /run/vikunja/ to serve the UNIX socket + RuntimeDirectory = "vikunja"; + }; + }; + + users.users.vikunja = { + description = "Vikunja Service"; + group = "vikunja"; + isSystemUser = true; + }; + users.groups.vikunja = { }; + + # Allow nginx to access the UNIX socket + users.users.nginx.extraGroups = [ "vikunja" ]; + + services.postgresql = { + ensureDatabases = [ "vikunja" ]; + ensureUsers = [ + { + name = "vikunja"; + ensurePermissions = { "DATABASE vikunja" = "ALL PRIVILEGES"; }; + } + ]; + }; + + my.services.backup = { + paths = [ + config.services.vikunja.settings.files.basepath + ]; + }; + }; +} From 30d01972b2ed29586bf8de4630055020daebcd5e Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Sat, 13 May 2023 21:17:13 +0200 Subject: [PATCH 003/245] hosts: nixos: porthos: secrets: add vikunja --- hosts/nixos/porthos/secrets/secrets.nix | 2 ++ hosts/nixos/porthos/secrets/vikunja/mail.age | Bin 0 -> 740 bytes 2 files changed, 2 insertions(+) create mode 100644 hosts/nixos/porthos/secrets/vikunja/mail.age diff --git a/hosts/nixos/porthos/secrets/secrets.nix b/hosts/nixos/porthos/secrets/secrets.nix index 85a3d48..3b88e60 100644 --- a/hosts/nixos/porthos/secrets/secrets.nix +++ b/hosts/nixos/porthos/secrets/secrets.nix @@ -61,6 +61,8 @@ in "transmission/credentials.age".publicKeys = all; + "vikunja/mail.age".publicKeys = all; + "wireguard/private-key.age".publicKeys = all; "woodpecker/gitea.age".publicKeys = all; diff --git a/hosts/nixos/porthos/secrets/vikunja/mail.age b/hosts/nixos/porthos/secrets/vikunja/mail.age new file mode 100644 index 0000000000000000000000000000000000000000..4c83acd8586c808c5938889471406eeb283c550a GIT binary patch literal 740 zcmYdHPt{G$OD?J`D9Oyv)5|YP*Do{V(zR14F3!+RO))YxHMCSn_Ri1BO;<2-N%izj zD>XLr505f*%BgZOicCt*35|44Hi<~7$gK!X@(pk+3&}MLapcOh^saI%Ns0`1^Rp-` z4>xp5HSn=?(>5*6^EC7b(+>1>icBssw6x6j%SX2@DCUYDH<8XL_2pQ?Z+&uTxH8RcWcY2Ul2eVP!>;r@w`BqKRLnqqCo>yGuy8mwsSU zR8fd~xl5j(w^61?Sczv!nrTK!h_<$8B$uwPu7YEfUsiU$VTNN)S)#sEXPq1THT2NJ*ey&q$MQ%!AGS_GI0@g@P^#k5PM*nsyz1y+;V*k&bj+_y3O1*n7 zKCE^z{us4pOa52=)zj87aoTA$g?=o~eRSvOo&L4|_iijTcwOPU%e+-HgyV9^A*YsC z`^-fT{jb=`vVH6G`xk3vE?r+T-(}O1Ul|f^KRl=X^UTR@dsA`m)a;+xzMpE`n{Ihq zyt(pX(_^l!dV7s!ugquk;=O0$xo=yznDmUxFFS4bZ;0ys^zTVKDi~|1ZSE=FU{= U%vr-cciYDIrzg0ax}mTW02ksVE&u=k literal 0 HcmV?d00001 From e68ae266094ce4715c792ae18fa0c8c50b203023 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Sat, 13 May 2023 21:18:11 +0200 Subject: [PATCH 004/245] hosts: nixos: porthos: services: enable vikunja --- hosts/nixos/porthos/services.nix | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/hosts/nixos/porthos/services.nix b/hosts/nixos/porthos/services.nix index e0a1731..3b146fa 100644 --- a/hosts/nixos/porthos/services.nix +++ b/hosts/nixos/porthos/services.nix @@ -141,6 +141,14 @@ in enable = true; credentialsFile = secrets."transmission/credentials".path; }; + # Self-hosted todo app + vikunja = { + enable = true; + mail = { + enable = true; + configFile = secrets."vikunja/mail".path; + }; + }; # Simple, in-kernel VPN wireguard = { enable = true; From c0a80c250358439045c98cfd3cbe7058cbf0e21c Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Wed, 17 May 2023 11:12:18 +0000 Subject: [PATCH 005/245] home: secrets: fix public keys list --- home/secrets/secrets.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/home/secrets/secrets.nix b/home/secrets/secrets.nix index eb9745f..93a5e60 100644 --- a/home/secrets/secrets.nix +++ b/home/secrets/secrets.nix @@ -3,7 +3,7 @@ let keys = import ../../keys; # deadnix: skip - all = keys.users; + all = builtins.attrValues keys.users; in { # Add secrets here From b570cf227c5c30587aedc6226afb61d2f0d0b534 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Wed, 17 May 2023 11:13:26 +0000 Subject: [PATCH 006/245] home: secrets: add github --- home/secrets/github/token.age | Bin 0 -> 369 bytes home/secrets/secrets.nix | 3 +-- 2 files changed, 1 insertion(+), 2 deletions(-) create mode 100644 home/secrets/github/token.age diff --git a/home/secrets/github/token.age b/home/secrets/github/token.age new file mode 100644 index 0000000000000000000000000000000000000000..1d36ccdc3cc89a5b9c5bd9df4e8b62445fe4b3b0 GIT binary patch literal 369 zcmYdHPt{G$OD?J`D9Oyv)5|YP*Do{V(zR14F3!+RO))YxHMCU73dk?dOIOG!EcbRv z%*%Bv&j~h+$TTVUbTg>RG0AiHan1`)jWl#I33EwGDlkc|$mWU+4yp?B$+t|Z$}#gQ zDfKMzbS%yFG_r6qPc*1Xt#mVWa%ZT5eWS zSP*RBtdpvYY^(;l9G|nl@Xqr;}>F<>RwpjAC(#qR1{ForK_u}V4js$lII+r z5|v|UR2-39l3kTskz1_oQ{w5K?G)ngR%zrOl2}q+suutkx`fyO literal 0 HcmV?d00001 diff --git a/home/secrets/secrets.nix b/home/secrets/secrets.nix index 93a5e60..f474342 100644 --- a/home/secrets/secrets.nix +++ b/home/secrets/secrets.nix @@ -2,9 +2,8 @@ let keys = import ../../keys; - # deadnix: skip all = builtins.attrValues keys.users; in { - # Add secrets here + "github/token.age".publicKeys = all; } From b80053d7868f71d7fc28c9aa0ff71ef92a44c4b9 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Wed, 17 May 2023 19:20:08 +0100 Subject: [PATCH 007/245] home: add nixpkgs --- home/default.nix | 1 + home/nixpkgs/default.nix | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+) create mode 100644 home/nixpkgs/default.nix diff --git a/home/default.nix b/home/default.nix index 8af9240..7fbd406 100644 --- a/home/default.nix +++ b/home/default.nix @@ -25,6 +25,7 @@ ./mpv ./nix ./nix-index + ./nixpkgs ./nm-applet ./packages ./pager diff --git a/home/nixpkgs/default.nix b/home/nixpkgs/default.nix new file mode 100644 index 0000000..2b7fca4 --- /dev/null +++ b/home/nixpkgs/default.nix @@ -0,0 +1,19 @@ +{ config, lib, pkgs, ... }: +let + cfg = config.my.home.nixpkgs; +in +{ + options.my.home.nixpkgs = with lib; { + enable = mkEnableOption "nixpkgs configuration"; + }; + + config = lib.mkIf cfg.enable { + home.packages = with pkgs; [ + nixpkgs-review + ]; + + home.sessionVariables = { + GITHUB_TOKEN = ''$(cat "${config.age.secrets."github/token".path}")''; + }; + }; +} From e26672494c6352c3a4a7ae3185b5e7cf90f249b1 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Thu, 25 May 2023 09:31:41 +0000 Subject: [PATCH 008/245] flake: dev-shells: use 'mkShellNoCC' We don't need compilers. --- flake/dev-shells.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flake/dev-shells.nix b/flake/dev-shells.nix index 82d9581..d5f5989 100644 --- a/flake/dev-shells.nix +++ b/flake/dev-shells.nix @@ -2,7 +2,7 @@ { perSystem = { config, pkgs, ... }: { devShells = { - default = pkgs.mkShell { + default = pkgs.mkShellNoCC { name = "NixOS-config"; nativeBuildInputs = with pkgs; [ From 0321889d50687a504b792e0d5b249f660acfe634 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Sat, 27 May 2023 09:24:09 +0100 Subject: [PATCH 009/245] home: wm: i3bar: add 'muon' bluetooth block --- home/wm/i3bar/default.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/home/wm/i3bar/default.nix b/home/wm/i3bar/default.nix index a2c9f3a..b066550 100644 --- a/home/wm/i3bar/default.nix +++ b/home/wm/i3bar/default.nix @@ -43,6 +43,12 @@ in format = " $icon Boson{ $percentage|} "; disconnected_format = ""; }) + (lib.optionalAttrs config.my.home.bluetooth.enable { + block = "bluetooth"; + mac = "38:18:4C:BE:8E:97"; + format = " $icon Muon{ $percentage|} "; + disconnected_format = ""; + }) (lib.optionalAttrs config.my.home.bluetooth.enable { block = "bluetooth"; mac = "94:DB:56:00:EE:93"; From 908c2e39b3cbf934abc27520e1bac878c744bd0d Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Sun, 28 May 2023 14:43:19 +0200 Subject: [PATCH 010/245] flake: bump inputs --- flake.lock | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/flake.lock b/flake.lock index cf667c4..8570510 100644 --- a/flake.lock +++ b/flake.lock @@ -11,11 +11,11 @@ ] }, "locked": { - "lastModified": 1683866323, - "narHash": "sha256-M2bEuh2jr0Ec13GnP5f8unD8q0AcPt2fHSUynOZJ8No=", + "lastModified": 1684153753, + "narHash": "sha256-PVbWt3qrjYAK+T5KplFcO+h7aZWfEj1UtyoKlvcDxh0=", "owner": "ryantm", "repo": "agenix", - "rev": "92197270a1eedd142a4aff853e4cc6d1e838c22f", + "rev": "db5637d10f797bb251b94ef9040b237f4702cde3", "type": "github" }, "original": { @@ -131,11 +131,11 @@ ] }, "locked": { - "lastModified": 1683883222, - "narHash": "sha256-Tow+8GKwNNk2NvXoBwS/VBP8lpOdqIeeJ46ZU2fw5QU=", + "lastModified": 1685189510, + "narHash": "sha256-Hq5WF7zIixojPgvhgcd6MBvywwycVZ9wpK/8ogOyoaA=", "owner": "nix-community", "repo": "home-manager", - "rev": "a835096fd2bcc369f57b76b9b17cc00348f595f5", + "rev": "2d963854ae2499193c0c72fd67435fee34d3e4fd", "type": "github" }, "original": { @@ -147,11 +147,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1683408522, - "narHash": "sha256-9kcPh6Uxo17a3kK3XCHhcWiV1Yu1kYj22RHiymUhMkU=", + "lastModified": 1685168767, + "narHash": "sha256-wQgnxz0PdqbyKKpsWl/RU8T8QhJQcHfeC6lh1xRUTfk=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "897876e4c484f1e8f92009fd11b7d988a121a4e7", + "rev": "e10802309bf9ae351eb27002c85cfdeb1be3b262", "type": "github" }, "original": { @@ -163,11 +163,11 @@ }, "nur": { "locked": { - "lastModified": 1683884754, - "narHash": "sha256-o3JF2SZJIwnz2YXwS0tb+CZqfXTABZDTdCjOG6fahIA=", + "lastModified": 1685267138, + "narHash": "sha256-EEcFwvOxP4eQJ4xiDJSwL7LaHsL43eSHX0naxaXzi5M=", "owner": "nix-community", "repo": "NUR", - "rev": "ee3497fa69c9c48ec7e4c0ffc1610ea543497633", + "rev": "3fc82dd79202d19dd1aeac972a9c66ce2689fc1f", "type": "github" }, "original": { @@ -192,11 +192,11 @@ ] }, "locked": { - "lastModified": 1682596858, - "narHash": "sha256-Hf9XVpqaGqe/4oDGr30W8HlsWvJXtMsEPHDqHZA6dDg=", + "lastModified": 1684842236, + "narHash": "sha256-rYWsIXHvNhVQ15RQlBUv67W3YnM+Pd+DuXGMvCBq2IE=", "owner": "cachix", "repo": "pre-commit-hooks.nix", - "rev": "fb58866e20af98779017134319b5663b8215d912", + "rev": "61e567d6497bc9556f391faebe5e410e6623217f", "type": "github" }, "original": { From 7c4e0e31bc255bebbfd4c1ababc5f9aa32b7b7cd Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Sun, 28 May 2023 14:49:10 +0200 Subject: [PATCH 011/245] hosts: nixos: porthos: boot: remove 'grub.version' --- hosts/nixos/porthos/boot.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/hosts/nixos/porthos/boot.nix b/hosts/nixos/porthos/boot.nix index 3b56eb9..f0cb925 100644 --- a/hosts/nixos/porthos/boot.nix +++ b/hosts/nixos/porthos/boot.nix @@ -6,7 +6,6 @@ # Use the GRUB 2 boot loader. loader.grub = { enable = true; - version = 2; # Define on which hard drive you want to install Grub. device = "/dev/sda"; }; From 5de4ee93d581080fd559be85aab0271d985513c9 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Wed, 31 May 2023 14:00:32 +0000 Subject: [PATCH 012/245] home: vim: use smarter diagnostics float display --- home/vim/after/plugin/mappings/unimpaired.lua | 6 ++- home/vim/lua/ambroisie/lsp.lua | 37 +++++++++++++++++++ 2 files changed, 41 insertions(+), 2 deletions(-) diff --git a/home/vim/after/plugin/mappings/unimpaired.lua b/home/vim/after/plugin/mappings/unimpaired.lua index f39a8c0..f502056 100644 --- a/home/vim/after/plugin/mappings/unimpaired.lua +++ b/home/vim/after/plugin/mappings/unimpaired.lua @@ -1,5 +1,7 @@ local wk = require("which-key") +local lsp = require("ambroisie.lsp") + local keys = { -- Edition and navigation mappins ["["] = { @@ -30,7 +32,7 @@ local keys = { x = "XML encode", y = "C string encode", -- Custom - d = { vim.diagnostic.goto_prev, "Previous diagnostic" }, + d = { lsp.goto_prev_diagnostic, "Previous diagnostic" }, }, ["]"] = { name = "Next", @@ -60,7 +62,7 @@ local keys = { x = "XML decode", y = "C string decode", -- Custom - d = { vim.diagnostic.goto_next, "Next diagnostic" }, + d = { lsp.goto_next_diagnostic, "Next diagnostic" }, }, -- Option mappings diff --git a/home/vim/lua/ambroisie/lsp.lua b/home/vim/lua/ambroisie/lsp.lua index b682d27..05869b7 100644 --- a/home/vim/lua/ambroisie/lsp.lua +++ b/home/vim/lua/ambroisie/lsp.lua @@ -3,6 +3,43 @@ local M = {} -- Simplified LSP formatting configuration local lsp_format = require("lsp-format") +-- Move to the next/previous diagnostic, automatically showing the diagnostics +-- float if necessary. +-- @param forward whether to go forward or backwards +local function goto_diagnostic(forward) + vim.validate({ + forward = { forward, "boolean" }, + }) + + local opts = { + float = false, + } + + -- Only show floating diagnostics if they are otherwise not displayed + local config = vim.diagnostic.config() + if not (config.virtual_text or config.virtual_lines) then + opts.float = true + end + + if forward then + vim.diagnostic.goto_next(opts) + else + vim.diagnostic.goto_prev(opts) + end +end + +-- Move to the next diagnostic, automatically showing the diagnostics float if +-- necessary. +M.goto_next_diagnostic = function() + goto_diagnostic(true) +end + +-- Move to the previous diagnostic, automatically showing the diagnostics float +-- if necessary. +M.goto_prev_diagnostic = function() + goto_diagnostic(false) +end + -- shared LSP configuration callback -- @param client native client configuration -- @param bufnr int? buffer number of the attched client From 39a512bc0a69134fe228a06cbe1060a20e10758c Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Thu, 1 Jun 2023 11:17:34 +0000 Subject: [PATCH 013/245] home: vim: unset 'splitkeep' Turns out I do _not_ like this behaviour when it messes with the cursor position. If they had an option that kept my cursor correctly positioned, and only then tried to move the buffer to keep it steady, I'd try it. This reverts commit 4feee73b8e8d0e62f4a06eb9adc65328c032467c. --- home/vim/init.vim | 2 -- 1 file changed, 2 deletions(-) diff --git a/home/vim/init.vim b/home/vim/init.vim index ad332d2..bd63d25 100644 --- a/home/vim/init.vim +++ b/home/vim/init.vim @@ -48,8 +48,6 @@ set noswapfile """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " Set the minimal amount of lignes under and above the cursor for context set scrolloff=5 -" More stable splits -set splitkeep=screen " Always show status line set laststatus=2 " Enable Doxygen highlighting From 4f6f48385196207491733aa3cd2d3ba0310208e7 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Sat, 3 Jun 2023 13:39:52 +0100 Subject: [PATCH 014/245] modules: programs: steam: simplify wrapper --- modules/programs/steam/default.nix | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/modules/programs/steam/default.nix b/modules/programs/steam/default.nix index f52effe..277e41a 100644 --- a/modules/programs/steam/default.nix +++ b/modules/programs/steam/default.nix @@ -1,6 +1,8 @@ { config, lib, pkgs, ... }: let cfg = config.my.programs.steam; + + steam = pkgs.steam; in { options.my.programs.steam = with lib; { @@ -26,13 +28,13 @@ in (pkgs.writeScriptBin "steam" '' #!/bin/sh mkdir -p "${cfg.dataDir}" - HOME="${cfg.dataDir}" exec ${pkgs.steam}/bin/steam "$@" + HOME="${cfg.dataDir}" exec ${lib.getExe steam} "$@" '') # Same, for GOG and other such games (pkgs.writeScriptBin "steam-run" '' #!/bin/sh mkdir -p "${cfg.dataDir}" - HOME="${cfg.dataDir}" exec ${pkgs.steam-run}/bin/steam-run "$@" + HOME="${cfg.dataDir}" exec ${lib.getExe steam.run} "$@" '') ]; }; From 5d570dbf1ec9da325aac77b193fadb509e392c18 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Sat, 3 Jun 2023 13:39:52 +0100 Subject: [PATCH 015/245] modules: programs: steam: use writeShellScriptBin --- modules/programs/steam/default.nix | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/modules/programs/steam/default.nix b/modules/programs/steam/default.nix index 277e41a..0c7f9da 100644 --- a/modules/programs/steam/default.nix +++ b/modules/programs/steam/default.nix @@ -25,14 +25,12 @@ in environment.systemPackages = builtins.map lib.hiPrio [ # Respect XDG conventions, leave my HOME alone - (pkgs.writeScriptBin "steam" '' - #!/bin/sh + (pkgs.writeShellScriptBin "steam" '' mkdir -p "${cfg.dataDir}" HOME="${cfg.dataDir}" exec ${lib.getExe steam} "$@" '') # Same, for GOG and other such games - (pkgs.writeScriptBin "steam-run" '' - #!/bin/sh + (pkgs.writeShellScriptBin "steam-run" '' mkdir -p "${cfg.dataDir}" HOME="${cfg.dataDir}" exec ${lib.getExe steam.run} "$@" '') From d69dbf8d627156497d81d3d9e0e33e58f9dde276 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Tue, 6 Jun 2023 20:01:07 +0100 Subject: [PATCH 016/245] home: wm: i3bar: fix 'net' block on non-wireless --- home/wm/i3bar/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/home/wm/i3bar/default.nix b/home/wm/i3bar/default.nix index b066550..929cc27 100644 --- a/home/wm/i3bar/default.nix +++ b/home/wm/i3bar/default.nix @@ -69,7 +69,7 @@ in } { block = "net"; - format = " $icon $ssid $ip $signal_strength "; + format = " $icon{| $ssid|} $ip{| $signal_strength|} "; } { block = "backlight"; From c0995929c434e27c1981403ec7c402533a5a7904 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Thu, 8 Jun 2023 11:25:05 +0000 Subject: [PATCH 017/245] modules: system: podman: add weekly purge --- modules/system/podman/default.nix | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/modules/system/podman/default.nix b/modules/system/podman/default.nix index dd1b617..6e4abb7 100644 --- a/modules/system/podman/default.nix +++ b/modules/system/podman/default.nix @@ -20,6 +20,17 @@ in # Allow DNS resolution in the default network defaultNetwork.dnsname.enable = true; + + # Remove unused data on a weekly basis + autoPrune = { + enable = true; + + dates = "weekly"; + + flags = [ + "--all" + ]; + }; }; }; } From 18c9458cfa99fefb1e4382107ee4d98a9223d832 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Thu, 8 Jun 2023 11:53:17 +0000 Subject: [PATCH 018/245] modules: system: users: add 'docker' group --- modules/system/users/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/system/users/default.nix b/modules/system/users/default.nix index 3fa5b2e..27557bd 100644 --- a/modules/system/users/default.nix +++ b/modules/system/users/default.nix @@ -27,6 +27,7 @@ in shell = pkgs.zsh; extraGroups = groupsIfExist [ "audio" # sound control + "docker" # usage of `docker` socket "media" # access to media files "networkmanager" # wireless configuration "plugdev" # usage of ZSA keyboard tools From 5aa136f796a7293208345b2c4420227ad2803079 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Thu, 8 Jun 2023 11:58:47 +0000 Subject: [PATCH 019/245] modules: system: podman: fix removed option --- modules/system/podman/default.nix | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/modules/system/podman/default.nix b/modules/system/podman/default.nix index 6e4abb7..765ed3d 100644 --- a/modules/system/podman/default.nix +++ b/modules/system/podman/default.nix @@ -19,7 +19,9 @@ in dockerSocket.enable = true; # Allow DNS resolution in the default network - defaultNetwork.dnsname.enable = true; + defaultNetwork.settings = { + dns_enabled = true; + }; # Remove unused data on a weekly basis autoPrune = { From 1807b8b88c2812a8a9957d6251400d94a6d8a562 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Sat, 10 Jun 2023 13:35:02 +0100 Subject: [PATCH 020/245] hosts: nixos: porthos: services: disable vikunja I don't use it. --- hosts/nixos/porthos/services.nix | 8 -------- 1 file changed, 8 deletions(-) diff --git a/hosts/nixos/porthos/services.nix b/hosts/nixos/porthos/services.nix index 3b146fa..e0a1731 100644 --- a/hosts/nixos/porthos/services.nix +++ b/hosts/nixos/porthos/services.nix @@ -141,14 +141,6 @@ in enable = true; credentialsFile = secrets."transmission/credentials".path; }; - # Self-hosted todo app - vikunja = { - enable = true; - mail = { - enable = true; - configFile = secrets."vikunja/mail".path; - }; - }; # Simple, in-kernel VPN wireguard = { enable = true; From a846d19b1aa4057953ae843cd94f8d7c4bac1468 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Sat, 10 Jun 2023 20:47:20 +0100 Subject: [PATCH 021/245] flake: bump inputs --- flake.lock | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/flake.lock b/flake.lock index 8570510..79dd32a 100644 --- a/flake.lock +++ b/flake.lock @@ -70,11 +70,11 @@ ] }, "locked": { - "lastModified": 1683560683, - "narHash": "sha256-XAygPMN5Xnk/W2c1aW0jyEa6lfMDZWlQgiNtmHXytPc=", + "lastModified": 1685662779, + "narHash": "sha256-cKDDciXGpMEjP1n6HlzKinN0H+oLmNpgeCTzYnsA2po=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "006c75898cf814ef9497252b022e91c946ba8e17", + "rev": "71fb97f0d875fd4de4994dfb849f2c75e17eb6c3", "type": "github" }, "original": { @@ -89,11 +89,11 @@ "systems": "systems" }, "locked": { - "lastModified": 1681202837, - "narHash": "sha256-H+Rh19JDwRtpVPAWp64F+rlEtxUWBAQW28eAi3SRSzg=", + "lastModified": 1685518550, + "narHash": "sha256-o2d0KcvaXzTrPRIo0kOLV0/QXHhDQ5DTi+OxcjO8xqY=", "owner": "numtide", "repo": "flake-utils", - "rev": "cfacdce06f30d2b68473a46042957675eebb3401", + "rev": "a1720a10a6cfe8234c0e93907ffe81be440f4cef", "type": "github" }, "original": { @@ -131,11 +131,11 @@ ] }, "locked": { - "lastModified": 1685189510, - "narHash": "sha256-Hq5WF7zIixojPgvhgcd6MBvywwycVZ9wpK/8ogOyoaA=", + "lastModified": 1686391840, + "narHash": "sha256-5S0APl6Mfm6a37taHwvuf11UHnAX0+PnoWQbsYbMUnc=", "owner": "nix-community", "repo": "home-manager", - "rev": "2d963854ae2499193c0c72fd67435fee34d3e4fd", + "rev": "0144ac418ef633bfc9dbd89b8c199ad3a617c59f", "type": "github" }, "original": { @@ -147,11 +147,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1685168767, - "narHash": "sha256-wQgnxz0PdqbyKKpsWl/RU8T8QhJQcHfeC6lh1xRUTfk=", + "lastModified": 1686319658, + "narHash": "sha256-tGWdoUAqKnE866mYFlEfc2a99kxFy31hOQJH5YQKrTQ=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "e10802309bf9ae351eb27002c85cfdeb1be3b262", + "rev": "ae766d59b07c450e0f1de8a1bfd6529089f40849", "type": "github" }, "original": { @@ -163,11 +163,11 @@ }, "nur": { "locked": { - "lastModified": 1685267138, - "narHash": "sha256-EEcFwvOxP4eQJ4xiDJSwL7LaHsL43eSHX0naxaXzi5M=", + "lastModified": 1686425941, + "narHash": "sha256-9Lip/8IvSxMB6KlvVLTHKx2C4TNm1gUzR8U/CsLjwzA=", "owner": "nix-community", "repo": "NUR", - "rev": "3fc82dd79202d19dd1aeac972a9c66ce2689fc1f", + "rev": "012d2d97f09d2eaa36fb8d83947b2dd9c61cf470", "type": "github" }, "original": { @@ -192,11 +192,11 @@ ] }, "locked": { - "lastModified": 1684842236, - "narHash": "sha256-rYWsIXHvNhVQ15RQlBUv67W3YnM+Pd+DuXGMvCBq2IE=", + "lastModified": 1686213770, + "narHash": "sha256-Re6xXLEqQ/HRnThryumyGzEf3Uv0Pl4cuG50MrDofP8=", "owner": "cachix", "repo": "pre-commit-hooks.nix", - "rev": "61e567d6497bc9556f391faebe5e410e6623217f", + "rev": "182af51202998af5b64ddecaa7ff9be06425399b", "type": "github" }, "original": { From e5c27d7aa8f2c97bfd2f425b44af5f37fe4d435e Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Sat, 10 Jun 2023 22:57:05 +0100 Subject: [PATCH 022/245] home: firefox: fix settings sort --- home/firefox/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/home/firefox/default.nix b/home/firefox/default.nix index 61c8d64..7374b63 100644 --- a/home/firefox/default.nix +++ b/home/firefox/default.nix @@ -57,8 +57,8 @@ in "browser.newtabpage.activity-stream.section.highlights.includePocket" = false; # Disable pocket "extensions.pocket.enabled" = false; # Disable pocket "media.eme.enabled" = true; # Enable DRM - "media.gmp-widevinecdm.visible" = true; # Enable DRM "media.gmp-widevinecdm.enabled" = true; # Enable DRM + "media.gmp-widevinecdm.visible" = true; # Enable DRM "signon.autofillForms" = false; # Disable built-in form-filling "signon.rememberSignons" = false; # Disable built-in password manager "ui.systemUsesDarkTheme" = true; # Dark mode From 8fcb7f42a6e90538b412841a212ef283e299d33e Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Sun, 11 Jun 2023 16:13:42 +0100 Subject: [PATCH 023/245] home: wm: i3: assert name of 'i3status-rs' bar --- home/wm/i3/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/home/wm/i3/default.nix b/home/wm/i3/default.nix index b5316f3..c7a728a 100644 --- a/home/wm/i3/default.nix +++ b/home/wm/i3/default.nix @@ -75,6 +75,7 @@ in let i3status-rs = lib.getExe config.programs.i3status-rust.package; in + assert [ "top" ] == lib.attrNames config.programs.i3status-rust.bars; [ { statusCommand = "${i3status-rs} config-top.toml"; From 73fdd4622beabd7a5b807fb2cfd4e5fd422dfb4e Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Sun, 11 Jun 2023 16:17:42 +0100 Subject: [PATCH 024/245] modules: system: add docker --- modules/system/default.nix | 1 + modules/system/docker/default.nix | 27 +++++++++++++++++++++++++++ 2 files changed, 28 insertions(+) create mode 100644 modules/system/docker/default.nix diff --git a/modules/system/default.nix b/modules/system/default.nix index 3c81cac..9fe3b57 100644 --- a/modules/system/default.nix +++ b/modules/system/default.nix @@ -4,6 +4,7 @@ { imports = [ ./boot + ./docker ./documentation ./language ./nix diff --git a/modules/system/docker/default.nix b/modules/system/docker/default.nix new file mode 100644 index 0000000..f051814 --- /dev/null +++ b/modules/system/docker/default.nix @@ -0,0 +1,27 @@ +# Podman related settings +{ config, lib, ... }: +let + cfg = config.my.system.docker; +in +{ + options.my.system.docker = with lib; { + enable = mkEnableOption "docker configuration"; + }; + + config = lib.mkIf cfg.enable { + virtualisation.docker = { + enable = true; + + # Remove unused data on a weekly basis + autoPrune = { + enable = true; + + dates = "weekly"; + + flags = [ + "--all" + ]; + }; + }; + }; +} From df9b060947af50f182643b38429c9bc2148452fa Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Sun, 11 Jun 2023 16:23:31 +0100 Subject: [PATCH 025/245] modules: system: podman: check for docker conflict --- modules/system/podman/default.nix | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/modules/system/podman/default.nix b/modules/system/podman/default.nix index 765ed3d..52630c7 100644 --- a/modules/system/podman/default.nix +++ b/modules/system/podman/default.nix @@ -9,6 +9,16 @@ in }; config = lib.mkIf cfg.enable { + assertions = [ + { + assertion = cfg.enable -> !config.my.system.docker.enable; + message = '' + `config.my.system.podman` is incompatible with + `config.my.system.docker`. + ''; + } + ]; + virtualisation.podman = { enable = true; From e44dd4c6ea24b99657d42623473fc468833bc565 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Sun, 11 Jun 2023 16:25:07 +0100 Subject: [PATCH 026/245] modules: services: drone: use docker module --- modules/services/drone/runner-docker/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/services/drone/runner-docker/default.nix b/modules/services/drone/runner-docker/default.nix index 0f2e3b3..6ccb5fe 100644 --- a/modules/services/drone/runner-docker/default.nix +++ b/modules/services/drone/runner-docker/default.nix @@ -32,7 +32,7 @@ in }; # Make sure it is activated in that case - virtualisation.docker.enable = true; + my.system.docker.enable = true; users.users.drone-runner-docker = { isSystemUser = true; From 2f03d92dd9bd53431067402eb031b39ca632f109 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Sun, 11 Jun 2023 16:25:19 +0100 Subject: [PATCH 027/245] modules: services: woodpecker: use docker module --- modules/services/woodpecker/agent-docker/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/services/woodpecker/agent-docker/default.nix b/modules/services/woodpecker/agent-docker/default.nix index 8b5307c..2d431bc 100644 --- a/modules/services/woodpecker/agent-docker/default.nix +++ b/modules/services/woodpecker/agent-docker/default.nix @@ -27,7 +27,7 @@ in }; # Make sure it is activated in that case - virtualisation.docker.enable = true; + my.system.docker.enable = true; # FIXME: figure out the issue services.unbound.resolveLocalQueries = false; From cecb7d9bb4069fcce3d5c54e9c8e9d655ad78c39 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Thu, 22 Jun 2023 15:35:30 +0000 Subject: [PATCH 028/245] home: vim: lspconfig: configure diagnostics once There's no need to configure it on each LSP attach, this is wasted work and could change options that have since been changed. --- home/vim/lua/ambroisie/lsp.lua | 16 ---------------- home/vim/plugin/settings/lspconfig.lua | 16 ++++++++++++++++ 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/home/vim/lua/ambroisie/lsp.lua b/home/vim/lua/ambroisie/lsp.lua index 05869b7..7ef6e26 100644 --- a/home/vim/lua/ambroisie/lsp.lua +++ b/home/vim/lua/ambroisie/lsp.lua @@ -44,22 +44,6 @@ end -- @param client native client configuration -- @param bufnr int? buffer number of the attched client M.on_attach = function(client, bufnr) - -- Diagnostics - vim.diagnostic.config({ - -- Disable virtual test next to affected regions - virtual_text = false, - -- Also disable virtual diagnostics under the affected regions - virtual_lines = false, - -- Show diagnostics signs - signs = true, - -- Underline offending regions - underline = true, - -- Do not bother me in the middle of insertion - update_in_insert = false, - -- Show highest severity first - severity_sort = true, - }) - -- Format on save lsp_format.on_attach(client, bufnr) diff --git a/home/vim/plugin/settings/lspconfig.lua b/home/vim/plugin/settings/lspconfig.lua index 45be269..794a765 100644 --- a/home/vim/plugin/settings/lspconfig.lua +++ b/home/vim/plugin/settings/lspconfig.lua @@ -2,6 +2,22 @@ local lspconfig = require("lspconfig") local lsp = require("ambroisie.lsp") local utils = require("ambroisie.utils") +-- Diagnostics +vim.diagnostic.config({ + -- Disable virtual test next to affected regions + virtual_text = false, + -- Also disable virtual diagnostics under the affected regions + virtual_lines = false, + -- Show diagnostics signs + signs = true, + -- Underline offending regions + underline = true, + -- Do not bother me in the middle of insertion + update_in_insert = false, + -- Show highest severity first + severity_sort = true, +}) + -- Inform servers we are able to do completion, snippets, etc... local capabilities = require("cmp_nvim_lsp").default_capabilities() From 0bc31619c87d920527ddb8fc17adb7cbfe5c38b3 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Fri, 23 Jun 2023 09:10:24 +0000 Subject: [PATCH 029/245] flake: bump inputs --- flake.lock | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/flake.lock b/flake.lock index 79dd32a..6ccbfaf 100644 --- a/flake.lock +++ b/flake.lock @@ -89,11 +89,11 @@ "systems": "systems" }, "locked": { - "lastModified": 1685518550, - "narHash": "sha256-o2d0KcvaXzTrPRIo0kOLV0/QXHhDQ5DTi+OxcjO8xqY=", + "lastModified": 1687171271, + "narHash": "sha256-BJlq+ozK2B1sJDQXS3tzJM5a+oVZmi1q0FlBK/Xqv7M=", "owner": "numtide", "repo": "flake-utils", - "rev": "a1720a10a6cfe8234c0e93907ffe81be440f4cef", + "rev": "abfb11bd1aec8ced1c9bb9adfe68018230f4fb3c", "type": "github" }, "original": { @@ -131,11 +131,11 @@ ] }, "locked": { - "lastModified": 1686391840, - "narHash": "sha256-5S0APl6Mfm6a37taHwvuf11UHnAX0+PnoWQbsYbMUnc=", + "lastModified": 1687506590, + "narHash": "sha256-CSou9mrG9h/WVRjCptfTrATVxvhmtdQXElmWV/ZkrAs=", "owner": "nix-community", "repo": "home-manager", - "rev": "0144ac418ef633bfc9dbd89b8c199ad3a617c59f", + "rev": "d2b6f2d154bf6b27a93ed895392f80c503df7cfa", "type": "github" }, "original": { @@ -147,11 +147,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1686319658, - "narHash": "sha256-tGWdoUAqKnE866mYFlEfc2a99kxFy31hOQJH5YQKrTQ=", + "lastModified": 1687412861, + "narHash": "sha256-Z/g0wbL68C+mSGerYS2quv9FXQ1RRP082cAC0Bh4vcs=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "ae766d59b07c450e0f1de8a1bfd6529089f40849", + "rev": "e603dc5f061ca1d8a19b3ede6a8cf9c9fcba6cdc", "type": "github" }, "original": { @@ -163,11 +163,11 @@ }, "nur": { "locked": { - "lastModified": 1686425941, - "narHash": "sha256-9Lip/8IvSxMB6KlvVLTHKx2C4TNm1gUzR8U/CsLjwzA=", + "lastModified": 1687497781, + "narHash": "sha256-iySsVFg90kwpIs5E4u71cEVkZZRPRsqYvDmZjPtbgvc=", "owner": "nix-community", "repo": "NUR", - "rev": "012d2d97f09d2eaa36fb8d83947b2dd9c61cf470", + "rev": "299f27861e05df6637aa586ab8eaf7c8f33db863", "type": "github" }, "original": { @@ -192,11 +192,11 @@ ] }, "locked": { - "lastModified": 1686213770, - "narHash": "sha256-Re6xXLEqQ/HRnThryumyGzEf3Uv0Pl4cuG50MrDofP8=", + "lastModified": 1687251716, + "narHash": "sha256-+sFS41thsB5U+lY/dBYPSmU4AJ7nz/VdM1WD35fXVeM=", "owner": "cachix", "repo": "pre-commit-hooks.nix", - "rev": "182af51202998af5b64ddecaa7ff9be06425399b", + "rev": "7807e1851d95828ed98491930d2d9e7ddbe65da4", "type": "github" }, "original": { From b6ccc7a18def81da9bbc40e41bc90b283381fe25 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Fri, 23 Jun 2023 09:11:15 +0000 Subject: [PATCH 030/245] overlays: remove 'nix-serve-ng-initLibStore' --- overlays/default.nix | 2 +- overlays/nix-serve-ng-initLibStore/default.nix | 11 ----------- 2 files changed, 1 insertion(+), 12 deletions(-) delete mode 100644 overlays/nix-serve-ng-initLibStore/default.nix diff --git a/overlays/default.nix b/overlays/default.nix index d24e60f..e504b17 100644 --- a/overlays/default.nix +++ b/overlays/default.nix @@ -1,3 +1,3 @@ { - nix-serve-ng-initLibStore = import ./nix-serve-ng-initLibStore; + # No overlays } diff --git a/overlays/nix-serve-ng-initLibStore/default.nix b/overlays/nix-serve-ng-initLibStore/default.nix deleted file mode 100644 index b528dc7..0000000 --- a/overlays/nix-serve-ng-initLibStore/default.nix +++ /dev/null @@ -1,11 +0,0 @@ -final: prev: -{ - nix-serve-ng = prev.nix-serve-ng.overrideAttrs (_: { - src = final.fetchFromGitHub { - owner = "aristanetworks"; - repo = "nix-serve-ng"; - rev = "dabf46d65d8e3be80fa2eacd229eb3e621add4bd"; - hash = "sha256-SoJJ3rMtDMfUzBSzuGMY538HDIj/s8bPf8CjIkpqY2w="; - }; - }); -} From 3e5fbfeb7ad7e50d596c77dd809124f9e87e8696 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Fri, 23 Jun 2023 12:02:57 +0200 Subject: [PATCH 031/245] modules: services: nextcloud: bump to 27 --- modules/services/nextcloud/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/services/nextcloud/default.nix b/modules/services/nextcloud/default.nix index cffa58d..9fb0cd8 100644 --- a/modules/services/nextcloud/default.nix +++ b/modules/services/nextcloud/default.nix @@ -31,7 +31,7 @@ in config = lib.mkIf cfg.enable { services.nextcloud = { enable = true; - package = pkgs.nextcloud26; + package = pkgs.nextcloud27; hostName = "nextcloud.${config.networking.domain}"; home = "/var/lib/nextcloud"; maxUploadSize = cfg.maxSize; From 89168324e72893cb237f0c04f681632a9884a25d Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Sat, 24 Jun 2023 16:26:53 +0100 Subject: [PATCH 032/245] overlays: add 'calibre-dedrm' --- overlays/calibre-dedrm/default.nix | 7 +++++++ overlays/default.nix | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) create mode 100644 overlays/calibre-dedrm/default.nix diff --git a/overlays/calibre-dedrm/default.nix b/overlays/calibre-dedrm/default.nix new file mode 100644 index 0000000..17ccda5 --- /dev/null +++ b/overlays/calibre-dedrm/default.nix @@ -0,0 +1,7 @@ +self: super: { + calibre-dedrm = + super.calibre.overrideAttrs (oa: { + # We want to have pycryptodome around in order to support DeDRM + nativeBuildInputs = oa.nativeBuildInputs ++ [ self.python3Packages.pycryptodome ]; + }); +} diff --git a/overlays/default.nix b/overlays/default.nix index e504b17..14c2ef2 100644 --- a/overlays/default.nix +++ b/overlays/default.nix @@ -1,3 +1,3 @@ { - # No overlays + calibre-dedrm = import ./calibre-dedrm; } From ac725bd5e43e63681bb8d32f357316a3b25f8e61 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Sat, 24 Jun 2023 16:30:06 +0100 Subject: [PATCH 033/245] home: add calibre Ideally I will extend this module to handle the plugin (and dependencies) natively. --- home/calibre/default.nix | 15 +++++++++++++++ home/default.nix | 1 + 2 files changed, 16 insertions(+) create mode 100644 home/calibre/default.nix diff --git a/home/calibre/default.nix b/home/calibre/default.nix new file mode 100644 index 0000000..e0f2069 --- /dev/null +++ b/home/calibre/default.nix @@ -0,0 +1,15 @@ +{ config, lib, pkgs, ... }: +let + cfg = config.my.home.calibre; +in +{ + options.my.home.calibre = with lib; { + enable = mkEnableOption "calibre configuration"; + }; + + config = lib.mkIf cfg.enable { + home.packages = with pkgs; [ + calibre # NOTE: relies on my overlay to add necessary plug-in dependencies + ]; + }; +} diff --git a/home/default.nix b/home/default.nix index 7fbd406..6b6ad36 100644 --- a/home/default.nix +++ b/home/default.nix @@ -5,6 +5,7 @@ ./atuin ./bat ./bluetooth + ./calibre ./comma ./dircolors ./direnv From 950940e3c7f06cb9b8345e3fb5c48543ef32b8e5 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Sat, 24 Jun 2023 16:31:09 +0100 Subject: [PATCH 034/245] hosts: nixos: aramis: home: enable calibre --- hosts/nixos/aramis/home.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/hosts/nixos/aramis/home.nix b/hosts/nixos/aramis/home.nix index cdacf04..6d4fefe 100644 --- a/hosts/nixos/aramis/home.nix +++ b/hosts/nixos/aramis/home.nix @@ -1,6 +1,8 @@ { pkgs, ... }: { my.home = { + # Ebook library + calibre.enable = true; # Some amount of social life discord.enable = true; # Image viewver From b8f8c7cfa7c3d1b4b2a14725e3d2acd76042e9ad Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Tue, 27 Jun 2023 20:14:23 +0100 Subject: [PATCH 035/245] home: wm: i3bar: fix 'battery' block on empty --- home/wm/i3bar/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/home/wm/i3bar/default.nix b/home/wm/i3bar/default.nix index 929cc27..38a78b9 100644 --- a/home/wm/i3bar/default.nix +++ b/home/wm/i3bar/default.nix @@ -78,6 +78,7 @@ in { block = "battery"; format = " $icon $percentage{ ($time)|} "; + empty_format = " $icon $percentage{ ($time)|} "; not_charging_format = " $icon $percentage "; full_format = " $icon $percentage "; } From cbbe371aceaf4c778c34a86a090cd99465aeeb1c Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Wed, 28 Jun 2023 21:41:52 +0100 Subject: [PATCH 036/245] hosts: nixos: aramis: home: remove 'quasselclient' --- hosts/nixos/aramis/home.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/hosts/nixos/aramis/home.nix b/hosts/nixos/aramis/home.nix index 6d4fefe..6d66384 100644 --- a/hosts/nixos/aramis/home.nix +++ b/hosts/nixos/aramis/home.nix @@ -18,7 +18,6 @@ element-desktop # Matrix client jellyfin-media-player # Wraps the webui and mpv together pavucontrol # Audio mixer GUI - quasselClient # IRC client transgui # Transmission remote ]; # Minimal video player From f73be2fc4e3db13b9d4929d43dc331c2be691798 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Fri, 30 Jun 2023 22:44:04 +0200 Subject: [PATCH 037/245] flake: bump inputs --- flake.lock | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/flake.lock b/flake.lock index 6ccbfaf..6da0c3e 100644 --- a/flake.lock +++ b/flake.lock @@ -70,11 +70,11 @@ ] }, "locked": { - "lastModified": 1685662779, - "narHash": "sha256-cKDDciXGpMEjP1n6HlzKinN0H+oLmNpgeCTzYnsA2po=", + "lastModified": 1687762428, + "narHash": "sha256-DIf7mi45PKo+s8dOYF+UlXHzE0Wl/+k3tXUyAoAnoGE=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "71fb97f0d875fd4de4994dfb849f2c75e17eb6c3", + "rev": "37dd7bb15791c86d55c5121740a1887ab55ee836", "type": "github" }, "original": { @@ -89,11 +89,11 @@ "systems": "systems" }, "locked": { - "lastModified": 1687171271, - "narHash": "sha256-BJlq+ozK2B1sJDQXS3tzJM5a+oVZmi1q0FlBK/Xqv7M=", + "lastModified": 1687709756, + "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", "owner": "numtide", "repo": "flake-utils", - "rev": "abfb11bd1aec8ced1c9bb9adfe68018230f4fb3c", + "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", "type": "github" }, "original": { @@ -131,11 +131,11 @@ ] }, "locked": { - "lastModified": 1687506590, - "narHash": "sha256-CSou9mrG9h/WVRjCptfTrATVxvhmtdQXElmWV/ZkrAs=", + "lastModified": 1687969886, + "narHash": "sha256-tC2qFLmuM0PFaw0tMHVcFmzsG/351q09qa1EpuL2n1U=", "owner": "nix-community", "repo": "home-manager", - "rev": "d2b6f2d154bf6b27a93ed895392f80c503df7cfa", + "rev": "a7002d6bfca54742d5fc9b485a1879953b4585b9", "type": "github" }, "original": { @@ -147,11 +147,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1687412861, - "narHash": "sha256-Z/g0wbL68C+mSGerYS2quv9FXQ1RRP082cAC0Bh4vcs=", + "lastModified": 1688049487, + "narHash": "sha256-100g4iaKC9MalDjUW9iN6Jl/OocTDtXdeAj7pEGIRh4=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "e603dc5f061ca1d8a19b3ede6a8cf9c9fcba6cdc", + "rev": "4bc72cae107788bf3f24f30db2e2f685c9298dc9", "type": "github" }, "original": { @@ -163,11 +163,11 @@ }, "nur": { "locked": { - "lastModified": 1687497781, - "narHash": "sha256-iySsVFg90kwpIs5E4u71cEVkZZRPRsqYvDmZjPtbgvc=", + "lastModified": 1688149889, + "narHash": "sha256-lHAwpd4ij6GUtu1ww9M9P81HnV/1mdsQXwEAoLQPZso=", "owner": "nix-community", "repo": "NUR", - "rev": "299f27861e05df6637aa586ab8eaf7c8f33db863", + "rev": "4cd52203c52face9ee649200a0d666c51e012dfa", "type": "github" }, "original": { @@ -192,11 +192,11 @@ ] }, "locked": { - "lastModified": 1687251716, - "narHash": "sha256-+sFS41thsB5U+lY/dBYPSmU4AJ7nz/VdM1WD35fXVeM=", + "lastModified": 1688137124, + "narHash": "sha256-ramG4s/+A5+t/QG2MplTNPP/lmBWDtbW6ilpwb9sKVo=", "owner": "cachix", "repo": "pre-commit-hooks.nix", - "rev": "7807e1851d95828ed98491930d2d9e7ddbe65da4", + "rev": "522fd47af79b66cdd04b92618e65c7a11504650a", "type": "github" }, "original": { From 737e9df202d085b439974ef82250c496f4de8655 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Tue, 4 Jul 2023 14:58:03 +0000 Subject: [PATCH 038/245] home: tmux: make status left longer --- home/tmux/default.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/home/tmux/default.nix b/home/tmux/default.nix index 8e673b1..70f037f 100644 --- a/home/tmux/default.nix +++ b/home/tmux/default.nix @@ -66,6 +66,9 @@ in # Allow any application to send OSC52 escapes to set the clipboard set -s set-clipboard on + # Longer session names in status bar + set -g status-left-length 16 + ${ lib.optionalString cfg.enabledPassthrough '' # Allow any application to use the tmux DCS for passthrough From 6100a092af2f21270a3d689d771f9a3857b04ca6 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Tue, 4 Jul 2023 15:40:39 +0000 Subject: [PATCH 039/245] hosts: homes: cloudtop: disable 'git' package A recent update modified `ssh_config`, and nixpkgs' version of OpenSSH does not know how to deal with those options. The `git` package does not make use of the system-provided SSH client, and errors-out. Given that those patches are never going to be upstreamed, just override the `git` package, and use the system-provided one instead... --- hosts/homes/ambroisie@ambroisie/default.nix | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/hosts/homes/ambroisie@ambroisie/default.nix b/hosts/homes/ambroisie@ambroisie/default.nix index 5a561f7..94efc09 100644 --- a/hosts/homes/ambroisie@ambroisie/default.nix +++ b/hosts/homes/ambroisie@ambroisie/default.nix @@ -1,5 +1,5 @@ # Google Cloudtop configuration -{ ... }: +{ lib, pkgs, ... }: { # Google specific configuration home.homeDirectory = "/usr/local/google/home/ambroisie"; @@ -12,4 +12,6 @@ systemd.user.sessionVariables = { LD_PRELOAD = "/lib/x86_64-linux-gnu/libnss_cache.so.2\${LD_PRELOAD:+:}$LD_PRELOAD"; }; + + programs.git.package = lib.mkForce pkgs.emptyDirectory; } From 758e88e620e5acedbb7a542991f1da856fd4a8bc Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Wed, 5 Jul 2023 20:14:27 +0100 Subject: [PATCH 040/245] overlays: remove 'calibre-dedrm' Turns out I didn't need it. This reverts commit 89168324e72893cb237f0c04f681632a9884a25d. --- overlays/calibre-dedrm/default.nix | 7 ------- overlays/default.nix | 2 +- 2 files changed, 1 insertion(+), 8 deletions(-) delete mode 100644 overlays/calibre-dedrm/default.nix diff --git a/overlays/calibre-dedrm/default.nix b/overlays/calibre-dedrm/default.nix deleted file mode 100644 index 17ccda5..0000000 --- a/overlays/calibre-dedrm/default.nix +++ /dev/null @@ -1,7 +0,0 @@ -self: super: { - calibre-dedrm = - super.calibre.overrideAttrs (oa: { - # We want to have pycryptodome around in order to support DeDRM - nativeBuildInputs = oa.nativeBuildInputs ++ [ self.python3Packages.pycryptodome ]; - }); -} diff --git a/overlays/default.nix b/overlays/default.nix index 14c2ef2..e504b17 100644 --- a/overlays/default.nix +++ b/overlays/default.nix @@ -1,3 +1,3 @@ { - calibre-dedrm = import ./calibre-dedrm; + # No overlays } From c037d3844a6d1f0da5d83b9b3cabfbdf9b501566 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Sat, 15 Jul 2023 14:01:14 +0100 Subject: [PATCH 041/245] modules: services: nextcloud: configure redis I keep having some file-locking issues, and heard that using redis might help alleviate those errant locks. It's also necessary to use the `notify_push` app. --- modules/services/nextcloud/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/services/nextcloud/default.nix b/modules/services/nextcloud/default.nix index 9fb0cd8..ae4bf14 100644 --- a/modules/services/nextcloud/default.nix +++ b/modules/services/nextcloud/default.nix @@ -36,6 +36,7 @@ in home = "/var/lib/nextcloud"; maxUploadSize = cfg.maxSize; enableBrokenCiphersForSSE = false; + configureRedis = true; config = { adminuser = cfg.admin; adminpassFile = cfg.passwordFile; From 5741421604ba77208924490c67f896914638ba12 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Sat, 15 Jul 2023 15:45:42 +0200 Subject: [PATCH 042/245] modules: services: nextcloud: enable 'notify_push' --- modules/services/nextcloud/default.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/modules/services/nextcloud/default.nix b/modules/services/nextcloud/default.nix index ae4bf14..1477c13 100644 --- a/modules/services/nextcloud/default.nix +++ b/modules/services/nextcloud/default.nix @@ -44,6 +44,12 @@ in dbhost = "/run/postgresql"; overwriteProtocol = "https"; # Nginx only allows SSL }; + + notify_push = { + enable = true; + # Allow using the push service without hard-coding my IP in the configuration + bendDomainToLocalhost = true; + }; }; services.postgresql = { From 4bb13873764664709483fc31cff7f86ab709f894 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Sat, 24 Sep 2022 21:52:06 +0200 Subject: [PATCH 043/245] modules: services: add tandoor-recipes --- modules/services/default.nix | 1 + modules/services/tandoor-recipes/default.nix | 79 ++++++++++++++++++++ 2 files changed, 80 insertions(+) create mode 100644 modules/services/tandoor-recipes/default.nix diff --git a/modules/services/default.nix b/modules/services/default.nix index 4fcf453..86badf5 100644 --- a/modules/services/default.nix +++ b/modules/services/default.nix @@ -30,6 +30,7 @@ ./rss-bridge ./sabnzbd ./ssh-server + ./tandoor-recipes ./tlp ./transmission ./vikunja diff --git a/modules/services/tandoor-recipes/default.nix b/modules/services/tandoor-recipes/default.nix new file mode 100644 index 0000000..d78bef3 --- /dev/null +++ b/modules/services/tandoor-recipes/default.nix @@ -0,0 +1,79 @@ +{ config, lib, ... }: +let + cfg = config.my.services.tandoor-recipes; +in +{ + options.my.services.tandoor-recipes = with lib; { + enable = mkEnableOption "Tandoor Recipes service"; + + port = mkOption { + type = types.port; + default = 4536; + example = 8080; + description = "Internal port for webui"; + }; + + secretKeyFile = mkOption { + type = types.str; + example = "/var/lib/tandoor-recipes/secret-key.env"; + description = '' + Secret key as an 'EnvironmentFile' (see `systemd.exec(5)`) + ''; + }; + }; + + config = lib.mkIf cfg.enable { + services.tandoor-recipes = { + enable = true; + + port = cfg.port; + extraConfig = + let + tandoorRecipesDomain = "recipes.${config.networking.domain}"; + in + { + # Use PostgreSQL + DB_ENGINE = "django.db.backends.postgresql"; + POSTGRES_HOST = "/run/postgresql"; + POSTGRES_USER = "tandoor_recipes"; + POSTGRES_DB = "tandoor_recipes"; + + # Security settings + ALLOWED_HOSTS = tandoorRecipesDomain; + CSRF_TRUSTED_ORIGINS = "https://${tandoorRecipesDomain}"; + + # Misc + TIMEZONE = config.time.timeZone; + }; + }; + + systemd.services = { + tandoor-recipes = { + after = [ "postgresql.service" ]; + + serviceConfig = { + EnvironmentFile = cfg.secretKeyFile; + }; + }; + }; + + # Set-up database + services.postgresql = { + enable = true; + ensureDatabases = [ "tandoor_recipes" ]; + ensureUsers = [ + { + name = "tandoor_recipes"; + ensurePermissions."DATABASE tandoor_recipes" = "ALL PRIVILEGES"; + } + ]; + }; + + my.services.nginx.virtualHosts = [ + { + subdomain = "recipes"; + inherit (cfg) port; + } + ]; + }; +} From 5ff0b62af89f8a2befe8a7f435996aade95228b6 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Sat, 24 Sep 2022 21:53:22 +0200 Subject: [PATCH 044/245] hosts: nixos: porthos: secrets: add tandoor --- hosts/nixos/porthos/secrets/secrets.nix | 2 ++ .../secrets/tandoor-recipes/secret-key.age | Bin 0 -> 496 bytes 2 files changed, 2 insertions(+) create mode 100644 hosts/nixos/porthos/secrets/tandoor-recipes/secret-key.age diff --git a/hosts/nixos/porthos/secrets/secrets.nix b/hosts/nixos/porthos/secrets/secrets.nix index 3b88e60..821cc25 100644 --- a/hosts/nixos/porthos/secrets/secrets.nix +++ b/hosts/nixos/porthos/secrets/secrets.nix @@ -59,6 +59,8 @@ in "sso/ambroisie/password-hash.age".publicKeys = all; "sso/ambroisie/totp-secret.age".publicKeys = all; + "tandoor-recipes/secret-key.age".publicKeys = all; + "transmission/credentials.age".publicKeys = all; "vikunja/mail.age".publicKeys = all; diff --git a/hosts/nixos/porthos/secrets/tandoor-recipes/secret-key.age b/hosts/nixos/porthos/secrets/tandoor-recipes/secret-key.age new file mode 100644 index 0000000000000000000000000000000000000000..2ec147d8edff2730442d1ae253609e27bd43bec4 GIT binary patch literal 496 zcmYdHPt{G$OD?J`D9Oyv)5|YP*Do{V(zR14F3!+RO))YxHMCU73dk?dOIL_6DYvln z2{*P()2|Hk^oTU_arVl{F7qlg&h|0S2{bP74>1i1Dlki`EauYIuSy9lH>pa=iAptf z%u2~Nb*iv*_0M$9P7blukIX2H@+e9UGe|R!bVRo;**iZgH(enj$KSOiIo&iP+b=yZ z+btz6EJ@obGuPO-*rz$u7bZpULu!^ zTZw^LT7f}QrH`9qT1G^si)(10e_+0|cDiM5R+(X*TbZ__S&mPEw`Z=0yOBjono~eP zu5YP(v3F6bVP+*)aXOc-uC78=qH#*PYhZ}KW3soGc}h}hZmGVnxv8U5QdVV(M~ZQk zqq}cpjzOe Date: Sat, 24 Sep 2022 21:53:50 +0200 Subject: [PATCH 045/245] hosts: nixos: porthos: services: add tandoor --- hosts/nixos/porthos/services.nix | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/hosts/nixos/porthos/services.nix b/hosts/nixos/porthos/services.nix index e0a1731..76ea1ee 100644 --- a/hosts/nixos/porthos/services.nix +++ b/hosts/nixos/porthos/services.nix @@ -136,6 +136,11 @@ in sabnzbd.enable = true; # Because I stilll need to play sysadmin ssh-server.enable = true; + # Recipe manager + tandoor-recipes = { + enable = true; + secretKeyFile = secrets."tandoor-recipes/secret-key".path; + }; # Torrent client and webui transmission = { enable = true; From caa8357db897182f9351d8a3e8f3b33a210f28ac Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Mon, 17 Jul 2023 09:57:24 +0000 Subject: [PATCH 046/245] home: nixpkgs: define 'GITHUB_API_TOKEN' Turns out the nixpkgs scripts are not consistent in which environment variable they expect to be defined... --- home/nixpkgs/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/home/nixpkgs/default.nix b/home/nixpkgs/default.nix index 2b7fca4..720fc9b 100644 --- a/home/nixpkgs/default.nix +++ b/home/nixpkgs/default.nix @@ -14,6 +14,7 @@ in home.sessionVariables = { GITHUB_TOKEN = ''$(cat "${config.age.secrets."github/token".path}")''; + GITHUB_API_TOKEN = ''$(cat "${config.age.secrets."github/token".path}")''; }; }; } From ae13ab0c86fa3fb496fc522324c6f55b26e72228 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Mon, 17 Jul 2023 10:57:41 +0000 Subject: [PATCH 047/245] nixos: porthos: secrets: add grafana secret-key The secret will be used in the next commit. --- .../porthos/secrets/monitoring/secret-key.age | Bin 0 -> 507 bytes hosts/nixos/porthos/secrets/secrets.nix | 4 ++++ 2 files changed, 4 insertions(+) create mode 100644 hosts/nixos/porthos/secrets/monitoring/secret-key.age diff --git a/hosts/nixos/porthos/secrets/monitoring/secret-key.age b/hosts/nixos/porthos/secrets/monitoring/secret-key.age new file mode 100644 index 0000000000000000000000000000000000000000..4cef94fa385ae398c60f78536f661c35edf04631 GIT binary patch literal 507 zcmYdHPt{G$OD?J`D9Oyv)5|YP*Do{V(zR14F3!+RO))YxHMCSn_Ri1BO;_*_F)T0+ z$oA8A@~-f+$n|vhEi?);3v+Q!sw%EBxA3g+Ob-pyFRRG+$mYsOHmgjv2y^qVu*~qt zs0?%}@prVeOw)F&DE1D@&kIPb$nZ%jcFZbs4@9>uDqicz!uX#YRS45RzT5z^oWPn*|WPq=;kxQtvyGvA6UZQqN zUVem^p=pUpgr!k#Nn%kJm#(g^f={BKMS4n(QEG^jzPm-ZQ&x$7g{y0bmw9n%NqJ#J zctLJyYK3b=eyLA7*M6P()8b<$GbBds_j<$HsU&gXW^9%J1s0R7CxdfuioQE0v%67y i$qNz5ce@K;OrO5?x=*9vHD2TJcPoBRP09Si^8f(Rs;wsg literal 0 HcmV?d00001 diff --git a/hosts/nixos/porthos/secrets/secrets.nix b/hosts/nixos/porthos/secrets/secrets.nix index 821cc25..498aebf 100644 --- a/hosts/nixos/porthos/secrets/secrets.nix +++ b/hosts/nixos/porthos/secrets/secrets.nix @@ -42,6 +42,10 @@ in owner = "grafana"; publicKeys = all; }; + "monitoring/secret-key.age" = { + owner = "grafana"; + publicKeys = all; + }; "nextcloud/password.age" = { owner = "nextcloud"; From 47533f119e21b444c8ee62a3ab985ad4551886bd Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Mon, 17 Jul 2023 10:58:29 +0000 Subject: [PATCH 048/245] modules: services: monitoring: add 'secretKeyFile' --- hosts/nixos/porthos/services.nix | 1 + modules/services/monitoring/default.nix | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/hosts/nixos/porthos/services.nix b/hosts/nixos/porthos/services.nix index 76ea1ee..e4cae5e 100644 --- a/hosts/nixos/porthos/services.nix +++ b/hosts/nixos/porthos/services.nix @@ -80,6 +80,7 @@ in enable = true; grafana = { passwordFile = secrets."monitoring/password".path; + secretKeyFile = secrets."monitoring/secret-key".path; }; }; # FLOSS music streaming server diff --git a/modules/services/monitoring/default.nix b/modules/services/monitoring/default.nix index ece6cc1..829bfe0 100644 --- a/modules/services/monitoring/default.nix +++ b/modules/services/monitoring/default.nix @@ -27,6 +27,12 @@ in example = "/var/lib/grafana/password.txt"; description = "Admin password stored in a file"; }; + + secretKeyFile = mkOption { + type = types.str; + example = "/var/lib/grafana/secret_key.txt"; + description = "Secret key stored in a file"; + }; }; prometheus = { @@ -61,6 +67,7 @@ in security = { admin_user = cfg.grafana.username; admin_password = "$__file{${cfg.grafana.passwordFile}}"; + secret_key = "$__file{${cfg.grafana.secretKeyFile}}"; }; }; From fc6b221ba135a7f99adbcde435170ff05008346c Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Thu, 20 Jul 2023 21:47:10 +0100 Subject: [PATCH 049/245] overlays: make overlay import automatic Don't rely on nixpkgs' lib to make it easier to just `import` the directory. --- overlays/default.nix | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/overlays/default.nix b/overlays/default.nix index e504b17..683e021 100644 --- a/overlays/default.nix +++ b/overlays/default.nix @@ -1,3 +1,6 @@ -{ - # No overlays -} +# Automatically import all overlays in the directory +let + files = builtins.readDir ./.; + overlays = builtins.removeAttrs files [ "default.nix" ]; +in +builtins.mapAttrs (name: _: import "${./.}/${name}") overlays From 65de9c5a0e4f143051b7d2074ff9535ade0c9a21 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Fri, 21 Jul 2023 10:19:05 +0000 Subject: [PATCH 050/245] home: zsh: add fallback for all mappings I don't actually think any of these are _necessary_, but you never know. --- home/zsh/extra-mappings.zsh | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/home/zsh/extra-mappings.zsh b/home/zsh/extra-mappings.zsh index 2e9c18f..3456e13 100644 --- a/home/zsh/extra-mappings.zsh +++ b/home/zsh/extra-mappings.zsh @@ -92,6 +92,10 @@ if [ -n "${terminfo[kpp]}" ]; then bindkey -M emacs "${terminfo[kpp]}" up-line-or-history bindkey -M viins "${terminfo[kpp]}" up-line-or-history bindkey -M vicmd "${terminfo[kpp]}" up-line-or-history +else + bindkey -M emacs "^[[5~" up-line-or-history + bindkey -M viins "^[[5~" up-line-or-history + bindkey -M vicmd "^[[5~" up-line-or-history fi # PageDown goes forward in history @@ -99,6 +103,10 @@ if [ -n "${terminfo[knp]}" ]; then bindkey -M emacs "${terminfo[knp]}" down-line-or-history bindkey -M viins "${terminfo[knp]}" down-line-or-history bindkey -M vicmd "${terminfo[knp]}" down-line-or-history +else + bindkey -M emacs "^[[6~" down-line-or-history + bindkey -M viins "^[[6~" down-line-or-history + bindkey -M vicmd "^[[6~" down-line-or-history fi # Home goes to the beginning of the line @@ -106,6 +114,10 @@ if [ -n "${terminfo[khome]}" ]; then bindkey -M emacs "${terminfo[khome]}" beginning-of-line bindkey -M viins "${terminfo[khome]}" beginning-of-line bindkey -M vicmd "${terminfo[khome]}" beginning-of-line +else + bindkey -M emacs "^[[1~" beginning-of-line + bindkey -M viins "^[[1~" beginning-of-line + bindkey -M vicmd "^[[1~" beginning-of-line fi # End goes to the end of the line @@ -113,4 +125,8 @@ if [ -n "${terminfo[kend]}" ]; then bindkey -M emacs "${terminfo[kend]}" end-of-line bindkey -M viins "${terminfo[kend]}" end-of-line bindkey -M vicmd "${terminfo[kend]}" end-of-line +else + bindkey -M emacs "^[[4~" end-of-line + bindkey -M viins "^[[4~" end-of-line + bindkey -M vicmd "^[[4~" end-of-line fi From ae8d8d75fdbf70094a9db5296afe13f844a6240e Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Fri, 21 Jul 2023 22:33:47 +0200 Subject: [PATCH 051/245] flake: bump inputs Update `fail2ban` to accomodate for RFC-42 migration. --- flake.lock | 42 +++++++++++++-------------- modules/services/fail2ban/default.nix | 8 ++--- 2 files changed, 25 insertions(+), 25 deletions(-) diff --git a/flake.lock b/flake.lock index 6da0c3e..ec43468 100644 --- a/flake.lock +++ b/flake.lock @@ -11,11 +11,11 @@ ] }, "locked": { - "lastModified": 1684153753, - "narHash": "sha256-PVbWt3qrjYAK+T5KplFcO+h7aZWfEj1UtyoKlvcDxh0=", + "lastModified": 1689334118, + "narHash": "sha256-djk5AZv1yU84xlKFaVHqFWvH73U7kIRstXwUAnDJPsk=", "owner": "ryantm", "repo": "agenix", - "rev": "db5637d10f797bb251b94ef9040b237f4702cde3", + "rev": "0d8c5325fc81daf00532e3e26c6752f7bcde1143", "type": "github" }, "original": { @@ -70,11 +70,11 @@ ] }, "locked": { - "lastModified": 1687762428, - "narHash": "sha256-DIf7mi45PKo+s8dOYF+UlXHzE0Wl/+k3tXUyAoAnoGE=", + "lastModified": 1688466019, + "narHash": "sha256-VeM2akYrBYMsb4W/MmBo1zmaMfgbL4cH3Pu8PGyIwJ0=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "37dd7bb15791c86d55c5121740a1887ab55ee836", + "rev": "8e8d955c22df93dbe24f19ea04f47a74adbdc5ec", "type": "github" }, "original": { @@ -89,11 +89,11 @@ "systems": "systems" }, "locked": { - "lastModified": 1687709756, - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", + "lastModified": 1689068808, + "narHash": "sha256-6ixXo3wt24N/melDWjq70UuHQLxGV8jZvooRanIHXw0=", "owner": "numtide", "repo": "flake-utils", - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", + "rev": "919d646de7be200f3bf08cb76ae1f09402b6f9b4", "type": "github" }, "original": { @@ -131,11 +131,11 @@ ] }, "locked": { - "lastModified": 1687969886, - "narHash": "sha256-tC2qFLmuM0PFaw0tMHVcFmzsG/351q09qa1EpuL2n1U=", + "lastModified": 1689891262, + "narHash": "sha256-Pc4wDczbdgd6QXKJIXprgxe7L9AVDsoAkMnvm5vmpUU=", "owner": "nix-community", "repo": "home-manager", - "rev": "a7002d6bfca54742d5fc9b485a1879953b4585b9", + "rev": "ee5673246de0254186e469935909e821b8f4ec15", "type": "github" }, "original": { @@ -147,11 +147,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1688049487, - "narHash": "sha256-100g4iaKC9MalDjUW9iN6Jl/OocTDtXdeAj7pEGIRh4=", + "lastModified": 1689850295, + "narHash": "sha256-fUYf6WdQlhd2H+3aR8jST5dhFH1d0eE22aes8fNIfyk=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "4bc72cae107788bf3f24f30db2e2f685c9298dc9", + "rev": "5df4d78d54f7a34e9ea1f84a22b4fd9baebc68d0", "type": "github" }, "original": { @@ -163,11 +163,11 @@ }, "nur": { "locked": { - "lastModified": 1688149889, - "narHash": "sha256-lHAwpd4ij6GUtu1ww9M9P81HnV/1mdsQXwEAoLQPZso=", + "lastModified": 1689968828, + "narHash": "sha256-5qA6R/cBeLsS09ZMRKzhJq74nOGWEgGYpjdbKXDnCow=", "owner": "nix-community", "repo": "NUR", - "rev": "4cd52203c52face9ee649200a0d666c51e012dfa", + "rev": "876b9498f36a394fcf8472f62ecf6685585c0509", "type": "github" }, "original": { @@ -192,11 +192,11 @@ ] }, "locked": { - "lastModified": 1688137124, - "narHash": "sha256-ramG4s/+A5+t/QG2MplTNPP/lmBWDtbW6ilpwb9sKVo=", + "lastModified": 1689668210, + "narHash": "sha256-XAATwDkaUxH958yXLs1lcEOmU6pSEIkatY3qjqk8X0E=", "owner": "cachix", "repo": "pre-commit-hooks.nix", - "rev": "522fd47af79b66cdd04b92618e65c7a11504650a", + "rev": "eb433bff05b285258be76513add6f6c57b441775", "type": "github" }, "original": { diff --git a/modules/services/fail2ban/default.nix b/modules/services/fail2ban/default.nix index ab80bda..d62b9e2 100644 --- a/modules/services/fail2ban/default.nix +++ b/modules/services/fail2ban/default.nix @@ -28,10 +28,10 @@ in rndtime = "5m"; # Use 5 minute jitter to avoid unban evasion }; - jails.DEFAULT = ''; - findtime = 4h - bantime = 10m - ''; + jails.DEFAULT.settings = { + findtime = "4h"; + bantime = "10m"; + }; }; }; } From f363ae71a596a011b67c177b1fe495c6548013ad Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Sun, 23 Jul 2023 22:02:06 +0200 Subject: [PATCH 052/245] hosts: nixos: porthos: boot: use '/dev/disk/by-id' Somehow `/dev/sda` and `/dev/sdb` switched around, so use a more stable path. --- hosts/nixos/porthos/boot.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hosts/nixos/porthos/boot.nix b/hosts/nixos/porthos/boot.nix index f0cb925..fbc5db7 100644 --- a/hosts/nixos/porthos/boot.nix +++ b/hosts/nixos/porthos/boot.nix @@ -7,7 +7,7 @@ loader.grub = { enable = true; # Define on which hard drive you want to install Grub. - device = "/dev/sda"; + device = "/dev/disk/by-id/ata-HGST_HUS724020ALA640_PN2181P6J58M1P"; }; initrd = { From 850b9f792ff19dcf3e66b0ffaccabe97e8f8ca71 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Fri, 28 Jul 2023 16:05:38 +0000 Subject: [PATCH 053/245] flake: bump inputs --- flake.lock | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/flake.lock b/flake.lock index ec43468..2f2ccbb 100644 --- a/flake.lock +++ b/flake.lock @@ -11,11 +11,11 @@ ] }, "locked": { - "lastModified": 1689334118, - "narHash": "sha256-djk5AZv1yU84xlKFaVHqFWvH73U7kIRstXwUAnDJPsk=", + "lastModified": 1690228878, + "narHash": "sha256-9Xe7JV0krp4RJC9W9W9WutZVlw6BlHTFMiUP/k48LQY=", "owner": "ryantm", "repo": "agenix", - "rev": "0d8c5325fc81daf00532e3e26c6752f7bcde1143", + "rev": "d8c973fd228949736dedf61b7f8cc1ece3236792", "type": "github" }, "original": { @@ -131,11 +131,11 @@ ] }, "locked": { - "lastModified": 1689891262, - "narHash": "sha256-Pc4wDczbdgd6QXKJIXprgxe7L9AVDsoAkMnvm5vmpUU=", + "lastModified": 1690476848, + "narHash": "sha256-PSmzyuEbMxEn2uwwLYUN2l1psoJXb7jm/kfHD12Sq0k=", "owner": "nix-community", "repo": "home-manager", - "rev": "ee5673246de0254186e469935909e821b8f4ec15", + "rev": "8d243f7da13d6ee32f722a3f1afeced150b6d4da", "type": "github" }, "original": { @@ -147,11 +147,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1689850295, - "narHash": "sha256-fUYf6WdQlhd2H+3aR8jST5dhFH1d0eE22aes8fNIfyk=", + "lastModified": 1690367991, + "narHash": "sha256-2VwOn1l8y6+cu7zjNE8MgeGJNNz1eat1HwHrINeogFA=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "5df4d78d54f7a34e9ea1f84a22b4fd9baebc68d0", + "rev": "c9cf0708f00fbe553319258e48ca89ff9a413703", "type": "github" }, "original": { @@ -163,11 +163,11 @@ }, "nur": { "locked": { - "lastModified": 1689968828, - "narHash": "sha256-5qA6R/cBeLsS09ZMRKzhJq74nOGWEgGYpjdbKXDnCow=", + "lastModified": 1690541304, + "narHash": "sha256-EypV1o52D9SdHWyH3Wf6RLdDiDnKIqqXiUROrtN2KyQ=", "owner": "nix-community", "repo": "NUR", - "rev": "876b9498f36a394fcf8472f62ecf6685585c0509", + "rev": "03f02d6f7b5c284fe6ed12f86debb21429ca124c", "type": "github" }, "original": { @@ -192,11 +192,11 @@ ] }, "locked": { - "lastModified": 1689668210, - "narHash": "sha256-XAATwDkaUxH958yXLs1lcEOmU6pSEIkatY3qjqk8X0E=", + "lastModified": 1690464206, + "narHash": "sha256-38V4kmOh6ikpfGiAS+Kt2H/TA2DubSqE66veP/jmB4Q=", "owner": "cachix", "repo": "pre-commit-hooks.nix", - "rev": "eb433bff05b285258be76513add6f6c57b441775", + "rev": "9289996dcac62fd45836db7c07b87d2521eb526d", "type": "github" }, "original": { From e5a1105c59545c940fbfb78d03c7194766ac0fe0 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Sun, 23 Jul 2023 17:59:12 +0100 Subject: [PATCH 054/245] home: wm: i3: remove 'pamixer' This was left-over from the first version of my volume mappings. --- home/wm/i3/default.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/home/wm/i3/default.nix b/home/wm/i3/default.nix index c7a728a..44e2614 100644 --- a/home/wm/i3/default.nix +++ b/home/wm/i3/default.nix @@ -61,7 +61,6 @@ in ambroisie.dragger # drag-and-drop from the CLI ambroisie.i3-get-window-criteria # little helper for i3 configuration arandr # Used by a mapping - pamixer # Used by a mapping playerctl # Used by a mapping ]; From 36c0590ae59700f98ad8c18702ebdcb0c14323bb Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Tue, 11 May 2021 12:43:42 +0200 Subject: [PATCH 055/245] home: add bitwarden --- home/bitwarden/default.nix | 27 +++++++++++++++++++++++++++ home/default.nix | 1 + 2 files changed, 28 insertions(+) create mode 100644 home/bitwarden/default.nix diff --git a/home/bitwarden/default.nix b/home/bitwarden/default.nix new file mode 100644 index 0000000..c709f7b --- /dev/null +++ b/home/bitwarden/default.nix @@ -0,0 +1,27 @@ +{ config, lib, ... }: +let + cfg = config.my.home.bitwarden; +in +{ + options.my.home.bitwarden = with lib; { + enable = my.mkDisableOption "bitwarden configuration"; + + pinentry = mkOption { + type = types.str; + default = "tty"; + example = "gtk2"; + description = "Which pinentry interface to use"; + }; + }; + + config = lib.mkIf cfg.enable { + programs.rbw = { + enable = true; + + settings = { + email = lib.my.mkMailAddress "bruno" "belanyi.fr"; + inherit (cfg) pinentry; + }; + }; + }; +} diff --git a/home/default.nix b/home/default.nix index 6b6ad36..8ba3a8d 100644 --- a/home/default.nix +++ b/home/default.nix @@ -4,6 +4,7 @@ ./aliases ./atuin ./bat + ./bitwarden ./bluetooth ./calibre ./comma From 4a9a46547e7d975f3bb6fdb3a59b3d8e417a361b Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Tue, 11 May 2021 12:44:38 +0200 Subject: [PATCH 056/245] machine: aramis: home: set 'bitwarden.pinentry' --- hosts/nixos/aramis/home.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/hosts/nixos/aramis/home.nix b/hosts/nixos/aramis/home.nix index 6d66384..66a0892 100644 --- a/hosts/nixos/aramis/home.nix +++ b/hosts/nixos/aramis/home.nix @@ -1,6 +1,8 @@ { pkgs, ... }: { my.home = { + # Use graphical pinentry + bitwarden.pinentry = "gtk2"; # Ebook library calibre.enable = true; # Some amount of social life From 2dfc788ed486d5dab0eae902ac134494cad73ec9 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Sun, 23 Jul 2023 17:58:07 +0100 Subject: [PATCH 057/245] home: wm: i3: add 'rofi-rbw' mapping --- home/wm/i3/default.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/home/wm/i3/default.nix b/home/wm/i3/default.nix index 44e2614..34c1db4 100644 --- a/home/wm/i3/default.nix +++ b/home/wm/i3/default.nix @@ -62,6 +62,7 @@ in ambroisie.i3-get-window-criteria # little helper for i3 configuration arandr # Used by a mapping playerctl # Used by a mapping + xdotool # Used by 'rofi-rbw', in a mapping ]; xsession.windowManager.i3 = { @@ -188,6 +189,7 @@ in "${modifier}+d" = "exec rofi -show drun -disable-history"; "${modifier}+Shift+d" = "exec rofi -show run -disable-history"; "${modifier}+p" = "exec --no-startup-id flameshot gui"; + "${modifier}+Ctrl+p" = "exec ${lib.getExe pkgs.rofi-rbw}"; "${modifier}+Shift+p" = "exec rofi -show emoji"; "${modifier}+b" = let From 8f818b86114a13c59745a69bb884001d0a8a605b Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Sun, 23 Jul 2023 18:44:08 +0100 Subject: [PATCH 058/245] pkgs: add rbw-pass This is honestly almost overkill, as the script doesn't really have any logic in it, but it's good to have a common base with the bitwarden-cli one. --- pkgs/default.nix | 2 ++ pkgs/rbw-pass/default.nix | 40 ++++++++++++++++++++++++++++++++++++ pkgs/rbw-pass/rbw-pass | 43 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 85 insertions(+) create mode 100644 pkgs/rbw-pass/default.nix create mode 100755 pkgs/rbw-pass/rbw-pass diff --git a/pkgs/default.nix b/pkgs/default.nix index 4a84b9c..cfd722d 100644 --- a/pkgs/default.nix +++ b/pkgs/default.nix @@ -26,6 +26,8 @@ pkgs.lib.makeScope pkgs.newScope (pkgs: { osc52 = pkgs.callPackage ./osc52 { }; + rbw-pass = pkgs.callPackage ./rbw-pass { }; + unbound-zones-adblock = pkgs.callPackage ./unbound-zones-adblock { }; unified-hosts-lists = pkgs.callPackage ./unified-hosts-lists { }; diff --git a/pkgs/rbw-pass/default.nix b/pkgs/rbw-pass/default.nix new file mode 100644 index 0000000..7f0286b --- /dev/null +++ b/pkgs/rbw-pass/default.nix @@ -0,0 +1,40 @@ +{ lib, coreutils, makeWrapper, rbw, rofi, stdenvNoCC }: +stdenvNoCC.mkDerivation rec { + pname = "rbw-pass"; + version = "0.1.0"; + + src = ./rbw-pass; + + nativeBuildInputs = [ + makeWrapper + ]; + + dontUnpack = true; + + dontBuild = true; + + installPhase = '' + mkdir -p $out/bin + cp $src $out/bin/${pname} + chmod a+x $out/bin/${pname} + ''; + + wrapperPath = lib.makeBinPath [ + rbw + coreutils + rofi + ]; + + fixupPhase = '' + patchShebangs $out/bin/${pname} + wrapProgram $out/bin/${pname} --prefix PATH : "${wrapperPath}" + ''; + + meta = with lib; { + description = "A simple script to query a password from rbw"; + homepage = "https://git.belanyi.fr/ambroisie/nix-config"; + license = with licenses; [ mit ]; + platforms = platforms.linux; + maintainers = with maintainers; [ ambroisie ]; + }; +} diff --git a/pkgs/rbw-pass/rbw-pass b/pkgs/rbw-pass/rbw-pass new file mode 100755 index 0000000..90e916c --- /dev/null +++ b/pkgs/rbw-pass/rbw-pass @@ -0,0 +1,43 @@ +#!/usr/bin/env bash + +usage() { + printf '%s\n' "Usage: bw-pass [directory name] " >&2 +} + +error_out() { + printf '%s\n' "$1" >&2 + rofi -dmenu -no-fixed-num-lines -p "$1" + exit 1 +} + +ensure_logged_in() { + rbw login +} + +query_password() { + # Either use with `query_password + # Or `query_password ` when the account has no directory + + local FOLDER_ARGS=() + local PASSWORD + + # FIXME: no way to enforce filering by "no folder" + if [ $# -eq 2 ]; then + FOLDER_ARGS+=(--folder "$1") + shift + fi + PASSWORD="$(rbw get "${FOLDER_ARGS[@]}" "$1")" + + if [ -z "$PASSWORD" ]; then + error_out "Did not find password for '$1'" + fi + printf '%s\n' "$PASSWORD" +} + +if [ $# -lt 1 ] || [ $# -gt 2 ]; then + usage + exit 1 +fi + +ensure_logged_in +query_password "$@" From 9f7472222cbfe03b09a6caec2ff7b50595f43483 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Sun, 23 Jul 2023 18:58:40 +0100 Subject: [PATCH 059/245] treewide: use 'lib.getExe' when possible Don't use it in wireguard to keep it consistent, as only half the commands could use it. --- home/mail/accounts/default.nix | 2 +- home/mail/himalaya/default.nix | 2 +- home/wm/default.nix | 4 ++-- home/wm/i3/default.nix | 6 +++--- home/wm/screen-lock/default.nix | 2 +- modules/services/drone/runner-docker/default.nix | 3 +-- modules/services/drone/runner-exec/default.nix | 3 +-- modules/services/flood/default.nix | 2 +- modules/services/lohr/default.nix | 4 +--- modules/services/nginx/sso/default.nix | 4 ++-- pkgs/ff2mpv-go/default.nix | 2 +- pkgs/unbound-zones-adblock/default.nix | 2 +- 12 files changed, 16 insertions(+), 20 deletions(-) diff --git a/home/mail/accounts/default.nix b/home/mail/accounts/default.nix index f513605..9ccc643 100644 --- a/home/mail/accounts/default.nix +++ b/home/mail/accounts/default.nix @@ -8,7 +8,7 @@ let realName = lib.mkDefault "Bruno BELANYI"; userName = lib.mkDefault (mkMailAddress address domain); passwordCommand = - lib.mkDefault [ "${pkgs.ambroisie.bw-pass}/bin/bw-pass" "Mail" passName ]; + lib.mkDefault [ (lib.getExe pkgs.ambroisie.bw-pass) "Mail" passName ]; address = mkMailAddress address domain; aliases = builtins.map (lib.flip mkMailAddress domain) aliases; diff --git a/home/mail/himalaya/default.nix b/home/mail/himalaya/default.nix index c2d3b05..849a415 100644 --- a/home/mail/himalaya/default.nix +++ b/home/mail/himalaya/default.nix @@ -9,7 +9,7 @@ in settings = { notify-cmd = let - notify-send = "${pkgs.libnotify}/bin/notify-send"; + notify-send = lib.getExe pkgs.libnotify; in pkgs.writeScript "mail-notifier" '' SENDER="$1" diff --git a/home/wm/default.nix b/home/wm/default.nix index fb9ecee..6a615e5 100644 --- a/home/wm/default.nix +++ b/home/wm/default.nix @@ -47,8 +47,8 @@ in command = mkOption { type = types.str; - default = "${pkgs.i3lock}/bin/i3lock -n -c 000000"; - example = "\${pkgs.i3lock}/bin/i3lock -n -i lock.png"; + default = "${lib.getExe pkgs.i3lock} -n -c 000000"; + example = "\${lib.getExe pkgs.i3lock} -n -i lock.png"; description = "Locker command to run"; }; diff --git a/home/wm/i3/default.nix b/home/wm/i3/default.nix index 34c1db4..d1dbe2c 100644 --- a/home/wm/i3/default.nix +++ b/home/wm/i3/default.nix @@ -27,13 +27,13 @@ let genMovementBindings = f: addVimKeyBindings (lib.my.genAttrs' movementKeys f); # Used in multiple scripts to show messages through keybindings - notify-send = "${pkgs.libnotify}/bin/notify-send"; + notify-send = lib.getExe pkgs.libnotify; # Screen backlight management - changeBacklight = "${pkgs.ambroisie.change-backlight}/bin/change-backlight"; + changeBacklight = lib.getExe pkgs.ambroisie.change-backlight; # Audio and volume management - changeAudio = "${pkgs.ambroisie.change-audio}/bin/change-audio"; + changeAudio = lib.getExe pkgs.ambroisie.change-audio; # Lock management toggleXautolock = diff --git a/home/wm/screen-lock/default.nix b/home/wm/screen-lock/default.nix index 95060b8..3b2ead6 100644 --- a/home/wm/screen-lock/default.nix +++ b/home/wm/screen-lock/default.nix @@ -5,7 +5,7 @@ let notficationCmd = let duration = toString (cfg.notify.delay * 1000); - notifyCmd = "${pkgs.libnotify}/bin/notify-send -u critical -t ${duration}"; + notifyCmd = "${lib.getExe pkgs.libnotify} -u critical -t ${duration}"; in # Needs to be surrounded by quotes for systemd to launch it correctly ''"${notifyCmd} -- 'Locking in ${toString cfg.notify.delay} seconds'"''; diff --git a/modules/services/drone/runner-docker/default.nix b/modules/services/drone/runner-docker/default.nix index 6ccb5fe..e53c608 100644 --- a/modules/services/drone/runner-docker/default.nix +++ b/modules/services/drone/runner-docker/default.nix @@ -2,7 +2,6 @@ let cfg = config.my.services.drone; hasRunner = (name: builtins.elem name cfg.runners); - dockerPkg = pkgs.drone-runner-docker; in { config = lib.mkIf (cfg.enable && hasRunner "docker") { @@ -25,7 +24,7 @@ in EnvironmentFile = [ cfg.sharedSecretFile ]; - ExecStart = "${dockerPkg}/bin/drone-runner-docker"; + ExecStart = lib.getExe pkgs.drone-runner-docker; User = "drone-runner-docker"; Group = "drone-runner-docker"; }; diff --git a/modules/services/drone/runner-exec/default.nix b/modules/services/drone/runner-exec/default.nix index f0dddb9..a9bb563 100644 --- a/modules/services/drone/runner-exec/default.nix +++ b/modules/services/drone/runner-exec/default.nix @@ -2,7 +2,6 @@ let cfg = config.my.services.drone; hasRunner = (name: builtins.elem name cfg.runners); - execPkg = pkgs.drone-runner-exec; in { config = lib.mkIf (cfg.enable && hasRunner "exec") { @@ -53,7 +52,7 @@ in EnvironmentFile = [ cfg.sharedSecretFile ]; - ExecStart = "${execPkg}/bin/drone-runner-exec"; + ExecStart = lib.getExe pkgs.drone-runner-exec; User = "drone-runner-exec"; Group = "drone-runner-exec"; }; diff --git a/modules/services/flood/default.nix b/modules/services/flood/default.nix index ae8e219..ff5d941 100644 --- a/modules/services/flood/default.nix +++ b/modules/services/flood/default.nix @@ -30,7 +30,7 @@ in serviceConfig = { ExecStart = lib.concatStringsSep " " [ - "${pkgs.flood}/bin/flood" + (lib.getExe pkgs.flood) "--port ${builtins.toString cfg.port}" "--rundir /var/lib/${cfg.stateDir}" ]; diff --git a/modules/services/lohr/default.nix b/modules/services/lohr/default.nix index f43bc40..245567c 100644 --- a/modules/services/lohr/default.nix +++ b/modules/services/lohr/default.nix @@ -4,8 +4,6 @@ let cfg = config.my.services.lohr; settingsFormat = pkgs.formats.yaml { }; - lohrPkg = pkgs.ambroisie.lohr; - lohrStateDirectory = "lohr"; lohrHome = "/var/lib/lohr/"; in @@ -80,7 +78,7 @@ in let configFile = settingsFormat.generate "lohr-config.yaml" cfg.setting; in - "${lohrPkg}/bin/lohr --config ${configFile}"; + "${lib.getExe pkgs.ambroisie.lohr} --config ${configFile}"; StateDirectory = lohrStateDirectory; WorkingDirectory = lohrHome; User = "lohr"; diff --git a/modules/services/nginx/sso/default.nix b/modules/services/nginx/sso/default.nix index 13292ec..cbb35d5 100644 --- a/modules/services/nginx/sso/default.nix +++ b/modules/services/nginx/sso/default.nix @@ -60,7 +60,7 @@ in WorkingDirectory = "/var/lib/nginx-sso"; # The files to be merged might not have the correct permissions ExecStartPre = ''+${pkgs.writeScript "merge-nginx-sso-config" '' - #!${pkgs.bash}/bin/bash + #!${lib.getExe pkgs.bash} rm -f '${confPath}' ${utils.genJqSecretsReplacementSnippet cfg.configuration confPath} @@ -70,7 +70,7 @@ in '' }''; ExecStart = lib.mkForce '' - ${pkg}/bin/nginx-sso \ + ${lib.getExe pkg} \ --config ${confPath} \ --frontend-dir ${pkg}/share/frontend ''; diff --git a/pkgs/ff2mpv-go/default.nix b/pkgs/ff2mpv-go/default.nix index dcdb7f3..fdd9201 100644 --- a/pkgs/ff2mpv-go/default.nix +++ b/pkgs/ff2mpv-go/default.nix @@ -12,7 +12,7 @@ buildGoModule rec { vendorHash = null; postPatch = '' - sed -i -e 's,"mpv","${mpv}/bin/mpv",' ff2mpv.go + sed -i -e 's,"mpv","${lib.getExe mpv}",' ff2mpv.go ''; postInstall = '' diff --git a/pkgs/unbound-zones-adblock/default.nix b/pkgs/unbound-zones-adblock/default.nix index 824a7d6..f8d89b1 100644 --- a/pkgs/unbound-zones-adblock/default.nix +++ b/pkgs/unbound-zones-adblock/default.nix @@ -10,7 +10,7 @@ stdenvNoCC.mkDerivation { installPhase = let gawkCmd = lib.concatStringsSep " " [ - ''${gawk}/bin/awk'' + (lib.getExe gawk) '''{sub(/\r$/,"")}'' ''{sub(/^127\.0\.0\.1/,"0.0.0.0")}'' ''BEGIN { OFS = "" }'' From 868a9aa2120621f609f5723c35a3b984a1a7f6ff Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Sun, 23 Jul 2023 18:46:39 +0100 Subject: [PATCH 060/245] home: mail: accounts: use 'rbw-pass' It should be more robust than the one based on bitwarden-cli. --- home/mail/accounts/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/home/mail/accounts/default.nix b/home/mail/accounts/default.nix index 9ccc643..e7663d8 100644 --- a/home/mail/accounts/default.nix +++ b/home/mail/accounts/default.nix @@ -8,7 +8,7 @@ let realName = lib.mkDefault "Bruno BELANYI"; userName = lib.mkDefault (mkMailAddress address domain); passwordCommand = - lib.mkDefault [ (lib.getExe pkgs.ambroisie.bw-pass) "Mail" passName ]; + lib.mkDefault [ (lib.getExe pkgs.ambroisie.rbw-pass) "Mail" passName ]; address = mkMailAddress address domain; aliases = builtins.map (lib.flip mkMailAddress domain) aliases; From 58a94bdf1bd6a686124d0252b7d656f58fcb9b1b Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Fri, 28 Jul 2023 16:05:56 +0000 Subject: [PATCH 061/245] pkgs: remove woodpecker-plugin-git I have now upstreamed the package, so let's remove it. --- .../woodpecker/agent-exec/default.nix | 2 +- pkgs/default.nix | 2 - pkgs/woodpecker-plugin-git/default.nix | 37 ------------------- 3 files changed, 1 insertion(+), 40 deletions(-) delete mode 100644 pkgs/woodpecker-plugin-git/default.nix diff --git a/modules/services/woodpecker/agent-exec/default.nix b/modules/services/woodpecker/agent-exec/default.nix index d7adc4e..68510d7 100644 --- a/modules/services/woodpecker/agent-exec/default.nix +++ b/modules/services/woodpecker/agent-exec/default.nix @@ -33,7 +33,7 @@ in restartIfChanged = false; path = with pkgs; [ - ambroisie.woodpecker-plugin-git + woodpecker-plugin-git bash coreutils git diff --git a/pkgs/default.nix b/pkgs/default.nix index cfd722d..ed27dc9 100644 --- a/pkgs/default.nix +++ b/pkgs/default.nix @@ -44,7 +44,5 @@ pkgs.lib.makeScope pkgs.newScope (pkgs: { woodpecker-frontend = pkgs.callPackage ./woodpecker/frontend.nix { }; - woodpecker-plugin-git = pkgs.callPackage ./woodpecker-plugin-git { }; - woodpecker-server = pkgs.callPackage ./woodpecker/server.nix { }; }) diff --git a/pkgs/woodpecker-plugin-git/default.nix b/pkgs/woodpecker-plugin-git/default.nix deleted file mode 100644 index 8411216..0000000 --- a/pkgs/woodpecker-plugin-git/default.nix +++ /dev/null @@ -1,37 +0,0 @@ -{ lib, buildGoModule, fetchFromGitHub, fetchpatch }: -buildGoModule rec { - pname = "woodpecker-plugin-git"; - version = "2.0.3"; - - src = fetchFromGitHub { - owner = "woodpecker-ci"; - repo = "plugin-git"; - rev = "v${version}"; - hash = "sha256-KU/A3V7KS8R1nAZoJJwkDc9C8y3t148kUzGnkeYtFjs="; - }; - - vendorHash = "sha256-63Ly/9yIJu2K/DwOfGs9pYU3fokbs2senZkl3MJ1UIY="; - - patches = [ - # https://github.com/woodpecker-ci/plugin-git/pull/67 - (fetchpatch { - name = "do-not-overwrite-command-env.patch"; - url = "https://github.com/woodpecker-ci/plugin-git/commit/970cc63a9b212872deac565c6292feb3f4cf4b51.patch"; - hash = "sha256-izu0X7j+OyNbrOkksf+7VF3KiKVylVv2o00xaX/b1Rg="; - }) - ]; - - CGO_ENABLED = "0"; - - # Checks fail because they require network access. - doCheck = false; - - meta = with lib; { - description = "Woodpecker plugin for cloning Git repositories."; - homepage = "https://woodpecker-ci.org/"; - license = licenses.asl20; - mainProgram = "pluging-git"; - maintainers = with maintainers; [ thehedgeh0g ]; - platforms = platforms.all; - }; -} From 45c3b8260657b46776cd64b3a627e935a8168127 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Wed, 2 Aug 2023 16:11:19 +0000 Subject: [PATCH 062/245] modules: services: nginx-sso: use writeShellScript --- modules/services/nginx/sso/default.nix | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/modules/services/nginx/sso/default.nix b/modules/services/nginx/sso/default.nix index cbb35d5..4a78282 100644 --- a/modules/services/nginx/sso/default.nix +++ b/modules/services/nginx/sso/default.nix @@ -59,8 +59,7 @@ in StateDirectory = "nginx-sso"; WorkingDirectory = "/var/lib/nginx-sso"; # The files to be merged might not have the correct permissions - ExecStartPre = ''+${pkgs.writeScript "merge-nginx-sso-config" '' - #!${lib.getExe pkgs.bash} + ExecStartPre = ''+${pkgs.writeShellScript "merge-nginx-sso-config" '' rm -f '${confPath}' ${utils.genJqSecretsReplacementSnippet cfg.configuration confPath} From 68118e8f935260c9e88ef25a90053f0bc30781d8 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Fri, 4 Aug 2023 09:17:28 +0000 Subject: [PATCH 063/245] flake: bump inputs --- flake.lock | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/flake.lock b/flake.lock index 2f2ccbb..b3c3e01 100644 --- a/flake.lock +++ b/flake.lock @@ -70,11 +70,11 @@ ] }, "locked": { - "lastModified": 1688466019, - "narHash": "sha256-VeM2akYrBYMsb4W/MmBo1zmaMfgbL4cH3Pu8PGyIwJ0=", + "lastModified": 1690933134, + "narHash": "sha256-ab989mN63fQZBFrkk4Q8bYxQCktuHmBIBqUG1jl6/FQ=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "8e8d955c22df93dbe24f19ea04f47a74adbdc5ec", + "rev": "59cf3f1447cfc75087e7273b04b31e689a8599fb", "type": "github" }, "original": { @@ -131,11 +131,11 @@ ] }, "locked": { - "lastModified": 1690476848, - "narHash": "sha256-PSmzyuEbMxEn2uwwLYUN2l1psoJXb7jm/kfHD12Sq0k=", + "lastModified": 1691039228, + "narHash": "sha256-iPNZJ1LvfUf1Y456ewC0DXgf99TNssG8OLObOyqxO6M=", "owner": "nix-community", "repo": "home-manager", - "rev": "8d243f7da13d6ee32f722a3f1afeced150b6d4da", + "rev": "86dd48d70a2e2c17e84e747ba4faa92453e68d4a", "type": "github" }, "original": { @@ -147,11 +147,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1690367991, - "narHash": "sha256-2VwOn1l8y6+cu7zjNE8MgeGJNNz1eat1HwHrINeogFA=", + "lastModified": 1691006197, + "narHash": "sha256-DbtxVWPt+ZP5W0Usg7jAyTomIM//c3Jtfa59Ht7AV8s=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "c9cf0708f00fbe553319258e48ca89ff9a413703", + "rev": "66aedfd010204949cb225cf749be08cb13ce1813", "type": "github" }, "original": { @@ -163,11 +163,11 @@ }, "nur": { "locked": { - "lastModified": 1690541304, - "narHash": "sha256-EypV1o52D9SdHWyH3Wf6RLdDiDnKIqqXiUROrtN2KyQ=", + "lastModified": 1691139289, + "narHash": "sha256-cZtqvYztpGwLtAsfrzY2VeTfFdW3HBwX7m1KV2Zy2nw=", "owner": "nix-community", "repo": "NUR", - "rev": "03f02d6f7b5c284fe6ed12f86debb21429ca124c", + "rev": "cb20b89d5b355c53a18dd149e7104a67381c7c17", "type": "github" }, "original": { @@ -192,11 +192,11 @@ ] }, "locked": { - "lastModified": 1690464206, - "narHash": "sha256-38V4kmOh6ikpfGiAS+Kt2H/TA2DubSqE66veP/jmB4Q=", + "lastModified": 1691093055, + "narHash": "sha256-sjNWYpDHc6vx+/M0WbBZKltR0Avh2S43UiDbmYtfHt0=", "owner": "cachix", "repo": "pre-commit-hooks.nix", - "rev": "9289996dcac62fd45836db7c07b87d2521eb526d", + "rev": "ebb43bdacd1af8954d04869c77bc3b61fde515e4", "type": "github" }, "original": { From 7b6779f2b5e5aae5f3608371b157d70dcb24f2d8 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Tue, 1 Aug 2023 14:57:22 +0000 Subject: [PATCH 064/245] modules: services: woodpecker: default packages Now that v1.0.0 is on nixpkgs, no need for my custom packages. --- modules/services/woodpecker/agent-docker/default.nix | 4 +--- modules/services/woodpecker/agent-exec/default.nix | 2 -- modules/services/woodpecker/server/default.nix | 4 +--- 3 files changed, 2 insertions(+), 8 deletions(-) diff --git a/modules/services/woodpecker/agent-docker/default.nix b/modules/services/woodpecker/agent-docker/default.nix index 2d431bc..b18d075 100644 --- a/modules/services/woodpecker/agent-docker/default.nix +++ b/modules/services/woodpecker/agent-docker/default.nix @@ -1,4 +1,4 @@ -{ config, lib, pkgs, ... }: +{ config, lib, ... }: let cfg = config.my.services.woodpecker; @@ -10,8 +10,6 @@ in agents.docker = { enable = true; - package = pkgs.ambroisie.woodpecker-agent; - environment = { WOODPECKER_SERVER = "localhost:${toString cfg.rpcPort}"; WOODPECKER_MAX_WORKFLOWS = "10"; diff --git a/modules/services/woodpecker/agent-exec/default.nix b/modules/services/woodpecker/agent-exec/default.nix index 68510d7..db98241 100644 --- a/modules/services/woodpecker/agent-exec/default.nix +++ b/modules/services/woodpecker/agent-exec/default.nix @@ -10,8 +10,6 @@ in agents.exec = { enable = true; - package = pkgs.ambroisie.woodpecker-agent; - environment = { WOODPECKER_SERVER = "localhost:${toString cfg.rpcPort}"; WOODPECKER_MAX_WORKFLOWS = "10"; diff --git a/modules/services/woodpecker/server/default.nix b/modules/services/woodpecker/server/default.nix index 590f07c..152e707 100644 --- a/modules/services/woodpecker/server/default.nix +++ b/modules/services/woodpecker/server/default.nix @@ -1,4 +1,4 @@ -{ config, lib, pkgs, ... }: +{ config, lib, ... }: let cfg = config.my.services.woodpecker; in @@ -7,8 +7,6 @@ in services.woodpecker-server = { enable = true; - package = pkgs.ambroisie.woodpecker-server; - environment = { WOODPECKER_OPEN = "true"; WOODPECKER_HOST = "https://woodpecker.${config.networking.domain}"; From 0cf6cfe39bf5f047f1927b60b6ecdc1387266eb7 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Tue, 1 Aug 2023 14:58:16 +0000 Subject: [PATCH 065/245] pkgs: remove woodpecker Now that v1.0.0 is on nixpkgs, no need for my custom packages. --- pkgs/default.nix | 8 - pkgs/woodpecker/agent.nix | 25 - pkgs/woodpecker/cli.nix | 16 - pkgs/woodpecker/common.nix | 38 - pkgs/woodpecker/frontend.nix | 57 - pkgs/woodpecker/server.nix | 26 - pkgs/woodpecker/update.sh | 50 - pkgs/woodpecker/woodpecker-package.json | 71 - pkgs/woodpecker/yarn.lock | 3153 ----------------------- 9 files changed, 3444 deletions(-) delete mode 100644 pkgs/woodpecker/agent.nix delete mode 100644 pkgs/woodpecker/cli.nix delete mode 100644 pkgs/woodpecker/common.nix delete mode 100644 pkgs/woodpecker/frontend.nix delete mode 100644 pkgs/woodpecker/server.nix delete mode 100755 pkgs/woodpecker/update.sh delete mode 100644 pkgs/woodpecker/woodpecker-package.json delete mode 100644 pkgs/woodpecker/yarn.lock diff --git a/pkgs/default.nix b/pkgs/default.nix index ed27dc9..c9e755a 100644 --- a/pkgs/default.nix +++ b/pkgs/default.nix @@ -37,12 +37,4 @@ pkgs.lib.makeScope pkgs.newScope (pkgs: { volantes-cursors = pkgs.callPackage ./volantes-cursors { }; wifi-qr = pkgs.callPackage ./wifi-qr { }; - - woodpecker-agent = pkgs.callPackage ./woodpecker/agent.nix { }; - - woodpecker-cli = pkgs.callPackage ./woodpecker/cli.nix { }; - - woodpecker-frontend = pkgs.callPackage ./woodpecker/frontend.nix { }; - - woodpecker-server = pkgs.callPackage ./woodpecker/server.nix { }; }) diff --git a/pkgs/woodpecker/agent.nix b/pkgs/woodpecker/agent.nix deleted file mode 100644 index 49ff887..0000000 --- a/pkgs/woodpecker/agent.nix +++ /dev/null @@ -1,25 +0,0 @@ -{ buildGoModule, callPackage, fetchpatch }: -let - common = callPackage ./common.nix { }; -in -buildGoModule { - pname = "woodpecker-agent"; - inherit (common) version src ldflags postInstall vendorHash; - - patches = [ - # https://github.com/woodpecker-ci/woodpecker/pull/1686 - (fetchpatch { - name = "fix-local-pipeline-home.patch"; - url = "https://github.com/woodpecker-ci/woodpecker/commit/d2c9b73ebf015bfa64062b9855c33e14484ccc3e.patch"; - hash = "sha256-1wYe4+oCWiV/6W4cIbdDT+mEL9ETQmcYQZhjJASvmUk="; - }) - ]; - - subPackages = "cmd/agent"; - - CGO_ENABLED = 0; - - meta = common.meta // { - description = "Woodpecker Continuous Integration agent"; - }; -} diff --git a/pkgs/woodpecker/cli.nix b/pkgs/woodpecker/cli.nix deleted file mode 100644 index efe6d5f..0000000 --- a/pkgs/woodpecker/cli.nix +++ /dev/null @@ -1,16 +0,0 @@ -{ buildGoModule, callPackage }: -let - common = callPackage ./common.nix { }; -in -buildGoModule { - pname = "woodpecker-cli"; - inherit (common) version src ldflags postInstall vendorHash; - - subPackages = "cmd/cli"; - - CGO_ENABLED = 0; - - meta = common.meta // { - description = "Command line client for the Woodpecker Continuous Integration server"; - }; -} diff --git a/pkgs/woodpecker/common.nix b/pkgs/woodpecker/common.nix deleted file mode 100644 index 8ca96d4..0000000 --- a/pkgs/woodpecker/common.nix +++ /dev/null @@ -1,38 +0,0 @@ -{ lib, fetchFromGitHub }: -let - rev = "e7ca28026bc4576b2dd30aa2ab71c2d07dfc7197"; - srcHash = "sha256-vtttb+tRi3uDFn8liFgZcAqWLENfpTY7lWsNCoTFzEM="; - vendorHash = "sha256-u7HT8+LeqS7mCNbUhrvSW0xd/uduL2Kw7A0mUUpW2w4="; - yarnHash = "sha256-h+he2VxvZlStIoLb1PPxqKSmTfFNGgJmUXptjtc5xD8="; - version = "next-${lib.substring 0 8 rev}"; -in -{ - inherit version yarnHash vendorHash; - - src = fetchFromGitHub { - owner = "woodpecker-ci"; - repo = "woodpecker"; - inherit rev; - hash = srcHash; - }; - - postInstall = '' - cd $out/bin - for f in *; do - mv -- "$f" "woodpecker-$f" - done - cd - - ''; - - ldflags = [ - "-s" - "-w" - "-X github.com/woodpecker-ci/woodpecker/version.Version=${version}" - ]; - - meta = with lib; { - homepage = "https://woodpecker-ci.org/"; - license = licenses.asl20; - maintainers = with maintainers; [ ambroisie techknowlogick ]; - }; -} diff --git a/pkgs/woodpecker/frontend.nix b/pkgs/woodpecker/frontend.nix deleted file mode 100644 index e584549..0000000 --- a/pkgs/woodpecker/frontend.nix +++ /dev/null @@ -1,57 +0,0 @@ -{ lib, buildPackages, callPackage, fetchFromGitHub, fetchYarnDeps, mkYarnPackage }: -let - common = callPackage ./common.nix { }; - - esbuild_0_17_12 = buildPackages.esbuild.overrideAttrs (_: rec { - version = "0.17.12"; - - src = fetchFromGitHub { - owner = "evanw"; - repo = "esbuild"; - rev = "v${version}"; - hash = "sha256-75qDQWAp6cmuXtq90oIIQCj5IKUoQxNARxhFo2Sm5mk="; - }; - - vendorHash = "sha256-+BfxCyg0KkDQpHt/wycy/8CTG6YBA/VJvJFhhzUnSiQ="; - }); -in -mkYarnPackage { - pname = "woodpecker-frontend"; - inherit (common) version; - - src = "${common.src}/web"; - - packageJSON = ./woodpecker-package.json; - yarnLock = ./yarn.lock; - - offlineCache = fetchYarnDeps { - yarnLock = ./yarn.lock; - hash = common.yarnHash; - }; - - ESBUILD_BINARY_PATH = lib.getExe esbuild_0_17_12; - - buildPhase = '' - runHook preBuild - - yarn --offline build - - runHook postBuild - ''; - - installPhase = '' - runHook preInstall - - cp -R deps/woodpecker-ci/dist $out - echo "${common.version}" > "$out/version" - - runHook postInstall - ''; - - # Do not attempt generating a tarball for woodpecker-frontend again. - doDist = false; - - meta = common.meta // { - description = "Woodpecker Continuous Integration server frontend"; - }; -} diff --git a/pkgs/woodpecker/server.nix b/pkgs/woodpecker/server.nix deleted file mode 100644 index fd8415c..0000000 --- a/pkgs/woodpecker/server.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ buildGoModule, callPackage, woodpecker-frontend }: -let - common = callPackage ./common.nix { }; -in -buildGoModule { - pname = "woodpecker-server"; - inherit (common) version src ldflags postInstall vendorHash; - - postPatch = '' - cp -r ${woodpecker-frontend} web/dist - ''; - - subPackages = "cmd/server"; - - CGO_ENABLED = 1; - - passthru = { - inherit woodpecker-frontend; - - updateScript = ./update.sh; - }; - - meta = common.meta // { - description = "Woodpecker Continuous Integration server"; - }; -} diff --git a/pkgs/woodpecker/update.sh b/pkgs/woodpecker/update.sh deleted file mode 100755 index 460ea0b..0000000 --- a/pkgs/woodpecker/update.sh +++ /dev/null @@ -1,50 +0,0 @@ -#!/usr/bin/env nix-shell -#!nix-shell -i bash -p nix wget prefetch-yarn-deps nix-prefetch-github jq nix-prefetch pnpm-lock-export - -# shellcheck shell=bash - -if [ -n "$GITHUB_TOKEN" ]; then - TOKEN_ARGS=(--header "Authorization: token $GITHUB_TOKEN") -fi - -if [[ $# -gt 1 || $1 == -* ]]; then - echo "Regenerates packaging data for the woodpecker packages." - echo "Usage: $0 [git release tag]" - exit 1 -fi - -set -x - -cd "$(dirname "$0")" -rev="$1" - -set -euo pipefail - -if [ -z "$rev" ]; then - rev="$(wget -O- "${TOKEN_ARGS[@]}" "https://api.github.com/repos/woodpecker-ci/woodpecker/commits?per_page=1" | jq -r '.[0].sha')" -fi - -# Woodpecker repository -src_hash=$(nix-prefetch-github woodpecker-ci woodpecker --rev "${rev}" | jq -r .sha256) - -# Go modules -mod_hash=$(nix-prefetch '{ sha256 }: (callPackage (import ./cli.nix) { }).go-modules.overrideAttrs (_: { modHash = sha256; })') - -# Front-end dependencies -woodpecker_src="https://raw.githubusercontent.com/woodpecker-ci/woodpecker/$rev" -wget "${TOKEN_ARGS[@]}" "$woodpecker_src/web/package.json" -O woodpecker-package.json - -trap 'rm -rf pnpm-lock.yaml' EXIT -wget "${TOKEN_ARGS[@]}" "$woodpecker_src/web/pnpm-lock.yaml" -pnpm-lock-export --schema yarn.lock@v1 -yarn_hash=$(prefetch-yarn-deps yarn.lock) - -# Use friendlier hashes -src_hash=$(nix hash to-sri --type sha256 "$src_hash") -mod_hash=$(nix hash to-sri --type sha256 "$mod_hash") -yarn_hash=$(nix hash to-sri --type sha256 "$yarn_hash") - -sed -i -E -e "s#rev = \".*\"#rev = \"$rev\"#" common.nix -sed -i -E -e "s#srcHash = \".*\"#srcHash = \"$src_hash\"#" common.nix -sed -i -E -e "s#modHash = \".*\"#modHash = \"$mod_hash\"#" common.nix -sed -i -E -e "s#yarnHash = \".*\"#yarnHash = \"$yarn_hash\"#" common.nix diff --git a/pkgs/woodpecker/woodpecker-package.json b/pkgs/woodpecker/woodpecker-package.json deleted file mode 100644 index 08210db..0000000 --- a/pkgs/woodpecker/woodpecker-package.json +++ /dev/null @@ -1,71 +0,0 @@ -{ - "name": "woodpecker-ci", - "author": "Woodpecker CI", - "version": "0.0.0", - "license": "Apache-2.0", - "engines": { - "node": ">=14" - }, - "scripts": { - "start": "vite", - "build": "vite build", - "serve": "vite preview", - "lint": "eslint --max-warnings 0 --ext .js,.ts,.vue,.json .", - "formatcheck": "prettier -c .", - "format:fix": "prettier --write .", - "typecheck": "vue-tsc --noEmit", - "test": "echo 'No tests configured' && exit 0" - }, - "dependencies": { - "@intlify/unplugin-vue-i18n": "^0.9.2", - "@kyvg/vue3-notification": "^2.9.0", - "@vueuse/core": "^9.13.0", - "ansi_up": "^5.1.0", - "dayjs": "^1.11.7", - "floating-vue": "^2.0.0-beta.20", - "fuse.js": "^6.6.2", - "humanize-duration": "^3.28.0", - "javascript-time-ago": "^2.5.9", - "lodash": "^4.17.21", - "node-emoji": "^1.11.0", - "pinia": "^2.0.33", - "prismjs": "^1.29.0", - "vue": "^3.2.47", - "vue-i18n": "^9.2.2", - "vue-router": "^4.1.6" - }, - "devDependencies": { - "@iconify/json": "^2.2.36", - "@types/humanize-duration": "^3.27.1", - "@types/javascript-time-ago": "^2.0.3", - "@types/lodash": "^4.14.191", - "@types/node": "^18.15.3", - "@types/node-emoji": "^1.8.2", - "@types/prismjs": "^1.26.0", - "@typescript-eslint/eslint-plugin": "^5.55.0", - "@typescript-eslint/parser": "^5.55.0", - "@vitejs/plugin-vue": "^4.1.0", - "@vue/compiler-sfc": "^3.2.47", - "eslint": "^8.36.0", - "eslint-config-airbnb-base": "^15.0.0", - "eslint-config-airbnb-typescript": "^17.0.0", - "eslint-config-prettier": "^8.7.0", - "eslint-plugin-import": "^2.27.5", - "eslint-plugin-prettier": "^4.2.1", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-simple-import-sort": "^10.0.0", - "eslint-plugin-vue": "^9.9.0", - "eslint-plugin-vue-scoped-css": "^2.4.0", - "prettier": "^2.8.5", - "typescript": "5.0.2", - "unplugin-icons": "^0.15.3", - "unplugin-vue-components": "^0.24.1", - "vite": "^4.2.0", - "vite-plugin-prismjs": "^0.0.8", - "vite-plugin-windicss": "^1.8.10", - "vite-svg-loader": "^4.0.0", - "vue-eslint-parser": "^9.1.0", - "vue-tsc": "^1.2.0", - "windicss": "^3.5.6" - } -} diff --git a/pkgs/woodpecker/yarn.lock b/pkgs/woodpecker/yarn.lock deleted file mode 100644 index f99656c..0000000 --- a/pkgs/woodpecker/yarn.lock +++ /dev/null @@ -1,3153 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@ampproject/remapping@2.2.0": - version "2.2.0" - resolved "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz" - integrity "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==" - dependencies: - "@jridgewell/gen-mapping" "0.1.1" - "@jridgewell/trace-mapping" "0.3.17" - -"@antfu/install-pkg@0.1.1": - version "0.1.1" - resolved "https://registry.npmjs.org/@antfu/install-pkg/-/install-pkg-0.1.1.tgz" - integrity "sha512-LyB/8+bSfa0DFGC06zpCEfs89/XoWZwws5ygEa5D+Xsm3OfI+aXQ86VgVG7Acyef+rSZ5HE7J8rrxzrQeM3PjQ==" - dependencies: - "execa" "5.1.1" - "find-up" "5.0.0" - -"@antfu/utils@0.7.2": - version "0.7.2" - resolved "https://registry.npmjs.org/@antfu/utils/-/utils-0.7.2.tgz" - integrity "sha512-vy9fM3pIxZmX07dL+VX1aZe7ynZ+YyB0jY+jE6r3hOK6GNY2t6W8rzpFC4tgpbXUYABkFQwgJq2XYXlxbXAI0g==" - -"@babel/code-frame@7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz" - integrity "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==" - dependencies: - "@babel/highlight" "7.18.6" - -"@babel/compat-data@7.19.4": - version "7.19.4" - resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.19.4.tgz" - integrity "sha512-CHIGpJcUQ5lU9KrPHTjBMhVwQG6CQjxfg36fGXl3qk/Gik1WwWachaXFuo0uCWJT/mStOKtcbFJCaVLihC1CMw==" - -"@babel/core@7.19.3": - version "7.19.3" - resolved "https://registry.npmjs.org/@babel/core/-/core-7.19.3.tgz" - integrity "sha512-WneDJxdsjEvyKtXKsaBGbDeiyOjR5vYq4HcShxnIbG0qixpoHjI3MqeZM9NDvsojNCEBItQE4juOo/bU6e72gQ==" - dependencies: - "@ampproject/remapping" "2.2.0" - "@babel/code-frame" "7.18.6" - "@babel/generator" "7.19.5" - "@babel/helper-compilation-targets" "7.19.3" - "@babel/helper-module-transforms" "7.19.0" - "@babel/helpers" "7.19.4" - "@babel/parser" "7.19.4" - "@babel/template" "7.18.10" - "@babel/traverse" "7.19.4" - "@babel/types" "7.19.4" - "convert-source-map" "1.9.0" - "debug" "4.3.4" - "gensync" "1.0.0-beta.2" - "json5" "2.2.1" - "semver" "6.3.0" - -"@babel/generator@7.19.5": - version "7.19.5" - resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.19.5.tgz" - integrity "sha512-DxbNz9Lz4aMZ99qPpO1raTbcrI1ZeYh+9NR9qhfkQIbFtVEqotHojEBxHzmxhVONkGt6VyrqVQcgpefMy9pqcg==" - dependencies: - "@babel/types" "7.19.4" - "@jridgewell/gen-mapping" "0.3.2" - "jsesc" "2.5.2" - -"@babel/helper-compilation-targets@7.19.3": - version "7.19.3" - resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.19.3.tgz" - integrity "sha512-65ESqLGyGmLvgR0mst5AdW1FkNlj9rQsCKduzEoEPhBCDFGXvz2jW6bXFG6i0/MrV2s7hhXjjb2yAzcPuQlLwg==" - dependencies: - "@babel/compat-data" "7.19.4" - "@babel/core" "7.19.3" - "@babel/helper-validator-option" "7.18.6" - "browserslist" "4.21.4" - "semver" "6.3.0" - -"@babel/helper-environment-visitor@7.18.9": - version "7.18.9" - resolved "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz" - integrity "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==" - -"@babel/helper-function-name@7.19.0": - version "7.19.0" - resolved "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz" - integrity "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==" - dependencies: - "@babel/template" "7.18.10" - "@babel/types" "7.19.4" - -"@babel/helper-hoist-variables@7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz" - integrity "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==" - dependencies: - "@babel/types" "7.19.4" - -"@babel/helper-module-imports@7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz" - integrity "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==" - dependencies: - "@babel/types" "7.19.4" - -"@babel/helper-module-transforms@7.19.0": - version "7.19.0" - resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.19.0.tgz" - integrity "sha512-3HBZ377Fe14RbLIA+ac3sY4PTgpxHVkFrESaWhoI5PuyXPBBX8+C34qblV9G89ZtycGJCmCI/Ut+VUDK4bltNQ==" - dependencies: - "@babel/helper-environment-visitor" "7.18.9" - "@babel/helper-module-imports" "7.18.6" - "@babel/helper-simple-access" "7.19.4" - "@babel/helper-split-export-declaration" "7.18.6" - "@babel/helper-validator-identifier" "7.19.1" - "@babel/template" "7.18.10" - "@babel/traverse" "7.19.4" - "@babel/types" "7.19.4" - -"@babel/helper-simple-access@7.19.4": - version "7.19.4" - resolved "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.19.4.tgz" - integrity "sha512-f9Xq6WqBFqaDfbCzn2w85hwklswz5qsKlh7f08w4Y9yhJHpnNC0QemtSkK5YyOY8kPGvyiwdzZksGUhnGdaUIg==" - dependencies: - "@babel/types" "7.19.4" - -"@babel/helper-split-export-declaration@7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz" - integrity "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==" - dependencies: - "@babel/types" "7.19.4" - -"@babel/helper-string-parser@7.19.4": - version "7.19.4" - resolved "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz" - integrity "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==" - -"@babel/helper-validator-identifier@7.19.1": - version "7.19.1" - resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz" - integrity "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==" - -"@babel/helper-validator-option@7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz" - integrity "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==" - -"@babel/helpers@7.19.4": - version "7.19.4" - resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.19.4.tgz" - integrity "sha512-G+z3aOx2nfDHwX/kyVii5fJq+bgscg89/dJNWpYeKeBv3v9xX8EIabmx1k6u9LS04H7nROFVRVK+e3k0VHp+sw==" - dependencies: - "@babel/template" "7.18.10" - "@babel/traverse" "7.19.4" - "@babel/types" "7.19.4" - -"@babel/highlight@7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz" - integrity "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==" - dependencies: - "@babel/helper-validator-identifier" "7.19.1" - "chalk" "2.4.2" - "js-tokens" "4.0.0" - -"@babel/parser@7.19.4": - version "7.19.4" - resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.19.4.tgz" - integrity "sha512-qpVT7gtuOLjWeDTKLkJ6sryqLliBaFpAtGeqw5cs5giLldvh+Ch0plqnUMKoVAUS6ZEueQQiZV+p5pxtPitEsA==" - dependencies: - "@babel/types" "7.19.4" - -"@babel/template@7.18.10": - version "7.18.10" - resolved "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz" - integrity "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==" - dependencies: - "@babel/code-frame" "7.18.6" - "@babel/parser" "7.19.4" - "@babel/types" "7.19.4" - -"@babel/traverse@7.19.4": - version "7.19.4" - resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.19.4.tgz" - integrity "sha512-w3K1i+V5u2aJUOXBFFC5pveFLmtq1s3qcdDNC2qRI6WPBQIDaKFqXxDEqDO/h1dQ3HjsZoZMyIy6jGLq0xtw+g==" - dependencies: - "@babel/code-frame" "7.18.6" - "@babel/generator" "7.19.5" - "@babel/helper-environment-visitor" "7.18.9" - "@babel/helper-function-name" "7.19.0" - "@babel/helper-hoist-variables" "7.18.6" - "@babel/helper-split-export-declaration" "7.18.6" - "@babel/parser" "7.19.4" - "@babel/types" "7.19.4" - "debug" "4.3.4" - "globals" "11.12.0" - -"@babel/types@7.19.4": - version "7.19.4" - resolved "https://registry.npmjs.org/@babel/types/-/types-7.19.4.tgz" - integrity "sha512-M5LK7nAeS6+9j7hAq+b3fQs+pNfUtTGq+yFFfHnauFA8zQtLRfmuipmsKDKKLuyG+wC8ABW43A153YNawNTEtw==" - dependencies: - "@babel/helper-string-parser" "7.19.4" - "@babel/helper-validator-identifier" "7.19.1" - "to-fast-properties" "2.0.0" - -"@esbuild/android-arm@0.17.12": - version "0.17.12" - resolved "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.12.tgz" - integrity "sha512-E/sgkvwoIfj4aMAPL2e35VnUJspzVYl7+M1B2cqeubdBhADV4uPon0KCc8p2G+LqSJ6i8ocYPCqY3A4GGq0zkQ==" - -"@esbuild/android-arm64@0.17.12": - version "0.17.12" - resolved "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.12.tgz" - integrity "sha512-WQ9p5oiXXYJ33F2EkE3r0FRDFVpEdcDiwNX3u7Xaibxfx6vQE0Sb8ytrfQsA5WO6kDn6mDfKLh6KrPBjvkk7xA==" - -"@esbuild/android-x64@0.17.12": - version "0.17.12" - resolved "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.12.tgz" - integrity "sha512-m4OsaCr5gT+se25rFPHKQXARMyAehHTQAz4XX1Vk3d27VtqiX0ALMBPoXZsGaB6JYryCLfgGwUslMqTfqeLU0w==" - -"@esbuild/darwin-arm64@0.17.12": - version "0.17.12" - resolved "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.12.tgz" - integrity "sha512-O3GCZghRIx+RAN0NDPhyyhRgwa19MoKlzGonIb5hgTj78krqp9XZbYCvFr9N1eUxg0ZQEpiiZ4QvsOQwBpP+lg==" - -"@esbuild/darwin-x64@0.17.12": - version "0.17.12" - resolved "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.12.tgz" - integrity "sha512-5D48jM3tW27h1qjaD9UNRuN+4v0zvksqZSPZqeSWggfMlsVdAhH3pwSfQIFJwcs9QJ9BRibPS4ViZgs3d2wsCA==" - -"@esbuild/freebsd-arm64@0.17.12": - version "0.17.12" - resolved "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.12.tgz" - integrity "sha512-OWvHzmLNTdF1erSvrfoEBGlN94IE6vCEaGEkEH29uo/VoONqPnoDFfShi41Ew+yKimx4vrmmAJEGNoyyP+OgOQ==" - -"@esbuild/freebsd-x64@0.17.12": - version "0.17.12" - resolved "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.12.tgz" - integrity "sha512-A0Xg5CZv8MU9xh4a+7NUpi5VHBKh1RaGJKqjxe4KG87X+mTjDE6ZvlJqpWoeJxgfXHT7IMP9tDFu7IZ03OtJAw==" - -"@esbuild/linux-arm@0.17.12": - version "0.17.12" - resolved "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.12.tgz" - integrity "sha512-WsHyJ7b7vzHdJ1fv67Yf++2dz3D726oO3QCu8iNYik4fb5YuuReOI9OtA+n7Mk0xyQivNTPbl181s+5oZ38gyA==" - -"@esbuild/linux-arm64@0.17.12": - version "0.17.12" - resolved "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.12.tgz" - integrity "sha512-cK3AjkEc+8v8YG02hYLQIQlOznW+v9N+OI9BAFuyqkfQFR+DnDLhEM5N8QRxAUz99cJTo1rLNXqRrvY15gbQUg==" - -"@esbuild/linux-ia32@0.17.12": - version "0.17.12" - resolved "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.12.tgz" - integrity "sha512-jdOBXJqcgHlah/nYHnj3Hrnl9l63RjtQ4vn9+bohjQPI2QafASB5MtHAoEv0JQHVb/xYQTFOeuHnNYE1zF7tYw==" - -"@esbuild/linux-loong64@0.17.12": - version "0.17.12" - resolved "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.12.tgz" - integrity "sha512-GTOEtj8h9qPKXCyiBBnHconSCV9LwFyx/gv3Phw0pa25qPYjVuuGZ4Dk14bGCfGX3qKF0+ceeQvwmtI+aYBbVA==" - -"@esbuild/linux-mips64el@0.17.12": - version "0.17.12" - resolved "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.12.tgz" - integrity "sha512-o8CIhfBwKcxmEENOH9RwmUejs5jFiNoDw7YgS0EJTF6kgPgcqLFjgoc5kDey5cMHRVCIWc6kK2ShUePOcc7RbA==" - -"@esbuild/linux-ppc64@0.17.12": - version "0.17.12" - resolved "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.12.tgz" - integrity "sha512-biMLH6NR/GR4z+ap0oJYb877LdBpGac8KfZoEnDiBKd7MD/xt8eaw1SFfYRUeMVx519kVkAOL2GExdFmYnZx3A==" - -"@esbuild/linux-riscv64@0.17.12": - version "0.17.12" - resolved "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.12.tgz" - integrity "sha512-jkphYUiO38wZGeWlfIBMB72auOllNA2sLfiZPGDtOBb1ELN8lmqBrlMiucgL8awBw1zBXN69PmZM6g4yTX84TA==" - -"@esbuild/linux-s390x@0.17.12": - version "0.17.12" - resolved "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.12.tgz" - integrity "sha512-j3ucLdeY9HBcvODhCY4b+Ds3hWGO8t+SAidtmWu/ukfLLG/oYDMaA+dnugTVAg5fnUOGNbIYL9TOjhWgQB8W5g==" - -"@esbuild/linux-x64@0.17.12": - version "0.17.12" - resolved "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.12.tgz" - integrity "sha512-uo5JL3cgaEGotaqSaJdRfFNSCUJOIliKLnDGWaVCgIKkHxwhYMm95pfMbWZ9l7GeW9kDg0tSxcy9NYdEtjwwmA==" - -"@esbuild/netbsd-x64@0.17.12": - version "0.17.12" - resolved "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.12.tgz" - integrity "sha512-DNdoRg8JX+gGsbqt2gPgkgb00mqOgOO27KnrWZtdABl6yWTST30aibGJ6geBq3WM2TIeW6COs5AScnC7GwtGPg==" - -"@esbuild/openbsd-x64@0.17.12": - version "0.17.12" - resolved "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.12.tgz" - integrity "sha512-aVsENlr7B64w8I1lhHShND5o8cW6sB9n9MUtLumFlPhG3elhNWtE7M1TFpj3m7lT3sKQUMkGFjTQBrvDDO1YWA==" - -"@esbuild/sunos-x64@0.17.12": - version "0.17.12" - resolved "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.12.tgz" - integrity "sha512-qbHGVQdKSwi0JQJuZznS4SyY27tYXYF0mrgthbxXrZI3AHKuRvU+Eqbg/F0rmLDpW/jkIZBlCO1XfHUBMNJ1pg==" - -"@esbuild/win32-arm64@0.17.12": - version "0.17.12" - resolved "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.12.tgz" - integrity "sha512-zsCp8Ql+96xXTVTmm6ffvoTSZSV2B/LzzkUXAY33F/76EajNw1m+jZ9zPfNJlJ3Rh4EzOszNDHsmG/fZOhtqDg==" - -"@esbuild/win32-ia32@0.17.12": - version "0.17.12" - resolved "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.12.tgz" - integrity "sha512-FfrFjR4id7wcFYOdqbDfDET3tjxCozUgbqdkOABsSFzoZGFC92UK7mg4JKRc/B3NNEf1s2WHxJ7VfTdVDPN3ng==" - -"@esbuild/win32-x64@0.17.12": - version "0.17.12" - resolved "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.12.tgz" - integrity "sha512-JOOxw49BVZx2/5tW3FqkdjSD/5gXYeVGPDcB0lvap0gLQshkh1Nyel1QazC+wNxus3xPlsYAgqU1BUmrmCvWtw==" - -"@eslint-community/eslint-utils@4.3.0": - version "4.3.0" - resolved "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.3.0.tgz" - integrity "sha512-v3oplH6FYCULtFuCeqyuTd9D2WKO937Dxdq+GmHOLL72TTRriLxz2VLlNfkZRsvj6PKnOPAtuT6dwrs/pA5DvA==" - dependencies: - "eslint" "8.36.0" - "eslint-visitor-keys" "3.3.0" - -"@eslint-community/regexpp@4.4.0": - version "4.4.0" - resolved "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.4.0.tgz" - integrity "sha512-A9983Q0LnDGdLPjxyXQ00sbV+K+O+ko2Dr+CZigbHWtX9pNfxlaBkMR8X1CztI73zuEyEBXTVjx7CE+/VSwDiQ==" - -"@eslint/eslintrc@2.0.1": - version "2.0.1" - resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.1.tgz" - integrity "sha512-eFRmABvW2E5Ho6f5fHLqgena46rOj7r7OKHYfLElqcBfGFHHpjBhivyi5+jOEQuSpdc/1phIZJlbC2te+tZNIw==" - dependencies: - "ajv" "6.12.6" - "debug" "4.3.4" - "espree" "9.5.0" - "globals" "13.20.0" - "ignore" "5.2.0" - "import-fresh" "3.3.0" - "js-yaml" "4.1.0" - "minimatch" "3.1.2" - "strip-json-comments" "3.1.1" - -"@eslint/js@8.36.0": - version "8.36.0" - resolved "https://registry.npmjs.org/@eslint/js/-/js-8.36.0.tgz" - integrity "sha512-lxJ9R5ygVm8ZWgYdUweoq5ownDlJ4upvoWmO4eLxBYHdMo+vZ/Rx0EN6MbKWDJOSUGrqJy2Gt+Dyv/VKml0fjg==" - -"@floating-ui/core@0.3.1": - version "0.3.1" - resolved "https://registry.npmjs.org/@floating-ui/core/-/core-0.3.1.tgz" - integrity "sha512-ensKY7Ub59u16qsVIFEo2hwTCqZ/r9oZZFh51ivcLGHfUwTn8l1Xzng8RJUe91H/UP8PeqeBronAGx0qmzwk2g==" - -"@floating-ui/dom@0.1.10": - version "0.1.10" - resolved "https://registry.npmjs.org/@floating-ui/dom/-/dom-0.1.10.tgz" - integrity "sha512-4kAVoogvQm2N0XE0G6APQJuCNuErjOfPW8Ux7DFxh8+AfugWflwVJ5LDlHOwrwut7z/30NUvdtHzQ3zSip4EzQ==" - dependencies: - "@floating-ui/core" "0.3.1" - -"@humanwhocodes/config-array@0.11.8": - version "0.11.8" - resolved "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz" - integrity "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==" - dependencies: - "@humanwhocodes/object-schema" "1.2.1" - "debug" "4.3.4" - "minimatch" "3.1.2" - -"@humanwhocodes/module-importer@1.0.1": - version "1.0.1" - resolved "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz" - integrity "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==" - -"@humanwhocodes/object-schema@1.2.1": - version "1.2.1" - resolved "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz" - integrity "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==" - -"@iconify/json@^2.2.36", "@iconify/json@2.2.36": - version "2.2.36" - resolved "https://registry.npmjs.org/@iconify/json/-/json-2.2.36.tgz" - integrity "sha512-M3NzzLjmE5udIO24EgT9MV1LfU5FQDw9nfAfgrV3NySiLMtZFoOvFEdURJihH2SJWCoFhIpRRkgSZKN8qWIhuQ==" - dependencies: - "@iconify/types" "2.0.0" - "pathe" "1.1.0" - -"@iconify/types@2.0.0": - version "2.0.0" - resolved "https://registry.npmjs.org/@iconify/types/-/types-2.0.0.tgz" - integrity "sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==" - -"@iconify/utils@2.1.5": - version "2.1.5" - resolved "https://registry.npmjs.org/@iconify/utils/-/utils-2.1.5.tgz" - integrity "sha512-6MvDI+I6QMvXn5rK9KQGdpEE4mmLTcuQdLZEiX5N+uZB+vc4Yw9K1OtnOgkl8mp4d9X0UrILREyZgF1NUwUt+Q==" - dependencies: - "@antfu/install-pkg" "0.1.1" - "@antfu/utils" "0.7.2" - "@iconify/types" "2.0.0" - "debug" "4.3.4" - "kolorist" "1.7.0" - "local-pkg" "0.4.3" - -"@intlify/bundle-utils@5.2.0": - version "5.2.0" - resolved "https://registry.npmjs.org/@intlify/bundle-utils/-/bundle-utils-5.2.0.tgz" - integrity "sha512-rIfoNUTBoZK6IfaEeuoYMQZSuAXhPyZoy+UsdZj+V4eM632ynN1bGt5ttkpGO8xe0c+esfYslgJxBz//bdu4qg==" - dependencies: - "@intlify/message-compiler" "9.3.0-beta.16" - "@intlify/shared" "9.3.0-beta.16" - "acorn" "8.8.2" - "estree-walker" "2.0.2" - "jsonc-eslint-parser" "1.4.1" - "source-map" "0.6.1" - "vue-i18n" "9.2.2" - "yaml-eslint-parser" "0.3.2" - -"@intlify/core-base@9.2.2": - version "9.2.2" - resolved "https://registry.npmjs.org/@intlify/core-base/-/core-base-9.2.2.tgz" - integrity "sha512-JjUpQtNfn+joMbrXvpR4hTF8iJQ2sEFzzK3KIESOx+f+uwIjgw20igOyaIdhfsVVBCds8ZM64MoeNSx+PHQMkA==" - dependencies: - "@intlify/devtools-if" "9.2.2" - "@intlify/message-compiler" "9.2.2" - "@intlify/shared" "9.2.2" - "@intlify/vue-devtools" "9.2.2" - -"@intlify/devtools-if@9.2.2": - version "9.2.2" - resolved "https://registry.npmjs.org/@intlify/devtools-if/-/devtools-if-9.2.2.tgz" - integrity "sha512-4ttr/FNO29w+kBbU7HZ/U0Lzuh2cRDhP8UlWOtV9ERcjHzuyXVZmjyleESK6eVP60tGC9QtQW9yZE+JeRhDHkg==" - dependencies: - "@intlify/shared" "9.2.2" - -"@intlify/message-compiler@9.2.2": - version "9.2.2" - resolved "https://registry.npmjs.org/@intlify/message-compiler/-/message-compiler-9.2.2.tgz" - integrity "sha512-IUrQW7byAKN2fMBe8z6sK6riG1pue95e5jfokn8hA5Q3Bqy4MBJ5lJAofUsawQJYHeoPJ7svMDyBaVJ4d0GTtA==" - dependencies: - "@intlify/shared" "9.2.2" - "source-map" "0.6.1" - -"@intlify/message-compiler@9.3.0-beta.16": - version "9.3.0-beta.16" - resolved "https://registry.npmjs.org/@intlify/message-compiler/-/message-compiler-9.3.0-beta.16.tgz" - integrity "sha512-CGQI3xRcs1ET75eDQ0DUy3MRYOqTauRIIgaMoISKiF83gqRWg93FqN8lGMKcpBqaF4tI0JhsfosCaGiBL9+dnw==" - dependencies: - "@intlify/shared" "9.3.0-beta.16" - "source-map" "0.6.1" - -"@intlify/shared@9.2.2": - version "9.2.2" - resolved "https://registry.npmjs.org/@intlify/shared/-/shared-9.2.2.tgz" - integrity "sha512-wRwTpsslgZS5HNyM7uDQYZtxnbI12aGiBZURX3BTR9RFIKKRWpllTsgzHWvj3HKm3Y2Sh5LPC1r0PDCKEhVn9Q==" - -"@intlify/shared@9.3.0-beta.16": - version "9.3.0-beta.16" - resolved "https://registry.npmjs.org/@intlify/shared/-/shared-9.3.0-beta.16.tgz" - integrity "sha512-kXbm4svALe3lX+EjdJxfnabOphqS4yQ1Ge/iIlR8tvUiYRCoNz3hig1M4336iY++Dfx5ytEQJPNjIcknNIuvig==" - -"@intlify/unplugin-vue-i18n@^0.9.2", "@intlify/unplugin-vue-i18n@0.9.2": - version "0.9.2" - resolved "https://registry.npmjs.org/@intlify/unplugin-vue-i18n/-/unplugin-vue-i18n-0.9.2.tgz" - integrity "sha512-cNfa90+NVNdYJ0qqwRaEb2kGGp9zAve2xaAKCL7EzcQcvSWw42mhiOxcNkUc1QKlXnSHERMd6aT4/GUlFT1zBw==" - dependencies: - "@intlify/bundle-utils" "5.2.0" - "@intlify/shared" "9.3.0-beta.16" - "@rollup/pluginutils" "5.0.2" - "@vue/compiler-sfc" "3.2.47" - "debug" "4.3.4" - "fast-glob" "3.2.12" - "js-yaml" "4.1.0" - "json5" "2.2.3" - "pathe" "1.1.0" - "picocolors" "1.0.0" - "source-map" "0.6.1" - "unplugin" "1.3.1" - "vue-i18n" "9.2.2" - -"@intlify/vue-devtools@9.2.2": - version "9.2.2" - resolved "https://registry.npmjs.org/@intlify/vue-devtools/-/vue-devtools-9.2.2.tgz" - integrity "sha512-+dUyqyCHWHb/UcvY1MlIpO87munedm3Gn6E9WWYdWrMuYLcoIoOEVDWSS8xSwtlPU+kA+MEQTP6Q1iI/ocusJg==" - dependencies: - "@intlify/core-base" "9.2.2" - "@intlify/shared" "9.2.2" - -"@jridgewell/gen-mapping@0.1.1": - version "0.1.1" - resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz" - integrity "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==" - dependencies: - "@jridgewell/set-array" "1.1.2" - "@jridgewell/sourcemap-codec" "1.4.14" - -"@jridgewell/gen-mapping@0.3.2": - version "0.3.2" - resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz" - integrity "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==" - dependencies: - "@jridgewell/set-array" "1.1.2" - "@jridgewell/sourcemap-codec" "1.4.14" - "@jridgewell/trace-mapping" "0.3.17" - -"@jridgewell/resolve-uri@3.1.0": - version "3.1.0" - resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz" - integrity "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==" - -"@jridgewell/set-array@1.1.2": - version "1.1.2" - resolved "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz" - integrity "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==" - -"@jridgewell/sourcemap-codec@1.4.14": - version "1.4.14" - resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz" - integrity "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" - -"@jridgewell/trace-mapping@0.3.17": - version "0.3.17" - resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz" - integrity "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==" - dependencies: - "@jridgewell/resolve-uri" "3.1.0" - "@jridgewell/sourcemap-codec" "1.4.14" - -"@kyvg/vue3-notification@^2.9.0", "@kyvg/vue3-notification@2.9.0": - version "2.9.0" - resolved "https://registry.npmjs.org/@kyvg/vue3-notification/-/vue3-notification-2.9.0.tgz" - integrity "sha512-5Vxl8h/+PFtBmzGgMxTjkH4gwEpvmTEka+dLqpek+8GJFm6LDfSji+rFx9vumgBF7db0KenGWeSrA+Qnclz9vg==" - dependencies: - "vue" "3.2.47" - -"@nodelib/fs.scandir@2.1.5": - version "2.1.5" - resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz" - integrity "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==" - dependencies: - "@nodelib/fs.stat" "2.0.5" - "run-parallel" "1.2.0" - -"@nodelib/fs.stat@2.0.5": - version "2.0.5" - resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz" - integrity "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==" - -"@nodelib/fs.walk@1.2.8": - version "1.2.8" - resolved "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz" - integrity "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==" - dependencies: - "@nodelib/fs.scandir" "2.1.5" - "fastq" "1.13.0" - -"@rollup/pluginutils@5.0.2": - version "5.0.2" - resolved "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.0.2.tgz" - integrity "sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==" - dependencies: - "@types/estree" "1.0.0" - "estree-walker" "2.0.2" - "picomatch" "2.3.1" - -"@trysound/sax@0.2.0": - version "0.2.0" - resolved "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz" - integrity "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==" - -"@types/estree@1.0.0": - version "1.0.0" - resolved "https://registry.npmjs.org/@types/estree/-/estree-1.0.0.tgz" - integrity "sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==" - -"@types/humanize-duration@^3.27.1", "@types/humanize-duration@3.27.1": - version "3.27.1" - resolved "https://registry.npmjs.org/@types/humanize-duration/-/humanize-duration-3.27.1.tgz" - integrity "sha512-K3e+NZlpCKd6Bd/EIdqjFJRFHbrq5TzPPLwREk5Iv/YoIjQrs6ljdAUCo+Lb2xFlGNOjGSE0dqsVD19cZL137w==" - -"@types/javascript-time-ago@^2.0.3", "@types/javascript-time-ago@2.0.3": - version "2.0.3" - resolved "https://registry.npmjs.org/@types/javascript-time-ago/-/javascript-time-ago-2.0.3.tgz" - integrity "sha512-G6SdYh6gHxgCTU0s4cMIRHwRO4p3f7jQSZbDPfUOZpUAG1od3rTjT0e8rxGThUiTTWQHwpBRws8eHO8D2QqfkA==" - -"@types/json-schema@7.0.11": - version "7.0.11" - resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz" - integrity "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==" - -"@types/json5@0.0.29": - version "0.0.29" - resolved "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz" - integrity "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==" - -"@types/lodash@^4.14.191", "@types/lodash@4.14.191": - version "4.14.191" - resolved "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.191.tgz" - integrity "sha512-BdZ5BCCvho3EIXw6wUCXHe7rS53AIDPLE+JzwgT+OsJk53oBfbSmZZ7CX4VaRoN78N+TJpFi9QPlfIVNmJYWxQ==" - -"@types/node-emoji@^1.8.2", "@types/node-emoji@1.8.2": - version "1.8.2" - resolved "https://registry.npmjs.org/@types/node-emoji/-/node-emoji-1.8.2.tgz" - integrity "sha512-PfF1qL/9veo8BSHLV84C9ORNr3lHSlnWJ6yU8OdNufoftajeWHTLVbGHvp2B7e7DPDS9gMs6cfeSsqo5rqSitg==" - -"@types/node@^18.15.3", "@types/node@18.15.3": - version "18.15.3" - resolved "https://registry.npmjs.org/@types/node/-/node-18.15.3.tgz" - integrity "sha512-p6ua9zBxz5otCmbpb5D3U4B5Nanw6Pk3PPyX05xnxbB/fRv71N7CPmORg7uAD5P70T0xmx1pzAx/FUfa5X+3cw==" - -"@types/prismjs@^1.26.0", "@types/prismjs@1.26.0": - version "1.26.0" - resolved "https://registry.npmjs.org/@types/prismjs/-/prismjs-1.26.0.tgz" - integrity "sha512-ZTaqn/qSqUuAq1YwvOFQfVW1AR/oQJlLSZVustdjwI+GZ8kr0MSHBj0tsXPW1EqHubx50gtBEjbPGsdZwQwCjQ==" - -"@types/semver@7.3.12": - version "7.3.12" - resolved "https://registry.npmjs.org/@types/semver/-/semver-7.3.12.tgz" - integrity "sha512-WwA1MW0++RfXmCr12xeYOOC5baSC9mSb0ZqCquFzKhcoF4TvHu5MKOuXsncgZcpVFhB1pXd5hZmM0ryAoCp12A==" - -"@types/web-bluetooth@0.0.16": - version "0.0.16" - resolved "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.16.tgz" - integrity "sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ==" - -"@typescript-eslint/eslint-plugin@^5.55.0", "@typescript-eslint/eslint-plugin@5.55.0": - version "5.55.0" - resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.55.0.tgz" - integrity "sha512-IZGc50rtbjk+xp5YQoJvmMPmJEYoC53SiKPXyqWfv15XoD2Y5Kju6zN0DwlmaGJp1Iw33JsWJcQ7nw0lGCGjVg==" - dependencies: - "@eslint-community/regexpp" "4.4.0" - "@typescript-eslint/parser" "5.55.0" - "@typescript-eslint/scope-manager" "5.55.0" - "@typescript-eslint/type-utils" "5.55.0" - "@typescript-eslint/utils" "5.55.0" - "debug" "4.3.4" - "eslint" "8.36.0" - "grapheme-splitter" "1.0.4" - "ignore" "5.2.0" - "natural-compare-lite" "1.4.0" - "semver" "7.3.8" - "tsutils" "3.21.0" - "typescript" "5.0.2" - -"@typescript-eslint/parser@^5.55.0", "@typescript-eslint/parser@5.55.0": - version "5.55.0" - resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.55.0.tgz" - integrity "sha512-ppvmeF7hvdhUUZWSd2EEWfzcFkjJzgNQzVST22nzg958CR+sphy8A6K7LXQZd6V75m1VKjp+J4g/PCEfSCmzhw==" - dependencies: - "@typescript-eslint/scope-manager" "5.55.0" - "@typescript-eslint/types" "5.55.0" - "@typescript-eslint/typescript-estree" "5.55.0" - "debug" "4.3.4" - "eslint" "8.36.0" - "typescript" "5.0.2" - -"@typescript-eslint/scope-manager@5.55.0": - version "5.55.0" - resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.55.0.tgz" - integrity "sha512-OK+cIO1ZGhJYNCL//a3ROpsd83psf4dUJ4j7pdNVzd5DmIk+ffkuUIX2vcZQbEW/IR41DYsfJTB19tpCboxQuw==" - dependencies: - "@typescript-eslint/types" "5.55.0" - "@typescript-eslint/visitor-keys" "5.55.0" - -"@typescript-eslint/type-utils@5.55.0": - version "5.55.0" - resolved "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.55.0.tgz" - integrity "sha512-ObqxBgHIXj8rBNm0yh8oORFrICcJuZPZTqtAFh0oZQyr5DnAHZWfyw54RwpEEH+fD8suZaI0YxvWu5tYE/WswA==" - dependencies: - "@typescript-eslint/typescript-estree" "5.55.0" - "@typescript-eslint/utils" "5.55.0" - "debug" "4.3.4" - "eslint" "8.36.0" - "tsutils" "3.21.0" - "typescript" "5.0.2" - -"@typescript-eslint/types@5.55.0": - version "5.55.0" - resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.55.0.tgz" - integrity "sha512-M4iRh4AG1ChrOL6Y+mETEKGeDnT7Sparn6fhZ5LtVJF1909D5O4uqK+C5NPbLmpfZ0XIIxCdwzKiijpZUOvOug==" - -"@typescript-eslint/typescript-estree@5.55.0": - version "5.55.0" - resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.55.0.tgz" - integrity "sha512-I7X4A9ovA8gdpWMpr7b1BN9eEbvlEtWhQvpxp/yogt48fy9Lj3iE3ild/1H3jKBBIYj5YYJmS2+9ystVhC7eaQ==" - dependencies: - "@typescript-eslint/types" "5.55.0" - "@typescript-eslint/visitor-keys" "5.55.0" - "debug" "4.3.4" - "globby" "11.1.0" - "is-glob" "4.0.3" - "semver" "7.3.8" - "tsutils" "3.21.0" - "typescript" "5.0.2" - -"@typescript-eslint/utils@5.55.0": - version "5.55.0" - resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.55.0.tgz" - integrity "sha512-FkW+i2pQKcpDC3AY6DU54yl8Lfl14FVGYDgBTyGKB75cCwV3KpkpTMFi9d9j2WAJ4271LR2HeC5SEWF/CZmmfw==" - dependencies: - "@eslint-community/eslint-utils" "4.3.0" - "@types/json-schema" "7.0.11" - "@types/semver" "7.3.12" - "@typescript-eslint/scope-manager" "5.55.0" - "@typescript-eslint/types" "5.55.0" - "@typescript-eslint/typescript-estree" "5.55.0" - "eslint" "8.36.0" - "eslint-scope" "5.1.1" - "semver" "7.3.8" - -"@typescript-eslint/visitor-keys@5.55.0": - version "5.55.0" - resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.55.0.tgz" - integrity "sha512-q2dlHHwWgirKh1D3acnuApXG+VNXpEY5/AwRxDVuEQpxWaB0jCDe0jFMVMALJ3ebSfuOVE8/rMS+9ZOYGg1GWw==" - dependencies: - "@typescript-eslint/types" "5.55.0" - "eslint-visitor-keys" "3.3.0" - -"@vitejs/plugin-vue@^4.1.0", "@vitejs/plugin-vue@4.1.0": - version "4.1.0" - resolved "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-4.1.0.tgz" - integrity "sha512-++9JOAFdcXI3lyer9UKUV4rfoQ3T1RN8yDqoCLar86s0xQct5yblxAE+yWgRnU5/0FOlVCpTZpYSBV/bGWrSrQ==" - dependencies: - "vite" "4.2.0" - "vue" "3.2.47" - -"@volar/language-core@1.3.0-alpha.0": - version "1.3.0-alpha.0" - resolved "https://registry.npmjs.org/@volar/language-core/-/language-core-1.3.0-alpha.0.tgz" - integrity "sha512-W3uMzecHPcbwddPu4SJpUcPakRBK/y/BP+U0U6NiPpUX1tONLC4yCawt+QBJqtgJ+sfD6ztf5PyvPL3hQRqfOA==" - dependencies: - "@volar/source-map" "1.3.0-alpha.0" - -"@volar/source-map@1.3.0-alpha.0": - version "1.3.0-alpha.0" - resolved "https://registry.npmjs.org/@volar/source-map/-/source-map-1.3.0-alpha.0.tgz" - integrity "sha512-jSdizxWFvDTvkPYZnO6ew3sBZUnS0abKCbuopkc0JrIlFbznWC/fPH3iPFIMS8/IIkRxq1Jh9VVG60SmtsdaMQ==" - dependencies: - "muggle-string" "0.2.2" - -"@volar/typescript@1.3.0-alpha.0": - version "1.3.0-alpha.0" - resolved "https://registry.npmjs.org/@volar/typescript/-/typescript-1.3.0-alpha.0.tgz" - integrity "sha512-5UItyW2cdH2mBLu4RrECRNJRgtvvzKrSCn2y3v/D61QwIDkGx4aeil6x8RFuUL5TFtV6QvVHXnsOHxNgd+sCow==" - dependencies: - "@volar/language-core" "1.3.0-alpha.0" - -"@volar/vue-language-core@1.2.0": - version "1.2.0" - resolved "https://registry.npmjs.org/@volar/vue-language-core/-/vue-language-core-1.2.0.tgz" - integrity "sha512-w7yEiaITh2WzKe6u8ZdeLKCUz43wdmY/OqAmsB/PGDvvhTcVhCJ6f0W/RprZL1IhqH8wALoWiwEh/Wer7ZviMQ==" - dependencies: - "@volar/language-core" "1.3.0-alpha.0" - "@volar/source-map" "1.3.0-alpha.0" - "@vue/compiler-dom" "3.2.47" - "@vue/compiler-sfc" "3.2.47" - "@vue/reactivity" "3.2.47" - "@vue/shared" "3.2.47" - "minimatch" "6.2.0" - "muggle-string" "0.2.2" - "vue-template-compiler" "2.7.14" - -"@volar/vue-typescript@1.2.0": - version "1.2.0" - resolved "https://registry.npmjs.org/@volar/vue-typescript/-/vue-typescript-1.2.0.tgz" - integrity "sha512-zjmRi9y3J1EkG+pfuHp8IbHmibihrKK485cfzsHjiuvJMGrpkWvlO5WVEk8oslMxxeGC5XwBFE9AOlvh378EPA==" - dependencies: - "@volar/typescript" "1.3.0-alpha.0" - "@volar/vue-language-core" "1.2.0" - -"@vue/compiler-core@3.2.47": - version "3.2.47" - resolved "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.47.tgz" - integrity "sha512-p4D7FDnQb7+YJmO2iPEv0SQNeNzcbHdGByJDsT4lynf63AFkOTFN07HsiRSvjGo0QrxR/o3d0hUyNCUnBU2Tig==" - dependencies: - "@babel/parser" "7.19.4" - "@vue/shared" "3.2.47" - "estree-walker" "2.0.2" - "source-map" "0.6.1" - -"@vue/compiler-dom@3.2.47": - version "3.2.47" - resolved "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.47.tgz" - integrity "sha512-dBBnEHEPoftUiS03a4ggEig74J2YBZ2UIeyfpcRM2tavgMWo4bsEfgCGsu+uJIL/vax9S+JztH8NmQerUo7shQ==" - dependencies: - "@vue/compiler-core" "3.2.47" - "@vue/shared" "3.2.47" - -"@vue/compiler-sfc@^3.2.47", "@vue/compiler-sfc@3.2.47": - version "3.2.47" - resolved "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.47.tgz" - integrity "sha512-rog05W+2IFfxjMcFw10tM9+f7i/+FFpZJJ5XHX72NP9eC2uRD+42M3pYcQqDXVYoj74kHMSEdQ/WmCjt8JFksQ==" - dependencies: - "@babel/parser" "7.19.4" - "@vue/compiler-core" "3.2.47" - "@vue/compiler-dom" "3.2.47" - "@vue/compiler-ssr" "3.2.47" - "@vue/reactivity-transform" "3.2.47" - "@vue/shared" "3.2.47" - "estree-walker" "2.0.2" - "magic-string" "0.25.9" - "postcss" "8.4.18" - "source-map" "0.6.1" - -"@vue/compiler-ssr@3.2.47": - version "3.2.47" - resolved "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.47.tgz" - integrity "sha512-wVXC+gszhulcMD8wpxMsqSOpvDZ6xKXSVWkf50Guf/S+28hTAXPDYRTbLQ3EDkOP5Xz/+SY37YiwDquKbJOgZw==" - dependencies: - "@vue/compiler-dom" "3.2.47" - "@vue/shared" "3.2.47" - -"@vue/devtools-api@6.4.5": - version "6.4.5" - resolved "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.4.5.tgz" - integrity "sha512-JD5fcdIuFxU4fQyXUu3w2KpAJHzTVdN+p4iOX2lMWSHMOoQdMAcpFLZzm9Z/2nmsoZ1a96QEhZ26e50xLBsgOQ==" - -"@vue/devtools-api@6.5.0": - version "6.5.0" - resolved "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.5.0.tgz" - integrity "sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q==" - -"@vue/reactivity-transform@3.2.47": - version "3.2.47" - resolved "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.47.tgz" - integrity "sha512-m8lGXw8rdnPVVIdIFhf0LeQ/ixyHkH5plYuS83yop5n7ggVJU+z5v0zecwEnX7fa7HNLBhh2qngJJkxpwEEmYA==" - dependencies: - "@babel/parser" "7.19.4" - "@vue/compiler-core" "3.2.47" - "@vue/shared" "3.2.47" - "estree-walker" "2.0.2" - "magic-string" "0.25.9" - -"@vue/reactivity@3.2.47": - version "3.2.47" - resolved "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.47.tgz" - integrity "sha512-7khqQ/75oyyg+N/e+iwV6lpy1f5wq759NdlS1fpAhFXa8VeAIKGgk2E/C4VF59lx5b+Ezs5fpp/5WsRYXQiKxQ==" - dependencies: - "@vue/shared" "3.2.47" - -"@vue/runtime-core@3.2.47": - version "3.2.47" - resolved "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.47.tgz" - integrity "sha512-RZxbLQIRB/K0ev0K9FXhNbBzT32H9iRtYbaXb0ZIz2usLms/D55dJR2t6cIEUn6vyhS3ALNvNthI+Q95C+NOpA==" - dependencies: - "@vue/reactivity" "3.2.47" - "@vue/shared" "3.2.47" - -"@vue/runtime-dom@3.2.47": - version "3.2.47" - resolved "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.47.tgz" - integrity "sha512-ArXrFTjS6TsDei4qwNvgrdmHtD930KgSKGhS5M+j8QxXrDJYLqYw4RRcDy1bz1m1wMmb6j+zGLifdVHtkXA7gA==" - dependencies: - "@vue/runtime-core" "3.2.47" - "@vue/shared" "3.2.47" - "csstype" "2.6.21" - -"@vue/server-renderer@3.2.47": - version "3.2.47" - resolved "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.2.47.tgz" - integrity "sha512-dN9gc1i8EvmP9RCzvneONXsKfBRgqFeFZLurmHOveL7oH6HiFXJw5OGu294n1nHc/HMgTy6LulU/tv5/A7f/LA==" - dependencies: - "@vue/compiler-ssr" "3.2.47" - "@vue/shared" "3.2.47" - "vue" "3.2.47" - -"@vue/shared@3.2.47": - version "3.2.47" - resolved "https://registry.npmjs.org/@vue/shared/-/shared-3.2.47.tgz" - integrity "sha512-BHGyyGN3Q97EZx0taMQ+OLNuZcW3d37ZEVmEAyeoA9ERdGvm9Irc/0Fua8SNyOtV1w6BS4q25wbMzJujO9HIfQ==" - -"@vueuse/core@^9.13.0", "@vueuse/core@9.13.0": - version "9.13.0" - resolved "https://registry.npmjs.org/@vueuse/core/-/core-9.13.0.tgz" - integrity "sha512-pujnclbeHWxxPRqXWmdkKV5OX4Wk4YeK7wusHqRwU0Q7EFusHoqNA/aPhB6KCh9hEqJkLAJo7bb0Lh9b+OIVzw==" - dependencies: - "@types/web-bluetooth" "0.0.16" - "@vueuse/metadata" "9.13.0" - "@vueuse/shared" "9.13.0" - "vue-demi" "0.13.11" - -"@vueuse/metadata@9.13.0": - version "9.13.0" - resolved "https://registry.npmjs.org/@vueuse/metadata/-/metadata-9.13.0.tgz" - integrity "sha512-gdU7TKNAUVlXXLbaF+ZCfte8BjRJQWPCa2J55+7/h+yDtzw3vOoGQDRXzI6pyKyo6bXFT5/QoPE4hAknExjRLQ==" - -"@vueuse/shared@9.13.0": - version "9.13.0" - resolved "https://registry.npmjs.org/@vueuse/shared/-/shared-9.13.0.tgz" - integrity "sha512-UrnhU+Cnufu4S6JLCPZnkWh0WwZGUp72ktOF2DFptMlOs3TOdVv8xJN53zhHGARmVOsz5KqOls09+J1NR6sBKw==" - dependencies: - "vue-demi" "0.13.11" - -"@windicss/config@1.8.10": - version "1.8.10" - resolved "https://registry.npmjs.org/@windicss/config/-/config-1.8.10.tgz" - integrity "sha512-O9SsC110b1Ik3YYa4Ck/0TWuCo7YFfA9KDrwD5sAeqscT5COIGK1HszdCT3oh0MJFej2wNrvpfyW9h6yQaW6PA==" - dependencies: - "debug" "4.3.4" - "jiti" "1.16.0" - "windicss" "3.5.6" - -"@windicss/plugin-utils@1.8.10": - version "1.8.10" - resolved "https://registry.npmjs.org/@windicss/plugin-utils/-/plugin-utils-1.8.10.tgz" - integrity "sha512-Phqk5OW1w+Mv+ry6t7BzAeDq3aMhbI94gR49j9vQCufFfDGCHndhhjtMK0sBv+NPJUsIAIh6qayb1iwBCXUGrw==" - dependencies: - "@antfu/utils" "0.7.2" - "@windicss/config" "1.8.10" - "debug" "4.3.4" - "fast-glob" "3.2.12" - "magic-string" "0.27.0" - "micromatch" "4.0.5" - "windicss" "3.5.6" - -"acorn-jsx@5.3.2": - version "5.3.2" - resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz" - integrity "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==" - dependencies: - "acorn" "8.8.0" - -"acorn@7.4.1": - version "7.4.1" - resolved "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz" - integrity "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==" - -"acorn@8.8.0": - version "8.8.0" - resolved "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz" - integrity "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==" - -"acorn@8.8.2": - version "8.8.2" - resolved "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz" - integrity "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==" - -"ajv@6.12.6": - version "6.12.6" - resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" - integrity "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==" - dependencies: - "fast-deep-equal" "3.1.3" - "fast-json-stable-stringify" "2.1.0" - "json-schema-traverse" "0.4.1" - "uri-js" "4.4.1" - -"ansi-regex@5.0.1": - version "5.0.1" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" - integrity "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - -"ansi-styles@3.2.1": - version "3.2.1" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" - integrity "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==" - dependencies: - "color-convert" "1.9.3" - -"ansi-styles@4.3.0": - version "4.3.0" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" - integrity "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==" - dependencies: - "color-convert" "2.0.1" - -"ansi_up@^5.1.0", "ansi_up@5.1.0": - version "5.1.0" - resolved "https://registry.npmjs.org/ansi_up/-/ansi_up-5.1.0.tgz" - integrity "sha512-3wwu+nJCKBVBwOCurm0uv91lMoVkhFB+3qZQz3U11AmAdDJ4tkw1sNPWJQcVxMVYwe0pGEALOjSBOxdxNc+pNQ==" - -"anymatch@3.1.2": - version "3.1.2" - resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz" - integrity "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==" - dependencies: - "normalize-path" "3.0.0" - "picomatch" "2.3.1" - -"argparse@2.0.1": - version "2.0.1" - resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" - integrity "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - -"array-includes@3.1.6": - version "3.1.6" - resolved "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz" - integrity "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==" - dependencies: - "call-bind" "1.0.2" - "define-properties" "1.1.4" - "es-abstract" "1.20.4" - "get-intrinsic" "1.1.3" - "is-string" "1.0.7" - -"array-union@2.1.0": - version "2.1.0" - resolved "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz" - integrity "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==" - -"array.prototype.flat@1.3.1": - version "1.3.1" - resolved "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz" - integrity "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==" - dependencies: - "call-bind" "1.0.2" - "define-properties" "1.1.4" - "es-abstract" "1.20.4" - "es-shim-unscopables" "1.0.0" - -"array.prototype.flatmap@1.3.1": - version "1.3.1" - resolved "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz" - integrity "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==" - dependencies: - "call-bind" "1.0.2" - "define-properties" "1.1.4" - "es-abstract" "1.20.4" - "es-shim-unscopables" "1.0.0" - -"atob@2.1.2": - version "2.1.2" - resolved "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz" - integrity "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" - -"babel-plugin-prismjs@2.1.0": - version "2.1.0" - resolved "https://registry.npmjs.org/babel-plugin-prismjs/-/babel-plugin-prismjs-2.1.0.tgz" - integrity "sha512-ehzSKYfeAz4U78zi/sfwsjDPlq0LvDKxNefcZTJ/iKBu+plsHsLqZhUeGf1+82LAcA35UZGbU6ksEx2Utphc/g==" - dependencies: - "prismjs" "1.29.0" - -"balanced-match@1.0.2": - version "1.0.2" - resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" - integrity "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - -"binary-extensions@2.2.0": - version "2.2.0" - resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz" - integrity "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==" - -"boolbase@1.0.0": - version "1.0.0" - resolved "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz" - integrity "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" - -"brace-expansion@1.1.11": - version "1.1.11" - resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" - integrity "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==" - dependencies: - "balanced-match" "1.0.2" - "concat-map" "0.0.1" - -"brace-expansion@2.0.1": - version "2.0.1" - resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz" - integrity "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==" - dependencies: - "balanced-match" "1.0.2" - -"braces@3.0.2": - version "3.0.2" - resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz" - integrity "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==" - dependencies: - "fill-range" "7.0.1" - -"browserslist@4.21.4": - version "4.21.4" - resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz" - integrity "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==" - dependencies: - "caniuse-lite" "1.0.30001422" - "electron-to-chromium" "1.4.284" - "node-releases" "2.0.6" - "update-browserslist-db" "1.0.10" - -"call-bind@1.0.2": - version "1.0.2" - resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz" - integrity "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==" - dependencies: - "function-bind" "1.1.1" - "get-intrinsic" "1.1.3" - -"callsites@3.1.0": - version "3.1.0" - resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz" - integrity "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" - -"caniuse-lite@1.0.30001422": - version "1.0.30001422" - resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001422.tgz" - integrity "sha512-hSesn02u1QacQHhaxl/kNMZwqVG35Sz/8DgvmgedxSH8z9UUpcDYSPYgsj3x5dQNRcNp6BwpSfQfVzYUTm+fog==" - -"chalk@2.4.2": - version "2.4.2" - resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" - integrity "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==" - dependencies: - "ansi-styles" "3.2.1" - "escape-string-regexp" "1.0.5" - "supports-color" "5.5.0" - -"chalk@4.1.2": - version "4.1.2" - resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" - integrity "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==" - dependencies: - "ansi-styles" "4.3.0" - "supports-color" "7.2.0" - -"chokidar@3.5.3": - version "3.5.3" - resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz" - integrity "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==" - dependencies: - "anymatch" "3.1.2" - "braces" "3.0.2" - "glob-parent" "5.1.2" - "is-binary-path" "2.1.0" - "is-glob" "4.0.3" - "normalize-path" "3.0.0" - "readdirp" "3.6.0" - -"color-convert@1.9.3": - version "1.9.3" - resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" - integrity "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==" - dependencies: - "color-name" "1.1.3" - -"color-convert@2.0.1": - version "2.0.1" - resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" - integrity "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==" - dependencies: - "color-name" "1.1.4" - -"color-name@1.1.3": - version "1.1.3" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" - integrity "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" - -"color-name@1.1.4": - version "1.1.4" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" - integrity "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - -"commander@7.2.0": - version "7.2.0" - resolved "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz" - integrity "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==" - -"concat-map@0.0.1": - version "0.0.1" - resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" - integrity "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" - -"confusing-browser-globals@1.0.11": - version "1.0.11" - resolved "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz" - integrity "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==" - -"convert-source-map@1.9.0": - version "1.9.0" - resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz" - integrity "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" - -"cross-spawn@7.0.3": - version "7.0.3" - resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz" - integrity "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==" - dependencies: - "path-key" "3.1.1" - "shebang-command" "2.0.0" - "which" "2.0.2" - -"css-select@5.1.0": - version "5.1.0" - resolved "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz" - integrity "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==" - dependencies: - "boolbase" "1.0.0" - "css-what" "6.1.0" - "domhandler" "5.0.3" - "domutils" "3.0.1" - "nth-check" "2.1.1" - -"css-tree@2.2.1": - version "2.2.1" - resolved "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz" - integrity "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==" - dependencies: - "mdn-data" "2.0.28" - "source-map-js" "1.0.2" - -"css-tree@2.3.1": - version "2.3.1" - resolved "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz" - integrity "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==" - dependencies: - "mdn-data" "2.0.30" - "source-map-js" "1.0.2" - -"css-what@6.1.0": - version "6.1.0" - resolved "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz" - integrity "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==" - -"css@3.0.0": - version "3.0.0" - resolved "https://registry.npmjs.org/css/-/css-3.0.0.tgz" - integrity "sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==" - dependencies: - "inherits" "2.0.4" - "source-map" "0.6.1" - "source-map-resolve" "0.6.0" - -"cssesc@3.0.0": - version "3.0.0" - resolved "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz" - integrity "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==" - -"csso@5.0.5": - version "5.0.5" - resolved "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz" - integrity "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==" - dependencies: - "css-tree" "2.2.1" - -"csstype@2.6.21": - version "2.6.21" - resolved "https://registry.npmjs.org/csstype/-/csstype-2.6.21.tgz" - integrity "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==" - -"dayjs@^1.11.7", "dayjs@1.11.7": - version "1.11.7" - resolved "https://registry.npmjs.org/dayjs/-/dayjs-1.11.7.tgz" - integrity "sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ==" - -"de-indent@1.0.2": - version "1.0.2" - resolved "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz" - integrity "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==" - -"debug@3.2.7": - version "3.2.7" - resolved "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz" - integrity "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==" - dependencies: - "ms" "2.1.3" - -"debug@4.3.4": - version "4.3.4" - resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz" - integrity "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==" - dependencies: - "ms" "2.1.2" - -"decode-uri-component@0.2.0": - version "0.2.0" - resolved "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz" - integrity "sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og==" - -"deep-is@0.1.4": - version "0.1.4" - resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz" - integrity "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" - -"define-properties@1.1.4": - version "1.1.4" - resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz" - integrity "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==" - dependencies: - "has-property-descriptors" "1.0.0" - "object-keys" "1.1.1" - -"dir-glob@3.0.1": - version "3.0.1" - resolved "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz" - integrity "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==" - dependencies: - "path-type" "4.0.0" - -"doctrine@2.1.0": - version "2.1.0" - resolved "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz" - integrity "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==" - dependencies: - "esutils" "2.0.3" - -"doctrine@3.0.0": - version "3.0.0" - resolved "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz" - integrity "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==" - dependencies: - "esutils" "2.0.3" - -"dom-serializer@2.0.0": - version "2.0.0" - resolved "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz" - integrity "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==" - dependencies: - "domelementtype" "2.3.0" - "domhandler" "5.0.3" - "entities" "4.4.0" - -"domelementtype@2.3.0": - version "2.3.0" - resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz" - integrity "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==" - -"domhandler@5.0.3": - version "5.0.3" - resolved "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz" - integrity "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==" - dependencies: - "domelementtype" "2.3.0" - -"domutils@3.0.1": - version "3.0.1" - resolved "https://registry.npmjs.org/domutils/-/domutils-3.0.1.tgz" - integrity "sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==" - dependencies: - "dom-serializer" "2.0.0" - "domelementtype" "2.3.0" - "domhandler" "5.0.3" - -"electron-to-chromium@1.4.284": - version "1.4.284" - resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz" - integrity "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==" - -"entities@4.4.0": - version "4.4.0" - resolved "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz" - integrity "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==" - -"es-abstract@1.20.4": - version "1.20.4" - resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.4.tgz" - integrity "sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA==" - dependencies: - "call-bind" "1.0.2" - "es-to-primitive" "1.2.1" - "function-bind" "1.1.1" - "function.prototype.name" "1.1.5" - "get-intrinsic" "1.1.3" - "get-symbol-description" "1.0.0" - "has" "1.0.3" - "has-property-descriptors" "1.0.0" - "has-symbols" "1.0.3" - "internal-slot" "1.0.3" - "is-callable" "1.2.7" - "is-negative-zero" "2.0.2" - "is-regex" "1.1.4" - "is-shared-array-buffer" "1.0.2" - "is-string" "1.0.7" - "is-weakref" "1.0.2" - "object-inspect" "1.12.2" - "object-keys" "1.1.1" - "object.assign" "4.1.4" - "regexp.prototype.flags" "1.4.3" - "safe-regex-test" "1.0.0" - "string.prototype.trimend" "1.0.5" - "string.prototype.trimstart" "1.0.5" - "unbox-primitive" "1.0.2" - -"es-shim-unscopables@1.0.0": - version "1.0.0" - resolved "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz" - integrity "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==" - dependencies: - "has" "1.0.3" - -"es-to-primitive@1.2.1": - version "1.2.1" - resolved "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz" - integrity "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==" - dependencies: - "is-callable" "1.2.7" - "is-date-object" "1.0.5" - "is-symbol" "1.0.4" - -"esbuild@0.17.12": - version "0.17.12" - resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.17.12.tgz" - integrity "sha512-bX/zHl7Gn2CpQwcMtRogTTBf9l1nl+H6R8nUbjk+RuKqAE3+8FDulLA+pHvX7aA7Xe07Iwa+CWvy9I8Y2qqPKQ==" - -"escalade@3.1.1": - version "3.1.1" - resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz" - integrity "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" - -"escape-string-regexp@1.0.5": - version "1.0.5" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" - integrity "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==" - -"escape-string-regexp@4.0.0": - version "4.0.0" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" - integrity "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==" - -"eslint-config-airbnb-base@^15.0.0", "eslint-config-airbnb-base@15.0.0": - version "15.0.0" - resolved "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz" - integrity "sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==" - dependencies: - "confusing-browser-globals" "1.0.11" - "eslint" "8.36.0" - "eslint-plugin-import" "2.27.5" - "object.assign" "4.1.4" - "object.entries" "1.1.5" - "semver" "6.3.0" - -"eslint-config-airbnb-typescript@^17.0.0", "eslint-config-airbnb-typescript@17.0.0": - version "17.0.0" - resolved "https://registry.npmjs.org/eslint-config-airbnb-typescript/-/eslint-config-airbnb-typescript-17.0.0.tgz" - integrity "sha512-elNiuzD0kPAPTXjFWg+lE24nMdHMtuxgYoD30OyMD6yrW1AhFZPAg27VX7d3tzOErw+dgJTNWfRSDqEcXb4V0g==" - dependencies: - "@typescript-eslint/eslint-plugin" "5.55.0" - "@typescript-eslint/parser" "5.55.0" - "eslint" "8.36.0" - "eslint-config-airbnb-base" "15.0.0" - "eslint-plugin-import" "2.27.5" - -"eslint-config-prettier@^8.7.0", "eslint-config-prettier@8.7.0": - version "8.7.0" - resolved "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.7.0.tgz" - integrity "sha512-HHVXLSlVUhMSmyW4ZzEuvjpwqamgmlfkutD53cYXLikh4pt/modINRcCIApJ84czDxM4GZInwUrromsDdTImTA==" - dependencies: - "eslint" "8.36.0" - -"eslint-import-resolver-node@0.3.7": - version "0.3.7" - resolved "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz" - integrity "sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==" - dependencies: - "debug" "3.2.7" - "is-core-module" "2.11.0" - "resolve" "1.22.1" - -"eslint-module-utils@2.7.4": - version "2.7.4" - resolved "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz" - integrity "sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==" - dependencies: - "@typescript-eslint/parser" "5.55.0" - "debug" "3.2.7" - "eslint" "8.36.0" - "eslint-import-resolver-node" "0.3.7" - -"eslint-plugin-import@^2.27.5", "eslint-plugin-import@2.27.5": - version "2.27.5" - resolved "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz" - integrity "sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==" - dependencies: - "@typescript-eslint/parser" "5.55.0" - "array-includes" "3.1.6" - "array.prototype.flat" "1.3.1" - "array.prototype.flatmap" "1.3.1" - "debug" "3.2.7" - "doctrine" "2.1.0" - "eslint" "8.36.0" - "eslint-import-resolver-node" "0.3.7" - "eslint-module-utils" "2.7.4" - "has" "1.0.3" - "is-core-module" "2.11.0" - "is-glob" "4.0.3" - "minimatch" "3.1.2" - "object.values" "1.1.6" - "resolve" "1.22.1" - "semver" "6.3.0" - "tsconfig-paths" "3.14.1" - -"eslint-plugin-prettier@^4.2.1", "eslint-plugin-prettier@4.2.1": - version "4.2.1" - resolved "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz" - integrity "sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==" - dependencies: - "eslint" "8.36.0" - "eslint-config-prettier" "8.7.0" - "prettier" "2.8.5" - "prettier-linter-helpers" "1.0.0" - -"eslint-plugin-promise@^6.1.1", "eslint-plugin-promise@6.1.1": - version "6.1.1" - resolved "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-6.1.1.tgz" - integrity "sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==" - dependencies: - "eslint" "8.36.0" - -"eslint-plugin-simple-import-sort@^10.0.0", "eslint-plugin-simple-import-sort@10.0.0": - version "10.0.0" - resolved "https://registry.npmjs.org/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-10.0.0.tgz" - integrity "sha512-AeTvO9UCMSNzIHRkg8S6c3RPy5YEwKWSQPx3DYghLedo2ZQxowPFLGDN1AZ2evfg6r6mjBSZSLxLFsWSu3acsw==" - dependencies: - "eslint" "8.36.0" - -"eslint-plugin-vue-scoped-css@^2.4.0", "eslint-plugin-vue-scoped-css@2.4.0": - version "2.4.0" - resolved "https://registry.npmjs.org/eslint-plugin-vue-scoped-css/-/eslint-plugin-vue-scoped-css-2.4.0.tgz" - integrity "sha512-H2GdGyaNuz58gMwJYrPAyok2ZZFklb1wnI4jqLyQZf17gvZeTOpYzCxqhhcT5hBeaCUHhjxU5akCI7A4AtBHew==" - dependencies: - "eslint" "8.36.0" - "eslint-utils" "3.0.0" - "lodash" "4.17.21" - "postcss" "8.4.18" - "postcss-safe-parser" "6.0.0" - "postcss-scss" "4.0.5" - "postcss-selector-parser" "6.0.10" - "postcss-styl" "0.12.3" - "vue-eslint-parser" "9.1.0" - -"eslint-plugin-vue@^9.9.0", "eslint-plugin-vue@9.9.0": - version "9.9.0" - resolved "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.9.0.tgz" - integrity "sha512-YbubS7eK0J7DCf0U2LxvVP7LMfs6rC6UltihIgval3azO3gyDwEGVgsCMe1TmDiEkl6GdMKfRpaME6QxIYtzDQ==" - dependencies: - "eslint" "8.36.0" - "eslint-utils" "3.0.0" - "natural-compare" "1.4.0" - "nth-check" "2.1.1" - "postcss-selector-parser" "6.0.10" - "semver" "7.3.8" - "vue-eslint-parser" "9.1.0" - "xml-name-validator" "4.0.0" - -"eslint-scope@5.1.1": - version "5.1.1" - resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz" - integrity "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==" - dependencies: - "esrecurse" "4.3.0" - "estraverse" "4.3.0" - -"eslint-scope@7.1.1": - version "7.1.1" - resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz" - integrity "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==" - dependencies: - "esrecurse" "4.3.0" - "estraverse" "5.3.0" - -"eslint-utils@2.1.0": - version "2.1.0" - resolved "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz" - integrity "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==" - dependencies: - "eslint-visitor-keys" "1.3.0" - -"eslint-utils@3.0.0": - version "3.0.0" - resolved "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz" - integrity "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==" - dependencies: - "eslint" "8.36.0" - "eslint-visitor-keys" "2.1.0" - -"eslint-visitor-keys@1.3.0": - version "1.3.0" - resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz" - integrity "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==" - -"eslint-visitor-keys@2.1.0": - version "2.1.0" - resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz" - integrity "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==" - -"eslint-visitor-keys@3.3.0": - version "3.3.0" - resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz" - integrity "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==" - -"eslint@^8.36.0", "eslint@8.36.0": - version "8.36.0" - resolved "https://registry.npmjs.org/eslint/-/eslint-8.36.0.tgz" - integrity "sha512-Y956lmS7vDqomxlaaQAHVmeb4tNMp2FWIvU/RnU5BD3IKMD/MJPr76xdyr68P8tV1iNMvN2mRK0yy3c+UjL+bw==" - dependencies: - "@eslint-community/eslint-utils" "4.3.0" - "@eslint-community/regexpp" "4.4.0" - "@eslint/eslintrc" "2.0.1" - "@eslint/js" "8.36.0" - "@humanwhocodes/config-array" "0.11.8" - "@humanwhocodes/module-importer" "1.0.1" - "@nodelib/fs.walk" "1.2.8" - "ajv" "6.12.6" - "chalk" "4.1.2" - "cross-spawn" "7.0.3" - "debug" "4.3.4" - "doctrine" "3.0.0" - "escape-string-regexp" "4.0.0" - "eslint-scope" "7.1.1" - "eslint-visitor-keys" "3.3.0" - "espree" "9.5.0" - "esquery" "1.5.0" - "esutils" "2.0.3" - "fast-deep-equal" "3.1.3" - "file-entry-cache" "6.0.1" - "find-up" "5.0.0" - "glob-parent" "6.0.2" - "globals" "13.20.0" - "grapheme-splitter" "1.0.4" - "ignore" "5.2.0" - "import-fresh" "3.3.0" - "imurmurhash" "0.1.4" - "is-glob" "4.0.3" - "is-path-inside" "3.0.3" - "js-sdsl" "4.1.5" - "js-yaml" "4.1.0" - "json-stable-stringify-without-jsonify" "1.0.1" - "levn" "0.4.1" - "lodash.merge" "4.6.2" - "minimatch" "3.1.2" - "natural-compare" "1.4.0" - "optionator" "0.9.1" - "strip-ansi" "6.0.1" - "strip-json-comments" "3.1.1" - "text-table" "0.2.0" - -"espree@6.2.1": - version "6.2.1" - resolved "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz" - integrity "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==" - dependencies: - "acorn" "7.4.1" - "acorn-jsx" "5.3.2" - "eslint-visitor-keys" "1.3.0" - -"espree@9.4.0": - version "9.4.0" - resolved "https://registry.npmjs.org/espree/-/espree-9.4.0.tgz" - integrity "sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw==" - dependencies: - "acorn" "8.8.0" - "acorn-jsx" "5.3.2" - "eslint-visitor-keys" "3.3.0" - -"espree@9.5.0": - version "9.5.0" - resolved "https://registry.npmjs.org/espree/-/espree-9.5.0.tgz" - integrity "sha512-JPbJGhKc47++oo4JkEoTe2wjy4fmMwvFpgJT9cQzmfXKp22Dr6Hf1tdCteLz1h0P3t+mGvWZ+4Uankvh8+c6zw==" - dependencies: - "acorn" "8.8.0" - "acorn-jsx" "5.3.2" - "eslint-visitor-keys" "3.3.0" - -"esquery@1.4.0": - version "1.4.0" - resolved "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz" - integrity "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==" - dependencies: - "estraverse" "5.3.0" - -"esquery@1.5.0": - version "1.5.0" - resolved "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz" - integrity "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==" - dependencies: - "estraverse" "5.3.0" - -"esrecurse@4.3.0": - version "4.3.0" - resolved "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz" - integrity "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==" - dependencies: - "estraverse" "5.3.0" - -"estraverse@4.3.0": - version "4.3.0" - resolved "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz" - integrity "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" - -"estraverse@5.3.0": - version "5.3.0" - resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz" - integrity "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==" - -"estree-walker@2.0.2": - version "2.0.2" - resolved "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz" - integrity "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" - -"esutils@2.0.3": - version "2.0.3" - resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz" - integrity "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" - -"execa@5.1.1": - version "5.1.1" - resolved "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz" - integrity "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==" - dependencies: - "cross-spawn" "7.0.3" - "get-stream" "6.0.1" - "human-signals" "2.1.0" - "is-stream" "2.0.1" - "merge-stream" "2.0.0" - "npm-run-path" "4.0.1" - "onetime" "5.1.2" - "signal-exit" "3.0.7" - "strip-final-newline" "2.0.0" - -"fast-deep-equal@3.1.3": - version "3.1.3" - resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" - integrity "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" - -"fast-diff@1.2.0": - version "1.2.0" - resolved "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz" - integrity "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==" - -"fast-glob@3.2.12": - version "3.2.12" - resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz" - integrity "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==" - dependencies: - "@nodelib/fs.stat" "2.0.5" - "@nodelib/fs.walk" "1.2.8" - "glob-parent" "5.1.2" - "merge2" "1.4.1" - "micromatch" "4.0.5" - -"fast-json-stable-stringify@2.1.0": - version "2.1.0" - resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz" - integrity "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" - -"fast-levenshtein@2.0.6": - version "2.0.6" - resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz" - integrity "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==" - -"fastq@1.13.0": - version "1.13.0" - resolved "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz" - integrity "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==" - dependencies: - "reusify" "1.0.4" - -"file-entry-cache@6.0.1": - version "6.0.1" - resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz" - integrity "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==" - dependencies: - "flat-cache" "3.0.4" - -"fill-range@7.0.1": - version "7.0.1" - resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz" - integrity "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==" - dependencies: - "to-regex-range" "5.0.1" - -"find-up@5.0.0": - version "5.0.0" - resolved "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz" - integrity "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==" - dependencies: - "locate-path" "6.0.0" - "path-exists" "4.0.0" - -"flat-cache@3.0.4": - version "3.0.4" - resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz" - integrity "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==" - dependencies: - "flatted" "3.2.7" - "rimraf" "3.0.2" - -"flatted@3.2.7": - version "3.2.7" - resolved "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz" - integrity "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==" - -"floating-vue@^2.0.0-beta.20", "floating-vue@2.0.0-beta.20": - version "2.0.0-beta.20" - resolved "https://registry.npmjs.org/floating-vue/-/floating-vue-2.0.0-beta.20.tgz" - integrity "sha512-N68otcpp6WwcYC7zP8GeJqNZVdfvS7tEY88lwmuAHeqRgnfWx1Un8enzLxROyVnBDZ3TwUoUdj5IFg+bUT7JeA==" - dependencies: - "@floating-ui/dom" "0.1.10" - "vue" "3.2.47" - "vue-resize" "2.0.0-alpha.1" - -"fs.realpath@1.0.0": - version "1.0.0" - resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" - integrity "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" - -"fsevents@2.3.2": - version "2.3.2" - resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz" - integrity "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==" - -"function-bind@1.1.1": - version "1.1.1" - resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" - integrity "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - -"function.prototype.name@1.1.5": - version "1.1.5" - resolved "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz" - integrity "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==" - dependencies: - "call-bind" "1.0.2" - "define-properties" "1.1.4" - "es-abstract" "1.20.4" - "functions-have-names" "1.2.3" - -"functions-have-names@1.2.3": - version "1.2.3" - resolved "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz" - integrity "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==" - -"fuse.js@^6.6.2", "fuse.js@6.6.2": - version "6.6.2" - resolved "https://registry.npmjs.org/fuse.js/-/fuse.js-6.6.2.tgz" - integrity "sha512-cJaJkxCCxC8qIIcPBF9yGxY0W/tVZS3uEISDxhYIdtk8OL93pe+6Zj7LjCqVV4dzbqcriOZ+kQ/NE4RXZHsIGA==" - -"gensync@1.0.0-beta.2": - version "1.0.0-beta.2" - resolved "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz" - integrity "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==" - -"get-intrinsic@1.1.3": - version "1.1.3" - resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz" - integrity "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==" - dependencies: - "function-bind" "1.1.1" - "has" "1.0.3" - "has-symbols" "1.0.3" - -"get-stream@6.0.1": - version "6.0.1" - resolved "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz" - integrity "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" - -"get-symbol-description@1.0.0": - version "1.0.0" - resolved "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz" - integrity "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==" - dependencies: - "call-bind" "1.0.2" - "get-intrinsic" "1.1.3" - -"glob-parent@5.1.2": - version "5.1.2" - resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" - integrity "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==" - dependencies: - "is-glob" "4.0.3" - -"glob-parent@6.0.2": - version "6.0.2" - resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz" - integrity "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==" - dependencies: - "is-glob" "4.0.3" - -"glob@7.2.3": - version "7.2.3" - resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" - integrity "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==" - dependencies: - "fs.realpath" "1.0.0" - "inflight" "1.0.6" - "inherits" "2.0.4" - "minimatch" "3.1.2" - "once" "1.4.0" - "path-is-absolute" "1.0.1" - -"globals@11.12.0": - version "11.12.0" - resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz" - integrity "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" - -"globals@13.20.0": - version "13.20.0" - resolved "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz" - integrity "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==" - dependencies: - "type-fest" "0.20.2" - -"globby@11.1.0": - version "11.1.0" - resolved "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz" - integrity "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==" - dependencies: - "array-union" "2.1.0" - "dir-glob" "3.0.1" - "fast-glob" "3.2.12" - "ignore" "5.2.0" - "merge2" "1.4.1" - "slash" "3.0.0" - -"grapheme-splitter@1.0.4": - version "1.0.4" - resolved "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz" - integrity "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==" - -"has-bigints@1.0.2": - version "1.0.2" - resolved "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz" - integrity "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==" - -"has-flag@3.0.0": - version "3.0.0" - resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" - integrity "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==" - -"has-flag@4.0.0": - version "4.0.0" - resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" - integrity "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - -"has-property-descriptors@1.0.0": - version "1.0.0" - resolved "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz" - integrity "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==" - dependencies: - "get-intrinsic" "1.1.3" - -"has-symbols@1.0.3": - version "1.0.3" - resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz" - integrity "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" - -"has-tostringtag@1.0.0": - version "1.0.0" - resolved "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz" - integrity "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==" - dependencies: - "has-symbols" "1.0.3" - -"has@1.0.3": - version "1.0.3" - resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz" - integrity "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==" - dependencies: - "function-bind" "1.1.1" - -"he@1.2.0": - version "1.2.0" - resolved "https://registry.npmjs.org/he/-/he-1.2.0.tgz" - integrity "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==" - -"human-signals@2.1.0": - version "2.1.0" - resolved "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz" - integrity "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==" - -"humanize-duration@^3.28.0", "humanize-duration@3.28.0": - version "3.28.0" - resolved "https://registry.npmjs.org/humanize-duration/-/humanize-duration-3.28.0.tgz" - integrity "sha512-jMAxraOOmHuPbffLVDKkEKi/NeG8dMqP8lGRd6Tbf7JgAeG33jjgPWDbXXU7ypCI0o+oNKJFgbSB9FKVdWNI2A==" - -"ignore@5.2.0": - version "5.2.0" - resolved "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz" - integrity "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==" - -"import-fresh@3.3.0": - version "3.3.0" - resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz" - integrity "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==" - dependencies: - "parent-module" "1.0.1" - "resolve-from" "4.0.0" - -"imurmurhash@0.1.4": - version "0.1.4" - resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz" - integrity "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==" - -"inflight@1.0.6": - version "1.0.6" - resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" - integrity "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==" - dependencies: - "once" "1.4.0" - "wrappy" "1.0.2" - -"inherits@2.0.4": - version "2.0.4" - resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" - integrity "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - -"internal-slot@1.0.3": - version "1.0.3" - resolved "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz" - integrity "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==" - dependencies: - "get-intrinsic" "1.1.3" - "has" "1.0.3" - "side-channel" "1.0.4" - -"is-bigint@1.0.4": - version "1.0.4" - resolved "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz" - integrity "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==" - dependencies: - "has-bigints" "1.0.2" - -"is-binary-path@2.1.0": - version "2.1.0" - resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz" - integrity "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==" - dependencies: - "binary-extensions" "2.2.0" - -"is-boolean-object@1.1.2": - version "1.1.2" - resolved "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz" - integrity "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==" - dependencies: - "call-bind" "1.0.2" - "has-tostringtag" "1.0.0" - -"is-callable@1.2.7": - version "1.2.7" - resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz" - integrity "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==" - -"is-core-module@2.11.0": - version "2.11.0" - resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz" - integrity "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==" - dependencies: - "has" "1.0.3" - -"is-date-object@1.0.5": - version "1.0.5" - resolved "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz" - integrity "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==" - dependencies: - "has-tostringtag" "1.0.0" - -"is-extglob@2.1.1": - version "2.1.1" - resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" - integrity "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==" - -"is-glob@4.0.3": - version "4.0.3" - resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz" - integrity "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==" - dependencies: - "is-extglob" "2.1.1" - -"is-negative-zero@2.0.2": - version "2.0.2" - resolved "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz" - integrity "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==" - -"is-number-object@1.0.7": - version "1.0.7" - resolved "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz" - integrity "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==" - dependencies: - "has-tostringtag" "1.0.0" - -"is-number@7.0.0": - version "7.0.0" - resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" - integrity "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" - -"is-path-inside@3.0.3": - version "3.0.3" - resolved "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz" - integrity "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==" - -"is-regex@1.1.4": - version "1.1.4" - resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz" - integrity "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==" - dependencies: - "call-bind" "1.0.2" - "has-tostringtag" "1.0.0" - -"is-shared-array-buffer@1.0.2": - version "1.0.2" - resolved "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz" - integrity "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==" - dependencies: - "call-bind" "1.0.2" - -"is-stream@2.0.1": - version "2.0.1" - resolved "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz" - integrity "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==" - -"is-string@1.0.7": - version "1.0.7" - resolved "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz" - integrity "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==" - dependencies: - "has-tostringtag" "1.0.0" - -"is-symbol@1.0.4": - version "1.0.4" - resolved "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz" - integrity "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==" - dependencies: - "has-symbols" "1.0.3" - -"is-weakref@1.0.2": - version "1.0.2" - resolved "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz" - integrity "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==" - dependencies: - "call-bind" "1.0.2" - -"isexe@2.0.0": - version "2.0.0" - resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" - integrity "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" - -"javascript-time-ago@^2.5.9", "javascript-time-ago@2.5.9": - version "2.5.9" - resolved "https://registry.npmjs.org/javascript-time-ago/-/javascript-time-ago-2.5.9.tgz" - integrity "sha512-pQ8mNco/9g9TqWXWWjP0EWl6i/lAQScOyEeXy5AB+f7MfLSdgyV9BJhiOD1zrIac/lrxPYOWNbyl/IW8CW5n0A==" - dependencies: - "relative-time-format" "1.1.6" - -"jiti@1.16.0": - version "1.16.0" - resolved "https://registry.npmjs.org/jiti/-/jiti-1.16.0.tgz" - integrity "sha512-L3BJStEf5NAqNuzrpfbN71dp43mYIcBUlCRea/vdyv5dW/AYa1d4bpelko4SHdY3I6eN9Wzyasxirj1/vv5kmg==" - -"js-sdsl@4.1.5": - version "4.1.5" - resolved "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.1.5.tgz" - integrity "sha512-08bOAKweV2NUC1wqTtf3qZlnpOX/R2DU9ikpjOHs0H+ibQv3zpncVQg6um4uYtRtrwIX8M4Nh3ytK4HGlYAq7Q==" - -"js-tokens@4.0.0": - version "4.0.0" - resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" - integrity "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - -"js-yaml@4.1.0": - version "4.1.0" - resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz" - integrity "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==" - dependencies: - "argparse" "2.0.1" - -"jsesc@2.5.2": - version "2.5.2" - resolved "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz" - integrity "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" - -"json-schema-traverse@0.4.1": - version "0.4.1" - resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz" - integrity "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" - -"json-stable-stringify-without-jsonify@1.0.1": - version "1.0.1" - resolved "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz" - integrity "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==" - -"json5@1.0.1": - version "1.0.1" - resolved "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz" - integrity "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==" - dependencies: - "minimist" "1.2.7" - -"json5@2.2.1": - version "2.2.1" - resolved "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz" - integrity "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==" - -"json5@2.2.3": - version "2.2.3" - resolved "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz" - integrity "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==" - -"jsonc-eslint-parser@1.4.1": - version "1.4.1" - resolved "https://registry.npmjs.org/jsonc-eslint-parser/-/jsonc-eslint-parser-1.4.1.tgz" - integrity "sha512-hXBrvsR1rdjmB2kQmUjf1rEIa+TqHBGMge8pwi++C+Si1ad7EjZrJcpgwym+QGK/pqTx+K7keFAtLlVNdLRJOg==" - dependencies: - "acorn" "7.4.1" - "eslint-utils" "2.1.0" - "eslint-visitor-keys" "1.3.0" - "espree" "6.2.1" - "semver" "6.3.0" - -"kolorist@1.6.0": - version "1.6.0" - resolved "https://registry.npmjs.org/kolorist/-/kolorist-1.6.0.tgz" - integrity "sha512-dLkz37Ab97HWMx9KTes3Tbi3D1ln9fCAy2zr2YVExJasDRPGRaKcoE4fycWNtnCAJfjFqe0cnY+f8KT2JePEXQ==" - -"kolorist@1.7.0": - version "1.7.0" - resolved "https://registry.npmjs.org/kolorist/-/kolorist-1.7.0.tgz" - integrity "sha512-ymToLHqL02udwVdbkowNpzjFd6UzozMtshPQKVi5k1EjKRqKqBrOnE9QbLEb0/pV76SAiIT13hdL8R6suc+f3g==" - -"levn@0.4.1": - version "0.4.1" - resolved "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz" - integrity "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==" - dependencies: - "prelude-ls" "1.2.1" - "type-check" "0.4.0" - -"local-pkg@0.4.3": - version "0.4.3" - resolved "https://registry.npmjs.org/local-pkg/-/local-pkg-0.4.3.tgz" - integrity "sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==" - -"locate-path@6.0.0": - version "6.0.0" - resolved "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz" - integrity "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==" - dependencies: - "p-locate" "5.0.0" - -"lodash.merge@4.6.2": - version "4.6.2" - resolved "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz" - integrity "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" - -"lodash.sortedlastindex@4.1.0": - version "4.1.0" - resolved "https://registry.npmjs.org/lodash.sortedlastindex/-/lodash.sortedlastindex-4.1.0.tgz" - integrity "sha512-s8xEQdsp2Tu5zUqVdFSe9C0kR8YlnAJYLqMdkh+pIRBRxF6/apWseLdHl3/+jv2I61dhPwtI/Ff+EqvCpc+N8w==" - -"lodash@^4.17.21", "lodash@4.17.21": - version "4.17.21" - resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" - integrity "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - -"lru-cache@6.0.0": - version "6.0.0" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz" - integrity "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==" - dependencies: - "yallist" "4.0.0" - -"magic-string@0.25.9": - version "0.25.9" - resolved "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz" - integrity "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==" - dependencies: - "sourcemap-codec" "1.4.8" - -"magic-string@0.27.0": - version "0.27.0" - resolved "https://registry.npmjs.org/magic-string/-/magic-string-0.27.0.tgz" - integrity "sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==" - dependencies: - "@jridgewell/sourcemap-codec" "1.4.14" - -"magic-string@0.30.0": - version "0.30.0" - resolved "https://registry.npmjs.org/magic-string/-/magic-string-0.30.0.tgz" - integrity "sha512-LA+31JYDJLs82r2ScLrlz1GjSgu66ZV518eyWT+S8VhyQn/JL0u9MeBOvQMGYiPk1DBiSN9DDMOcXvigJZaViQ==" - dependencies: - "@jridgewell/sourcemap-codec" "1.4.14" - -"mdn-data@2.0.28": - version "2.0.28" - resolved "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz" - integrity "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==" - -"mdn-data@2.0.30": - version "2.0.30" - resolved "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz" - integrity "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==" - -"merge-stream@2.0.0": - version "2.0.0" - resolved "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz" - integrity "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" - -"merge2@1.4.1": - version "1.4.1" - resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz" - integrity "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" - -"micromatch@4.0.5": - version "4.0.5" - resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz" - integrity "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==" - dependencies: - "braces" "3.0.2" - "picomatch" "2.3.1" - -"mimic-fn@2.1.0": - version "2.1.0" - resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz" - integrity "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" - -"minimatch@3.1.2": - version "3.1.2" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" - integrity "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==" - dependencies: - "brace-expansion" "1.1.11" - -"minimatch@6.2.0": - version "6.2.0" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-6.2.0.tgz" - integrity "sha512-sauLxniAmvnhhRjFwPNnJKaPFYyddAgbYdeUpHULtCT/GhzdCx/MDNy+Y40lBxTQUrMzDE8e0S43Z5uqfO0REg==" - dependencies: - "brace-expansion" "2.0.1" - -"minimatch@7.4.2": - version "7.4.2" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-7.4.2.tgz" - integrity "sha512-xy4q7wou3vUoC9k1xGTXc+awNdGaGVHtFUaey8tiX4H1QRc04DZ/rmDFwNm2EBsuYEhAZ6SgMmYf3InGY6OauA==" - dependencies: - "brace-expansion" "2.0.1" - -"minimist@1.2.7": - version "1.2.7" - resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz" - integrity "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==" - -"ms@2.1.2": - version "2.1.2" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" - integrity "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - -"ms@2.1.3": - version "2.1.3" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" - integrity "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - -"muggle-string@0.2.2": - version "0.2.2" - resolved "https://registry.npmjs.org/muggle-string/-/muggle-string-0.2.2.tgz" - integrity "sha512-YVE1mIJ4VpUMqZObFndk9CJu6DBJR/GB13p3tXuNbwD4XExaI5EOuRl6BHeIDxIqXZVxSfAC+y6U1Z/IxCfKUg==" - -"nanoid@3.3.4": - version "3.3.4" - resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz" - integrity "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==" - -"natural-compare-lite@1.4.0": - version "1.4.0" - resolved "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz" - integrity "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==" - -"natural-compare@1.4.0": - version "1.4.0" - resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz" - integrity "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==" - -"node-emoji@^1.11.0", "node-emoji@1.11.0": - version "1.11.0" - resolved "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz" - integrity "sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==" - dependencies: - "lodash" "4.17.21" - -"node-releases@2.0.6": - version "2.0.6" - resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz" - integrity "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==" - -"normalize-path@3.0.0": - version "3.0.0" - resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" - integrity "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" - -"npm-run-path@4.0.1": - version "4.0.1" - resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz" - integrity "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==" - dependencies: - "path-key" "3.1.1" - -"nth-check@2.1.1": - version "2.1.1" - resolved "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz" - integrity "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==" - dependencies: - "boolbase" "1.0.0" - -"object-inspect@1.12.2": - version "1.12.2" - resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz" - integrity "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==" - -"object-keys@1.1.1": - version "1.1.1" - resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz" - integrity "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" - -"object.assign@4.1.4": - version "4.1.4" - resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz" - integrity "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==" - dependencies: - "call-bind" "1.0.2" - "define-properties" "1.1.4" - "has-symbols" "1.0.3" - "object-keys" "1.1.1" - -"object.entries@1.1.5": - version "1.1.5" - resolved "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz" - integrity "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==" - dependencies: - "call-bind" "1.0.2" - "define-properties" "1.1.4" - "es-abstract" "1.20.4" - -"object.values@1.1.6": - version "1.1.6" - resolved "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz" - integrity "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==" - dependencies: - "call-bind" "1.0.2" - "define-properties" "1.1.4" - "es-abstract" "1.20.4" - -"once@1.4.0": - version "1.4.0" - resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" - integrity "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==" - dependencies: - "wrappy" "1.0.2" - -"onetime@5.1.2": - version "5.1.2" - resolved "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz" - integrity "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==" - dependencies: - "mimic-fn" "2.1.0" - -"optionator@0.9.1": - version "0.9.1" - resolved "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz" - integrity "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==" - dependencies: - "deep-is" "0.1.4" - "fast-levenshtein" "2.0.6" - "levn" "0.4.1" - "prelude-ls" "1.2.1" - "type-check" "0.4.0" - "word-wrap" "1.2.3" - -"p-limit@3.1.0": - version "3.1.0" - resolved "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz" - integrity "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==" - dependencies: - "yocto-queue" "0.1.0" - -"p-locate@5.0.0": - version "5.0.0" - resolved "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz" - integrity "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==" - dependencies: - "p-limit" "3.1.0" - -"parent-module@1.0.1": - version "1.0.1" - resolved "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz" - integrity "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==" - dependencies: - "callsites" "3.1.0" - -"path-exists@4.0.0": - version "4.0.0" - resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" - integrity "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" - -"path-is-absolute@1.0.1": - version "1.0.1" - resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" - integrity "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" - -"path-key@3.1.1": - version "3.1.1" - resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" - integrity "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" - -"path-parse@1.0.7": - version "1.0.7" - resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" - integrity "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" - -"path-type@4.0.0": - version "4.0.0" - resolved "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz" - integrity "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" - -"pathe@1.1.0": - version "1.1.0" - resolved "https://registry.npmjs.org/pathe/-/pathe-1.1.0.tgz" - integrity "sha512-ODbEPR0KKHqECXW1GoxdDb+AZvULmXjVPy4rt+pGo2+TnjJTIPJQSVS6N63n8T2Ip+syHhbn52OewKicV0373w==" - -"picocolors@1.0.0": - version "1.0.0" - resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz" - integrity "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" - -"picomatch@2.3.1": - version "2.3.1" - resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" - integrity "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" - -"pinia@^2.0.33", "pinia@2.0.33": - version "2.0.33" - resolved "https://registry.npmjs.org/pinia/-/pinia-2.0.33.tgz" - integrity "sha512-HOj1yVV2itw6rNIrR2f7+MirGNxhORjrULL8GWgRwXsGSvEqIQ+SE0MYt6cwtpegzCda3i+rVTZM+AM7CG+kRg==" - dependencies: - "@vue/devtools-api" "6.5.0" - "typescript" "5.0.2" - "vue" "3.2.47" - "vue-demi" "0.13.11" - -"postcss-safe-parser@6.0.0": - version "6.0.0" - resolved "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz" - integrity "sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==" - dependencies: - "postcss" "8.4.18" - -"postcss-scss@4.0.5": - version "4.0.5" - resolved "https://registry.npmjs.org/postcss-scss/-/postcss-scss-4.0.5.tgz" - integrity "sha512-F7xpB6TrXyqUh3GKdyB4Gkp3QL3DDW1+uI+gxx/oJnUt/qXI4trj5OGlp9rOKdoABGULuqtqeG+3HEVQk4DjmA==" - dependencies: - "postcss" "8.4.18" - -"postcss-selector-parser@6.0.10": - version "6.0.10" - resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz" - integrity "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==" - dependencies: - "cssesc" "3.0.0" - "util-deprecate" "1.0.2" - -"postcss-styl@0.12.3": - version "0.12.3" - resolved "https://registry.npmjs.org/postcss-styl/-/postcss-styl-0.12.3.tgz" - integrity "sha512-8I7Cd8sxiEITIp32xBK4K/Aj1ukX6vuWnx8oY/oAH35NfQI4OZaY5nd68Yx8HeN5S49uhQ6DL0rNk0ZBu/TaLg==" - dependencies: - "debug" "4.3.4" - "fast-diff" "1.2.0" - "lodash.sortedlastindex" "4.1.0" - "postcss" "8.4.21" - "stylus" "0.57.0" - -"postcss@8.4.18": - version "8.4.18" - resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.18.tgz" - integrity "sha512-Wi8mWhncLJm11GATDaQKobXSNEYGUHeQLiQqDFG1qQ5UTDPTEvKw0Xt5NsTpktGTwLps3ByrWsBrG0rB8YQ9oA==" - dependencies: - "nanoid" "3.3.4" - "picocolors" "1.0.0" - "source-map-js" "1.0.2" - -"postcss@8.4.21": - version "8.4.21" - resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz" - integrity "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==" - dependencies: - "nanoid" "3.3.4" - "picocolors" "1.0.0" - "source-map-js" "1.0.2" - -"prelude-ls@1.2.1": - version "1.2.1" - resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz" - integrity "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==" - -"prettier-linter-helpers@1.0.0": - version "1.0.0" - resolved "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz" - integrity "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==" - dependencies: - "fast-diff" "1.2.0" - -"prettier@^2.8.5", "prettier@2.8.5": - version "2.8.5" - resolved "https://registry.npmjs.org/prettier/-/prettier-2.8.5.tgz" - integrity "sha512-3gzuxrHbKUePRBB4ZeU08VNkUcqEHaUaouNt0m7LGP4Hti/NuB07C7PPTM/LkWqXoJYJn2McEo5+kxPNrtQkLQ==" - -"prismjs@^1.29.0", "prismjs@1.29.0": - version "1.29.0" - resolved "https://registry.npmjs.org/prismjs/-/prismjs-1.29.0.tgz" - integrity "sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==" - -"punycode@2.1.1": - version "2.1.1" - resolved "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz" - integrity "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" - -"queue-microtask@1.2.3": - version "1.2.3" - resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz" - integrity "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" - -"readdirp@3.6.0": - version "3.6.0" - resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz" - integrity "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==" - dependencies: - "picomatch" "2.3.1" - -"regexp.prototype.flags@1.4.3": - version "1.4.3" - resolved "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz" - integrity "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==" - dependencies: - "call-bind" "1.0.2" - "define-properties" "1.1.4" - "functions-have-names" "1.2.3" - -"relative-time-format@1.1.6": - version "1.1.6" - resolved "https://registry.npmjs.org/relative-time-format/-/relative-time-format-1.1.6.tgz" - integrity "sha512-aCv3juQw4hT1/P/OrVltKWLlp15eW1GRcwP1XdxHrPdZE9MtgqFpegjnTjLhi2m2WI9MT/hQQtE+tjEWG1hgkQ==" - -"resolve-from@4.0.0": - version "4.0.0" - resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz" - integrity "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==" - -"resolve@1.22.1": - version "1.22.1" - resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz" - integrity "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==" - dependencies: - "is-core-module" "2.11.0" - "path-parse" "1.0.7" - "supports-preserve-symlinks-flag" "1.0.0" - -"reusify@1.0.4": - version "1.0.4" - resolved "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz" - integrity "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" - -"rimraf@3.0.2": - version "3.0.2" - resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz" - integrity "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==" - dependencies: - "glob" "7.2.3" - -"rollup@3.19.1": - version "3.19.1" - resolved "https://registry.npmjs.org/rollup/-/rollup-3.19.1.tgz" - integrity "sha512-lAbrdN7neYCg/8WaoWn/ckzCtz+jr70GFfYdlf50OF7387HTg+wiuiqJRFYawwSPpqfqDNYqK7smY/ks2iAudg==" - -"run-parallel@1.2.0": - version "1.2.0" - resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz" - integrity "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==" - dependencies: - "queue-microtask" "1.2.3" - -"safe-regex-test@1.0.0": - version "1.0.0" - resolved "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz" - integrity "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==" - dependencies: - "call-bind" "1.0.2" - "get-intrinsic" "1.1.3" - "is-regex" "1.1.4" - -"safer-buffer@2.1.2": - version "2.1.2" - resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" - integrity "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - -"sax@1.2.4": - version "1.2.4" - resolved "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz" - integrity "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" - -"semver@6.3.0": - version "6.3.0" - resolved "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz" - integrity "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - -"semver@7.3.8": - version "7.3.8" - resolved "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz" - integrity "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==" - dependencies: - "lru-cache" "6.0.0" - -"shebang-command@2.0.0": - version "2.0.0" - resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" - integrity "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==" - dependencies: - "shebang-regex" "3.0.0" - -"shebang-regex@3.0.0": - version "3.0.0" - resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" - integrity "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" - -"side-channel@1.0.4": - version "1.0.4" - resolved "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz" - integrity "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==" - dependencies: - "call-bind" "1.0.2" - "get-intrinsic" "1.1.3" - "object-inspect" "1.12.2" - -"signal-exit@3.0.7": - version "3.0.7" - resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz" - integrity "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" - -"slash@3.0.0": - version "3.0.0" - resolved "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz" - integrity "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" - -"source-map-js@1.0.2": - version "1.0.2" - resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz" - integrity "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==" - -"source-map-resolve@0.6.0": - version "0.6.0" - resolved "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz" - integrity "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==" - dependencies: - "atob" "2.1.2" - "decode-uri-component" "0.2.0" - -"source-map@0.6.1": - version "0.6.1" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" - integrity "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - -"source-map@0.7.4": - version "0.7.4" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz" - integrity "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==" - -"sourcemap-codec@1.4.8": - version "1.4.8" - resolved "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz" - integrity "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" - -"string.prototype.trimend@1.0.5": - version "1.0.5" - resolved "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz" - integrity "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==" - dependencies: - "call-bind" "1.0.2" - "define-properties" "1.1.4" - "es-abstract" "1.20.4" - -"string.prototype.trimstart@1.0.5": - version "1.0.5" - resolved "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz" - integrity "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==" - dependencies: - "call-bind" "1.0.2" - "define-properties" "1.1.4" - "es-abstract" "1.20.4" - -"strip-ansi@6.0.1": - version "6.0.1" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" - integrity "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==" - dependencies: - "ansi-regex" "5.0.1" - -"strip-bom@3.0.0": - version "3.0.0" - resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz" - integrity "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==" - -"strip-final-newline@2.0.0": - version "2.0.0" - resolved "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz" - integrity "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==" - -"strip-json-comments@3.1.1": - version "3.1.1" - resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz" - integrity "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==" - -"stylus@0.57.0": - version "0.57.0" - resolved "https://registry.npmjs.org/stylus/-/stylus-0.57.0.tgz" - integrity "sha512-yOI6G8WYfr0q8v8rRvE91wbxFU+rJPo760Va4MF6K0I6BZjO4r+xSynkvyPBP9tV1CIEUeRsiidjIs2rzb1CnQ==" - dependencies: - "css" "3.0.0" - "debug" "4.3.4" - "glob" "7.2.3" - "safer-buffer" "2.1.2" - "sax" "1.2.4" - "source-map" "0.7.4" - -"supports-color@5.5.0": - version "5.5.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" - integrity "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==" - dependencies: - "has-flag" "3.0.0" - -"supports-color@7.2.0": - version "7.2.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" - integrity "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==" - dependencies: - "has-flag" "4.0.0" - -"supports-preserve-symlinks-flag@1.0.0": - version "1.0.0" - resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz" - integrity "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" - -"svgo@3.0.2": - version "3.0.2" - resolved "https://registry.npmjs.org/svgo/-/svgo-3.0.2.tgz" - integrity "sha512-Z706C1U2pb1+JGP48fbazf3KxHrWOsLme6Rv7imFBn5EnuanDW1GPaA/P1/dvObE670JDePC3mnj0k0B7P0jjQ==" - dependencies: - "@trysound/sax" "0.2.0" - "commander" "7.2.0" - "css-select" "5.1.0" - "css-tree" "2.3.1" - "csso" "5.0.5" - "picocolors" "1.0.0" - -"text-table@0.2.0": - version "0.2.0" - resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz" - integrity "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==" - -"to-fast-properties@2.0.0": - version "2.0.0" - resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz" - integrity "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==" - -"to-regex-range@5.0.1": - version "5.0.1" - resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" - integrity "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==" - dependencies: - "is-number" "7.0.0" - -"tsconfig-paths@3.14.1": - version "3.14.1" - resolved "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz" - integrity "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==" - dependencies: - "@types/json5" "0.0.29" - "json5" "1.0.1" - "minimist" "1.2.7" - "strip-bom" "3.0.0" - -"tslib@1.14.1": - version "1.14.1" - resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz" - integrity "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - -"tsutils@3.21.0": - version "3.21.0" - resolved "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz" - integrity "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==" - dependencies: - "tslib" "1.14.1" - "typescript" "5.0.2" - -"type-check@0.4.0": - version "0.4.0" - resolved "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz" - integrity "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==" - dependencies: - "prelude-ls" "1.2.1" - -"type-fest@0.20.2": - version "0.20.2" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz" - integrity "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==" - -"typescript@5.0.2": - version "5.0.2" - resolved "https://registry.npmjs.org/typescript/-/typescript-5.0.2.tgz" - integrity "sha512-wVORMBGO/FAs/++blGNeAVdbNKtIh1rbBL2EyQ1+J9lClJ93KiiKe8PmFIVdXhHcyv44SL9oglmfeSsndo0jRw==" - -"unbox-primitive@1.0.2": - version "1.0.2" - resolved "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz" - integrity "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==" - dependencies: - "call-bind" "1.0.2" - "has-bigints" "1.0.2" - "has-symbols" "1.0.3" - "which-boxed-primitive" "1.0.2" - -"unplugin-icons@^0.15.3", "unplugin-icons@0.15.3": - version "0.15.3" - resolved "https://registry.npmjs.org/unplugin-icons/-/unplugin-icons-0.15.3.tgz" - integrity "sha512-YWgJqv5AahrokeOnta8uX/m1damZA6Rf6zPClgHg2Fa/45iyOe3Lj+Wn/Ba+CSsq9yBffn17YfKfJNyWCNZPvw==" - dependencies: - "@antfu/install-pkg" "0.1.1" - "@antfu/utils" "0.7.2" - "@iconify/utils" "2.1.5" - "@vue/compiler-sfc" "3.2.47" - "debug" "4.3.4" - "kolorist" "1.7.0" - "local-pkg" "0.4.3" - "unplugin" "1.3.1" - -"unplugin-vue-components@^0.24.1", "unplugin-vue-components@0.24.1": - version "0.24.1" - resolved "https://registry.npmjs.org/unplugin-vue-components/-/unplugin-vue-components-0.24.1.tgz" - integrity "sha512-T3A8HkZoIE1Cja95xNqolwza0yD5IVlgZZ1PVAGvVCx8xthmjsv38xWRCtHtwl+rvZyL9uif42SRkDGw9aCfMA==" - dependencies: - "@antfu/utils" "0.7.2" - "@rollup/pluginutils" "5.0.2" - "chokidar" "3.5.3" - "debug" "4.3.4" - "fast-glob" "3.2.12" - "local-pkg" "0.4.3" - "magic-string" "0.30.0" - "minimatch" "7.4.2" - "resolve" "1.22.1" - "unplugin" "1.3.1" - "vue" "3.2.47" - -"unplugin@1.3.1": - version "1.3.1" - resolved "https://registry.npmjs.org/unplugin/-/unplugin-1.3.1.tgz" - integrity "sha512-h4uUTIvFBQRxUKS2Wjys6ivoeofGhxzTe2sRWlooyjHXVttcVfV/JiavNd3d4+jty0SVV0dxGw9AkY9MwiaCEw==" - dependencies: - "acorn" "8.8.2" - "chokidar" "3.5.3" - "webpack-sources" "3.2.3" - "webpack-virtual-modules" "0.5.0" - -"update-browserslist-db@1.0.10": - version "1.0.10" - resolved "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz" - integrity "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==" - dependencies: - "browserslist" "4.21.4" - "escalade" "3.1.1" - "picocolors" "1.0.0" - -"uri-js@4.4.1": - version "4.4.1" - resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz" - integrity "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==" - dependencies: - "punycode" "2.1.1" - -"util-deprecate@1.0.2": - version "1.0.2" - resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" - integrity "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" - -"vite-plugin-prismjs@^0.0.8", "vite-plugin-prismjs@0.0.8": - version "0.0.8" - resolved "https://registry.npmjs.org/vite-plugin-prismjs/-/vite-plugin-prismjs-0.0.8.tgz" - integrity "sha512-mBPPMS/hwVUArdqCtp/oajZT7iq1qwJDDCciNZ3R5+Q5tQUuUHXtDKuZHYnklPLElNbENf2FyuOtC4FrgxQRAA==" - dependencies: - "@babel/core" "7.19.3" - "babel-plugin-prismjs" "2.1.0" - -"vite-plugin-windicss@^1.8.10", "vite-plugin-windicss@1.8.10": - version "1.8.10" - resolved "https://registry.npmjs.org/vite-plugin-windicss/-/vite-plugin-windicss-1.8.10.tgz" - integrity "sha512-scywsuzo46lcTBohspmF0WiwhWEte6p+OUVrX4yr7VMRvLHMHVfLtJReyD5pppjijG7YOwVsZn7XBWWZtF658Q==" - dependencies: - "@windicss/plugin-utils" "1.8.10" - "debug" "4.3.4" - "kolorist" "1.6.0" - "vite" "4.2.0" - "windicss" "3.5.6" - -"vite-svg-loader@^4.0.0", "vite-svg-loader@4.0.0": - version "4.0.0" - resolved "https://registry.npmjs.org/vite-svg-loader/-/vite-svg-loader-4.0.0.tgz" - integrity "sha512-0MMf1yzzSYlV4MGePsLVAOqXsbF5IVxbn4EEzqRnWxTQl8BJg/cfwIzfQNmNQxZp5XXwd4kyRKF1LytuHZTnqA==" - dependencies: - "@vue/compiler-sfc" "3.2.47" - "svgo" "3.0.2" - -"vite@^4.2.0", "vite@4.2.0": - version "4.2.0" - resolved "https://registry.npmjs.org/vite/-/vite-4.2.0.tgz" - integrity "sha512-AbDTyzzwuKoRtMIRLGNxhLRuv1FpRgdIw+1y6AQG73Q5+vtecmvzKo/yk8X/vrHDpETRTx01ABijqUHIzBXi0g==" - dependencies: - "@types/node" "18.15.3" - "esbuild" "0.17.12" - "postcss" "8.4.21" - "resolve" "1.22.1" - "rollup" "3.19.1" - -"vue-demi@0.13.11": - version "0.13.11" - resolved "https://registry.npmjs.org/vue-demi/-/vue-demi-0.13.11.tgz" - integrity "sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==" - dependencies: - "vue" "3.2.47" - -"vue-eslint-parser@^9.1.0", "vue-eslint-parser@9.1.0": - version "9.1.0" - resolved "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.1.0.tgz" - integrity "sha512-NGn/iQy8/Wb7RrRa4aRkokyCZfOUWk19OP5HP6JEozQFX5AoS/t+Z0ZN7FY4LlmWc4FNI922V7cvX28zctN8dQ==" - dependencies: - "debug" "4.3.4" - "eslint" "8.36.0" - "eslint-scope" "7.1.1" - "eslint-visitor-keys" "3.3.0" - "espree" "9.4.0" - "esquery" "1.4.0" - "lodash" "4.17.21" - "semver" "7.3.8" - -"vue-i18n@^9.2.2", "vue-i18n@9.2.2": - version "9.2.2" - resolved "https://registry.npmjs.org/vue-i18n/-/vue-i18n-9.2.2.tgz" - integrity "sha512-yswpwtj89rTBhegUAv9Mu37LNznyu3NpyLQmozF3i1hYOhwpG8RjcjIFIIfnu+2MDZJGSZPXaKWvnQA71Yv9TQ==" - dependencies: - "@intlify/core-base" "9.2.2" - "@intlify/shared" "9.2.2" - "@intlify/vue-devtools" "9.2.2" - "@vue/devtools-api" "6.4.5" - "vue" "3.2.47" - -"vue-resize@2.0.0-alpha.1": - version "2.0.0-alpha.1" - resolved "https://registry.npmjs.org/vue-resize/-/vue-resize-2.0.0-alpha.1.tgz" - integrity "sha512-7+iqOueLU7uc9NrMfrzbG8hwMqchfVfSzpVlCMeJQe4pyibqyoifDNbKTZvwxZKDvGkB+PdFeKvnGZMoEb8esg==" - dependencies: - "vue" "3.2.47" - -"vue-router@^4.1.6", "vue-router@4.1.6": - version "4.1.6" - resolved "https://registry.npmjs.org/vue-router/-/vue-router-4.1.6.tgz" - integrity "sha512-DYWYwsG6xNPmLq/FmZn8Ip+qrhFEzA14EI12MsMgVxvHFDYvlr4NXpVF5hrRH1wVcDP8fGi5F4rxuJSl8/r+EQ==" - dependencies: - "@vue/devtools-api" "6.4.5" - "vue" "3.2.47" - -"vue-template-compiler@2.7.14": - version "2.7.14" - resolved "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.14.tgz" - integrity "sha512-zyA5Y3ArvVG0NacJDkkzJuPQDF8RFeRlzV2vLeSnhSpieO6LK2OVbdLPi5MPPs09Ii+gMO8nY4S3iKQxBxDmWQ==" - dependencies: - "de-indent" "1.0.2" - "he" "1.2.0" - -"vue-tsc@^1.2.0", "vue-tsc@1.2.0": - version "1.2.0" - resolved "https://registry.npmjs.org/vue-tsc/-/vue-tsc-1.2.0.tgz" - integrity "sha512-rIlzqdrhyPYyLG9zxsVRa+JEseeS9s8F2BbVVVWRRsTZvJO2BbhLEb2HW3MY+DFma0378tnIqs+vfTzbcQtRFw==" - dependencies: - "@volar/vue-language-core" "1.2.0" - "@volar/vue-typescript" "1.2.0" - "typescript" "5.0.2" - -"vue@^3.2.47", "vue@3.2.47": - version "3.2.47" - resolved "https://registry.npmjs.org/vue/-/vue-3.2.47.tgz" - integrity "sha512-60188y/9Dc9WVrAZeUVSDxRQOZ+z+y5nO2ts9jWXSTkMvayiWxCWOWtBQoYjLeccfXkiiPZWAHcV+WTPhkqJHQ==" - dependencies: - "@vue/compiler-dom" "3.2.47" - "@vue/compiler-sfc" "3.2.47" - "@vue/runtime-dom" "3.2.47" - "@vue/server-renderer" "3.2.47" - "@vue/shared" "3.2.47" - -"webpack-sources@3.2.3": - version "3.2.3" - resolved "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz" - integrity "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==" - -"webpack-virtual-modules@0.5.0": - version "0.5.0" - resolved "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.5.0.tgz" - integrity "sha512-kyDivFZ7ZM0BVOUteVbDFhlRt7Ah/CSPwJdi8hBpkK7QLumUqdLtVfm/PX/hkcnrvr0i77fO5+TjZ94Pe+C9iw==" - -"which-boxed-primitive@1.0.2": - version "1.0.2" - resolved "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz" - integrity "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==" - dependencies: - "is-bigint" "1.0.4" - "is-boolean-object" "1.1.2" - "is-number-object" "1.0.7" - "is-string" "1.0.7" - "is-symbol" "1.0.4" - -"which@2.0.2": - version "2.0.2" - resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz" - integrity "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==" - dependencies: - "isexe" "2.0.0" - -"windicss@^3.5.6", "windicss@3.5.6": - version "3.5.6" - resolved "https://registry.npmjs.org/windicss/-/windicss-3.5.6.tgz" - integrity "sha512-P1mzPEjgFMZLX0ZqfFht4fhV/FX8DTG7ERG1fBLiWvd34pTLVReS5CVsewKn9PApSgXnVfPWwvq+qUsRwpnwFA==" - -"word-wrap@1.2.3": - version "1.2.3" - resolved "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz" - integrity "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==" - -"wrappy@1.0.2": - version "1.0.2" - resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" - integrity "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" - -"xml-name-validator@4.0.0": - version "4.0.0" - resolved "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz" - integrity "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==" - -"yallist@4.0.0": - version "4.0.0" - resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" - integrity "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - -"yaml-eslint-parser@0.3.2": - version "0.3.2" - resolved "https://registry.npmjs.org/yaml-eslint-parser/-/yaml-eslint-parser-0.3.2.tgz" - integrity "sha512-32kYO6kJUuZzqte82t4M/gB6/+11WAuHiEnK7FreMo20xsCKPeFH5tDBU7iWxR7zeJpNnMXfJyXwne48D0hGrg==" - dependencies: - "eslint-visitor-keys" "1.3.0" - "lodash" "4.17.21" - "yaml" "1.10.2" - -"yaml@1.10.2": - version "1.10.2" - resolved "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz" - integrity "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==" - -"yocto-queue@0.1.0": - version "0.1.0" - resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz" - integrity "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==" From 1b960c744963f115585080b58c248ef65bc0c289 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Tue, 1 Aug 2023 22:57:06 +0100 Subject: [PATCH 066/245] ci: use 'backend' tag --- .woodpecker/check.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.woodpecker/check.yml b/.woodpecker/check.yml index c3b00ef..d7c5dff 100644 --- a/.woodpecker/check.yml +++ b/.woodpecker/check.yml @@ -1,5 +1,5 @@ labels: - type: exec + backend: local pipeline: - name: nix flake check From 761393205ca877a90744f15ef88a8669b2f658d7 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Fri, 4 Aug 2023 09:54:10 +0000 Subject: [PATCH 067/245] pkgs: re-order 'meta' This is (mostly) alphetically sorted. --- pkgs/bw-pass/default.nix | 2 +- pkgs/change-audio/default.nix | 2 +- pkgs/change-backlight/default.nix | 2 +- pkgs/comma/default.nix | 4 ++-- pkgs/diff-flake/default.nix | 2 +- pkgs/drone-rsync/default.nix | 2 +- pkgs/i3-get-window-criteria/default.nix | 2 +- pkgs/lohr/default.nix | 2 +- pkgs/matrix-notifier/default.nix | 2 +- pkgs/osc52/default.nix | 2 +- pkgs/rbw-pass/default.nix | 2 +- pkgs/unbound-zones-adblock/default.nix | 2 +- pkgs/unified-hosts-lists/default.nix | 2 +- pkgs/vimix-cursors/default.nix | 2 +- pkgs/volantes-cursors/default.nix | 2 +- pkgs/wifi-qr/default.nix | 2 +- 16 files changed, 17 insertions(+), 17 deletions(-) diff --git a/pkgs/bw-pass/default.nix b/pkgs/bw-pass/default.nix index ef66f22..4e18c20 100644 --- a/pkgs/bw-pass/default.nix +++ b/pkgs/bw-pass/default.nix @@ -36,7 +36,7 @@ stdenvNoCC.mkDerivation rec { description = "A simple script to query a password from bitwarden"; homepage = "https://git.belanyi.fr/ambroisie/nix-config"; license = with licenses; [ mit ]; - platforms = platforms.linux; maintainers = with maintainers; [ ambroisie ]; + platforms = platforms.linux; }; } diff --git a/pkgs/change-audio/default.nix b/pkgs/change-audio/default.nix index f201a55..d08d60e 100644 --- a/pkgs/change-audio/default.nix +++ b/pkgs/change-audio/default.nix @@ -35,7 +35,7 @@ stdenvNoCC.mkDerivation rec { ''; homepage = "https://git.belanyi.fr/ambroisie/nix-config"; license = with licenses; [ mit ]; - platforms = platforms.linux; maintainers = with maintainers; [ ambroisie ]; + platforms = platforms.linux; }; } diff --git a/pkgs/change-backlight/default.nix b/pkgs/change-backlight/default.nix index f9a1afd..d1b8981 100644 --- a/pkgs/change-backlight/default.nix +++ b/pkgs/change-backlight/default.nix @@ -35,7 +35,7 @@ stdenvNoCC.mkDerivation rec { ''; homepage = "https://git.belanyi.fr/ambroisie/nix-config"; license = with licenses; [ mit ]; - platforms = platforms.linux; maintainers = with maintainers; [ ambroisie ]; + platforms = platforms.linux; }; } diff --git a/pkgs/comma/default.nix b/pkgs/comma/default.nix index 0ce542d..32e09d0 100644 --- a/pkgs/comma/default.nix +++ b/pkgs/comma/default.nix @@ -30,11 +30,11 @@ stdenvNoCC.mkDerivation rec { ''; meta = with lib; { - mainProgram = ","; description = "A simple script inspired by Shopify's comma, for modern Nix"; homepage = "https://git.belanyi.fr/ambroisie/nix-config"; license = with licenses; [ mit ]; - platforms = platforms.unix; + mainProgram = ","; maintainers = with maintainers; [ ambroisie ]; + platforms = platforms.unix; }; } diff --git a/pkgs/diff-flake/default.nix b/pkgs/diff-flake/default.nix index 55d9403..0c2600b 100644 --- a/pkgs/diff-flake/default.nix +++ b/pkgs/diff-flake/default.nix @@ -34,7 +34,7 @@ stdenvNoCC.mkDerivation rec { description = "Nix flake helper to visualize changes in closures"; homepage = "https://git.belanyi.fr/ambroisie/nix-config"; license = with licenses; [ mit ]; - platforms = platforms.unix; maintainers = with maintainers; [ ambroisie ]; + platforms = platforms.unix; }; } diff --git a/pkgs/drone-rsync/default.nix b/pkgs/drone-rsync/default.nix index 0783ad1..1e679a8 100644 --- a/pkgs/drone-rsync/default.nix +++ b/pkgs/drone-rsync/default.nix @@ -34,7 +34,7 @@ stdenvNoCC.mkDerivation rec { description = "Helper script to run rsync in a CI pipeline"; homepage = "https://git.belanyi.fr/ambroisie/nix-config"; license = with licenses; [ mit ]; - platforms = platforms.unix; maintainers = with maintainers; [ ambroisie ]; + platforms = platforms.unix; }; } diff --git a/pkgs/i3-get-window-criteria/default.nix b/pkgs/i3-get-window-criteria/default.nix index a464091..e5f605b 100644 --- a/pkgs/i3-get-window-criteria/default.nix +++ b/pkgs/i3-get-window-criteria/default.nix @@ -35,7 +35,7 @@ stdenvNoCC.mkDerivation rec { description = "Helper script to query i3 window criterions"; homepage = "https://git.belanyi.fr/ambroisie/nix-config"; license = with licenses; [ mit ]; - platforms = platforms.unix; maintainers = with maintainers; [ ambroisie ]; + platforms = platforms.unix; }; } diff --git a/pkgs/lohr/default.nix b/pkgs/lohr/default.nix index 38892bb..986472a 100644 --- a/pkgs/lohr/default.nix +++ b/pkgs/lohr/default.nix @@ -16,7 +16,7 @@ rustPlatform.buildRustPackage rec { description = "Git mirroring daemon"; homepage = "https://github.com/alarsyo/lohr"; license = with licenses; [ mit asl20 ]; - platforms = platforms.unix; maintainers = with maintainers; [ ambroisie ]; + platforms = platforms.unix; }; } diff --git a/pkgs/matrix-notifier/default.nix b/pkgs/matrix-notifier/default.nix index 1762b62..d4a3844 100644 --- a/pkgs/matrix-notifier/default.nix +++ b/pkgs/matrix-notifier/default.nix @@ -38,7 +38,7 @@ stdenvNoCC.mkDerivation rec { ''; homepage = "https://git.belanyi.fr/ambroisie/${pname}"; license = licenses.mit; - platforms = platforms.unix; maintainers = with maintainers; [ ambroisie ]; + platforms = platforms.unix; }; } diff --git a/pkgs/osc52/default.nix b/pkgs/osc52/default.nix index 9e20eab..e02121b 100644 --- a/pkgs/osc52/default.nix +++ b/pkgs/osc52/default.nix @@ -34,7 +34,7 @@ stdenvNoCC.mkDerivation rec { ''; homepage = "https://git.belanyi.fr/ambroisie/nix-config"; license = with licenses; [ mit ]; - platforms = platforms.linux; maintainers = with maintainers; [ ambroisie ]; + platforms = platforms.linux; }; } diff --git a/pkgs/rbw-pass/default.nix b/pkgs/rbw-pass/default.nix index 7f0286b..1767408 100644 --- a/pkgs/rbw-pass/default.nix +++ b/pkgs/rbw-pass/default.nix @@ -34,7 +34,7 @@ stdenvNoCC.mkDerivation rec { description = "A simple script to query a password from rbw"; homepage = "https://git.belanyi.fr/ambroisie/nix-config"; license = with licenses; [ mit ]; - platforms = platforms.linux; maintainers = with maintainers; [ ambroisie ]; + platforms = platforms.linux; }; } diff --git a/pkgs/unbound-zones-adblock/default.nix b/pkgs/unbound-zones-adblock/default.nix index f8d89b1..b8392ae 100644 --- a/pkgs/unbound-zones-adblock/default.nix +++ b/pkgs/unbound-zones-adblock/default.nix @@ -32,7 +32,7 @@ stdenvNoCC.mkDerivation { ''; homepage = "https://github.com/StevenBlack/hosts"; license = licenses.mit; - platforms = platforms.all; maintainers = with maintainers; [ ambroisie ]; + platforms = platforms.all; }; } diff --git a/pkgs/unified-hosts-lists/default.nix b/pkgs/unified-hosts-lists/default.nix index 1bafb03..06d24ac 100644 --- a/pkgs/unified-hosts-lists/default.nix +++ b/pkgs/unified-hosts-lists/default.nix @@ -28,7 +28,7 @@ stdenvNoCC.mkDerivation rec { ''; homepage = "https://github.com/StevenBlack/hosts"; license = licenses.mit; - platforms = platforms.all; maintainers = with maintainers; [ ambroisie ]; + platforms = platforms.all; }; } diff --git a/pkgs/vimix-cursors/default.nix b/pkgs/vimix-cursors/default.nix index 8f92595..80424de 100644 --- a/pkgs/vimix-cursors/default.nix +++ b/pkgs/vimix-cursors/default.nix @@ -38,7 +38,7 @@ stdenvNoCC.mkDerivation rec { description = "An X cursor theme inspired by Materia design"; homepage = "https://github.com/vinceliuice/Vimix-cursors"; license = licenses.gpl3Only; - platforms = platforms.linux; maintainers = with maintainers; [ ambroisie ]; + platforms = platforms.linux; }; } diff --git a/pkgs/volantes-cursors/default.nix b/pkgs/volantes-cursors/default.nix index 0a49912..b2c7865 100644 --- a/pkgs/volantes-cursors/default.nix +++ b/pkgs/volantes-cursors/default.nix @@ -38,7 +38,7 @@ stdenvNoCC.mkDerivation rec { description = "Classic cursor with a flying style"; homepage = "https://github.com/varlesh/volantes-cursors"; license = licenses.gpl2Only; - platforms = platforms.linux; maintainers = with maintainers; [ ambroisie ]; + platforms = platforms.linux; }; } diff --git a/pkgs/wifi-qr/default.nix b/pkgs/wifi-qr/default.nix index c68eceb..79f4109 100644 --- a/pkgs/wifi-qr/default.nix +++ b/pkgs/wifi-qr/default.nix @@ -74,7 +74,7 @@ stdenvNoCC.mkDerivation rec { description = "WiFi password sharing via QR codes"; homepage = "https://github.com/kokoye2007/wifi-qr"; license = with licenses; [ gpl3Plus ]; - platforms = platforms.linux; maintainers = with maintainers; [ ambroisie ]; + platforms = platforms.linux; }; } From 405965dc7211c20632eaca3545a87a283c16b7f6 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Fri, 4 Aug 2023 09:54:23 +0000 Subject: [PATCH 068/245] pkgs: add explicit 'meta.mainProgram' Since upstream has decided to deprecate the implied value when using `lib.getExe` (see [1]), we should set it explicitly. [1]: https://github.com/NixOS/nixpkgs/pull/246386 --- pkgs/bw-pass/default.nix | 1 + pkgs/change-audio/default.nix | 1 + pkgs/change-backlight/default.nix | 1 + pkgs/diff-flake/default.nix | 1 + pkgs/dragger/default.nix | 1 + pkgs/drone-rsync/default.nix | 1 + pkgs/drone-scp/default.nix | 1 + pkgs/ff2mpv-go/default.nix | 1 + pkgs/i3-get-window-criteria/default.nix | 1 + pkgs/lohr/default.nix | 1 + pkgs/matrix-notifier/default.nix | 1 + pkgs/osc52/default.nix | 1 + pkgs/rbw-pass/default.nix | 1 + pkgs/wifi-qr/default.nix | 1 + 14 files changed, 14 insertions(+) diff --git a/pkgs/bw-pass/default.nix b/pkgs/bw-pass/default.nix index 4e18c20..9b959f5 100644 --- a/pkgs/bw-pass/default.nix +++ b/pkgs/bw-pass/default.nix @@ -36,6 +36,7 @@ stdenvNoCC.mkDerivation rec { description = "A simple script to query a password from bitwarden"; homepage = "https://git.belanyi.fr/ambroisie/nix-config"; license = with licenses; [ mit ]; + mainProgram = "bw-pass"; maintainers = with maintainers; [ ambroisie ]; platforms = platforms.linux; }; diff --git a/pkgs/change-audio/default.nix b/pkgs/change-audio/default.nix index d08d60e..12814e1 100644 --- a/pkgs/change-audio/default.nix +++ b/pkgs/change-audio/default.nix @@ -35,6 +35,7 @@ stdenvNoCC.mkDerivation rec { ''; homepage = "https://git.belanyi.fr/ambroisie/nix-config"; license = with licenses; [ mit ]; + mainProgram = "change-audio"; maintainers = with maintainers; [ ambroisie ]; platforms = platforms.linux; }; diff --git a/pkgs/change-backlight/default.nix b/pkgs/change-backlight/default.nix index d1b8981..1f8c88c 100644 --- a/pkgs/change-backlight/default.nix +++ b/pkgs/change-backlight/default.nix @@ -35,6 +35,7 @@ stdenvNoCC.mkDerivation rec { ''; homepage = "https://git.belanyi.fr/ambroisie/nix-config"; license = with licenses; [ mit ]; + mainProgram = "change-backlight"; maintainers = with maintainers; [ ambroisie ]; platforms = platforms.linux; }; diff --git a/pkgs/diff-flake/default.nix b/pkgs/diff-flake/default.nix index 0c2600b..9cccd20 100644 --- a/pkgs/diff-flake/default.nix +++ b/pkgs/diff-flake/default.nix @@ -34,6 +34,7 @@ stdenvNoCC.mkDerivation rec { description = "Nix flake helper to visualize changes in closures"; homepage = "https://git.belanyi.fr/ambroisie/nix-config"; license = with licenses; [ mit ]; + mainProgram = "diff-flake"; maintainers = with maintainers; [ ambroisie ]; platforms = platforms.unix; }; diff --git a/pkgs/dragger/default.nix b/pkgs/dragger/default.nix index 255cc01..9eda7df 100644 --- a/pkgs/dragger/default.nix +++ b/pkgs/dragger/default.nix @@ -23,6 +23,7 @@ qt5.mkDerivation rec { description = "A CLI drag-and-drop tool"; homepage = "https://git.belanyi.fr/ambroisie/dragger"; license = licenses.mit; + mainProgram = "dragger"; maintainers = with maintainers; [ ambroisie ]; platforms = platforms.linux; }; diff --git a/pkgs/drone-rsync/default.nix b/pkgs/drone-rsync/default.nix index 1e679a8..a7c2cbc 100644 --- a/pkgs/drone-rsync/default.nix +++ b/pkgs/drone-rsync/default.nix @@ -34,6 +34,7 @@ stdenvNoCC.mkDerivation rec { description = "Helper script to run rsync in a CI pipeline"; homepage = "https://git.belanyi.fr/ambroisie/nix-config"; license = with licenses; [ mit ]; + mainProgram = "drone-rsync"; maintainers = with maintainers; [ ambroisie ]; platforms = platforms.unix; }; diff --git a/pkgs/drone-scp/default.nix b/pkgs/drone-scp/default.nix index 0affedb..7437b06 100644 --- a/pkgs/drone-scp/default.nix +++ b/pkgs/drone-scp/default.nix @@ -20,5 +20,6 @@ buildGoModule rec { ''; homepage = "https://github.com/appleboy/drone-scp"; license = licenses.mit; + mainProgram = "drone-scp"; }; } diff --git a/pkgs/ff2mpv-go/default.nix b/pkgs/ff2mpv-go/default.nix index fdd9201..8c59bf5 100644 --- a/pkgs/ff2mpv-go/default.nix +++ b/pkgs/ff2mpv-go/default.nix @@ -26,5 +26,6 @@ buildGoModule rec { ''; homepage = "https://git.clsr.net/util/ff2mpv-go/"; license = licenses.publicDomain; + mainProgram = "ff2mpv-go"; }; } diff --git a/pkgs/i3-get-window-criteria/default.nix b/pkgs/i3-get-window-criteria/default.nix index e5f605b..2fc840d 100644 --- a/pkgs/i3-get-window-criteria/default.nix +++ b/pkgs/i3-get-window-criteria/default.nix @@ -35,6 +35,7 @@ stdenvNoCC.mkDerivation rec { description = "Helper script to query i3 window criterions"; homepage = "https://git.belanyi.fr/ambroisie/nix-config"; license = with licenses; [ mit ]; + mainProgram = "i3-get-window-criteria"; maintainers = with maintainers; [ ambroisie ]; platforms = platforms.unix; }; diff --git a/pkgs/lohr/default.nix b/pkgs/lohr/default.nix index 986472a..a83b092 100644 --- a/pkgs/lohr/default.nix +++ b/pkgs/lohr/default.nix @@ -16,6 +16,7 @@ rustPlatform.buildRustPackage rec { description = "Git mirroring daemon"; homepage = "https://github.com/alarsyo/lohr"; license = with licenses; [ mit asl20 ]; + mainProgram = "lohr"; maintainers = with maintainers; [ ambroisie ]; platforms = platforms.unix; }; diff --git a/pkgs/matrix-notifier/default.nix b/pkgs/matrix-notifier/default.nix index d4a3844..a96cb61 100644 --- a/pkgs/matrix-notifier/default.nix +++ b/pkgs/matrix-notifier/default.nix @@ -38,6 +38,7 @@ stdenvNoCC.mkDerivation rec { ''; homepage = "https://git.belanyi.fr/ambroisie/${pname}"; license = licenses.mit; + mainProgram = "matrix-notifier"; maintainers = with maintainers; [ ambroisie ]; platforms = platforms.unix; }; diff --git a/pkgs/osc52/default.nix b/pkgs/osc52/default.nix index e02121b..d4b0c08 100644 --- a/pkgs/osc52/default.nix +++ b/pkgs/osc52/default.nix @@ -34,6 +34,7 @@ stdenvNoCC.mkDerivation rec { ''; homepage = "https://git.belanyi.fr/ambroisie/nix-config"; license = with licenses; [ mit ]; + mainProgram = "osc52"; maintainers = with maintainers; [ ambroisie ]; platforms = platforms.linux; }; diff --git a/pkgs/rbw-pass/default.nix b/pkgs/rbw-pass/default.nix index 1767408..6f9ff0a 100644 --- a/pkgs/rbw-pass/default.nix +++ b/pkgs/rbw-pass/default.nix @@ -34,6 +34,7 @@ stdenvNoCC.mkDerivation rec { description = "A simple script to query a password from rbw"; homepage = "https://git.belanyi.fr/ambroisie/nix-config"; license = with licenses; [ mit ]; + mainProgram = "rbw-pass"; maintainers = with maintainers; [ ambroisie ]; platforms = platforms.linux; }; diff --git a/pkgs/wifi-qr/default.nix b/pkgs/wifi-qr/default.nix index 79f4109..88164e5 100644 --- a/pkgs/wifi-qr/default.nix +++ b/pkgs/wifi-qr/default.nix @@ -74,6 +74,7 @@ stdenvNoCC.mkDerivation rec { description = "WiFi password sharing via QR codes"; homepage = "https://github.com/kokoye2007/wifi-qr"; license = with licenses; [ gpl3Plus ]; + mainProgram = "wifi-qr"; maintainers = with maintainers; [ ambroisie ]; platforms = platforms.linux; }; From 424bb2e7b9dcaa3591a60d3895a76f91e2122f5e Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Sat, 5 Aug 2023 23:47:21 +0200 Subject: [PATCH 069/245] modules: services: woodpecker: simplify path I'm not sure why it was written that way to begin with. --- modules/services/woodpecker/agent-exec/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/services/woodpecker/agent-exec/default.nix b/modules/services/woodpecker/agent-exec/default.nix index db98241..ad30188 100644 --- a/modules/services/woodpecker/agent-exec/default.nix +++ b/modules/services/woodpecker/agent-exec/default.nix @@ -52,7 +52,7 @@ in BindReadOnlyPaths = [ "/etc/passwd:/etc/passwd" "/etc/group:/etc/group" - "/nix/var/nix/profiles/system/etc/nix:/etc/nix" + "/etc/nix:/etc/nix" "${config.environment.etc."ssh/ssh_known_hosts".source}:/etc/ssh/ssh_known_hosts" "/etc/machine-id" # channels are dynamic paths in the nix store, therefore we need to bind mount the whole thing From 3ef71cc1652ca0d290fccf06187d46a3a5071f0b Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Sat, 5 Aug 2023 22:49:35 +0100 Subject: [PATCH 070/245] home: wm: i3bar: add 'quarks' bluetooth block --- home/wm/i3bar/default.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/home/wm/i3bar/default.nix b/home/wm/i3bar/default.nix index 38a78b9..05b0f50 100644 --- a/home/wm/i3bar/default.nix +++ b/home/wm/i3bar/default.nix @@ -55,6 +55,12 @@ in format = " $icon Protons{ $percentage|} "; disconnected_format = ""; }) + (lib.optionalAttrs config.my.home.bluetooth.enable { + block = "bluetooth"; + mac = "88:C9:E8:6B:B7:55"; + format = " $icon Quarks{ $percentage|} "; + disconnected_format = ""; + }) (lib.optionalAttrs config.my.home.bluetooth.enable { block = "bluetooth"; mac = "F7:78:BA:76:52:F7"; From 7529d2b7f94a7d44ac8fc57d4c3f43710c0b2c47 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Mon, 7 Aug 2023 15:35:47 +0000 Subject: [PATCH 071/245] flake: bump inputs --- flake.lock | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/flake.lock b/flake.lock index b3c3e01..a6f5424 100644 --- a/flake.lock +++ b/flake.lock @@ -131,11 +131,11 @@ ] }, "locked": { - "lastModified": 1691039228, - "narHash": "sha256-iPNZJ1LvfUf1Y456ewC0DXgf99TNssG8OLObOyqxO6M=", + "lastModified": 1691312444, + "narHash": "sha256-J9e9dGwAPTX+UlAn8jehoyaEq6fwK+L+gunfx0cYT4E=", "owner": "nix-community", "repo": "home-manager", - "rev": "86dd48d70a2e2c17e84e747ba4faa92453e68d4a", + "rev": "903e06d734bcae48efb79b9afd51b406d2744179", "type": "github" }, "original": { @@ -147,11 +147,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1691006197, - "narHash": "sha256-DbtxVWPt+ZP5W0Usg7jAyTomIM//c3Jtfa59Ht7AV8s=", + "lastModified": 1691368598, + "narHash": "sha256-ia7li22keBBbj02tEdqjVeLtc7ZlSBuhUk+7XTUFr14=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "66aedfd010204949cb225cf749be08cb13ce1813", + "rev": "5a8e9243812ba528000995b294292d3b5e120947", "type": "github" }, "original": { @@ -163,11 +163,11 @@ }, "nur": { "locked": { - "lastModified": 1691139289, - "narHash": "sha256-cZtqvYztpGwLtAsfrzY2VeTfFdW3HBwX7m1KV2Zy2nw=", + "lastModified": 1691410813, + "narHash": "sha256-khyrWULs4+wHc3c545yHchsK/p8Ej4vAx7Tflgeq1oE=", "owner": "nix-community", "repo": "NUR", - "rev": "cb20b89d5b355c53a18dd149e7104a67381c7c17", + "rev": "7038553b4660dbac2a11f24ceb9f7282b1ece316", "type": "github" }, "original": { @@ -192,11 +192,11 @@ ] }, "locked": { - "lastModified": 1691093055, - "narHash": "sha256-sjNWYpDHc6vx+/M0WbBZKltR0Avh2S43UiDbmYtfHt0=", + "lastModified": 1691397944, + "narHash": "sha256-4fa4bX3kPYKpEssgrFRxRCPVXczidArDeSWaUMSzQAU=", "owner": "cachix", "repo": "pre-commit-hooks.nix", - "rev": "ebb43bdacd1af8954d04869c77bc3b61fde515e4", + "rev": "e5588ddffd4c3578547a86ef40ec9a6fbdae2986", "type": "github" }, "original": { From 7ace62da72a5988ee091964a75a022ff2610b539 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Mon, 7 Aug 2023 15:37:35 +0000 Subject: [PATCH 072/245] home: vim: use async path completion This makes the editor more responsive when completing in directories that are network mounted or have a large amount of entries. --- home/vim/default.nix | 1 + home/vim/plugin/settings/completion.lua | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/home/vim/default.nix b/home/vim/default.nix index 1aad3c1..a9c2bda 100644 --- a/home/vim/default.nix +++ b/home/vim/default.nix @@ -77,6 +77,7 @@ in luasnip # Snippet manager compatible with LSP friendly-snippets # LSP snippets collection nvim-cmp # Completion engine + cmp-async-path # More responsive path completion cmp-buffer # Words from open buffers cmp-nvim-lsp # LSP suggestions cmp-nvim-lua # NeoVim lua API diff --git a/home/vim/plugin/settings/completion.lua b/home/vim/plugin/settings/completion.lua index 2d150e8..0ed8c7f 100644 --- a/home/vim/plugin/settings/completion.lua +++ b/home/vim/plugin/settings/completion.lua @@ -37,7 +37,7 @@ cmp.setup({ entries = "native", }, sources = { - { name = "path", priority_weight = 110 }, + { name = "async_path", priority_weight = 110 }, { name = "nvim_lsp", priority_weight = 100 }, { name = "nvim_lua", priority_weight = 90 }, { name = "luasnip", priority_weight = 80 }, From 5f42e7cc90d426b1e883bb834d4776e1ff9a6fe3 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Fri, 11 Aug 2023 13:02:20 +0000 Subject: [PATCH 073/245] home: tmux: fix option name typo --- home/tmux/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/home/tmux/default.nix b/home/tmux/default.nix index 70f037f..e554fd0 100644 --- a/home/tmux/default.nix +++ b/home/tmux/default.nix @@ -10,7 +10,7 @@ in options.my.home.tmux = with lib; { enable = my.mkDisableOption "tmux terminal multiplexer"; - enabledPassthrough = mkEnableOption "tmux DCS passthrough sequence"; + enablePassthrough = mkEnableOption "tmux DCS passthrough sequence"; }; config.programs.tmux = lib.mkIf cfg.enable { @@ -70,7 +70,7 @@ in set -g status-left-length 16 ${ - lib.optionalString cfg.enabledPassthrough '' + lib.optionalString cfg.enablePassthrough '' # Allow any application to use the tmux DCS for passthrough set -g allow-passthrough on '' From bcdbe455589de1be0652eaf8dd3d224ea6e965b6 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Fri, 11 Aug 2023 13:13:21 +0000 Subject: [PATCH 074/245] pkgs: add osc777 --- pkgs/default.nix | 2 + pkgs/osc777/default.nix | 41 +++++++++++++ pkgs/osc777/osc777 | 126 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 169 insertions(+) create mode 100644 pkgs/osc777/default.nix create mode 100755 pkgs/osc777/osc777 diff --git a/pkgs/default.nix b/pkgs/default.nix index c9e755a..03f9cc3 100644 --- a/pkgs/default.nix +++ b/pkgs/default.nix @@ -26,6 +26,8 @@ pkgs.lib.makeScope pkgs.newScope (pkgs: { osc52 = pkgs.callPackage ./osc52 { }; + osc777 = pkgs.callPackage ./osc777 { }; + rbw-pass = pkgs.callPackage ./rbw-pass { }; unbound-zones-adblock = pkgs.callPackage ./unbound-zones-adblock { }; diff --git a/pkgs/osc777/default.nix b/pkgs/osc777/default.nix new file mode 100644 index 0000000..6e9ce2e --- /dev/null +++ b/pkgs/osc777/default.nix @@ -0,0 +1,41 @@ +{ lib, coreutils, makeWrapper, stdenvNoCC }: +stdenvNoCC.mkDerivation rec { + pname = "osc777"; + version = "0.1.0"; + + src = ./osc777; + + nativeBuildInputs = [ + makeWrapper + ]; + + dontUnpack = true; + + dontBuild = true; + + installPhase = '' + mkdir -p $out/bin + cp $src $out/bin/osc777 + chmod a+x $out/bin/osc777 + ''; + + wrapperPath = lib.makeBinPath [ + coreutils + ]; + + fixupPhase = '' + patchShebangs $out/bin/osc777 + wrapProgram $out/bin/osc777 --prefix PATH : "${wrapperPath}" + ''; + + meta = with lib; { + description = '' + A script to send notifications using the OSC777 escape sequence + ''; + homepage = "https://git.belanyi.fr/ambroisie/nix-config"; + license = with licenses; [ mit ]; + mainProgram = "osc777"; + maintainers = with maintainers; [ ambroisie ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/osc777/osc777 b/pkgs/osc777/osc777 new file mode 100755 index 0000000..83d066f --- /dev/null +++ b/pkgs/osc777/osc777 @@ -0,0 +1,126 @@ +#!/usr/bin/env bash + +# Whether to disable tmux/screen DCS escape sequences +: "${OSC777_NO_DCS:=0}" + +die() { + echo "ERROR: $*" + exit 1 +} + +usage() { + if [ $# -gt 0 ]; then + exec 1>&2 + fi + + cat << EOF +Usage: $0 [options] <message> +Send a notification (title and message) to the host system using the OSC 777 +escape sequence: +Options: + -h, --help This screen. + -d, --no-dcs Disable tmux/screen specific DCS sequences, only use OSC 777 + -- Stop options processing +EOF + + if [ $# -gt 0 ]; then + echo + die "$@" + else + exit 0 + fi +} + +tmux_seq() { + # shellcheck disable=1003 + printf '\033Ptmux;\033%s\033\\' "$1" +} + +screen_seq() { + # Screen limits the length of string sequences, so we have to break it up. + # Going by the screen history: + # (v4.2.1) Apr 2014 - today: 768 bytes + # Aug 2008 - Apr 2014 (v4.2.0): 512 bytes + # ??? - Aug 2008 (v4.0.3): 256 bytes + local limit=768 + # We go 4 bytes under the limit because we're going to insert two bytes + # before (\eP) and 2 bytes after (\e\) each string. + printf '%s' "$1" | + sed -E "s:.{$((limit - 4))}:&\n:g" | + sed -E -e 's:^:\x1bP:' -e 's:$:\x1b\\:' | + tr -d '\n' +} + +osc777_seq() { + printf '%s' "$1" +} + +print_seq() { + local seq="$1" + + if [ "${OSC777_NO_DCS}" != 0 ]; then + # Override TERM to avoid tmux/screen DCS escape logic + TERM=dummy + fi + + case ${TERM-} in + screen*) + # Since tmux defaults to setting TERM=screen, special case it. + if [ -n "${TMUX-}" ]; then + tmux_seq "${seq}" + else + screen_seq "${seq}" + fi + ;; + tmux*) + tmux_seq "${seq}" + ;; + *) + osc777_seq "${seq}" + ;; + esac +} + +notify() { + local title=$1 + local message=$2 + + # shellcheck disable=1003 + print_seq "$(printf '\033]777;notify;%s;%s\e\\' "${title}" "${message}")" +} + +main() { + set -e + + local args=() + while [ $# -gt 0 ]; do + case $1 in + -h | --help) + usage + ;; + -d | --no-dcs) + OSC777_NO_DCS=1 + ;; + --) + shift + args+=("$@") + break + ;; + -*) + usage "Unknown option: $1" + ;; + *) + args+=("$1") + ;; + esac + shift + done + + if [ "${#args[@]}" -ne 2 ]; then + usage "Supply exactly two arguments" + fi + + notify "${args[@]}" +} + +main "$@" From 330402d33513d73f570c011003c0f9ed400810cd Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Tue, 8 Aug 2023 20:43:52 +0200 Subject: [PATCH 075/245] hosts: nixos: porthos: services: enable vikunja Trying it out again. This reverts commit 1807b8b88c2812a8a9957d6251400d94a6d8a562. --- hosts/nixos/porthos/services.nix | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/hosts/nixos/porthos/services.nix b/hosts/nixos/porthos/services.nix index e4cae5e..7653eb5 100644 --- a/hosts/nixos/porthos/services.nix +++ b/hosts/nixos/porthos/services.nix @@ -147,6 +147,14 @@ in enable = true; credentialsFile = secrets."transmission/credentials".path; }; + # Self-hosted todo app + vikunja = { + enable = true; + mail = { + enable = true; + configFile = secrets."vikunja/mail".path; + }; + }; # Simple, in-kernel VPN wireguard = { enable = true; From 254eb0cb2de993982271c44bf47850231318a68a Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Sat, 12 Aug 2023 23:56:58 +0200 Subject: [PATCH 076/245] flake: bump inputs --- flake.lock | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/flake.lock b/flake.lock index a6f5424..658ff11 100644 --- a/flake.lock +++ b/flake.lock @@ -131,11 +131,11 @@ ] }, "locked": { - "lastModified": 1691312444, - "narHash": "sha256-J9e9dGwAPTX+UlAn8jehoyaEq6fwK+L+gunfx0cYT4E=", + "lastModified": 1691856649, + "narHash": "sha256-1/KYCwNyOPpUoyno9Yj3zMHITQaW+wPzVlJFPOPPCo4=", "owner": "nix-community", "repo": "home-manager", - "rev": "903e06d734bcae48efb79b9afd51b406d2744179", + "rev": "406d34d919e9e8b831b531782cf5ef6995188566", "type": "github" }, "original": { @@ -147,11 +147,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1691368598, - "narHash": "sha256-ia7li22keBBbj02tEdqjVeLtc7ZlSBuhUk+7XTUFr14=", + "lastModified": 1691654369, + "narHash": "sha256-gSILTEx1jRaJjwZxRlnu3ZwMn1FVNk80qlwiCX8kmpo=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "5a8e9243812ba528000995b294292d3b5e120947", + "rev": "ce5e4a6ef2e59d89a971bc434ca8ca222b9c7f5e", "type": "github" }, "original": { @@ -163,11 +163,11 @@ }, "nur": { "locked": { - "lastModified": 1691410813, - "narHash": "sha256-khyrWULs4+wHc3c545yHchsK/p8Ej4vAx7Tflgeq1oE=", + "lastModified": 1691871985, + "narHash": "sha256-xSuUcMfHQO/GlZsGXHcJpi/22XsrRmw99usQx53bdCw=", "owner": "nix-community", "repo": "NUR", - "rev": "7038553b4660dbac2a11f24ceb9f7282b1ece316", + "rev": "107240729dc0fdd4afa1728aaa03d1df0d70a2e8", "type": "github" }, "original": { @@ -192,11 +192,11 @@ ] }, "locked": { - "lastModified": 1691397944, - "narHash": "sha256-4fa4bX3kPYKpEssgrFRxRCPVXczidArDeSWaUMSzQAU=", + "lastModified": 1691747570, + "narHash": "sha256-J3fnIwJtHVQ0tK2JMBv4oAmII+1mCdXdpeCxtIsrL2A=", "owner": "cachix", "repo": "pre-commit-hooks.nix", - "rev": "e5588ddffd4c3578547a86ef40ec9a6fbdae2986", + "rev": "c5ac3aa3324bd8aebe8622a3fc92eeb3975d317a", "type": "github" }, "original": { From a87429b0673d5999d731a9623e8314397174ccce Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Sun, 13 Aug 2023 15:31:43 +0100 Subject: [PATCH 077/245] pkgs: add 'zsh-done' --- pkgs/default.nix | 2 ++ pkgs/zsh-done/default.nix | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+) create mode 100644 pkgs/zsh-done/default.nix diff --git a/pkgs/default.nix b/pkgs/default.nix index 03f9cc3..6558026 100644 --- a/pkgs/default.nix +++ b/pkgs/default.nix @@ -39,4 +39,6 @@ pkgs.lib.makeScope pkgs.newScope (pkgs: { volantes-cursors = pkgs.callPackage ./volantes-cursors { }; wifi-qr = pkgs.callPackage ./wifi-qr { }; + + zsh-done = pkgs.callPackage ./zsh-done { }; }) diff --git a/pkgs/zsh-done/default.nix b/pkgs/zsh-done/default.nix new file mode 100644 index 0000000..bddc6c1 --- /dev/null +++ b/pkgs/zsh-done/default.nix @@ -0,0 +1,34 @@ +{ lib, fetchFromGitHub, stdenvNoCC }: + +stdenvNoCC.mkDerivation rec { + pname = "zsh-done"; + version = "0.1.0"; + + src = fetchFromGitHub { + owner = "ambroisie"; + repo = "zsh-done"; + rev = "v${version}"; + hash = "sha256-DC7urJDXPP9vBYABrJF5KZ4HfMbrpHIVogSmEB8PWLA="; + }; + + dontConfigure = true; + + dontBuild = true; + + installPhase = '' + plugindir="$out/share/zsh/site-functions" + + mkdir -p $plugindir + cp $src/done.plugin.zsh $plugindir/ + ''; + + meta = with lib; { + description = '' + A zsh plug-in to receive notifications when long processes finish + ''; + homepage = "https://gitea.belanyi.fr/ambroisie/zsh-done"; + license = licenses.mit; + platforms = platforms.unix; + maintainers = with maintainers; [ ambroisie ]; + }; +} From 4571a39c259e44f8b217fdb2c587a2add58dbaef Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Sun, 13 Aug 2023 16:07:33 +0100 Subject: [PATCH 078/245] home: gdb: fix 'mkMerge' invocation The `rr` configuration should be enabled only if `gdb` is. --- home/gdb/default.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/home/gdb/default.nix b/home/gdb/default.nix index c498048..ab51938 100644 --- a/home/gdb/default.nix +++ b/home/gdb/default.nix @@ -20,19 +20,19 @@ in }; }; - config = lib.mkMerge [ - (lib.mkIf cfg.enable { + config = lib.mkIf cfg.enable (lib.mkMerge [ + { home.packages = with pkgs; [ gdb ]; xdg.configFile."gdb/gdbinit".source = ./gdbinit; - }) + } (lib.mkIf cfg.rr.enable { home.packages = [ cfg.rr.package ]; }) - ]; + ]); } From ab590545184198e6479a8ac1564df2234d8808ef Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Sat, 19 Aug 2023 12:34:22 +0200 Subject: [PATCH 079/245] modules: services: rename 'nix-cache' I'm about to modify the module to use a different cache implementation, so this name is more appropriate. --- hosts/nixos/porthos/services.nix | 2 +- modules/services/default.nix | 2 +- modules/services/{nix-serve => nix-cache}/default.nix | 8 ++++---- 3 files changed, 6 insertions(+), 6 deletions(-) rename modules/services/{nix-serve => nix-cache}/default.nix (85%) diff --git a/hosts/nixos/porthos/services.nix b/hosts/nixos/porthos/services.nix index 7653eb5..0342864 100644 --- a/hosts/nixos/porthos/services.nix +++ b/hosts/nixos/porthos/services.nix @@ -93,7 +93,7 @@ in enable = true; passwordFile = secrets."nextcloud/password".path; }; - nix-serve = { + nix-cache = { enable = true; secretKeyFile = secrets."nix-serve/cache-key".path; }; diff --git a/modules/services/default.nix b/modules/services/default.nix index 86badf5..b27570d 100644 --- a/modules/services/default.nix +++ b/modules/services/default.nix @@ -20,7 +20,7 @@ ./navidrome ./nextcloud ./nginx - ./nix-serve + ./nix-cache ./paperless ./pirate ./podgrab diff --git a/modules/services/nix-serve/default.nix b/modules/services/nix-cache/default.nix similarity index 85% rename from modules/services/nix-serve/default.nix rename to modules/services/nix-cache/default.nix index 0cf1573..4c04acf 100644 --- a/modules/services/nix-serve/default.nix +++ b/modules/services/nix-cache/default.nix @@ -1,11 +1,11 @@ # Binary cache through nix-serve { config, lib, pkgs, ... }: let - cfg = config.my.services.nix-serve; + cfg = config.my.services.nix-cache; in { - options.my.services.nix-serve = with lib; { - enable = mkEnableOption "nix-serve binary cache"; + options.my.services.nix-cache = with lib; { + enable = mkEnableOption "nix binary cache"; port = mkOption { type = types.port; @@ -16,7 +16,7 @@ in secretKeyFile = mkOption { type = types.str; - example = "/run/secrets/nix-serve"; + example = "/run/secrets/nix-cache"; description = "Secret signing key for the cache"; }; From 19d2916e1c8cdbf48a74026c78d39b1dbd1285df Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Sat, 19 Aug 2023 12:36:05 +0200 Subject: [PATCH 080/245] hosts: nixos: porthos: secrets: rename 'nix-cache' To go with the module rename. --- .../secrets/{nix-serve => nix-cache}/cache-key.age | Bin hosts/nixos/porthos/secrets/secrets.nix | 2 +- hosts/nixos/porthos/services.nix | 2 +- 3 files changed, 2 insertions(+), 2 deletions(-) rename hosts/nixos/porthos/secrets/{nix-serve => nix-cache}/cache-key.age (100%) diff --git a/hosts/nixos/porthos/secrets/nix-serve/cache-key.age b/hosts/nixos/porthos/secrets/nix-cache/cache-key.age similarity index 100% rename from hosts/nixos/porthos/secrets/nix-serve/cache-key.age rename to hosts/nixos/porthos/secrets/nix-cache/cache-key.age diff --git a/hosts/nixos/porthos/secrets/secrets.nix b/hosts/nixos/porthos/secrets/secrets.nix index 498aebf..8eac0f5 100644 --- a/hosts/nixos/porthos/secrets/secrets.nix +++ b/hosts/nixos/porthos/secrets/secrets.nix @@ -52,7 +52,7 @@ in publicKeys = all; }; - "nix-serve/cache-key.age".publicKeys = all; + "nix-cache/cache-key.age".publicKeys = all; "paperless/password.age".publicKeys = all; "paperless/secret-key.age".publicKeys = all; diff --git a/hosts/nixos/porthos/services.nix b/hosts/nixos/porthos/services.nix index 0342864..a4bf485 100644 --- a/hosts/nixos/porthos/services.nix +++ b/hosts/nixos/porthos/services.nix @@ -95,7 +95,7 @@ in }; nix-cache = { enable = true; - secretKeyFile = secrets."nix-serve/cache-key".path; + secretKeyFile = secrets."nix-cache/cache-key".path; }; nginx = { enable = true; From 6d9d835e1ce48a45013f846608aa4da55a4fcce0 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Sat, 19 Aug 2023 14:16:19 +0200 Subject: [PATCH 081/245] modules: services: nix-cache: use harmonia --- modules/services/nix-cache/default.nix | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/modules/services/nix-cache/default.nix b/modules/services/nix-cache/default.nix index 4c04acf..b3bdbf3 100644 --- a/modules/services/nix-cache/default.nix +++ b/modules/services/nix-cache/default.nix @@ -1,5 +1,5 @@ -# Binary cache through nix-serve -{ config, lib, pkgs, ... }: +# Binary cache +{ config, lib, ... }: let cfg = config.my.services.nix-cache; in @@ -32,19 +32,15 @@ in }; config = lib.mkIf cfg.enable { - services.nix-serve = { + services.harmonia = { enable = true; - bindAddress = "127.0.0.1"; + settings = { + bind = "127.0.0.1:${toString cfg.port}"; + inherit (cfg) priority; + }; - inherit (cfg) - port - secretKeyFile - ; - - package = pkgs.nix-serve-ng; - - extraParams = "--priority=${toString cfg.priority}"; + signKeyPath = cfg.secretKeyFile; }; my.services.nginx.virtualHosts = [ From e4541d4eccec9ec113d4ac53ee14ea450fa80503 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Sat, 19 Aug 2023 14:40:54 +0200 Subject: [PATCH 082/245] flake: bump inputs --- flake.lock | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/flake.lock b/flake.lock index 658ff11..cdfdef7 100644 --- a/flake.lock +++ b/flake.lock @@ -131,11 +131,11 @@ ] }, "locked": { - "lastModified": 1691856649, - "narHash": "sha256-1/KYCwNyOPpUoyno9Yj3zMHITQaW+wPzVlJFPOPPCo4=", + "lastModified": 1692260837, + "narHash": "sha256-2FpkX1zl+7ni7djK7NeE1ZGupRUwZgjW+RPCSBgDf4k=", "owner": "nix-community", "repo": "home-manager", - "rev": "406d34d919e9e8b831b531782cf5ef6995188566", + "rev": "6a94c1a59737783c282c4031555a289c28b961e4", "type": "github" }, "original": { @@ -147,11 +147,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1691654369, - "narHash": "sha256-gSILTEx1jRaJjwZxRlnu3ZwMn1FVNk80qlwiCX8kmpo=", + "lastModified": 1692356644, + "narHash": "sha256-AYkPFT+CbCVSBmh0WwIzPpwhEJ4Yy3A7JZvUkGJIg5o=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "ce5e4a6ef2e59d89a971bc434ca8ca222b9c7f5e", + "rev": "8ecc900b2f695d74dea35a92f8a9f9b32c8ea33d", "type": "github" }, "original": { @@ -163,11 +163,11 @@ }, "nur": { "locked": { - "lastModified": 1691871985, - "narHash": "sha256-xSuUcMfHQO/GlZsGXHcJpi/22XsrRmw99usQx53bdCw=", + "lastModified": 1692437027, + "narHash": "sha256-gWtVFoPw7HhbKGLp7vupVbCNAvNMQS5+2PujOt2QbRk=", "owner": "nix-community", "repo": "NUR", - "rev": "107240729dc0fdd4afa1728aaa03d1df0d70a2e8", + "rev": "b47c7b8d313f9739a7fbb572413c959a362c244a", "type": "github" }, "original": { @@ -192,11 +192,11 @@ ] }, "locked": { - "lastModified": 1691747570, - "narHash": "sha256-J3fnIwJtHVQ0tK2JMBv4oAmII+1mCdXdpeCxtIsrL2A=", + "lastModified": 1692274144, + "narHash": "sha256-BxTQuRUANQ81u8DJznQyPmRsg63t4Yc+0kcyq6OLz8s=", "owner": "cachix", "repo": "pre-commit-hooks.nix", - "rev": "c5ac3aa3324bd8aebe8622a3fc92eeb3975d317a", + "rev": "7e3517c03d46159fdbf8c0e5c97f82d5d4b0c8fa", "type": "github" }, "original": { From ca1d439e7aeb27f07c71b73f83ce99124a1b09fe Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Sun, 20 Aug 2023 14:19:37 +0100 Subject: [PATCH 083/245] hosts: nixos: porthos: services: disable drone I have now completely migrated to Woodpecker, so no need for it anymore. --- hosts/nixos/porthos/services.nix | 6 ------ 1 file changed, 6 deletions(-) diff --git a/hosts/nixos/porthos/services.nix b/hosts/nixos/porthos/services.nix index a4bf485..863048c 100644 --- a/hosts/nixos/porthos/services.nix +++ b/hosts/nixos/porthos/services.nix @@ -28,12 +28,6 @@ in enable = true; libraryPath = "/data/media/library"; }; - drone = { - enable = true; - runners = [ "docker" "exec" ]; - secretFile = secrets."drone/gitea".path; - sharedSecretFile = secrets."drone/secret".path; - }; # Auto-ban spammy bots and incorrect logins fail2ban = { enable = true; From 5b59a9cf82a68342086803edfd7eb6e2294d2b55 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Mon, 21 Aug 2023 13:20:22 +0000 Subject: [PATCH 084/245] hosts: homes: cloudtop: enable tmux passthrough Mostly used for my `osc52` and `osc777` scripts. --- hosts/homes/ambroisie@ambroisie/default.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/hosts/homes/ambroisie@ambroisie/default.nix b/hosts/homes/ambroisie@ambroisie/default.nix index 94efc09..9096610 100644 --- a/hosts/homes/ambroisie@ambroisie/default.nix +++ b/hosts/homes/ambroisie@ambroisie/default.nix @@ -14,4 +14,7 @@ }; programs.git.package = lib.mkForce pkgs.emptyDirectory; + + # I use scripts that use the passthrough sequence often on this host + my.home.tmux.enablePassthrough = true; } From 71a1bbd78d629db58c9f322d1bef64cd27ee28e7 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Tue, 29 Aug 2023 14:05:21 +0000 Subject: [PATCH 085/245] home: vim: set line length in commit messages I'm already getting the correct wrapping behaviour from vim-fugitive, but the displayed width is wrong. --- home/vim/after/ftplugin/gitcommit.vim | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/home/vim/after/ftplugin/gitcommit.vim b/home/vim/after/ftplugin/gitcommit.vim index f785ff8..29d182c 100644 --- a/home/vim/after/ftplugin/gitcommit.vim +++ b/home/vim/after/ftplugin/gitcommit.vim @@ -4,3 +4,7 @@ call ftplugined#check_undo_ft() " Enable spell checking on commit messages setlocal spell let b:undo_ftplugin.='|setlocal spell<' + +" Change max length of a line to 72 for this buffer +setlocal colorcolumn=72 +let b:undo_ftplugin.='|setlocal colorcolumn<' From 13769429f6db871d8d8d64391584e280860a3fc7 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Thu, 31 Aug 2023 10:22:56 +0000 Subject: [PATCH 086/245] hosts: homes: cloudtop: enable 'git' package Turns out that the latest version fixes the issue, but I haven't looked into why exactly. This reverts commit 6100a092af2f21270a3d689d771f9a3857b04ca6. --- hosts/homes/ambroisie@ambroisie/default.nix | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/hosts/homes/ambroisie@ambroisie/default.nix b/hosts/homes/ambroisie@ambroisie/default.nix index 9096610..f54453b 100644 --- a/hosts/homes/ambroisie@ambroisie/default.nix +++ b/hosts/homes/ambroisie@ambroisie/default.nix @@ -1,5 +1,5 @@ # Google Cloudtop configuration -{ lib, pkgs, ... }: +{ ... }: { # Google specific configuration home.homeDirectory = "/usr/local/google/home/ambroisie"; @@ -13,8 +13,6 @@ LD_PRELOAD = "/lib/x86_64-linux-gnu/libnss_cache.so.2\${LD_PRELOAD:+:}$LD_PRELOAD"; }; - programs.git.package = lib.mkForce pkgs.emptyDirectory; - # I use scripts that use the passthrough sequence often on this host my.home.tmux.enablePassthrough = true; } From 861136c47596a0cf6de8ff5bb91fefd29d69642e Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Thu, 31 Aug 2023 10:41:17 +0000 Subject: [PATCH 087/245] treewide: add 'shellcheck shell' directives I used 'bash' for zsh files, since that's the closest and `shell=zsh` is not supported [1]. [1]: https://github.com/koalaman/shellcheck/issues/809 --- bootstrap.sh | 1 + home/zsh/completion-styles.zsh | 2 ++ home/zsh/extra-mappings.zsh | 1 + home/zsh/options.zsh | 2 ++ 4 files changed, 6 insertions(+) diff --git a/bootstrap.sh b/bootstrap.sh index b1c418e..955617d 100755 --- a/bootstrap.sh +++ b/bootstrap.sh @@ -1,5 +1,6 @@ #!/usr/bin/env nix-shell #! nix-shell -i bash -p bitwarden-cli git gnupg jq nix +# shellcheck shell=bash # Command failure is script failure set -e diff --git a/home/zsh/completion-styles.zsh b/home/zsh/completion-styles.zsh index 156bc2c..87bb014 100644 --- a/home/zsh/completion-styles.zsh +++ b/home/zsh/completion-styles.zsh @@ -1,3 +1,5 @@ +# shellcheck shell=bash + # Style the completion a bit zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS} # Show a prompt on selection diff --git a/home/zsh/extra-mappings.zsh b/home/zsh/extra-mappings.zsh index 3456e13..fea2f96 100644 --- a/home/zsh/extra-mappings.zsh +++ b/home/zsh/extra-mappings.zsh @@ -1,3 +1,4 @@ +# shellcheck shell=bash # shellcheck disable=2154 # Fix Ctrl+u killing from the cursor instead of the whole line diff --git a/home/zsh/options.zsh b/home/zsh/options.zsh index 82047ff..32da8d8 100644 --- a/home/zsh/options.zsh +++ b/home/zsh/options.zsh @@ -1,3 +1,5 @@ +# shellcheck shell=bash + # Show an error when a globbing expansion doesn't find any match setopt nomatch # List on ambiguous completion and Insert first match immediately From 8bcf56fdec63be3ed9a3d6c8fd36ffdfc456f247 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Thu, 31 Aug 2023 10:42:45 +0000 Subject: [PATCH 088/245] treewide: fix `shellcheck` issues --- bootstrap.sh | 1 - home/zsh/completion-styles.zsh | 2 ++ home/zsh/extra-mappings.zsh | 1 - hosts/nixos/porthos/install.sh | 3 ++- 4 files changed, 4 insertions(+), 3 deletions(-) diff --git a/bootstrap.sh b/bootstrap.sh index 955617d..db1662e 100755 --- a/bootstrap.sh +++ b/bootstrap.sh @@ -11,7 +11,6 @@ BOLD_GREEN="\e[0;1;32m" RESET="\e[0m" -DEST="$HOME/.config/nixpkgs" BW_SESSION="" warn() { diff --git a/home/zsh/completion-styles.zsh b/home/zsh/completion-styles.zsh index 87bb014..c3d664d 100644 --- a/home/zsh/completion-styles.zsh +++ b/home/zsh/completion-styles.zsh @@ -1,6 +1,7 @@ # shellcheck shell=bash # Style the completion a bit +# shellcheck disable=2086,2296 zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS} # Show a prompt on selection zstyle ':completion:*' select-prompt '%SScrolling active: current selection at %p%s' @@ -23,6 +24,7 @@ zstyle ':completion:*:*:(^rm):*:*files' ignored-patterns '*?.o' '*?.c~' '*?.old' # command for process lists, the local web server details and host completion # on processes completion complete all user processes +# shellcheck disable=2016 zstyle ':completion:*:processes' command 'ps -au$USER' # Completion formatting and messages diff --git a/home/zsh/extra-mappings.zsh b/home/zsh/extra-mappings.zsh index fea2f96..25c230d 100644 --- a/home/zsh/extra-mappings.zsh +++ b/home/zsh/extra-mappings.zsh @@ -1,5 +1,4 @@ # shellcheck shell=bash -# shellcheck disable=2154 # Fix Ctrl+u killing from the cursor instead of the whole line bindkey '^u' backward-kill-line diff --git a/hosts/nixos/porthos/install.sh b/hosts/nixos/porthos/install.sh index de87aa7..8edc175 100644 --- a/hosts/nixos/porthos/install.sh +++ b/hosts/nixos/porthos/install.sh @@ -30,6 +30,7 @@ swapon /dev/sda2 apt install sudo useradd -m -G sudo setupuser +# shellcheck disable=2117 su setupuser cat << EOF @@ -37,7 +38,7 @@ cat << EOF curl -L https://nixos.org/nix/install | sh . $HOME/.nix-profile/etc/profile.d/nix.sh nix-channel --add https://nixos.org/channels/nixos-20.09 nixpkgs -sudo `which nixos-generate-config` --root /mnt +sudo "$(which nixos-generate-config)" --root /mnt # Change uuids to labels vim /mnt/etc/nixos/hardware-configuration.nix From ce46f3571b2c08922fb09d71d24bd1a8287f0c3b Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Thu, 31 Aug 2023 11:16:35 +0000 Subject: [PATCH 089/245] home: vim: restore python configuration This is a partial revert of 260f5cd66ac78e8626d6d509ef10ee8cd669845d, which erroneously removed this config. --- home/vim/after/ftplugin/python.vim | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 home/vim/after/ftplugin/python.vim diff --git a/home/vim/after/ftplugin/python.vim b/home/vim/after/ftplugin/python.vim new file mode 100644 index 0000000..e7232a8 --- /dev/null +++ b/home/vim/after/ftplugin/python.vim @@ -0,0 +1,6 @@ +" Create the `b:undo_ftplugin` variable if it doesn't exist +call ftplugined#check_undo_ft() + +" Change max length of a line to 88 for this buffer to match black's settings +setlocal colorcolumn=88 +let b:undo_ftplugin.='|setlocal colorcolumn<' From adc4ce9d8a47abe24c996f6fd84755c3ca76bf21 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Sun, 3 Sep 2023 12:21:04 +0200 Subject: [PATCH 090/245] modules: services: indexers: add prowlarr fail2ban --- modules/services/indexers/default.nix | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/modules/services/indexers/default.nix b/modules/services/indexers/default.nix index 66f1604..fb06a0b 100644 --- a/modules/services/indexers/default.nix +++ b/modules/services/indexers/default.nix @@ -60,6 +60,22 @@ in port = prowlarrPort; } ]; + + services.fail2ban.jails = { + prowlarr = '' + enabled = true + filter = prowlarr + action = iptables-allports + ''; + }; + + environment.etc = { + "fail2ban/filter.d/prowlarr.conf".text = '' + [Definition] + failregex = ^.*\|Warn\|Auth\|Auth-Failure ip <HOST> username .*$ + journalmatch = _SYSTEMD_UNIT=prowlarr.service + ''; + }; }) ]; } From 14bf03e5fd8f0c9285f131d25b89f6e33799c5df Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Sun, 3 Sep 2023 12:22:02 +0200 Subject: [PATCH 091/245] modules: services: pirate: refactor This will make adding fail2ban jails easier. --- modules/services/pirate/default.nix | 48 ++++++++++++++++++++--------- 1 file changed, 33 insertions(+), 15 deletions(-) diff --git a/modules/services/pirate/default.nix b/modules/services/pirate/default.nix index 42dd12b..96f5ad4 100644 --- a/modules/services/pirate/default.nix +++ b/modules/services/pirate/default.nix @@ -13,26 +13,44 @@ let sonarr = 8989; }; - managers = with lib.attrsets; - (mapAttrs - (_: _: { - enable = true; - group = "media"; - }) - ports); + mkService = service: { + services.${service} = { + enable = true; + group = "media"; + }; + }; - redirections = lib.flip lib.mapAttrsToList ports - (subdomain: port: { inherit subdomain port; }); + mkRedirection = service: { + my.services.nginx.virtualHosts = [ + { + subdomain = service; + port = ports.${service}; + } + ]; + }; + + mkFullConfig = service: lib.mkMerge [ + (mkService service) + (mkRedirection service) + ]; in { options.my.services.pirate = { enable = lib.mkEnableOption "Media automation"; }; - config = lib.mkIf cfg.enable { - services = managers; - my.services.nginx.virtualHosts = redirections; - # Set-up media group - users.groups.media = { }; - }; + config = lib.mkIf cfg.enable (lib.mkMerge [ + { + # Set-up media group + users.groups.media = { }; + } + # Bazarr for subtitles + (mkFullConfig "bazarr") + # Lidarr for music + (mkFullConfig "lidarr") + # Radarr for movies + (mkFullConfig "radarr") + # Sonarr for shows + (mkFullConfig "sonarr") + ]); } From fc8ccb8b990730bc95be0a08f499a77b17779aea Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Sun, 3 Sep 2023 12:43:46 +0200 Subject: [PATCH 092/245] modules: services: pirate: add fail2ban jails --- modules/services/pirate/default.nix | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/modules/services/pirate/default.nix b/modules/services/pirate/default.nix index 96f5ad4..7c341e7 100644 --- a/modules/services/pirate/default.nix +++ b/modules/services/pirate/default.nix @@ -29,6 +29,24 @@ let ]; }; + mkFail2Ban = service: { + services.fail2ban.jails = { + ${service} = '' + enabled = true + filter = ${service} + action = iptables-allports + ''; + }; + + environment.etc = { + "fail2ban/filter.d/${service}.conf".text = '' + [Definition] + failregex = ^.*\|Warn\|Auth\|Auth-Failure ip <HOST> username .*$ + journalmatch = _SYSTEMD_UNIT=${service}.service + ''; + }; + }; + mkFullConfig = service: lib.mkMerge [ (mkService service) (mkRedirection service) @@ -44,13 +62,16 @@ in # Set-up media group users.groups.media = { }; } - # Bazarr for subtitles + # Bazarr does not log authentication failures... (mkFullConfig "bazarr") # Lidarr for music (mkFullConfig "lidarr") + (mkFail2Ban "lidarr") # Radarr for movies (mkFullConfig "radarr") + (mkFail2Ban "radarr") # Sonarr for shows (mkFullConfig "sonarr") + (mkFail2Ban "sonarr") ]); } From 6ba7a63b254ffd79da5ebe714fcf03bfe71e8bb5 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Sun, 3 Sep 2023 12:53:24 +0200 Subject: [PATCH 093/245] modules: services: fail2ban: fix comment --- modules/services/fail2ban/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/services/fail2ban/default.nix b/modules/services/fail2ban/default.nix index d62b9e2..be5f7da 100644 --- a/modules/services/fail2ban/default.nix +++ b/modules/services/fail2ban/default.nix @@ -1,4 +1,4 @@ -# A minimalist, opinionated feed reader +# Filter and ban unauthorized access { config, lib, ... }: let cfg = config.my.services.fail2ban; From ac93cb0ac8cd2ff4c0194bb0cf2d9aca1c34f758 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Tue, 5 Sep 2023 11:10:01 +0000 Subject: [PATCH 094/245] home: direnv: refactor option handling This will make it easier to add more options. --- home/direnv/lib/nix.sh | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/home/direnv/lib/nix.sh b/home/direnv/lib/nix.sh index 2d40b20..b0c2dae 100644 --- a/home/direnv/lib/nix.sh +++ b/home/direnv/lib/nix.sh @@ -11,10 +11,21 @@ use_pkgs() { local DEFAULT_FLAKE="${DIRENV_DEFAULT_FLAKE:-nixpkgs}" # Allow changing the default flake through a command line switch - if [ "$1" = "-f" ] || [ "$1" = "--flake" ]; then - DEFAULT_FLAKE="$2" - shift 2 - fi + while true; do + case "$1" in + -f|--flake) + DEFAULT_FLAKE="$2" + shift 2 + ;; + --) + shift + break + ;; + *) + break + ;; + esac + done # Allow specifying a full installable, or just a package name and use the default flake From 5926cd356d28a6652934a2fdae111f71bddb6246 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Tue, 5 Sep 2023 11:15:33 +0000 Subject: [PATCH 095/245] home: direnv: allow impure 'use pkgs' This makes it easier to use non-free or insecure packages. --- home/direnv/lib/nix.sh | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/home/direnv/lib/nix.sh b/home/direnv/lib/nix.sh index b0c2dae..e05025b 100644 --- a/home/direnv/lib/nix.sh +++ b/home/direnv/lib/nix.sh @@ -9,6 +9,8 @@ use_pkgs() { # Use user-provided default value, or fallback to nixpkgs local DEFAULT_FLAKE="${DIRENV_DEFAULT_FLAKE:-nixpkgs}" + # Additional args that should be forwarded to `nix` + local args=() # Allow changing the default flake through a command line switch while true; do @@ -17,6 +19,10 @@ use_pkgs() { DEFAULT_FLAKE="$2" shift 2 ;; + -i|--impure) + args+=(--impure) + shift + ;; --) shift break @@ -39,5 +45,5 @@ use_pkgs() { done # shellcheck disable=2154 - direnv_load nix shell "${packages[@]}" --command "$direnv" dump + direnv_load nix shell "${args[@]}" "${packages[@]}" --command "$direnv" dump } From d060978b65b510b3da2f81c9d6e8a66197cdf2d5 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Tue, 5 Sep 2023 16:20:03 +0000 Subject: [PATCH 096/245] home: direnv: allow unfree 'use pkgs' --- home/direnv/lib/nix.sh | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/home/direnv/lib/nix.sh b/home/direnv/lib/nix.sh index e05025b..ec8fa88 100644 --- a/home/direnv/lib/nix.sh +++ b/home/direnv/lib/nix.sh @@ -23,6 +23,11 @@ use_pkgs() { args+=(--impure) shift ;; + -u|--unfree) + args+=(--impure) + export NIXPKGS_ALLOW_UNFREE=1 + shift + ;; --) shift break @@ -46,4 +51,7 @@ use_pkgs() { # shellcheck disable=2154 direnv_load nix shell "${args[@]}" "${packages[@]}" --command "$direnv" dump + + # Clean-up after ourselves (assumes the user does not set them before us) + unset NIXPKGS_ALLOW_UNFREE } From 96a2c62e947f66a7d9c8c1501ba56c1ea60f4a41 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Tue, 5 Sep 2023 16:20:20 +0000 Subject: [PATCH 097/245] home: direnv: allow insecure 'use pkgs' --- home/direnv/lib/nix.sh | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/home/direnv/lib/nix.sh b/home/direnv/lib/nix.sh index ec8fa88..de86dac 100644 --- a/home/direnv/lib/nix.sh +++ b/home/direnv/lib/nix.sh @@ -23,6 +23,11 @@ use_pkgs() { args+=(--impure) shift ;; + -s|--insecure) + args+=(--impure) + export NIXPKGS_ALLOW_INSECURE=1 + shift + ;; -u|--unfree) args+=(--impure) export NIXPKGS_ALLOW_UNFREE=1 @@ -53,5 +58,6 @@ use_pkgs() { direnv_load nix shell "${args[@]}" "${packages[@]}" --command "$direnv" dump # Clean-up after ourselves (assumes the user does not set them before us) + unset NIXPKGS_ALLOW_INSECURE unset NIXPKGS_ALLOW_UNFREE } From f0e387b943ddf059147259ad0345bb582f7ae00f Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Tue, 5 Sep 2023 16:20:27 +0000 Subject: [PATCH 098/245] home: direnv: allow broken 'use pkgs' --- home/direnv/lib/nix.sh | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/home/direnv/lib/nix.sh b/home/direnv/lib/nix.sh index de86dac..a65eb31 100644 --- a/home/direnv/lib/nix.sh +++ b/home/direnv/lib/nix.sh @@ -15,6 +15,11 @@ use_pkgs() { # Allow changing the default flake through a command line switch while true; do case "$1" in + -b|--broken) + args+=(--impure) + export NIXPKGS_ALLOW_BROKEN=1 + shift + ;; -f|--flake) DEFAULT_FLAKE="$2" shift 2 @@ -58,6 +63,7 @@ use_pkgs() { direnv_load nix shell "${args[@]}" "${packages[@]}" --command "$direnv" dump # Clean-up after ourselves (assumes the user does not set them before us) + unset NIXPKGS_ALLOW_BROKEN unset NIXPKGS_ALLOW_INSECURE unset NIXPKGS_ALLOW_UNFREE } From f3f8c8fc3f04c8638ba62368156d708a96cf7ee7 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Wed, 13 Sep 2023 12:39:39 +0000 Subject: [PATCH 099/245] flake: bump inputs --- flake.lock | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/flake.lock b/flake.lock index cdfdef7..3d28d8d 100644 --- a/flake.lock +++ b/flake.lock @@ -70,11 +70,11 @@ ] }, "locked": { - "lastModified": 1690933134, - "narHash": "sha256-ab989mN63fQZBFrkk4Q8bYxQCktuHmBIBqUG1jl6/FQ=", + "lastModified": 1693611461, + "narHash": "sha256-aPODl8vAgGQ0ZYFIRisxYG5MOGSkIczvu2Cd8Gb9+1Y=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "59cf3f1447cfc75087e7273b04b31e689a8599fb", + "rev": "7f53fdb7bdc5bb237da7fefef12d099e4fd611ca", "type": "github" }, "original": { @@ -89,11 +89,11 @@ "systems": "systems" }, "locked": { - "lastModified": 1689068808, - "narHash": "sha256-6ixXo3wt24N/melDWjq70UuHQLxGV8jZvooRanIHXw0=", + "lastModified": 1694529238, + "narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=", "owner": "numtide", "repo": "flake-utils", - "rev": "919d646de7be200f3bf08cb76ae1f09402b6f9b4", + "rev": "ff7b65b44d01cf9ba6a71320833626af21126384", "type": "github" }, "original": { @@ -131,11 +131,11 @@ ] }, "locked": { - "lastModified": 1692260837, - "narHash": "sha256-2FpkX1zl+7ni7djK7NeE1ZGupRUwZgjW+RPCSBgDf4k=", + "lastModified": 1694585439, + "narHash": "sha256-70BlfEsdURx5f8sioj8JuM+R4/SZFyE8UYrULMknxlI=", "owner": "nix-community", "repo": "home-manager", - "rev": "6a94c1a59737783c282c4031555a289c28b961e4", + "rev": "a0ddf43b6268f1717afcda54133dea30435eb178", "type": "github" }, "original": { @@ -147,11 +147,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1692356644, - "narHash": "sha256-AYkPFT+CbCVSBmh0WwIzPpwhEJ4Yy3A7JZvUkGJIg5o=", + "lastModified": 1694422566, + "narHash": "sha256-lHJ+A9esOz9vln/3CJG23FV6Wd2OoOFbDeEs4cMGMqc=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "8ecc900b2f695d74dea35a92f8a9f9b32c8ea33d", + "rev": "3a2786eea085f040a66ecde1bc3ddc7099f6dbeb", "type": "github" }, "original": { @@ -163,11 +163,11 @@ }, "nur": { "locked": { - "lastModified": 1692437027, - "narHash": "sha256-gWtVFoPw7HhbKGLp7vupVbCNAvNMQS5+2PujOt2QbRk=", + "lastModified": 1694601892, + "narHash": "sha256-rGK2Y9vQJQ+v729LfpvTuxDfTE7ns2g34XAPSr9+Z0E=", "owner": "nix-community", "repo": "NUR", - "rev": "b47c7b8d313f9739a7fbb572413c959a362c244a", + "rev": "71a739d93f1e95967e9d641623cbb97d0c8b801a", "type": "github" }, "original": { @@ -192,11 +192,11 @@ ] }, "locked": { - "lastModified": 1692274144, - "narHash": "sha256-BxTQuRUANQ81u8DJznQyPmRsg63t4Yc+0kcyq6OLz8s=", + "lastModified": 1694364351, + "narHash": "sha256-oadhSCqopYXxURwIA6/Anpe5IAG11q2LhvTJNP5zE6o=", "owner": "cachix", "repo": "pre-commit-hooks.nix", - "rev": "7e3517c03d46159fdbf8c0e5c97f82d5d4b0c8fa", + "rev": "4f883a76282bc28eb952570afc3d8a1bf6f481d7", "type": "github" }, "original": { From e9795891740c741188afed2fa384a8e2e621af3f Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Wed, 13 Sep 2023 12:40:19 +0000 Subject: [PATCH 100/245] modules: services: woodpecker: use 'path' option One less thing to modify in the systemd service. --- .../woodpecker/agent-exec/default.nix | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/modules/services/woodpecker/agent-exec/default.nix b/modules/services/woodpecker/agent-exec/default.nix index ad30188..7ae21c8 100644 --- a/modules/services/woodpecker/agent-exec/default.nix +++ b/modules/services/woodpecker/agent-exec/default.nix @@ -21,6 +21,17 @@ in PAGER = "cat"; }; + path = with pkgs; [ + woodpecker-plugin-git + bash + coreutils + git + git-lfs + gnutar + gzip + nix + ]; + environmentFile = [ cfg.sharedSecretFile ]; }; }; @@ -30,17 +41,6 @@ in # Might break deployment restartIfChanged = false; - path = with pkgs; [ - woodpecker-plugin-git - bash - coreutils - git - git-lfs - gnutar - gzip - nix - ]; - serviceConfig = { # Same option as upstream, without @setuid SystemCallFilter = lib.mkForce "~@clock @privileged @cpu-emulation @debug @keyring @module @mount @obsolete @raw-io @reboot @swap"; From f0b590c29eb0835ee345db01d51fc2d94cb72967 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Wed, 13 Sep 2023 13:45:22 +0000 Subject: [PATCH 101/245] hosts: homes: mousqueton: use new name I renamed my cloudtop to follow the usual schema (and because `cloudtop` was not available...) :-). --- flake/home-manager.nix | 2 +- .../{ambroisie@ambroisie => ambroisie@mousqueton}/default.nix | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename hosts/homes/{ambroisie@ambroisie => ambroisie@mousqueton}/default.nix (100%) diff --git a/flake/home-manager.nix b/flake/home-manager.nix index c55c8dd..2c5b65a 100644 --- a/flake/home-manager.nix +++ b/flake/home-manager.nix @@ -40,7 +40,7 @@ let }; hosts = { - "ambroisie@ambroisie" = "x86_64-linux"; # Unfortunate naming here... + "ambroisie@mousqueton" = "x86_64-linux"; }; in { diff --git a/hosts/homes/ambroisie@ambroisie/default.nix b/hosts/homes/ambroisie@mousqueton/default.nix similarity index 100% rename from hosts/homes/ambroisie@ambroisie/default.nix rename to hosts/homes/ambroisie@mousqueton/default.nix From 550436eee54d9c06999ad1d991fbc2a20e686252 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Thu, 14 Sep 2023 11:00:10 +0000 Subject: [PATCH 102/245] home: vim: remove 'cmp-path' Now that I'm using the async variant. --- home/vim/default.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/home/vim/default.nix b/home/vim/default.nix index a9c2bda..ec18f5c 100644 --- a/home/vim/default.nix +++ b/home/vim/default.nix @@ -81,7 +81,6 @@ in cmp-buffer # Words from open buffers cmp-nvim-lsp # LSP suggestions cmp-nvim-lua # NeoVim lua API - cmp-path # Path name suggestions cmp-under-comparator # Sort items that start with '_' lower cmp_luasnip # Snippet suggestions from LuaSnip From 3f7a06237646a2db994a4a96da1a770b339522b0 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Thu, 14 Sep 2023 11:13:27 +0000 Subject: [PATCH 103/245] home: vim: lua: util: fix comments --- home/vim/lua/ambroisie/utils.lua | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/home/vim/lua/ambroisie/utils.lua b/home/vim/lua/ambroisie/utils.lua index 984c730..418e0d1 100644 --- a/home/vim/lua/ambroisie/utils.lua +++ b/home/vim/lua/ambroisie/utils.lua @@ -1,29 +1,29 @@ local M = {} --- pretty print lua object --- @param obj any object to pretty print +--- pretty print lua object +--- @param obj any object to pretty print M.dump = function(obj) print(vim.inspect(obj)) end --- checks if a given command is executable ----@param cmd string? command to check ----@return boolean executable +--- @param cmd string? command to check +--- @return boolean executable M.is_executable = function(cmd) return cmd and vim.fn.executable(cmd) == 1 end --- return a function that checks if a given command is executable ----@param cmd string? command to check ----@return fun(cmd: string): boolean executable +--- @param cmd string? command to check +--- @return fun(cmd: string): boolean executable M.is_executable_condition = function(cmd) return function() return M.is_executable(cmd) end end --- whether or not we are currently in an SSH connection --- @return boolean ssh connection +--- whether or not we are currently in an SSH connection +--- @return boolean ssh connection M.is_ssh = function() local variables = { "SSH_CONNECTION", @@ -40,9 +40,9 @@ M.is_ssh = function() return false end --- list all active LSP clients for current buffer --- @param bufnr int? buffer number --- @return table all active LSP client names +--- list all active LSP clients for current buffer +--- @param bufnr int? buffer number +--- @return table all active LSP client names M.list_lsp_clients = function(bufnr) local clients = vim.lsp.buf_get_clients(bufnr) local names = {} From f2f4b9f91ef52170369f7ea198a9fb23c54d3dc2 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Thu, 14 Sep 2023 11:14:04 +0000 Subject: [PATCH 104/245] home: vim: lua: lsp: fix comments --- home/vim/lua/ambroisie/lsp.lua | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/home/vim/lua/ambroisie/lsp.lua b/home/vim/lua/ambroisie/lsp.lua index 7ef6e26..99d8dab 100644 --- a/home/vim/lua/ambroisie/lsp.lua +++ b/home/vim/lua/ambroisie/lsp.lua @@ -3,9 +3,9 @@ local M = {} -- Simplified LSP formatting configuration local lsp_format = require("lsp-format") --- Move to the next/previous diagnostic, automatically showing the diagnostics --- float if necessary. --- @param forward whether to go forward or backwards +--- Move to the next/previous diagnostic, automatically showing the diagnostics +--- float if necessary. +--- @param forward whether to go forward or backwards local function goto_diagnostic(forward) vim.validate({ forward = { forward, "boolean" }, @@ -28,21 +28,21 @@ local function goto_diagnostic(forward) end end --- Move to the next diagnostic, automatically showing the diagnostics float if --- necessary. +--- Move to the next diagnostic, automatically showing the diagnostics float if +--- necessary. M.goto_next_diagnostic = function() goto_diagnostic(true) end --- Move to the previous diagnostic, automatically showing the diagnostics float --- if necessary. +--- Move to the previous diagnostic, automatically showing the diagnostics float +--- if necessary. M.goto_prev_diagnostic = function() goto_diagnostic(false) end --- shared LSP configuration callback --- @param client native client configuration --- @param bufnr int? buffer number of the attched client +--- shared LSP configuration callback +--- @param client native client configuration +--- @param bufnr int? buffer number of the attched client M.on_attach = function(client, bufnr) -- Format on save lsp_format.on_attach(client, bufnr) From 7b56c342ad5e7ca8889b718fbaf9210f8abe116f Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Mon, 18 Sep 2023 13:43:33 +0000 Subject: [PATCH 105/245] modules: services: paperless: beef-up workers This should parallelize the number of documents ingested at once (workers), as well as the speed of the ingestion per document (threads). --- modules/services/paperless/default.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/modules/services/paperless/default.nix b/modules/services/paperless/default.nix index c9d6220..1ca1f66 100644 --- a/modules/services/paperless/default.nix +++ b/modules/services/paperless/default.nix @@ -73,6 +73,10 @@ in # OCR settings PAPERLESS_OCR_LANGUAGE = "fra+eng"; + # Workers + PAPERLESS_TASK_WORKERS = 3; + PAPERLESS_THREADS_PER_WORKER = 4; + # Misc PAPERLESS_TIME_ZONE = config.time.timeZone; PAPERLESS_ADMIN_USER = cfg.username; From 61fe480e6b337500335f6926e0bfc74186357437 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Tue, 26 Sep 2023 16:38:27 +0000 Subject: [PATCH 106/245] home: calibre: remove obsolete NOTE --- home/calibre/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/home/calibre/default.nix b/home/calibre/default.nix index e0f2069..6edf654 100644 --- a/home/calibre/default.nix +++ b/home/calibre/default.nix @@ -9,7 +9,7 @@ in config = lib.mkIf cfg.enable { home.packages = with pkgs; [ - calibre # NOTE: relies on my overlay to add necessary plug-in dependencies + calibre ]; }; } From e81de7faadfdeda12f80d2e6b0ec688e0f203fcd Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Tue, 26 Sep 2023 16:51:46 +0000 Subject: [PATCH 107/245] pkgs: rbw-pass: fix program name in usage string --- pkgs/rbw-pass/rbw-pass | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/rbw-pass/rbw-pass b/pkgs/rbw-pass/rbw-pass index 90e916c..23363dc 100755 --- a/pkgs/rbw-pass/rbw-pass +++ b/pkgs/rbw-pass/rbw-pass @@ -1,7 +1,7 @@ #!/usr/bin/env bash usage() { - printf '%s\n' "Usage: bw-pass [directory name] <account name>" >&2 + printf '%s\n' "Usage: rbw-pass [directory name] <account name>" >&2 } error_out() { From 03a1f704aaabefc12d08b6abe7726c89c07fabb4 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Wed, 27 Sep 2023 19:22:04 +0200 Subject: [PATCH 108/245] flake: bump inputs --- flake.lock | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/flake.lock b/flake.lock index 3d28d8d..6e070fc 100644 --- a/flake.lock +++ b/flake.lock @@ -11,11 +11,11 @@ ] }, "locked": { - "lastModified": 1690228878, - "narHash": "sha256-9Xe7JV0krp4RJC9W9W9WutZVlw6BlHTFMiUP/k48LQY=", + "lastModified": 1695384796, + "narHash": "sha256-TYlE4B0ktPtlJJF9IFxTWrEeq+XKG8Ny0gc2FGEAdj0=", "owner": "ryantm", "repo": "agenix", - "rev": "d8c973fd228949736dedf61b7f8cc1ece3236792", + "rev": "1f677b3e161d3bdbfd08a939e8f25de2568e0ef4", "type": "github" }, "original": { @@ -131,11 +131,11 @@ ] }, "locked": { - "lastModified": 1694585439, - "narHash": "sha256-70BlfEsdURx5f8sioj8JuM+R4/SZFyE8UYrULMknxlI=", + "lastModified": 1695738267, + "narHash": "sha256-LTNAbTQ96xSj17xBfsFrFS9i56U2BMLpD0BduhrsVkU=", "owner": "nix-community", "repo": "home-manager", - "rev": "a0ddf43b6268f1717afcda54133dea30435eb178", + "rev": "0f4e5b4999fd6a42ece5da8a3a2439a50e48e486", "type": "github" }, "original": { @@ -147,11 +147,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1694422566, - "narHash": "sha256-lHJ+A9esOz9vln/3CJG23FV6Wd2OoOFbDeEs4cMGMqc=", + "lastModified": 1695644571, + "narHash": "sha256-asS9dCCdlt1lPq0DLwkVBbVoEKuEuz+Zi3DG7pR/RxA=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "3a2786eea085f040a66ecde1bc3ddc7099f6dbeb", + "rev": "6500b4580c2a1f3d0f980d32d285739d8e156d92", "type": "github" }, "original": { @@ -163,11 +163,11 @@ }, "nur": { "locked": { - "lastModified": 1694601892, - "narHash": "sha256-rGK2Y9vQJQ+v729LfpvTuxDfTE7ns2g34XAPSr9+Z0E=", + "lastModified": 1695824843, + "narHash": "sha256-c1Z+y9oUXOkcU8gVBCyaujUqYLpYoI2b6L9Cq4ywOcA=", "owner": "nix-community", "repo": "NUR", - "rev": "71a739d93f1e95967e9d641623cbb97d0c8b801a", + "rev": "8349f3e37cf21a9da032a2fdb8e7ac45366d01f3", "type": "github" }, "original": { @@ -192,11 +192,11 @@ ] }, "locked": { - "lastModified": 1694364351, - "narHash": "sha256-oadhSCqopYXxURwIA6/Anpe5IAG11q2LhvTJNP5zE6o=", + "lastModified": 1695576016, + "narHash": "sha256-71KxwRhTfVuh7kNrg3/edNjYVg9DCyKZl2QIKbhRggg=", "owner": "cachix", "repo": "pre-commit-hooks.nix", - "rev": "4f883a76282bc28eb952570afc3d8a1bf6f481d7", + "rev": "cb770e93516a1609652fa8e945a0f310e98f10c0", "type": "github" }, "original": { From 24d41e829efb8cd7b58bd96cc8ce875b96df47e1 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Thu, 28 Sep 2023 15:57:04 +0000 Subject: [PATCH 109/245] modules: system: users: fix deprecated option name --- modules/system/users/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/system/users/default.nix b/modules/system/users/default.nix index 27557bd..655b31e 100644 --- a/modules/system/users/default.nix +++ b/modules/system/users/default.nix @@ -17,11 +17,11 @@ in users = { root = { - passwordFile = secrets."users/root/hashed-password".path; + hashedPasswordFile = secrets."users/root/hashed-password".path; }; ${config.my.user.name} = { - passwordFile = secrets."users/ambroisie/hashed-password".path; + hashedPasswordFile = secrets."users/ambroisie/hashed-password".path; description = "Bruno BELANYI"; isNormalUser = true; shell = pkgs.zsh; From 6ef0abd5962c904fe0acc9590debb883caff1769 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Tue, 10 Oct 2023 15:36:14 +0000 Subject: [PATCH 110/245] home: xdg: set 'REPO_CONFIG_DIR' Unfortunately, it will create a `.repoconfig` inside that directory. But that's still better than littering my $HOME. --- home/xdg/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/home/xdg/default.nix b/home/xdg/default.nix index 3fd8dc9..af9ec18 100644 --- a/home/xdg/default.nix +++ b/home/xdg/default.nix @@ -47,6 +47,7 @@ in LESSHISTFILE = "${dataHome}/less/history"; LESSKEY = "${configHome}/less/lesskey"; PSQL_HISTORY = "${dataHome}/psql_history"; + REPO_CONFIG_DIR = "${configHome}/repo"; REDISCLI_HISTFILE = "${dataHome}/redis/rediscli_history"; XCOMPOSECACHE = "${dataHome}/X11/xcompose"; }; From f9541cbc33d196fc3e811167d67a38d0d47cb422 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Thu, 12 Oct 2023 12:56:41 +0000 Subject: [PATCH 111/245] hosts: homes: mousqueton: disable 'git' package I had some troubles with `git` once again... This reverts commit 13769429f6db871d8d8d64391584e280860a3fc7. --- hosts/homes/ambroisie@mousqueton/default.nix | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/hosts/homes/ambroisie@mousqueton/default.nix b/hosts/homes/ambroisie@mousqueton/default.nix index f54453b..9096610 100644 --- a/hosts/homes/ambroisie@mousqueton/default.nix +++ b/hosts/homes/ambroisie@mousqueton/default.nix @@ -1,5 +1,5 @@ # Google Cloudtop configuration -{ ... }: +{ lib, pkgs, ... }: { # Google specific configuration home.homeDirectory = "/usr/local/google/home/ambroisie"; @@ -13,6 +13,8 @@ LD_PRELOAD = "/lib/x86_64-linux-gnu/libnss_cache.so.2\${LD_PRELOAD:+:}$LD_PRELOAD"; }; + programs.git.package = lib.mkForce pkgs.emptyDirectory; + # I use scripts that use the passthrough sequence often on this host my.home.tmux.enablePassthrough = true; } From fd093465267cf0d53ebc2c710b4ac27c9ce1836f Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Thu, 12 Oct 2023 13:40:22 +0000 Subject: [PATCH 112/245] direnv: remove explicit 'shellHooks' evaluation I _think_ nix-direnv does it automatically, so no need to do it myself. --- .envrc | 2 -- 1 file changed, 2 deletions(-) diff --git a/.envrc b/.envrc index 95ed6fb..7f5642d 100644 --- a/.envrc +++ b/.envrc @@ -6,5 +6,3 @@ use flake watch_file ./flake/checks.nix watch_file ./flake/dev-shells.nix - -eval "$shellHooks" From e09899d59c8c383773e9e76bb9cd7268ca775143 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Thu, 12 Oct 2023 13:41:36 +0000 Subject: [PATCH 113/245] direnv: fix 'watch_file' directives I should use `nix_direnv_watch_file` and call it _before_ `use_flake`. --- .envrc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.envrc b/.envrc index 7f5642d..956a218 100644 --- a/.envrc +++ b/.envrc @@ -2,7 +2,7 @@ if ! has nix_direnv_version || ! nix_direnv_version 2.2.1; then source_url "https://raw.githubusercontent.com/nix-community/nix-direnv/2.2.1/direnvrc" "sha256-zelF0vLbEl5uaqrfIzbgNzJWGmLzCmYAkInj/LNxvKs=" fi -use flake +nix_direnv_watch_file ./flake/checks.nix +nix_direnv_watch_file ./flake/dev-shells.nix -watch_file ./flake/checks.nix -watch_file ./flake/dev-shells.nix +use flake From aca743dea7a76fe96c489f974b435ac2d6ab5b6c Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Thu, 12 Oct 2023 13:47:01 +0000 Subject: [PATCH 114/245] templates: simplify direnv configurations This was mostly a copy-paste error (the `watch_file` calls). As for the shell hooks, it looks like `nix-direnv` takes care of that automatically. --- templates/c++-cmake/.envrc | 5 ----- templates/c++-meson/.envrc | 5 ----- 2 files changed, 10 deletions(-) diff --git a/templates/c++-cmake/.envrc b/templates/c++-cmake/.envrc index 95ed6fb..f347aa9 100644 --- a/templates/c++-cmake/.envrc +++ b/templates/c++-cmake/.envrc @@ -3,8 +3,3 @@ if ! has nix_direnv_version || ! nix_direnv_version 2.2.1; then fi use flake - -watch_file ./flake/checks.nix -watch_file ./flake/dev-shells.nix - -eval "$shellHooks" diff --git a/templates/c++-meson/.envrc b/templates/c++-meson/.envrc index 95ed6fb..f347aa9 100644 --- a/templates/c++-meson/.envrc +++ b/templates/c++-meson/.envrc @@ -3,8 +3,3 @@ if ! has nix_direnv_version || ! nix_direnv_version 2.2.1; then fi use flake - -watch_file ./flake/checks.nix -watch_file ./flake/dev-shells.nix - -eval "$shellHooks" From ce19887f77e7ab7e735882eb6c5163ccf6d30145 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Thu, 12 Oct 2023 15:17:26 +0000 Subject: [PATCH 115/245] treewide: update 'nix-direnv' bootstrapping --- .envrc | 4 ++-- templates/c++-cmake/.envrc | 4 ++-- templates/c++-meson/.envrc | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.envrc b/.envrc index 956a218..9222bda 100644 --- a/.envrc +++ b/.envrc @@ -1,5 +1,5 @@ -if ! has nix_direnv_version || ! nix_direnv_version 2.2.1; then - source_url "https://raw.githubusercontent.com/nix-community/nix-direnv/2.2.1/direnvrc" "sha256-zelF0vLbEl5uaqrfIzbgNzJWGmLzCmYAkInj/LNxvKs=" +if ! has nix_direnv_version || ! nix_direnv_version 2.4.0; then + source_url "https://raw.githubusercontent.com/nix-community/nix-direnv/2.4.0/direnvrc" "sha256-XQzUAvL6pysIJnRJyR7uVpmUSZfc7LSgWQwq/4mBr1U=" fi nix_direnv_watch_file ./flake/checks.nix diff --git a/templates/c++-cmake/.envrc b/templates/c++-cmake/.envrc index f347aa9..ccf325e 100644 --- a/templates/c++-cmake/.envrc +++ b/templates/c++-cmake/.envrc @@ -1,5 +1,5 @@ -if ! has nix_direnv_version || ! nix_direnv_version 2.2.1; then - source_url "https://raw.githubusercontent.com/nix-community/nix-direnv/2.2.1/direnvrc" "sha256-zelF0vLbEl5uaqrfIzbgNzJWGmLzCmYAkInj/LNxvKs=" +if ! has nix_direnv_version || ! nix_direnv_version 2.4.0; then + source_url "https://raw.githubusercontent.com/nix-community/nix-direnv/2.4.0/direnvrc" "sha256-XQzUAvL6pysIJnRJyR7uVpmUSZfc7LSgWQwq/4mBr1U=" fi use flake diff --git a/templates/c++-meson/.envrc b/templates/c++-meson/.envrc index f347aa9..ccf325e 100644 --- a/templates/c++-meson/.envrc +++ b/templates/c++-meson/.envrc @@ -1,5 +1,5 @@ -if ! has nix_direnv_version || ! nix_direnv_version 2.2.1; then - source_url "https://raw.githubusercontent.com/nix-community/nix-direnv/2.2.1/direnvrc" "sha256-zelF0vLbEl5uaqrfIzbgNzJWGmLzCmYAkInj/LNxvKs=" +if ! has nix_direnv_version || ! nix_direnv_version 2.4.0; then + source_url "https://raw.githubusercontent.com/nix-community/nix-direnv/2.4.0/direnvrc" "sha256-XQzUAvL6pysIJnRJyR7uVpmUSZfc7LSgWQwq/4mBr1U=" fi use flake From a5febc40e4043bd00c552acde7bf2442f072fa34 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Thu, 12 Oct 2023 15:19:44 +0000 Subject: [PATCH 116/245] home: comma: remove 'COMMA_PKGS_FLAKE' definition Now that my configurations also set `nixpkgs` in `NIX_PATH`, there's isn't a need for this to be defined anymore. --- home/comma/default.nix | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/home/comma/default.nix b/home/comma/default.nix index cc6a0ad..60de863 100644 --- a/home/comma/default.nix +++ b/home/comma/default.nix @@ -5,25 +5,11 @@ in { options.my.home.comma = with lib; { enable = my.mkDisableOption "comma configuration"; - - pkgsFlake = mkOption { - type = types.str; - default = "pkgs"; - example = "nixpkgs"; - description = '' - Which flake from the registry should be used with - <command>nix shell</command>. - ''; - }; }; config = lib.mkIf cfg.enable { home.packages = with pkgs; [ ambroisie.comma ]; - - home.sessionVariables = { - COMMA_PKGS_FLAKE = cfg.pkgsFlake; - }; }; } From 2d36ffd96dba1ac9acab698d9370983eec0b3574 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Thu, 12 Oct 2023 15:19:44 +0000 Subject: [PATCH 117/245] pkgs: comma: rename 'COMMA_{,NIX}PKGS_FLAKE' This aligns with the rust implementation of this tool [1]. [1]: https://github.com/nix-community/comma/commit/17a4f3384954a43cec0f91361f153cda908fe3d3 --- pkgs/comma/comma | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/comma/comma b/pkgs/comma/comma index ba5c6ae..4367a26 100755 --- a/pkgs/comma/comma +++ b/pkgs/comma/comma @@ -30,4 +30,4 @@ if [ -z "$PROGRAM" ]; then exit 1 fi -nix shell "${COMMA_PKGS_FLAKE:-nixpkgs}#$PROGRAM" -c "$@" +nix shell "${COMMA_NIXPKGS_FLAKE:-nixpkgs}#$PROGRAM" -c "$@" From dae1a434d558b96d8ed3424b8eef09610aecb122 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Thu, 28 Sep 2023 18:02:22 +0200 Subject: [PATCH 118/245] modules: services: transmission: bump to 4 Not sure why exactly this isn't the default, I'll have to watch out for when upstream catches up. --- modules/services/transmission/default.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/services/transmission/default.nix b/modules/services/transmission/default.nix index dcba0aa..28df477 100644 --- a/modules/services/transmission/default.nix +++ b/modules/services/transmission/default.nix @@ -3,7 +3,7 @@ # Inspired by [1] # # [1]: https://github.com/delroth/infra.delroth.net/blob/master/roles/seedbox.nix -{ config, lib, ... }: +{ config, lib, pkgs, ... }: let cfg = config.my.services.transmission; in @@ -45,6 +45,7 @@ in config = lib.mkIf cfg.enable { services.transmission = { enable = true; + package = pkgs.transmission_4; group = "media"; downloadDirPermissions = "775"; From 3b3e7093beb225810a728b44f31afeb24f2f247c Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Fri, 6 Oct 2023 23:11:46 +0200 Subject: [PATCH 119/245] modules: services: pirate: make more fine-grained --- modules/services/pirate/default.nix | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/modules/services/pirate/default.nix b/modules/services/pirate/default.nix index 7c341e7..59f9794 100644 --- a/modules/services/pirate/default.nix +++ b/modules/services/pirate/default.nix @@ -29,7 +29,7 @@ let ]; }; - mkFail2Ban = service: { + mkFail2Ban = service: lib.mkIf cfg.${service}.enable { services.fail2ban.jails = { ${service} = '' enabled = true @@ -47,14 +47,30 @@ let }; }; - mkFullConfig = service: lib.mkMerge [ + mkFullConfig = service: lib.mkIf cfg.${service}.enable (lib.mkMerge [ (mkService service) (mkRedirection service) - ]; + ]); in { options.my.services.pirate = { enable = lib.mkEnableOption "Media automation"; + + bazarr = { + enable = lib.my.mkDisableOption "Bazarr"; + }; + + lidarr = { + enable = lib.my.mkDisableOption "Lidarr"; + }; + + radarr = { + enable = lib.my.mkDisableOption "Radarr"; + }; + + sonarr = { + enable = lib.my.mkDisableOption "Sonarr"; + }; }; config = lib.mkIf cfg.enable (lib.mkMerge [ From f8a0eef4dd993d43dafec88aa33b099b9d05d11c Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Fri, 6 Oct 2023 23:13:47 +0200 Subject: [PATCH 120/245] hosts: nixos: porthos: services: disable lidarr --- hosts/nixos/porthos/services.nix | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/hosts/nixos/porthos/services.nix b/hosts/nixos/porthos/services.nix index 863048c..8487157 100644 --- a/hosts/nixos/porthos/services.nix +++ b/hosts/nixos/porthos/services.nix @@ -116,7 +116,13 @@ in secretKeyFile = secrets."paperless/secret-key".path; }; # The whole *arr software suite - pirate.enable = true; + pirate = { + enable = true; + # ... But not Lidarr because I don't care for music that much + lidarr = { + enable = false; + }; + }; # Podcast automatic downloader podgrab = { enable = true; From fcdb5ba59329dc129e93ab228e38943fc90fe978 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Wed, 18 Oct 2023 21:36:09 +0200 Subject: [PATCH 121/245] modules: services: woodpecker: remove DNS hack I'm not sure what changed, but it looks like I don't need it anymore. Initially I wanted to apply the same DNS fix as [1]. [1]: https://blog.kotatsu.dev/posts/2023-04-21-woodpecker-nix-caching/ --- modules/services/woodpecker/agent-docker/default.nix | 3 --- 1 file changed, 3 deletions(-) diff --git a/modules/services/woodpecker/agent-docker/default.nix b/modules/services/woodpecker/agent-docker/default.nix index b18d075..79d3299 100644 --- a/modules/services/woodpecker/agent-docker/default.nix +++ b/modules/services/woodpecker/agent-docker/default.nix @@ -27,9 +27,6 @@ in # Make sure it is activated in that case my.system.docker.enable = true; - # FIXME: figure out the issue - services.unbound.resolveLocalQueries = false; - # Adjust runner service for nix usage systemd.services.woodpecker-agent-docker = { after = [ "docker.socket" ]; # Needs the socket to be available From 085c563d7538b238e0a180fa0627de27e9ca069d Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Thu, 19 Oct 2023 10:42:19 +0000 Subject: [PATCH 122/245] hosts: homes: mousqueton: disable gpg-agent It doesn't work well in this environment anyway. --- hosts/homes/ambroisie@mousqueton/default.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/hosts/homes/ambroisie@mousqueton/default.nix b/hosts/homes/ambroisie@mousqueton/default.nix index 9096610..0bd2272 100644 --- a/hosts/homes/ambroisie@mousqueton/default.nix +++ b/hosts/homes/ambroisie@mousqueton/default.nix @@ -15,6 +15,8 @@ programs.git.package = lib.mkForce pkgs.emptyDirectory; + services.gpg-agent.enable = lib.mkForce false; + # I use scripts that use the passthrough sequence often on this host my.home.tmux.enablePassthrough = true; } From 1425c424899752f4f955a7f2fd1c73711abd9ed5 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Thu, 28 Sep 2023 15:28:11 +0000 Subject: [PATCH 123/245] modules: services: matrix: refactor vhost --- modules/services/matrix/default.nix | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/modules/services/matrix/default.nix b/modules/services/matrix/default.nix index c73afed..9acd8c2 100644 --- a/modules/services/matrix/default.nix +++ b/modules/services/matrix/default.nix @@ -13,6 +13,7 @@ let federationPort = { public = 8448; private = 11338; }; clientPort = { public = 443; private = 11339; }; domain = config.networking.domain; + matrixDomain = "matrix.${domain}"; in { options.my.services.matrix = with lib; { @@ -52,7 +53,7 @@ in settings = { server_name = domain; - public_baseurl = "https://matrix.${domain}"; + public_baseurl = "https://${matrixDomain}"; enable_registration = false; @@ -98,7 +99,7 @@ in conf = { default_server_config = { "m.homeserver" = { - "base_url" = "https://matrix.${domain}"; + "base_url" = "https://${matrixDomain}"; "server_name" = domain; }; "m.identity_server" = { @@ -120,7 +121,7 @@ in # Those are too complicated to use my wrapper... services.nginx.virtualHosts = { - "matrix.${domain}" = { + ${matrixDomain} = { onlySSL = true; useACMEHost = domain; @@ -148,9 +149,9 @@ in }; # same as above, but listening on the federation port - "matrix.${domain}_federation" = { + "${matrixDomain}_federation" = { onlySSL = true; - serverName = "matrix.${domain}"; + serverName = matrixDomain; useACMEHost = domain; locations."/".return = "404"; @@ -171,7 +172,7 @@ in locations."= /.well-known/matrix/server".extraConfig = let - server = { "m.server" = "matrix.${domain}:${toString federationPort.public}"; }; + server = { "m.server" = "${matrixDomain}:${toString federationPort.public}"; }; in '' add_header Content-Type application/json; @@ -181,7 +182,7 @@ in locations."= /.well-known/matrix/client".extraConfig = let client = { - "m.homeserver" = { "base_url" = "https://matrix.${domain}"; }; + "m.homeserver" = { "base_url" = "https://${matrixDomain}"; }; "m.identity_server" = { "base_url" = "https://vector.im"; }; }; # ACAO required to allow element-web on any URL to request this json file From 52413dcaf7d937a69002be661b8a6c26443e162c Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Thu, 28 Sep 2023 15:53:46 +0000 Subject: [PATCH 124/245] hosts: nixos: porthos: secrets: add matrix sync --- .../nixos/porthos/secrets/matrix/sliding-sync-secret.age | 9 +++++++++ hosts/nixos/porthos/secrets/secrets.nix | 3 +++ 2 files changed, 12 insertions(+) create mode 100644 hosts/nixos/porthos/secrets/matrix/sliding-sync-secret.age diff --git a/hosts/nixos/porthos/secrets/matrix/sliding-sync-secret.age b/hosts/nixos/porthos/secrets/matrix/sliding-sync-secret.age new file mode 100644 index 0000000..d375a35 --- /dev/null +++ b/hosts/nixos/porthos/secrets/matrix/sliding-sync-secret.age @@ -0,0 +1,9 @@ +age-encryption.org/v1 +-> ssh-ed25519 cKojmg N182xey8TWRVUWTRP16rT0zlhYZNr/pOZVR7YRnlIkk +HVqAag55z1cKLgjR3WsUj2wvaVjxm169JcDRJGRvCVU +-> ssh-ed25519 jPowng Dc+aaUTxDsMTY+oOst0SC3ldq1e6zX8F5A5uBL5RHhc +JWZou6+VaFc5f2OLRIrmFFWg3Er6WSY+TloXU0mP1K8 +-> |9_9Aqh%-grease $ X8Mn|5 aKnl' fl<D{T- ++fAc0cajqxhYWu55HCY +--- SrmtWXQXGYxNTabSrb5tBRXHnK1F22Qoiy7hKYrrF+0 +D: ,n0i^Ɗ`2#y'9Ҏr]؛xS=uJEclH~ ełKtvo'v+ \ No newline at end of file diff --git a/hosts/nixos/porthos/secrets/secrets.nix b/hosts/nixos/porthos/secrets/secrets.nix index 8eac0f5..ed6c2fd 100644 --- a/hosts/nixos/porthos/secrets/secrets.nix +++ b/hosts/nixos/porthos/secrets/secrets.nix @@ -35,6 +35,9 @@ in owner = "matrix-synapse"; publicKeys = all; }; + "matrix/sliding-sync-secret.age" = { + publicKeys = all; + }; "miniflux/credentials.age".publicKeys = all; From b4b9b54f75a0f71ed7f29c01f31be567cf412d00 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Thu, 28 Sep 2023 18:42:13 +0200 Subject: [PATCH 125/245] modules: services: matrix: register dummy vhosts This is simply to make use of my infrastructure for port collision detection. --- modules/services/matrix/default.nix | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/modules/services/matrix/default.nix b/modules/services/matrix/default.nix index 9acd8c2..42c5cda 100644 --- a/modules/services/matrix/default.nix +++ b/modules/services/matrix/default.nix @@ -117,6 +117,15 @@ in }; }; } + # Dummy VHosts for port collision detection + { + subdomain = "matrix-federation"; + port = federationPort.private; + } + { + subdomain = "matrix-client"; + port = clientPort.private; + } ]; # Those are too complicated to use my wrapper... From b4c2cc581b6b79db1961e0aa840fad6d17ee6652 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Thu, 28 Sep 2023 15:53:46 +0000 Subject: [PATCH 126/245] modules: services: matrix: add sliding sync --- hosts/nixos/porthos/services.nix | 3 +++ modules/services/matrix/default.nix | 40 +++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+) diff --git a/hosts/nixos/porthos/services.nix b/hosts/nixos/porthos/services.nix index 8487157..d73cdc1 100644 --- a/hosts/nixos/porthos/services.nix +++ b/hosts/nixos/porthos/services.nix @@ -64,6 +64,9 @@ in mailConfigFile = secrets."matrix/mail".path; # Only necessary when doing the initial registration secretFile = secrets."matrix/secret".path; + slidingSync = { + secretFile = secrets."matrix/sliding-sync-secret".path; + }; }; miniflux = { enable = true; diff --git a/modules/services/matrix/default.nix b/modules/services/matrix/default.nix index 42c5cda..52b60c5 100644 --- a/modules/services/matrix/default.nix +++ b/modules/services/matrix/default.nix @@ -26,6 +26,21 @@ in description = "Shared secret to register users"; }; + slidingSync = { + port = mkOption { + type = types.port; + default = 8009; + example = 8084; + description = "Port used by sliding sync server"; + }; + + secretFile = mkOption { + type = types.str; + example = "/var/lib/matrix/sliding-sync-secret-file.env"; + description = "Secret file which contains SYNCV3_SECRET definition"; + }; + }; + mailConfigFile = mkOption { type = types.str; example = "/var/lib/matrix/email-config.yaml"; @@ -89,6 +104,17 @@ in extraConfigFiles = [ cfg.mailConfigFile ] ++ lib.optional (cfg.secretFile != null) cfg.secretFile; + + sliding-sync = { + enable = true; + + settings = { + SYNCV3_SERVER = "https://${matrixDomain}"; + SYNCV3_BINDADDR = "127.0.0.1:${toString cfg.slidingSync.port}"; + }; + + environmentFile = cfg.slidingSync.secretFile; + }; }; my.services.nginx.virtualHosts = [ @@ -105,6 +131,9 @@ in "m.identity_server" = { "base_url" = "https://vector.im"; }; + "org.matrix.msc3575.proxy" = { + "url" = "https://matrix-sync.${domain}"; + }; }; showLabsSettings = true; defaultCountryCode = "FR"; # cocorico @@ -126,6 +155,11 @@ in subdomain = "matrix-client"; port = clientPort.private; } + # Sliding sync + { + subdomain = "matrix-sync"; + inherit (cfg.slidingSync) port; + } ]; # Those are too complicated to use my wrapper... @@ -148,6 +182,11 @@ in "/_matrix" = proxyToClientPort; "/_synapse/client" = proxyToClientPort; + + # Sliding sync + "~ ^/(client/|_matrix/client/unstable/org.matrix.msc3575/sync)" = { + proxyPass = "http://${config.services.matrix-synapse.sliding-sync.settings.SYNCV3_BINDADDR}"; + }; }; listen = [ @@ -193,6 +232,7 @@ in client = { "m.homeserver" = { "base_url" = "https://${matrixDomain}"; }; "m.identity_server" = { "base_url" = "https://vector.im"; }; + "org.matrix.msc3575.proxy" = { "url" = "https://matrix-sync.${domain}"; }; }; # ACAO required to allow element-web on any URL to request this json file in From 5248eb59f8480c3531e8e3775580c7ac8941852a Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Thu, 26 Oct 2023 12:27:31 +0000 Subject: [PATCH 127/245] hosts: homes: mousqueton: fix `tmux` 24-bit color This is based on this answer [1] from Stack Overflow. I'll have to look into what the proper fix would be in general, this is just a band-aid to get it working correctly while SSH-ing from my laptop. [1]: https://stackoverflow.com/a/41786092 --- hosts/homes/ambroisie@mousqueton/default.nix | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/hosts/homes/ambroisie@mousqueton/default.nix b/hosts/homes/ambroisie@mousqueton/default.nix index 0bd2272..ac73da6 100644 --- a/hosts/homes/ambroisie@mousqueton/default.nix +++ b/hosts/homes/ambroisie@mousqueton/default.nix @@ -19,4 +19,9 @@ # I use scripts that use the passthrough sequence often on this host my.home.tmux.enablePassthrough = true; + + programs.tmux.extraConfig = '' + # Setup 24-bit color explicitly, as the default terminfo entry does not + set-option -sa terminal-overrides ",xterm-256color:Tc" + ''; } From 0795a3d29b90edcfb96f28a9f953e068e3b454a5 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Wed, 18 Oct 2023 15:26:07 +0000 Subject: [PATCH 128/245] flake: bump inputs And fix a removed nextcloud option. --- flake.lock | 34 +++++++++++++------------- modules/services/nextcloud/default.nix | 1 - 2 files changed, 17 insertions(+), 18 deletions(-) diff --git a/flake.lock b/flake.lock index 6e070fc..5fd6c45 100644 --- a/flake.lock +++ b/flake.lock @@ -11,11 +11,11 @@ ] }, "locked": { - "lastModified": 1695384796, + "lastModified": 1696775529, "narHash": "sha256-TYlE4B0ktPtlJJF9IFxTWrEeq+XKG8Ny0gc2FGEAdj0=", "owner": "ryantm", "repo": "agenix", - "rev": "1f677b3e161d3bdbfd08a939e8f25de2568e0ef4", + "rev": "daf42cb35b2dc614d1551e37f96406e4c4a2d3e4", "type": "github" }, "original": { @@ -70,11 +70,11 @@ ] }, "locked": { - "lastModified": 1693611461, - "narHash": "sha256-aPODl8vAgGQ0ZYFIRisxYG5MOGSkIczvu2Cd8Gb9+1Y=", + "lastModified": 1696343447, + "narHash": "sha256-B2xAZKLkkeRFG5XcHHSXXcP7To9Xzr59KXeZiRf4vdQ=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "7f53fdb7bdc5bb237da7fefef12d099e4fd611ca", + "rev": "c9afaba3dfa4085dbd2ccb38dfade5141e33d9d4", "type": "github" }, "original": { @@ -131,11 +131,11 @@ ] }, "locked": { - "lastModified": 1695738267, - "narHash": "sha256-LTNAbTQ96xSj17xBfsFrFS9i56U2BMLpD0BduhrsVkU=", + "lastModified": 1698250431, + "narHash": "sha256-qs2gTeH4wpnWPO6Oi6sOhp2IhG0i0DzcnrJxIY3/CP8=", "owner": "nix-community", "repo": "home-manager", - "rev": "0f4e5b4999fd6a42ece5da8a3a2439a50e48e486", + "rev": "09587fbbc6a669f7725613e044c2577dc5d43ab5", "type": "github" }, "original": { @@ -147,11 +147,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1695644571, - "narHash": "sha256-asS9dCCdlt1lPq0DLwkVBbVoEKuEuz+Zi3DG7pR/RxA=", + "lastModified": 1698134075, + "narHash": "sha256-foCD+nuKzfh49bIoiCBur4+Fx1nozo+4C/6k8BYk4sg=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "6500b4580c2a1f3d0f980d32d285739d8e156d92", + "rev": "8efd5d1e283604f75a808a20e6cde0ef313d07d4", "type": "github" }, "original": { @@ -163,11 +163,11 @@ }, "nur": { "locked": { - "lastModified": 1695824843, - "narHash": "sha256-c1Z+y9oUXOkcU8gVBCyaujUqYLpYoI2b6L9Cq4ywOcA=", + "lastModified": 1698317227, + "narHash": "sha256-jzSJjjxJr/IPvoPSWB1ZobmlAKku6eeggh9ffGV7Sig=", "owner": "nix-community", "repo": "NUR", - "rev": "8349f3e37cf21a9da032a2fdb8e7ac45366d01f3", + "rev": "32a38be31067b0a2f4919fd9e7a49bbefc34d25f", "type": "github" }, "original": { @@ -192,11 +192,11 @@ ] }, "locked": { - "lastModified": 1695576016, - "narHash": "sha256-71KxwRhTfVuh7kNrg3/edNjYVg9DCyKZl2QIKbhRggg=", + "lastModified": 1698227354, + "narHash": "sha256-Fi5H9jbaQLmLw9qBi/mkR33CoFjNbobo5xWdX4tKz1Q=", "owner": "cachix", "repo": "pre-commit-hooks.nix", - "rev": "cb770e93516a1609652fa8e945a0f310e98f10c0", + "rev": "bd38df3d508dfcdff52cd243d297f218ed2257bf", "type": "github" }, "original": { diff --git a/modules/services/nextcloud/default.nix b/modules/services/nextcloud/default.nix index 1477c13..260e73e 100644 --- a/modules/services/nextcloud/default.nix +++ b/modules/services/nextcloud/default.nix @@ -35,7 +35,6 @@ in hostName = "nextcloud.${config.networking.domain}"; home = "/var/lib/nextcloud"; maxUploadSize = cfg.maxSize; - enableBrokenCiphersForSSE = false; configureRedis = true; config = { adminuser = cfg.admin; From 28187c3b8f34c0912d9f8ce5f74f415a6b77a1c2 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Thu, 26 Oct 2023 12:50:59 +0000 Subject: [PATCH 129/245] overlays: add 'gruvbox-nvim-better-diff' I dislike the new style of diff [1]. After somebody wrote a patch [2] I finally started experimenting with what looked best to me. This is using the old vibrant colours, which I like better. And avoids using `reverse = true` to not break high-lighting during visual selection. This is using an overlay as it is _much_ easier to refer to the internal colours in a `dark`/`light` agnostic way that way instead of the intended "use the palette way" (due to breaking changes in [3] which, incidentally, is the MR which changed diff high-lighting). [1]: https://github.com/ellisonleao/gruvbox.nvim/issues/290 [2]: https://github.com/ellisonleao/gruvbox.nvim/pull/291 [3]: https://github.com/ellisonleao/gruvbox.nvim/pull/280 --- .../gruvbox-nvim-better-diff/colours.patch | 28 +++++++++++++++++++ overlays/gruvbox-nvim-better-diff/default.nix | 4 +++ .../gruvbox-nvim-better-diff/generated.nix | 24 ++++++++++++++++ 3 files changed, 56 insertions(+) create mode 100644 overlays/gruvbox-nvim-better-diff/colours.patch create mode 100644 overlays/gruvbox-nvim-better-diff/default.nix create mode 100644 overlays/gruvbox-nvim-better-diff/generated.nix diff --git a/overlays/gruvbox-nvim-better-diff/colours.patch b/overlays/gruvbox-nvim-better-diff/colours.patch new file mode 100644 index 0000000..5b0d61a --- /dev/null +++ b/overlays/gruvbox-nvim-better-diff/colours.patch @@ -0,0 +1,28 @@ +From 416b3c9c5e783d173ac0fd5310a76c1b144b92c1 Mon Sep 17 00:00:00 2001 +From: eeeXun <sdes96303@gmail.com> +Date: Thu, 19 Oct 2023 02:34:12 +0800 +Subject: Use better diff colours + +--- + README.md | 3 ++- + lua/gruvbox.lua | 7 ++++--- + 2 files changed, 6 insertions(+), 4 deletions(-) + +diff --git a/lua/gruvbox.lua b/lua/gruvbox.lua +index ceba0735..a319fc6a 100644 +--- a/lua/gruvbox.lua ++++ b/lua/gruvbox.lua +@@ -360,9 +361,9 @@ local function get_groups() + PmenuSel = { fg = colors.bg2, bg = colors.blue, bold = config.bold }, + PmenuSbar = { bg = colors.bg2 }, + PmenuThumb = { bg = colors.bg4 }, +- DiffDelete = { bg = colors.dark_red }, +- DiffAdd = { bg = colors.dark_green }, +- DiffChange = { bg = colors.dark_aqua }, +- DiffText = { bg = colors.yellow, fg = colors.bg0 }, ++ DiffDelete = { fg = colors.red }, ++ DiffAdd = { fg = colors.green }, ++ DiffChange = { fg = colors.aqua }, ++ DiffText = { fg = colors.yellow, bg = colors.bg0 }, + SpellCap = { link = "GruvboxBlueUnderline" }, + SpellBad = { link = "GruvboxRedUnderline" }, diff --git a/overlays/gruvbox-nvim-better-diff/default.nix b/overlays/gruvbox-nvim-better-diff/default.nix new file mode 100644 index 0000000..832e71d --- /dev/null +++ b/overlays/gruvbox-nvim-better-diff/default.nix @@ -0,0 +1,4 @@ +self: prev: +{ + vimPlugins = prev.vimPlugins.extend (self.callPackage ./generated.nix { }); +} diff --git a/overlays/gruvbox-nvim-better-diff/generated.nix b/overlays/gruvbox-nvim-better-diff/generated.nix new file mode 100644 index 0000000..50ea4ad --- /dev/null +++ b/overlays/gruvbox-nvim-better-diff/generated.nix @@ -0,0 +1,24 @@ +{ vimUtils, fetchFromGitHub }: + +_final: _prev: { + gruvbox-nvim = vimUtils.buildVimPlugin { + pname = "gruvbox.nvim"; + version = "2023-10-07"; + + src = fetchFromGitHub { + owner = "ellisonleao"; + repo = "gruvbox.nvim"; + rev = "477c62493c82684ed510c4f70eaf83802e398898"; + sha256 = "0250c24c6n6yri48l288irdawhqs16qna3y74rdkgjd2jvh66vdm"; + }; + + patches = [ + # Inspired by https://github.com/ellisonleao/gruvbox.nvim/pull/291 + ./colours.patch + ]; + + meta = { + homepage = "https://github.com/ellisonleao/gruvbox.nvim/"; + }; + }; +} From 516df86b3f1fd64bbc29a109179d593e3af26e38 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Wed, 18 Oct 2023 15:26:35 +0000 Subject: [PATCH 130/245] home: vim: migrate to 'none-ls-nvim' This is the community-maintained fork of the plug-in. --- home/vim/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/home/vim/default.nix b/home/vim/default.nix index ec18f5c..871bf40 100644 --- a/home/vim/default.nix +++ b/home/vim/default.nix @@ -67,7 +67,7 @@ in nvim-lspconfig # Easy LSP configuration lsp-format-nvim # Simplified formatting configuration lsp_lines-nvim # Show diagnostics *over* regions - null-ls-nvim # LSP integration for linters and formatters + none-ls-nvim # LSP integration for linters and formatters nvim-treesitter.withAllGrammars # Better highlighting nvim-treesitter-textobjects # More textobjects nvim-ts-context-commentstring # Comment string in nested language blocks From bd69e281434f4a4a129b5b08a2e7c287f3aba9b0 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Thu, 26 Oct 2023 13:47:29 +0000 Subject: [PATCH 131/245] home: firefox: migrate deprecated option --- home/firefox/default.nix | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/home/firefox/default.nix b/home/firefox/default.nix index 7374b63..85a1d59 100644 --- a/home/firefox/default.nix +++ b/home/firefox/default.nix @@ -33,13 +33,10 @@ in enable = true; package = pkgs.firefox.override { - cfg = { - enableTridactylNative = cfg.tridactyl.enable; - }; - - extraNativeMessagingHosts = with pkgs; ([ ] + nativeMessagingHosts = ([ ] + ++ lib.optional cfg.tridactyl.enable pkgs.tridactyl-native # Watch videos using mpv - ++ lib.optional cfg.ff2mpv.enable ambroisie.ff2mpv-go + ++ lib.optional cfg.ff2mpv.enable pkgs.ambroisie.ff2mpv-go ); }; From c01f657e8d46f213ac5906924ff37013275830e3 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Thu, 26 Oct 2023 19:36:32 +0100 Subject: [PATCH 132/245] lib: lists: add 'nullableToList' --- lib/lists.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lib/lists.nix b/lib/lists.nix index 190198e..6c2fadd 100644 --- a/lib/lists.nix +++ b/lib/lists.nix @@ -24,4 +24,10 @@ in # (any -> value) # [ any ] mapFilter = pred: f: attrs: filter pred (map f attrs); + + # Transform a nullable value into a list of zero/one element. + # + # nullableToList :: + # (nullable a) -> [ a ] + nullableToList = x: if x != null then [ x ] else [ ]; } From 3a1ccea1425fdfe60584b6729014d3f12799c87d Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Thu, 26 Oct 2023 19:37:04 +0100 Subject: [PATCH 133/245] home: tmux: add 'trueColorTerminals' This uses the recommended way of enabling true-color [1]. [1]: https://github.com/tmux/tmux/wiki/FAQ#how-do-i-use-rgb-colour --- home/tmux/default.nix | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/home/tmux/default.nix b/home/tmux/default.nix index e554fd0..08aeb55 100644 --- a/home/tmux/default.nix +++ b/home/tmux/default.nix @@ -11,6 +11,19 @@ in enable = my.mkDisableOption "tmux terminal multiplexer"; enablePassthrough = mkEnableOption "tmux DCS passthrough sequence"; + + trueColorTerminals = mkOption { + type = with types; listOf str; + default = lib.my.nullableToList config.my.home.terminal.program; + defaultText = '' + `[ config.my.home.terminal.program ]` if it is non-null, otherwise an + empty list. + ''; + example = [ "xterm-256color" ]; + description = '' + $TERM values which should be considered to always support 24-bit color. + ''; + }; }; config.programs.tmux = lib.mkIf cfg.enable { @@ -75,6 +88,14 @@ in set -g allow-passthrough on '' } + + # Force 24-bit color for each relevant $TERM + ${ + let + mkTcFlag = term: ''set -as terminal-features ",${term}:RGB"''; + in + lib.concatMapStringsSep "\n" mkTcFlag cfg.trueColorTerminals + } ''; }; } From 42ab12179e16e7af7e467365d76607d5ae7ca15f Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Thu, 26 Oct 2023 19:39:44 +0100 Subject: [PATCH 134/245] hosts: homes: mousqueton: use 'trueColorTerminals' Ah, much better with an actual option for this :-). --- hosts/homes/ambroisie@mousqueton/default.nix | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/hosts/homes/ambroisie@mousqueton/default.nix b/hosts/homes/ambroisie@mousqueton/default.nix index ac73da6..7f9d659 100644 --- a/hosts/homes/ambroisie@mousqueton/default.nix +++ b/hosts/homes/ambroisie@mousqueton/default.nix @@ -20,8 +20,6 @@ # I use scripts that use the passthrough sequence often on this host my.home.tmux.enablePassthrough = true; - programs.tmux.extraConfig = '' - # Setup 24-bit color explicitly, as the default terminfo entry does not - set-option -sa terminal-overrides ",xterm-256color:Tc" - ''; + # HTerm uses `xterm-256color` as its `$TERM`, so use that here + my.home.tmux.trueColorTerminals = [ "xterm-256color" ]; } From 6a8f93df1ffb9abe172fae8c6f228bb461096084 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Sat, 28 Oct 2023 12:14:42 +0100 Subject: [PATCH 135/245] modules: services: nginx: fix obsolete doc It's annoying to keep it in sync when adding a new incompatible option. --- modules/services/nginx/default.nix | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/modules/services/nginx/default.nix b/modules/services/nginx/default.nix index dcaaa0f..6ca2e42 100644 --- a/modules/services/nginx/default.nix +++ b/modules/services/nginx/default.nix @@ -22,7 +22,6 @@ let example = 8080; description = '' Which port to proxy to, through 127.0.0.1, for this virtual host. - This option is incompatible with `root`. ''; }; @@ -40,8 +39,7 @@ let default = null; example = "/var/www/blog"; description = '' - The root folder for this virtual host. This option is incompatible - with `port`. + The root folder for this virtual host. ''; }; @@ -50,8 +48,7 @@ let default = null; example = "FIXME"; description = '' - The UNIX socket for this virtual host. This option is incompatible - with `port`. + The UNIX socket for this virtual host. ''; }; From ca4fac3c546725014b20778c4b4eca6663356cac Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Mon, 30 Oct 2023 13:33:27 +0000 Subject: [PATCH 136/245] hosts: nixos: porthos: fix tmux 24-bit color Well at least this fixes it for the usual client (my laptop). --- hosts/nixos/porthos/home.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/hosts/nixos/porthos/home.nix b/hosts/nixos/porthos/home.nix index 53d5d25..90aa0ec 100644 --- a/hosts/nixos/porthos/home.nix +++ b/hosts/nixos/porthos/home.nix @@ -1,6 +1,12 @@ { ... }: { my.home = { + # Allow using 24bit color when SSH-ing from various clients + tmux.trueColorTerminals = [ + # My usual terminal, e.g: on laptop + "alacritty" + ]; + # Always start a tmux session when opening a shell session zsh.launchTmux = true; }; From 9b71708e3a49563e4fe8ded452db8ff0c63f1edd Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Tue, 31 Oct 2023 11:56:39 +0000 Subject: [PATCH 137/245] flake: bump inputs --- flake.lock | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/flake.lock b/flake.lock index 5fd6c45..d2f2e6d 100644 --- a/flake.lock +++ b/flake.lock @@ -70,11 +70,11 @@ ] }, "locked": { - "lastModified": 1696343447, - "narHash": "sha256-B2xAZKLkkeRFG5XcHHSXXcP7To9Xzr59KXeZiRf4vdQ=", + "lastModified": 1698579227, + "narHash": "sha256-KVWjFZky+gRuWennKsbo6cWyo7c/z/VgCte5pR9pEKg=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "c9afaba3dfa4085dbd2ccb38dfade5141e33d9d4", + "rev": "f76e870d64779109e41370848074ac4eaa1606ec", "type": "github" }, "original": { @@ -131,11 +131,11 @@ ] }, "locked": { - "lastModified": 1698250431, - "narHash": "sha256-qs2gTeH4wpnWPO6Oi6sOhp2IhG0i0DzcnrJxIY3/CP8=", + "lastModified": 1698670511, + "narHash": "sha256-jQIu3UhBMPHXzVkHQO1O2gg8SVo5lqAVoC6mOaLQcLQ=", "owner": "nix-community", "repo": "home-manager", - "rev": "09587fbbc6a669f7725613e044c2577dc5d43ab5", + "rev": "8e5416b478e465985eec274bc3a018024435c106", "type": "github" }, "original": { @@ -147,11 +147,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1698134075, - "narHash": "sha256-foCD+nuKzfh49bIoiCBur4+Fx1nozo+4C/6k8BYk4sg=", + "lastModified": 1698611440, + "narHash": "sha256-jPjHjrerhYDy3q9+s5EAsuhyhuknNfowY6yt6pjn9pc=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "8efd5d1e283604f75a808a20e6cde0ef313d07d4", + "rev": "0cbe9f69c234a7700596e943bfae7ef27a31b735", "type": "github" }, "original": { @@ -163,11 +163,11 @@ }, "nur": { "locked": { - "lastModified": 1698317227, - "narHash": "sha256-jzSJjjxJr/IPvoPSWB1ZobmlAKku6eeggh9ffGV7Sig=", + "lastModified": 1698745553, + "narHash": "sha256-Fdip7ewCtZTjOu7ATDFUAy3OqrgcyvzDElLXhr4YmmI=", "owner": "nix-community", "repo": "NUR", - "rev": "32a38be31067b0a2f4919fd9e7a49bbefc34d25f", + "rev": "dfbf198236d40e9741db76936088f05107e19013", "type": "github" }, "original": { From 249ee14d39515928a87915b78226033385ec3eb6 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Tue, 31 Oct 2023 12:12:20 +0000 Subject: [PATCH 138/245] overlays: add 'tandoor-recipes-bump-allauth' This should only be temporary until they release a new version which _does_ support the middleware (see [1]). [1]: https://github.com/TandoorRecipes/recipes/pull/2706 --- .../bump-allauth.patch | 38 +++++++++++++++++++ .../tandoor-recipes-bump-allauth/default.nix | 9 +++++ 2 files changed, 47 insertions(+) create mode 100644 overlays/tandoor-recipes-bump-allauth/bump-allauth.patch create mode 100644 overlays/tandoor-recipes-bump-allauth/default.nix diff --git a/overlays/tandoor-recipes-bump-allauth/bump-allauth.patch b/overlays/tandoor-recipes-bump-allauth/bump-allauth.patch new file mode 100644 index 0000000..84dfaee --- /dev/null +++ b/overlays/tandoor-recipes-bump-allauth/bump-allauth.patch @@ -0,0 +1,38 @@ +From 8f66f5c3ca61751a80cc133ff4c59019d6fca406 Mon Sep 17 00:00:00 2001 +From: Bruno BELANYI <bruno@belanyi.fr> +Date: Tue, 31 Oct 2023 12:15:30 +0000 +Subject: [PATCH] Bump django-allauth from 0.54.0 to 0.58.1 + +See the backwards incompatible changes [1]. + +[1]: https://docs.allauth.org/en/latest/release-notes/recent.html#id10 +--- + recipes/settings.py | 1 + + requirements.txt | 2 +- + 2 files changed, 2 insertions(+), 1 deletion(-) + +diff --git a/recipes/settings.py b/recipes/settings.py +index df2c2b1de..b836ea656 100644 +--- a/recipes/settings.py ++++ b/recipes/settings.py +@@ -218,6 +218,7 @@ + 'django.middleware.locale.LocaleMiddleware', + 'django.middleware.clickjacking.XFrameOptionsMiddleware', + 'cookbook.helper.scope_middleware.ScopeMiddleware', ++ 'allauth.account.middleware.AccountMiddleware', + ] + + if DEBUG_TOOLBAR: +diff --git a/requirements.txt b/requirements.txt +index 26d81b471..09ed2381a 100644 +--- a/requirements.txt ++++ b/requirements.txt +@@ -29,7 +29,7 @@ microdata==0.8.0 + Jinja2==3.1.2 + django-webpack-loader==1.8.1 + git+https://github.com/BITSOLVER/django-js-reverse@071e304fd600107bc64bbde6f2491f1fe049ec82 +-django-allauth==0.54.0 ++django-allauth==0.58.1 + recipe-scrapers==14.36.1 + django-scopes==2.0.0 + pytest==7.3.1 diff --git a/overlays/tandoor-recipes-bump-allauth/default.nix b/overlays/tandoor-recipes-bump-allauth/default.nix new file mode 100644 index 0000000..dfbfec9 --- /dev/null +++ b/overlays/tandoor-recipes-bump-allauth/default.nix @@ -0,0 +1,9 @@ +_self: prev: +{ + tandoor-recipes = prev.tandoor-recipes.overrideAttrs (oa: { + patches = (oa.patches or [ ]) ++ [ + # https://github.com/TandoorRecipes/recipes/pull/2706 + ./bump-allauth.patch + ]; + }); +} From 8ad02dd74daad3010b20ab9f2c661906066521d2 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Tue, 31 Oct 2023 14:00:47 +0000 Subject: [PATCH 139/245] hosts: nixos: porthos: system: disable cache We're never going to get a cache hit, since this is the host for that cache. --- hosts/nixos/porthos/default.nix | 1 + hosts/nixos/porthos/system.nix | 12 ++++++++++++ 2 files changed, 13 insertions(+) create mode 100644 hosts/nixos/porthos/system.nix diff --git a/hosts/nixos/porthos/default.nix b/hosts/nixos/porthos/default.nix index 326d1cd..2dea899 100644 --- a/hosts/nixos/porthos/default.nix +++ b/hosts/nixos/porthos/default.nix @@ -9,6 +9,7 @@ ./networking.nix ./secrets ./services.nix + ./system.nix ./users.nix ]; diff --git a/hosts/nixos/porthos/system.nix b/hosts/nixos/porthos/system.nix new file mode 100644 index 0000000..07b9947 --- /dev/null +++ b/hosts/nixos/porthos/system.nix @@ -0,0 +1,12 @@ +# Core system configuration +{ ... }: +{ + my.system = { + nix = { + cache = { + # This server is the one serving the cache, don't try to query it + selfHosted = false; + }; + }; + }; +} From 7f857ab6617f3f0717bcfbdf3137526a10ed40f9 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Tue, 31 Oct 2023 14:56:18 +0000 Subject: [PATCH 140/245] hosts: homes: mousqueton: fix formatting --- hosts/homes/ambroisie@mousqueton/default.nix | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/hosts/homes/ambroisie@mousqueton/default.nix b/hosts/homes/ambroisie@mousqueton/default.nix index 7f9d659..7fcd356 100644 --- a/hosts/homes/ambroisie@mousqueton/default.nix +++ b/hosts/homes/ambroisie@mousqueton/default.nix @@ -17,9 +17,13 @@ services.gpg-agent.enable = lib.mkForce false; - # I use scripts that use the passthrough sequence often on this host - my.home.tmux.enablePassthrough = true; + my.home = { + tmux = { + # I use scripts that use the passthrough sequence often on this host + enablePassthrough = true; - # HTerm uses `xterm-256color` as its `$TERM`, so use that here - my.home.tmux.trueColorTerminals = [ "xterm-256color" ]; + # HTerm uses `xterm-256color` as its `$TERM`, so use that here + trueColorTerminals = [ "xterm-256color" ]; + }; + }; } From 830e7bb8650baa2707a4e58f4a4c3050c8e5404c Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Mon, 6 Nov 2023 20:54:40 +0000 Subject: [PATCH 141/245] modules: services: woodpecker: fix interpolation --- modules/services/woodpecker/server/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/services/woodpecker/server/default.nix b/modules/services/woodpecker/server/default.nix index 152e707..161f76c 100644 --- a/modules/services/woodpecker/server/default.nix +++ b/modules/services/woodpecker/server/default.nix @@ -12,7 +12,7 @@ in WOODPECKER_HOST = "https://woodpecker.${config.networking.domain}"; WOODPECKER_DATABASE_DRIVER = "postgres"; WOODPECKER_DATABASE_DATASOURCE = "postgres:///woodpecker?host=/run/postgresql"; - WOODPECKER_ADMIN = "${cfg.admin}"; + WOODPECKER_ADMIN = cfg.admin; WOODPECKER_SERVER_ADDR = ":${toString cfg.port}"; WOODPECKER_GRPC_ADDR = ":${toString cfg.rpcPort}"; From cc331b73c7f925a5c37a7f7a508ccda13919c9f2 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Mon, 6 Nov 2023 20:55:53 +0000 Subject: [PATCH 142/245] treewide: fix postgres service dependencies Some were missing a `requires` even though they had `after`, and woodpecker was missing it entirely. --- modules/services/drone/server/default.nix | 1 + modules/services/tandoor-recipes/default.nix | 1 + modules/services/woodpecker/server/default.nix | 3 +++ 3 files changed, 5 insertions(+) diff --git a/modules/services/drone/server/default.nix b/modules/services/drone/server/default.nix index 1202010..0f56d29 100644 --- a/modules/services/drone/server/default.nix +++ b/modules/services/drone/server/default.nix @@ -7,6 +7,7 @@ in systemd.services.drone-server = { wantedBy = [ "multi-user.target" ]; after = [ "postgresql.service" ]; + requires = [ "postgresql.service" ]; serviceConfig = { EnvironmentFile = [ cfg.secretFile diff --git a/modules/services/tandoor-recipes/default.nix b/modules/services/tandoor-recipes/default.nix index d78bef3..83177c8 100644 --- a/modules/services/tandoor-recipes/default.nix +++ b/modules/services/tandoor-recipes/default.nix @@ -50,6 +50,7 @@ in systemd.services = { tandoor-recipes = { after = [ "postgresql.service" ]; + requires = [ "postgresql.service" ]; serviceConfig = { EnvironmentFile = cfg.secretKeyFile; diff --git a/modules/services/woodpecker/server/default.nix b/modules/services/woodpecker/server/default.nix index 161f76c..d9f723b 100644 --- a/modules/services/woodpecker/server/default.nix +++ b/modules/services/woodpecker/server/default.nix @@ -24,6 +24,9 @@ in }; systemd.services.woodpecker-server = { + after = [ "postgresql.service" ]; + requires = [ "postgresql.service" ]; + serviceConfig = { # Set username for DB access User = "woodpecker"; From 32ec402ad0b239eade07003821bdd00ac9960fc9 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Tue, 7 Nov 2023 16:51:34 +0000 Subject: [PATCH 143/245] pkgs: remove volantes-cursors It has been packaged upstream. --- pkgs/default.nix | 2 -- pkgs/volantes-cursors/default.nix | 44 ------------------------------- 2 files changed, 46 deletions(-) delete mode 100644 pkgs/volantes-cursors/default.nix diff --git a/pkgs/default.nix b/pkgs/default.nix index 6558026..664b5a4 100644 --- a/pkgs/default.nix +++ b/pkgs/default.nix @@ -36,8 +36,6 @@ pkgs.lib.makeScope pkgs.newScope (pkgs: { vimix-cursors = pkgs.callPackage ./vimix-cursors { }; - volantes-cursors = pkgs.callPackage ./volantes-cursors { }; - wifi-qr = pkgs.callPackage ./wifi-qr { }; zsh-done = pkgs.callPackage ./zsh-done { }; diff --git a/pkgs/volantes-cursors/default.nix b/pkgs/volantes-cursors/default.nix deleted file mode 100644 index b2c7865..0000000 --- a/pkgs/volantes-cursors/default.nix +++ /dev/null @@ -1,44 +0,0 @@ -{ lib, fetchFromGitHub, inkscape, stdenvNoCC, xcursorgen }: -stdenvNoCC.mkDerivation rec { - pname = "volantes-cursors"; - version = "unstable-2020-06-06"; - - src = fetchFromGitHub { - owner = "varlesh"; - repo = pname; - rev = "d1d290ff42cc4fa643716551bd0b02582b90fd2f"; - hash = "sha256-irMN/enoo90nYLfvSOScZoYdvhZKvqqp+grZB2BQD9o="; - }; - - nativeBuildInputs = [ - inkscape - xcursorgen - ]; - - postPatch = '' - patchShebangs . - # The script tries to build in its source directory... - substituteInPlace build.sh --replace \ - ': "''${BUILD_DIR:="$SCRIPT_DIR"/build}"' \ - "BUILD_DIR=$(pwd)/build" - substituteInPlace build.sh --replace \ - ': "''${OUT_DIR:="$SCRIPT_DIR"/dist}"' \ - "OUT_DIR=$(pwd)/dist" - ''; - - buildPhase = '' - HOME="$NIX_BUILD_ROOT" ./build.sh - ''; - - installPhase = '' - make install PREFIX= DESTDIR=$out/ - ''; - - meta = with lib; { - description = "Classic cursor with a flying style"; - homepage = "https://github.com/varlesh/volantes-cursors"; - license = licenses.gpl2Only; - maintainers = with maintainers; [ ambroisie ]; - platforms = platforms.linux; - }; -} From 27564cad42cfd075c5ddc28129e09c14c9e3f6a6 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Sat, 11 Nov 2023 17:56:56 +0000 Subject: [PATCH 144/245] modules: system: printing: move from 'profiles' This isn't really a cross-cutting module, it should be a module rather than a profile. --- hosts/nixos/aramis/default.nix | 1 + hosts/nixos/aramis/profiles.nix | 2 -- hosts/nixos/aramis/system.nix | 10 ++++++++++ modules/system/default.nix | 1 + {profiles => modules/system}/printing/default.nix | 6 +++--- profiles/default.nix | 1 - 6 files changed, 15 insertions(+), 6 deletions(-) create mode 100644 hosts/nixos/aramis/system.nix rename {profiles => modules/system}/printing/default.nix (90%) diff --git a/hosts/nixos/aramis/default.nix b/hosts/nixos/aramis/default.nix index c72fb11..6e0304f 100644 --- a/hosts/nixos/aramis/default.nix +++ b/hosts/nixos/aramis/default.nix @@ -15,6 +15,7 @@ ./secrets ./services.nix ./sound.nix + ./system.nix ]; # Set your time zone. diff --git a/hosts/nixos/aramis/profiles.nix b/hosts/nixos/aramis/profiles.nix index d86da5a..4d2ac7d 100644 --- a/hosts/nixos/aramis/profiles.nix +++ b/hosts/nixos/aramis/profiles.nix @@ -9,8 +9,6 @@ gtk.enable = true; # Laptop specific configuration laptop.enable = true; - # Printers are hell, but so is the unability to print - printing.enable = true; # i3 configuration wm.windowManager = "i3"; # X configuration diff --git a/hosts/nixos/aramis/system.nix b/hosts/nixos/aramis/system.nix new file mode 100644 index 0000000..5e69222 --- /dev/null +++ b/hosts/nixos/aramis/system.nix @@ -0,0 +1,10 @@ +# Core system configuration +{ ... }: +{ + my.system = { + # Printers are hell, but so is the unability to print + printing = { + enable = true; + }; + }; +} diff --git a/modules/system/default.nix b/modules/system/default.nix index 9fe3b57..e7a4dd3 100644 --- a/modules/system/default.nix +++ b/modules/system/default.nix @@ -10,6 +10,7 @@ ./nix ./packages ./podman + ./printing ./users ]; } diff --git a/profiles/printing/default.nix b/modules/system/printing/default.nix similarity index 90% rename from profiles/printing/default.nix rename to modules/system/printing/default.nix index 9965797..a4547ef 100644 --- a/profiles/printing/default.nix +++ b/modules/system/printing/default.nix @@ -1,10 +1,10 @@ { config, lib, pkgs, ... }: let - cfg = config.my.profiles.printing; + cfg = config.my.system.printing; in { - options.my.profiles.printing = with lib; { - enable = mkEnableOption "printing profile"; + options.my.system.printing = with lib; { + enable = mkEnableOption "printing configuration"; papersize = mkOption { type = with types; either str (enum [ diff --git a/profiles/default.nix b/profiles/default.nix index f7914a1..43d5a84 100644 --- a/profiles/default.nix +++ b/profiles/default.nix @@ -6,7 +6,6 @@ ./devices ./gtk ./laptop - ./printing ./wm ./x ]; From b52e56ed08bea277ceaad9d6454ebc4ff33a29e3 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Thu, 9 Nov 2023 13:40:58 +0000 Subject: [PATCH 145/245] modules: home: use 'self'-relative import --- modules/home/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/home/default.nix b/modules/home/default.nix index 1e0e0aa..4849ab2 100644 --- a/modules/home/default.nix +++ b/modules/home/default.nix @@ -14,7 +14,7 @@ in config = lib.mkIf cfg.enable { home-manager = { # Not a fan of out-of-directory imports, but this is a good exception - users.${config.my.user.name} = import ../../home; + users.${config.my.user.name} = import "${inputs.self}/home"; # Nix Flakes compatibility useGlobalPkgs = true; From c856933803d090a882f2cdb449e354cb65646ade Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Thu, 9 Nov 2023 13:37:46 +0000 Subject: [PATCH 146/245] nixos: create 'modules/nixos' folder Let's consolidate all modules under one path, so that NixOS, home-manager, and nix-darwin (if I ever end up using it down the line) would go under the same folder. --- flake/nixos.nix | 2 +- modules/{ => nixos}/default.nix | 0 modules/{ => nixos}/hardware/bluetooth/default.nix | 0 modules/{ => nixos}/hardware/default.nix | 0 modules/{ => nixos}/hardware/ergodox/default.nix | 0 modules/{ => nixos}/hardware/firmware/default.nix | 0 modules/{ => nixos}/hardware/mx-ergo/default.nix | 0 modules/{ => nixos}/hardware/networking/default.nix | 0 modules/{ => nixos}/hardware/sound/default.nix | 0 modules/{ => nixos}/hardware/upower/default.nix | 0 modules/{ => nixos}/home/default.nix | 0 modules/{ => nixos}/programs/default.nix | 0 modules/{ => nixos}/programs/steam/default.nix | 0 modules/{ => nixos}/secrets/default.nix | 0 modules/{ => nixos}/secrets/secrets.nix | 0 .../secrets/users/ambroisie/hashed-password.age | 0 .../secrets/users/root/hashed-password.age | Bin modules/{ => nixos}/services/adblock/default.nix | 0 modules/{ => nixos}/services/backup/default.nix | 0 modules/{ => nixos}/services/blog/default.nix | 0 .../{ => nixos}/services/calibre-web/default.nix | 0 modules/{ => nixos}/services/default.nix | 0 modules/{ => nixos}/services/drone/default.nix | 0 .../services/drone/runner-docker/default.nix | 0 .../services/drone/runner-exec/default.nix | 0 .../{ => nixos}/services/drone/server/default.nix | 0 modules/{ => nixos}/services/fail2ban/default.nix | 0 modules/{ => nixos}/services/flood/default.nix | 0 modules/{ => nixos}/services/gitea/default.nix | 0 modules/{ => nixos}/services/grocy/default.nix | 0 modules/{ => nixos}/services/indexers/default.nix | 0 modules/{ => nixos}/services/jellyfin/default.nix | 0 modules/{ => nixos}/services/lohr/default.nix | 0 modules/{ => nixos}/services/matrix/default.nix | 0 modules/{ => nixos}/services/miniflux/default.nix | 0 modules/{ => nixos}/services/monitoring/default.nix | 0 modules/{ => nixos}/services/navidrome/default.nix | 0 modules/{ => nixos}/services/nextcloud/default.nix | 0 modules/{ => nixos}/services/nginx/default.nix | 0 modules/{ => nixos}/services/nginx/sso/default.nix | 0 modules/{ => nixos}/services/nix-cache/default.nix | 0 modules/{ => nixos}/services/paperless/default.nix | 0 modules/{ => nixos}/services/pirate/default.nix | 0 modules/{ => nixos}/services/podgrab/default.nix | 0 .../services/postgresql-backup/default.nix | 0 modules/{ => nixos}/services/postgresql/default.nix | 0 modules/{ => nixos}/services/quassel/default.nix | 0 modules/{ => nixos}/services/rss-bridge/default.nix | 0 modules/{ => nixos}/services/sabnzbd/default.nix | 0 modules/{ => nixos}/services/ssh-server/default.nix | 0 .../services/tandoor-recipes/default.nix | 0 modules/{ => nixos}/services/tlp/default.nix | 0 .../{ => nixos}/services/transmission/default.nix | 0 modules/{ => nixos}/services/vikunja/default.nix | 0 modules/{ => nixos}/services/wireguard/default.nix | 0 .../services/wireguard/keys/milady/private-key.age | 0 .../wireguard/keys/richelieu/private-key.age | 0 .../{ => nixos}/services/wireguard/keys/secrets.nix | 0 .../services/woodpecker/agent-docker/default.nix | 0 .../services/woodpecker/agent-exec/default.nix | 0 modules/{ => nixos}/services/woodpecker/default.nix | 0 .../services/woodpecker/server/default.nix | 0 modules/{ => nixos}/system/boot/default.nix | 0 modules/{ => nixos}/system/default.nix | 0 modules/{ => nixos}/system/docker/default.nix | 0 .../{ => nixos}/system/documentation/default.nix | 0 modules/{ => nixos}/system/language/default.nix | 0 modules/{ => nixos}/system/nix/default.nix | 0 modules/{ => nixos}/system/packages/default.nix | 0 modules/{ => nixos}/system/podman/default.nix | 0 modules/{ => nixos}/system/printing/default.nix | 0 modules/{ => nixos}/system/users/default.nix | 0 modules/{ => nixos}/system/users/ssh/aramis.pub | 0 modules/{ => nixos}/system/users/ssh/shared.pub | 0 74 files changed, 1 insertion(+), 1 deletion(-) rename modules/{ => nixos}/default.nix (100%) rename modules/{ => nixos}/hardware/bluetooth/default.nix (100%) rename modules/{ => nixos}/hardware/default.nix (100%) rename modules/{ => nixos}/hardware/ergodox/default.nix (100%) rename modules/{ => nixos}/hardware/firmware/default.nix (100%) rename modules/{ => nixos}/hardware/mx-ergo/default.nix (100%) rename modules/{ => nixos}/hardware/networking/default.nix (100%) rename modules/{ => nixos}/hardware/sound/default.nix (100%) rename modules/{ => nixos}/hardware/upower/default.nix (100%) rename modules/{ => nixos}/home/default.nix (100%) rename modules/{ => nixos}/programs/default.nix (100%) rename modules/{ => nixos}/programs/steam/default.nix (100%) rename modules/{ => nixos}/secrets/default.nix (100%) rename modules/{ => nixos}/secrets/secrets.nix (100%) rename modules/{ => nixos}/secrets/users/ambroisie/hashed-password.age (100%) rename modules/{ => nixos}/secrets/users/root/hashed-password.age (100%) rename modules/{ => nixos}/services/adblock/default.nix (100%) rename modules/{ => nixos}/services/backup/default.nix (100%) rename modules/{ => nixos}/services/blog/default.nix (100%) rename modules/{ => nixos}/services/calibre-web/default.nix (100%) rename modules/{ => nixos}/services/default.nix (100%) rename modules/{ => nixos}/services/drone/default.nix (100%) rename modules/{ => nixos}/services/drone/runner-docker/default.nix (100%) rename modules/{ => nixos}/services/drone/runner-exec/default.nix (100%) rename modules/{ => nixos}/services/drone/server/default.nix (100%) rename modules/{ => nixos}/services/fail2ban/default.nix (100%) rename modules/{ => nixos}/services/flood/default.nix (100%) rename modules/{ => nixos}/services/gitea/default.nix (100%) rename modules/{ => nixos}/services/grocy/default.nix (100%) rename modules/{ => nixos}/services/indexers/default.nix (100%) rename modules/{ => nixos}/services/jellyfin/default.nix (100%) rename modules/{ => nixos}/services/lohr/default.nix (100%) rename modules/{ => nixos}/services/matrix/default.nix (100%) rename modules/{ => nixos}/services/miniflux/default.nix (100%) rename modules/{ => nixos}/services/monitoring/default.nix (100%) rename modules/{ => nixos}/services/navidrome/default.nix (100%) rename modules/{ => nixos}/services/nextcloud/default.nix (100%) rename modules/{ => nixos}/services/nginx/default.nix (100%) rename modules/{ => nixos}/services/nginx/sso/default.nix (100%) rename modules/{ => nixos}/services/nix-cache/default.nix (100%) rename modules/{ => nixos}/services/paperless/default.nix (100%) rename modules/{ => nixos}/services/pirate/default.nix (100%) rename modules/{ => nixos}/services/podgrab/default.nix (100%) rename modules/{ => nixos}/services/postgresql-backup/default.nix (100%) rename modules/{ => nixos}/services/postgresql/default.nix (100%) rename modules/{ => nixos}/services/quassel/default.nix (100%) rename modules/{ => nixos}/services/rss-bridge/default.nix (100%) rename modules/{ => nixos}/services/sabnzbd/default.nix (100%) rename modules/{ => nixos}/services/ssh-server/default.nix (100%) rename modules/{ => nixos}/services/tandoor-recipes/default.nix (100%) rename modules/{ => nixos}/services/tlp/default.nix (100%) rename modules/{ => nixos}/services/transmission/default.nix (100%) rename modules/{ => nixos}/services/vikunja/default.nix (100%) rename modules/{ => nixos}/services/wireguard/default.nix (100%) rename modules/{ => nixos}/services/wireguard/keys/milady/private-key.age (100%) rename modules/{ => nixos}/services/wireguard/keys/richelieu/private-key.age (100%) rename modules/{ => nixos}/services/wireguard/keys/secrets.nix (100%) rename modules/{ => nixos}/services/woodpecker/agent-docker/default.nix (100%) rename modules/{ => nixos}/services/woodpecker/agent-exec/default.nix (100%) rename modules/{ => nixos}/services/woodpecker/default.nix (100%) rename modules/{ => nixos}/services/woodpecker/server/default.nix (100%) rename modules/{ => nixos}/system/boot/default.nix (100%) rename modules/{ => nixos}/system/default.nix (100%) rename modules/{ => nixos}/system/docker/default.nix (100%) rename modules/{ => nixos}/system/documentation/default.nix (100%) rename modules/{ => nixos}/system/language/default.nix (100%) rename modules/{ => nixos}/system/nix/default.nix (100%) rename modules/{ => nixos}/system/packages/default.nix (100%) rename modules/{ => nixos}/system/podman/default.nix (100%) rename modules/{ => nixos}/system/printing/default.nix (100%) rename modules/{ => nixos}/system/users/default.nix (100%) rename modules/{ => nixos}/system/users/ssh/aramis.pub (100%) rename modules/{ => nixos}/system/users/ssh/shared.pub (100%) diff --git a/flake/nixos.nix b/flake/nixos.nix index 9eb6388..541e658 100644 --- a/flake/nixos.nix +++ b/flake/nixos.nix @@ -13,7 +13,7 @@ let ]; } # Include generic settings - "${self}/modules" + "${self}/modules/nixos" # Include bundles of settings "${self}/profiles" ]; diff --git a/modules/default.nix b/modules/nixos/default.nix similarity index 100% rename from modules/default.nix rename to modules/nixos/default.nix diff --git a/modules/hardware/bluetooth/default.nix b/modules/nixos/hardware/bluetooth/default.nix similarity index 100% rename from modules/hardware/bluetooth/default.nix rename to modules/nixos/hardware/bluetooth/default.nix diff --git a/modules/hardware/default.nix b/modules/nixos/hardware/default.nix similarity index 100% rename from modules/hardware/default.nix rename to modules/nixos/hardware/default.nix diff --git a/modules/hardware/ergodox/default.nix b/modules/nixos/hardware/ergodox/default.nix similarity index 100% rename from modules/hardware/ergodox/default.nix rename to modules/nixos/hardware/ergodox/default.nix diff --git a/modules/hardware/firmware/default.nix b/modules/nixos/hardware/firmware/default.nix similarity index 100% rename from modules/hardware/firmware/default.nix rename to modules/nixos/hardware/firmware/default.nix diff --git a/modules/hardware/mx-ergo/default.nix b/modules/nixos/hardware/mx-ergo/default.nix similarity index 100% rename from modules/hardware/mx-ergo/default.nix rename to modules/nixos/hardware/mx-ergo/default.nix diff --git a/modules/hardware/networking/default.nix b/modules/nixos/hardware/networking/default.nix similarity index 100% rename from modules/hardware/networking/default.nix rename to modules/nixos/hardware/networking/default.nix diff --git a/modules/hardware/sound/default.nix b/modules/nixos/hardware/sound/default.nix similarity index 100% rename from modules/hardware/sound/default.nix rename to modules/nixos/hardware/sound/default.nix diff --git a/modules/hardware/upower/default.nix b/modules/nixos/hardware/upower/default.nix similarity index 100% rename from modules/hardware/upower/default.nix rename to modules/nixos/hardware/upower/default.nix diff --git a/modules/home/default.nix b/modules/nixos/home/default.nix similarity index 100% rename from modules/home/default.nix rename to modules/nixos/home/default.nix diff --git a/modules/programs/default.nix b/modules/nixos/programs/default.nix similarity index 100% rename from modules/programs/default.nix rename to modules/nixos/programs/default.nix diff --git a/modules/programs/steam/default.nix b/modules/nixos/programs/steam/default.nix similarity index 100% rename from modules/programs/steam/default.nix rename to modules/nixos/programs/steam/default.nix diff --git a/modules/secrets/default.nix b/modules/nixos/secrets/default.nix similarity index 100% rename from modules/secrets/default.nix rename to modules/nixos/secrets/default.nix diff --git a/modules/secrets/secrets.nix b/modules/nixos/secrets/secrets.nix similarity index 100% rename from modules/secrets/secrets.nix rename to modules/nixos/secrets/secrets.nix diff --git a/modules/secrets/users/ambroisie/hashed-password.age b/modules/nixos/secrets/users/ambroisie/hashed-password.age similarity index 100% rename from modules/secrets/users/ambroisie/hashed-password.age rename to modules/nixos/secrets/users/ambroisie/hashed-password.age diff --git a/modules/secrets/users/root/hashed-password.age b/modules/nixos/secrets/users/root/hashed-password.age similarity index 100% rename from modules/secrets/users/root/hashed-password.age rename to modules/nixos/secrets/users/root/hashed-password.age diff --git a/modules/services/adblock/default.nix b/modules/nixos/services/adblock/default.nix similarity index 100% rename from modules/services/adblock/default.nix rename to modules/nixos/services/adblock/default.nix diff --git a/modules/services/backup/default.nix b/modules/nixos/services/backup/default.nix similarity index 100% rename from modules/services/backup/default.nix rename to modules/nixos/services/backup/default.nix diff --git a/modules/services/blog/default.nix b/modules/nixos/services/blog/default.nix similarity index 100% rename from modules/services/blog/default.nix rename to modules/nixos/services/blog/default.nix diff --git a/modules/services/calibre-web/default.nix b/modules/nixos/services/calibre-web/default.nix similarity index 100% rename from modules/services/calibre-web/default.nix rename to modules/nixos/services/calibre-web/default.nix diff --git a/modules/services/default.nix b/modules/nixos/services/default.nix similarity index 100% rename from modules/services/default.nix rename to modules/nixos/services/default.nix diff --git a/modules/services/drone/default.nix b/modules/nixos/services/drone/default.nix similarity index 100% rename from modules/services/drone/default.nix rename to modules/nixos/services/drone/default.nix diff --git a/modules/services/drone/runner-docker/default.nix b/modules/nixos/services/drone/runner-docker/default.nix similarity index 100% rename from modules/services/drone/runner-docker/default.nix rename to modules/nixos/services/drone/runner-docker/default.nix diff --git a/modules/services/drone/runner-exec/default.nix b/modules/nixos/services/drone/runner-exec/default.nix similarity index 100% rename from modules/services/drone/runner-exec/default.nix rename to modules/nixos/services/drone/runner-exec/default.nix diff --git a/modules/services/drone/server/default.nix b/modules/nixos/services/drone/server/default.nix similarity index 100% rename from modules/services/drone/server/default.nix rename to modules/nixos/services/drone/server/default.nix diff --git a/modules/services/fail2ban/default.nix b/modules/nixos/services/fail2ban/default.nix similarity index 100% rename from modules/services/fail2ban/default.nix rename to modules/nixos/services/fail2ban/default.nix diff --git a/modules/services/flood/default.nix b/modules/nixos/services/flood/default.nix similarity index 100% rename from modules/services/flood/default.nix rename to modules/nixos/services/flood/default.nix diff --git a/modules/services/gitea/default.nix b/modules/nixos/services/gitea/default.nix similarity index 100% rename from modules/services/gitea/default.nix rename to modules/nixos/services/gitea/default.nix diff --git a/modules/services/grocy/default.nix b/modules/nixos/services/grocy/default.nix similarity index 100% rename from modules/services/grocy/default.nix rename to modules/nixos/services/grocy/default.nix diff --git a/modules/services/indexers/default.nix b/modules/nixos/services/indexers/default.nix similarity index 100% rename from modules/services/indexers/default.nix rename to modules/nixos/services/indexers/default.nix diff --git a/modules/services/jellyfin/default.nix b/modules/nixos/services/jellyfin/default.nix similarity index 100% rename from modules/services/jellyfin/default.nix rename to modules/nixos/services/jellyfin/default.nix diff --git a/modules/services/lohr/default.nix b/modules/nixos/services/lohr/default.nix similarity index 100% rename from modules/services/lohr/default.nix rename to modules/nixos/services/lohr/default.nix diff --git a/modules/services/matrix/default.nix b/modules/nixos/services/matrix/default.nix similarity index 100% rename from modules/services/matrix/default.nix rename to modules/nixos/services/matrix/default.nix diff --git a/modules/services/miniflux/default.nix b/modules/nixos/services/miniflux/default.nix similarity index 100% rename from modules/services/miniflux/default.nix rename to modules/nixos/services/miniflux/default.nix diff --git a/modules/services/monitoring/default.nix b/modules/nixos/services/monitoring/default.nix similarity index 100% rename from modules/services/monitoring/default.nix rename to modules/nixos/services/monitoring/default.nix diff --git a/modules/services/navidrome/default.nix b/modules/nixos/services/navidrome/default.nix similarity index 100% rename from modules/services/navidrome/default.nix rename to modules/nixos/services/navidrome/default.nix diff --git a/modules/services/nextcloud/default.nix b/modules/nixos/services/nextcloud/default.nix similarity index 100% rename from modules/services/nextcloud/default.nix rename to modules/nixos/services/nextcloud/default.nix diff --git a/modules/services/nginx/default.nix b/modules/nixos/services/nginx/default.nix similarity index 100% rename from modules/services/nginx/default.nix rename to modules/nixos/services/nginx/default.nix diff --git a/modules/services/nginx/sso/default.nix b/modules/nixos/services/nginx/sso/default.nix similarity index 100% rename from modules/services/nginx/sso/default.nix rename to modules/nixos/services/nginx/sso/default.nix diff --git a/modules/services/nix-cache/default.nix b/modules/nixos/services/nix-cache/default.nix similarity index 100% rename from modules/services/nix-cache/default.nix rename to modules/nixos/services/nix-cache/default.nix diff --git a/modules/services/paperless/default.nix b/modules/nixos/services/paperless/default.nix similarity index 100% rename from modules/services/paperless/default.nix rename to modules/nixos/services/paperless/default.nix diff --git a/modules/services/pirate/default.nix b/modules/nixos/services/pirate/default.nix similarity index 100% rename from modules/services/pirate/default.nix rename to modules/nixos/services/pirate/default.nix diff --git a/modules/services/podgrab/default.nix b/modules/nixos/services/podgrab/default.nix similarity index 100% rename from modules/services/podgrab/default.nix rename to modules/nixos/services/podgrab/default.nix diff --git a/modules/services/postgresql-backup/default.nix b/modules/nixos/services/postgresql-backup/default.nix similarity index 100% rename from modules/services/postgresql-backup/default.nix rename to modules/nixos/services/postgresql-backup/default.nix diff --git a/modules/services/postgresql/default.nix b/modules/nixos/services/postgresql/default.nix similarity index 100% rename from modules/services/postgresql/default.nix rename to modules/nixos/services/postgresql/default.nix diff --git a/modules/services/quassel/default.nix b/modules/nixos/services/quassel/default.nix similarity index 100% rename from modules/services/quassel/default.nix rename to modules/nixos/services/quassel/default.nix diff --git a/modules/services/rss-bridge/default.nix b/modules/nixos/services/rss-bridge/default.nix similarity index 100% rename from modules/services/rss-bridge/default.nix rename to modules/nixos/services/rss-bridge/default.nix diff --git a/modules/services/sabnzbd/default.nix b/modules/nixos/services/sabnzbd/default.nix similarity index 100% rename from modules/services/sabnzbd/default.nix rename to modules/nixos/services/sabnzbd/default.nix diff --git a/modules/services/ssh-server/default.nix b/modules/nixos/services/ssh-server/default.nix similarity index 100% rename from modules/services/ssh-server/default.nix rename to modules/nixos/services/ssh-server/default.nix diff --git a/modules/services/tandoor-recipes/default.nix b/modules/nixos/services/tandoor-recipes/default.nix similarity index 100% rename from modules/services/tandoor-recipes/default.nix rename to modules/nixos/services/tandoor-recipes/default.nix diff --git a/modules/services/tlp/default.nix b/modules/nixos/services/tlp/default.nix similarity index 100% rename from modules/services/tlp/default.nix rename to modules/nixos/services/tlp/default.nix diff --git a/modules/services/transmission/default.nix b/modules/nixos/services/transmission/default.nix similarity index 100% rename from modules/services/transmission/default.nix rename to modules/nixos/services/transmission/default.nix diff --git a/modules/services/vikunja/default.nix b/modules/nixos/services/vikunja/default.nix similarity index 100% rename from modules/services/vikunja/default.nix rename to modules/nixos/services/vikunja/default.nix diff --git a/modules/services/wireguard/default.nix b/modules/nixos/services/wireguard/default.nix similarity index 100% rename from modules/services/wireguard/default.nix rename to modules/nixos/services/wireguard/default.nix diff --git a/modules/services/wireguard/keys/milady/private-key.age b/modules/nixos/services/wireguard/keys/milady/private-key.age similarity index 100% rename from modules/services/wireguard/keys/milady/private-key.age rename to modules/nixos/services/wireguard/keys/milady/private-key.age diff --git a/modules/services/wireguard/keys/richelieu/private-key.age b/modules/nixos/services/wireguard/keys/richelieu/private-key.age similarity index 100% rename from modules/services/wireguard/keys/richelieu/private-key.age rename to modules/nixos/services/wireguard/keys/richelieu/private-key.age diff --git a/modules/services/wireguard/keys/secrets.nix b/modules/nixos/services/wireguard/keys/secrets.nix similarity index 100% rename from modules/services/wireguard/keys/secrets.nix rename to modules/nixos/services/wireguard/keys/secrets.nix diff --git a/modules/services/woodpecker/agent-docker/default.nix b/modules/nixos/services/woodpecker/agent-docker/default.nix similarity index 100% rename from modules/services/woodpecker/agent-docker/default.nix rename to modules/nixos/services/woodpecker/agent-docker/default.nix diff --git a/modules/services/woodpecker/agent-exec/default.nix b/modules/nixos/services/woodpecker/agent-exec/default.nix similarity index 100% rename from modules/services/woodpecker/agent-exec/default.nix rename to modules/nixos/services/woodpecker/agent-exec/default.nix diff --git a/modules/services/woodpecker/default.nix b/modules/nixos/services/woodpecker/default.nix similarity index 100% rename from modules/services/woodpecker/default.nix rename to modules/nixos/services/woodpecker/default.nix diff --git a/modules/services/woodpecker/server/default.nix b/modules/nixos/services/woodpecker/server/default.nix similarity index 100% rename from modules/services/woodpecker/server/default.nix rename to modules/nixos/services/woodpecker/server/default.nix diff --git a/modules/system/boot/default.nix b/modules/nixos/system/boot/default.nix similarity index 100% rename from modules/system/boot/default.nix rename to modules/nixos/system/boot/default.nix diff --git a/modules/system/default.nix b/modules/nixos/system/default.nix similarity index 100% rename from modules/system/default.nix rename to modules/nixos/system/default.nix diff --git a/modules/system/docker/default.nix b/modules/nixos/system/docker/default.nix similarity index 100% rename from modules/system/docker/default.nix rename to modules/nixos/system/docker/default.nix diff --git a/modules/system/documentation/default.nix b/modules/nixos/system/documentation/default.nix similarity index 100% rename from modules/system/documentation/default.nix rename to modules/nixos/system/documentation/default.nix diff --git a/modules/system/language/default.nix b/modules/nixos/system/language/default.nix similarity index 100% rename from modules/system/language/default.nix rename to modules/nixos/system/language/default.nix diff --git a/modules/system/nix/default.nix b/modules/nixos/system/nix/default.nix similarity index 100% rename from modules/system/nix/default.nix rename to modules/nixos/system/nix/default.nix diff --git a/modules/system/packages/default.nix b/modules/nixos/system/packages/default.nix similarity index 100% rename from modules/system/packages/default.nix rename to modules/nixos/system/packages/default.nix diff --git a/modules/system/podman/default.nix b/modules/nixos/system/podman/default.nix similarity index 100% rename from modules/system/podman/default.nix rename to modules/nixos/system/podman/default.nix diff --git a/modules/system/printing/default.nix b/modules/nixos/system/printing/default.nix similarity index 100% rename from modules/system/printing/default.nix rename to modules/nixos/system/printing/default.nix diff --git a/modules/system/users/default.nix b/modules/nixos/system/users/default.nix similarity index 100% rename from modules/system/users/default.nix rename to modules/nixos/system/users/default.nix diff --git a/modules/system/users/ssh/aramis.pub b/modules/nixos/system/users/ssh/aramis.pub similarity index 100% rename from modules/system/users/ssh/aramis.pub rename to modules/nixos/system/users/ssh/aramis.pub diff --git a/modules/system/users/ssh/shared.pub b/modules/nixos/system/users/ssh/shared.pub similarity index 100% rename from modules/system/users/ssh/shared.pub rename to modules/nixos/system/users/ssh/shared.pub From 65a8f7c4813dd442da29639766e6d6e8ccff5a1d Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Thu, 9 Nov 2023 13:43:55 +0000 Subject: [PATCH 147/245] home: create 'modules/home' folder Consolidating all modules under the same path, to clear out the top-level directory. --- flake/home-manager.nix | 2 +- {home => modules/home}/aliases/default.nix | 0 {home => modules/home}/atuin/default.nix | 0 {home => modules/home}/bat/default.nix | 0 {home => modules/home}/bitwarden/default.nix | 0 {home => modules/home}/bluetooth/default.nix | 0 {home => modules/home}/calibre/default.nix | 0 {home => modules/home}/comma/default.nix | 0 {home => modules/home}/default.nix | 0 {home => modules/home}/dircolors/default.nix | 0 {home => modules/home}/direnv/default.nix | 0 {home => modules/home}/direnv/lib/nix.sh | 0 {home => modules/home}/direnv/lib/postgres.sh | 0 {home => modules/home}/direnv/lib/python.sh | 0 {home => modules/home}/discord/default.nix | 0 {home => modules/home}/documentation/default.nix | 0 {home => modules/home}/feh/default.nix | 0 {home => modules/home}/firefox/default.nix | 0 .../home}/firefox/tridactyl/default.nix | 0 .../home}/firefox/tridactyl/tridactylrc | 0 {home => modules/home}/flameshot/default.nix | 0 {home => modules/home}/fzf/default.nix | 0 {home => modules/home}/gammastep/default.nix | 0 {home => modules/home}/gdb/default.nix | 0 {home => modules/home}/gdb/gdbinit | 0 {home => modules/home}/git/default.ignore | 0 {home => modules/home}/git/default.nix | 0 {home => modules/home}/gpg/default.nix | 0 {home => modules/home}/gtk/default.nix | 0 {home => modules/home}/htop/default.nix | 0 {home => modules/home}/jq/default.nix | 0 {home => modules/home}/mail/accounts/default.nix | 0 {home => modules/home}/mail/default.nix | 0 {home => modules/home}/mail/himalaya/default.nix | 0 {home => modules/home}/mail/msmtp/default.nix | 0 {home => modules/home}/mpv/default.nix | 0 {home => modules/home}/nix-index/default.nix | 0 {home => modules/home}/nix/default.nix | 0 {home => modules/home}/nixpkgs/default.nix | 0 {home => modules/home}/nm-applet/default.nix | 0 {home => modules/home}/packages/default.nix | 0 {home => modules/home}/pager/default.nix | 0 {home => modules/home}/power-alert/default.nix | 0 {home => modules/home}/secrets/default.nix | 0 {home => modules/home}/secrets/github/token.age | Bin {home => modules/home}/secrets/secrets.nix | 0 {home => modules/home}/ssh/default.nix | 0 .../home}/terminal/alacritty/default.nix | 0 {home => modules/home}/terminal/default.nix | 0 {home => modules/home}/terminal/termite/default.nix | 0 {home => modules/home}/tmux/default.nix | 0 {home => modules/home}/udiskie/default.nix | 0 .../home}/vim/after/ftplugin/beancount.vim | 0 {home => modules/home}/vim/after/ftplugin/cmake.vim | 0 .../home}/vim/after/ftplugin/fugitive.vim | 0 .../home}/vim/after/ftplugin/gitcommit.vim | 0 .../home}/vim/after/ftplugin/gitconfig.vim | 0 .../home}/vim/after/ftplugin/haskell.vim | 0 {home => modules/home}/vim/after/ftplugin/help.vim | 0 {home => modules/home}/vim/after/ftplugin/mail.vim | 0 {home => modules/home}/vim/after/ftplugin/make.vim | 0 .../home}/vim/after/ftplugin/markdown.vim | 0 {home => modules/home}/vim/after/ftplugin/netrw.vim | 0 {home => modules/home}/vim/after/ftplugin/nix.vim | 0 .../home}/vim/after/ftplugin/python.vim | 0 {home => modules/home}/vim/after/ftplugin/rust.vim | 0 {home => modules/home}/vim/after/ftplugin/tex.vim | 0 {home => modules/home}/vim/after/ftplugin/tiger.vim | 0 {home => modules/home}/vim/after/ftplugin/yaml.vim | 0 .../home}/vim/after/plugin/mappings/commentary.lua | 0 .../home}/vim/after/plugin/mappings/misc.lua | 0 .../home}/vim/after/plugin/mappings/telescope.lua | 0 .../plugin/mappings/tree-sitter-textobjects.lua | 0 .../home}/vim/after/plugin/mappings/unimpaired.lua | 0 {home => modules/home}/vim/autoload/ftplugined.vim | 0 {home => modules/home}/vim/default.nix | 0 {home => modules/home}/vim/ftdetect/automake.lua | 0 {home => modules/home}/vim/ftdetect/direnv.lua | 0 {home => modules/home}/vim/ftdetect/kbuild.lua | 0 {home => modules/home}/vim/ftdetect/kconfig.lua | 0 {home => modules/home}/vim/ftdetect/tiger.lua | 0 {home => modules/home}/vim/ftdetect/tikz.lua | 0 {home => modules/home}/vim/init.vim | 0 {home => modules/home}/vim/lua/ambroisie/lsp.lua | 0 {home => modules/home}/vim/lua/ambroisie/utils.lua | 0 {home => modules/home}/vim/plugin/abbreviations.lua | 0 {home => modules/home}/vim/plugin/numbertoggle.lua | 0 .../home}/vim/plugin/settings/completion.lua | 0 .../home}/vim/plugin/settings/dressing.lua | 0 .../home}/vim/plugin/settings/fastfold.lua | 0 .../home}/vim/plugin/settings/formatting.lua | 0 {home => modules/home}/vim/plugin/settings/git.lua | 0 .../home}/vim/plugin/settings/lsp-lines.lua | 0 .../home}/vim/plugin/settings/lspconfig.lua | 0 .../home}/vim/plugin/settings/lualine.lua | 0 .../home}/vim/plugin/settings/luasnip.lua | 0 .../home}/vim/plugin/settings/null-ls.lua | 0 {home => modules/home}/vim/plugin/settings/ssh.lua | 0 .../home}/vim/plugin/settings/surround.lua | 0 .../home}/vim/plugin/settings/telescope.lua | 0 .../home}/vim/plugin/settings/tree-sitter.lua | 0 .../home}/vim/plugin/settings/which-key.lua | 0 {home => modules/home}/vim/plugin/signtoggle.lua | 0 {home => modules/home}/wm/cursor/default.nix | 0 {home => modules/home}/wm/default.nix | 0 {home => modules/home}/wm/dunst/default.nix | 0 {home => modules/home}/wm/i3/default.nix | 0 {home => modules/home}/wm/i3bar/default.nix | 0 {home => modules/home}/wm/rofi/default.nix | 0 {home => modules/home}/wm/screen-lock/default.nix | 0 {home => modules/home}/x/default.nix | 0 {home => modules/home}/x/keyboard/default.nix | 0 {home => modules/home}/xdg/default.nix | 0 {home => modules/home}/zathura/default.nix | 0 {home => modules/home}/zsh/completion-styles.zsh | 0 {home => modules/home}/zsh/default.nix | 0 {home => modules/home}/zsh/extra-mappings.zsh | 0 {home => modules/home}/zsh/options.zsh | 0 modules/nixos/home/default.nix | 2 +- 119 files changed, 2 insertions(+), 2 deletions(-) rename {home => modules/home}/aliases/default.nix (100%) rename {home => modules/home}/atuin/default.nix (100%) rename {home => modules/home}/bat/default.nix (100%) rename {home => modules/home}/bitwarden/default.nix (100%) rename {home => modules/home}/bluetooth/default.nix (100%) rename {home => modules/home}/calibre/default.nix (100%) rename {home => modules/home}/comma/default.nix (100%) rename {home => modules/home}/default.nix (100%) rename {home => modules/home}/dircolors/default.nix (100%) rename {home => modules/home}/direnv/default.nix (100%) rename {home => modules/home}/direnv/lib/nix.sh (100%) rename {home => modules/home}/direnv/lib/postgres.sh (100%) rename {home => modules/home}/direnv/lib/python.sh (100%) rename {home => modules/home}/discord/default.nix (100%) rename {home => modules/home}/documentation/default.nix (100%) rename {home => modules/home}/feh/default.nix (100%) rename {home => modules/home}/firefox/default.nix (100%) rename {home => modules/home}/firefox/tridactyl/default.nix (100%) rename {home => modules/home}/firefox/tridactyl/tridactylrc (100%) rename {home => modules/home}/flameshot/default.nix (100%) rename {home => modules/home}/fzf/default.nix (100%) rename {home => modules/home}/gammastep/default.nix (100%) rename {home => modules/home}/gdb/default.nix (100%) rename {home => modules/home}/gdb/gdbinit (100%) rename {home => modules/home}/git/default.ignore (100%) rename {home => modules/home}/git/default.nix (100%) rename {home => modules/home}/gpg/default.nix (100%) rename {home => modules/home}/gtk/default.nix (100%) rename {home => modules/home}/htop/default.nix (100%) rename {home => modules/home}/jq/default.nix (100%) rename {home => modules/home}/mail/accounts/default.nix (100%) rename {home => modules/home}/mail/default.nix (100%) rename {home => modules/home}/mail/himalaya/default.nix (100%) rename {home => modules/home}/mail/msmtp/default.nix (100%) rename {home => modules/home}/mpv/default.nix (100%) rename {home => modules/home}/nix-index/default.nix (100%) rename {home => modules/home}/nix/default.nix (100%) rename {home => modules/home}/nixpkgs/default.nix (100%) rename {home => modules/home}/nm-applet/default.nix (100%) rename {home => modules/home}/packages/default.nix (100%) rename {home => modules/home}/pager/default.nix (100%) rename {home => modules/home}/power-alert/default.nix (100%) rename {home => modules/home}/secrets/default.nix (100%) rename {home => modules/home}/secrets/github/token.age (100%) rename {home => modules/home}/secrets/secrets.nix (100%) rename {home => modules/home}/ssh/default.nix (100%) rename {home => modules/home}/terminal/alacritty/default.nix (100%) rename {home => modules/home}/terminal/default.nix (100%) rename {home => modules/home}/terminal/termite/default.nix (100%) rename {home => modules/home}/tmux/default.nix (100%) rename {home => modules/home}/udiskie/default.nix (100%) rename {home => modules/home}/vim/after/ftplugin/beancount.vim (100%) rename {home => modules/home}/vim/after/ftplugin/cmake.vim (100%) rename {home => modules/home}/vim/after/ftplugin/fugitive.vim (100%) rename {home => modules/home}/vim/after/ftplugin/gitcommit.vim (100%) rename {home => modules/home}/vim/after/ftplugin/gitconfig.vim (100%) rename {home => modules/home}/vim/after/ftplugin/haskell.vim (100%) rename {home => modules/home}/vim/after/ftplugin/help.vim (100%) rename {home => modules/home}/vim/after/ftplugin/mail.vim (100%) rename {home => modules/home}/vim/after/ftplugin/make.vim (100%) rename {home => modules/home}/vim/after/ftplugin/markdown.vim (100%) rename {home => modules/home}/vim/after/ftplugin/netrw.vim (100%) rename {home => modules/home}/vim/after/ftplugin/nix.vim (100%) rename {home => modules/home}/vim/after/ftplugin/python.vim (100%) rename {home => modules/home}/vim/after/ftplugin/rust.vim (100%) rename {home => modules/home}/vim/after/ftplugin/tex.vim (100%) rename {home => modules/home}/vim/after/ftplugin/tiger.vim (100%) rename {home => modules/home}/vim/after/ftplugin/yaml.vim (100%) rename {home => modules/home}/vim/after/plugin/mappings/commentary.lua (100%) rename {home => modules/home}/vim/after/plugin/mappings/misc.lua (100%) rename {home => modules/home}/vim/after/plugin/mappings/telescope.lua (100%) rename {home => modules/home}/vim/after/plugin/mappings/tree-sitter-textobjects.lua (100%) rename {home => modules/home}/vim/after/plugin/mappings/unimpaired.lua (100%) rename {home => modules/home}/vim/autoload/ftplugined.vim (100%) rename {home => modules/home}/vim/default.nix (100%) rename {home => modules/home}/vim/ftdetect/automake.lua (100%) rename {home => modules/home}/vim/ftdetect/direnv.lua (100%) rename {home => modules/home}/vim/ftdetect/kbuild.lua (100%) rename {home => modules/home}/vim/ftdetect/kconfig.lua (100%) rename {home => modules/home}/vim/ftdetect/tiger.lua (100%) rename {home => modules/home}/vim/ftdetect/tikz.lua (100%) rename {home => modules/home}/vim/init.vim (100%) rename {home => modules/home}/vim/lua/ambroisie/lsp.lua (100%) rename {home => modules/home}/vim/lua/ambroisie/utils.lua (100%) rename {home => modules/home}/vim/plugin/abbreviations.lua (100%) rename {home => modules/home}/vim/plugin/numbertoggle.lua (100%) rename {home => modules/home}/vim/plugin/settings/completion.lua (100%) rename {home => modules/home}/vim/plugin/settings/dressing.lua (100%) rename {home => modules/home}/vim/plugin/settings/fastfold.lua (100%) rename {home => modules/home}/vim/plugin/settings/formatting.lua (100%) rename {home => modules/home}/vim/plugin/settings/git.lua (100%) rename {home => modules/home}/vim/plugin/settings/lsp-lines.lua (100%) rename {home => modules/home}/vim/plugin/settings/lspconfig.lua (100%) rename {home => modules/home}/vim/plugin/settings/lualine.lua (100%) rename {home => modules/home}/vim/plugin/settings/luasnip.lua (100%) rename {home => modules/home}/vim/plugin/settings/null-ls.lua (100%) rename {home => modules/home}/vim/plugin/settings/ssh.lua (100%) rename {home => modules/home}/vim/plugin/settings/surround.lua (100%) rename {home => modules/home}/vim/plugin/settings/telescope.lua (100%) rename {home => modules/home}/vim/plugin/settings/tree-sitter.lua (100%) rename {home => modules/home}/vim/plugin/settings/which-key.lua (100%) rename {home => modules/home}/vim/plugin/signtoggle.lua (100%) rename {home => modules/home}/wm/cursor/default.nix (100%) rename {home => modules/home}/wm/default.nix (100%) rename {home => modules/home}/wm/dunst/default.nix (100%) rename {home => modules/home}/wm/i3/default.nix (100%) rename {home => modules/home}/wm/i3bar/default.nix (100%) rename {home => modules/home}/wm/rofi/default.nix (100%) rename {home => modules/home}/wm/screen-lock/default.nix (100%) rename {home => modules/home}/x/default.nix (100%) rename {home => modules/home}/x/keyboard/default.nix (100%) rename {home => modules/home}/xdg/default.nix (100%) rename {home => modules/home}/zathura/default.nix (100%) rename {home => modules/home}/zsh/completion-styles.zsh (100%) rename {home => modules/home}/zsh/default.nix (100%) rename {home => modules/home}/zsh/extra-mappings.zsh (100%) rename {home => modules/home}/zsh/options.zsh (100%) diff --git a/flake/home-manager.nix b/flake/home-manager.nix index 2c5b65a..61c9f6e 100644 --- a/flake/home-manager.nix +++ b/flake/home-manager.nix @@ -2,7 +2,7 @@ let defaultModules = [ # Include generic settings - "${self}/home" + "${self}/modules/home" { # Basic user information defaults home.username = lib.mkDefault "ambroisie"; diff --git a/home/aliases/default.nix b/modules/home/aliases/default.nix similarity index 100% rename from home/aliases/default.nix rename to modules/home/aliases/default.nix diff --git a/home/atuin/default.nix b/modules/home/atuin/default.nix similarity index 100% rename from home/atuin/default.nix rename to modules/home/atuin/default.nix diff --git a/home/bat/default.nix b/modules/home/bat/default.nix similarity index 100% rename from home/bat/default.nix rename to modules/home/bat/default.nix diff --git a/home/bitwarden/default.nix b/modules/home/bitwarden/default.nix similarity index 100% rename from home/bitwarden/default.nix rename to modules/home/bitwarden/default.nix diff --git a/home/bluetooth/default.nix b/modules/home/bluetooth/default.nix similarity index 100% rename from home/bluetooth/default.nix rename to modules/home/bluetooth/default.nix diff --git a/home/calibre/default.nix b/modules/home/calibre/default.nix similarity index 100% rename from home/calibre/default.nix rename to modules/home/calibre/default.nix diff --git a/home/comma/default.nix b/modules/home/comma/default.nix similarity index 100% rename from home/comma/default.nix rename to modules/home/comma/default.nix diff --git a/home/default.nix b/modules/home/default.nix similarity index 100% rename from home/default.nix rename to modules/home/default.nix diff --git a/home/dircolors/default.nix b/modules/home/dircolors/default.nix similarity index 100% rename from home/dircolors/default.nix rename to modules/home/dircolors/default.nix diff --git a/home/direnv/default.nix b/modules/home/direnv/default.nix similarity index 100% rename from home/direnv/default.nix rename to modules/home/direnv/default.nix diff --git a/home/direnv/lib/nix.sh b/modules/home/direnv/lib/nix.sh similarity index 100% rename from home/direnv/lib/nix.sh rename to modules/home/direnv/lib/nix.sh diff --git a/home/direnv/lib/postgres.sh b/modules/home/direnv/lib/postgres.sh similarity index 100% rename from home/direnv/lib/postgres.sh rename to modules/home/direnv/lib/postgres.sh diff --git a/home/direnv/lib/python.sh b/modules/home/direnv/lib/python.sh similarity index 100% rename from home/direnv/lib/python.sh rename to modules/home/direnv/lib/python.sh diff --git a/home/discord/default.nix b/modules/home/discord/default.nix similarity index 100% rename from home/discord/default.nix rename to modules/home/discord/default.nix diff --git a/home/documentation/default.nix b/modules/home/documentation/default.nix similarity index 100% rename from home/documentation/default.nix rename to modules/home/documentation/default.nix diff --git a/home/feh/default.nix b/modules/home/feh/default.nix similarity index 100% rename from home/feh/default.nix rename to modules/home/feh/default.nix diff --git a/home/firefox/default.nix b/modules/home/firefox/default.nix similarity index 100% rename from home/firefox/default.nix rename to modules/home/firefox/default.nix diff --git a/home/firefox/tridactyl/default.nix b/modules/home/firefox/tridactyl/default.nix similarity index 100% rename from home/firefox/tridactyl/default.nix rename to modules/home/firefox/tridactyl/default.nix diff --git a/home/firefox/tridactyl/tridactylrc b/modules/home/firefox/tridactyl/tridactylrc similarity index 100% rename from home/firefox/tridactyl/tridactylrc rename to modules/home/firefox/tridactyl/tridactylrc diff --git a/home/flameshot/default.nix b/modules/home/flameshot/default.nix similarity index 100% rename from home/flameshot/default.nix rename to modules/home/flameshot/default.nix diff --git a/home/fzf/default.nix b/modules/home/fzf/default.nix similarity index 100% rename from home/fzf/default.nix rename to modules/home/fzf/default.nix diff --git a/home/gammastep/default.nix b/modules/home/gammastep/default.nix similarity index 100% rename from home/gammastep/default.nix rename to modules/home/gammastep/default.nix diff --git a/home/gdb/default.nix b/modules/home/gdb/default.nix similarity index 100% rename from home/gdb/default.nix rename to modules/home/gdb/default.nix diff --git a/home/gdb/gdbinit b/modules/home/gdb/gdbinit similarity index 100% rename from home/gdb/gdbinit rename to modules/home/gdb/gdbinit diff --git a/home/git/default.ignore b/modules/home/git/default.ignore similarity index 100% rename from home/git/default.ignore rename to modules/home/git/default.ignore diff --git a/home/git/default.nix b/modules/home/git/default.nix similarity index 100% rename from home/git/default.nix rename to modules/home/git/default.nix diff --git a/home/gpg/default.nix b/modules/home/gpg/default.nix similarity index 100% rename from home/gpg/default.nix rename to modules/home/gpg/default.nix diff --git a/home/gtk/default.nix b/modules/home/gtk/default.nix similarity index 100% rename from home/gtk/default.nix rename to modules/home/gtk/default.nix diff --git a/home/htop/default.nix b/modules/home/htop/default.nix similarity index 100% rename from home/htop/default.nix rename to modules/home/htop/default.nix diff --git a/home/jq/default.nix b/modules/home/jq/default.nix similarity index 100% rename from home/jq/default.nix rename to modules/home/jq/default.nix diff --git a/home/mail/accounts/default.nix b/modules/home/mail/accounts/default.nix similarity index 100% rename from home/mail/accounts/default.nix rename to modules/home/mail/accounts/default.nix diff --git a/home/mail/default.nix b/modules/home/mail/default.nix similarity index 100% rename from home/mail/default.nix rename to modules/home/mail/default.nix diff --git a/home/mail/himalaya/default.nix b/modules/home/mail/himalaya/default.nix similarity index 100% rename from home/mail/himalaya/default.nix rename to modules/home/mail/himalaya/default.nix diff --git a/home/mail/msmtp/default.nix b/modules/home/mail/msmtp/default.nix similarity index 100% rename from home/mail/msmtp/default.nix rename to modules/home/mail/msmtp/default.nix diff --git a/home/mpv/default.nix b/modules/home/mpv/default.nix similarity index 100% rename from home/mpv/default.nix rename to modules/home/mpv/default.nix diff --git a/home/nix-index/default.nix b/modules/home/nix-index/default.nix similarity index 100% rename from home/nix-index/default.nix rename to modules/home/nix-index/default.nix diff --git a/home/nix/default.nix b/modules/home/nix/default.nix similarity index 100% rename from home/nix/default.nix rename to modules/home/nix/default.nix diff --git a/home/nixpkgs/default.nix b/modules/home/nixpkgs/default.nix similarity index 100% rename from home/nixpkgs/default.nix rename to modules/home/nixpkgs/default.nix diff --git a/home/nm-applet/default.nix b/modules/home/nm-applet/default.nix similarity index 100% rename from home/nm-applet/default.nix rename to modules/home/nm-applet/default.nix diff --git a/home/packages/default.nix b/modules/home/packages/default.nix similarity index 100% rename from home/packages/default.nix rename to modules/home/packages/default.nix diff --git a/home/pager/default.nix b/modules/home/pager/default.nix similarity index 100% rename from home/pager/default.nix rename to modules/home/pager/default.nix diff --git a/home/power-alert/default.nix b/modules/home/power-alert/default.nix similarity index 100% rename from home/power-alert/default.nix rename to modules/home/power-alert/default.nix diff --git a/home/secrets/default.nix b/modules/home/secrets/default.nix similarity index 100% rename from home/secrets/default.nix rename to modules/home/secrets/default.nix diff --git a/home/secrets/github/token.age b/modules/home/secrets/github/token.age similarity index 100% rename from home/secrets/github/token.age rename to modules/home/secrets/github/token.age diff --git a/home/secrets/secrets.nix b/modules/home/secrets/secrets.nix similarity index 100% rename from home/secrets/secrets.nix rename to modules/home/secrets/secrets.nix diff --git a/home/ssh/default.nix b/modules/home/ssh/default.nix similarity index 100% rename from home/ssh/default.nix rename to modules/home/ssh/default.nix diff --git a/home/terminal/alacritty/default.nix b/modules/home/terminal/alacritty/default.nix similarity index 100% rename from home/terminal/alacritty/default.nix rename to modules/home/terminal/alacritty/default.nix diff --git a/home/terminal/default.nix b/modules/home/terminal/default.nix similarity index 100% rename from home/terminal/default.nix rename to modules/home/terminal/default.nix diff --git a/home/terminal/termite/default.nix b/modules/home/terminal/termite/default.nix similarity index 100% rename from home/terminal/termite/default.nix rename to modules/home/terminal/termite/default.nix diff --git a/home/tmux/default.nix b/modules/home/tmux/default.nix similarity index 100% rename from home/tmux/default.nix rename to modules/home/tmux/default.nix diff --git a/home/udiskie/default.nix b/modules/home/udiskie/default.nix similarity index 100% rename from home/udiskie/default.nix rename to modules/home/udiskie/default.nix diff --git a/home/vim/after/ftplugin/beancount.vim b/modules/home/vim/after/ftplugin/beancount.vim similarity index 100% rename from home/vim/after/ftplugin/beancount.vim rename to modules/home/vim/after/ftplugin/beancount.vim diff --git a/home/vim/after/ftplugin/cmake.vim b/modules/home/vim/after/ftplugin/cmake.vim similarity index 100% rename from home/vim/after/ftplugin/cmake.vim rename to modules/home/vim/after/ftplugin/cmake.vim diff --git a/home/vim/after/ftplugin/fugitive.vim b/modules/home/vim/after/ftplugin/fugitive.vim similarity index 100% rename from home/vim/after/ftplugin/fugitive.vim rename to modules/home/vim/after/ftplugin/fugitive.vim diff --git a/home/vim/after/ftplugin/gitcommit.vim b/modules/home/vim/after/ftplugin/gitcommit.vim similarity index 100% rename from home/vim/after/ftplugin/gitcommit.vim rename to modules/home/vim/after/ftplugin/gitcommit.vim diff --git a/home/vim/after/ftplugin/gitconfig.vim b/modules/home/vim/after/ftplugin/gitconfig.vim similarity index 100% rename from home/vim/after/ftplugin/gitconfig.vim rename to modules/home/vim/after/ftplugin/gitconfig.vim diff --git a/home/vim/after/ftplugin/haskell.vim b/modules/home/vim/after/ftplugin/haskell.vim similarity index 100% rename from home/vim/after/ftplugin/haskell.vim rename to modules/home/vim/after/ftplugin/haskell.vim diff --git a/home/vim/after/ftplugin/help.vim b/modules/home/vim/after/ftplugin/help.vim similarity index 100% rename from home/vim/after/ftplugin/help.vim rename to modules/home/vim/after/ftplugin/help.vim diff --git a/home/vim/after/ftplugin/mail.vim b/modules/home/vim/after/ftplugin/mail.vim similarity index 100% rename from home/vim/after/ftplugin/mail.vim rename to modules/home/vim/after/ftplugin/mail.vim diff --git a/home/vim/after/ftplugin/make.vim b/modules/home/vim/after/ftplugin/make.vim similarity index 100% rename from home/vim/after/ftplugin/make.vim rename to modules/home/vim/after/ftplugin/make.vim diff --git a/home/vim/after/ftplugin/markdown.vim b/modules/home/vim/after/ftplugin/markdown.vim similarity index 100% rename from home/vim/after/ftplugin/markdown.vim rename to modules/home/vim/after/ftplugin/markdown.vim diff --git a/home/vim/after/ftplugin/netrw.vim b/modules/home/vim/after/ftplugin/netrw.vim similarity index 100% rename from home/vim/after/ftplugin/netrw.vim rename to modules/home/vim/after/ftplugin/netrw.vim diff --git a/home/vim/after/ftplugin/nix.vim b/modules/home/vim/after/ftplugin/nix.vim similarity index 100% rename from home/vim/after/ftplugin/nix.vim rename to modules/home/vim/after/ftplugin/nix.vim diff --git a/home/vim/after/ftplugin/python.vim b/modules/home/vim/after/ftplugin/python.vim similarity index 100% rename from home/vim/after/ftplugin/python.vim rename to modules/home/vim/after/ftplugin/python.vim diff --git a/home/vim/after/ftplugin/rust.vim b/modules/home/vim/after/ftplugin/rust.vim similarity index 100% rename from home/vim/after/ftplugin/rust.vim rename to modules/home/vim/after/ftplugin/rust.vim diff --git a/home/vim/after/ftplugin/tex.vim b/modules/home/vim/after/ftplugin/tex.vim similarity index 100% rename from home/vim/after/ftplugin/tex.vim rename to modules/home/vim/after/ftplugin/tex.vim diff --git a/home/vim/after/ftplugin/tiger.vim b/modules/home/vim/after/ftplugin/tiger.vim similarity index 100% rename from home/vim/after/ftplugin/tiger.vim rename to modules/home/vim/after/ftplugin/tiger.vim diff --git a/home/vim/after/ftplugin/yaml.vim b/modules/home/vim/after/ftplugin/yaml.vim similarity index 100% rename from home/vim/after/ftplugin/yaml.vim rename to modules/home/vim/after/ftplugin/yaml.vim diff --git a/home/vim/after/plugin/mappings/commentary.lua b/modules/home/vim/after/plugin/mappings/commentary.lua similarity index 100% rename from home/vim/after/plugin/mappings/commentary.lua rename to modules/home/vim/after/plugin/mappings/commentary.lua diff --git a/home/vim/after/plugin/mappings/misc.lua b/modules/home/vim/after/plugin/mappings/misc.lua similarity index 100% rename from home/vim/after/plugin/mappings/misc.lua rename to modules/home/vim/after/plugin/mappings/misc.lua diff --git a/home/vim/after/plugin/mappings/telescope.lua b/modules/home/vim/after/plugin/mappings/telescope.lua similarity index 100% rename from home/vim/after/plugin/mappings/telescope.lua rename to modules/home/vim/after/plugin/mappings/telescope.lua diff --git a/home/vim/after/plugin/mappings/tree-sitter-textobjects.lua b/modules/home/vim/after/plugin/mappings/tree-sitter-textobjects.lua similarity index 100% rename from home/vim/after/plugin/mappings/tree-sitter-textobjects.lua rename to modules/home/vim/after/plugin/mappings/tree-sitter-textobjects.lua diff --git a/home/vim/after/plugin/mappings/unimpaired.lua b/modules/home/vim/after/plugin/mappings/unimpaired.lua similarity index 100% rename from home/vim/after/plugin/mappings/unimpaired.lua rename to modules/home/vim/after/plugin/mappings/unimpaired.lua diff --git a/home/vim/autoload/ftplugined.vim b/modules/home/vim/autoload/ftplugined.vim similarity index 100% rename from home/vim/autoload/ftplugined.vim rename to modules/home/vim/autoload/ftplugined.vim diff --git a/home/vim/default.nix b/modules/home/vim/default.nix similarity index 100% rename from home/vim/default.nix rename to modules/home/vim/default.nix diff --git a/home/vim/ftdetect/automake.lua b/modules/home/vim/ftdetect/automake.lua similarity index 100% rename from home/vim/ftdetect/automake.lua rename to modules/home/vim/ftdetect/automake.lua diff --git a/home/vim/ftdetect/direnv.lua b/modules/home/vim/ftdetect/direnv.lua similarity index 100% rename from home/vim/ftdetect/direnv.lua rename to modules/home/vim/ftdetect/direnv.lua diff --git a/home/vim/ftdetect/kbuild.lua b/modules/home/vim/ftdetect/kbuild.lua similarity index 100% rename from home/vim/ftdetect/kbuild.lua rename to modules/home/vim/ftdetect/kbuild.lua diff --git a/home/vim/ftdetect/kconfig.lua b/modules/home/vim/ftdetect/kconfig.lua similarity index 100% rename from home/vim/ftdetect/kconfig.lua rename to modules/home/vim/ftdetect/kconfig.lua diff --git a/home/vim/ftdetect/tiger.lua b/modules/home/vim/ftdetect/tiger.lua similarity index 100% rename from home/vim/ftdetect/tiger.lua rename to modules/home/vim/ftdetect/tiger.lua diff --git a/home/vim/ftdetect/tikz.lua b/modules/home/vim/ftdetect/tikz.lua similarity index 100% rename from home/vim/ftdetect/tikz.lua rename to modules/home/vim/ftdetect/tikz.lua diff --git a/home/vim/init.vim b/modules/home/vim/init.vim similarity index 100% rename from home/vim/init.vim rename to modules/home/vim/init.vim diff --git a/home/vim/lua/ambroisie/lsp.lua b/modules/home/vim/lua/ambroisie/lsp.lua similarity index 100% rename from home/vim/lua/ambroisie/lsp.lua rename to modules/home/vim/lua/ambroisie/lsp.lua diff --git a/home/vim/lua/ambroisie/utils.lua b/modules/home/vim/lua/ambroisie/utils.lua similarity index 100% rename from home/vim/lua/ambroisie/utils.lua rename to modules/home/vim/lua/ambroisie/utils.lua diff --git a/home/vim/plugin/abbreviations.lua b/modules/home/vim/plugin/abbreviations.lua similarity index 100% rename from home/vim/plugin/abbreviations.lua rename to modules/home/vim/plugin/abbreviations.lua diff --git a/home/vim/plugin/numbertoggle.lua b/modules/home/vim/plugin/numbertoggle.lua similarity index 100% rename from home/vim/plugin/numbertoggle.lua rename to modules/home/vim/plugin/numbertoggle.lua diff --git a/home/vim/plugin/settings/completion.lua b/modules/home/vim/plugin/settings/completion.lua similarity index 100% rename from home/vim/plugin/settings/completion.lua rename to modules/home/vim/plugin/settings/completion.lua diff --git a/home/vim/plugin/settings/dressing.lua b/modules/home/vim/plugin/settings/dressing.lua similarity index 100% rename from home/vim/plugin/settings/dressing.lua rename to modules/home/vim/plugin/settings/dressing.lua diff --git a/home/vim/plugin/settings/fastfold.lua b/modules/home/vim/plugin/settings/fastfold.lua similarity index 100% rename from home/vim/plugin/settings/fastfold.lua rename to modules/home/vim/plugin/settings/fastfold.lua diff --git a/home/vim/plugin/settings/formatting.lua b/modules/home/vim/plugin/settings/formatting.lua similarity index 100% rename from home/vim/plugin/settings/formatting.lua rename to modules/home/vim/plugin/settings/formatting.lua diff --git a/home/vim/plugin/settings/git.lua b/modules/home/vim/plugin/settings/git.lua similarity index 100% rename from home/vim/plugin/settings/git.lua rename to modules/home/vim/plugin/settings/git.lua diff --git a/home/vim/plugin/settings/lsp-lines.lua b/modules/home/vim/plugin/settings/lsp-lines.lua similarity index 100% rename from home/vim/plugin/settings/lsp-lines.lua rename to modules/home/vim/plugin/settings/lsp-lines.lua diff --git a/home/vim/plugin/settings/lspconfig.lua b/modules/home/vim/plugin/settings/lspconfig.lua similarity index 100% rename from home/vim/plugin/settings/lspconfig.lua rename to modules/home/vim/plugin/settings/lspconfig.lua diff --git a/home/vim/plugin/settings/lualine.lua b/modules/home/vim/plugin/settings/lualine.lua similarity index 100% rename from home/vim/plugin/settings/lualine.lua rename to modules/home/vim/plugin/settings/lualine.lua diff --git a/home/vim/plugin/settings/luasnip.lua b/modules/home/vim/plugin/settings/luasnip.lua similarity index 100% rename from home/vim/plugin/settings/luasnip.lua rename to modules/home/vim/plugin/settings/luasnip.lua diff --git a/home/vim/plugin/settings/null-ls.lua b/modules/home/vim/plugin/settings/null-ls.lua similarity index 100% rename from home/vim/plugin/settings/null-ls.lua rename to modules/home/vim/plugin/settings/null-ls.lua diff --git a/home/vim/plugin/settings/ssh.lua b/modules/home/vim/plugin/settings/ssh.lua similarity index 100% rename from home/vim/plugin/settings/ssh.lua rename to modules/home/vim/plugin/settings/ssh.lua diff --git a/home/vim/plugin/settings/surround.lua b/modules/home/vim/plugin/settings/surround.lua similarity index 100% rename from home/vim/plugin/settings/surround.lua rename to modules/home/vim/plugin/settings/surround.lua diff --git a/home/vim/plugin/settings/telescope.lua b/modules/home/vim/plugin/settings/telescope.lua similarity index 100% rename from home/vim/plugin/settings/telescope.lua rename to modules/home/vim/plugin/settings/telescope.lua diff --git a/home/vim/plugin/settings/tree-sitter.lua b/modules/home/vim/plugin/settings/tree-sitter.lua similarity index 100% rename from home/vim/plugin/settings/tree-sitter.lua rename to modules/home/vim/plugin/settings/tree-sitter.lua diff --git a/home/vim/plugin/settings/which-key.lua b/modules/home/vim/plugin/settings/which-key.lua similarity index 100% rename from home/vim/plugin/settings/which-key.lua rename to modules/home/vim/plugin/settings/which-key.lua diff --git a/home/vim/plugin/signtoggle.lua b/modules/home/vim/plugin/signtoggle.lua similarity index 100% rename from home/vim/plugin/signtoggle.lua rename to modules/home/vim/plugin/signtoggle.lua diff --git a/home/wm/cursor/default.nix b/modules/home/wm/cursor/default.nix similarity index 100% rename from home/wm/cursor/default.nix rename to modules/home/wm/cursor/default.nix diff --git a/home/wm/default.nix b/modules/home/wm/default.nix similarity index 100% rename from home/wm/default.nix rename to modules/home/wm/default.nix diff --git a/home/wm/dunst/default.nix b/modules/home/wm/dunst/default.nix similarity index 100% rename from home/wm/dunst/default.nix rename to modules/home/wm/dunst/default.nix diff --git a/home/wm/i3/default.nix b/modules/home/wm/i3/default.nix similarity index 100% rename from home/wm/i3/default.nix rename to modules/home/wm/i3/default.nix diff --git a/home/wm/i3bar/default.nix b/modules/home/wm/i3bar/default.nix similarity index 100% rename from home/wm/i3bar/default.nix rename to modules/home/wm/i3bar/default.nix diff --git a/home/wm/rofi/default.nix b/modules/home/wm/rofi/default.nix similarity index 100% rename from home/wm/rofi/default.nix rename to modules/home/wm/rofi/default.nix diff --git a/home/wm/screen-lock/default.nix b/modules/home/wm/screen-lock/default.nix similarity index 100% rename from home/wm/screen-lock/default.nix rename to modules/home/wm/screen-lock/default.nix diff --git a/home/x/default.nix b/modules/home/x/default.nix similarity index 100% rename from home/x/default.nix rename to modules/home/x/default.nix diff --git a/home/x/keyboard/default.nix b/modules/home/x/keyboard/default.nix similarity index 100% rename from home/x/keyboard/default.nix rename to modules/home/x/keyboard/default.nix diff --git a/home/xdg/default.nix b/modules/home/xdg/default.nix similarity index 100% rename from home/xdg/default.nix rename to modules/home/xdg/default.nix diff --git a/home/zathura/default.nix b/modules/home/zathura/default.nix similarity index 100% rename from home/zathura/default.nix rename to modules/home/zathura/default.nix diff --git a/home/zsh/completion-styles.zsh b/modules/home/zsh/completion-styles.zsh similarity index 100% rename from home/zsh/completion-styles.zsh rename to modules/home/zsh/completion-styles.zsh diff --git a/home/zsh/default.nix b/modules/home/zsh/default.nix similarity index 100% rename from home/zsh/default.nix rename to modules/home/zsh/default.nix diff --git a/home/zsh/extra-mappings.zsh b/modules/home/zsh/extra-mappings.zsh similarity index 100% rename from home/zsh/extra-mappings.zsh rename to modules/home/zsh/extra-mappings.zsh diff --git a/home/zsh/options.zsh b/modules/home/zsh/options.zsh similarity index 100% rename from home/zsh/options.zsh rename to modules/home/zsh/options.zsh diff --git a/modules/nixos/home/default.nix b/modules/nixos/home/default.nix index 4849ab2..fe00704 100644 --- a/modules/nixos/home/default.nix +++ b/modules/nixos/home/default.nix @@ -14,7 +14,7 @@ in config = lib.mkIf cfg.enable { home-manager = { # Not a fan of out-of-directory imports, but this is a good exception - users.${config.my.user.name} = import "${inputs.self}/home"; + users.${config.my.user.name} = import "${inputs.self}/modules/home"; # Nix Flakes compatibility useGlobalPkgs = true; From 570349e80ffe18f991593e74642b738119411117 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Thu, 9 Nov 2023 13:47:30 +0000 Subject: [PATCH 148/245] nixos: profiles: move from top-level My profiles are actually just "special" NixOS modules in that they orchestrate settings that usually span the NixOS/home-manager boundary, or otherwise set up configurations from multiple modules at once. --- flake/nixos.nix | 2 -- modules/nixos/default.nix | 1 + {profiles => modules/nixos/profiles}/bluetooth/default.nix | 0 {profiles => modules/nixos/profiles}/default.nix | 0 {profiles => modules/nixos/profiles}/devices/default.nix | 0 {profiles => modules/nixos/profiles}/gtk/default.nix | 0 {profiles => modules/nixos/profiles}/laptop/default.nix | 0 {profiles => modules/nixos/profiles}/wm/default.nix | 0 {profiles => modules/nixos/profiles}/x/default.nix | 0 9 files changed, 1 insertion(+), 2 deletions(-) rename {profiles => modules/nixos/profiles}/bluetooth/default.nix (100%) rename {profiles => modules/nixos/profiles}/default.nix (100%) rename {profiles => modules/nixos/profiles}/devices/default.nix (100%) rename {profiles => modules/nixos/profiles}/gtk/default.nix (100%) rename {profiles => modules/nixos/profiles}/laptop/default.nix (100%) rename {profiles => modules/nixos/profiles}/wm/default.nix (100%) rename {profiles => modules/nixos/profiles}/x/default.nix (100%) diff --git a/flake/nixos.nix b/flake/nixos.nix index 541e658..fe124d7 100644 --- a/flake/nixos.nix +++ b/flake/nixos.nix @@ -14,8 +14,6 @@ let } # Include generic settings "${self}/modules/nixos" - # Include bundles of settings - "${self}/profiles" ]; buildHost = name: system: lib.nixosSystem { diff --git a/modules/nixos/default.nix b/modules/nixos/default.nix index 2eaa2e6..3648631 100644 --- a/modules/nixos/default.nix +++ b/modules/nixos/default.nix @@ -5,6 +5,7 @@ imports = [ ./hardware ./home + ./profiles ./programs ./secrets ./services diff --git a/profiles/bluetooth/default.nix b/modules/nixos/profiles/bluetooth/default.nix similarity index 100% rename from profiles/bluetooth/default.nix rename to modules/nixos/profiles/bluetooth/default.nix diff --git a/profiles/default.nix b/modules/nixos/profiles/default.nix similarity index 100% rename from profiles/default.nix rename to modules/nixos/profiles/default.nix diff --git a/profiles/devices/default.nix b/modules/nixos/profiles/devices/default.nix similarity index 100% rename from profiles/devices/default.nix rename to modules/nixos/profiles/devices/default.nix diff --git a/profiles/gtk/default.nix b/modules/nixos/profiles/gtk/default.nix similarity index 100% rename from profiles/gtk/default.nix rename to modules/nixos/profiles/gtk/default.nix diff --git a/profiles/laptop/default.nix b/modules/nixos/profiles/laptop/default.nix similarity index 100% rename from profiles/laptop/default.nix rename to modules/nixos/profiles/laptop/default.nix diff --git a/profiles/wm/default.nix b/modules/nixos/profiles/wm/default.nix similarity index 100% rename from profiles/wm/default.nix rename to modules/nixos/profiles/wm/default.nix diff --git a/profiles/x/default.nix b/modules/nixos/profiles/x/default.nix similarity index 100% rename from profiles/x/default.nix rename to modules/nixos/profiles/x/default.nix From 11c8d4623cf0ac5e18873f23a49f03321b0a3dcc Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Fri, 17 Nov 2023 16:15:53 +0000 Subject: [PATCH 149/245] home: direnv: add 'android' library file --- modules/home/direnv/lib/android.sh | 58 ++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 modules/home/direnv/lib/android.sh diff --git a/modules/home/direnv/lib/android.sh b/modules/home/direnv/lib/android.sh new file mode 100644 index 0000000..b25d675 --- /dev/null +++ b/modules/home/direnv/lib/android.sh @@ -0,0 +1,58 @@ +#shellcheck shell=bash + +# shellcheck disable=2155 +use_android() { + if [ -z "$ANDROID_HOME" ]; then + log_error "use_android: 'ANDROID_HOME' is not defined" + return 1 + fi + + _use_android_find_latest() { + local path="$1" + local version + + version="$(semver_search "$path" "" "")" + if [ -z "$version" ]; then + log_error "use_android: did not find any version at '$path'" + return 1 + fi + + printf '%s' "$version" + } + + # Default to the latest version found + local ndk_version="$(_use_android_find_latest "$ANDROID_HOME/ndk" || return 1)" + local build_tools_version="$(_use_android_find_latest "$ANDROID_SDK_HOME/build-tools" || return 1)" + + unset -f _use_android_find_latest + + # Allow changing the default version through a command line switch + while true; do + case "$1" in + -b|--build-tools) + build_tools_version="$2" + shift 2 + ;; + -n|--ndk) + ndk_version="$2" + shift 2 + ;; + --) + shift + break + ;; + *) + break + ;; + esac + done + + export ANDROID_SDK_HOME="$ANDROID_HOME" + export ANDROID_NDK_HOME="$ANDROID_HOME/ndk/$ndk_version" + export ANDROID_ROOT="$ANDROID_HOME" + export ANDROID_SDK_ROOT="$ANDROID_SDK_HOME" + export ANDROID_NDK_ROOT="$ANDROID_NDK_HOME" + + PATH_add "$ANDROID_NDK_HOME" + PATH_add "$ANDROID_SDK_HOME/build-tools/$build_tools_version" +} From 00ee4629fc105320ebcd2e82879808fdb3336488 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Fri, 17 Nov 2023 16:25:44 +0000 Subject: [PATCH 150/245] hosts: homes: mousqueton: update 'LD_PRELOAD' I was getting dynamic linker errors with the previous value. --- hosts/homes/ambroisie@mousqueton/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hosts/homes/ambroisie@mousqueton/default.nix b/hosts/homes/ambroisie@mousqueton/default.nix index 7fcd356..8294ff4 100644 --- a/hosts/homes/ambroisie@mousqueton/default.nix +++ b/hosts/homes/ambroisie@mousqueton/default.nix @@ -6,11 +6,11 @@ # Some tooling (e.g: SSH) need to use this library home.sessionVariables = { - LD_PRELOAD = "/lib/x86_64-linux-gnu/libnss_cache.so.2\${LD_PRELOAD:+:}$LD_PRELOAD"; + LD_PRELOAD = "/usr/grte/v5/lib64/libnss_cache.so.2\${LD_PRELOAD:+:}$LD_PRELOAD"; }; systemd.user.sessionVariables = { - LD_PRELOAD = "/lib/x86_64-linux-gnu/libnss_cache.so.2\${LD_PRELOAD:+:}$LD_PRELOAD"; + LD_PRELOAD = "/usr/grte/v5/lib64/libnss_cache.so.2\${LD_PRELOAD:+:}$LD_PRELOAD"; }; programs.git.package = lib.mkForce pkgs.emptyDirectory; From e04be2d13074152afe29ed2333047760615ee691 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Sat, 18 Nov 2023 20:11:56 +0000 Subject: [PATCH 151/245] ci: remove deprecated syntax --- .woodpecker/check.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.woodpecker/check.yml b/.woodpecker/check.yml index d7c5dff..aff6e84 100644 --- a/.woodpecker/check.yml +++ b/.woodpecker/check.yml @@ -1,7 +1,7 @@ labels: backend: local -pipeline: +steps: - name: nix flake check image: bash commands: From c466fd25b4bf1ae6ba8fa7fe5ff785e0928d1943 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Sat, 18 Nov 2023 20:17:18 +0000 Subject: [PATCH 152/245] templates: fix deprecated CI syntax --- templates/c++-cmake/.woodpecker/check.yml | 2 +- templates/c++-meson/.woodpecker/check.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/templates/c++-cmake/.woodpecker/check.yml b/templates/c++-cmake/.woodpecker/check.yml index c3b00ef..628e491 100644 --- a/templates/c++-cmake/.woodpecker/check.yml +++ b/templates/c++-cmake/.woodpecker/check.yml @@ -1,7 +1,7 @@ labels: type: exec -pipeline: +steps: - name: nix flake check image: bash commands: diff --git a/templates/c++-meson/.woodpecker/check.yml b/templates/c++-meson/.woodpecker/check.yml index c3b00ef..628e491 100644 --- a/templates/c++-meson/.woodpecker/check.yml +++ b/templates/c++-meson/.woodpecker/check.yml @@ -1,7 +1,7 @@ labels: type: exec -pipeline: +steps: - name: nix flake check image: bash commands: From 60d941b40b6d37a3a58000d86d1170655f39d5d9 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Tue, 21 Nov 2023 00:15:02 +0100 Subject: [PATCH 153/245] flake: bump inputs My tandoor-recipes fix was merged upstream, so remove the overlay. And because of the recent postgres bump for 23.11, `ensureDBOwnership` is the new way of dealing with DB permissions [1]. This means I had to fix manually migrate my `gitea` DB and make it match the DB user. [1]: https://github.com/NixOS/nixpkgs/pull/266270 --- flake.lock | 30 +++++++-------- modules/nixos/services/gitea/default.nix | 1 + .../bump-allauth.patch | 38 ------------------- .../tandoor-recipes-bump-allauth/default.nix | 9 ----- 4 files changed, 16 insertions(+), 62 deletions(-) delete mode 100644 overlays/tandoor-recipes-bump-allauth/bump-allauth.patch delete mode 100644 overlays/tandoor-recipes-bump-allauth/default.nix diff --git a/flake.lock b/flake.lock index d2f2e6d..63bc1f3 100644 --- a/flake.lock +++ b/flake.lock @@ -70,11 +70,11 @@ ] }, "locked": { - "lastModified": 1698579227, - "narHash": "sha256-KVWjFZky+gRuWennKsbo6cWyo7c/z/VgCte5pR9pEKg=", + "lastModified": 1698882062, + "narHash": "sha256-HkhafUayIqxXyHH1X8d9RDl1M2CkFgZLjKD3MzabiEo=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "f76e870d64779109e41370848074ac4eaa1606ec", + "rev": "8c9fa2545007b49a5db5f650ae91f227672c3877", "type": "github" }, "original": { @@ -131,11 +131,11 @@ ] }, "locked": { - "lastModified": 1698670511, - "narHash": "sha256-jQIu3UhBMPHXzVkHQO1O2gg8SVo5lqAVoC6mOaLQcLQ=", + "lastModified": 1700419052, + "narHash": "sha256-U6a5f9ynbzcp8PMIHULbHPkbwp7YfPKOYmTcLqlalD4=", "owner": "nix-community", "repo": "home-manager", - "rev": "8e5416b478e465985eec274bc3a018024435c106", + "rev": "993fb02d20760067b8ee19c713d94cee07037759", "type": "github" }, "original": { @@ -147,11 +147,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1698611440, - "narHash": "sha256-jPjHjrerhYDy3q9+s5EAsuhyhuknNfowY6yt6pjn9pc=", + "lastModified": 1700390070, + "narHash": "sha256-de9KYi8rSJpqvBfNwscWdalIJXPo8NjdIZcEJum1mH0=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "0cbe9f69c234a7700596e943bfae7ef27a31b735", + "rev": "e4ad989506ec7d71f7302cc3067abd82730a4beb", "type": "github" }, "original": { @@ -163,11 +163,11 @@ }, "nur": { "locked": { - "lastModified": 1698745553, - "narHash": "sha256-Fdip7ewCtZTjOu7ATDFUAy3OqrgcyvzDElLXhr4YmmI=", + "lastModified": 1700477143, + "narHash": "sha256-43dtFRTcFxQJXmy0jvXGDttXD7fAuGIZ0D8frdIg84M=", "owner": "nix-community", "repo": "NUR", - "rev": "dfbf198236d40e9741db76936088f05107e19013", + "rev": "3a7dd170a152b8525e64e1a21b3f95d402ead2b8", "type": "github" }, "original": { @@ -192,11 +192,11 @@ ] }, "locked": { - "lastModified": 1698227354, - "narHash": "sha256-Fi5H9jbaQLmLw9qBi/mkR33CoFjNbobo5xWdX4tKz1Q=", + "lastModified": 1700064067, + "narHash": "sha256-1ZWNDzhu8UlVCK7+DUN9dVQfiHX1bv6OQP9VxstY/gs=", "owner": "cachix", "repo": "pre-commit-hooks.nix", - "rev": "bd38df3d508dfcdff52cd243d297f218ed2257bf", + "rev": "e558068cba67b23b4fbc5537173dbb43748a17e8", "type": "github" }, "original": { diff --git a/modules/nixos/services/gitea/default.nix b/modules/nixos/services/gitea/default.nix index 28a448d..00ba941 100644 --- a/modules/nixos/services/gitea/default.nix +++ b/modules/nixos/services/gitea/default.nix @@ -65,6 +65,7 @@ in database = { type = "postgres"; # Automatic setup user = "git"; # User needs to be the same as gitea user + name = "git"; # Name must be the same as user for `ensureDBOwnership` }; # NixOS module uses `gitea dump` to backup repositories and the database, diff --git a/overlays/tandoor-recipes-bump-allauth/bump-allauth.patch b/overlays/tandoor-recipes-bump-allauth/bump-allauth.patch deleted file mode 100644 index 84dfaee..0000000 --- a/overlays/tandoor-recipes-bump-allauth/bump-allauth.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 8f66f5c3ca61751a80cc133ff4c59019d6fca406 Mon Sep 17 00:00:00 2001 -From: Bruno BELANYI <bruno@belanyi.fr> -Date: Tue, 31 Oct 2023 12:15:30 +0000 -Subject: [PATCH] Bump django-allauth from 0.54.0 to 0.58.1 - -See the backwards incompatible changes [1]. - -[1]: https://docs.allauth.org/en/latest/release-notes/recent.html#id10 ---- - recipes/settings.py | 1 + - requirements.txt | 2 +- - 2 files changed, 2 insertions(+), 1 deletion(-) - -diff --git a/recipes/settings.py b/recipes/settings.py -index df2c2b1de..b836ea656 100644 ---- a/recipes/settings.py -+++ b/recipes/settings.py -@@ -218,6 +218,7 @@ - 'django.middleware.locale.LocaleMiddleware', - 'django.middleware.clickjacking.XFrameOptionsMiddleware', - 'cookbook.helper.scope_middleware.ScopeMiddleware', -+ 'allauth.account.middleware.AccountMiddleware', - ] - - if DEBUG_TOOLBAR: -diff --git a/requirements.txt b/requirements.txt -index 26d81b471..09ed2381a 100644 ---- a/requirements.txt -+++ b/requirements.txt -@@ -29,7 +29,7 @@ microdata==0.8.0 - Jinja2==3.1.2 - django-webpack-loader==1.8.1 - git+https://github.com/BITSOLVER/django-js-reverse@071e304fd600107bc64bbde6f2491f1fe049ec82 --django-allauth==0.54.0 -+django-allauth==0.58.1 - recipe-scrapers==14.36.1 - django-scopes==2.0.0 - pytest==7.3.1 diff --git a/overlays/tandoor-recipes-bump-allauth/default.nix b/overlays/tandoor-recipes-bump-allauth/default.nix deleted file mode 100644 index dfbfec9..0000000 --- a/overlays/tandoor-recipes-bump-allauth/default.nix +++ /dev/null @@ -1,9 +0,0 @@ -_self: prev: -{ - tandoor-recipes = prev.tandoor-recipes.overrideAttrs (oa: { - patches = (oa.patches or [ ]) ++ [ - # https://github.com/TandoorRecipes/recipes/pull/2706 - ./bump-allauth.patch - ]; - }); -} From b48d81451d84176782752bcb0631e27fb49de779 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Tue, 21 Nov 2023 00:18:29 +0100 Subject: [PATCH 154/245] nixos: services: migrate to 'ensureDBOwnership' `ensurePermissions` is deprecated, and doesn't work on PostgreSQL 15. --- modules/nixos/services/drone/server/default.nix | 4 +--- modules/nixos/services/nextcloud/default.nix | 2 +- modules/nixos/services/paperless/default.nix | 2 +- modules/nixos/services/quassel/default.nix | 2 +- modules/nixos/services/tandoor-recipes/default.nix | 2 +- modules/nixos/services/vikunja/default.nix | 2 +- modules/nixos/services/woodpecker/server/default.nix | 4 +--- 7 files changed, 7 insertions(+), 11 deletions(-) diff --git a/modules/nixos/services/drone/server/default.nix b/modules/nixos/services/drone/server/default.nix index 0f56d29..d651f85 100644 --- a/modules/nixos/services/drone/server/default.nix +++ b/modules/nixos/services/drone/server/default.nix @@ -41,9 +41,7 @@ in ensureDatabases = [ "drone" ]; ensureUsers = [{ name = "drone"; - ensurePermissions = { - "DATABASE drone" = "ALL PRIVILEGES"; - }; + ensureDBOwnership = true; }]; }; diff --git a/modules/nixos/services/nextcloud/default.nix b/modules/nixos/services/nextcloud/default.nix index 260e73e..65b7234 100644 --- a/modules/nixos/services/nextcloud/default.nix +++ b/modules/nixos/services/nextcloud/default.nix @@ -57,7 +57,7 @@ in ensureUsers = [ { name = "nextcloud"; - ensurePermissions."DATABASE nextcloud" = "ALL PRIVILEGES"; + ensureDBOwnership = true; } ]; }; diff --git a/modules/nixos/services/paperless/default.nix b/modules/nixos/services/paperless/default.nix index 1ca1f66..90f6b0c 100644 --- a/modules/nixos/services/paperless/default.nix +++ b/modules/nixos/services/paperless/default.nix @@ -131,7 +131,7 @@ in ensureUsers = [ { name = "paperless"; - ensurePermissions."DATABASE paperless" = "ALL PRIVILEGES"; + ensureDBOwnership = true; } ]; }; diff --git a/modules/nixos/services/quassel/default.nix b/modules/nixos/services/quassel/default.nix index ec686e1..695f9e0 100644 --- a/modules/nixos/services/quassel/default.nix +++ b/modules/nixos/services/quassel/default.nix @@ -39,7 +39,7 @@ in ensureUsers = [ { name = "quassel"; - ensurePermissions."DATABASE quassel" = "ALL PRIVILEGES"; + ensureDBOwnership = true; } ]; # Insecure, I don't care. diff --git a/modules/nixos/services/tandoor-recipes/default.nix b/modules/nixos/services/tandoor-recipes/default.nix index 83177c8..541e198 100644 --- a/modules/nixos/services/tandoor-recipes/default.nix +++ b/modules/nixos/services/tandoor-recipes/default.nix @@ -65,7 +65,7 @@ in ensureUsers = [ { name = "tandoor_recipes"; - ensurePermissions."DATABASE tandoor_recipes" = "ALL PRIVILEGES"; + ensureDBOwnership = true; } ]; }; diff --git a/modules/nixos/services/vikunja/default.nix b/modules/nixos/services/vikunja/default.nix index 1cdef5f..8c051b0 100644 --- a/modules/nixos/services/vikunja/default.nix +++ b/modules/nixos/services/vikunja/default.nix @@ -109,7 +109,7 @@ in ensureUsers = [ { name = "vikunja"; - ensurePermissions = { "DATABASE vikunja" = "ALL PRIVILEGES"; }; + ensureDBOwnership = true; } ]; }; diff --git a/modules/nixos/services/woodpecker/server/default.nix b/modules/nixos/services/woodpecker/server/default.nix index d9f723b..cebbc9b 100644 --- a/modules/nixos/services/woodpecker/server/default.nix +++ b/modules/nixos/services/woodpecker/server/default.nix @@ -48,9 +48,7 @@ in ensureDatabases = [ "woodpecker" ]; ensureUsers = [{ name = "woodpecker"; - ensurePermissions = { - "DATABASE woodpecker" = "ALL PRIVILEGES"; - }; + ensureDBOwnership = true; }]; }; From 3fb8734c5670559feec8a2ce46beee0723171708 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Mon, 27 Nov 2023 11:18:26 +0000 Subject: [PATCH 155/245] home: direnv: fix 'use_android' Don't rely on `ANDROID_SDK_HOME` if it hasn't yet been defined. --- modules/home/direnv/lib/android.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/home/direnv/lib/android.sh b/modules/home/direnv/lib/android.sh index b25d675..3f730c2 100644 --- a/modules/home/direnv/lib/android.sh +++ b/modules/home/direnv/lib/android.sh @@ -22,7 +22,7 @@ use_android() { # Default to the latest version found local ndk_version="$(_use_android_find_latest "$ANDROID_HOME/ndk" || return 1)" - local build_tools_version="$(_use_android_find_latest "$ANDROID_SDK_HOME/build-tools" || return 1)" + local build_tools_version="$(_use_android_find_latest "$ANDROID_HOME/build-tools" || return 1)" unset -f _use_android_find_latest @@ -54,5 +54,5 @@ use_android() { export ANDROID_NDK_ROOT="$ANDROID_NDK_HOME" PATH_add "$ANDROID_NDK_HOME" - PATH_add "$ANDROID_SDK_HOME/build-tools/$build_tools_version" + PATH_add "$ANDROID_HOME/build-tools/$build_tools_version" } From 302cb907efd08c56467e12df4c3e78a71a44f0ff Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Tue, 28 Nov 2023 20:28:12 +0000 Subject: [PATCH 156/245] home: wm: i3: make blueman device manager floating --- modules/home/wm/i3/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/home/wm/i3/default.nix b/modules/home/wm/i3/default.nix index d1dbe2c..b9661f3 100644 --- a/modules/home/wm/i3/default.nix +++ b/modules/home/wm/i3/default.nix @@ -129,6 +129,7 @@ in { class = "^Thunderbird$"; instance = "Mailnews"; window_role = "filterlist"; } { class = "^Pavucontrol.*$"; } { class = "^Arandr$"; } + { class = ".?blueman-manager.*$"; } ]; }; From 97f5bf504c1b67a3a1d82c1b889f31b227e0fc96 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Tue, 28 Nov 2023 09:28:12 +0000 Subject: [PATCH 157/245] hosts: homes: mousqueton: remove 'LD_PRELOAD' It looks like this isn't needed anymore. --- hosts/homes/ambroisie@mousqueton/default.nix | 9 --------- 1 file changed, 9 deletions(-) diff --git a/hosts/homes/ambroisie@mousqueton/default.nix b/hosts/homes/ambroisie@mousqueton/default.nix index 8294ff4..06ee817 100644 --- a/hosts/homes/ambroisie@mousqueton/default.nix +++ b/hosts/homes/ambroisie@mousqueton/default.nix @@ -4,15 +4,6 @@ # Google specific configuration home.homeDirectory = "/usr/local/google/home/ambroisie"; - # Some tooling (e.g: SSH) need to use this library - home.sessionVariables = { - LD_PRELOAD = "/usr/grte/v5/lib64/libnss_cache.so.2\${LD_PRELOAD:+:}$LD_PRELOAD"; - }; - - systemd.user.sessionVariables = { - LD_PRELOAD = "/usr/grte/v5/lib64/libnss_cache.so.2\${LD_PRELOAD:+:}$LD_PRELOAD"; - }; - programs.git.package = lib.mkForce pkgs.emptyDirectory; services.gpg-agent.enable = lib.mkForce false; From ec79be2a451f9af5464778f54f662626021dbb7b Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Tue, 28 Nov 2023 14:35:12 +0000 Subject: [PATCH 158/245] home: xdg: set 'ANDROID_USER_HOME' --- modules/home/xdg/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/home/xdg/default.nix b/modules/home/xdg/default.nix index af9ec18..3bba198 100644 --- a/modules/home/xdg/default.nix +++ b/modules/home/xdg/default.nix @@ -39,6 +39,7 @@ in # I want a tidier home config.home.sessionVariables = with config.xdg; lib.mkIf cfg.enable { ANDROID_HOME = "${dataHome}/android"; + ANDROID_USER_HOME = "${configHome}/android"; CARGO_HOME = "${dataHome}/cargo"; DOCKER_CONFIG = "${configHome}/docker"; GDBHISTFILE = "${dataHome}/gdb/gdb_history"; From f4cc63c711e69d2e07319d29b6f472c3128e3544 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Tue, 28 Nov 2023 14:39:48 +0000 Subject: [PATCH 159/245] home: direnv: remove 'ANDROID_SDK_HOME' Turns out this is supposed to be used for configuration, and it makes some tools error out due to a sanity check... I'm not pleased about this, but whatever. --- modules/home/direnv/lib/android.sh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/modules/home/direnv/lib/android.sh b/modules/home/direnv/lib/android.sh index 3f730c2..fa2f856 100644 --- a/modules/home/direnv/lib/android.sh +++ b/modules/home/direnv/lib/android.sh @@ -47,10 +47,9 @@ use_android() { esac done - export ANDROID_SDK_HOME="$ANDROID_HOME" export ANDROID_NDK_HOME="$ANDROID_HOME/ndk/$ndk_version" export ANDROID_ROOT="$ANDROID_HOME" - export ANDROID_SDK_ROOT="$ANDROID_SDK_HOME" + export ANDROID_SDK_ROOT="$ANDROID_HOME" export ANDROID_NDK_ROOT="$ANDROID_NDK_HOME" PATH_add "$ANDROID_NDK_HOME" From 15ca07bc6413046415db6847a1664000a8a13417 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Fri, 1 Dec 2023 19:13:32 +0000 Subject: [PATCH 160/245] home: wm: i3bar: remove redundant buttons Turns out they're not needed, or at least not anymore? --- modules/home/wm/i3bar/default.nix | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/modules/home/wm/i3bar/default.nix b/modules/home/wm/i3bar/default.nix index 05b0f50..645abeb 100644 --- a/modules/home/wm/i3bar/default.nix +++ b/modules/home/wm/i3bar/default.nix @@ -22,20 +22,6 @@ in block = "music"; # This format seems to remove the block when not playing, somehow format = "{ $icon $combo.str(max_w:50,rot_interval:0.5) $prev $play $next |}"; - click = [ - { - button = "play"; - action = "music_play"; - } - { - button = "prev"; - action = "music_prev"; - } - { - button = "next"; - action = "music_next"; - } - ]; } (lib.optionalAttrs config.my.home.bluetooth.enable { block = "bluetooth"; From 2d532f35a9e7ae3591ec4f260c66807086c9a15a Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Thu, 30 Nov 2023 21:06:37 +0100 Subject: [PATCH 161/245] flake: bump inputs --- flake.lock | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/flake.lock b/flake.lock index 63bc1f3..9ac3083 100644 --- a/flake.lock +++ b/flake.lock @@ -11,11 +11,11 @@ ] }, "locked": { - "lastModified": 1696775529, - "narHash": "sha256-TYlE4B0ktPtlJJF9IFxTWrEeq+XKG8Ny0gc2FGEAdj0=", + "lastModified": 1701216516, + "narHash": "sha256-jKSeJn+7hZ1dZdiH1L+NWUGT2i/BGomKAJ54B9kT06Q=", "owner": "ryantm", "repo": "agenix", - "rev": "daf42cb35b2dc614d1551e37f96406e4c4a2d3e4", + "rev": "13ac9ac6d68b9a0896e3d43a082947233189e247", "type": "github" }, "original": { @@ -131,11 +131,11 @@ ] }, "locked": { - "lastModified": 1700419052, - "narHash": "sha256-U6a5f9ynbzcp8PMIHULbHPkbwp7YfPKOYmTcLqlalD4=", + "lastModified": 1701071203, + "narHash": "sha256-lQywA7QU/vzTdZ1apI0PfgCWNyQobXUYghVrR5zuIeM=", "owner": "nix-community", "repo": "home-manager", - "rev": "993fb02d20760067b8ee19c713d94cee07037759", + "rev": "db1878f013b52ba5e4034db7c1b63e8d04173a86", "type": "github" }, "original": { @@ -147,11 +147,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1700390070, - "narHash": "sha256-de9KYi8rSJpqvBfNwscWdalIJXPo8NjdIZcEJum1mH0=", + "lastModified": 1701068326, + "narHash": "sha256-vmMceA+q6hG1yrjb+MP8T0YFDQIrW3bl45e7z24IEts=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "e4ad989506ec7d71f7302cc3067abd82730a4beb", + "rev": "8cfef6986adfb599ba379ae53c9f5631ecd2fd9c", "type": "github" }, "original": { @@ -163,11 +163,11 @@ }, "nur": { "locked": { - "lastModified": 1700477143, - "narHash": "sha256-43dtFRTcFxQJXmy0jvXGDttXD7fAuGIZ0D8frdIg84M=", + "lastModified": 1701366548, + "narHash": "sha256-+cItrtt7Tfd9SM9aQ3lCZWahfxVzWpH5bVgRyz5QDnw=", "owner": "nix-community", "repo": "NUR", - "rev": "3a7dd170a152b8525e64e1a21b3f95d402ead2b8", + "rev": "d16468a8fc6ea13c030349f293e5958adc0e4a54", "type": "github" }, "original": { @@ -192,11 +192,11 @@ ] }, "locked": { - "lastModified": 1700064067, - "narHash": "sha256-1ZWNDzhu8UlVCK7+DUN9dVQfiHX1bv6OQP9VxstY/gs=", + "lastModified": 1700922917, + "narHash": "sha256-ej2fch/T584b5K9sk1UhmZF7W6wEfDHuoUYpFN8dtvM=", "owner": "cachix", "repo": "pre-commit-hooks.nix", - "rev": "e558068cba67b23b4fbc5537173dbb43748a17e8", + "rev": "e5ee5c5f3844550c01d2131096c7271cec5e9b78", "type": "github" }, "original": { From 55362b1db856dac93bba227b5fb30f4e025d79c8 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Fri, 1 Dec 2023 12:19:52 +0000 Subject: [PATCH 162/245] home: vim: add remove deprecated option The plug-in now configures itself automatically. I could also set `vim.g.skip_ts_context_commentstring_module = true`, but that should be removed soon enough anyway, and I would forget to remove it... --- modules/home/vim/plugin/settings/tree-sitter.lua | 3 --- 1 file changed, 3 deletions(-) diff --git a/modules/home/vim/plugin/settings/tree-sitter.lua b/modules/home/vim/plugin/settings/tree-sitter.lua index 0d84abd..5503857 100644 --- a/modules/home/vim/plugin/settings/tree-sitter.lua +++ b/modules/home/vim/plugin/settings/tree-sitter.lua @@ -8,9 +8,6 @@ ts_config.setup({ indent = { enable = true, }, - context_commentstring = { - enable = true, - }, textobjects = { select = { enable = true, From e41bacc2fc54cc2a16ef76ba459aaf22947f9fcd Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Sat, 2 Dec 2023 14:22:44 +0000 Subject: [PATCH 163/245] home: wm: i3: make 'rofi-bluetooth' ignore case The options given to the script are piped straight to `rofi -dmenu`, which apparently needs the `-i` switch to be case insensitive. --- modules/home/wm/i3/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/home/wm/i3/default.nix b/modules/home/wm/i3/default.nix index b9661f3..69246f0 100644 --- a/modules/home/wm/i3/default.nix +++ b/modules/home/wm/i3/default.nix @@ -197,7 +197,7 @@ in inherit (config.my.home.bluetooth) enable; prog = lib.getExe pkgs.rofi-bluetooth; in - lib.mkIf enable "exec ${prog}"; + lib.mkIf enable "exec ${prog} -i"; }) ( # Changing container focus From 093d7a3cb878a13467d7973c96fe16b788d0bf23 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Wed, 6 Dec 2023 22:18:46 +0100 Subject: [PATCH 164/245] flake: bump inputs --- flake.lock | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/flake.lock b/flake.lock index 9ac3083..c2baaaf 100644 --- a/flake.lock +++ b/flake.lock @@ -70,11 +70,11 @@ ] }, "locked": { - "lastModified": 1698882062, - "narHash": "sha256-HkhafUayIqxXyHH1X8d9RDl1M2CkFgZLjKD3MzabiEo=", + "lastModified": 1701473968, + "narHash": "sha256-YcVE5emp1qQ8ieHUnxt1wCZCC3ZfAS+SRRWZ2TMda7E=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "8c9fa2545007b49a5db5f650ae91f227672c3877", + "rev": "34fed993f1674c8d06d58b37ce1e0fe5eebcb9f5", "type": "github" }, "original": { @@ -89,11 +89,11 @@ "systems": "systems" }, "locked": { - "lastModified": 1694529238, - "narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=", + "lastModified": 1701680307, + "narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=", "owner": "numtide", "repo": "flake-utils", - "rev": "ff7b65b44d01cf9ba6a71320833626af21126384", + "rev": "4022d587cbbfd70fe950c1e2083a02621806a725", "type": "github" }, "original": { @@ -131,11 +131,11 @@ ] }, "locked": { - "lastModified": 1701071203, - "narHash": "sha256-lQywA7QU/vzTdZ1apI0PfgCWNyQobXUYghVrR5zuIeM=", + "lastModified": 1701728041, + "narHash": "sha256-x0pyrI1vC8evVDxCxyO6olOyr4wlFg9+VS3C3p4xFYQ=", "owner": "nix-community", "repo": "home-manager", - "rev": "db1878f013b52ba5e4034db7c1b63e8d04173a86", + "rev": "ac7216918cd65f3824ba7817dea8f22e61221eaf", "type": "github" }, "original": { @@ -147,11 +147,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1701068326, - "narHash": "sha256-vmMceA+q6hG1yrjb+MP8T0YFDQIrW3bl45e7z24IEts=", + "lastModified": 1701436327, + "narHash": "sha256-tRHbnoNI8SIM5O5xuxOmtSLnswEByzmnQcGGyNRjxsE=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "8cfef6986adfb599ba379ae53c9f5631ecd2fd9c", + "rev": "91050ea1e57e50388fa87a3302ba12d188ef723a", "type": "github" }, "original": { @@ -163,11 +163,11 @@ }, "nur": { "locked": { - "lastModified": 1701366548, - "narHash": "sha256-+cItrtt7Tfd9SM9aQ3lCZWahfxVzWpH5bVgRyz5QDnw=", + "lastModified": 1701895548, + "narHash": "sha256-ukg5+dJSa82+CpCNmca10wLjdzVN8thlkOfswsZqf+s=", "owner": "nix-community", "repo": "NUR", - "rev": "d16468a8fc6ea13c030349f293e5958adc0e4a54", + "rev": "52bf9b8e019cd6e9ec6ff604e7b06c82ad487867", "type": "github" }, "original": { From 8398c4350a70ae08b5614b6cf6737c11471b609f Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Thu, 7 Dec 2023 14:26:36 +0000 Subject: [PATCH 165/245] hosts: homes: add work laptop --- flake/home-manager.nix | 1 + hosts/homes/ambroisie@bazin/default.nix | 17 +++++++++++++++++ 2 files changed, 18 insertions(+) create mode 100644 hosts/homes/ambroisie@bazin/default.nix diff --git a/flake/home-manager.nix b/flake/home-manager.nix index 61c9f6e..557d5c6 100644 --- a/flake/home-manager.nix +++ b/flake/home-manager.nix @@ -40,6 +40,7 @@ let }; hosts = { + "ambroisie@bazin" = "x86_64-linux"; "ambroisie@mousqueton" = "x86_64-linux"; }; in diff --git a/hosts/homes/ambroisie@bazin/default.nix b/hosts/homes/ambroisie@bazin/default.nix new file mode 100644 index 0000000..235898a --- /dev/null +++ b/hosts/homes/ambroisie@bazin/default.nix @@ -0,0 +1,17 @@ +# Google Cloudtop configuration +{ lib, pkgs, ... }: +{ + programs.git.package = lib.mkForce pkgs.emptyDirectory; + + services.gpg-agent.enable = lib.mkForce false; + + my.home = { + tmux = { + # I use scripts that use the passthrough sequence often on this host + enablePassthrough = true; + + # HTerm uses `xterm-256color` as its `$TERM`, so use that here + trueColorTerminals = [ "xterm-256color" ]; + }; + }; +} From 0b9c2309da9f33a4be355ea3f005efb4b9f06aa6 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Thu, 7 Dec 2023 14:29:59 +0000 Subject: [PATCH 166/245] home: ssh: use 'mkMerge' This will make it easier to add new options (e.g: for `mosh`). --- modules/home/ssh/default.nix | 86 +++++++++++++++++++----------------- 1 file changed, 45 insertions(+), 41 deletions(-) diff --git a/modules/home/ssh/default.nix b/modules/home/ssh/default.nix index 123190f..b5bdf76 100644 --- a/modules/home/ssh/default.nix +++ b/modules/home/ssh/default.nix @@ -7,48 +7,52 @@ in enable = my.mkDisableOption "ssh configuration"; }; - config.programs.ssh = lib.mkIf cfg.enable { - enable = true; + config = lib.mkIf cfg.enable (lib.mkMerge [ + { + programs.ssh = { + enable = true; - includes = [ - # Local configuration, not-versioned - "config.local" - ]; + includes = [ + # Local configuration, not-versioned + "config.local" + ]; - matchBlocks = { - "github.com" = { - hostname = "github.com"; - identityFile = "~/.ssh/shared_rsa"; - user = "git"; + matchBlocks = { + "github.com" = { + hostname = "github.com"; + identityFile = "~/.ssh/shared_rsa"; + user = "git"; + }; + + "gitlab.com" = { + hostname = "gitlab.com"; + identityFile = "~/.ssh/shared_rsa"; + user = "git"; + }; + + "git.sr.ht" = { + hostname = "git.sr.ht"; + identityFile = "~/.ssh/shared_rsa"; + user = "git"; + }; + + "git.belanyi.fr" = { + hostname = "git.belanyi.fr"; + identityFile = "~/.ssh/shared_rsa"; + user = "git"; + }; + + porthos = { + hostname = "91.121.177.163"; + identityFile = "~/.ssh/shared_rsa"; + user = "ambroisie"; + }; + }; + + extraConfig = '' + AddKeysToAgent yes + ''; }; - - "gitlab.com" = { - hostname = "gitlab.com"; - identityFile = "~/.ssh/shared_rsa"; - user = "git"; - }; - - "git.sr.ht" = { - hostname = "git.sr.ht"; - identityFile = "~/.ssh/shared_rsa"; - user = "git"; - }; - - "git.belanyi.fr" = { - hostname = "git.belanyi.fr"; - identityFile = "~/.ssh/shared_rsa"; - user = "git"; - }; - - porthos = { - hostname = "91.121.177.163"; - identityFile = "~/.ssh/shared_rsa"; - user = "ambroisie"; - }; - }; - - extraConfig = '' - AddKeysToAgent yes - ''; - }; + } + ]); } From 0164d120876cb1187d13797930ad8021faafbcc9 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Thu, 7 Dec 2023 14:31:32 +0000 Subject: [PATCH 167/245] home: ssh: move 'mosh' configuration --- modules/home/packages/default.nix | 1 - modules/home/ssh/default.nix | 14 +++++++++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/modules/home/packages/default.nix b/modules/home/packages/default.nix index 0cfa3b3..be89503 100644 --- a/modules/home/packages/default.nix +++ b/modules/home/packages/default.nix @@ -20,7 +20,6 @@ in config.home.packages = with pkgs; lib.mkIf cfg.enable ([ fd file - mosh ripgrep ] ++ cfg.additionalPackages); } diff --git a/modules/home/ssh/default.nix b/modules/home/ssh/default.nix index b5bdf76..674cf6a 100644 --- a/modules/home/ssh/default.nix +++ b/modules/home/ssh/default.nix @@ -1,10 +1,16 @@ -{ config, lib, ... }: +{ config, lib, pkgs, ... }: let cfg = config.my.home.ssh; in { options.my.home.ssh = with lib; { enable = my.mkDisableOption "ssh configuration"; + + mosh = { + enable = my.mkDisableOption "mosh configuration"; + + package = mkPackageOption pkgs "mosh" { }; + }; }; config = lib.mkIf cfg.enable (lib.mkMerge [ @@ -54,5 +60,11 @@ in ''; }; } + + (lib.mkIf cfg.mosh.enable { + home.packages = [ + cfg.mosh.package + ]; + }) ]); } From 792d997dc961193f6e5d1924e87f4fc4ee5175ec Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Thu, 7 Dec 2023 14:34:17 +0000 Subject: [PATCH 168/245] hosts: homes: bazin: disable 'mosh' package --- hosts/homes/ambroisie@bazin/default.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/hosts/homes/ambroisie@bazin/default.nix b/hosts/homes/ambroisie@bazin/default.nix index 235898a..193a6af 100644 --- a/hosts/homes/ambroisie@bazin/default.nix +++ b/hosts/homes/ambroisie@bazin/default.nix @@ -13,5 +13,11 @@ # HTerm uses `xterm-256color` as its `$TERM`, so use that here trueColorTerminals = [ "xterm-256color" ]; }; + + ssh = { + mosh = { + package = pkgs.emptyDirectory; + }; + }; }; } From afda437f49688307875b427dcb5ecee5170bbfea Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Thu, 7 Dec 2023 14:37:47 +0000 Subject: [PATCH 169/245] home: git: allow overriding default package --- modules/home/git/default.nix | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/modules/home/git/default.nix b/modules/home/git/default.nix index 4dba01e..9c10257 100644 --- a/modules/home/git/default.nix +++ b/modules/home/git/default.nix @@ -7,6 +7,9 @@ in { options.my.home.git = with lib; { enable = my.mkDisableOption "git configuration"; + + # I want the full experience by default + package = mkPackageOption pkgs "git" { default = [ "gitFull" ]; }; }; config.home.packages = with pkgs; lib.mkIf cfg.enable [ @@ -22,8 +25,7 @@ in userEmail = mkMailAddress "bruno" "belanyi.fr"; userName = "Bruno BELANYI"; - # I want the full experience - package = pkgs.gitFull; + inherit (cfg) package; aliases = { git = "!git"; From 3a7f4d126d7fc0e04e04881f1078af791aa58fc0 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Thu, 7 Dec 2023 14:40:15 +0000 Subject: [PATCH 170/245] hosts: homes: mousqueton: migrate 'git.package' --- hosts/homes/ambroisie@mousqueton/default.nix | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/hosts/homes/ambroisie@mousqueton/default.nix b/hosts/homes/ambroisie@mousqueton/default.nix index 06ee817..5c0a963 100644 --- a/hosts/homes/ambroisie@mousqueton/default.nix +++ b/hosts/homes/ambroisie@mousqueton/default.nix @@ -4,11 +4,13 @@ # Google specific configuration home.homeDirectory = "/usr/local/google/home/ambroisie"; - programs.git.package = lib.mkForce pkgs.emptyDirectory; - services.gpg-agent.enable = lib.mkForce false; my.home = { + git = { + package = pkgs.emptyDirectory; + }; + tmux = { # I use scripts that use the passthrough sequence often on this host enablePassthrough = true; From 20ab6795423903ac269bf318e9d3b64df00052f1 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Thu, 7 Dec 2023 14:40:21 +0000 Subject: [PATCH 171/245] hosts: homes: bazin: migrate 'git.package' --- hosts/homes/ambroisie@bazin/default.nix | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/hosts/homes/ambroisie@bazin/default.nix b/hosts/homes/ambroisie@bazin/default.nix index 193a6af..4490c51 100644 --- a/hosts/homes/ambroisie@bazin/default.nix +++ b/hosts/homes/ambroisie@bazin/default.nix @@ -1,11 +1,13 @@ # Google Cloudtop configuration { lib, pkgs, ... }: { - programs.git.package = lib.mkForce pkgs.emptyDirectory; - services.gpg-agent.enable = lib.mkForce false; my.home = { + git = { + package = pkgs.emptyDirectory; + }; + tmux = { # I use scripts that use the passthrough sequence often on this host enablePassthrough = true; From bdc3e63fff4442f7344c782c3cd023e0e5faf1ec Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Thu, 7 Dec 2023 20:30:35 +0000 Subject: [PATCH 172/245] flake: home-manager: refactor 'hosts' -> 'homes' This makes more sense as a name. --- flake/home-manager.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/flake/home-manager.nix b/flake/home-manager.nix index 557d5c6..34af375 100644 --- a/flake/home-manager.nix +++ b/flake/home-manager.nix @@ -39,7 +39,7 @@ let }; }; - hosts = { + homes = { "ambroisie@bazin" = "x86_64-linux"; "ambroisie@mousqueton" = "x86_64-linux"; }; @@ -50,13 +50,13 @@ in legacyPackages = { homeConfigurations = let - filteredHosts = lib.filterAttrs (_: v: v == system) hosts; - allHosts = filteredHosts // { + filteredHomes = lib.filterAttrs (_: v: v == system) homes; + allHomes = filteredHomes // { # Default configuration ambroisie = system; }; in - lib.mapAttrs mkHome allHosts; + lib.mapAttrs mkHome allHomes; }; }; } From 3ed2fac3db4553f5101125ce98959a9303377976 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Thu, 7 Dec 2023 21:22:09 +0000 Subject: [PATCH 173/245] flake: nixos: use module-provided 'lib' I can't use `self.lib` to define options, that would result in infinite recursion. --- flake/nixos.nix | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/flake/nixos.nix b/flake/nixos.nix index fe124d7..b48b551 100644 --- a/flake/nixos.nix +++ b/flake/nixos.nix @@ -1,7 +1,5 @@ -{ self, inputs, ... }: +{ self, inputs, lib, ... }: let - inherit (self) lib; - defaultModules = [ { # Let 'nixos-version --json' know about the Git revision @@ -23,7 +21,7 @@ let ]; specialArgs = { # Use my extended lib in NixOS configuration - inherit lib; + inherit (self) lib; # Inject inputs to use them in global registry inherit inputs; }; From 22fa05ca0c648c6a2652e653d13a35498e58ac8d Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Fri, 8 Dec 2023 11:49:52 +0000 Subject: [PATCH 174/245] home: packages: refactor config format --- modules/home/packages/default.nix | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/modules/home/packages/default.nix b/modules/home/packages/default.nix index be89503..6e3efcd 100644 --- a/modules/home/packages/default.nix +++ b/modules/home/packages/default.nix @@ -17,9 +17,11 @@ in }; }; - config.home.packages = with pkgs; lib.mkIf cfg.enable ([ - fd - file - ripgrep - ] ++ cfg.additionalPackages); + config = lib.mkIf cfg.enable { + home.packages = with pkgs; ([ + fd + file + ripgrep + ] ++ cfg.additionalPackages); + }; } From 16fade92b4d5ef718e0c84a1b24d5478c4bd4b9e Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Fri, 8 Dec 2023 11:50:44 +0000 Subject: [PATCH 175/245] home: packages: add 'allowAliases', 'allowUnfree' With [1], this should now be taken into account properly. [1]: https://github.com/nix-community/home-manager/pull/4304 --- modules/home/packages/default.nix | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/modules/home/packages/default.nix b/modules/home/packages/default.nix index 6e3efcd..1362a06 100644 --- a/modules/home/packages/default.nix +++ b/modules/home/packages/default.nix @@ -6,6 +6,10 @@ in options.my.home.packages = with lib; { enable = my.mkDisableOption "user packages"; + allowAliases = mkEnableOption "allow package aliases"; + + allowUnfree = my.mkDisableOption "allow unfree packages"; + additionalPackages = mkOption { type = with types; listOf package; default = [ ]; @@ -23,5 +27,9 @@ in file ripgrep ] ++ cfg.additionalPackages); + + nixpkgs.config = { + inherit (cfg) allowAliases allowUnfree; + }; }; } From f23e6251cef53dd00d512f36fb61ce0a92991ca7 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Tue, 12 Dec 2023 14:09:10 +0000 Subject: [PATCH 176/245] nixos: services: wireguard: add VPN conflicts It's now easier to do the right thing when starting a VPN service, whether the other one is running or not. --- modules/nixos/services/wireguard/default.nix | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/modules/nixos/services/wireguard/default.nix b/modules/nixos/services/wireguard/default.nix index fc5518d..a213e71 100644 --- a/modules/nixos/services/wireguard/default.nix +++ b/modules/nixos/services/wireguard/default.nix @@ -261,5 +261,17 @@ in (lib.mkIf (cfg.internal.enable && !cfg.internal.startAtBoot) { systemd.services."wg-quick-${cfg.internal.name}".wantedBy = lib.mkForce [ ]; }) + + # Make systemd shut down one service when starting the other + (lib.mkIf (cfg.internal.enable) { + systemd.services."wg-quick-${cfg.iface}" = { + conflicts = [ "wg-quick-${cfg.internal.name}.service" ]; + after = [ "wg-quick-${cfg.internal.name}.service" ]; + }; + systemd.services."wg-quick-${cfg.internal.name}" = { + conflicts = [ "wg-quick-${cfg.iface}.service" ]; + after = [ "wg-quick-${cfg.iface}.service" ]; + }; + }) ]); } From 9ddd59eac8eab6b233372117cb36c7d2618b905a Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Thu, 14 Dec 2023 11:08:15 +0000 Subject: [PATCH 177/245] nixos: system: add polkit One nice thing is that it enables the prompts when using `systemctl`, instead of requiring `sudo`. --- modules/nixos/system/default.nix | 1 + modules/nixos/system/polkit/default.nix | 16 ++++++++++++++++ 2 files changed, 17 insertions(+) create mode 100644 modules/nixos/system/polkit/default.nix diff --git a/modules/nixos/system/default.nix b/modules/nixos/system/default.nix index e7a4dd3..e6fb25b 100644 --- a/modules/nixos/system/default.nix +++ b/modules/nixos/system/default.nix @@ -10,6 +10,7 @@ ./nix ./packages ./podman + ./polkit ./printing ./users ]; diff --git a/modules/nixos/system/polkit/default.nix b/modules/nixos/system/polkit/default.nix new file mode 100644 index 0000000..1e5b573 --- /dev/null +++ b/modules/nixos/system/polkit/default.nix @@ -0,0 +1,16 @@ +# Polkit settings +{ config, lib, ... }: +let + cfg = config.my.system.polkit; +in +{ + options.my.system.polkit = with lib; { + enable = my.mkDisableOption "polkit configuration"; + }; + + config = lib.mkIf cfg.enable { + security.polkit = { + enable = true; + }; + }; +} From 1faa8d9acff1857537d3fb35768de2ede64e6b36 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Thu, 14 Dec 2023 11:10:14 +0000 Subject: [PATCH 178/245] nixos: services: wireguard: add 'simpleManagement' This makes it easier to manage the VPN services, as they don't require a password prompt to be brought up/down. --- modules/nixos/services/wireguard/default.nix | 21 ++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/modules/nixos/services/wireguard/default.nix b/modules/nixos/services/wireguard/default.nix index a213e71..26e54e0 100644 --- a/modules/nixos/services/wireguard/default.nix +++ b/modules/nixos/services/wireguard/default.nix @@ -100,6 +100,8 @@ in options.my.services.wireguard = with lib; { enable = mkEnableOption "Wireguard VPN service"; + simpleManagement = my.mkDisableOption "manage units without password prompts"; + startAtBoot = mkEnableOption '' Should the VPN service be started at boot. Must be true for the server to work reliably. @@ -273,5 +275,24 @@ in after = [ "wg-quick-${cfg.iface}.service" ]; }; }) + + # Make it possible to manage those units without using passwords, for admins + (lib.mkIf cfg.simpleManagement { + environment.etc."polkit-1/rules.d/50-wg-quick.rules".text = '' + polkit.addRule(function(action, subject) { + if (action.id == "org.freedesktop.systemd1.manage-units") { + var unit = action.lookup("unit") + if (unit == "wg-quick-${cfg.iface}.service" || unit == "wg-quick-${cfg.internal.name}.service") { + var verb = action.lookup("verb"); + if (verb == "start" || verb == "stop" || verb == "restart") { + if (subject.isInGroup("wheel")) { + return polkit.Result.YES; + } + } + } + } + }); + ''; + }) ]); } From 33b94a7f9d894daaeab4683433ae56f02c670cb0 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Thu, 14 Dec 2023 11:41:25 +0000 Subject: [PATCH 179/245] home: wm: i3bar: add 'flatten' call This makes it easier to declare multiple blocks at once, as will be done in the next commit. --- modules/home/wm/i3bar/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/home/wm/i3bar/default.nix b/modules/home/wm/i3bar/default.nix index 645abeb..50913a4 100644 --- a/modules/home/wm/i3bar/default.nix +++ b/modules/home/wm/i3bar/default.nix @@ -17,7 +17,7 @@ in top = { icons = "awesome5"; - blocks = builtins.filter (attr: attr != { }) [ + blocks = builtins.filter (attr: attr != { }) (lib.flatten [ { block = "music"; # This format seems to remove the block when not playing, somehow @@ -92,7 +92,7 @@ in format = " $icon $timestamp.datetime(f:'%F %T') "; interval = 5; } - ]; + ]); }; }; }; From 3a2f02f001cbc9b35d4b838088aef116ba25ca51 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Thu, 14 Dec 2023 11:42:03 +0000 Subject: [PATCH 180/245] home: wm: i3bar: add VPN blocks --- modules/home/wm/default.nix | 25 +++++++++++++++++++++++++ modules/home/wm/i3bar/default.nix | 13 +++++++++++++ 2 files changed, 38 insertions(+) diff --git a/modules/home/wm/default.nix b/modules/home/wm/default.nix index 6a615e5..449918a 100644 --- a/modules/home/wm/default.nix +++ b/modules/home/wm/default.nix @@ -36,6 +36,31 @@ in i3bar = { enable = mkRelatedOption "i3bar configuration" [ "i3" ]; + + vpn = { + enable = my.mkDisableOption "VPN configuration"; + + blockConfigs = mkOption { + type = with types; listOf (attrsOf str); + default = [ + { + active_format = " VPN "; + service = "wg-quick-wg"; + } + { + active_format = " VPN (LAN) "; + service = "wg-quick-lan"; + } + ]; + example = [ + { + active_format = " WORK "; + service = "some-service-name"; + } + ]; + description = "list of block configurations, merged with the defauls"; + }; + }; }; rofi = { diff --git a/modules/home/wm/i3bar/default.nix b/modules/home/wm/i3bar/default.nix index 50913a4..5dbb505 100644 --- a/modules/home/wm/i3bar/default.nix +++ b/modules/home/wm/i3bar/default.nix @@ -59,6 +59,19 @@ in { block = "disk_space"; } + (lib.optionals cfg.vpn.enable + ( + let + defaults = { + block = "service_status"; + active_state = "Good"; + inactive_format = ""; + inactive_state = "Idle"; + }; + in + builtins.map (block: defaults // block) cfg.vpn.blockConfigs + ) + ) { block = "net"; format = " $icon{| $ssid|} $ip{| $signal_strength|} "; From 90aed6b2cab3d74c4aea5d0e72d694acdae2456c Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Thu, 14 Dec 2023 12:06:25 +0000 Subject: [PATCH 181/245] pkgs: lohr: 0.4.2. -> 0.4.5 --- pkgs/lohr/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/lohr/default.nix b/pkgs/lohr/default.nix index a83b092..ddeac7a 100644 --- a/pkgs/lohr/default.nix +++ b/pkgs/lohr/default.nix @@ -1,16 +1,16 @@ { lib, fetchFromGitHub, rustPlatform }: rustPlatform.buildRustPackage rec { pname = "lohr"; - version = "0.4.2"; + version = "0.4.5"; src = fetchFromGitHub { owner = "alarsyo"; repo = "lohr"; rev = "v${version}"; - hash = "sha256-2pN/Me5fCdE++TzBUswPXzjuUIIB7Uck+Scp361JgE4="; + hash = "sha256-p6E/r+OxFTpxDpOKSlacOxvRLfHSKg1mHNAfTytfqDY="; }; - cargoHash = "sha256-YHg4b6rKcnVJSDoWh9/o+p40NBog65Gd2/UwIDXiUe0="; + cargoHash = "sha256-hext0S0o9D9pN9epzXtD5dwAYMPCLpBBOBT4FX0mTMk="; meta = with lib; { description = "Git mirroring daemon"; From 401972cb42ea23af201327f52d6724e420f904cf Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Thu, 14 Dec 2023 13:43:41 +0000 Subject: [PATCH 182/245] flake: bump inputs --- flake.lock | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/flake.lock b/flake.lock index c2baaaf..adff398 100644 --- a/flake.lock +++ b/flake.lock @@ -131,11 +131,11 @@ ] }, "locked": { - "lastModified": 1701728041, - "narHash": "sha256-x0pyrI1vC8evVDxCxyO6olOyr4wlFg9+VS3C3p4xFYQ=", + "lastModified": 1702538064, + "narHash": "sha256-At5GwJPu2tzvS9dllhBoZmqK6lkkh/sOp2YefWRlaL8=", "owner": "nix-community", "repo": "home-manager", - "rev": "ac7216918cd65f3824ba7817dea8f22e61221eaf", + "rev": "0e2e443ff24f9d75925e91b89d1da44b863734af", "type": "github" }, "original": { @@ -147,11 +147,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1701436327, - "narHash": "sha256-tRHbnoNI8SIM5O5xuxOmtSLnswEByzmnQcGGyNRjxsE=", + "lastModified": 1702312524, + "narHash": "sha256-gkZJRDBUCpTPBvQk25G0B7vfbpEYM5s5OZqghkjZsnE=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "91050ea1e57e50388fa87a3302ba12d188ef723a", + "rev": "a9bf124c46ef298113270b1f84a164865987a91c", "type": "github" }, "original": { @@ -163,11 +163,11 @@ }, "nur": { "locked": { - "lastModified": 1701895548, - "narHash": "sha256-ukg5+dJSa82+CpCNmca10wLjdzVN8thlkOfswsZqf+s=", + "lastModified": 1702558663, + "narHash": "sha256-MHq/DdwsBwsTRqwFg1JuFtcoGArgvaH/XwbxgWQ4Zn0=", "owner": "nix-community", "repo": "NUR", - "rev": "52bf9b8e019cd6e9ec6ff604e7b06c82ad487867", + "rev": "b839a2bae27c0c14dd99dcc1f6d18f83b0af59bd", "type": "github" }, "original": { @@ -192,11 +192,11 @@ ] }, "locked": { - "lastModified": 1700922917, - "narHash": "sha256-ej2fch/T584b5K9sk1UhmZF7W6wEfDHuoUYpFN8dtvM=", + "lastModified": 1702456155, + "narHash": "sha256-I2XhXGAecdGlqi6hPWYT83AQtMgL+aa3ulA85RAEgOk=", "owner": "cachix", "repo": "pre-commit-hooks.nix", - "rev": "e5ee5c5f3844550c01d2131096c7271cec5e9b78", + "rev": "007a45d064c1c32d04e1b8a0de5ef00984c419bc", "type": "github" }, "original": { From 373545ee3882f2024efa11352de49fe5862502fe Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Thu, 14 Dec 2023 13:55:45 +0000 Subject: [PATCH 183/245] nixos: system: printing: migrate deprecated option It's recommended to only enable the IPv4 option, as most mDNS responders only register IPv4 addresses (therefore enabling IPv6 would lead to long timeouts when checking for those addresses first). --- modules/nixos/system/printing/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/nixos/system/printing/default.nix b/modules/nixos/system/printing/default.nix index a4547ef..0dfab0f 100644 --- a/modules/nixos/system/printing/default.nix +++ b/modules/nixos/system/printing/default.nix @@ -63,7 +63,7 @@ in enable = true; openFirewall = true; # Allow resolution of '.local' addresses - nssmdns = true; + nssmdns4 = true; }; }; } From e97f295470bab5accd22139aefacfdefdf833561 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Thu, 14 Dec 2023 13:49:48 +0000 Subject: [PATCH 184/245] home: firefox: use upstream 'ff2mpv-go' --- modules/home/firefox/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/home/firefox/default.nix b/modules/home/firefox/default.nix index 85a1d59..02c74f2 100644 --- a/modules/home/firefox/default.nix +++ b/modules/home/firefox/default.nix @@ -36,7 +36,7 @@ in nativeMessagingHosts = ([ ] ++ lib.optional cfg.tridactyl.enable pkgs.tridactyl-native # Watch videos using mpv - ++ lib.optional cfg.ff2mpv.enable pkgs.ambroisie.ff2mpv-go + ++ lib.optional cfg.ff2mpv.enable pkgs.ff2mpv-go ); }; From 1d50844fa42550bbbf30ea1bcd74eacb0b631bf6 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Thu, 14 Dec 2023 13:51:49 +0000 Subject: [PATCH 185/245] pkgs: remove 'ff2mpv-go' I've (finally) packaged it upstream. --- pkgs/default.nix | 2 -- 1 file changed, 2 deletions(-) diff --git a/pkgs/default.nix b/pkgs/default.nix index 664b5a4..1bf260c 100644 --- a/pkgs/default.nix +++ b/pkgs/default.nix @@ -16,8 +16,6 @@ pkgs.lib.makeScope pkgs.newScope (pkgs: { drone-scp = pkgs.callPackage ./drone-scp { }; - ff2mpv-go = pkgs.callPackage ./ff2mpv-go { }; - i3-get-window-criteria = pkgs.callPackage ./i3-get-window-criteria { }; lohr = pkgs.callPackage ./lohr { }; From 104bc05871e2ccee9de26a2a959048024c95a9dd Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Thu, 14 Dec 2023 13:50:47 +0000 Subject: [PATCH 186/245] home: wm: use upstream 'vimix-cursors' --- modules/home/wm/cursor/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/home/wm/cursor/default.nix b/modules/home/wm/cursor/default.nix index 9426232..3b58b7b 100644 --- a/modules/home/wm/cursor/default.nix +++ b/modules/home/wm/cursor/default.nix @@ -8,7 +8,7 @@ in { config = lib.mkIf cfg.enable { home.pointerCursor = { - package = pkgs.ambroisie.vimix-cursors; + package = pkgs.vimix-cursors; name = "Vimix-cursors"; x11 = { From c28959fe029fec43cbf210b64257024f0cde674d Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Thu, 14 Dec 2023 13:53:17 +0000 Subject: [PATCH 187/245] pkgs: remove 'vimix-cursors' Now that I've (finally) packaged it upstream. --- pkgs/default.nix | 2 -- pkgs/vimix-cursors/default.nix | 44 ---------------------------------- 2 files changed, 46 deletions(-) delete mode 100644 pkgs/vimix-cursors/default.nix diff --git a/pkgs/default.nix b/pkgs/default.nix index 1bf260c..f5036fe 100644 --- a/pkgs/default.nix +++ b/pkgs/default.nix @@ -32,8 +32,6 @@ pkgs.lib.makeScope pkgs.newScope (pkgs: { unified-hosts-lists = pkgs.callPackage ./unified-hosts-lists { }; - vimix-cursors = pkgs.callPackage ./vimix-cursors { }; - wifi-qr = pkgs.callPackage ./wifi-qr { }; zsh-done = pkgs.callPackage ./zsh-done { }; diff --git a/pkgs/vimix-cursors/default.nix b/pkgs/vimix-cursors/default.nix deleted file mode 100644 index 80424de..0000000 --- a/pkgs/vimix-cursors/default.nix +++ /dev/null @@ -1,44 +0,0 @@ -{ lib, python3, fetchFromGitHub, inkscape, stdenvNoCC, xcursorgen }: -let - py = python3.withPackages (ps: with ps; [ cairosvg ]); -in -stdenvNoCC.mkDerivation rec { - pname = "vimix-cursors"; - version = "unstable-2020-04-28"; - - src = fetchFromGitHub { - owner = "vinceliuice"; - repo = pname; - rev = "27ebb1935944bc986bf8ae85ee3343b8351d9823"; - hash = "sha256-bIPRrKaNQ2Eo+T6zv7qeA1z7uRHXezM0yxh+uqA01Gs="; - }; - - nativeBuildInputs = [ - inkscape - py - xcursorgen - ]; - - postPatch = '' - patchShebangs . - ''; - - buildPhase = '' - HOME="$NIX_BUILD_ROOT" ./build.sh - ''; - - installPhase = '' - install -dm 755 $out/share/icons - for color in "" "-white"; do - cp -pr dist''${color}/ "$out/share/icons/Vimix''${color}-cursors" - done - ''; - - meta = with lib; { - description = "An X cursor theme inspired by Materia design"; - homepage = "https://github.com/vinceliuice/Vimix-cursors"; - license = licenses.gpl3Only; - maintainers = with maintainers; [ ambroisie ]; - platforms = platforms.linux; - }; -} From ad40c1b1d2a63301a8884268876c2b96f56f2c1d Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Thu, 14 Dec 2023 14:16:44 +0000 Subject: [PATCH 188/245] treewide: update to nix-direnv 3.0.0 --- .envrc | 8 ++++---- templates/c++-cmake/.envrc | 4 ++-- templates/c++-meson/.envrc | 4 ++-- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.envrc b/.envrc index 9222bda..f5141c2 100644 --- a/.envrc +++ b/.envrc @@ -1,8 +1,8 @@ -if ! has nix_direnv_version || ! nix_direnv_version 2.4.0; then - source_url "https://raw.githubusercontent.com/nix-community/nix-direnv/2.4.0/direnvrc" "sha256-XQzUAvL6pysIJnRJyR7uVpmUSZfc7LSgWQwq/4mBr1U=" +if ! has nix_direnv_version || ! nix_direnv_version 3.0.0; then + source_url "https://raw.githubusercontent.com/nix-community/nix-direnv/3.0.0/direnvrc" "sha256-21TMnI2xWX7HkSTjFFri2UaohXVj854mgvWapWrxRXg=" fi -nix_direnv_watch_file ./flake/checks.nix -nix_direnv_watch_file ./flake/dev-shells.nix +watch_file ./flake/checks.nix +watch_file ./flake/dev-shells.nix use flake diff --git a/templates/c++-cmake/.envrc b/templates/c++-cmake/.envrc index ccf325e..de77fcb 100644 --- a/templates/c++-cmake/.envrc +++ b/templates/c++-cmake/.envrc @@ -1,5 +1,5 @@ -if ! has nix_direnv_version || ! nix_direnv_version 2.4.0; then - source_url "https://raw.githubusercontent.com/nix-community/nix-direnv/2.4.0/direnvrc" "sha256-XQzUAvL6pysIJnRJyR7uVpmUSZfc7LSgWQwq/4mBr1U=" +if ! has nix_direnv_version || ! nix_direnv_version 3.0.0; then + source_url "https://raw.githubusercontent.com/nix-community/nix-direnv/3.0.0/direnvrc" "sha256-21TMnI2xWX7HkSTjFFri2UaohXVj854mgvWapWrxRXg=" fi use flake diff --git a/templates/c++-meson/.envrc b/templates/c++-meson/.envrc index ccf325e..de77fcb 100644 --- a/templates/c++-meson/.envrc +++ b/templates/c++-meson/.envrc @@ -1,5 +1,5 @@ -if ! has nix_direnv_version || ! nix_direnv_version 2.4.0; then - source_url "https://raw.githubusercontent.com/nix-community/nix-direnv/2.4.0/direnvrc" "sha256-XQzUAvL6pysIJnRJyR7uVpmUSZfc7LSgWQwq/4mBr1U=" +if ! has nix_direnv_version || ! nix_direnv_version 3.0.0; then + source_url "https://raw.githubusercontent.com/nix-community/nix-direnv/3.0.0/direnvrc" "sha256-21TMnI2xWX7HkSTjFFri2UaohXVj854mgvWapWrxRXg=" fi use flake From 49742deb185f9c562de5259fdc3efa6f1444f66c Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Thu, 14 Dec 2023 20:08:01 +0000 Subject: [PATCH 189/245] pkgs: unified-hosts-lists: 3.12.15 -> 3.14.37 --- pkgs/unified-hosts-lists/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/unified-hosts-lists/default.nix b/pkgs/unified-hosts-lists/default.nix index 06d24ac..6a71fdf 100644 --- a/pkgs/unified-hosts-lists/default.nix +++ b/pkgs/unified-hosts-lists/default.nix @@ -1,7 +1,7 @@ { lib, fetchFromGitHub, stdenvNoCC }: stdenvNoCC.mkDerivation rec { pname = "unified-hosts-lists"; - version = "3.12.15"; + version = "3.14.37"; src = fetchFromGitHub { owner = "StevenBlack"; From 49f695bf68c4fbc6f50a7fa6412334350e71e377 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Sat, 16 Dec 2023 12:51:05 +0000 Subject: [PATCH 190/245] pkgs: remove 'drone-scp' I added it to upstream nixpkgs. --- pkgs/default.nix | 2 -- pkgs/drone-scp/default.nix | 25 ------------------------- 2 files changed, 27 deletions(-) delete mode 100644 pkgs/drone-scp/default.nix diff --git a/pkgs/default.nix b/pkgs/default.nix index f5036fe..294051c 100644 --- a/pkgs/default.nix +++ b/pkgs/default.nix @@ -14,8 +14,6 @@ pkgs.lib.makeScope pkgs.newScope (pkgs: { drone-rsync = pkgs.callPackage ./drone-rsync { }; - drone-scp = pkgs.callPackage ./drone-scp { }; - i3-get-window-criteria = pkgs.callPackage ./i3-get-window-criteria { }; lohr = pkgs.callPackage ./lohr { }; diff --git a/pkgs/drone-scp/default.nix b/pkgs/drone-scp/default.nix deleted file mode 100644 index 7437b06..0000000 --- a/pkgs/drone-scp/default.nix +++ /dev/null @@ -1,25 +0,0 @@ -{ lib, buildGoModule, fetchFromGitHub }: -buildGoModule rec { - pname = "drone-scp"; - version = "1.6.3"; - - src = fetchFromGitHub { - owner = "appleboy"; - repo = "drone-scp"; - rev = "v${version}"; - hash = "sha256-ELjPqoRR4O6gmc/PgthQuSXuSTQNzBZoAUT80zVVbV0="; - }; - - vendorHash = "sha256-/c103hTJ/Qdz2KTkdl/ACvAaSSTKcl1DQY3+Us6OxaI="; - - doCheck = false; # Needs a specific user... - - meta = with lib; { - description = '' - Copy files and artifacts via SSH using a binary, docker or Drone CI - ''; - homepage = "https://github.com/appleboy/drone-scp"; - license = licenses.mit; - mainProgram = "drone-scp"; - }; -} From 7ccb8ea8b56a54d9e48ded3ff5c5a0b0858de9ba Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Sat, 16 Dec 2023 14:28:46 +0000 Subject: [PATCH 191/245] pkgs: unbound-zones-adblock: use upstream package This is a slight regression, as the current version of `stevenblack-blocklist` is 3.13.10 and the version I packaged is 3.14.37. However I am lazy and want to avoid having to bump the version manually... --- pkgs/unbound-zones-adblock/default.nix | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/pkgs/unbound-zones-adblock/default.nix b/pkgs/unbound-zones-adblock/default.nix index b8392ae..642ac41 100644 --- a/pkgs/unbound-zones-adblock/default.nix +++ b/pkgs/unbound-zones-adblock/default.nix @@ -1,9 +1,9 @@ -{ lib, gawk, stdenvNoCC, unified-hosts-lists }: +{ lib, gawk, stdenvNoCC, stevenblack-blocklist }: stdenvNoCC.mkDerivation { name = "unbound-zones-adblock"; - version = unified-hosts-lists.version; + version = stevenblack-blocklist.rev; - src = unified-hosts-lists; + src = stevenblack-blocklist; dontUnpack = true; @@ -18,9 +18,11 @@ stdenvNoCC.mkDerivation { ]; in '' - mkdir -p $out - for file in $src/*; do - ${gawkCmd} $file | tr '[:upper:]' '[:lower:]' | sort -u > $out/$(basename $file) + shopt -s globstar + for file in $src/**/hosts; do + outFile="$out/''${file#$src}" + mkdir -p "$(dirname "$outFile")" + ${gawkCmd} $file | tr '[:upper:]' '[:lower:]' | sort -u > "$outFile" done ''; From 4aca698ac6179a626955a867094d49d539887ee8 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Sat, 16 Dec 2023 14:31:16 +0000 Subject: [PATCH 192/245] pkgs: remove 'unified-hosts-lists' Instead make use of the upstream packaged host list. --- pkgs/default.nix | 2 -- pkgs/unified-hosts-lists/default.nix | 34 ---------------------------- 2 files changed, 36 deletions(-) delete mode 100644 pkgs/unified-hosts-lists/default.nix diff --git a/pkgs/default.nix b/pkgs/default.nix index 294051c..3a8e812 100644 --- a/pkgs/default.nix +++ b/pkgs/default.nix @@ -28,8 +28,6 @@ pkgs.lib.makeScope pkgs.newScope (pkgs: { unbound-zones-adblock = pkgs.callPackage ./unbound-zones-adblock { }; - unified-hosts-lists = pkgs.callPackage ./unified-hosts-lists { }; - wifi-qr = pkgs.callPackage ./wifi-qr { }; zsh-done = pkgs.callPackage ./zsh-done { }; diff --git a/pkgs/unified-hosts-lists/default.nix b/pkgs/unified-hosts-lists/default.nix deleted file mode 100644 index 6a71fdf..0000000 --- a/pkgs/unified-hosts-lists/default.nix +++ /dev/null @@ -1,34 +0,0 @@ -{ lib, fetchFromGitHub, stdenvNoCC }: -stdenvNoCC.mkDerivation rec { - pname = "unified-hosts-lists"; - version = "3.14.37"; - - src = fetchFromGitHub { - owner = "StevenBlack"; - repo = "hosts"; - rev = version; - hash = "sha256-HoNX57lCoIr36B/7HMuazWSWeAPPfWY1oZf6dXnxYIE="; - }; - - dontUnpack = true; - - installPhase = '' - mkdir -p $out - cp -r $src/hosts $out - for file in $src/alternates/*/hosts; do - cp $file $out/$(basename $(dirname $file)) - done - ''; - - meta = with lib; { - description = "Unified host lists"; - longDescription = '' - Consolidating and extending hosts files from several well-curated sources. - Optionally pick extensions for porn, social media, and other categories. - ''; - homepage = "https://github.com/StevenBlack/hosts"; - license = licenses.mit; - maintainers = with maintainers; [ ambroisie ]; - platforms = platforms.all; - }; -} From 864e0a5ae63b9cd1f5fafdad0f9df93661f5d788 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Sat, 16 Dec 2023 16:23:04 +0000 Subject: [PATCH 193/245] home: firefox: tridactyl: fix Google mapping --- modules/home/firefox/tridactyl/tridactylrc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/home/firefox/tridactyl/tridactylrc b/modules/home/firefox/tridactyl/tridactylrc index 31d3cb7..0401292 100644 --- a/modules/home/firefox/tridactyl/tridactylrc +++ b/modules/home/firefox/tridactyl/tridactylrc @@ -22,8 +22,8 @@ bind ;c hint -Jc [class*="expand"],[class*="togg"],[class="comment_folder"] bindurl reddit.com gu urlparent 3 " Only hint search results on Google -bindurl www.google.com f hint -Jc #search div:not(.action-menu) > a -bindurl www.google.com F hint -Jbc #search div:not(.action-menu) > a +bindurl www.google.com f hint -Jc #search a +bindurl www.google.com F hint -Jbc #search a " Only hint search results on DuckDuckGo bindurl ^https://duckduckgo.com f hint -Jc [data-testid="result-title-a"] From 066a33587debe4a4c8e9465882d39cb3160e7142 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Sat, 16 Dec 2023 20:24:38 +0000 Subject: [PATCH 194/245] home: mpv: add uosc script --- modules/home/mpv/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/home/mpv/default.nix b/modules/home/mpv/default.nix index 9aef379..931c252 100644 --- a/modules/home/mpv/default.nix +++ b/modules/home/mpv/default.nix @@ -13,6 +13,7 @@ in scripts = [ pkgs.mpvScripts.mpris # Allow controlling using media keys + pkgs.mpvScripts.uosc # Nicer UI ]; }; }; From a657a7742eec560caaca8d4925b83671490cb548 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Mon, 18 Dec 2023 09:41:35 +0000 Subject: [PATCH 195/245] home: wm: i3bar: fix 'net' block when disconnected I still sometimes get the error message about not being able to format the block, this should fix it. --- modules/home/wm/i3bar/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/home/wm/i3bar/default.nix b/modules/home/wm/i3bar/default.nix index 5dbb505..5ae0e7d 100644 --- a/modules/home/wm/i3bar/default.nix +++ b/modules/home/wm/i3bar/default.nix @@ -74,7 +74,7 @@ in ) { block = "net"; - format = " $icon{| $ssid|} $ip{| $signal_strength|} "; + format = " $icon{| $ssid|}{| $ip|}{| $signal_strength|} "; } { block = "backlight"; From 13d85c30f98eacbc512fcf27bb76ede4dd30f7ef Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Tue, 19 Dec 2023 19:08:10 +0100 Subject: [PATCH 196/245] pkgs: remove 'wifi-qr' Now that I added it to upstream, I can get rid of it. --- pkgs/default.nix | 2 - pkgs/wifi-qr/default.nix | 81 ---------------------------------------- 2 files changed, 83 deletions(-) delete mode 100644 pkgs/wifi-qr/default.nix diff --git a/pkgs/default.nix b/pkgs/default.nix index 3a8e812..6b7fce1 100644 --- a/pkgs/default.nix +++ b/pkgs/default.nix @@ -28,7 +28,5 @@ pkgs.lib.makeScope pkgs.newScope (pkgs: { unbound-zones-adblock = pkgs.callPackage ./unbound-zones-adblock { }; - wifi-qr = pkgs.callPackage ./wifi-qr { }; - zsh-done = pkgs.callPackage ./zsh-done { }; }) diff --git a/pkgs/wifi-qr/default.nix b/pkgs/wifi-qr/default.nix deleted file mode 100644 index 88164e5..0000000 --- a/pkgs/wifi-qr/default.nix +++ /dev/null @@ -1,81 +0,0 @@ -{ lib -, fetchFromGitHub -, gnome -, installShellFiles -, makeWrapper -, networkmanager -, qrencode -, stdenvNoCC -, xdg-utils -, zbar -}: -stdenvNoCC.mkDerivation rec { - pname = "wifi-qr"; - version = "unstable-2023-04-19"; - - outputs = [ "out" "man" ]; - - src = fetchFromGitHub { - owner = "kokoye2007"; - repo = "wifi-qr"; - rev = "b81d4a44257252f07e745464879aa5618ae3d434"; - hash = "sha256-oGTAr+raJGpK4PV4GdBxX8fIUE8gcbXw7W0SvQJAee0="; - }; - - nativeBuildInputs = [ - installShellFiles - makeWrapper - ]; - - dontBuild = true; - - dontConfigure = true; - - postPatch = '' - substituteInPlace wifi-qr.desktop \ - --replace "Exec=sh -c 'wifi-qr g'" "Exec=$out/bin/wifi-qr g" \ - --replace "Exec=sh -c 'wifi-qr q'" "Exec=$out/bin/wifi-qr q" \ - --replace "Exec=sh -c 'wifi-qr p'" "Exec=$out/bin/wifi-qr p" \ - --replace "Exec=sh -c 'wifi-qr c'" "Exec=$out/bin/wifi-qr c" \ - --replace "Icon=wifi-qr.svg" "Icon=wifi-qr" - ''; - - installPhase = '' - runHook preInstall - - install -Dm755 wifi-qr $out/bin/wifi-qr - - install -Dm644 wifi-qr.desktop $out/share/applications/wifi-qr.desktop - install -Dm644 wifi-qr.svg $out/share/icons/hicolor/scalable/apps/wifi-qr.svg - - installManPage wifi-qr.1 - - runHook postInstall - ''; - - wrapperPath = lib.makeBinPath [ - gnome.zenity - networkmanager - qrencode - xdg-utils - zbar - ]; - - fixupPhase = '' - runHook preFixup - - patchShebangs $out/bin/wifi-qr - wrapProgram $out/bin/wifi-qr --suffix PATH : "${wrapperPath}" - - runHook postFixup - ''; - - meta = with lib; { - description = "WiFi password sharing via QR codes"; - homepage = "https://github.com/kokoye2007/wifi-qr"; - license = with licenses; [ gpl3Plus ]; - mainProgram = "wifi-qr"; - maintainers = with maintainers; [ ambroisie ]; - platforms = platforms.linux; - }; -} From 26950332c7176f98e3a35273d6e8bdd7118a1352 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Tue, 19 Dec 2023 22:00:32 +0100 Subject: [PATCH 197/245] home: keyboard: extract from X module This deserves to be its own standalone module, as I would want to use it in both X and Wayland, etc... --- modules/home/default.nix | 1 + modules/home/{x => }/keyboard/default.nix | 6 +++++- modules/home/x/default.nix | 4 ---- 3 files changed, 6 insertions(+), 5 deletions(-) rename modules/home/{x => }/keyboard/default.nix (50%) diff --git a/modules/home/default.nix b/modules/home/default.nix index 8ba3a8d..4dcfc35 100644 --- a/modules/home/default.nix +++ b/modules/home/default.nix @@ -23,6 +23,7 @@ ./gtk ./htop ./jq + ./keyboard ./mail ./mpv ./nix diff --git a/modules/home/x/keyboard/default.nix b/modules/home/keyboard/default.nix similarity index 50% rename from modules/home/x/keyboard/default.nix rename to modules/home/keyboard/default.nix index 40af800..2216a08 100644 --- a/modules/home/x/keyboard/default.nix +++ b/modules/home/keyboard/default.nix @@ -1,8 +1,12 @@ { config, lib, ... }: let - cfg = config.my.home.x; + cfg = config.my.home.keyboard; in { + options.my.home.keyboard = with lib; { + enable = my.mkDisableOption "keyboard configuration"; + }; + config = lib.mkIf cfg.enable { home.keyboard = { layout = "fr"; diff --git a/modules/home/x/default.nix b/modules/home/x/default.nix index 0312bc4..c320e52 100644 --- a/modules/home/x/default.nix +++ b/modules/home/x/default.nix @@ -3,10 +3,6 @@ let cfg = config.my.home.x; in { - imports = [ - ./keyboard - ]; - options.my.home.x = with lib; { enable = mkEnableOption "X server configuration"; }; From faa87743e5f54be48874282aa4d244a1482e6e72 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Mon, 25 Dec 2023 19:25:08 +0100 Subject: [PATCH 198/245] nixos: services: nginx: use attrset for vhosts Attribute sets compose better than lists, it was a mistake to use a list in the first place... --- modules/nixos/services/blog/default.nix | 2 +- .../nixos/services/calibre-web/default.nix | 8 ++-- .../nixos/services/drone/server/default.nix | 8 ++-- modules/nixos/services/flood/default.nix | 8 ++-- modules/nixos/services/gitea/default.nix | 12 +++--- modules/nixos/services/indexers/default.nix | 24 ++++++------ modules/nixos/services/jellyfin/default.nix | 8 ++-- modules/nixos/services/lohr/default.nix | 8 ++-- modules/nixos/services/matrix/default.nix | 20 +++++----- modules/nixos/services/miniflux/default.nix | 8 ++-- modules/nixos/services/monitoring/default.nix | 8 ++-- modules/nixos/services/navidrome/default.nix | 8 ++-- modules/nixos/services/nginx/default.nix | 38 +++++++++---------- modules/nixos/services/nix-cache/default.nix | 8 ++-- modules/nixos/services/paperless/default.nix | 8 ++-- modules/nixos/services/pirate/default.nix | 8 ++-- modules/nixos/services/podgrab/default.nix | 8 ++-- modules/nixos/services/sabnzbd/default.nix | 8 ++-- .../services/tandoor-recipes/default.nix | 8 ++-- .../nixos/services/transmission/default.nix | 8 ++-- modules/nixos/services/vikunja/default.nix | 8 ++-- .../services/woodpecker/server/default.nix | 12 +++--- 22 files changed, 118 insertions(+), 118 deletions(-) diff --git a/modules/nixos/services/blog/default.nix b/modules/nixos/services/blog/default.nix index 4b646c3..38ada5e 100644 --- a/modules/nixos/services/blog/default.nix +++ b/modules/nixos/services/blog/default.nix @@ -9,7 +9,7 @@ let root = "/var/www/${subdomain}"; }; - hostsInfo = map makeHostInfo [ "cv" "dev" "key" ]; + hostsInfo = lib.flip lib.genAttrs makeHostInfo [ "cv" "dev" "key" ]; in { options.my.services.blog = { diff --git a/modules/nixos/services/calibre-web/default.nix b/modules/nixos/services/calibre-web/default.nix index 858851c..fe53b7e 100644 --- a/modules/nixos/services/calibre-web/default.nix +++ b/modules/nixos/services/calibre-web/default.nix @@ -40,12 +40,12 @@ in # Set-up media group users.groups.media = { }; - my.services.nginx.virtualHosts = [ - { + my.services.nginx.virtualHosts = { + library = { subdomain = "library"; inherit (cfg) port; - } - ]; + }; + }; my.services.backup = { paths = [ diff --git a/modules/nixos/services/drone/server/default.nix b/modules/nixos/services/drone/server/default.nix index d651f85..2207765 100644 --- a/modules/nixos/services/drone/server/default.nix +++ b/modules/nixos/services/drone/server/default.nix @@ -45,11 +45,11 @@ in }]; }; - my.services.nginx.virtualHosts = [ - { + my.services.nginx.virtualHosts = { + drone = { subdomain = "drone"; inherit (cfg) port; - } - ]; + }; + }; }; } diff --git a/modules/nixos/services/flood/default.nix b/modules/nixos/services/flood/default.nix index ff5d941..e227dde 100644 --- a/modules/nixos/services/flood/default.nix +++ b/modules/nixos/services/flood/default.nix @@ -40,11 +40,11 @@ in }; }; - my.services.nginx.virtualHosts = [ - { + my.services.nginx.virtualHosts = { + flood = { subdomain = "flood"; inherit (cfg) port; - } - ]; + }; + }; }; } diff --git a/modules/nixos/services/gitea/default.nix b/modules/nixos/services/gitea/default.nix index 00ba941..4d5429e 100644 --- a/modules/nixos/services/gitea/default.nix +++ b/modules/nixos/services/gitea/default.nix @@ -116,18 +116,18 @@ in }; users.groups.git = { }; - my.services.nginx.virtualHosts = [ + my.services.nginx.virtualHosts = { # Proxy to Gitea - { + git = { subdomain = "git"; inherit (cfg) port; - } + }; # Redirect `gitea.` to actual forge subdomain - { + gitea = { subdomain = "gitea"; redirect = config.services.gitea.settings.server.ROOT_URL; - } - ]; + }; + }; my.services.backup = { paths = [ diff --git a/modules/nixos/services/indexers/default.nix b/modules/nixos/services/indexers/default.nix index fb06a0b..ff2d91c 100644 --- a/modules/nixos/services/indexers/default.nix +++ b/modules/nixos/services/indexers/default.nix @@ -28,12 +28,12 @@ in }; }; - my.services.nginx.virtualHosts = [ - { + my.services.nginx.virtualHosts = { + jackett = { subdomain = "jackett"; port = jackettPort; - } - ]; + }; + }; }) (lib.mkIf cfg.nzbhydra.enable { @@ -41,12 +41,12 @@ in enable = true; }; - my.services.nginx.virtualHosts = [ - { + my.services.nginx.virtualHosts = { + nzbhydra = { subdomain = "nzbhydra"; port = nzbhydraPort; - } - ]; + }; + }; }) (lib.mkIf cfg.prowlarr.enable { @@ -54,12 +54,12 @@ in enable = true; }; - my.services.nginx.virtualHosts = [ - { + my.services.nginx.virtualHosts = { + prowlarr = { subdomain = "prowlarr"; port = prowlarrPort; - } - ]; + }; + }; services.fail2ban.jails = { prowlarr = '' diff --git a/modules/nixos/services/jellyfin/default.nix b/modules/nixos/services/jellyfin/default.nix index 2fcf51e..326dab3 100644 --- a/modules/nixos/services/jellyfin/default.nix +++ b/modules/nixos/services/jellyfin/default.nix @@ -17,8 +17,8 @@ in # Set-up media group users.groups.media = { }; - my.services.nginx.virtualHosts = [ - { + my.services.nginx.virtualHosts = { + jellyfin = { subdomain = "jellyfin"; port = 8096; extraConfig = { @@ -33,7 +33,7 @@ in proxyWebsockets = true; }; }; - } - ]; + }; + }; }; } diff --git a/modules/nixos/services/lohr/default.nix b/modules/nixos/services/lohr/default.nix index 245567c..af292cc 100644 --- a/modules/nixos/services/lohr/default.nix +++ b/modules/nixos/services/lohr/default.nix @@ -98,11 +98,11 @@ in }; users.groups.lohr = { }; - my.services.nginx.virtualHosts = [ - { + my.services.nginx.virtualHosts = { + lohr = { subdomain = "lohr"; inherit (cfg) port; - } - ]; + }; + }; }; } diff --git a/modules/nixos/services/matrix/default.nix b/modules/nixos/services/matrix/default.nix index 52b60c5..3328747 100644 --- a/modules/nixos/services/matrix/default.nix +++ b/modules/nixos/services/matrix/default.nix @@ -117,9 +117,9 @@ in }; }; - my.services.nginx.virtualHosts = [ + my.services.nginx.virtualHosts = { # Element Web app deployment - { + chat = { subdomain = "chat"; root = pkgs.element-web.override { conf = { @@ -145,22 +145,22 @@ in }; }; }; - } + }; # Dummy VHosts for port collision detection - { + matrix-federation = { subdomain = "matrix-federation"; port = federationPort.private; - } - { + }; + matrix-client = { subdomain = "matrix-client"; port = clientPort.private; - } + }; # Sliding sync - { + matrix-sync = { subdomain = "matrix-sync"; inherit (cfg.slidingSync) port; - } - ]; + }; + }; # Those are too complicated to use my wrapper... services.nginx.virtualHosts = { diff --git a/modules/nixos/services/miniflux/default.nix b/modules/nixos/services/miniflux/default.nix index 6d9ffc8..07eb6f8 100644 --- a/modules/nixos/services/miniflux/default.nix +++ b/modules/nixos/services/miniflux/default.nix @@ -43,11 +43,11 @@ in }; }; - my.services.nginx.virtualHosts = [ - { + my.services.nginx.virtualHosts = { + reader = { subdomain = "reader"; inherit (cfg) port; - } - ]; + }; + }; }; } diff --git a/modules/nixos/services/monitoring/default.nix b/modules/nixos/services/monitoring/default.nix index 829bfe0..2f23ff0 100644 --- a/modules/nixos/services/monitoring/default.nix +++ b/modules/nixos/services/monitoring/default.nix @@ -125,11 +125,11 @@ in ]; }; - my.services.nginx.virtualHosts = [ - { + my.services.nginx.virtualHosts = { + monitoring = { subdomain = "monitoring"; inherit (cfg.grafana) port; - } - ]; + }; + }; }; } diff --git a/modules/nixos/services/navidrome/default.nix b/modules/nixos/services/navidrome/default.nix index 6c001fd..92f9fd2 100644 --- a/modules/nixos/services/navidrome/default.nix +++ b/modules/nixos/services/navidrome/default.nix @@ -47,11 +47,11 @@ in }; }; - my.services.nginx.virtualHosts = [ - { + my.services.nginx.virtualHosts = { + music = { subdomain = "music"; inherit (cfg) port; - } - ]; + }; + }; }; } diff --git a/modules/nixos/services/nginx/default.nix b/modules/nixos/services/nginx/default.nix index 6ca2e42..53c947b 100644 --- a/modules/nixos/services/nginx/default.nix +++ b/modules/nixos/services/nginx/default.nix @@ -97,19 +97,19 @@ in }; virtualHosts = mkOption { - type = types.listOf virtualHostOption; - default = [ ]; + type = types.attrsOf virtualHostOption; + default = { }; example = litteralExample '' - [ - { - subdomain = "gitea"; + { + gitea = { + subdomain = "git"; port = 8080; - } - { + }; + dev = { subdomain = "dev"; root = "/var/www/dev"; - } - { + }; + jellyfin = { subdomain = "jellyfin"; port = 8096; extraConfig = { @@ -118,8 +118,8 @@ in proxyWebsockets = true; }; }; - } - ] + }; + } ''; description = '' List of virtual hosts to set-up using default settings. @@ -190,7 +190,7 @@ in config = lib.mkIf cfg.enable { assertions = [ ] - ++ (lib.flip builtins.map cfg.virtualHosts ({ subdomain, ... } @ args: + ++ (lib.flip lib.mapAttrsToList cfg.virtualHosts (_: { subdomain, ... } @ args: let conflicts = [ "port" "root" "socket" "redirect" ]; optionsNotNull = builtins.map (v: args.${v} != null) conflicts; @@ -209,7 +209,7 @@ in ports = lib.my.mapFilter (v: v != null) ({ port, ... }: port) - cfg.virtualHosts; + (lib.attrValues cfg.virtualHosts); portCounts = lib.my.countValues ports; nonUniquesCounts = lib.filterAttrs (_: v: v != 1) portCounts; nonUniques = builtins.attrNames nonUniquesCounts; @@ -221,7 +221,7 @@ in map mkAssertion nonUniques ) ++ ( let - subs = map ({ subdomain, ... }: subdomain) cfg.virtualHosts; + subs = lib.mapAttrsToList (_: { subdomain, ... }: subdomain) cfg.virtualHosts; subsCounts = lib.my.countValues subs; nonUniquesCounts = lib.filterAttrs (_: v: v != 1) subsCounts; nonUniques = builtins.attrNames nonUniquesCounts; @@ -325,7 +325,7 @@ in ]) ); in - lib.my.genAttrs' cfg.virtualHosts mkVHost; + lib.my.genAttrs' (lib.attrValues cfg.virtualHosts) mkVHost; sso = { enable = true; @@ -403,12 +403,12 @@ in }; }; - my.services.nginx.virtualHosts = [ - { + my.services.nginx.virtualHosts = { + login = { subdomain = "login"; inherit (cfg.sso) port; - } - ]; + }; + }; networking.firewall.allowedTCPPorts = [ 80 443 ]; diff --git a/modules/nixos/services/nix-cache/default.nix b/modules/nixos/services/nix-cache/default.nix index b3bdbf3..5517a78 100644 --- a/modules/nixos/services/nix-cache/default.nix +++ b/modules/nixos/services/nix-cache/default.nix @@ -43,11 +43,11 @@ in signKeyPath = cfg.secretKeyFile; }; - my.services.nginx.virtualHosts = [ - { + my.services.nginx.virtualHosts = { + cache = { subdomain = "cache"; inherit (cfg) port; - } - ]; + }; + }; }; } diff --git a/modules/nixos/services/paperless/default.nix b/modules/nixos/services/paperless/default.nix index 90f6b0c..87a816a 100644 --- a/modules/nixos/services/paperless/default.nix +++ b/modules/nixos/services/paperless/default.nix @@ -143,8 +143,8 @@ in extraGroups = [ "media" ]; }; - my.services.nginx.virtualHosts = [ - { + my.services.nginx.virtualHosts = { + paperless = { subdomain = "paperless"; inherit (cfg) port; sso = { @@ -155,8 +155,8 @@ in extraConfig = { locations."/".proxyWebsockets = true; }; - } - ]; + }; + }; my.services.backup = { paths = [ diff --git a/modules/nixos/services/pirate/default.nix b/modules/nixos/services/pirate/default.nix index 59f9794..88a2250 100644 --- a/modules/nixos/services/pirate/default.nix +++ b/modules/nixos/services/pirate/default.nix @@ -21,12 +21,12 @@ let }; mkRedirection = service: { - my.services.nginx.virtualHosts = [ - { + my.services.nginx.virtualHosts = { + ${service} = { subdomain = service; port = ports.${service}; - } - ]; + }; + }; }; mkFail2Ban = service: lib.mkIf cfg.${service}.enable { diff --git a/modules/nixos/services/podgrab/default.nix b/modules/nixos/services/podgrab/default.nix index 9793d60..e59b20d 100644 --- a/modules/nixos/services/podgrab/default.nix +++ b/modules/nixos/services/podgrab/default.nix @@ -31,11 +31,11 @@ in inherit (cfg) passwordFile port; }; - my.services.nginx.virtualHosts = [ - { + my.services.nginx.virtualHosts = { + podgrab = { subdomain = "podgrab"; inherit (cfg) port; - } - ]; + }; + }; }; } diff --git a/modules/nixos/services/sabnzbd/default.nix b/modules/nixos/services/sabnzbd/default.nix index 7ab145f..42058e7 100644 --- a/modules/nixos/services/sabnzbd/default.nix +++ b/modules/nixos/services/sabnzbd/default.nix @@ -18,12 +18,12 @@ in # Set-up media group users.groups.media = { }; - my.services.nginx.virtualHosts = [ - { + my.services.nginx.virtualHosts = { + sabnzbd = { subdomain = "sabnzbd"; inherit port; - } - ]; + }; + }; services.fail2ban.jails = { sabnzbd = '' diff --git a/modules/nixos/services/tandoor-recipes/default.nix b/modules/nixos/services/tandoor-recipes/default.nix index 541e198..353fac3 100644 --- a/modules/nixos/services/tandoor-recipes/default.nix +++ b/modules/nixos/services/tandoor-recipes/default.nix @@ -70,11 +70,11 @@ in ]; }; - my.services.nginx.virtualHosts = [ - { + my.services.nginx.virtualHosts = { + recipes = { subdomain = "recipes"; inherit (cfg) port; - } - ]; + }; + }; }; } diff --git a/modules/nixos/services/transmission/default.nix b/modules/nixos/services/transmission/default.nix index 28df477..ce7f9e6 100644 --- a/modules/nixos/services/transmission/default.nix +++ b/modules/nixos/services/transmission/default.nix @@ -80,12 +80,12 @@ in # Default transmission webui, I prefer combustion but its development # seems to have stalled - my.services.nginx.virtualHosts = [ - { + my.services.nginx.virtualHosts = { + transmission = { subdomain = "transmission"; inherit (cfg) port; - } - ]; + }; + }; networking.firewall = { allowedTCPPorts = [ cfg.peerPort ]; diff --git a/modules/nixos/services/vikunja/default.nix b/modules/nixos/services/vikunja/default.nix index 8c051b0..425698d 100644 --- a/modules/nixos/services/vikunja/default.nix +++ b/modules/nixos/services/vikunja/default.nix @@ -59,8 +59,8 @@ in }; # This is a weird setup - my.services.nginx.virtualHosts = [ - { + my.services.nginx.virtualHosts = { + vikunja = { inherit subdomain; # Serve the root for the web-ui root = config.services.vikunja.package-frontend; @@ -80,8 +80,8 @@ in }; }; }; - } - ]; + }; + }; systemd.services.vikunja-api = { serviceConfig = { diff --git a/modules/nixos/services/woodpecker/server/default.nix b/modules/nixos/services/woodpecker/server/default.nix index cebbc9b..b5ec0d8 100644 --- a/modules/nixos/services/woodpecker/server/default.nix +++ b/modules/nixos/services/woodpecker/server/default.nix @@ -52,16 +52,16 @@ in }]; }; - my.services.nginx.virtualHosts = [ - { + my.services.nginx.virtualHosts = { + woodpecker = { subdomain = "woodpecker"; inherit (cfg) port; - } + }; # I might want to be able to RPC from other hosts in the future - { + woodpecker-rpc = { subdomain = "woodpecker-rpc"; port = cfg.rpcPort; - } - ]; + }; + }; }; } From b7a4bc063fb6b26064c1f626aa3bd1b3960c85b5 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Mon, 25 Dec 2023 19:28:53 +0100 Subject: [PATCH 199/245] nixos: services: nginx: add default subdomain In almost all cases, the subdomain should be the same as the attribute name... --- modules/nixos/services/nginx/default.nix | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/modules/nixos/services/nginx/default.nix b/modules/nixos/services/nginx/default.nix index 53c947b..e916c9c 100644 --- a/modules/nixos/services/nginx/default.nix +++ b/modules/nixos/services/nginx/default.nix @@ -5,10 +5,11 @@ let domain = config.networking.domain; - virtualHostOption = with lib; types.submodule { + virtualHostOption = with lib; types.submodule ({ name, ... }: { options = { subdomain = mkOption { type = types.str; + default = name; example = "dev"; description = '' Which subdomain, under config.networking.domain, to use @@ -72,7 +73,7 @@ let ''; }; }; - }; + }); in { imports = [ @@ -106,11 +107,9 @@ in port = 8080; }; dev = { - subdomain = "dev"; root = "/var/www/dev"; }; jellyfin = { - subdomain = "jellyfin"; port = 8096; extraConfig = { locations."/socket" = { From 6948424b81e41c4335c9ff13d95ce1534703d644 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Mon, 25 Dec 2023 19:42:20 +0100 Subject: [PATCH 200/245] nixos: services: remove redundant subdomains See previous commit for the defaults. --- modules/nixos/services/blog/default.nix | 1 - modules/nixos/services/calibre-web/default.nix | 1 - modules/nixos/services/drone/server/default.nix | 1 - modules/nixos/services/flood/default.nix | 1 - modules/nixos/services/gitea/default.nix | 2 -- modules/nixos/services/indexers/default.nix | 3 --- modules/nixos/services/jellyfin/default.nix | 1 - modules/nixos/services/lohr/default.nix | 1 - modules/nixos/services/matrix/default.nix | 4 ---- modules/nixos/services/miniflux/default.nix | 1 - modules/nixos/services/monitoring/default.nix | 1 - modules/nixos/services/navidrome/default.nix | 1 - modules/nixos/services/nginx/default.nix | 1 - modules/nixos/services/nix-cache/default.nix | 1 - modules/nixos/services/paperless/default.nix | 1 - modules/nixos/services/pirate/default.nix | 1 - modules/nixos/services/podgrab/default.nix | 1 - modules/nixos/services/sabnzbd/default.nix | 1 - modules/nixos/services/tandoor-recipes/default.nix | 1 - modules/nixos/services/transmission/default.nix | 1 - modules/nixos/services/vikunja/default.nix | 3 +-- modules/nixos/services/woodpecker/server/default.nix | 2 -- 22 files changed, 1 insertion(+), 30 deletions(-) diff --git a/modules/nixos/services/blog/default.nix b/modules/nixos/services/blog/default.nix index 38ada5e..3e68df2 100644 --- a/modules/nixos/services/blog/default.nix +++ b/modules/nixos/services/blog/default.nix @@ -5,7 +5,6 @@ let domain = config.networking.domain; makeHostInfo = subdomain: { - inherit subdomain; root = "/var/www/${subdomain}"; }; diff --git a/modules/nixos/services/calibre-web/default.nix b/modules/nixos/services/calibre-web/default.nix index fe53b7e..b7bf9df 100644 --- a/modules/nixos/services/calibre-web/default.nix +++ b/modules/nixos/services/calibre-web/default.nix @@ -42,7 +42,6 @@ in my.services.nginx.virtualHosts = { library = { - subdomain = "library"; inherit (cfg) port; }; }; diff --git a/modules/nixos/services/drone/server/default.nix b/modules/nixos/services/drone/server/default.nix index 2207765..a3a1e49 100644 --- a/modules/nixos/services/drone/server/default.nix +++ b/modules/nixos/services/drone/server/default.nix @@ -47,7 +47,6 @@ in my.services.nginx.virtualHosts = { drone = { - subdomain = "drone"; inherit (cfg) port; }; }; diff --git a/modules/nixos/services/flood/default.nix b/modules/nixos/services/flood/default.nix index e227dde..155e73d 100644 --- a/modules/nixos/services/flood/default.nix +++ b/modules/nixos/services/flood/default.nix @@ -42,7 +42,6 @@ in my.services.nginx.virtualHosts = { flood = { - subdomain = "flood"; inherit (cfg) port; }; }; diff --git a/modules/nixos/services/gitea/default.nix b/modules/nixos/services/gitea/default.nix index 4d5429e..4a8a3bb 100644 --- a/modules/nixos/services/gitea/default.nix +++ b/modules/nixos/services/gitea/default.nix @@ -119,12 +119,10 @@ in my.services.nginx.virtualHosts = { # Proxy to Gitea git = { - subdomain = "git"; inherit (cfg) port; }; # Redirect `gitea.` to actual forge subdomain gitea = { - subdomain = "gitea"; redirect = config.services.gitea.settings.server.ROOT_URL; }; }; diff --git a/modules/nixos/services/indexers/default.nix b/modules/nixos/services/indexers/default.nix index ff2d91c..8a42345 100644 --- a/modules/nixos/services/indexers/default.nix +++ b/modules/nixos/services/indexers/default.nix @@ -30,7 +30,6 @@ in my.services.nginx.virtualHosts = { jackett = { - subdomain = "jackett"; port = jackettPort; }; }; @@ -43,7 +42,6 @@ in my.services.nginx.virtualHosts = { nzbhydra = { - subdomain = "nzbhydra"; port = nzbhydraPort; }; }; @@ -56,7 +54,6 @@ in my.services.nginx.virtualHosts = { prowlarr = { - subdomain = "prowlarr"; port = prowlarrPort; }; }; diff --git a/modules/nixos/services/jellyfin/default.nix b/modules/nixos/services/jellyfin/default.nix index 326dab3..9efe11e 100644 --- a/modules/nixos/services/jellyfin/default.nix +++ b/modules/nixos/services/jellyfin/default.nix @@ -19,7 +19,6 @@ in my.services.nginx.virtualHosts = { jellyfin = { - subdomain = "jellyfin"; port = 8096; extraConfig = { locations."/" = { diff --git a/modules/nixos/services/lohr/default.nix b/modules/nixos/services/lohr/default.nix index af292cc..dd4eea8 100644 --- a/modules/nixos/services/lohr/default.nix +++ b/modules/nixos/services/lohr/default.nix @@ -100,7 +100,6 @@ in my.services.nginx.virtualHosts = { lohr = { - subdomain = "lohr"; inherit (cfg) port; }; }; diff --git a/modules/nixos/services/matrix/default.nix b/modules/nixos/services/matrix/default.nix index 3328747..bd2a017 100644 --- a/modules/nixos/services/matrix/default.nix +++ b/modules/nixos/services/matrix/default.nix @@ -120,7 +120,6 @@ in my.services.nginx.virtualHosts = { # Element Web app deployment chat = { - subdomain = "chat"; root = pkgs.element-web.override { conf = { default_server_config = { @@ -148,16 +147,13 @@ in }; # Dummy VHosts for port collision detection matrix-federation = { - subdomain = "matrix-federation"; port = federationPort.private; }; matrix-client = { - subdomain = "matrix-client"; port = clientPort.private; }; # Sliding sync matrix-sync = { - subdomain = "matrix-sync"; inherit (cfg.slidingSync) port; }; }; diff --git a/modules/nixos/services/miniflux/default.nix b/modules/nixos/services/miniflux/default.nix index 07eb6f8..5104c8b 100644 --- a/modules/nixos/services/miniflux/default.nix +++ b/modules/nixos/services/miniflux/default.nix @@ -45,7 +45,6 @@ in my.services.nginx.virtualHosts = { reader = { - subdomain = "reader"; inherit (cfg) port; }; }; diff --git a/modules/nixos/services/monitoring/default.nix b/modules/nixos/services/monitoring/default.nix index 2f23ff0..49919c1 100644 --- a/modules/nixos/services/monitoring/default.nix +++ b/modules/nixos/services/monitoring/default.nix @@ -127,7 +127,6 @@ in my.services.nginx.virtualHosts = { monitoring = { - subdomain = "monitoring"; inherit (cfg.grafana) port; }; }; diff --git a/modules/nixos/services/navidrome/default.nix b/modules/nixos/services/navidrome/default.nix index 92f9fd2..944a97a 100644 --- a/modules/nixos/services/navidrome/default.nix +++ b/modules/nixos/services/navidrome/default.nix @@ -49,7 +49,6 @@ in my.services.nginx.virtualHosts = { music = { - subdomain = "music"; inherit (cfg) port; }; }; diff --git a/modules/nixos/services/nginx/default.nix b/modules/nixos/services/nginx/default.nix index e916c9c..ae6c0dc 100644 --- a/modules/nixos/services/nginx/default.nix +++ b/modules/nixos/services/nginx/default.nix @@ -404,7 +404,6 @@ in my.services.nginx.virtualHosts = { login = { - subdomain = "login"; inherit (cfg.sso) port; }; }; diff --git a/modules/nixos/services/nix-cache/default.nix b/modules/nixos/services/nix-cache/default.nix index 5517a78..1ce3161 100644 --- a/modules/nixos/services/nix-cache/default.nix +++ b/modules/nixos/services/nix-cache/default.nix @@ -45,7 +45,6 @@ in my.services.nginx.virtualHosts = { cache = { - subdomain = "cache"; inherit (cfg) port; }; }; diff --git a/modules/nixos/services/paperless/default.nix b/modules/nixos/services/paperless/default.nix index 87a816a..c40e895 100644 --- a/modules/nixos/services/paperless/default.nix +++ b/modules/nixos/services/paperless/default.nix @@ -145,7 +145,6 @@ in my.services.nginx.virtualHosts = { paperless = { - subdomain = "paperless"; inherit (cfg) port; sso = { enable = true; diff --git a/modules/nixos/services/pirate/default.nix b/modules/nixos/services/pirate/default.nix index 88a2250..e500b54 100644 --- a/modules/nixos/services/pirate/default.nix +++ b/modules/nixos/services/pirate/default.nix @@ -23,7 +23,6 @@ let mkRedirection = service: { my.services.nginx.virtualHosts = { ${service} = { - subdomain = service; port = ports.${service}; }; }; diff --git a/modules/nixos/services/podgrab/default.nix b/modules/nixos/services/podgrab/default.nix index e59b20d..5ceebb6 100644 --- a/modules/nixos/services/podgrab/default.nix +++ b/modules/nixos/services/podgrab/default.nix @@ -33,7 +33,6 @@ in my.services.nginx.virtualHosts = { podgrab = { - subdomain = "podgrab"; inherit (cfg) port; }; }; diff --git a/modules/nixos/services/sabnzbd/default.nix b/modules/nixos/services/sabnzbd/default.nix index 42058e7..9e0d9c3 100644 --- a/modules/nixos/services/sabnzbd/default.nix +++ b/modules/nixos/services/sabnzbd/default.nix @@ -20,7 +20,6 @@ in my.services.nginx.virtualHosts = { sabnzbd = { - subdomain = "sabnzbd"; inherit port; }; }; diff --git a/modules/nixos/services/tandoor-recipes/default.nix b/modules/nixos/services/tandoor-recipes/default.nix index 353fac3..f5dc2db 100644 --- a/modules/nixos/services/tandoor-recipes/default.nix +++ b/modules/nixos/services/tandoor-recipes/default.nix @@ -72,7 +72,6 @@ in my.services.nginx.virtualHosts = { recipes = { - subdomain = "recipes"; inherit (cfg) port; }; }; diff --git a/modules/nixos/services/transmission/default.nix b/modules/nixos/services/transmission/default.nix index ce7f9e6..aeb88b7 100644 --- a/modules/nixos/services/transmission/default.nix +++ b/modules/nixos/services/transmission/default.nix @@ -82,7 +82,6 @@ in # seems to have stalled my.services.nginx.virtualHosts = { transmission = { - subdomain = "transmission"; inherit (cfg) port; }; }; diff --git a/modules/nixos/services/vikunja/default.nix b/modules/nixos/services/vikunja/default.nix index 425698d..9767d00 100644 --- a/modules/nixos/services/vikunja/default.nix +++ b/modules/nixos/services/vikunja/default.nix @@ -60,8 +60,7 @@ in # This is a weird setup my.services.nginx.virtualHosts = { - vikunja = { - inherit subdomain; + ${subdomain} = { # Serve the root for the web-ui root = config.services.vikunja.package-frontend; diff --git a/modules/nixos/services/woodpecker/server/default.nix b/modules/nixos/services/woodpecker/server/default.nix index b5ec0d8..f02a5c5 100644 --- a/modules/nixos/services/woodpecker/server/default.nix +++ b/modules/nixos/services/woodpecker/server/default.nix @@ -54,12 +54,10 @@ in my.services.nginx.virtualHosts = { woodpecker = { - subdomain = "woodpecker"; inherit (cfg) port; }; # I might want to be able to RPC from other hosts in the future woodpecker-rpc = { - subdomain = "woodpecker-rpc"; port = cfg.rpcPort; }; }; From 71ee178510edc5d66b07bd53b58ba85a7591bbfe Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Mon, 25 Dec 2023 19:43:44 +0100 Subject: [PATCH 201/245] nixos: services: nginx: fix SSO subdomain --- modules/nixos/services/nginx/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/nixos/services/nginx/default.nix b/modules/nixos/services/nginx/default.nix index ae6c0dc..7980ad9 100644 --- a/modules/nixos/services/nginx/default.nix +++ b/modules/nixos/services/nginx/default.nix @@ -403,7 +403,7 @@ in }; my.services.nginx.virtualHosts = { - login = { + ${cfg.sso.subdomain} = { inherit (cfg.sso) port; }; }; From 932717b7548ae5f7a7fdec3e7e2d78d0fca6ef68 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Tue, 26 Dec 2023 15:17:03 +0100 Subject: [PATCH 202/245] nixos: services: jellyfin: loosen umask I just noticed that all the metadata files Jellyfin stores have very restrictive ACLs. The whole point of the `media` group is to make my HTPC eco-system work together. In particular this should allow Sonarr and friends to delete folders without manual intervention. --- modules/nixos/services/jellyfin/default.nix | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/modules/nixos/services/jellyfin/default.nix b/modules/nixos/services/jellyfin/default.nix index 9efe11e..f5aaa99 100644 --- a/modules/nixos/services/jellyfin/default.nix +++ b/modules/nixos/services/jellyfin/default.nix @@ -17,6 +17,13 @@ in # Set-up media group users.groups.media = { }; + systemd.services.jellyfin = { + serviceConfig = { + # Loose umask to make Jellyfin metadata more broadly readable + UMask = lib.mkForce "0002"; + }; + }; + my.services.nginx.virtualHosts = { jellyfin = { port = 8096; From 39eba647acacdf2bb2aafb00be694fa5c2e0726f Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Wed, 3 Jan 2024 14:15:42 +0000 Subject: [PATCH 203/245] hosts: nixos: aramis: home: use 'pinentry-qt' The GTK2 variant has been removed [1]. I may revise this in the future if [2] is merged (I'd like to try `pinentry-rofi` [3]). [1]: https://github.com/NixOS/nixpkgs/pull/270266 [2]: https://github.com/NixOS/nixpkgs/pull/277221 [3]: https://github.com/plattfot/pinentry-rofi --- hosts/nixos/aramis/home.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hosts/nixos/aramis/home.nix b/hosts/nixos/aramis/home.nix index 66a0892..dfe9dbe 100644 --- a/hosts/nixos/aramis/home.nix +++ b/hosts/nixos/aramis/home.nix @@ -2,7 +2,7 @@ { my.home = { # Use graphical pinentry - bitwarden.pinentry = "gtk2"; + bitwarden.pinentry = "qt"; # Ebook library calibre.enable = true; # Some amount of social life @@ -14,7 +14,7 @@ # Blue light filter gammastep.enable = true; # Use a small popup to enter passwords - gpg.pinentry = "gtk2"; + gpg.pinentry = "qt"; # Machine specific packages packages.additionalPackages = with pkgs; [ element-desktop # Matrix client From a93dc2935bd81f3583182c34e74231b4a1fb960f Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Wed, 3 Jan 2024 14:00:58 +0000 Subject: [PATCH 204/245] flake: add explicit 'systems' input --- flake.lock | 8 ++++++-- flake.nix | 10 ++++++++++ 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/flake.lock b/flake.lock index adff398..ef07b15 100644 --- a/flake.lock +++ b/flake.lock @@ -86,7 +86,9 @@ }, "futils": { "inputs": { - "systems": "systems" + "systems": [ + "systems" + ] }, "locked": { "lastModified": 1701680307, @@ -214,7 +216,8 @@ "home-manager": "home-manager", "nixpkgs": "nixpkgs", "nur": "nur", - "pre-commit-hooks": "pre-commit-hooks" + "pre-commit-hooks": "pre-commit-hooks", + "systems": "systems" } }, "systems": { @@ -228,6 +231,7 @@ }, "original": { "owner": "nix-systems", + "ref": "main", "repo": "default", "type": "github" } diff --git a/flake.nix b/flake.nix index 8e46ea3..85fafbb 100644 --- a/flake.nix +++ b/flake.nix @@ -27,6 +27,9 @@ owner = "numtide"; repo = "flake-utils"; ref = "main"; + inputs = { + systems.follows = "systems"; + }; }; home-manager = { @@ -64,6 +67,13 @@ nixpkgs-stable.follows = "nixpkgs"; }; }; + + systems = { + type = "github"; + owner = "nix-systems"; + repo = "default"; + ref = "main"; + }; }; # Can't eta-reduce a flake outputs... From e02da7ec693b1a5f9e0119fed1f564ec01025c50 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Wed, 3 Jan 2024 14:05:46 +0000 Subject: [PATCH 205/245] flake: bump inputs --- flake.lock | 45 ++++++++++++++++++++++++--------------------- flake.nix | 1 + 2 files changed, 25 insertions(+), 21 deletions(-) diff --git a/flake.lock b/flake.lock index ef07b15..5e4a413 100644 --- a/flake.lock +++ b/flake.lock @@ -8,14 +8,17 @@ ], "nixpkgs": [ "nixpkgs" + ], + "systems": [ + "systems" ] }, "locked": { - "lastModified": 1701216516, - "narHash": "sha256-jKSeJn+7hZ1dZdiH1L+NWUGT2i/BGomKAJ54B9kT06Q=", + "lastModified": 1703433843, + "narHash": "sha256-nmtA4KqFboWxxoOAA6Y1okHbZh+HsXaMPFkYHsoDRDw=", "owner": "ryantm", "repo": "agenix", - "rev": "13ac9ac6d68b9a0896e3d43a082947233189e247", + "rev": "417caa847f9383e111d1397039c9d4337d024bf0", "type": "github" }, "original": { @@ -33,11 +36,11 @@ ] }, "locked": { - "lastModified": 1673295039, - "narHash": "sha256-AsdYgE8/GPwcelGgrntlijMg4t3hLFJFCRF3tL5WVjA=", + "lastModified": 1700795494, + "narHash": "sha256-gzGLZSiOhf155FW7262kdHo2YDeugp3VuIFb4/GGng0=", "owner": "lnl7", "repo": "nix-darwin", - "rev": "87b9d090ad39b25b2400029c64825fc2a8868943", + "rev": "4b9b83d5a92e8c1fbfd8eb27eda375908c11ec4d", "type": "github" }, "original": { @@ -70,11 +73,11 @@ ] }, "locked": { - "lastModified": 1701473968, - "narHash": "sha256-YcVE5emp1qQ8ieHUnxt1wCZCC3ZfAS+SRRWZ2TMda7E=", + "lastModified": 1704152458, + "narHash": "sha256-DS+dGw7SKygIWf9w4eNBUZsK+4Ug27NwEWmn2tnbycg=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "34fed993f1674c8d06d58b37ce1e0fe5eebcb9f5", + "rev": "88a2cd8166694ba0b6cb374700799cec53aef527", "type": "github" }, "original": { @@ -133,11 +136,11 @@ ] }, "locked": { - "lastModified": 1702538064, - "narHash": "sha256-At5GwJPu2tzvS9dllhBoZmqK6lkkh/sOp2YefWRlaL8=", + "lastModified": 1704276313, + "narHash": "sha256-4eD4RaAKHLj0ztw5pQcNFs3hGpxrsYb0e9Qir+Ute+w=", "owner": "nix-community", "repo": "home-manager", - "rev": "0e2e443ff24f9d75925e91b89d1da44b863734af", + "rev": "4d8f90205c6c90be2e81d94d0e5eedf71c1ba34e", "type": "github" }, "original": { @@ -149,11 +152,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1702312524, - "narHash": "sha256-gkZJRDBUCpTPBvQk25G0B7vfbpEYM5s5OZqghkjZsnE=", + "lastModified": 1703961334, + "narHash": "sha256-M1mV/Cq+pgjk0rt6VxoyyD+O8cOUiai8t9Q6Yyq4noY=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "a9bf124c46ef298113270b1f84a164865987a91c", + "rev": "b0d36bd0a420ecee3bc916c91886caca87c894e9", "type": "github" }, "original": { @@ -165,11 +168,11 @@ }, "nur": { "locked": { - "lastModified": 1702558663, - "narHash": "sha256-MHq/DdwsBwsTRqwFg1JuFtcoGArgvaH/XwbxgWQ4Zn0=", + "lastModified": 1704289500, + "narHash": "sha256-SMoojjdEMgf6GtPh5vzofdeev4nyM+vBi2J6Z/Sufco=", "owner": "nix-community", "repo": "NUR", - "rev": "b839a2bae27c0c14dd99dcc1f6d18f83b0af59bd", + "rev": "a18213c74e43dd6e941c41d77382377938c77caf", "type": "github" }, "original": { @@ -194,11 +197,11 @@ ] }, "locked": { - "lastModified": 1702456155, - "narHash": "sha256-I2XhXGAecdGlqi6hPWYT83AQtMgL+aa3ulA85RAEgOk=", + "lastModified": 1703939133, + "narHash": "sha256-Gxe+mfOT6bL7wLC/tuT2F+V+Sb44jNr8YsJ3cyIl4Mo=", "owner": "cachix", "repo": "pre-commit-hooks.nix", - "rev": "007a45d064c1c32d04e1b8a0de5ef00984c419bc", + "rev": "9d3d7e18c6bc4473d7520200d4ddab12f8402d38", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 85fafbb..9c29183 100644 --- a/flake.nix +++ b/flake.nix @@ -9,6 +9,7 @@ inputs = { home-manager.follows = "home-manager"; nixpkgs.follows = "nixpkgs"; + systems.follows = "systems"; }; }; From bddcab110d2e85679b10ba6f7b058ac18e79bced Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Wed, 3 Jan 2024 15:58:34 +0000 Subject: [PATCH 206/245] pkgs: matrix-notifier: 0.3.0 -> 0.4.0 --- pkgs/matrix-notifier/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/matrix-notifier/default.nix b/pkgs/matrix-notifier/default.nix index a96cb61..aba093f 100644 --- a/pkgs/matrix-notifier/default.nix +++ b/pkgs/matrix-notifier/default.nix @@ -1,13 +1,13 @@ { lib, curl, jq, fetchFromGitHub, makeWrapper, pandoc, stdenvNoCC }: stdenvNoCC.mkDerivation rec { pname = "matrix-notifier"; - version = "0.3.0"; + version = "0.4.0"; src = fetchFromGitHub { owner = "ambroisie"; repo = "matrix-notifier"; rev = "v${version}"; - hash = "sha256-NE9RO0ep2ibrT9EUPGTnUE3ofdNTCHwelxnX9tCflg0="; + hash = "sha256-6KHteQx0bHodpNp7cuUIGM7uBRPaj386n2t5yz6umpY="; }; nativeBuildInputs = [ From 9546c00124edd4723ab1188d16c53ed3097b2d43 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Fri, 5 Jan 2024 10:59:45 +0000 Subject: [PATCH 207/245] home: vim: ftdetect: fix obsolete comment --- modules/home/vim/ftdetect/automake.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/home/vim/ftdetect/automake.lua b/modules/home/vim/ftdetect/automake.lua index cfa15d2..68a30ed 100644 --- a/modules/home/vim/ftdetect/automake.lua +++ b/modules/home/vim/ftdetect/automake.lua @@ -1,4 +1,4 @@ --- Use Automake filetype for `local.am` files, explicit `set` to force override +-- Use Automake filetype for `local.am` files vim.filetype.add({ filename = { ["local.am"] = "automake", From b8b64bed8e4b3d8d109e7dcf38f69a4242142ec3 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Fri, 5 Jan 2024 10:59:58 +0000 Subject: [PATCH 208/245] home: vim: ftdetect: add glsl --- modules/home/vim/ftdetect/glsl.lua | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 modules/home/vim/ftdetect/glsl.lua diff --git a/modules/home/vim/ftdetect/glsl.lua b/modules/home/vim/ftdetect/glsl.lua new file mode 100644 index 0000000..2f4f1dd --- /dev/null +++ b/modules/home/vim/ftdetect/glsl.lua @@ -0,0 +1,7 @@ +-- Use GLSL filetype for common shader file extensions +vim.filetype.add({ + extension = { + frag = "glsl", + vert = "glsl", + }, +}) From e4f8214cb2edcb7edc188550bc1242ae79c377e6 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Wed, 3 Jan 2024 23:36:14 +0100 Subject: [PATCH 209/245] modules: services: nextcloud: bump to 28 --- modules/nixos/services/nextcloud/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/nixos/services/nextcloud/default.nix b/modules/nixos/services/nextcloud/default.nix index 65b7234..4c0e6a8 100644 --- a/modules/nixos/services/nextcloud/default.nix +++ b/modules/nixos/services/nextcloud/default.nix @@ -31,7 +31,7 @@ in config = lib.mkIf cfg.enable { services.nextcloud = { enable = true; - package = pkgs.nextcloud27; + package = pkgs.nextcloud28; hostName = "nextcloud.${config.networking.domain}"; home = "/var/lib/nextcloud"; maxUploadSize = cfg.maxSize; From 10a30551361cc81dfe7bc20590897713f053eff6 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Wed, 3 Jan 2024 23:36:59 +0100 Subject: [PATCH 210/245] nixos: services: nextcloud: fix deprecated option --- modules/nixos/services/nextcloud/default.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/modules/nixos/services/nextcloud/default.nix b/modules/nixos/services/nextcloud/default.nix index 4c0e6a8..a962d12 100644 --- a/modules/nixos/services/nextcloud/default.nix +++ b/modules/nixos/services/nextcloud/default.nix @@ -41,6 +41,9 @@ in adminpassFile = cfg.passwordFile; dbtype = "pgsql"; dbhost = "/run/postgresql"; + }; + + extraOptions = { overwriteProtocol = "https"; # Nginx only allows SSL }; From 136bd342ff03526eccab877809087b249b0f339b Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Wed, 3 Jan 2024 23:37:27 +0100 Subject: [PATCH 211/245] nixos: services: matrix: fix deprecated option --- modules/nixos/services/matrix/default.nix | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/modules/nixos/services/matrix/default.nix b/modules/nixos/services/matrix/default.nix index bd2a017..b958f76 100644 --- a/modules/nixos/services/matrix/default.nix +++ b/modules/nixos/services/matrix/default.nix @@ -104,17 +104,17 @@ in extraConfigFiles = [ cfg.mailConfigFile ] ++ lib.optional (cfg.secretFile != null) cfg.secretFile; + }; - sliding-sync = { - enable = true; + services.matrix-sliding-sync = { + enable = true; - settings = { - SYNCV3_SERVER = "https://${matrixDomain}"; - SYNCV3_BINDADDR = "127.0.0.1:${toString cfg.slidingSync.port}"; - }; - - environmentFile = cfg.slidingSync.secretFile; + settings = { + SYNCV3_SERVER = "https://${matrixDomain}"; + SYNCV3_BINDADDR = "127.0.0.1:${toString cfg.slidingSync.port}"; }; + + environmentFile = cfg.slidingSync.secretFile; }; my.services.nginx.virtualHosts = { @@ -181,7 +181,7 @@ in # Sliding sync "~ ^/(client/|_matrix/client/unstable/org.matrix.msc3575/sync)" = { - proxyPass = "http://${config.services.matrix-synapse.sliding-sync.settings.SYNCV3_BINDADDR}"; + proxyPass = "http://${config.services.matrix-sliding-sync.settings.SYNCV3_BINDADDR}"; }; }; From a5c57333cf2c26c2746d4f109d72f484fd873e5e Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Mon, 15 Jan 2024 10:14:35 +0000 Subject: [PATCH 212/245] hosts: homes: bazin: fix typo --- hosts/homes/ambroisie@bazin/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hosts/homes/ambroisie@bazin/default.nix b/hosts/homes/ambroisie@bazin/default.nix index 4490c51..a969d8a 100644 --- a/hosts/homes/ambroisie@bazin/default.nix +++ b/hosts/homes/ambroisie@bazin/default.nix @@ -1,4 +1,4 @@ -# Google Cloudtop configuration +# Google Laptop configuration { lib, pkgs, ... }: { services.gpg-agent.enable = lib.mkForce false; From 629ec539c912bb3a35d7e90e8cbbdf8390338ccc Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Mon, 15 Jan 2024 16:50:38 +0000 Subject: [PATCH 213/245] nixos: services: nextcloud: fix typo --- modules/nixos/services/nextcloud/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/nixos/services/nextcloud/default.nix b/modules/nixos/services/nextcloud/default.nix index a962d12..f2ac8e3 100644 --- a/modules/nixos/services/nextcloud/default.nix +++ b/modules/nixos/services/nextcloud/default.nix @@ -44,7 +44,7 @@ in }; extraOptions = { - overwriteProtocol = "https"; # Nginx only allows SSL + overwriteprotocol = "https"; # Nginx only allows SSL }; notify_push = { From dca6a9018bd0007426d3f95bda3ebd5b0a55880b Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Tue, 16 Jan 2024 17:17:43 +0000 Subject: [PATCH 214/245] home: vim: ftdetect: add gn --- modules/home/vim/ftdetect/gn.lua | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 modules/home/vim/ftdetect/gn.lua diff --git a/modules/home/vim/ftdetect/gn.lua b/modules/home/vim/ftdetect/gn.lua new file mode 100644 index 0000000..37d772e --- /dev/null +++ b/modules/home/vim/ftdetect/gn.lua @@ -0,0 +1,7 @@ +-- Use GN filetype for Chromium Generate Ninja files +vim.filetype.add({ + extension = { + gn = "gn", + gni = "gn", + }, +}) From 13f20a28eb765b0daef11ec5af5ac3dffb46885e Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Tue, 16 Jan 2024 17:25:41 +0000 Subject: [PATCH 215/245] home: vim: add gn ftplugin --- modules/home/vim/after/ftplugin/gn.vim | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 modules/home/vim/after/ftplugin/gn.vim diff --git a/modules/home/vim/after/ftplugin/gn.vim b/modules/home/vim/after/ftplugin/gn.vim new file mode 100644 index 0000000..0cec9df --- /dev/null +++ b/modules/home/vim/after/ftplugin/gn.vim @@ -0,0 +1,6 @@ +" Create the `b:undo_ftplugin` variable if it doesn't exist +call ftplugined#check_undo_ft() + +" Set comment string, as it seems that no official GN support exists upstream +setlocal commentstring=#\ %s +let b:undo_ftplugin.='|setlocal commentstring<' From 309c344a3431d710e73ca6fc92890c46afc48591 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Mon, 22 Jan 2024 17:50:38 +0100 Subject: [PATCH 216/245] flake: bump inputs --- flake.lock | 48 ++++++++++++++++++++++++------------------------ 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/flake.lock b/flake.lock index 5e4a413..acf6c48 100644 --- a/flake.lock +++ b/flake.lock @@ -53,11 +53,11 @@ "flake-compat": { "flake": false, "locked": { - "lastModified": 1673956053, - "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=", + "lastModified": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", "owner": "edolstra", "repo": "flake-compat", - "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", "type": "github" }, "original": { @@ -73,11 +73,11 @@ ] }, "locked": { - "lastModified": 1704152458, - "narHash": "sha256-DS+dGw7SKygIWf9w4eNBUZsK+4Ug27NwEWmn2tnbycg=", + "lastModified": 1704982712, + "narHash": "sha256-2Ptt+9h8dczgle2Oo6z5ni5rt/uLMG47UFTR1ry/wgg=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "88a2cd8166694ba0b6cb374700799cec53aef527", + "rev": "07f6395285469419cf9d078f59b5b49993198c00", "type": "github" }, "original": { @@ -94,11 +94,11 @@ ] }, "locked": { - "lastModified": 1701680307, - "narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=", + "lastModified": 1705309234, + "narHash": "sha256-uNRRNRKmJyCRC/8y1RqBkqWBLM034y4qN7EprSdmgyA=", "owner": "numtide", "repo": "flake-utils", - "rev": "4022d587cbbfd70fe950c1e2083a02621806a725", + "rev": "1ef2e671c3b0c19053962c07dbda38332dcebf26", "type": "github" }, "original": { @@ -116,11 +116,11 @@ ] }, "locked": { - "lastModified": 1660459072, - "narHash": "sha256-8DFJjXG8zqoONA1vXtgeKXy68KdJL5UaXR8NtVMUbx8=", + "lastModified": 1703887061, + "narHash": "sha256-gGPa9qWNc6eCXT/+Z5/zMkyYOuRZqeFZBDbopNZQkuY=", "owner": "hercules-ci", "repo": "gitignore.nix", - "rev": "a20de23b925fd8264fd7fad6454652e142fd7f73", + "rev": "43e1aa1308018f37118e34d3a9cb4f5e75dc11d5", "type": "github" }, "original": { @@ -136,11 +136,11 @@ ] }, "locked": { - "lastModified": 1704276313, - "narHash": "sha256-4eD4RaAKHLj0ztw5pQcNFs3hGpxrsYb0e9Qir+Ute+w=", + "lastModified": 1705879479, + "narHash": "sha256-ZIohbyly1KOe+8I3gdyNKgVN/oifKdmeI0DzMfytbtg=", "owner": "nix-community", "repo": "home-manager", - "rev": "4d8f90205c6c90be2e81d94d0e5eedf71c1ba34e", + "rev": "2d47379ad591bcb14ca95a90b6964b8305f6c913", "type": "github" }, "original": { @@ -152,11 +152,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1703961334, - "narHash": "sha256-M1mV/Cq+pgjk0rt6VxoyyD+O8cOUiai8t9Q6Yyq4noY=", + "lastModified": 1705856552, + "narHash": "sha256-JXfnuEf5Yd6bhMs/uvM67/joxYKoysyE3M2k6T3eWbg=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "b0d36bd0a420ecee3bc916c91886caca87c894e9", + "rev": "612f97239e2cc474c13c9dafa0df378058c5ad8d", "type": "github" }, "original": { @@ -168,11 +168,11 @@ }, "nur": { "locked": { - "lastModified": 1704289500, - "narHash": "sha256-SMoojjdEMgf6GtPh5vzofdeev4nyM+vBi2J6Z/Sufco=", + "lastModified": 1705927265, + "narHash": "sha256-eUUIBb3qYMrQB0ONGEj2kzKN8yzqwDmR4+Ct5/dvJcs=", "owner": "nix-community", "repo": "NUR", - "rev": "a18213c74e43dd6e941c41d77382377938c77caf", + "rev": "a29c6f71063d0ce903e927fa7885651c00abd33b", "type": "github" }, "original": { @@ -197,11 +197,11 @@ ] }, "locked": { - "lastModified": 1703939133, - "narHash": "sha256-Gxe+mfOT6bL7wLC/tuT2F+V+Sb44jNr8YsJ3cyIl4Mo=", + "lastModified": 1705757126, + "narHash": "sha256-Eksr+n4Q8EYZKAN0Scef5JK4H6FcHc+TKNHb95CWm+c=", "owner": "cachix", "repo": "pre-commit-hooks.nix", - "rev": "9d3d7e18c6bc4473d7520200d4ddab12f8402d38", + "rev": "f56597d53fd174f796b5a7d3ee0b494f9e2285cc", "type": "github" }, "original": { From b33938e8251a17e298ea5fb36c575dcf0eb0df6c Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Mon, 22 Jan 2024 16:57:18 +0000 Subject: [PATCH 217/245] nixos: services: paperless: rename settings option --- modules/nixos/services/paperless/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/nixos/services/paperless/default.nix b/modules/nixos/services/paperless/default.nix index c40e895..f528ad7 100644 --- a/modules/nixos/services/paperless/default.nix +++ b/modules/nixos/services/paperless/default.nix @@ -52,7 +52,7 @@ in mediaDir = lib.mkIf (cfg.documentPath != null) cfg.documentPath; - extraConfig = + settings = let paperlessDomain = "paperless.${config.networking.domain}"; in From 5cb67cf040c8defbbbc03daf57f89a741c828ce5 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Fri, 26 Jan 2024 23:25:59 +0100 Subject: [PATCH 218/245] hosts: nixos: porthos: secrets: rekey secrets Some of the secrets were using an invalid format due to (probably?) being encrypted with a beta version of `age`. I didn't need to rekey *all* the secrets, but I might as well --- hosts/nixos/porthos/secrets/acme/dns-key.age | 16 +++++++--------- .../porthos/secrets/backup/credentials.age | Bin 453 -> 409 bytes .../nixos/porthos/secrets/backup/password.age | 13 ++++++------- hosts/nixos/porthos/secrets/drone/gitea.age | Bin 575 -> 494 bytes hosts/nixos/porthos/secrets/drone/secret.age | 14 ++++++-------- .../porthos/secrets/drone/ssh/private-key.age | Bin 3799 -> 3703 bytes .../porthos/secrets/gitea/mail-password.age | 14 ++++++-------- hosts/nixos/porthos/secrets/lohr/secret.age | Bin 438 -> 367 bytes hosts/nixos/porthos/secrets/lohr/ssh-key.age | Bin 839 -> 733 bytes hosts/nixos/porthos/secrets/matrix/mail.age | 16 ++++++++-------- hosts/nixos/porthos/secrets/matrix/secret.age | Bin 478 -> 417 bytes .../secrets/matrix/sliding-sync-secret.age | 15 +++++++-------- .../porthos/secrets/miniflux/credentials.age | Bin 477 -> 395 bytes .../porthos/secrets/monitoring/password.age | 17 ++++++++--------- .../porthos/secrets/monitoring/secret-key.age | Bin 507 -> 355 bytes .../porthos/secrets/nextcloud/password.age | Bin 440 -> 355 bytes .../porthos/secrets/nix-cache/cache-key.age | Bin 501 -> 428 bytes .../porthos/secrets/paperless/password.age | 16 +++++++--------- .../porthos/secrets/paperless/secret-key.age | 15 ++++++--------- .../porthos/secrets/podgrab/password.age | 14 ++++++-------- .../secrets/sso/ambroisie/password-hash.age | Bin 459 -> 383 bytes .../secrets/sso/ambroisie/totp-secret.age | Bin 442 -> 375 bytes hosts/nixos/porthos/secrets/sso/auth-key.age | Bin 483 -> 451 bytes .../secrets/tandoor-recipes/secret-key.age | Bin 496 -> 398 bytes .../secrets/transmission/credentials.age | 16 +++++++--------- hosts/nixos/porthos/secrets/vikunja/mail.age | Bin 740 -> 579 bytes .../porthos/secrets/wireguard/private-key.age | 16 +++++++--------- .../porthos/secrets/woodpecker/gitea.age | Bin 543 -> 464 bytes .../porthos/secrets/woodpecker/secret.age | 15 ++++++--------- .../secrets/woodpecker/ssh/private-key.age | Bin 3799 -> 3703 bytes 30 files changed, 87 insertions(+), 110 deletions(-) diff --git a/hosts/nixos/porthos/secrets/acme/dns-key.age b/hosts/nixos/porthos/secrets/acme/dns-key.age index 97d397c..fce2a84 100644 --- a/hosts/nixos/porthos/secrets/acme/dns-key.age +++ b/hosts/nixos/porthos/secrets/acme/dns-key.age @@ -1,10 +1,8 @@ age-encryption.org/v1 --> ssh-ed25519 cKojmg 0bz3W8QcGaulxy+kDmM717jTthQpFOCwV9HkenFJEyo -NKeh1/JkX4WAWbOjUeKLMbsyCevnDf3a70FfYUav26c --> ssh-ed25519 jPowng Q59ybJMMteOSB6hZ5m6UPP0N2p8jrDSu5vBYwPgGcRw -j420on2jSsfMsv4MDtiOTMIFjaXV7sIsrS+g4iab+68 --> z}.q-grease s2W<qM_Z t -n1Yfs/gmNsl/n9HtuKBIIT8iwIjYca2yxlh7Q1XAT1B+RZ8oGjW8yCPj1unbDGZL -e5BfLO3zgkEZnQ ---- FSgNKEdDeeTjCx9jN9UtOFl58mC/Lbu1PAYRGK0CZW4 -U+j{g`GˆRQk]d6y5T$ñs~hģԝF%vm \ No newline at end of file +-> ssh-ed25519 cKojmg bQFr9oAnbo1rI/MpUV8wQz/Xj7iZY4ZU+Swf0nSIQFw +zama2XJ0gdvUlD2GHMhmZqHSxHe+dKSfXnHoWDcSw7Y +-> ssh-ed25519 jPowng gitUwSKTNKWLSxnwa185O7x/u0ul93g8wPESdZaKRk8 +uvBIfAUkZp5sg6rfeEGvL5ZDV8m2uSEotW02kjPN3Hw +--- SZxe5f/CUZBvPQa2Sz/UBY3L68rMkIGGRuZPk7YE+Vg +r&{~v?}= +}+ SQM[]k MAtmM/Ls|ޅmCiYC}x \ No newline at end of file diff --git a/hosts/nixos/porthos/secrets/backup/credentials.age b/hosts/nixos/porthos/secrets/backup/credentials.age index b8ea008eda49f6750b99423cfb329a69e2012b89..63f0d32c783d7ab230a0a3f156d80a92a69d5621 100644 GIT binary patch delta 374 zcmX@gJd=5XPQ7Pnp;?Z;yJ3jAONNW1pK*ASTbOoIL{3CeQd*_Cub+Xoe}s2Zj=5Ks zBUf5PsY_m^L9S<_e_@45s<ByWdRe8Dwr6UXw!f#PQB+=Kc%G9{p0Sf_IhU@TLUD11 zZfc5=si~o*LRLV2d0x7LN1%~&sk5<5o=Hkll5a(-OTB+eL9nG;iMNSqKuLvLURkDZ zP?}+2aGFslSAnmmn^C%vpKGCSRECdtQj}vzWtqO8ccqbYYOqCMc6xbEu(!6WS9ysq zm#(g^LXu}#m~pvLZkfMts*#&>Kv`*ck#j|%c~O?LTZD6}c6vmjfn#}Cs8gr~ms7x# z=c%tYOXM3YPZV4~d27+C6?L26Jz67RmDlxl!nsA~rZAfqGQ1ABk?9^K(#gC~XMxr< zjeOzhjkDP-_opxW_ABYXb+gm&LppaklEgO}RyrCubr*bR&(P3#Xjh?N_WpSm2W!@X XufN+AGps__uzBhkEfnRl*nJ%U8{LQ& delta 419 zcmbQqe3W^DPJLvKOKFy6dAXB!u!l!kpnpbMNv2_9hNWp)g-e)ml8>vlyK9b9c4df@ z0hf2NZ)J+HkBNI?V4^{)OJG5<c9K^_mUePMr9oAwUzuA(sD+<nZb?XnCzr0BLUD11 zZfc5=si~o*LRLV2d0x7Lmy=0oiC<+@Vv<Q>l1V^nLA`Nea;0xpxpPuZX{l>Ksi#?_ zf1tjBiK$yYSAb<<UQvLHdx3|Sk6}oqUtwg5Us_>yijiStR-V3TZcct#eo=U(nL(Bb z$hvs5oSI_Y^rF<n;#37+g;=9P-{M5|a)p3cg)9SCSFUhl=aBr+kaR9xU0nr>#PG<_ zOk?BvTvtzTw`8}Zf{YxOsM6d#r&7y^q%7?$LyMHaB-fk@!!iplW0hQuAB|5Ag?LMD zlzg{+N~&YjBX+x#JbrO2-L;qAHZ7ItIGUk1TcdwlsMIFKqBj+sF2-NlO>S5k*PYm% zR?YXPd6v(PbKL)qEk1n1?%w^lve`M)7oO9#ZF#$1=E>p-CqvaA?beXj*(#=N&9r2d P$H!w1e7>qRr<MT#6vvth diff --git a/hosts/nixos/porthos/secrets/backup/password.age b/hosts/nixos/porthos/secrets/backup/password.age index 3af9fbe..db3c2fa 100644 --- a/hosts/nixos/porthos/secrets/backup/password.age +++ b/hosts/nixos/porthos/secrets/backup/password.age @@ -1,8 +1,7 @@ age-encryption.org/v1 --> ssh-ed25519 cKojmg dgS4bezgtDi44R1A8am+J6zh80kUVYTo1heaxJCtzX4 -F3w/62xwtqYa40NU7OvF9pnZzYz/5hACAGJfMA4e2zw --> ssh-ed25519 jPowng lx81CK3yeNp9RjHCUFJeKYZlRzxBmXuADVBvRc13zCI -P7e75t8xU+ZkYmeQ8mmMfyZZsRdG1J8yrvSUkiWzkFQ --> *z4/`-grease S/)a{e sFd";= ---- 15FVhqRTkoPFEeETRRyFQhsv4Fn19Ozlax0u8Zy9mNA -#+vS4}R%ίF4fnDJZA,_ \ No newline at end of file +-> ssh-ed25519 cKojmg O3DMSSPQP9/ehXmzs0xcCGllu7VSzhd6b4Pii8t2vWQ +Ys1nMv2384elWWGW9C8HabvwUeWu52VsQpxx9L/4/dM +-> ssh-ed25519 jPowng ft/9SX5fpG7+7gHMubaFtb+50/gfNgmaofOVq5UjRUE +xMwdFjFdkH0Li+PikaFt0WAZbFUu5daHgkfN8aQQumo +--- 7DVINvXIXdE1MRwIkeajonYsy1cp4HugCxfTeub5SXU +<<{V?fk/I"/5K"(i \ No newline at end of file diff --git a/hosts/nixos/porthos/secrets/drone/gitea.age b/hosts/nixos/porthos/secrets/drone/gitea.age index 90ff83b15b50479b8c0c7a0c174ef6410a8907cb..6b68503af75d0ecf3778dac866e0b86258b1fbea 100644 GIT binary patch delta 467 zcmdnb@{W0eYJIYIepYU}La;@kfu);oikU~2wr6>Ec|?SPNxrGSk#T6HkF#HSS%`Z| zUR7yHW`vV3muXJ6w{fC(UbaO*rcarhQDj(lqGM{ReqM=rzE`22c9x@=bBcM6V@09~ zm#&>cadC!jYKoDmsiCDpRzQAvUb=!|U`Dn<h@o>pQGI@4cDY|to_C;!fp3nJvxQMa zQIeBWsHb6(Q<P(xQBWk8wn<S@golZ*ub*~AN_kqYOKEOprAKPExnp8faFth@N3MaT zV_HyhrD-ykuCA^^QGtI%Vxo72TT-ZNcuH7?d#Xi+Q(jSCX@H4qR$6v$N?MX(mXU8# zMs_h*VST55@1>5;`h_2-t<H&B>~SPs`SEGS1^mV(GbL`O#@9bS;>5coMSsJ53Gcnz zgR5#cbleUO+IV;VUKx?=*0+A_)emI8X<)x<eQuh|N@tc0E$_nL)D?;`Y;avZ;iK^^ zw-2uc&x8y858=|UnCau^-TLa;mm?1Ai<bVLm#Mn){1(1>K9(zYi=-d?c;x}#irJ>h z5vzjd==HArds}RO$MWe*^w&)Z&pdqho}#%({n<waPb@M{oYGh~!RUrgz411)N3Wg; TUfTL$)6^Ns#~#*)nR);KN$bCN delta 549 zcmaFIyq{%)YJFBfetBNHg0V+diKkzvfl*~zWm!RDen^S4yS}?|a(ZR1TbXxwnsH&8 zetJ>4zP6DGm%Fxio<~VhiK(M;sG+BGNI`INYQC$sn^$m_S%zbhNp4nwkxO=(OL&n1 zm#&>cadC!jYKoDmsiCDpvUh$~Zn}bVL{YJGg;zzmU%h8WSy_2xR+M2;QE+5PxsRW3 zka2c+N<g-$YlVkvnwuk+zgMPliCc1BL5h1>MY4r!NV0p0NlucRS7vCac21D7W1*i( zq(y*diAy%fx&qzwqSVCVR0VSd$3XvT7muneg)9{(HEo5IWUfH-s*Fmr4F9xj*9^0W z^hm#YkH8`i<Eq?5Lnoh#JXdd*{DJ^S|2(Js0JosDO!H(eU0q#;sA3<}sx))`EHAUl zfczrMEW<E^%rO0=h>CQ_;)<Mz;tH3@a_7P#pWtjRM}M_PRShim-PSRNOVhM$)n9K` z)cYLvcKZ~;umg8&&+T0G<NI96vZ~vWN&%d`o9a(lZ{Yc)x$l#=puy{Vf=>0twHduZ zB2u>B{JZu%w<-Us(Uaxy{206BXT2S!4^EbBTh#yJ_`efXIjbjUc5iff@ZPh!)Us7$ z#kXZSksh4osje}bWV=M&;-_pj{JU5ByXOa!ofoYy{;OQcY&nB*{vB13psOhh)xK^j tSTG^;n1Pg(-0a-P`!`>3Vr}2WamMHj*J3+S5jiPgt#`ivjq>OG1puG-(}n;5 diff --git a/hosts/nixos/porthos/secrets/drone/secret.age b/hosts/nixos/porthos/secrets/drone/secret.age index c529200..d6e7330 100644 --- a/hosts/nixos/porthos/secrets/drone/secret.age +++ b/hosts/nixos/porthos/secrets/drone/secret.age @@ -1,9 +1,7 @@ age-encryption.org/v1 --> ssh-ed25519 cKojmg 1+cLlzctgcM0FnVDwMPOAqBkvMcDBRg8SvCw4djI93Y -oV2XI4f1AvM9P591kZZ6NgJXa+SDtqGzCSgc4psOmxM --> ssh-ed25519 jPowng Ufjfh1p350XxRPg95+/DHdmnl4lC0bbzUUlaxd1Bmxc -/RHwFDSn2ov+60r1uHUigrsn99+GmmKmlk4h4T2gbA0 --> *Lc$@-grease -pzVJAHy1qRq3jUrnFV0DDO7/hwV1US4Ogf0RsrVfX0xzbr73uJ003YjieVB25LqN ---- ME7/iVevyiguyhXugbkVFGzJV0yDccyKNlWbEZa/FmY -YXjb2und;i0X]0jLPT~^kc$DrufreOո+p&wϨ \ No newline at end of file +-> ssh-ed25519 cKojmg 0J8FMcVRf78LYG+dTOFzu3luXwhOjdOg0sx4Jxdccj4 +tdrCcfcYbTZYhL18RG3goiqtyhu3NTn+fJhdIAnU5uA +-> ssh-ed25519 jPowng qlF8nkSEg5fZgai0VP5eTSlZOHyj5IcalTf+QNWITVo +O5aiZX0AJD76ixsu6i9xnnFBQANdsu3h6XzdTQ6KtKU +--- ByMQt9bnbzd8YO0Y93FIYF/lmdbYcOydkYdKxpRQujM ++ܢ6JNmq[ Eb1p)vDPL9̀z!߇'Tad5U: [dύRMpzj \ No newline at end of file diff --git a/hosts/nixos/porthos/secrets/drone/ssh/private-key.age b/hosts/nixos/porthos/secrets/drone/ssh/private-key.age index 0211701ba0ee3d8ef341b6d69d70ccaa25b8379b..737777dfa116dbe553768de3ade7df9d423661ec 100644 GIT binary patch literal 3703 zcmYdHPt{G$OD?J`D9Oyv)5|YP*Do{V(zR14F3!+RO))YxHMCSn_Ri1BO;<3qFz_-> z^6@MWG&IRA2?%y~$xq5iH+4@6H%W>JNz2I!Dm5zeaxx6ah~&!jOQ|rAaJ0xXGRiJX z4fYC5iwY|94l>UO^fYiuHqrM9)Xz@$PD=_;^hCEUD<Ho-FI~Yu$tgX@FFn!F+*dm| zBPq%#Rlm@+%+fi%#N5%?KP=J9AkR6xs5~+v#Dc5XJU=p{)VR{p#LV5L(lE2a&9F@0 zqsS#E%Phn&CpV+QqcSL8-z%@wG@DCTS69IzsKBfu)IG{DJ=x2@!otrmF{&s$Kflze zq^Q!vGO{W;y(-f!v&t+YES>9so89*#`RNbVKRg!Xla^@sJi&rHl6fO{(|V3Wp0kB+ z3#8=xhUj+JyKP{}`5l?DJUeagy%pUlKOKTMP5b$_MVQ}Md)=A3MhmyurYsGa{@TvF zpY9jFKil`tb@%WEJ9~eJ9H>0`-0S2c7VW9`AL~fAyg!o0_g<p^)$$FYjV*<DRrY4y zZjdT|Yq<7x-x=FTAwKoF4_@82-x@x7L$JKV5l6+t((CTVx&2vQJb8(tjoVD4?a^T& z+Y9xzAK7{(2uZR`R^Ky0dgqh$d1AKzLW;l1u9#&vWBXDS*Hu$j?#^NTskqPk*4@P! zhpbG#H6Gh9=e_Szs^E^!-Q5N2|Gk;1Xuz~oaeoHa!Pn1Ui2ThfJ6baHl=uhf_bVCC zeO>v7^`4LNs@4k5WgPrmcf|W5UMOu@b0WIFpoKC2&8B@?ec3y!p4Z<NxcK9R?CZ;4 zYL$xr`K!M9tZL={KzG@+^Cf>K%PlerdDr{O)BmK7!i%D~wLQufI(xcHZkgZPS5cQV z-S5t^s2vq5)BUxU%!$a`cWj-r;I+bsJ65#)-1AkxzqBPY_I9mEKRf#*zar^ty$ZMP zmz?_co}poacA0q4w2d5c6IY+Jy;=TcT72LdZk3DIGcp&pn22ZhDi>_{Hgi{h)QZaJ zRon&hGbYVEddTzv@7*~sqLx>?bw#{5c2+R3AxJ+=Ju}E`@%pNN8^crI9^q}<lkKBk zxxme!>-x`!h7R+MMZAyBb$+OPb-~&4fV_wh+uifL+%;u*=AQmBDaUU6QMtHzlFBQt zCv!aZH%qr%I%kpf<@0hvkE@dAd^27xmEwNzis9@9@6R#+wq5?>^300FUtLEcO>)-G z54ofuR%CX6nbB-}-hV7==2hN>H>N5-Qc^0*UuC3vE1cobjrltxKiD4LKljG6CuXbn zwXLgCH7R7Z4VAv47V9x%<EEl}b@z0yu2b%RfAH8e&zX|uoNZmtCGO>YH*AnIi`<x= zvSZ@D*DuT1nkQAyue{ZnI77Ux?A7m?o_4{X<i9_8Jg?7pf0DEG4F|(^|JBOYFOEg> zEsD^~<&KXPartxZRQ1;h=@WK7EST`YNhwHAI+OF}l}#7l?w*+NVDF#D)4AV9Nllu6 zZtvoNA19to=nwU_kd5U1p0@8Eqff{A#es{~ZDek3S?Hb0+7$5j@qUSe?woSLiywWu zvUU0IYr+%X844e`)qA5vaf$x17Yn&-RS(})Pj%(J;CN-?vFb1Bw}l>CSWEjnFj~<5 zN;Ov{Q&KvH?VIUr{WX(%jW;}5T|GBeiM4W;c;1Y2?^#XwmMBg6l)B_#=H<xssXvsQ zr)GN0OmSJ>|G}-qfAyX}m$gql-1S~Mt5K$Fk@0tyM=MxgEoG>^l|29Ws;up)lC0f2 zKOIYV3)Pu%tTaf8@OmP2ZT{pd2cp-R^ow6z%zvo%b6M<+(~i}A*5%*Rr36kUFFFt$ zdf=AHrOT(+@B2`CZQbU7j?H^oPWu-{L^<5L?VA;!p|bh+{(JA%`*(K~1v-W{&1!V` zG^HW$jLhm2hKs#FsQUexRM(v1{VKL%)ts&R^16Y+=H3OyB0KM$m1nd_sbRhE5Sn(M zfBvFNA^Ufko#OcKn5lR%P}{VUzc}FCvvXBH^XhX}8pN=(oa(HeB~v2*`O4mxFQdLM zdOhuZr{`Qf>s?hhelOSK_;hDYjN+-Iou7qPE$6x*m-@&#^QFbvKgX2$WA2=}XS6WM zn7c~a>7>`p%6D6&c-(8&ox8O%WhwtA9)*Rsj!m^Y#>=s-%wlt|f@<!atv}jCHEg_B z)Ytxvdh%L!>gzIp{|-6EWA}G|krYYRDh%lFv$l&7Hh%0}ns8WZ$v$ttE|Dj3d&@6; zc(wQ6&2Kw6B1Ga=*?tn<7;HAp(&t2$o_}5NHh~{=BfQN_XFaa@y~{aD{HFHZQvHgM z)om^JRHru<?8%EaE9z8}-1zbS^fOLf8o#fdUD)vc*|}*eDmh!sS6VJnp0j3B^{;<D zJAV{BJR5rFq|?N=`!4+}T7KSdLZm)RQ<9tAriOF3B2!n$n)rt^uQ|`}aMt(U)@AQj ztZJR`<jwrmPh&o?EwAW*awq(cWsudS&09Ij3gWV>qdxR>ForK(ec`iNZfak`@)t!F zn_qu;C^oe$Ve6+_@j#{DZ@aACKNB)l5dKssyl0{yNAK=~LTzy!`+m<i;4=9VdtJP$ z;mnKRH?C!Tad)2XzOreSkoK294@(!n)I5=IBUYTw^^4KyfgkhD$=weAS&ZR6^Ht`* z_||5y_CJG`WEz9>6e-Kk-#*RU&?Gpw&|pcI(N&9-huh{&JaLHo^a?-k?dQTw1$HG# zGJ9Y1RLcuBIJ+YG?PHFU@h@sGMf~<&qov-&7QLWuX@HX2?=71*%w>3||K!}M4Aq46 zd5yo=&n>g&xG!n=TC?jy^dZAr&vH0Kaw9AS+g_dZH2k;ybJB|S@rNs`;-s~G76?2z zc;?ox?N6SnEOJmz5V-kgOYFLD;(H!FZT{kSnYU$XMpmr3+_G$w{eS*xKC|DsWX;r< z+I8=>8#K@7s~-*CBQb0D``cS3`2T4AI=0AtKS%u3KWW#d?KgI0X;zgjeRg>h*Oixo z4a+4aEUNu)a{Kq^pVnrxWwoT$r$`1GduU3}(n~d4*dRVtMV-mMyj5tz(|JDLg6(~_ zX?3O-AM!2gb@!NdRlsRka%DyB$~_Cy>!zE(xVB!2KeP2$O7pb$Z`GehO)L`f+_!wi z&jouzcHi7wl;r&=X#d2+<u!>?Nh)_&-zeFjbM?ypvZz&4^Z#Dg)l@M$z_+z*f#x>x zAnA-7mv>%SnIh{{lA>OF<ygp@r0`c>pOUxkFuLmU&Hc8h;%@J{)5#IHnK$OWQeyh9 zWw+|s*@~BEQ#xjyxVL_K+q<tmB}t)OdU0=?&M(ipe17fMuM#Y$s$Q`BB<6n$VCgf> zZ#|OuK6vZuFLhInxRkJL+bNi?f5-J~uW5nt%q{9`-L?J(Eh&_~^0m01qf5))Ou$Yu z(D|v_B!S~6o6pX%{iC8Ktk^&MYI5(Kn~y$Rxo^j_W!p>s%eTw7*gZ4azTnmTtnd2+ z^G?<`$jK{sP1vwzKU3T!h7wh+?Txq2&wl@V`=do!dv%R1UVN+gt-ODC+iIP?E0pI4 zEvTK9l6Gvy>2t~XyR5eUnw@m@#dRj*cFl|NdnO+c;5K%gw!}(_x$(*4P@#tt-ZZS5 z%)8#~<#OhneCdM93Eve2E=fL6UOIzqQM7@~!lQEU-L|GxmcL#UaoHo~a@q5v5^n0O zVaGRYTQcwe!eSAZuNsqdmwi8H^25j4aAJMn@>5d&k6%og_P6iRo>g0`<Y#^r<k<e8 z@8m^JLAkisogWTf_}Nt5{kW%pi{G6q31TPKsk+}=!F0;J$SwZnn#7B7l@p9w&b0h` zxslV%J?LxC@vz$sJ!=*8D}}BepS0nUK`-B%kX_9Y&&-P-6ff$$koa#~$Mu4`cJ6Gq zY3?x-{LI|SU7uFpu-o%tj^)|qs#8y&XMc0aQ|G_f4$)+}>(&fDTVF^2+@Nm#$X<Mn z(4-~rW>)Wbm9pjaegB>~5wV*lI}JYs9GEQT8nAuh*7D-2w;VG&H=bU7)I-rza-Z;r za+b1${YDp`*mz|-Z8O_+Xq$QYt;@p7CzKq|t=Yl7?!%&hOW#6HTL~6y4`j7*>|CpA zbJDM4vh%e5Z#&js{*qVoE?;oJ>x04smAf?_K}zoWjwM?-kFasQ-u&yKheE-OV_7fP zY@NFPO3bVa?S^@)9Jb8#EIG<x{wrjujeyh-Z`SNI$JJZ;es2A_^xyRdSznk`Jq7Ny zl>M49^X+EI>n$!hIdh+~T;sOse4)2`?n?7)-xvQDy)RdpV>P)aYq^OFqlE#pQH$z> zS=ZTR;urfLW?OJ<_S>|BbD2^kzv|!9NbJy?-aB3DmP*B1&JUI*SKOXBTm2}Cn|!x= zcgB~GwZb#fBh<6F|6flk)2cHmTy%=}sNpP`kIz3G`d}Wj$3!8Khq;;6D>Q@K>*}Lf zvWEH{C3R<Px{s#+e)C!=h0&A0@!taeIs@K!osYCi;tX@U7oIDWUC+e#@{_1vi)vVw zp!X-$*t6zGRklRryxer+y^!;f%Uaxj=6FhY9+umxnW(!~?6vgU0`8lBCwPCYV|9;W z5s8U;D5adf%T<#-?`Yzq_Lq@gVlxwU|Ae{Tm)@qfQm1j+?*&DgN=NtdPFOvOpZE2Z z6XHIncYL3-Wbd^%?)(l+E9U5>NPJs(N_EbX`@1buzOOg0W?jOyi{HS&+#`724CBMI zXCCj+nlGg#ckewn@BHwm@}IT+;u>Ct9$7VGhM1;PW}Iwyc%ik;vuhJp@m~J5yl*>K z=~1~W%agvDIL+vM-(UQ|OHp$3?OC@B{XAK+mE1nPd+749lvAneugo<@o6^nlcWx|_ znR4>fnwE?IRTbv{(mJwn_j6l!^SV1<996n*ul_t`gMIS4^rV-8XJ5~hyL3j<yT8t) zuGIW@;}&=SlKW}rK4nMfG|DabkiEP5Oz+=75w>XVum1(|>U{njHhk8pvtYf=G$Dhw z?#+b>7cQ6N-Pb)HzCGdkZl*~$*`1a4wB)^UVhj{r8C3td<>kR8C28zE>Fif}C(JiL n#{NMvHgj&i<NG~{d-^1qFEa0_TDg0{1qVNF$FCYp_e$#kUz`!o literal 3799 zcmYdHPt{G$OD?J`D9Oyv)5|YP*Do{V(zR14F3!+RO))YxHMCSn_Ri1BO;@NW2`?`+ zPsvL6@G|jp@hZ%UO3L;q%Zo4!s&bAj3-wF$O?S>MaP@c3%;t(nPc}*Rbj)*&2-45? zt<rYO^YyDV%`&JcHz=@($o0zb3iht5bkDT(GeEa3D<Ho-FI}P7#nM^7Ft5znBc&oS z$u!Y5C_ErJ*~r5nIJ2PCFC#qEq#(Vtz}GCm*^?_GJF6_QD$PQ>$}K!Jt=vC5xwJIW zA|k`2FfTVh!ptQ@Kg1<FqogduHy>nMm~MJeYGQG!LVTr>LU~SJgonL}f|{R~t%47i zuTO=UkCS(1s;R4!M{bIDZc2V+MpAKpl!u|CpIMcUaam5TV^ErRS&nbENkv*vWk5<; zepp^|kcE-AYd}>lm#(g^LXd?~nR`)WzGJ3&MqX;Fe@I1;WkF!6nY&M+ziEzJc$sUk zn`LpaftPt8*MVa{E@+%JKU2KHS^m_5%||zQ+rRbaOg>X{_QmSIrWLO5UFA-5ewp!) zOSUxdeO!O3NZE|HhgF(a%uR4S^y^miX_>(81G^Qr{f;d;`E1?RdpiFwWGnh7Ik?^b zA7v8hwmQ0f%F*Rsd=ghVa?P9$OxSnP;KuPCEw3#;>xx?5SikVx7T*ekph=ADtS4~Z zm@#RKQbNz+i-%r*opJY{hDwJ`(}tv~n+*aL7cVq=<XPUh_9RF|?}F7tv7YT}?q?Y$ zzC3BSZwKFngI}eLc{~`7U1WJNfhi%x!aD8TTK>nU-)u;2o$>Y^_xHqCU%njTxvV#L z$-CKi&g%5PmY){KuuP$l<EH5YJ7%_WUV~V^Kieh?w1nvRC?4Iq<I&N3*Y1XXn6dR@ zK+=bL*+|82+=c=xB(+$7tl#i8)uC+qw^Pz-vTa^(^Aj657c#fsXnb9l^LDpt<cgYO z3Lk`G)mc1l|LUyG2wwAA>0hj~oKM@6Ir&!WrZZ=xDL&ccq58q`$HUlI`4vV{jc3Ca zyFc#{-0;lLuHcDJmf^wGXH3E^j@|5>E_i1(ukpb^VX1%}0`K4T-&_3t+(n*~Z=)ht z-l*kS<EZ6l6Q-S1m2ufOc-d@=6-zW7*FHG4S>>QsK-T%UQ}#VHy0ABRbwMY4{ulX| zDG9711~R9oZsXgc_O+HjIrz|a=QfMm-<Op}^UJ6o(*I!dalx!$0nVnKlHt}TJ$|z< z+j(iR`Cb3wHF>oi_j~>BZT__>%&v0J^c(V(dQ(}JtXUYoZV4kVd#>D!z_qN~1i5}1 zCa}!d!Lf+lFwt6(FWP>4{-=9qR&8_<_cXJd=$N)M{)@j#WkY<R>-;~-%VQlvpG}G9 z%oYqkb^rde_D{3=QY}-I7%bPDZiu|MC1B|lwWYT2rmxz$t0i+s{F3jk(V4T2qE4Q? zS-=`SeYRqO_SeXJ7x)%P3!JF?xaTCd{yGiUzBghMV}8B+zbZqn$oRtAyM|J;I$o)* zWi`kQoI5q<&duZNPO$~v<Cp3;5f6QxdxvAS&863={sF;BM<>T03$dSm^7+q~PbXQs zglQ~w`}5iP;+-QMPqxYhBuudPdiN+;f!`=^p2^C0o4%gcvDl_Kjm>0f2kSDHNw*{Q zzr0tre-$>%{)pi3z&+(@%%QU4*7mG69~GGs8|Kg7{wVnPtOduKCU4%bO3H8T@8Fc{ z@`qkskKty$QTBABk%e1`$#>?G+Vbh|zVP;*{~T%}ulitu)C!iSna>>`<Q;$2Z|-BU z)gW`@M#stTROdWWU^pdOVDSC)_f;0hMDo<POzfR>u<qzCza?!?H^$tbuJ_&0eEBP{ zb@r7nD-~{=TOPP+{m^)e_riG>cF0{jn)F{jQ&(xL;JY1+n?LzDPm-}q`26+29KlTv z+iJ27d(2v~b}rY4KgL19M+}{F;y&b<nNRaP<Y9BYezrQBzfs9bep!)ZiEqwl9Syeb zXq6Y*%vR14qq%AJx{RciiEbC#KXPtkS+-~C-DP5~`(;i(D}A}Bf7*qHq#ebn1t;Ct z>%4yZJ+Juj!;(il|Lj@c32ezbZ(e@-YEI3kd-Y-S_eFbgSq4tnFIL&{J?dlL*8R4z zWs4&Y1sT;Uv^f8jHQmG-=#(7YxcU@pr|`*s-lDA^&VLZ86XGrSDXOpWc%_P^-@B;^ z@>NV`*X>_g|7)4L{@(OFVY^vHrvztqd~$Jp_|`Im?Y&lSgWTfq|2tL*Z&>;G(yyzU zk-7^EX2+>b<=FJ`e1@QHU;DqD9V%6}Dy|uK?k1f1cX`RCh_;o!KWkR#Zq><<x$gdQ z^V4m@0xn0Na?AK-)a-JYDbKO|en7xcrgG=_ch3*yXBD<72F#mblo_!1EsOUv=i0Yj zH8;OiDX$RG=zG7aqAu`~%6*ZajkDGm#|NkdxfH*bnQ+ym{imh^WA*1bPc7&8=SOH| zAFmYH$Nuo!>YC%-|0chgCFCW)chikSi&s@CWj?kNZ762H_}nSsUiqA?t38|A^tGED zX1%hhnpAad?X!rJsSi$BhhN@y_uzW_Sw6a%52Y_eKMQvj-oVqWY@ws6bn+%&F6-y- zJLXudoPGMg56?Y6jf*}vB+r<ih~k&CU!iNZcvkdX2c^=9g;DYk<*xYGFirZrzson` z=(<N8%{`(!4*lXv<g8xEY4<NqFsJ*^x6hmNpIE6bS<L%J;Ig68J^eR*U6%VA#7<4l z-`Mih`TPD;p~<lwIq{FDypk2Ic=skhlx=rs+kq^vgNcHYB@8uhW=1|r3hoT9{B^y2 zMN-G#rhe(j)}+f?TNE?&O<z?O#V((16_K>wK5Xj0;HLHOm#%RCeR93@>%8zIt?7NX zdAF*qcI>KNdTOJ}*6Vx^8dg`XogTHo-!D;p*_?CA39d@7XZI8bKCks_UnLe}+VFJF z<?xP43)Z&pzddP1L}Wt!tG^RoeXKUr<epJociU#gHpgYLcb-V_Yt2ki3ERam;mem9 zwo>byuKKUow{pwXSqqutuZYP!y{pru+@kb2nQhPfh)u04KZaRv+tXt6#eh$lu`BY5 z+H&4W3Z6UcdXA+&@^t<!xidSDMS$&d|4Fu@S9%B6*Sa?>o^Z^lM=*HZ{s`MmH4|Bu zEqU*%{7Gu&nN;5I{U>6+O;p^vZP(<$OQ-Trtuy@3)GBJ6aH_DUeaDuJ`TO5A_uUZ| z^Z8gcQDfK7qmEyn-L+QmGS6QoyudoOwQ%0<8NFR|`}u9#ORvXy{!Gb_4!&T=byGxp z#pMaMbJj*YT)28m%+f!yH#wA35+g&r8QlJrZ<<l^u72G?cFx}kj~?b7?mH%@*?!gh zzRIUgk+!17L&g(s)qlCR|KPHjXHRHpa9&dT<sH5wy7gUqV9581e`j85t&>#h=#EwT z{4P(QujkSWzFFGt{dY?K+J0oVx_;GpM?rj~xu!;l?H})Askg2FPCK+F75mw8FqW~i zdCPc|Zk%iR{{`ov5BJTMWkkKsGj+6Y{IS7Tq<VYhZMLk`^54f}e&l$*k8zNgTDds$ zQ~ZW0pZU*AJ6~e{A9H%of$MW4o|{)lG9_j?3dv9Dim9EI?6`{KTF~#1)=Bf7UYWD8 z&hTQJlI<yK*VHh7=e^#O?K~<=)pjZ@=DwA)d;YF<UFx40Hzj>9*vawA`e5MOYZWXr zimX?k2{lyR!9TC^$<M@`z0DU@<@)uD*6ZD!`uAsgA@iv(n-yOPD&3j9Bg*EBK)Y}H z{QnKhes2ERr@S#zdQ(VMgs!~o_59X3k!c&kJs0=h<2$o0CAhV$r8{m8$H}f)5eMh7 zE>>K>f@6hNrt(_5>&F7*^s{&5oH<su=(V6x=if(fD|DBqT#(DYEd0ak&CP;Kt8Y$U z(0=O9MJ1l&Yb-_QZ+cTN$Y`IeKSg1}jywMSvlp*&@{tZ+pl$DBbMmi}+Jkyg=CHLk z!KU5?-&bkJ*axQk)~tN@J;7uyPl$A1-rvU4K0Q|rjA!V~pVguIeM)%AshPj|7AEfT z_?-S|!bizhGrH?%q=!9@-Z!Iq#<N`Mh|(6mEscxIB5%2RSl2C0?*7iaN&kCM+9SUm zYx>0ceA4gRW~Z{w<bR%a_1VdFH$5&zZInOe6%t}@S?<Pl<}06Ju9vB2-%Z2CPSYpM z?74m{<-=V5itq*Xc`c87%3VXJyyi?={$J5Te%k-)zjklURLwMV<mSJhIN@H_r7Me$ z+>4s#wkN0SaJBrpb!9J<c^I}|l$Ki&^Qdft-m3lCtMm<*htK=1pe?0yJTPAH@VQre z-CK9F-Ds&O<=$sF$(Y56|A(^jKh-6F+XAh+ny3C@oD#Ea0(bwF_cx#I^)PWdcbmJH zr$Sc#`oFDjCf?X2_k8OC>E!ul;pMLGZktQz=Sjam{-E_rO={(K_Z$1Zd}v#B;isfd z_0jZqPH#WyYc4<27T5E?Yn7a>(>j&+<=mbTGd)E07aB?J^Im#<Qbc^boYq~HMYSg@ z9>1-RJr<er<Z(iCTyITo(}zp`k*3|L9=~3v_m?^*@4n{H$^I(g)zbJ=-)|(`SSPYK zZJ+Lz<b~p9lFPLEpG=Bo`JAxGx!n0??xD`YU9;0AW!|zW|5&r&_S7?_*EtM2)-UpF zS+`aHckV~oMf;C#n7dQ^^^Hxhbfml=9-P3U*#5qjH@fZdwK}IAv*%h>zcl2Ycle|9 zs#n`57i7QAUU+FC<5N3}vsVS~owWXuy4cw4_;l+=`9+t-?yvD?nJKpR+kvxR%IC&( zRo+`#KX3Q3r(dqW5&5PS<FD{v`((MfagXDQWsd@PKjll`|M+O<?|(=9cs`#{U3TS& z-U;_upIs_-js-8i9Gj+Gu_N9`@p+<lRFbGmGw<<dGxgu^E$n#xRc66yi-KkC_wpKE zi)V=}o56apyt<(0+w&z4o$tPv(hEu~4!CkQLh_45#-HU$-7eEwRQdl&KHa)P@X@N% z0p8oUT%V`LWq#z*<>U>AGfhI4PWHFk;;Yqk-Egks>qE8v-Ul*&M6+!d5WDH0C-7p{ zqED@F&#l^X?s*mSOYRv>9l5pK;ft2O@D2F(_w9wnoEgcj)6YD;I@5D&(%i~h!E@iA zDZamFs&mQw#gCdly47-v9S_fPOyIm9J^kzvuf0-h93+cBpLr*Jc6sj7&86CAHIJ?* dKeP;5bk>p0qW`T_@y>laN{U{!uw>4i0{~1wH){X@ diff --git a/hosts/nixos/porthos/secrets/gitea/mail-password.age b/hosts/nixos/porthos/secrets/gitea/mail-password.age index 915f8e9..e2e70ac 100644 --- a/hosts/nixos/porthos/secrets/gitea/mail-password.age +++ b/hosts/nixos/porthos/secrets/gitea/mail-password.age @@ -1,9 +1,7 @@ age-encryption.org/v1 --> ssh-ed25519 jPowng BkIjie2KrwDLaZYYIguCs7TPA/wQy+YPguikuhfye0M -7viTA/EGYB/jRKQm6fFd86DMd4j+Jxsaw/xQ1T8ZKNo --> ssh-ed25519 cKojmg t1Y8bZvPccNAX8vWQLTfCyOJIBXN515vyfFrEI2EVww -bJEjpIWrKeQrA/JfY7FRdB6hpHwR/aG4Vya1ChFNBKs --> jK/-grease Oz.R ?;)G ], -AuHk9TcC9kl0dg8/L6UfHIk3e9fgGwSTJAJpVgInhok ---- 47z9lol5MtpX0IsO/0ggLDMcNVfl4lNNvoHUSwOU/18 -)gЪeu! - TYAM+GbMe@|A,&E!܆p=P=9P!Q|r \ No newline at end of file +-> ssh-ed25519 cKojmg 46BI3ItrXRWMivmd/K8bmkKlrYFSr8cbehAkmwCskig +gTjYquH1hDEZ2zWD5P7gN/ejTCH8JJb8bC/VLZ3koeg +-> ssh-ed25519 jPowng 5MqfJlasDbbqlI0dX98NZzHxmYmnnpveyBxa4z48V0o +r7Yiv4+SZiDncD0Xzp5eFSP4f2yjGBOILKxEO1iT3Os +--- l43+JtT28i1YDhNX3hE3Qb7swskOBc5ghDqiyh3rU2s ++)PnWT,.eNW YƱkF4#=)6mȵJ# \ No newline at end of file diff --git a/hosts/nixos/porthos/secrets/lohr/secret.age b/hosts/nixos/porthos/secrets/lohr/secret.age index fa310b481b361a28d6cfef8a3a387796460ed1f4..1d9c5ba21388406d6991ba35f31c99325ee29e6b 100644 GIT binary patch delta 332 zcmdnS{GMroPQ6n~o_j!4QBhimhp%U_XHbPxg^O=hRbWP0gjczXwn<2-vzbd^a<-p~ z1($b{ua{Y&yJL86im9=aSD=?kUQ%{MnsJ_EW<_vVR;pi!MN+V#sc}HQFPE;JLUD11 zZfc5=si~o*LRLV2d0x7LwwHfJSiWh9QMN&Zqk)S>UcITSwuh&ox2KC=c0{hBL6~J) zsCQ{tqMt!ImuF~kLAp<drGbaDvv<CSVYz#7RAEZ0e?&xZwugnAzF|gWUZh)~frpbL zm#(g^f`M6~UqPv}uX%WZV{vIkV5qyZUx}x4g+Ziws%J=|cc@o*VSuxnX^K}lSK_*B zeJ*!;SG(SNsB>s#Rp-{}jADJOzpp+0vFvjR`?^gtYiB2%ey4wh#Y6C$<-T7xxF$4S gn3>wA`TO~aPBx*w$@(hW`0le#KEm+WU2CZo0G{x8>Hq)$ delta 404 zcmaFQw2gU!PQ8b7SW>p9k(pOkwo`hpp^s5=L1|uCX{JFynum{HT3&@&SaOwXk(;rj z372t}t4CUhS$SxopPyTlTVhyhrk_)2MzD8OZmD;2PC#yHl8bL~N}{R11(&X!LUD11 zZfc5=si~o*LRLV2d0x6gaHVrjnPs+nNmh_|a70RGdcBc(NoHYznOV7uVTeUwu}7-E zi;-7gj!B>+mqk@dNm{U%Ylf+QQd+5LNs^hbg;#o|sdH37X1I$*h)<wPK~;fSa!8Q@ z$U5U9Bi;0()WqUcE}wLLcS}RV)Tpe~sE~5gij2anR3o!8mo%^J<lv%w?R4)z)8Npg z{0g6X-@L@kB)?3<!jRM;pCB$>U0sDhQ~k8e?2NF0d~a<(x6-VT;(XIE^W>6BlWhHz zz?>?#oGQ~QOPB1b$ZRg2A0_%d;oXkDr5#F=_oQEa*djcA?q^*^76+c$D_jlNPwAIX xcoGzy+BYfV+HYgt*F7gM1SjX;<#Q@A4EcK_X$9|-1ID@E0<MQ7FG))c0079akIeu8 diff --git a/hosts/nixos/porthos/secrets/lohr/ssh-key.age b/hosts/nixos/porthos/secrets/lohr/ssh-key.age index 30a5e254eb0031110173e2d83b1ad9fba44a8255..477a4d107fcf2627646628c9ea9b06d6fff8c500 100644 GIT binary patch delta 701 zcmX@kc9(U6PQ6EPkzt}`Qf@(Rrm3rQPMUr}o|Ct>n|W4wetxM_W{{a>Mrv?om1#w$ z0asK}T9ucvX=SB<X<&q3Ze><gx^qyHhjC(_nNy`jc37}skV}!7iEEB!GMBEMLUD11 zZfc5=si~o*LRLV2d0x7LNw#)rvT0~=W{{J!Q+QNTd3~sNNJc@naiUXcm}5weaY&JA zdQe)qwog?kmr1s3S!t5LX=P+Vm8o}0S&EBgNN#GTQBr8Kk*jlXrG-;aPDFWmrfEPZ zm#(g^f^&dnMYvOdg@2HHfWLD^fVqWVYDuMMUYNO~d$~crtD|$6VTiL+qGOdS*QLol z-zJtGNw3$>II%qFD9gK;UmAsfjDF7YvA2&@TYBI9N5jpcB<Z<Xry|q1ye>Vw*!g?$ zA=f!~%66wb2#V4RD%bGZBDVaw$(zGZ6eY|SKiRQH;L2MSA-0EsIyN^<7T@f7Gj&z# z@%sWQ>Bo}$zM0-mRBO4uWcIuMl3gzx6!boKRwccc$UIymTi-0vIQ8D5DXgALg|Ek~ z61&^5aicr8r0B~xflnE~R|tIXUms!9qZD>>b64^X&l8-@28m7ImWb!aWEvm(dO>qr z`X>F*)YEtOZdWnq4R>VWdA~M-D{klRTn2f`uq8_$#e__pW;*N2^l#?=U9a2%(pZaD z_cY$^PT-f?Xu0rc$8Ed%m{ZJUR;T85YE2bc@NJu*^S-}&b^iGY_D{U`OIa;0{9kZS z_MecXi@L^{lwDb~Ex#|mx#(#|$etO7dAbcj0V)OGZz{fwWvxDz)!y0ibnm9?f!zAb z<L=+O>gTn4X3G>wL%-XTkK~+rr&_g4ApVKs)?!Z0CNF_y0Y@YceehpnAY^7P=l|&9 zg8RMcwud7w2z@o1S7@^Q*{_?YOVdvr=qOm>$^7`atyBqbT<_k{gdLl{aDQ2T&f=0g E0N^<?9smFU delta 808 zcmcc1dYo;7PJNbpN<>(BNN7+<YDiUPiCeyYSwV7MVw9y*W^iU%nQ>I2tD|X@c78#Y z37183e!h8jk+W-%iMK~^lwXE>afx4+xo@(8NmPNWPkL@iXilJaREVQnF_*5LLUD11 zZfc5=si~o*LRLV2d0x6gii@eKX+W@(i@A?>Qc+@<Z+%68VYX3Kh)bDIfRS;aN0gay zh*5e<K)F#eSFul+OIB)jzEg@@X_1pxx|>r<Mu|zHXK`p?WV%nNabB6PTSQ4prFT_6 z$T|bv^rF<n;#36<_afyqPXn%WbHhv{zpS*JD(wuTtOCdEM8{Gii;}W*rxf>;lJL|L z)9}1{b7PNCSI4BP5>pH9<cQSrpyVQNM{Os^<irSlE>Dw+iX6kj(6XGQ)U-&)$k3F` zJT6^bU4>#(?_`&NKzGkVlSCgsmk0wB?_dv)s7fRK^qkDhU`Nm5EK@h%&=f=Ca;`fK z{+Db|+*xsKQa7vI^>aMae;+Eo7j<l1vB8~R&h_hrbJoAUsAYURhuii{=oxvgu2(jb zZ~2+|Mr%3EaCkcNQ)2Czx$Bw#&6jz2Eb8CGPOjvyyWeFn>sdbJ*tB+fPsx+>JHkKS zTQ=|Wto9qh#V=}N<=h%<T`qoCJ$7(iedgv5U!&H&{PnolQQ+J43LEhnyPkNbc!${* z@%9%33~Xm9)Ss8Tld-a^K!2zIbwTeYuf*?tahmUEPgr7|&sD3h@9DkrckEVSPZ>eM z@B>yJM*eOaZ?~N}DUj0ifxqGz@1rwLG7YkO<ZRDvQ-1!=A}w~mUH#WjS?<yvJKL;y z&hE_p?%no?SI%VCYx8@5R%!(-k<@Ov%GJy(U?r@nSs}z|w7uT$wd!`i8w!z;86E!5 zs?82;m=Zo~!=~?<x-R_&E1%!(6V=^*!_I#BXEv>{y`R~1MDvc$RVdc0IAf^zCs|D4 zfPqw?U`or{^Gc=)S)wlt`Z*rHdz&|b<w}{IPL7E2woAba{;plUZ<XYEJ%0vUooD_I zViN1T&bkLIxUVw1C~aS@Vw{0Nfoo7eMwj8E$S>AgloU66=k4QO-`ZU3eBF9VRT>`v DuWd<K diff --git a/hosts/nixos/porthos/secrets/matrix/mail.age b/hosts/nixos/porthos/secrets/matrix/mail.age index 1fe3a71..94ddf8c 100644 --- a/hosts/nixos/porthos/secrets/matrix/mail.age +++ b/hosts/nixos/porthos/secrets/matrix/mail.age @@ -1,9 +1,9 @@ age-encryption.org/v1 --> ssh-ed25519 cKojmg lmu3MinmydRHD0A/YVRRtopermfoBC8M8cTHfVanY1s -ygrtpZZJ7aeQTblNazpoP7DdifmDxHsE3DFJsIrWX5M --> ssh-ed25519 jPowng X0cihOc+fBtmtrkEivIHQngdYIobezXEF1x+pHqNzAw -/+sw9x1NWY0anZhDMpAywBPrR0F4XCHaF9e8j/Yo/kI --> 32;%1s-grease -JafjuSZty6a4NSO/y4y5wHWL8Mw ---- dwCl66vdpsL0MR5NWWvg3JUnQ2QZQBeW0Dj0l5tvOKY -oi,`#uwW%Poubڭcy8 ><FqKÂk0k/h5势F+u eb>1Q2wnWb֖Bi^xur- /ll-=7;j0I%FiA;YUd]KI0( Ag^uG:pkJ:qWSaLw!M4L/ZD-XUbvbP0f9 J`XO!s{QAcc;4Mچݹ lxH&{}zZ9ûXܓg]V0gtw \ No newline at end of file +-> ssh-ed25519 cKojmg u+5VWUy7eFq4boAIOhuKXZYD4mhczaUAcjz4+coVggA +QlBHHgz7uY3TVgex59yZA0XgsIeHi2WN2S+UleC7bMg +-> ssh-ed25519 jPowng IyeI6WUjF8wxe92xD3xY++4ZqXtY8divB39eLWfAtm8 +eGj8w5X2ydS1LJvNSmo56xzRVoUB0iAKKs2NHX968Yc +--- hsYH9lUl3wIErJmBKzlWV+gIR5v6vgPIcNDgd0hiRGc +@lQsȄףD}^{X)nYJhXhg8wӨǂwy(a.0>|PSlO|E鰀BW_)|x4\_F +Zo0=dtsj[0O+R8id8j +g$x òb흭Xg^G$UB*鲡)[tHav7jD.z+[~ 9z`s,_!^Yʯ2HSŏ*@jZ^v~غ@ \ No newline at end of file diff --git a/hosts/nixos/porthos/secrets/matrix/secret.age b/hosts/nixos/porthos/secrets/matrix/secret.age index 539c33e136a17f9caf49f42d65bbb528d78d7158..2c8852de12162394b78cd99ba47006d8a6cc4c0b 100644 GIT binary patch delta 389 zcmcb|ypVZ<YJIYIepYU}f~8}TyP>0xQNBr7KyaZ?nNz-LUSe)yVwsbdTUJnzNk&Ri zvW35Qu69N_SFS<1Yni3HXL^!fzDJ;sMP!zHWlDLTsk?cYc}RwjOK^^5MP^8nxkXVn zm#&>cadC!jYKoDmsiCDpRzQAvUb=#IexSdHzDKFQQ+<__fpbAsu3?#}pI?4Sd6lV| zMV_mvMV_H!o`-2lpob@yOR=$Km5WiZOSyr5kbZtypmUj9NLWCbZ;qK^X`YXxWrcIT zXGKbtOIReAuCA^^Zc?dRTA-1mzJ7{9aB*%_UPwuhUz%gSscA}uYf*7>seZ6`cBpfT zb5=Ij=ekL`OdlS;{Bead<Iz>`eT!c8-#!0*iBx#YiK&Kx5{0wBCiz);@$5U?K1cE4 zy~UR{F<$=kJdxwG%VCx~jvwzt9;!K3*?Y(O?P&plq>eik@rRnVs#@J9YikO2orvE* oYk#1U<A(XBrxtR|dA2L&{luWRQSC003ZAb__LOC&hAyiC0Jlh(MF0Q* delta 451 zcmZ3;e2;m8YJFBfetBNHLQ-N{sHs6ng`=ranNhK)X-H_ekyEi@h`Fg#N?JyGh?`?X zZhmr-nR9MBmy4yNYngjwQI2U@Zc%=Lk*85WkxQ0weqvN`p`(|+kEwTArJufqkG^vt zm#&>cadC!jYKoDmsiCDpvUh$~Zn{Exrn{MWVvw_Ae!XE<UWQw)i)mSbUsa)xpIef< zTS20`pHa4}n}wl%RIUk^Yhs~An5njZu~BNOX+>UYNqM@5M|OsPnPX|FwpUefa%re} zQki2_Rb)QMy4;K!KV9AQqSVCVR0Y-QI^*IT{dg|R2*Z3+SI=Z;gFwq-{VZQEKSxVn zU&Eq$0}tm=ePhc+!;DZaU0q#;0)qmxB1aSLutcMD{lFYg567s~f}kv?${b7oB%@N3 zl5+nLS6A(dBJ+H%Z0Fdc^8#Aa7CicsZ6<JX-JCx;&$;)#PhYTI$GAH{AopQeUAn_T zR&Tv8wHBY9-@bX&lCq4`%(mtC4UYBVwcGN&p9$Oic3o;x|28e`$eX&`o9?7NYK%C$ vizoin-x-EU+H*O=k}@R(pKO@&jiKtx&GUuwS6?J?U4DF!=e8hcsls~zbG@i4 diff --git a/hosts/nixos/porthos/secrets/matrix/sliding-sync-secret.age b/hosts/nixos/porthos/secrets/matrix/sliding-sync-secret.age index d375a35..e938cfa 100644 --- a/hosts/nixos/porthos/secrets/matrix/sliding-sync-secret.age +++ b/hosts/nixos/porthos/secrets/matrix/sliding-sync-secret.age @@ -1,9 +1,8 @@ age-encryption.org/v1 --> ssh-ed25519 cKojmg N182xey8TWRVUWTRP16rT0zlhYZNr/pOZVR7YRnlIkk -HVqAag55z1cKLgjR3WsUj2wvaVjxm169JcDRJGRvCVU --> ssh-ed25519 jPowng Dc+aaUTxDsMTY+oOst0SC3ldq1e6zX8F5A5uBL5RHhc -JWZou6+VaFc5f2OLRIrmFFWg3Er6WSY+TloXU0mP1K8 --> |9_9Aqh%-grease $ X8Mn|5 aKnl' fl<D{T- -+fAc0cajqxhYWu55HCY ---- SrmtWXQXGYxNTabSrb5tBRXHnK1F22Qoiy7hKYrrF+0 -D: ,n0i^Ɗ`2#y'9Ҏr]؛xS=uJEclH~ ełKtvo'v+ \ No newline at end of file +-> ssh-ed25519 cKojmg xRtF3XVc7yPicAV/E4U7mn0itvD0h1BWBTjwunuoe2E +OkB9sjGB3ulH4Feuyj3Ed0DBG4+mghW/Qpum9oXL/8c +-> ssh-ed25519 jPowng 1r8drqhz1yZdTq0Kvqya+ArU1C2fkN7Gg9LiWWfeUFg +cjbxntVwHvqLaJpiKs/Y8ojeb6e3/cLFcsoeuoobfFg +--- B1qA2PylJBrdZxZtCzlU2kRPvxLM+IrXTvR+ERxVtTY +"W9bg~/b4ՆI +} -NC7vWb?8=wB UpJClOșnO\ \ No newline at end of file diff --git a/hosts/nixos/porthos/secrets/miniflux/credentials.age b/hosts/nixos/porthos/secrets/miniflux/credentials.age index 979015965f433e63c6451fefcfa5511c614dc814..00d89a4b03c4b440ba1e77750fc8ab10cbe7b03a 100644 GIT binary patch delta 360 zcmcc1+|4{er`|o&GcYgEJ;Wq1%O%s>G%D9KCCo9kFvlPys4yiwFU>1YJJZWGztS_b zoXa<?GS@xPEU&`9%-OQiyvQUZB&;emGA%FJ+rY>#wZN&=-^|yqQa>}?fJ@g-p}06h zH#Nn`)YQ;YAuAxiJTF}#ygb;zz`&?9*drw*B01I2x!$PCJlM-9#XCPUDkH?l)GakV zHP<U5r_?Q(E88zA#3v;z!zCpz)yyd}DnPp;KReR0Ft9LOKfuf+qR`LHJT<(y#3<Q> zOIKG{!BsolGt;yzI6EVv%rVN>!{6N7G&m(aIN7oy+cem-+{3`a(m%xABR$WTE8u$F z!^uzhc@qUoeyR$aR$E`6xZrm1H;1)9;-BTICwnWYE<FDIPC%I)2j44>P4x-o?`wW+ z-!SQ$MxX8qoA0SNW<9zeY4QKtZ7+vTNAs8!Lb{p1v;*%5L^Q_bebAbc^Y_?dd5$^G JwnqQ=0sz;4hcEyD delta 443 zcmeBXzRNs8r{35s$;HX3pwQ5>*et5Rq{P5CCAlohGPg9O(ydrOz05rz+tMsK(K(~s zm&+*4JHRU~*xS|HH?=s?r!vRK&$YnY-#w=y%rUYuza+}tBGJ?$z$3@kmrK`9p}06h zH#Nn`)YQ;YAuAxiJTF}#DA+5?)Fa2y)H5h5DZ@3<sov3`BG@UrJm1}-BEr}w*wimE zH&NTEA|=9rOFzRiA}h4epggFmB-q(CD$v-|&{I3Y*d;7IAlWp+Bh}5%vcfPVL)$zZ zWSw(HN<_7#ZhBE_VsWZMsC`wfQJtcKlV4u7f{8tsabciguv4*bn7OH2qQ7=(Vo;e` znNN6qxPEzJgo&fOX{beZl97IdMR0gzW~ha8B$uwPu7W|itB1B_Rz*m;VX>iadT2&f zS#qU?t3hgUZkbPkQCe_TNU(WIR#v2k0oTqAPBzI21<zfk`l!CI{}<&|65kYZnDMUv z`dd?!trP0EGKBOm&AFwMv4VH`>6{s?H|Ld{+-<VMLt8l7D1T<o%q_LXciqz;H|Lq3 l^Rj&Z^}<c-mzuR{L6g>qnpKzY@;PN%{gpHLZ|nS@e*q?7pI!g} diff --git a/hosts/nixos/porthos/secrets/monitoring/password.age b/hosts/nixos/porthos/secrets/monitoring/password.age index 410536f..67c75e6 100644 --- a/hosts/nixos/porthos/secrets/monitoring/password.age +++ b/hosts/nixos/porthos/secrets/monitoring/password.age @@ -1,10 +1,9 @@ age-encryption.org/v1 --> ssh-ed25519 cKojmg OdLtFHbHbc28rUn47vgsVvXxFNg9nF+9y9R6XOK390Y -yQQYUPQGjN2+xrSqqBYa7/zS618KrVjX5Amw2MFuSLg --> ssh-ed25519 jPowng NwUjiLtiXVi6XFmht5l1CxEs3gm0oN4vHYwDZyda7Q4 -di6znVjNRO6QdqteVNkeot5Ko2NwWLe6v+zVR3f+o10 --> 4Vx%\(-grease ^^Z>EC91 R 2BJ d48Wip*s -yPiBgChRF31XgxccQFLO3MzRL7+5s29sfRoF3W1yUX6Bu59MpxD4D+n/jhLcxSH/ -CxW7KaiOctNmPm5tWh6qjmgQ+V4bcAji5vo4FKs40l56cfyueEJj+Q ---- WUGF28zqK9E1AlOeeCtSHxFg6ikRy85gOoLtBd4m0y0 -.|rr>12Sɞ.hww q%i *U^)'qO2ӜmQ7m` \ No newline at end of file +-> ssh-ed25519 cKojmg l5lOlGnbvQ4D2kaSj1dd8Xr+btlNbTkT0SxSz02Vr1E +Cjy73yKL1N8LnjRXXLpxX+wIOFCa8wrG44VjXUND1lI +-> ssh-ed25519 jPowng nYHfkP9dRkxu4Fqh8MgrbdZAc8gk+VGDyxIV6RsSeEM +rKKi1NDoKMMzQ+kUs5ZX4zMqRBI0QwGY7q6K/L9+dLI +--- Umv3UCtXlApug7uuqmwbQN38i8Lx9/b0uhLgbc3OdZM +BLs?sӓs2y +R0!<f9txB7dڊ^ɇLJ&W <e] +/$$ \ No newline at end of file diff --git a/hosts/nixos/porthos/secrets/monitoring/secret-key.age b/hosts/nixos/porthos/secrets/monitoring/secret-key.age index 4cef94fa385ae398c60f78536f661c35edf04631..6ea8c5442a7cda00d8eff218c06933826b82b42e 100644 GIT binary patch delta 320 zcmey({FrHiPJL;WepH%KX_<DRd780vm}|aEX-I}gN};!_p;1n{hp$Vbe^6FbkbaPn zFPBGQabZ+`X;4Lea;b-ZX0m}rvQd6$P`Qz(rKyvzrE^ufYni!QKyi4vFPE;JLUD11 zZfc5=si~o*LRLV2d0x7LpMi(FL7J1HrEh4WQJTMJN_~NMg@2TPcvebix@)etf0k!} zNk(>sp_f}em#<@bNO*>2ifM|uX=Z6vnxj!_plN_bPDyY?l$VK7ierd{QKXN1r9nn9 zm#(g^Lb|1QVnkACNv@NDsb6@uyGw9oc!g_KzGZoSV4{adl6FW*L0Lpva)GZ2SMueE z>k2|AmRrs+<xDb?TR3%%ZbSD)C4RoCvx9;!c`j2sb2jit$t96!?!c%OZp*U2=mq${ S;GAUd^JhtL$>VFf-dO;eVQ?n^ delta 473 zcmaFN^qYBtPQ8DKVS#Z#wx70>cZHutuBW?ip;3@on2U2#RdJQMg=d9ldT5w_Sw+4_ zHdjWnS!Jq4n45ovWrjyaWuQ}uzoVsPnzma-v3F2@UO-|+hEGzlV^*1aAeXM4LUD11 zZfc5=si~o*LRLV2d0x7Lw}rn)WJ<o7f2vnfXs%awVZBLkrAbtxyGgK{i%FJig@2lP zgimFKuc1LCS7D)XgsZW3MT(hOL5R10Rb`~UTY0Weu)ls#kcVYtNKU15L14a5K$xW? z$U1HFTpiu?qSVCVR0ZW)1=C=K%uri(b4PmvF3-aJ;G$9!17p9?^1|W>L+w;=C$mhy z%CN$EOUH`r6jQ?zPdD!*_b>x(Hw#0<+)@)qw@g1@V}r!>2<OPW>>{p2<G=z(*Ah!# z^MGQnh$_Rh;B2?Z0JGA_0AFV#mr!SSm#C_|MD3Kk{0J{Y(-M;iOQYP9#G))NU0q!T zpF}^4^pqT<)DS0qcZ+bRtP=eSSJx0P^WxH=lJdfc@PgdZ)C$*#{8FEEuKhamr^Uxi zW=M?M@AZbYQ%T~&&Dbjc3oIsEPX_1S6n%G0W_P3Zk{2S9?{*iym_B{&b)QDTYrMwc O?^gVtnv(g2=K%mZ`=crV diff --git a/hosts/nixos/porthos/secrets/nextcloud/password.age b/hosts/nixos/porthos/secrets/nextcloud/password.age index 9fd3c53f866f5e1785e63ec681d2c37ca7762d10..9039eea5eb2d4050f05969a0339f232864189856 100644 GIT binary patch delta 320 zcmdnN{FrHiPJLpat6`v}msg>Oi@TR!c79Hvn_*^dMVL!Tgm#K)L|9;?laYmCV2*Z% z0hgs|Xqs7Bh;y)uhmUtfl)jmxwzH9Qpiip5cD8<GQn_(PM7d){WvO|AFPE;JLUD11 zZfc5=si~o*LRLV2d0x7LiBCwWQC65iq=`#uq=8?4Nxe^Kah|h&xo38;sfnq3rG-IA zQe{<@r)Om`SBY<azGsqYnO9V%W1gQ^ZhAn3lTnqYcS@*xW`wD8W?q?DsiStde|CN( zm#(g^LX=yCc3NOWYCyPSScZv5ahiE$khW)_V_ueNak*DiK&hpZzPC$8rBiA#S6;(Y zyO+m4%(P6O9j!a>K+2}eo6d-(RQG7*&QP`Ew^_Kh)-vksm02?{RobyH{24Yuc*CjN TtSw*pXGQX#o5*qErrQ?)a<6iJ delta 406 zcmaFNw1atqPQ9x~WtF~JrDvjrQJ96fwtsM7T4G74i&H>SUS(EtP;qKTfmw;ZsbNr< zFPBe1afqpVR&ipei+@47zEOU0l0|q}MX67jnMXxxl%;o=c}hsWk*Rk^B$uw8LUD11 zZfc5=si~o*LRLV2d0x6gmS3WCmA1P@PDQSTahQ2nT77<Ar9p+Er-_%ZTWFD!xw*D~ zQd*FUp?{DGSEW}_xS4)rfr*o0d0A3sxNlank-xX8e{h~(c|dkmzNe!_g`swZm#>8h z$hyQ3TWu@H2;KCe)WqUc1=V<c?eKz1LxqfR1ueBe=aljou53%~AdlpT9Q|;Uq@vu6 zoFI$(97FerLbucsH^-8a0CSg;Fq5FFYy*$HD&y>OE?r$+g_1<Kic)PKM{N(U$f(k+ ze8-Y9f3q@e3#amw3J*h1uP~>4m$0a+v=oz2u6OtM>h6#0F4mY;dARhUPmRXx&A)2; z=ej*={?X)beJz<Y;HRC-MXw6CEn67AJqYBPvXOtv<=)e~UmkMSV>Ou`A<+Q<^+k=o diff --git a/hosts/nixos/porthos/secrets/nix-cache/cache-key.age b/hosts/nixos/porthos/secrets/nix-cache/cache-key.age index e0fb5be786d9814da7c81edeea1e47b67a45c4c5..17732edf1ed61d9a02ad41eaefe29cb50634c4e6 100644 GIT binary patch delta 394 zcmey$yoPy#PQ67&n6{Inw@-1Qg@=A}MR9gcRjId8pn<+~VR=@#S)oORudkPZYof1< zCznrXmZOn=VU(j|YGhWpSx8A)Zf2TOXuf{9duF<Kd1{JTfq77#dsa}TBbTn7LUD11 zZfc5=si~o*LRLV2d0x6gd6Acsdq7&GQKE&1Pky1lVZD)lq-T}0lZin|RBn=Ej$24r zkxNlUk#n9am!)HnW3azTRDf$`V7`-QQL%ohg<F1Ec2#M5ph=o%QIvmDXqZ!!cBo@9 zm#(g^Lb$hYn3qXPMv!A@YEDH&vU!r1nRck3e{hjUg{O&6MnJxCra@4mN4B{mSI3#t z>(^NZir3FK<@IXMT)a<n8GlId+-(+LwSTP>HvZVhQ!`oZxl*B<n|ABlH4Dm4Hcbl8 zI)8fFlS97#68FQdtM7|h{h-WSrNz`}#=E7r_Py1~`K@zir~mTw`?uEkm|G~m3;Yno trm{Noo5+#&vl}ezHpqNrWpui*B<W(y)H8?ET$1$*!(EQ5GtW-91OO@nmRA4( delta 467 zcmZ3({FQlvPJM7hgps9xMPiacs&{FLYoJL)WLki>yGN3#WvGRDQdmijfp3t9Z$(sI zBv(XfZjp&aTAFu&TegdNX_#43ZiQ!_QE7g$p=oe#aixD`a718KVT68eGMBEMLUD11 zZfc5=si~o*LRLV2d0x7LyLU#GnSN%KpJP>Un4^KSQ+<TLt6y?%RZ@U+m|;kWg-M{9 zhgn#PNq$x~S9y+^i=}UgfoYCOj)`e{ijS*BK)ywxN4`&TxuKt5q?vbNfJcRiWnMuf z$hvYhzig!{-Snc=#Nt%0lmg#~(6TV|;xO-!B44k<<SKuc(4aCiL(3|C14F-@;z)xa zgNpF_9RI4qs6h7$KeyEU&_d6AE?r$+g$iF!uL$pA1HZDI(26K?AOED#fUweJ_w=L! z{c^vcjL2k9->AsqbbT{Nu1o*#Yc#nR7;}a=ES6tl)Np3uyMN+Qx4+u|*by&ZHGN*T z+)1_XXA}0UD3_hT?r7+n-uoN&1PGiL`gNJ%U}T?9KgSF6KN)wtGELK&J};;~>b1}M zRb*_>Z?}c%VudV0)3bKZzaY83--mtu>$BgJlQz^o6gnp%vv=p)tcPb0t_zC`bbMWB M{UJ2#_Wv((06ti>3;+NC diff --git a/hosts/nixos/porthos/secrets/paperless/password.age b/hosts/nixos/porthos/secrets/paperless/password.age index 3fe76cb..8d545fd 100644 --- a/hosts/nixos/porthos/secrets/paperless/password.age +++ b/hosts/nixos/porthos/secrets/paperless/password.age @@ -1,10 +1,8 @@ age-encryption.org/v1 --> ssh-ed25519 cKojmg zhpo89xef68JoeOFWzhdFshrj2BXXUCFPMLVJzv6EyE -fmJxJi5rmyai9qGwDo7iHg4BrObGre96KCpl+g91O6I --> ssh-ed25519 jPowng INA6EZdy4J1p3QY5mfVOQXiLdOjIDaZR+CZMP+GfkXM -8Nf5soaxY5SEzeJca5kaJkx7ByOvc4NkJVetB7wpEmo --> xjK'w-grease -f5v0cvlt4JbHlAwDOob86qOInWdlN/oohTg ---- NTGv4rr+MhJ/YeZhVHOjoS1V+zCHFf2itJYfK36R+wE -חJ d o'YFU@ -r7_N$>]hq-F۰qX?| ? \ No newline at end of file +-> ssh-ed25519 cKojmg 1hbRAuAGrTy6nmkAq+UWua8weywphZsTIGF68YQEOlQ +92Q7uIKv1EiO73wMh53jrTuEkzP6ziBmX9SWXCl4d3w +-> ssh-ed25519 jPowng aPb9v/S/mLW95Qom+swvasqY878RxpxxOkMJA2wb6nY +qu/dzcqciqKzNc28HqFMHA1XnrJy+/wWgbfM1+BrlkE +--- 8PXOozvZzNZQD2OT4a+0XuIQauzUGSvovdfDugmp+bc +x>禩_C9dT5KzЄqcZɾpใv +) \ No newline at end of file diff --git a/hosts/nixos/porthos/secrets/paperless/secret-key.age b/hosts/nixos/porthos/secrets/paperless/secret-key.age index eae5c56..70cb898 100644 --- a/hosts/nixos/porthos/secrets/paperless/secret-key.age +++ b/hosts/nixos/porthos/secrets/paperless/secret-key.age @@ -1,10 +1,7 @@ age-encryption.org/v1 --> ssh-ed25519 cKojmg tZwn2usN6K62oS4vBa6boh9zEp/+cS4chP8boXG6SH4 -Fr3kV8gUDoiDqMxPYWsHyww8umYhQEKhqbVBiVw5NeI --> ssh-ed25519 jPowng wRbJl4G85obH/GluQBBsXE7MOvooEui65eqHfurvuQs -KqVZMBSyHhkayEdwI6ocmA4qhHY9zYJvg1CEKM1SOa0 --> 2E"/OFW-grease o Qp3HFe^ -bGhCNicPqt7txqxUiEWXCFs1OuQLqOqHmjHSqYQv919dqYep/xBXzi/aRf3dsdvh -TCJCTvZG31Qxvikp ---- xKJGbdVp+Z5h0vCBleSF2zYYYd2S5i0y4szNqjRwrDY -T /Ni7m4#MhiPޛ-gI%@E(i7Ygk"+㸠(]o@bާ+[Y"BCR[ >-.4db9v \ No newline at end of file +-> ssh-ed25519 cKojmg r3ZUTfSNcHc1TS2fVtk99Y2xJMMunkwkcR0dQIdiCi4 +LICSnzAaooGy6x4wt0vNM6YtQ4S17QohZNt7lfVrD6Q +-> ssh-ed25519 jPowng KLU68ws4lemr0wWHxm8H8pf1SQAoUZTN4QSPzk2PyHk +6pjH1pI956oaf9ZIHPPq8p3g/mZC5GxWhWkT54Wohf0 +--- cAQbniTwwtTftfXU/dGtA69yF/hh8iB97vHxvkIZMMo +c#=^~?5-wNT̡+!z " Z"2M!p5VjΡѡLyŹ nĊ8zQ+ة9WS0u}YÚ \ No newline at end of file diff --git a/hosts/nixos/porthos/secrets/podgrab/password.age b/hosts/nixos/porthos/secrets/podgrab/password.age index 90e2501..d50dc28 100644 --- a/hosts/nixos/porthos/secrets/podgrab/password.age +++ b/hosts/nixos/porthos/secrets/podgrab/password.age @@ -1,9 +1,7 @@ age-encryption.org/v1 --> ssh-ed25519 cKojmg 8rcBI7fYHuA3jO6EzJNFaAj2niIApKDt1HQEv61AKTs -ANxkIX/CeI7t7Zqp6wmjt/D194Z+xpeiidb+qvYzoQU --> ssh-ed25519 jPowng oruewwTM9X/HjjcmOPcQVdp02rQBlgJPdzvlAffs3T0 -MrO0kaNhjgOkNHuz3NrIMWXNrXOHH9dT/Fk6hoQNKyY --> COK%H7-grease -6yfI90QurOKlM+kgpW8KZ/iBzDYD9yhNmjG1LQ ---- uArz8eHg8sLO0sdlkM6cELFh+FHiI5BrM0+iXJxxiDo -vvNb@FMMY&/%mt֓dh|ߩ8 ڽ9C/ \ No newline at end of file +-> ssh-ed25519 cKojmg bICZUDqk/C2divEZu2lxUDsrtS1inSbDbS8hxJSJfHc +FsfueyP6WCesAu5EcXIxxtvbb8RX09qNTN9GvuhYuTw +-> ssh-ed25519 jPowng Uujsu6c+QTXqCNi6c+zxk5tf0UQcG+Qm/SZF4dzSKCY +RPVNNNauz73A8kWA0VSQiMWCerUkxPoXG2MUrFly3Bc +--- 8h4hGasOwZxk+i5aQfg6AzdA1G4wROhxz2rmM9u41b8 +{Rh=42 yЙjMWQ%X ]JK]F?QK \ No newline at end of file diff --git a/hosts/nixos/porthos/secrets/sso/ambroisie/password-hash.age b/hosts/nixos/porthos/secrets/sso/ambroisie/password-hash.age index 10d9eaa37c8cc1c8795083db6f5b34d20a30b9db..efbd945037f705059145bbc665e1be54856efb6d 100644 GIT binary patch delta 348 zcmX@j{GVxpPJLjBn_r?uMV_~LNS3EbSb2m~wokdIlaG6%YgtBeMt)&lpkt-KlW%gc zBUf%gV3|vHVn9Vmct%;4ewtT$q=##`QAC)zMRBNirdxndM7T+KVz#G|FPE;JLUD11 zZfc5=si~o*LRLV2d0x6gu~Al~sYy~`MwxzMo>y>=X?<cuXoRVUc2Rbkdq{Cnc1DS} zshdw#nOV3emuF>0SaG67iMwTlS4u&ozd?zGr*E>iK|y%ASz@SHm|0Gmv5~i*d$x8l zm#(g^f{&$nxm#JGhfhv&WSCESXp(W5tFM7mc3_s1ak9H}if6GwglCYCU!t2Ym)hSn z&mB%%7lmpaD*x%ox_ra_B`;1z^~4!Iw!i*m+AD^=YPa51hWzhcw)lr*RDIKJ?dP*^ xS~v2a%{4xs$`^G(?DeA6md~HJUE;3Z6n{Q2>FH+9^Fk^-$Gx384qf703IH<+gn<A6 delta 425 zcmey*beegBPJL9UV_1r-d1+FCscCwMb5wY+i*bdQwzFTbsezA&N0Fz2g=M~3p^u@V z0auo>c2c;7Q*LrbVN^vxltq<6x}&36kZ+-zOG$CQc~XYHc2$yhS+18;D3`9CLUD11 zZfc5=si~o*LRLV2d0x7LX_!fPewm@4fm>#}U$SvQNqu^xnT1c7c1S_0t7(N(Qb@UH zu#vH$evWfGS8}?kc9v^YMtDYXs6}F=XPQr9khZ_6TZLypesW26g=2VRmUC2Mo{?KV z$U5^%uSnhWqSVCVR0VDAs6-u01?xZ+^<V|lf?_q(5H9_o#NgCyvmF1tl%T-SG?&C+ zkJ6y}9P`rf3{SJ*(){EwKiAAc16K<!U0q#;fF#$F5SMh%F!xIDsLEiM9LrMkEJIf( zFR!wIoM4yW>{OquvH<TC3rkn7yGzRFHI&CVEdCL^o}(h^MCB>ll8n~|v2)jKIk>QS z`MI|uTekf6wwH@~H8DZ*(&uBZwi$(N`%v|7%H=moE1d4?CI=h~?PW+>8M;VF%kO&B U*E276<{P~f6P}c?U{=j807|!-kN^Mx diff --git a/hosts/nixos/porthos/secrets/sso/ambroisie/totp-secret.age b/hosts/nixos/porthos/secrets/sso/ambroisie/totp-secret.age index c5ce19b60a266757ce1389831e273adcd6b6abba..211bec374f0773a28906a9d0d52f0a1dbfb6dd92 100644 GIT binary patch delta 340 zcmdnR{GDlnPQ7V>M@V^|W0{w$TZx;WPlZWdWN>D=VM=LLs<W}HzeQ1gv6HD;l2fHe zI#-3iM`}@eU|Lpaxp#3@fO9}tscC9SW|qH8R(@EzXFyrHt7E2Vu5(C$BbTn7LUD11 zZfc5=si~o*LRLV2d0x7Lr)yQZQ&>evj<1JDXkuuhQN5p=QCM0=cvV_KZiK$0VPKk9 zx_e+!nsKl%SBA4&wnvVaVOm~5VR^WdwsB-gK%qyNg;7dcc$K4tUsOe&zel)blu@QD zm#(g^f?t?{Wks5sr=LekZb4*Jq)%|Ld$xsPu)bGvuuD=_W~qg7K|x}+WkrxHmuu7Z z!=g_QeD+<O8#?O^ule`4+ukm3X?Jzd$ysQ_e^%?r?}%3ka;v2Hz3y!G4%-{%bne9C p%q30>Twl%b|9Q1z&XaTLhYqq#&DWjwcbfWnhfjHj8c(?u0su`GfyDp- delta 408 zcmey)w2OIyPQ9CfbF!ODkb7W=OOa)HM1*BVKzLfIZ-IwXctk~3y1Ausj$1)tnwO<> zIhSX;S7~Zdg=v79aj<EqMUk;_sBwv7UWSW{L9k;)glDOXze}ETfm^7DE0?aFLUD11 zZfc5=si~o*LRLV2d0x7LVQNyQM?h|lXJL|QNrt(8S-nTLUus^YN2P&FX@+5mYm`}< zca(o#m~%)rS8{}TS%iCOg<Dp3l&7b5v5`k<K}l$Ouv=bnSWs?dj#qL;QDRkES%|qK z$hw+3-Snc=#Nt#19fe}UavcQ+lK=<p=x8g2f;_IgqVimye6K>U4E>-GBUd-yC^r*x z-}IDv@65zhcc=1D({wIfU0sEgGDn}JQ2!i*RFCXXV_y$nV{^-pOnswDck>GKNMnQW z;FNTiU>~E%(nzk2tr1I7>?>Wrmd6|KmiujbBP8qEK7)P77QgWQHlJbX1ebeJ3cFr+ zUfj{Rb$zw5XU~NnNf`oGb5iZ=#JwUbCLeOVeKuB5s3>@*8`G9@Gn-v!ZXZd{SPTG_ CgOZj2 diff --git a/hosts/nixos/porthos/secrets/sso/auth-key.age b/hosts/nixos/porthos/secrets/sso/auth-key.age index 4e05b15362db0aa4da54df2c747e5d4bd86d001e..1c1247026fd209d9cfaf58b8e786265c72cdc320 100644 GIT binary patch delta 417 zcmaFNe3*HHPQ6h^S)hM-UWl`!o0++HMqoxnp1XcplC!ycL2`+Yc}|31VTQAZQDtaG zAeWzegj<AhqKC0hUbdl&qhVQoM7ep6f2Bc6L1|HVdTNw&N?B-_NqR(-0hg|wLUD11 zZfc5=si~o*LRLV2d0x6gT4hvlVv><dxtYF~PllJLTfLWsi+hTbf1zneUZA$AMT(P? zTVA?RVNgaWS6;eyRkm4PVQ^G{Q);kNmPv|7NLGY-Xo;a)jzvg8L6~QRdy%hcVwh7t zm#(g^g1@VAkg0j1Nmyc#e}<c(w@-vgq`O5_a+0fWn2T$cS43rwe`S?<agbv^m;IZp zg2qrL=Xzzw%|A@-ZHqfw?F|+_X82|69N&KT_S+g6gY!Sz)P5F;-FAPwVezZQ(Qh|T z+J4#gLg<4Zj8|`LpBZJd!YaG(jj+;*758km>O{?a@$ZS@!fj{jJr*aoN%>BA*rPvr zPG5{;%N+YJdqVpk#?Mnu_$0lD_0}Pkb<ZyC&^f32aPdu}gHnf&S+5KcPfT}c(Ov2> Sc{Zcf>|YAJujjI7-vj{L;-y0X delta 449 zcmX@i{Fr%yPQ6KLa-x4)qJF-Aq=CM%r(02)nQu^eSwyZ=SX6L`rMaJnWl5SxaGsyB zBUgT=Ta~AwQHrmTZ&rDtVU>AOK}JrdVOWrBs++s3c5Y;)Yh|umq`R}D374*&LUD11 zZfc5=si~o*LRLV2d0x6grcYt6ws%%exT$Gio|k1&d3{o5c0gfhMunG$cY3&Qc2bU? zzME;HSEQRKmr-F=u!)nuQAmiNdtqKta&bhCpLtHGS4M_Ys;fy^s#{b^W^hWjsi8|K z$T~fz>?D&a-Snc=#Nt%0vVfrM^rQeo3*S=DvT`n6U0sDNAImDANaG-nkgS57Aj^zG zU;Xm>LL*l*H&4TmGMB*O@H`8%vJ}${?ZkYp{g$C;4sOrxSUBmO`=-UdoyIGZE7@9Z zUe7X%2>Lx`=jWVOhUsC~R$sV!^<>g*erXM-^tp`&ZfU<?%sH@cBA?OZ$2%`+n?3!R zvuN+U&$mAZsJ}DcuxVxld+(PouMV$z@obGlQ_d;Hd$+CZA~wyI_@n-PL)M82W>YJ^ xes<)U`r7NKiH;)kwLAA^ZfK`jPDp>(_R{5$@^>rg_>_IWOw4<~GB!`R4gjazwKxC( diff --git a/hosts/nixos/porthos/secrets/tandoor-recipes/secret-key.age b/hosts/nixos/porthos/secrets/tandoor-recipes/secret-key.age index 2ec147d8edff2730442d1ae253609e27bd43bec4..d6db3710f922d6d3d4f9b65cd05c07f0858cccfd 100644 GIT binary patch delta 370 zcmeys+{ZjYwLaN9KPxv~!OYk<H89IKB1=0vGOfrdSidUGI6pKc!aO-6H9R8AEHpRG zHz&d;B)~nHtI|6^CAT6uJ1IXSJ=Z<m*C;B?$4KAQCoMHA$~8E*%plo4#K_yt*fYS9 zOV>`JxHv;MHO0u()X-8PD<Ho-FI~Z@tROicGsh)8xW2&8uq4$tG%>KSDj><-Bs?uI zGG9O4%fhR|z{$hXH=~#<Da0bxw=&$=*|*Hyq%u9qGchS8I4IlSGs(ZGI6bf`FVZzk zKRd&y(4d@4S65ddEj`5BIm{`j)YmPfGCQxx$Voe+GCicK(zwFYQ$MiKJuo~c(Ky4+ z*EEvrN4BWcIW0rYl(p$D8%qp66r70sduh_`AMSrE(ph_c6uy3)v(@xuU(|h{bB$5c zEnP0%WVmpqbos2+#Zxqx)m(Ku*s?1OIb2fAFFsuo`|;xCkQts4(av4vPbOIhDSH(% SExg@2X=g)p&K=<yD{}xm!i+`$ delta 469 zcmeBU{=hszwLU8#zdSEpA;P5G!qO+)*fLGOGR)H>(#XfzD<iwitIRmt$2=#{xWGTe zG$g3NEUB`XOIyDxC9vG2DkUc>)zmR7CEL`g!qU}0(>Xgi#8N*pqcF;&C^^g^%{<bP zOV>`JxHv;MHO0u()X-8P**iZgH(enj$KSOiIo&iPyWTH7FxxF9Ei6gfDKppDxY(yW z$1K+@+uNtetH9aNJt�(8SEyG%_?j+q}HUB_PirJu)~uEZZf;tuQgt(7!NDJJ}%3 zvLq=qz`_J%ovTTXZhBE_VsWZMxV}QIs%wf)rmlj&LS7=5i(83-Sz3WXQl*cZV_HT; zri*KRXrO;!zO#0^Wo}lPVV+x=wxd~&Pl2~*u7|skMM|1eKtQf<se7?^QL15PC0B7e zm#(g^LRF%1O1f)ch`(d9x0iWJQfh9gzOT8dqf=5=Wr|0Nah0RHZ)A=^q<@|Tm(ii- z9r<1!rmq-<_l8IAYdt+zFDhjI);VcYR&z|a=Xb;B&!bhghn#0An13~&t5+K;5R}t( zucU~<pem>_tC7F+0_U6PnO_c6PEwfYHd8~|>*j}ULBIRVg&R|*-+r=fV_jZ7dxC8m Lhh^qsx9}nW?r5cc diff --git a/hosts/nixos/porthos/secrets/transmission/credentials.age b/hosts/nixos/porthos/secrets/transmission/credentials.age index 4f407fa..16f90b6 100644 --- a/hosts/nixos/porthos/secrets/transmission/credentials.age +++ b/hosts/nixos/porthos/secrets/transmission/credentials.age @@ -1,10 +1,8 @@ age-encryption.org/v1 --> ssh-ed25519 cKojmg mP2H3PWJN6Pv3q6C2wci3KnXjtFAIiuGy0YH0sGIy2g -f43QqyUQfTYznszub47kgc2Mz95zVScTDkwnG3INi9U --> ssh-ed25519 jPowng fENbu7+FZ1mnQQHQCLm1spLHmsQGlRoJResUJtGzYkY -hX+AqCkLCca6m/aKtGCThi7/mCCz/TZQNJNOlOmlqyA --> J<-grease -n7+CPRr4oazWnE7yzpJN2ZAI4QrGsAerloP4wNeebjQDx8+IxJq1JE0g3Yi0RxzN -chDccuSPLYk45Ov+SD/qqqFZlQ ---- p81HYw3LFj+qz2kiZsDcevM4ZBfvN743P9Jdi7J9XkM -۱S7VBOlEtq</Ǘة9(P$W0h;Jyfe >_D,PVFp\"AM}g?/\;y Ӛ(SK \ No newline at end of file +-> ssh-ed25519 cKojmg Froxrdh4H2Bsj4X2xicyBXHPRlbkRJAOztoTfzxItSM +FnsLS2QYm8mJUO+c152FieLCFkALxxwQLnY4PAj8zsU +-> ssh-ed25519 jPowng pKl4p02M+U5JsiOnM2wXL5bkPwsI3IHjlTutlvez3zM +NSuOFsyV8JqtTq97lNzacJnJ3YZgWp53XxU3mjUlcMQ +--- 2TK2ViFblmDheaYdat/GF0ze1wVsla1EPLaeRdMM4Gs +ըENܞm›2u~Jubt[$T^2ji@xҸ*İg[MHX!6ezDW]<` XPޛ +q*o$< \ No newline at end of file diff --git a/hosts/nixos/porthos/secrets/vikunja/mail.age b/hosts/nixos/porthos/secrets/vikunja/mail.age index 4c83acd8586c808c5938889471406eeb283c550a..864e5be1b389dad8408ecef2710b33f6d632a9ce 100644 GIT binary patch delta 546 zcmaFDdYEN`PJO;<Xufl?r%6#+m6wHyV_<P<Zc?RdUV2VWXmW6%lR-{Yxuu&ymA8eF zBUeRGa$%TupnqXmL8@<5rk`_4cvwbeP@=0-Vr80fa+#TFMRJj+cSu^LCzr0BLUD11 zZfc5=si~o*LRLV2d0x6gm0MIua7kfmqFbf5hnKsbalLDpk)?KENt$+kVnm2{ag<+P zMruh}j$f4tmuX6|W2IA7l9#b(nxVJ9Wm#E~ziFsPnOmB7p`ocsMMzm-QmLsyh?{#d zm#(g^g1&E7WKgA9Kty(xV{(YEZ()griN1Dlwzpeyse4k2Ta>X=gh!O2X=PO;mwwEg z(}x4qz3UCQnpT*`23GlRk9n|8<o~^?vwg&P*e3i+o6Hh7{rgIr8QN!@8##XLxmVV# z@TN^usmV<K)^_`sBE|U!zAQg<!K1P3|CQer$0fg;GfUTg-8}6?*^b}8CmE_;P~u#% z%<c5ko2my@uU@Np_e8zrYoGG%l(620d7<w#?Hm4m|3Cfjhx#1_|1KV_U6Y?88+`rX z@|qtzLz@0si=OO`6-eXrow1Img89h?yA0#ox8yEYZx0t^f2+62P*81`&o|Al_cz*R z8(a$xPMTA5Dr{!ACR@mx-z(oc{k7^l`uc<H^!598>viwVDe|10_QK+aV%=%4)aBwf y+l@Kwt*3v=R`J+3>qIuEwDwc8JxdO;t)Ki~K4Fq_*o;g5b9a}#GkCxydKmyF>FIp{ delta 708 zcmX@i@`QDQPQ8&!s;75asj-=Vc$A@2PL+#MWKwcYXryzpNkmFTZbfL4Z-84_NUm9k zBUh%Sca>X7Qe?23pG8@DxS><3fsdt|wrO#mr=drfcA%$IWO9k2rDe8XK9{bYLUD11 zZfc5=si~o*LRLV2d0x7Le`sQ+e`G<SdxT$@V^CFye|@@XRA6zgeuSG@xwA=_SCxx< zaj1Dtx<z(2S9n!OMxH@MWo~(Zv0qM9nO~BLZ$@~PQ+h_8PjFdqSz549W@(tEWom{2 z$hsg!r&`_gqSVCVRE3xjC51d^18XNE1v|ww5BKPrd<9GExYEL4s{$^g?0{keS7YBq zBk$Du<TSr5Q^QE(i14rs=M??Isti9b&!{4=Y&SFQFr(1aiqbOA^fYa!VmCuyr<}s7 z(o%B|uCU_5%8DXSe+%bC6TeDFXFpSSmymET{lKKCq7e6TmpngjqfC#m63>)0(~Oc3 zZEep;E?r$+1;;4Atn7Tl49A?ZM17~yygak|((Fjr@KO^$pJ2zZw4kaq{amNiirkdK zWUkNZ1+0;p>Ib}ojQ;IZdbeZw#r~f=9XTW7lzR7Ed|2&b{4r|Hmi({!tEa7F;<VFh z3jJ7|`{>TmJN;|_@7-8x@VdfxmwBsZ2*>4+LryKP_L++w`d_h=W&76W_b=AUT)Mtw zzRRX1zv?q2+<tgY`{$XH+xDj7-l^F?vwc6+xHsMMws>>p#iqwxTlMxD%U+q!=*4@_ z#B<-aa53o_mtS_;?%ycyG2x1KDZ`_W+#8EyzC99-w@BSC&A!3EQ`aUSqi5&ZlFX|e z&(`}*OX=T}c2qFX$~W*riC|V}tIft0vv*&Ts-J2scHx(y?W9*8FGB++yso`EA;x^Q zkJBn%rJs6Y6(Uz8Pw~oLw`9Aq>SXj)!-xN0h>6XesnnUXhI#I`jqguSa5;5DVJ84Q C^c&{@ diff --git a/hosts/nixos/porthos/secrets/wireguard/private-key.age b/hosts/nixos/porthos/secrets/wireguard/private-key.age index 4abe1e5..d7e292e 100644 --- a/hosts/nixos/porthos/secrets/wireguard/private-key.age +++ b/hosts/nixos/porthos/secrets/wireguard/private-key.age @@ -1,10 +1,8 @@ age-encryption.org/v1 --> ssh-ed25519 cKojmg +WwRpd2MzycutQFXyLsr2+GzSgF67Z6UuvyqYZaLd3w -sppt8HzaZP3yxnvnhzjl18Trnz8g3VyXJ6CaVBWd7jA --> ssh-ed25519 jPowng wanoqGB7T8bim/WZ4IAYViFQoGzaIZSgeoTr3YKpeTY -ihDAdGa1XVW/qQz40V1v7a7iK7tu0EHMa7ayIogpcRw --> l-grease |PIcZ NIr >0;* -4o8o0bevQZ6uDSx1WxxlDCURbFCM+yK1XPdrb9aztCSvG2a+ne78E42l5rBcoH7I -m51A8uWS4nSj36N/76v6K4kelxKzWUg ---- O6cGbTAVbDcdmPHf7UzfZiyiRtu1yfL4sBI+CkJA1qw -q$`w'SX]?6/N(BNa.H7Ioz/4:sK",7J \ No newline at end of file +-> ssh-ed25519 cKojmg KslHl4v8yCsKZn5TduLgpTfpTi1uOInC9N2e8Ow83FI +NzcJJr8kw1ykAdWRZOeWdNhx0BTgE7FwTKcge+yLJ/w +-> ssh-ed25519 jPowng YGWcOai0A9l2HDZyV0GtD8kEbY/xTUssODFBcseWAkA +nJaHXkipFSHdyektoKV5y1jQrjkvnU7pwZwAymiQm7M +--- IgWkDulol1jRa+pcx7DbEy5pvC+2nrRJHsdQVPvPur0 +Bb<Ōb!E?:=srJCKz5{4`&N057v+1 ++(d{ Q \ No newline at end of file diff --git a/hosts/nixos/porthos/secrets/woodpecker/gitea.age b/hosts/nixos/porthos/secrets/woodpecker/gitea.age index e6ede6cc39553e75fd77dee696e90dd193a3daf0..11817ff5ec8bfb3860c5ef36305a12ecc012e668 100644 GIT binary patch delta 437 zcmbQwa)Eh*YJIYIepYU}f=`IMM}?trVrErPsb7juVxf6hg{y03QF4}Bj%9vOuxp^c zNlK|(RZ+MBSB_Ifie;XDx<N>=nP*zKQHXP~bDo>NL1>akRH>m+NP4MxM1GW4qP~AJ zm#&>cadC!jYKoDmsiCDpRzQAvUb=!sN_L`0a9FxwVtr+>afnx%nTv_Jr(s!8foFMz zc3Eh!rAc~zSaC*9X;3+rXMR|DWsY-6g-L)}ma#!#XpyUXZd9;ePF}J{U{+O`p^veP zeu{Qrs-p#$uCA_vvv-w2j&GE2j$2h(vAaP)l2@{`bE<b`etv<sfn#NnuXea$N?}QI zs*f*MNd51S`Dr|ssZY<A?KJ<d5&kE2?p)u;sZ#L^=G?sLJ*(bNcW>L5GqrOrI^5G? zKbd-W*F;N)qce})x)eLByZ!Zo^m)aX*VM=Sbr0(^3ZF68Hpcl9!@+acTwnh=;<izc zP5G|#tjmkbPo=g`u}oWI`c}tghE>qVy?IY9+MQ1;T`>&I){{FKD)MMviu1F@aneS= m=SB#H8p>Hntu=hu&c<JzBg%j1%iqb3zoyF1zWP;#?G^wdkgekY delta 516 zcmcb>JfCHPYJFBfetBNHLWWmSMOCOvzG11iSB9razF~S%g=L0?d6`?Fzh!DbXpW~x zRiJi-iC3j7SB|e+VUVd~R*<`yWne^QvTt^3R)DupZl;B!Z;-RUS(;CFntq9~i+fTa zm#&>cadC!jYKoDmsiCDpvUh$~Zn}cGpTD<RuA@<rN4-~Igno%(R7ha5TUlb7c6o4$ zg}a$$hN)#mKt)KZg=0QfNr0(GrFNP{RdTvnvRkTANQk?uNko)$fJJsiMvh;xr-^@R zO14Rqmr*guIx~Gk-?Wk(-Snc=#Nt#1Ggtk>a#w{kD+OJJA}-fTf3wnHU&|6Fzv2j! zq=@u-(~_*5qyiKDq9A?!^dJvI;~>l6{7~;=kG!DDKrUTfU4<z3yr4Y8d}oWuERUqh z;3Dtju%t*I(~>}c=j?#IH1n_|uQaEmLbFgOPp+(t`Z<=o&zq(+7@5aM)KAiUa3*)7 z+c#aI)%h<}qyzr$7jD0?H{p%fm294h9U(pwoN7PJe(}}r+iUx@?x!ZA+zRiazVTge zx@4cE_%*+BcI3nI-jf`RLQ;q3p4Ck`tIHM;zwU9J;W>9x#uf6meep9-o@I#2*n8qZ zcI)<s>RY#WeDR9zxIBSN)8({f8ZWz}XW~Cs^{?lSS55i(XAZy2PQCMT(*J9;7Oh;l KFmi{|!;=7;aKaz} diff --git a/hosts/nixos/porthos/secrets/woodpecker/secret.age b/hosts/nixos/porthos/secrets/woodpecker/secret.age index 63a4862..89bcb6b 100644 --- a/hosts/nixos/porthos/secrets/woodpecker/secret.age +++ b/hosts/nixos/porthos/secrets/woodpecker/secret.age @@ -1,10 +1,7 @@ age-encryption.org/v1 --> ssh-ed25519 jPowng yz0I+AazPmamF7NOnwYNrPE/ArarU01jd2mVDJUPSTY -6Y/YQ7gb8cAZf3zT9SKOorvfUnU7kYff+gHh8fG2mY8 --> ssh-ed25519 cKojmg 0FZU9v8eHsVeE+EoX9Y4IgfIj/8+45waPaSnSDb961I -L6SzJoh5xqai45scoVAa6v9zslBGFYNnZY044d470uQ --> I[G-grease p -AMRQY1alSzHi/PLL80kcvnM1Z9YNfoUo9u5alWXYMyzrRsg+vXjMuBvAXg3fmnzr -wdOowTYMRV+jEG8vzkcQTsv+f7JIyo4DvOOaPyGfWMl1 ---- ih3IAFPcN1JP3FP1vcRGnPrfk91yrnIX0m/Szkbcf7Q -mWr_\)Ͱ]QxMs/݃ݪ6kYxMyJG)i2_'֜HF.g_e5#utՠ7jP'Tޥ8\IWUK1ں9 \ No newline at end of file +-> ssh-ed25519 cKojmg tAW2hbBSxsael6cdbN+vI4h1/PMNrWYct8cppCAasn0 +cex/wBTviSIXc8clNm5PGltTYa1Q5PwqlX4BGsNHiyU +-> ssh-ed25519 jPowng YxfhtpytvuhIARQAaJ0w94aOZiGNUOBR0pF+Sp80D2k +nMon/VdYUQTs6LFccDGeIKWeNYib1wwtFmEYZkDZxg0 +--- giL477X0+uZ2Ocvbixt5f5kNc1laj5P79oW8P9XsNP0 +d>cE?nbv_'2յ_6Pu:usE8ϓxuڶ̪x̧C[ .6 qJ5GK)N<yYɥtX=l7T2R \ No newline at end of file diff --git a/hosts/nixos/porthos/secrets/woodpecker/ssh/private-key.age b/hosts/nixos/porthos/secrets/woodpecker/ssh/private-key.age index 0211701ba0ee3d8ef341b6d69d70ccaa25b8379b..b0b7b46ea02749ddeed2e60237daf1972b7be672 100644 GIT binary patch literal 3703 zcmYdHPt{G$OD?J`D9Oyv)5|YP*Do{V(zR14F3!+RO))YxHMCSn_Ri1BO;<3lbd5?k zDD*1LHLx@<sPuF<^iQ&=h%!tGGV(1oFwF}uN{=uM%BnI?59JDVGY!hluQW6cFb?p@ zNDW8}adV6+O;2?<FSK-YbMtibGtMmYPcrg$GeNg4D<Ho-FI^!ZtT;7LJ1Z+U*EKAt z&^SB7sH)t_CpfIo-^i=nygWbGpwzD@G(0pkCz;D6KiJPZ+ao(EH#H;It;##i#M2_f zr^rk{EyN%-*T2L)(L&$N-!MHXIGIaVS689JJS8a4)wMV?%-^`M+|x3=$U8XI)F&w2 z(J?zJFT&Ktyu{1fEz->?EuU*cROc){PW#eVe+?#YjV~<pP@T2f-0S(j?uNV<5_St; z2nycY_2|sCqpJn32yS^A@TKYVq(h2(pCn9rc1`H&@<jzlmVDk_7LqS~;9Bg`)TK{8 zX76`h{cs)cQDgIVjij?{BcF0a?N};WHZ6*wqHj@8NI{>YT+GJCEKy-`5$>Y0vnjLE zZJj%BbaH<x<enCx`(W1INGlb29`&aiqQCdQ+30sj!*0R$k5QZ6eJq?|GH;LU;ee-` zv=z3uN@*VIp4*?e=i3}M`7ho1mqK#?eDl&iyFr36A<?nqV9(@DN9KlTzm2ZrX4%@d z@#+rF+Wh$0Qy+@&j6c`5X5%W^6D}1WYt<$M+tuH<UApAm)HKOevz5LFR89<wJpKRS zp8MJJbTnu0)%!N_OwC5eTSslA=CMRX-BM~!|6*f#^zC{T-96L3uBdtDI_HN^Q^uRw zAH^?j+T(pI*+<dm5O3_gk3Y+je{MPTwf6X}!s5ACOnfff>uY&%C%-!I^3U(SuQOTp z2T%K~y6TSlYRAwSd*(&2Y@IlD!~DPtf73d4*gie6S>^a=U*&b7+k6<@SFDjbtZmtG zE!}q(>z7l4F52ZaS-)*v&g#znP`-9ow`@i0p4(h670qoD4<#u#v<hr5+va}Zl|B2P zRxvTN2P|5@TyxW7-}H1#F>tSMYi{K*Dc`_y@cf0#F{>3HKZ}?)?}6j@=}mg?yuSVW zT=`^j;~{Q)kIRbd^cPOi+_>cF&3A#{6t`B-Tlv$S!>ar08Ot6<dAqq?5>KmcOy9I5 zWM8|9HEaHUAE&c?hmXY_;+8ag$u>Lf&!0^l-M{U>7*5-xJy}5NuX?+X#>&|J^Ikda znh>9G&+Ua=60@D&Tc*v+<rW@GPAU)PT&i<<i~DuIm4CV;pM)}q?tGThd9WyIjmyEJ z{rrwCJ(?_!_lZ7M?OFWcuVZz`>41HiuN$XmvV>lnAF7nQ*C}|eYh+8!`g4(c*NJ?) z9WTtRFMZ^6{6^m%qrF1kigr((?sj;(((E07udn=c=tz3As={J}tXuznBsjG8mfh0+ zc{}lwPQKaerC)k`F8eZV-N=5gK=b_J?KiBRs~yRgQMR?75c+7!gS%`u-`RZ(%$;p? z_v8H4%=u!8Dn47)r|)m`^fdTVdgR>4DeF|H%u?NJ?|a3mb!%GxE`tU&w&v^ioy_$F zt{o4%+kLs=(NPUPofiI$E50?q&AiY2*fikPLw=6j{cp7|dOehIY*I)`w^9*HpDB3h z+t<~J&YN`?yfuifZrrc-a#4kKrJcaam?-V{iaeiAC?tDcmdX^5Z*yZS?OFBv(3k(3 z!kW#gOZX<OshYc#^Sg+_*EZ389}GOA<!tv|SML8Ld5`Ugi~g^(M>dsgTg@+ZpFuZ7 z+uf#h&1OH17xG75M?QLUV(lc>vj?lK+(WOetK?H;JCgN2_perj;Vz9W?e>m;mY!R^ z=l12tCuVxp^Ctz1864GdFJCsXvS{{-tCKty6<&Ux?b!KimY8)@a`-auZS|89&h-Cb z-m6vIy?4!z5}g$`p*A7n`}B0*JYK)>@_oy$o1N-z)h#dNe|K<R;{9Mdd&0C`;ZfUM z1uso*+BK!~&nJtGf6i)pU*bJuSQUS&#p|#39xaok`5FJGUu6HWX!_fj<5kl(?0V>F zZsHJLR-kol_mx_Uqkr4l{6(h8s(-xuB%{mW#i>~1DOFMnrPNoX&c14FsT?F(AaeUh z!okdW2eTyIM7Q<*pC>qRpWDTc8y+`bc8l99sJ+8d%Dlx;xL;!PLNN`4JxlmDEjQeI z&&$DCxny~C)v;&)KQ682HCh*Q?7R4si&MK61&er|?RDhd|6|?K+n>MAY|Cb|y*Blp zT+>%87KZ{sgNB{;zZNDvQw!1hQtlgX{PIOqQte6B=I^gn;$I$iC`o-G;ct0GmBnFc z_@rs2#``j#xrlt3_|%}2$G!W(mB~G?WNzM36z6{|_fja%tM(}i|MGJQ`%+i1^q+AL zh~s#r`D0ZLYo)r|PiMgcyKgW0ZN1ktdTC`0-`cAlrWH(&etbQ-`e(uXO^d=R{={%3 z8vkE9tM=;0J^u>XK0V@pv9s}ux#stOCs+NJH#k}woGVrpx-7?Y^Xan+JD<;qc4ZZD zowDZ8an2VLBe@$KY)U;sZEaNp4jNvsOBVUL=UI@#v)ls)67LtdMri+jQBio|ifygw zB$3kv@|zB5O;tRg=Q8bWqgZ0jx3BZ+CD){Fy6jT(Wz*hO*>jIyPcwX*BVWhZt18B_ zbjH&3vnT(}`yo~OIh%czz0Bb)(;rT#5|)!x+aTk-y<RVJ&AwoXGs6Dm4i~awvl%uA zT<QHD`z1qnt<kg2(l_lXJUM#5X4JDBwQOE;=!C0B%aQw&*bgMUd$RP+!A*~)mOm6Z zm3i>|KDnf>+fr|Tu&y^@KX3ERD9G>a$zRX;E>97R6Di(dBx}+8c!%T)MnmO8l83|} z)jVu^H|dkFDc8XdQw+Dexv%&&UC=Z6$H}(Tv$>zo9Iq-fk>j3ufZ2SP5x@QQ6Nhhz zS;)2>T2t7vYEx0ae}l|@H>0Xc+`ad{G8o?3#PFVx_s=x9MumVW7LQ*aT)50|hwj;j zpA#RZg_S><k<R$n;dR-8=!;sXxjqZ#Z98$0y?@Fk@xAg^5$`uM{uYoD_};s4lchtJ zub*~vUdXRCEr&OkoLhF`j(Yi?O$Rs<J@i($H{SW>6&IJcNm=XJrhwN>?jJ&TDOEq} zpSJL-)4?g`S!{VrB#d6QYi~T?mYTU~)qy^hjfOkA{m#kn@a(8J2)J5pw`7s|AG=9O z2Q`eEZxuaHy5I8Xr*+0j@9&Zx>$!@=Hg9-)LoI3U)lc`=uD_^#^rE*v*G)bvll|LQ z9Fu&*!9IWUQk%?0Yp(_9d{W{#yMp87wnCN#X6~kULocwJURnQ!t#_;U<hduyFHg?@ z{9WF#F>j^nx#Qs`^9;Xw{dyt5<0CqAvVp`)pPTa^zilo5VdVPk-z?wVOU-;Hr1Tw2 zD~wsOZ(T$}^ua7+m1Qmy>g{!ZIOU&`lYHmg@^zxmQPw}!)AlQ!UVP8%!S5Ck<LTTL z7mh?mR343c-Ti-I+k%*{4`)v4n<ZSxB9rH);#alc`nMe`CzpL#_-8}BTAs~Qd$pSB zecOItG&`JoV!pD#q3Scdp7F_Vnic*S*chs-r|eFf`i1pVk~*hHN=C}WFMOV-<}_}P zsZO2mzHG|flG;-Fqsu%Vtdf=OZoacB`Zvq1%Cy$~XB$dp{68R?zizrlv9nW8(#>7} z-V2u-9pcFQ>5+B+++&uF^|5WguAHfeJ@Gbb%HHjNg7>DL-J^Zsl!En%Wi3;<=A1wA z>cHygKp&IO;jIUPCVB|XHZ{s&*Z#X?Yy5{*XY5>UFV@)@ALm_sqSI(Q=WSJu?e7<e z$FjH{P>5G-nvv79_hOilpe9du+tmo8u6N%Koo2~9p10z})Cgmj$hP%U+fGbYcb*@~ zb!ER&*U3M>qpNI|ZfPv3iD9&vbLx$E<n<r^%Uwl2{eL>Qs-H>aon(1(%^}_66+6Dv z_s?i>>f1a;xGKP?Z{-d9Id?w==6|``+<kMu#a*Kdxh|&yHUAum-n-<ba8$#KX>;W{ zp4Fb@t90*JGxN*xBF+67l1tlaxXVl{R$OBau6P`6aLvV<Yx&wM!MctiC6kOLPgpA- z+Pt9r+ku{sE%tGy0-HkT`YSxqH7l|e+YxwVZ`_t!%CcYMu05UHm|`WlNbXE!+Ej^M zI~o$oC(N^4s$?6nGXCyTmHWGHnA%IqndaRxm)c~%qs8{rPv;G{_D48xdVK4In33MS zWk%_JjyrY5b_z<$^4D!m$@*>NbK9+V>&+PpBc&8?8;gInT<W&v`n}N8MI{PWTGnn& zA0F<^<`Yt9)MfeoitC2!qth)hIT5e5R4?=uGJ2|)ew;HyG5ILhi6=ZyLtCaYT?@Xb z{d4nC&*aG!kxN#D9($qs(jsHw(=XHdwH8(Cd%FLP2zrxbVEKHZZS0ig_u@FURywkq zNM3Ddc0abI=?UXe#x>c6GlfI?&dF8wPXERe&C{T$R`+|Kj7IfC!|flr=Ql1b|G&lN ziloVbz!%lK!?(x8r?_QQt<$#JB|k6Y>Vywh&99!^x${CzPM=#z*43R;w)Qh0^gh?D zW3zXi;i)(Ct_m`hXn(6x2zmW_#_rwMIlfJd-BDUUbxT+2qb!}bv*O~TCv>ze(aUE1 zzi`EzY>DVk8T}uG583REXHXPb?^Sb&*X~=mbJ(M$h7r6SQ#G$}l^t86W_)nNkqr}H zWIi}$S8_ts=!<7<dQR-q&{OXMyVq4+J7lr7<i(SD=a1jt8vlFhi~ZB%KPQSFUbSU! zjj2AzgH4$MA<au3?6^Op-gZgbY+*k&mV?Q6OeBR4ddeFZ_dT7<{y}?tmC?g9hG|k) z4=xJJDw_5Cs@DG)mU(h#Uj}>L3^*Xo+$M9~QF3$Wf$OhyqmO?pZF-w7F)@`TKh|ur zqCsiVg*VyGr~W4Pp1!c{PWAokPWSj$XjYf}Z!~$rv+w9J)mO_`{$YLJbxi8B+J+yw z`k%CpCR$eat>T!h!lWL{?loCMd*hoE$I3LW@8@P{o%lWU*u(1)2K%DkoH%fzv+Jv) q<@6&*=M`tpd;46faLUp6xpM`+Upc4nW_kO^D+e9sR2UuoUJC#v#vv#G literal 3799 zcmYdHPt{G$OD?J`D9Oyv)5|YP*Do{V(zR14F3!+RO))YxHMCSn_Ri1BO;@NW2`?`+ zPsvL6@G|jp@hZ%UO3L;q%Zo4!s&bAj3-wF$O?S>MaP@c3%;t(nPc}*Rbj)*&2-45? zt<rYO^YyDV%`&JcHz=@($o0zb3iht5bkDT(GeEa3D<Ho-FI}P7#nM^7Ft5znBc&oS z$u!Y5C_ErJ*~r5nIJ2PCFC#qEq#(Vtz}GCm*^?_GJF6_QD$PQ>$}K!Jt=vC5xwJIW zA|k`2FfTVh!ptQ@Kg1<FqogduHy>nMm~MJeYGQG!LVTr>LU~SJgonL}f|{R~t%47i zuTO=UkCS(1s;R4!M{bIDZc2V+MpAKpl!u|CpIMcUaam5TV^ErRS&nbENkv*vWk5<; zepp^|kcE-AYd}>lm#(g^LXd?~nR`)WzGJ3&MqX;Fe@I1;WkF!6nY&M+ziEzJc$sUk zn`LpaftPt8*MVa{E@+%JKU2KHS^m_5%||zQ+rRbaOg>X{_QmSIrWLO5UFA-5ewp!) zOSUxdeO!O3NZE|HhgF(a%uR4S^y^miX_>(81G^Qr{f;d;`E1?RdpiFwWGnh7Ik?^b zA7v8hwmQ0f%F*Rsd=ghVa?P9$OxSnP;KuPCEw3#;>xx?5SikVx7T*ekph=ADtS4~Z zm@#RKQbNz+i-%r*opJY{hDwJ`(}tv~n+*aL7cVq=<XPUh_9RF|?}F7tv7YT}?q?Y$ zzC3BSZwKFngI}eLc{~`7U1WJNfhi%x!aD8TTK>nU-)u;2o$>Y^_xHqCU%njTxvV#L z$-CKi&g%5PmY){KuuP$l<EH5YJ7%_WUV~V^Kieh?w1nvRC?4Iq<I&N3*Y1XXn6dR@ zK+=bL*+|82+=c=xB(+$7tl#i8)uC+qw^Pz-vTa^(^Aj657c#fsXnb9l^LDpt<cgYO z3Lk`G)mc1l|LUyG2wwAA>0hj~oKM@6Ir&!WrZZ=xDL&ccq58q`$HUlI`4vV{jc3Ca zyFc#{-0;lLuHcDJmf^wGXH3E^j@|5>E_i1(ukpb^VX1%}0`K4T-&_3t+(n*~Z=)ht z-l*kS<EZ6l6Q-S1m2ufOc-d@=6-zW7*FHG4S>>QsK-T%UQ}#VHy0ABRbwMY4{ulX| zDG9711~R9oZsXgc_O+HjIrz|a=QfMm-<Op}^UJ6o(*I!dalx!$0nVnKlHt}TJ$|z< z+j(iR`Cb3wHF>oi_j~>BZT__>%&v0J^c(V(dQ(}JtXUYoZV4kVd#>D!z_qN~1i5}1 zCa}!d!Lf+lFwt6(FWP>4{-=9qR&8_<_cXJd=$N)M{)@j#WkY<R>-;~-%VQlvpG}G9 z%oYqkb^rde_D{3=QY}-I7%bPDZiu|MC1B|lwWYT2rmxz$t0i+s{F3jk(V4T2qE4Q? zS-=`SeYRqO_SeXJ7x)%P3!JF?xaTCd{yGiUzBghMV}8B+zbZqn$oRtAyM|J;I$o)* zWi`kQoI5q<&duZNPO$~v<Cp3;5f6QxdxvAS&863={sF;BM<>T03$dSm^7+q~PbXQs zglQ~w`}5iP;+-QMPqxYhBuudPdiN+;f!`=^p2^C0o4%gcvDl_Kjm>0f2kSDHNw*{Q zzr0tre-$>%{)pi3z&+(@%%QU4*7mG69~GGs8|Kg7{wVnPtOduKCU4%bO3H8T@8Fc{ z@`qkskKty$QTBABk%e1`$#>?G+Vbh|zVP;*{~T%}ulitu)C!iSna>>`<Q;$2Z|-BU z)gW`@M#stTROdWWU^pdOVDSC)_f;0hMDo<POzfR>u<qzCza?!?H^$tbuJ_&0eEBP{ zb@r7nD-~{=TOPP+{m^)e_riG>cF0{jn)F{jQ&(xL;JY1+n?LzDPm-}q`26+29KlTv z+iJ27d(2v~b}rY4KgL19M+}{F;y&b<nNRaP<Y9BYezrQBzfs9bep!)ZiEqwl9Syeb zXq6Y*%vR14qq%AJx{RciiEbC#KXPtkS+-~C-DP5~`(;i(D}A}Bf7*qHq#ebn1t;Ct z>%4yZJ+Juj!;(il|Lj@c32ezbZ(e@-YEI3kd-Y-S_eFbgSq4tnFIL&{J?dlL*8R4z zWs4&Y1sT;Uv^f8jHQmG-=#(7YxcU@pr|`*s-lDA^&VLZ86XGrSDXOpWc%_P^-@B;^ z@>NV`*X>_g|7)4L{@(OFVY^vHrvztqd~$Jp_|`Im?Y&lSgWTfq|2tL*Z&>;G(yyzU zk-7^EX2+>b<=FJ`e1@QHU;DqD9V%6}Dy|uK?k1f1cX`RCh_;o!KWkR#Zq><<x$gdQ z^V4m@0xn0Na?AK-)a-JYDbKO|en7xcrgG=_ch3*yXBD<72F#mblo_!1EsOUv=i0Yj zH8;OiDX$RG=zG7aqAu`~%6*ZajkDGm#|NkdxfH*bnQ+ym{imh^WA*1bPc7&8=SOH| zAFmYH$Nuo!>YC%-|0chgCFCW)chikSi&s@CWj?kNZ762H_}nSsUiqA?t38|A^tGED zX1%hhnpAad?X!rJsSi$BhhN@y_uzW_Sw6a%52Y_eKMQvj-oVqWY@ws6bn+%&F6-y- zJLXudoPGMg56?Y6jf*}vB+r<ih~k&CU!iNZcvkdX2c^=9g;DYk<*xYGFirZrzson` z=(<N8%{`(!4*lXv<g8xEY4<NqFsJ*^x6hmNpIE6bS<L%J;Ig68J^eR*U6%VA#7<4l z-`Mih`TPD;p~<lwIq{FDypk2Ic=skhlx=rs+kq^vgNcHYB@8uhW=1|r3hoT9{B^y2 zMN-G#rhe(j)}+f?TNE?&O<z?O#V((16_K>wK5Xj0;HLHOm#%RCeR93@>%8zIt?7NX zdAF*qcI>KNdTOJ}*6Vx^8dg`XogTHo-!D;p*_?CA39d@7XZI8bKCks_UnLe}+VFJF z<?xP43)Z&pzddP1L}Wt!tG^RoeXKUr<epJociU#gHpgYLcb-V_Yt2ki3ERam;mem9 zwo>byuKKUow{pwXSqqutuZYP!y{pru+@kb2nQhPfh)u04KZaRv+tXt6#eh$lu`BY5 z+H&4W3Z6UcdXA+&@^t<!xidSDMS$&d|4Fu@S9%B6*Sa?>o^Z^lM=*HZ{s`MmH4|Bu zEqU*%{7Gu&nN;5I{U>6+O;p^vZP(<$OQ-Trtuy@3)GBJ6aH_DUeaDuJ`TO5A_uUZ| z^Z8gcQDfK7qmEyn-L+QmGS6QoyudoOwQ%0<8NFR|`}u9#ORvXy{!Gb_4!&T=byGxp z#pMaMbJj*YT)28m%+f!yH#wA35+g&r8QlJrZ<<l^u72G?cFx}kj~?b7?mH%@*?!gh zzRIUgk+!17L&g(s)qlCR|KPHjXHRHpa9&dT<sH5wy7gUqV9581e`j85t&>#h=#EwT z{4P(QujkSWzFFGt{dY?K+J0oVx_;GpM?rj~xu!;l?H})Askg2FPCK+F75mw8FqW~i zdCPc|Zk%iR{{`ov5BJTMWkkKsGj+6Y{IS7Tq<VYhZMLk`^54f}e&l$*k8zNgTDds$ zQ~ZW0pZU*AJ6~e{A9H%of$MW4o|{)lG9_j?3dv9Dim9EI?6`{KTF~#1)=Bf7UYWD8 z&hTQJlI<yK*VHh7=e^#O?K~<=)pjZ@=DwA)d;YF<UFx40Hzj>9*vawA`e5MOYZWXr zimX?k2{lyR!9TC^$<M@`z0DU@<@)uD*6ZD!`uAsgA@iv(n-yOPD&3j9Bg*EBK)Y}H z{QnKhes2ERr@S#zdQ(VMgs!~o_59X3k!c&kJs0=h<2$o0CAhV$r8{m8$H}f)5eMh7 zE>>K>f@6hNrt(_5>&F7*^s{&5oH<su=(V6x=if(fD|DBqT#(DYEd0ak&CP;Kt8Y$U z(0=O9MJ1l&Yb-_QZ+cTN$Y`IeKSg1}jywMSvlp*&@{tZ+pl$DBbMmi}+Jkyg=CHLk z!KU5?-&bkJ*axQk)~tN@J;7uyPl$A1-rvU4K0Q|rjA!V~pVguIeM)%AshPj|7AEfT z_?-S|!bizhGrH?%q=!9@-Z!Iq#<N`Mh|(6mEscxIB5%2RSl2C0?*7iaN&kCM+9SUm zYx>0ceA4gRW~Z{w<bR%a_1VdFH$5&zZInOe6%t}@S?<Pl<}06Ju9vB2-%Z2CPSYpM z?74m{<-=V5itq*Xc`c87%3VXJyyi?={$J5Te%k-)zjklURLwMV<mSJhIN@H_r7Me$ z+>4s#wkN0SaJBrpb!9J<c^I}|l$Ki&^Qdft-m3lCtMm<*htK=1pe?0yJTPAH@VQre z-CK9F-Ds&O<=$sF$(Y56|A(^jKh-6F+XAh+ny3C@oD#Ea0(bwF_cx#I^)PWdcbmJH zr$Sc#`oFDjCf?X2_k8OC>E!ul;pMLGZktQz=Sjam{-E_rO={(K_Z$1Zd}v#B;isfd z_0jZqPH#WyYc4<27T5E?Yn7a>(>j&+<=mbTGd)E07aB?J^Im#<Qbc^boYq~HMYSg@ z9>1-RJr<er<Z(iCTyITo(}zp`k*3|L9=~3v_m?^*@4n{H$^I(g)zbJ=-)|(`SSPYK zZJ+Lz<b~p9lFPLEpG=Bo`JAxGx!n0??xD`YU9;0AW!|zW|5&r&_S7?_*EtM2)-UpF zS+`aHckV~oMf;C#n7dQ^^^Hxhbfml=9-P3U*#5qjH@fZdwK}IAv*%h>zcl2Ycle|9 zs#n`57i7QAUU+FC<5N3}vsVS~owWXuy4cw4_;l+=`9+t-?yvD?nJKpR+kvxR%IC&( zRo+`#KX3Q3r(dqW5&5PS<FD{v`((MfagXDQWsd@PKjll`|M+O<?|(=9cs`#{U3TS& z-U;_upIs_-js-8i9Gj+Gu_N9`@p+<lRFbGmGw<<dGxgu^E$n#xRc66yi-KkC_wpKE zi)V=}o56apyt<(0+w&z4o$tPv(hEu~4!CkQLh_45#-HU$-7eEwRQdl&KHa)P@X@N% z0p8oUT%V`LWq#z*<>U>AGfhI4PWHFk;;Yqk-Egks>qE8v-Ul*&M6+!d5WDH0C-7p{ zqED@F&#l^X?s*mSOYRv>9l5pK;ft2O@D2F(_w9wnoEgcj)6YD;I@5D&(%i~h!E@iA zDZamFs&mQw#gCdly47-v9S_fPOyIm9J^kzvuf0-h93+cBpLr*Jc6sj7&86CAHIJ?* dKeP;5bk>p0qW`T_@y>laN{U{!uw>4i0{~1wH){X@ From e2091e9e2ec36e602f5a9a47412238951260b146 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Fri, 26 Jan 2024 23:35:06 +0100 Subject: [PATCH 219/245] nixos: services: nextcloud: use HTTPS This should fix my issue with the sliding sync server. --- modules/nixos/services/nextcloud/default.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/modules/nixos/services/nextcloud/default.nix b/modules/nixos/services/nextcloud/default.nix index f2ac8e3..580e9ea 100644 --- a/modules/nixos/services/nextcloud/default.nix +++ b/modules/nixos/services/nextcloud/default.nix @@ -43,6 +43,8 @@ in dbhost = "/run/postgresql"; }; + https = true; + extraOptions = { overwriteprotocol = "https"; # Nginx only allows SSL }; From 58b22b7354c59c6b8a0c1e04a2883bf99414117a Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Thu, 25 Jan 2024 20:27:29 +0000 Subject: [PATCH 220/245] home: firefox: tridactyl: remove 'Nitter' rule Turns out it's very annoying when the Nitter instance has been rate limited. This reverts commit e514389a3d3ea25e311b3dd3b24cdd1f7c6eec65. --- modules/home/firefox/tridactyl/tridactylrc | 2 -- 1 file changed, 2 deletions(-) diff --git a/modules/home/firefox/tridactyl/tridactylrc b/modules/home/firefox/tridactyl/tridactylrc index 0401292..4dc53cf 100644 --- a/modules/home/firefox/tridactyl/tridactylrc +++ b/modules/home/firefox/tridactyl/tridactylrc @@ -69,8 +69,6 @@ unbind <C-f> " Redirections {{{ " Always redirect Reddit to the old site autocmd DocStart ^http(s?)://www.reddit.com js tri.excmds.urlmodify("-t", "www", "old") -" Use a better Twitter front-end -autocmd DocStart ^http(s?)://twitter.com js tri.excmds.urlmodify("-t", "twitter.com", "nitter.net") " }}} " Disabled websites {{{ From e2ec4d3032ee3d3dc3be935b0e2af9ad7ff0c511 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Tue, 30 Jan 2024 12:22:04 +0100 Subject: [PATCH 221/245] nixos: services: paperless: fix classifier hangs This is an experimental fix to try and get around an issue with the default BLAS/LAPACK implementation. See [1] for more details. [1]: https://github.com/NixOS/nixpkgs/issues/240591 --- modules/nixos/services/paperless/default.nix | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/modules/nixos/services/paperless/default.nix b/modules/nixos/services/paperless/default.nix index f528ad7..f62879a 100644 --- a/modules/nixos/services/paperless/default.nix +++ b/modules/nixos/services/paperless/default.nix @@ -1,4 +1,4 @@ -{ config, lib, ... }: +{ config, lib, pkgs, ... }: let cfg = config.my.services.paperless; in @@ -80,6 +80,9 @@ in # Misc PAPERLESS_TIME_ZONE = config.time.timeZone; PAPERLESS_ADMIN_USER = cfg.username; + + # Fix classifier hangs + LD_LIBRARY_PATH = "${lib.getLib pkgs.mkl}/lib"; }; # Admin password From 1655afcedf07197fc1ba25c945a2a4fcfb60cf6a Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Tue, 30 Jan 2024 12:38:48 +0100 Subject: [PATCH 222/245] flake: bump inputs --- flake.lock | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/flake.lock b/flake.lock index acf6c48..7714038 100644 --- a/flake.lock +++ b/flake.lock @@ -73,11 +73,11 @@ ] }, "locked": { - "lastModified": 1704982712, - "narHash": "sha256-2Ptt+9h8dczgle2Oo6z5ni5rt/uLMG47UFTR1ry/wgg=", + "lastModified": 1706569497, + "narHash": "sha256-oixb0IDb5eZYw6BaVr/R/1pSoMh4rfJHkVnlgeRIeZs=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "07f6395285469419cf9d078f59b5b49993198c00", + "rev": "60c614008eed1d0383d21daac177a3e036192ed8", "type": "github" }, "original": { @@ -136,11 +136,11 @@ ] }, "locked": { - "lastModified": 1705879479, - "narHash": "sha256-ZIohbyly1KOe+8I3gdyNKgVN/oifKdmeI0DzMfytbtg=", + "lastModified": 1706473109, + "narHash": "sha256-iyuAvpKTsq2u23Cr07RcV5XlfKExrG8gRpF75hf1uVc=", "owner": "nix-community", "repo": "home-manager", - "rev": "2d47379ad591bcb14ca95a90b6964b8305f6c913", + "rev": "d634c3abafa454551f2083b054cd95c3f287be61", "type": "github" }, "original": { @@ -152,11 +152,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1705856552, - "narHash": "sha256-JXfnuEf5Yd6bhMs/uvM67/joxYKoysyE3M2k6T3eWbg=", + "lastModified": 1706371002, + "narHash": "sha256-dwuorKimqSYgyu8Cw6ncKhyQjUDOyuXoxDTVmAXq88s=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "612f97239e2cc474c13c9dafa0df378058c5ad8d", + "rev": "c002c6aa977ad22c60398daaa9be52f2203d0006", "type": "github" }, "original": { @@ -168,11 +168,11 @@ }, "nur": { "locked": { - "lastModified": 1705927265, - "narHash": "sha256-eUUIBb3qYMrQB0ONGEj2kzKN8yzqwDmR4+Ct5/dvJcs=", + "lastModified": 1706613454, + "narHash": "sha256-oekBAKlWhNgs4MCORSrZnswYTwD5h7HQkDDFf6INAZs=", "owner": "nix-community", "repo": "NUR", - "rev": "a29c6f71063d0ce903e927fa7885651c00abd33b", + "rev": "ce9c09fbd09d8cccb7353fe32bdfbd39ff3cb7be", "type": "github" }, "original": { @@ -197,11 +197,11 @@ ] }, "locked": { - "lastModified": 1705757126, - "narHash": "sha256-Eksr+n4Q8EYZKAN0Scef5JK4H6FcHc+TKNHb95CWm+c=", + "lastModified": 1706424699, + "narHash": "sha256-Q3RBuOpZNH2eFA1e+IHgZLAOqDD9SKhJ/sszrL8bQD4=", "owner": "cachix", "repo": "pre-commit-hooks.nix", - "rev": "f56597d53fd174f796b5a7d3ee0b494f9e2285cc", + "rev": "7c54e08a689b53c8a1e5d70169f2ec9e2a68ffaf", "type": "github" }, "original": { From 02412f2578eabbc030b9a34d6458d2f42070e84d Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Tue, 30 Jan 2024 13:21:50 +0100 Subject: [PATCH 223/245] nixos: services: nextcloud: fix renamed option --- modules/nixos/services/nextcloud/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/nixos/services/nextcloud/default.nix b/modules/nixos/services/nextcloud/default.nix index 580e9ea..51195df 100644 --- a/modules/nixos/services/nextcloud/default.nix +++ b/modules/nixos/services/nextcloud/default.nix @@ -45,7 +45,7 @@ in https = true; - extraOptions = { + settings = { overwriteprotocol = "https"; # Nginx only allows SSL }; From cc029f7933b73785c5a64aaed02188498b277fb2 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Fri, 22 Dec 2023 23:27:04 +0100 Subject: [PATCH 224/245] nixos: services: add aria --- modules/nixos/services/aria/default.nix | 76 +++++++++++++++++++++++++ modules/nixos/services/default.nix | 1 + 2 files changed, 77 insertions(+) create mode 100644 modules/nixos/services/aria/default.nix diff --git a/modules/nixos/services/aria/default.nix b/modules/nixos/services/aria/default.nix new file mode 100644 index 0000000..2d1b3e2 --- /dev/null +++ b/modules/nixos/services/aria/default.nix @@ -0,0 +1,76 @@ +{ config, lib, pkgs, ... }: +let + cfg = config.my.services.aria; +in +{ + options.my.services.aria = with lib; { + enable = mkEnableOption ""; + + rpcSecretFile = mkOption { + type = types.str; + example = "/run/secrets/aria-secret.txt"; + description = '' + File containing the RPC secret. + ''; + }; + + rpcPort = mkOption { + type = types.port; + default = 6800; + example = 8080; + description = "RPC port"; + }; + + downloadDir = mkOption { + type = types.str; + default = "/data/downloads"; + example = "/var/lib/transmission/download"; + description = "Download directory"; + }; + }; + + config = lib.mkIf cfg.enable { + services.aria2 = { + enable = true; + + inherit (cfg) downloadDir rpcSecretFile; + + rpcListenPort = cfg.rpcPort; + openPorts = false; # I don't want to expose the RPC port + }; + + # Expose DHT ports + networking.firewall = { + # FIXME: check for overlap? + allowedUDPPortRanges = config.services.aria2.listenPortRange; + }; + + # Set-up media group + users.groups.media = { }; + + systemd.services.aria2 = { + serviceConfig = { + Group = lib.mkForce "media"; # Use 'media' group + }; + }; + + my.services.nginx.virtualHosts = { + aria = { + root = "${pkgs.ariang}/share/ariang"; + # For paranoia, don't allow anybody to use the UI unauthenticated + sso = { + enable = true; + }; + }; + aria-rpc = { + port = cfg.rpcPort; + # Proxy websockets for RPC + extraConfig = { + locations."/".proxyWebsockets = true; + }; + }; + }; + + # NOTE: unfortunately aria2 does not log connection failures for fail2ban + }; +} diff --git a/modules/nixos/services/default.nix b/modules/nixos/services/default.nix index b27570d..3e2b3c8 100644 --- a/modules/nixos/services/default.nix +++ b/modules/nixos/services/default.nix @@ -3,6 +3,7 @@ { imports = [ ./adblock + ./aria ./backup ./blog ./calibre-web From 16f98f144eaf68b024090d60c1db2e7e29b7aa04 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Tue, 30 Jan 2024 13:37:26 +0100 Subject: [PATCH 225/245] hosts: nixos: porthos: secrets: add aria RPC token --- hosts/nixos/porthos/secrets/aria/rpc-token.age | 7 +++++++ hosts/nixos/porthos/secrets/secrets.nix | 2 ++ 2 files changed, 9 insertions(+) create mode 100644 hosts/nixos/porthos/secrets/aria/rpc-token.age diff --git a/hosts/nixos/porthos/secrets/aria/rpc-token.age b/hosts/nixos/porthos/secrets/aria/rpc-token.age new file mode 100644 index 0000000..e6a42c5 --- /dev/null +++ b/hosts/nixos/porthos/secrets/aria/rpc-token.age @@ -0,0 +1,7 @@ +age-encryption.org/v1 +-> ssh-ed25519 cKojmg fpiyZo1AR5hCfk/KtbgWCTzz+05/VOUnnaHhWgXQRwc +d2w9IX/kq/T6OwQ1zImsCmzIX2yfFD8hQDbs0IW3ZIA +-> ssh-ed25519 jPowng E9R7p9NCubUQrymjnrNfEjSNIIAXrBQLogNkWsOx8xc +MrWEE5LNtOqAjnwA6byfSa1udnbUtqBy4FhdxipuA+g +--- fKgerjgGs+brvNKnrWdpmOadl34LipMT6Msqse2g3E0 +E9flKYRL-Ƿ\EK{7oXGxT)˜6%LOT**8\@G \ No newline at end of file diff --git a/hosts/nixos/porthos/secrets/secrets.nix b/hosts/nixos/porthos/secrets/secrets.nix index ed6c2fd..7dd34df 100644 --- a/hosts/nixos/porthos/secrets/secrets.nix +++ b/hosts/nixos/porthos/secrets/secrets.nix @@ -12,6 +12,8 @@ in { "acme/dns-key.age".publicKeys = all; + "aria/rpc-token.age".publicKeys = all; + "backup/password.age".publicKeys = all; "backup/credentials.age".publicKeys = all; From 3f13b3f03f70e7632096c9b88ef8cb637f072e95 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Wed, 31 Jan 2024 11:56:09 +0000 Subject: [PATCH 226/245] flake: bump inputs --- flake.lock | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/flake.lock b/flake.lock index 7714038..43c64b5 100644 --- a/flake.lock +++ b/flake.lock @@ -152,11 +152,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1706371002, - "narHash": "sha256-dwuorKimqSYgyu8Cw6ncKhyQjUDOyuXoxDTVmAXq88s=", + "lastModified": 1706550542, + "narHash": "sha256-UcsnCG6wx++23yeER4Hg18CXWbgNpqNXcHIo5/1Y+hc=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "c002c6aa977ad22c60398daaa9be52f2203d0006", + "rev": "97b17f32362e475016f942bbdfda4a4a72a8a652", "type": "github" }, "original": { @@ -168,11 +168,11 @@ }, "nur": { "locked": { - "lastModified": 1706613454, - "narHash": "sha256-oekBAKlWhNgs4MCORSrZnswYTwD5h7HQkDDFf6INAZs=", + "lastModified": 1706700467, + "narHash": "sha256-GYdukl4hSsGoHnlYMV6XgmnumuGr1H4vsL7UNnEmhmA=", "owner": "nix-community", "repo": "NUR", - "rev": "ce9c09fbd09d8cccb7353fe32bdfbd39ff3cb7be", + "rev": "e52bfdd7d331dd32f0f0f8eb430488a36d6e6402", "type": "github" }, "original": { From e227ad76b274a866d3a8484fde3531b329407c4b Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Wed, 31 Jan 2024 21:41:40 +0000 Subject: [PATCH 227/245] hosts: nixos: aramis: home: use 'pinentry-gtk2' Now that it's available again, let's use it. This reverts commit 39eba647acacdf2bb2aafb00be694fa5c2e0726f. --- hosts/nixos/aramis/home.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hosts/nixos/aramis/home.nix b/hosts/nixos/aramis/home.nix index dfe9dbe..66a0892 100644 --- a/hosts/nixos/aramis/home.nix +++ b/hosts/nixos/aramis/home.nix @@ -2,7 +2,7 @@ { my.home = { # Use graphical pinentry - bitwarden.pinentry = "qt"; + bitwarden.pinentry = "gtk2"; # Ebook library calibre.enable = true; # Some amount of social life @@ -14,7 +14,7 @@ # Blue light filter gammastep.enable = true; # Use a small popup to enter passwords - gpg.pinentry = "qt"; + gpg.pinentry = "gtk2"; # Machine specific packages packages.additionalPackages = with pkgs; [ element-desktop # Matrix client From 05cf04a11f47a3688ace1787a6ebb5ef16b41260 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Wed, 31 Jan 2024 22:07:03 +0000 Subject: [PATCH 228/245] home: mpv: add mpv-cheatsheet --- modules/home/mpv/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/home/mpv/default.nix b/modules/home/mpv/default.nix index 931c252..8af394c 100644 --- a/modules/home/mpv/default.nix +++ b/modules/home/mpv/default.nix @@ -13,6 +13,7 @@ in scripts = [ pkgs.mpvScripts.mpris # Allow controlling using media keys + pkgs.mpvScripts.mpv-cheatsheet # Show some simple mappings on '?' pkgs.mpvScripts.uosc # Nicer UI ]; }; From 473be47b29843ae6125296bbf2ea7ea36acc110b Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Sat, 3 Feb 2024 23:54:03 +0100 Subject: [PATCH 229/245] overlays: add 'tandoor-recipes-failing-test' Since it's currently broken on the unstable channel, I am pre-emptively fixing it so that I can bump my flake inputs. --- overlays/tandoor-recipes-failing-test/default.nix | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 overlays/tandoor-recipes-failing-test/default.nix diff --git a/overlays/tandoor-recipes-failing-test/default.nix b/overlays/tandoor-recipes-failing-test/default.nix new file mode 100644 index 0000000..43755ac --- /dev/null +++ b/overlays/tandoor-recipes-failing-test/default.nix @@ -0,0 +1,9 @@ +_self: super: +{ + tandoor-recipes = super.tandoor-recipes.overridePythonAttrs (oa: { + disabledTests = (oa.disabledTests or [ ]) ++ [ + "test_search_count" + "test_url_import_regex_replace" + ]; + }); +} From b41f0890b8a1cf2d3653cb0e310bbb64b3bffaad Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Sat, 3 Feb 2024 18:37:51 +0100 Subject: [PATCH 230/245] flake: bump inputs --- flake.lock | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/flake.lock b/flake.lock index 43c64b5..ae79c1a 100644 --- a/flake.lock +++ b/flake.lock @@ -73,11 +73,11 @@ ] }, "locked": { - "lastModified": 1706569497, - "narHash": "sha256-oixb0IDb5eZYw6BaVr/R/1pSoMh4rfJHkVnlgeRIeZs=", + "lastModified": 1706830856, + "narHash": "sha256-a0NYyp+h9hlb7ddVz4LUn1vT/PLwqfrWYcHMvFB1xYg=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "60c614008eed1d0383d21daac177a3e036192ed8", + "rev": "b253292d9c0a5ead9bc98c4e9a26c6312e27d69f", "type": "github" }, "original": { @@ -136,11 +136,11 @@ ] }, "locked": { - "lastModified": 1706473109, - "narHash": "sha256-iyuAvpKTsq2u23Cr07RcV5XlfKExrG8gRpF75hf1uVc=", + "lastModified": 1706955260, + "narHash": "sha256-W3y0j77IDVbmbajudHoUr46RpswujUCl+D5Vru53UsI=", "owner": "nix-community", "repo": "home-manager", - "rev": "d634c3abafa454551f2083b054cd95c3f287be61", + "rev": "880d9bc2110f7cae59698f715b8ca42cdc53670c", "type": "github" }, "original": { @@ -152,11 +152,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1706550542, - "narHash": "sha256-UcsnCG6wx++23yeER4Hg18CXWbgNpqNXcHIo5/1Y+hc=", + "lastModified": 1706732774, + "narHash": "sha256-hqJlyJk4MRpcItGYMF+3uHe8HvxNETWvlGtLuVpqLU0=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "97b17f32362e475016f942bbdfda4a4a72a8a652", + "rev": "b8b232ae7b8b144397fdb12d20f592e5e7c1a64d", "type": "github" }, "original": { @@ -168,11 +168,11 @@ }, "nur": { "locked": { - "lastModified": 1706700467, - "narHash": "sha256-GYdukl4hSsGoHnlYMV6XgmnumuGr1H4vsL7UNnEmhmA=", + "lastModified": 1706978646, + "narHash": "sha256-XEFktO8Ba41zKawf1Uf6FKIR1x0ShuoSddYXU4PQbx8=", "owner": "nix-community", "repo": "NUR", - "rev": "e52bfdd7d331dd32f0f0f8eb430488a36d6e6402", + "rev": "66d6b7b355f3b10ea4140f8b85b2e274c24d442a", "type": "github" }, "original": { From 03dac604e9b8f6925042e7ced1c8f915a842acdb Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Sun, 24 Dec 2023 22:56:50 +0100 Subject: [PATCH 231/245] nixos: services: add pyload --- modules/nixos/services/default.nix | 1 + modules/nixos/services/pyload/default.nix | 77 +++++++++++++++++++++++ 2 files changed, 78 insertions(+) create mode 100644 modules/nixos/services/pyload/default.nix diff --git a/modules/nixos/services/default.nix b/modules/nixos/services/default.nix index 3e2b3c8..67504da 100644 --- a/modules/nixos/services/default.nix +++ b/modules/nixos/services/default.nix @@ -27,6 +27,7 @@ ./podgrab ./postgresql ./postgresql-backup + ./pyload ./quassel ./rss-bridge ./sabnzbd diff --git a/modules/nixos/services/pyload/default.nix b/modules/nixos/services/pyload/default.nix new file mode 100644 index 0000000..40bf12d --- /dev/null +++ b/modules/nixos/services/pyload/default.nix @@ -0,0 +1,77 @@ +{ config, lib, ... }: +let + cfg = config.my.services.pyload; +in +{ + options.my.services.pyload = with lib; { + enable = mkEnableOption "pyload download manager"; + + credentialsFile = mkOption { + type = types.path; + example = "/run/secrets/pyload-credentials.env"; + description = "pyload credentials"; + }; + + downloadDirectory = mkOption { + type = types.str; + default = "/data/downloads/pyload"; + example = "/var/lib/pyload/download"; + description = "Download directory"; + }; + + port = mkOption { + type = types.port; + default = 9093; + example = 8080; + description = "Internal port for webui"; + }; + }; + + config = lib.mkIf cfg.enable { + services.pyload = { + enable = true; + + # Listening on `localhost` leads to 502 with the reverse proxy... + listenAddress = "127.0.0.1"; + + inherit (cfg) + credentialsFile + downloadDirectory + port + ; + }; + + # Use pyload user/media group when downloading files + systemd.services.pyload = { + serviceConfig = { + User = lib.mkForce "pyload"; + Group = lib.mkForce "media"; + DynamicUser = lib.mkForce false; + }; + }; + + # And make sure the download directory has the correct owners + systemd.tmpfiles.settings.pyload = { + ${cfg.downloadDirectory}.d = { + user = "pyload"; + group = "media"; + }; + }; + + # Set-up pyload user and media group + users.users.pyload = { + isSystemUser = true; + group = "media"; + }; + + users.groups.media = { }; + + my.services.nginx.virtualHosts = { + pyload = { + inherit (cfg) port; + }; + }; + + # FIXME: fail2ban + }; +} From df44786c9cc5c12935ecce260a5ac55277eb9bef Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Sun, 24 Dec 2023 22:57:37 +0100 Subject: [PATCH 232/245] hosts: nixos: porthos: secrets: add pyload creds --- hosts/nixos/porthos/secrets/pyload/credentials.age | 7 +++++++ hosts/nixos/porthos/secrets/secrets.nix | 2 ++ 2 files changed, 9 insertions(+) create mode 100644 hosts/nixos/porthos/secrets/pyload/credentials.age diff --git a/hosts/nixos/porthos/secrets/pyload/credentials.age b/hosts/nixos/porthos/secrets/pyload/credentials.age new file mode 100644 index 0000000..089f962 --- /dev/null +++ b/hosts/nixos/porthos/secrets/pyload/credentials.age @@ -0,0 +1,7 @@ +age-encryption.org/v1 +-> ssh-ed25519 cKojmg nJbOfp0/wmFOZLzcWjoGB7wEB8e56aO1NntSmn5KomU +/Vio4Z/t7IPJrdzdwUPidVH3wrouSkwRzNHP0T4z3x0 +-> ssh-ed25519 jPowng QXg/xqs7/VfkYQg3X77w4i53q64bL9oYeTxqb9NVhiQ +sMHIXlmrIxtIr+s0X4lBqev/PPd3AKD5P7AP5K4NeJg +--- gzTn+6+aa4Ptic1lsvSt+r3IEBysHrvMMIyONogMDF0 +ˮUE_</Q+UAГM/kdAL/įo\XEDf\iđpF`#n4x1D5C&fBq${GgAq@Vu!CcR\֨ \ No newline at end of file diff --git a/hosts/nixos/porthos/secrets/secrets.nix b/hosts/nixos/porthos/secrets/secrets.nix index 7dd34df..43a9b35 100644 --- a/hosts/nixos/porthos/secrets/secrets.nix +++ b/hosts/nixos/porthos/secrets/secrets.nix @@ -64,6 +64,8 @@ in "podgrab/password.age".publicKeys = all; + "pyload/credentials.age".publicKeys = all; + "sso/auth-key.age".publicKeys = all; "sso/ambroisie/password-hash.age".publicKeys = all; "sso/ambroisie/totp-secret.age".publicKeys = all; From 5ecef0d789ce2fb990f3b5994321cf46c6ad950c Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Sun, 24 Dec 2023 22:58:03 +0100 Subject: [PATCH 233/245] hosts: nixos: porthos: services: enable pyload --- hosts/nixos/porthos/services.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/hosts/nixos/porthos/services.nix b/hosts/nixos/porthos/services.nix index d73cdc1..2486752 100644 --- a/hosts/nixos/porthos/services.nix +++ b/hosts/nixos/porthos/services.nix @@ -134,6 +134,10 @@ in }; # Regular backups postgresql-backup.enable = true; + pyload = { + enable = true; + credentialsFile = secrets."pyload/credentials".path; + }; # RSS provider for websites that do not provide any feeds rss-bridge.enable = true; # Usenet client From f54cee8f70cd569fcc77093e7330f327ee1b3970 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Sun, 4 Feb 2024 14:37:31 +0000 Subject: [PATCH 234/245] nixos: hardware: add graphics I did not add an Nvidia knob to this module, as I do not foresee *ever* using one of their graphics card. --- modules/nixos/hardware/default.nix | 1 + modules/nixos/hardware/graphics/default.nix | 75 +++++++++++++++++++++ 2 files changed, 76 insertions(+) create mode 100644 modules/nixos/hardware/graphics/default.nix diff --git a/modules/nixos/hardware/default.nix b/modules/nixos/hardware/default.nix index 2a686f7..95e6a22 100644 --- a/modules/nixos/hardware/default.nix +++ b/modules/nixos/hardware/default.nix @@ -6,6 +6,7 @@ ./bluetooth ./ergodox ./firmware + ./graphics ./mx-ergo ./networking ./sound diff --git a/modules/nixos/hardware/graphics/default.nix b/modules/nixos/hardware/graphics/default.nix new file mode 100644 index 0000000..3baac02 --- /dev/null +++ b/modules/nixos/hardware/graphics/default.nix @@ -0,0 +1,75 @@ +{ config, lib, pkgs, ... }: +let + cfg = config.my.hardware.graphics; +in +{ + options.my.hardware.graphics = with lib; { + enable = mkEnableOption "graphics configuration"; + + gpuFlavor = mkOption { + type = with types; nullOr (enum [ "amd" "intel" ]); + default = null; + example = "intel"; + description = "Which kind of GPU to install driver for"; + }; + + amd = { + enableKernelModule = lib.my.mkDisableOption "Kernel driver module"; + + amdvlk = lib.mkEnableOption "Use AMDVLK instead of Mesa RADV driver"; + }; + + intel = { + enableKernelModule = lib.my.mkDisableOption "Kernel driver module"; + }; + }; + + config = lib.mkIf cfg.enable (lib.mkMerge [ + { + hardware.opengl = { + enable = true; + }; + } + + # AMD GPU + (lib.mkIf (cfg.gpuFlavor == "amd") { + boot.initrd.kernelModules = lib.mkIf cfg.amd.enableKernelModule [ "amdgpu" ]; + + hardware.opengl = { + extraPackages = with pkgs; [ + # OpenCL + rocmPackages.clr + rocmPackages.clr.icd + ] + ++ lib.optional cfg.amd.amdvlk amdvlk + ; + + extraPackages32 = with pkgs; [ + ] + ++ lib.optional cfg.amd.amdvlk driversi686Linux.amdvlk + ; + }; + }) + + # Intel GPU + (lib.mkIf (cfg.gpuFlavor == "intel") { + boot.initrd.kernelModules = lib.mkIf cfg.intel.enableKernelModule [ "i915" ]; + + environment.variables = { + VDPAU_DRIVER = "va_gl"; + }; + + hardware.opengl = { + extraPackages = with pkgs; [ + # Open CL + intel-compute-runtime + + # VA API + intel-media-driver + intel-vaapi-driver + libvdpau-va-gl + ]; + }; + }) + ]); +} From 183f3b48c822ddd482bc2609c8053b966f4b1d7a Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Sun, 4 Feb 2024 14:39:29 +0000 Subject: [PATCH 235/245] hosts: nixos: aramis: hardware: enable graphics --- hosts/nixos/aramis/hardware.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/hosts/nixos/aramis/hardware.nix b/hosts/nixos/aramis/hardware.nix index c66b426..99bc77e 100644 --- a/hosts/nixos/aramis/hardware.nix +++ b/hosts/nixos/aramis/hardware.nix @@ -26,6 +26,12 @@ firmware = { cpuFlavor = "intel"; }; + + graphics = { + enable = true; + + gpuFlavor = "intel"; + }; }; hardware = { From 7948dc284b0dd7d2cd48932bc52ae64d90a9c01b Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Tue, 6 Feb 2024 15:08:16 +0000 Subject: [PATCH 236/245] nixos: hardware: rename 'trackball' Since I do intend on configuring every trackball I own to use this scheme, not just the MX Ergo. --- modules/nixos/hardware/default.nix | 2 +- modules/nixos/hardware/{mx-ergo => trackball}/default.nix | 7 ++++--- modules/nixos/profiles/devices/default.nix | 2 +- 3 files changed, 6 insertions(+), 5 deletions(-) rename modules/nixos/hardware/{mx-ergo => trackball}/default.nix (79%) diff --git a/modules/nixos/hardware/default.nix b/modules/nixos/hardware/default.nix index 95e6a22..8e125ca 100644 --- a/modules/nixos/hardware/default.nix +++ b/modules/nixos/hardware/default.nix @@ -7,9 +7,9 @@ ./ergodox ./firmware ./graphics - ./mx-ergo ./networking ./sound + ./trackball ./upower ]; } diff --git a/modules/nixos/hardware/mx-ergo/default.nix b/modules/nixos/hardware/trackball/default.nix similarity index 79% rename from modules/nixos/hardware/mx-ergo/default.nix rename to modules/nixos/hardware/trackball/default.nix index e4e55a1..7a99247 100644 --- a/modules/nixos/hardware/mx-ergo/default.nix +++ b/modules/nixos/hardware/trackball/default.nix @@ -1,11 +1,11 @@ # Hold down the `next page` button to scroll using the ball { config, lib, ... }: let - cfg = config.my.hardware.mx-ergo; + cfg = config.my.hardware.trackball; in { - options.my.hardware.mx-ergo = with lib; { - enable = mkEnableOption "MX Ergo configuration"; + options.my.hardware.trackball = with lib; { + enable = mkEnableOption "trackball configuration"; }; config = lib.mkIf cfg.enable { @@ -13,6 +13,7 @@ in # This section must be *after* the one configured by `libinput` # for the `ScrollMethod` configuration to not be overriden inputClassSections = lib.mkAfter [ + # MX Ergo '' Identifier "MX Ergo scroll button configuration" MatchProduct "MX Ergo" diff --git a/modules/nixos/profiles/devices/default.nix b/modules/nixos/profiles/devices/default.nix index 7dbd299..7a84bd2 100644 --- a/modules/nixos/profiles/devices/default.nix +++ b/modules/nixos/profiles/devices/default.nix @@ -11,7 +11,7 @@ in my.hardware = { ergodox.enable = true; - mx-ergo.enable = true; + trackball.enable = true; }; # MTP devices auto-mount via file explorers From a5aaf57e63d07666d8b41f8726258ccd88ff8467 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Tue, 6 Feb 2024 17:16:43 +0100 Subject: [PATCH 237/245] home: mail: accounts: remove himalaya backends Their definition is redundant with the logic of the himalaya module, which does the right thing by default. --- modules/home/mail/accounts/default.nix | 2 -- 1 file changed, 2 deletions(-) diff --git a/modules/home/mail/accounts/default.nix b/modules/home/mail/accounts/default.nix index e7663d8..8886139 100644 --- a/modules/home/mail/accounts/default.nix +++ b/modules/home/mail/accounts/default.nix @@ -18,8 +18,6 @@ let himalaya = { enable = cfg.himalaya.enable; # FIXME: try to actually configure it at some point - backend = "imap"; - sender = "smtp"; }; msmtp = { From c8b5b1586cf466b1b63bf82d739ff47b96bf42ec Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Tue, 6 Feb 2024 17:16:43 +0100 Subject: [PATCH 238/245] flake: bump inputs And remove the now-redundant overlay to fix a flaky `tandoor-recipes` test. --- flake.lock | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/flake.lock b/flake.lock index ae79c1a..4773d30 100644 --- a/flake.lock +++ b/flake.lock @@ -136,11 +136,11 @@ ] }, "locked": { - "lastModified": 1706955260, - "narHash": "sha256-W3y0j77IDVbmbajudHoUr46RpswujUCl+D5Vru53UsI=", + "lastModified": 1707175763, + "narHash": "sha256-0MKHC6tQ4KEuM5rui6DjKZ/VNiSANB4E+DJ/+wPS1PU=", "owner": "nix-community", "repo": "home-manager", - "rev": "880d9bc2110f7cae59698f715b8ca42cdc53670c", + "rev": "f99eace7c167b8a6a0871849493b1c613d0f1b80", "type": "github" }, "original": { @@ -152,11 +152,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1706732774, - "narHash": "sha256-hqJlyJk4MRpcItGYMF+3uHe8HvxNETWvlGtLuVpqLU0=", + "lastModified": 1707092692, + "narHash": "sha256-ZbHsm+mGk/izkWtT4xwwqz38fdlwu7nUUKXTOmm4SyE=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "b8b232ae7b8b144397fdb12d20f592e5e7c1a64d", + "rev": "faf912b086576fd1a15fca610166c98d47bc667e", "type": "github" }, "original": { @@ -168,11 +168,11 @@ }, "nur": { "locked": { - "lastModified": 1706978646, - "narHash": "sha256-XEFktO8Ba41zKawf1Uf6FKIR1x0ShuoSddYXU4PQbx8=", + "lastModified": 1707234300, + "narHash": "sha256-D+LdA8g0Tq+KE9EmJMmn8EGRO5jZ2nLe/W0Fr5EIsdg=", "owner": "nix-community", "repo": "NUR", - "rev": "66d6b7b355f3b10ea4140f8b85b2e274c24d442a", + "rev": "59fceae769455455ef44c1dfb63bbae1ecddc41d", "type": "github" }, "original": { From 1a7223a5e52623b9d9982783202a6f92458bbe1d Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Tue, 6 Feb 2024 17:25:03 +0100 Subject: [PATCH 239/245] overlays: remove 'tandoor-recipes-failing-test' This is now redundant, the nixpkgs bump provided an updated package which builds successfully. This reverts commit 473be47b29843ae6125296bbf2ea7ea36acc110b. --- overlays/tandoor-recipes-failing-test/default.nix | 9 --------- 1 file changed, 9 deletions(-) delete mode 100644 overlays/tandoor-recipes-failing-test/default.nix diff --git a/overlays/tandoor-recipes-failing-test/default.nix b/overlays/tandoor-recipes-failing-test/default.nix deleted file mode 100644 index 43755ac..0000000 --- a/overlays/tandoor-recipes-failing-test/default.nix +++ /dev/null @@ -1,9 +0,0 @@ -_self: super: -{ - tandoor-recipes = super.tandoor-recipes.overridePythonAttrs (oa: { - disabledTests = (oa.disabledTests or [ ]) ++ [ - "test_search_count" - "test_url_import_regex_replace" - ]; - }); -} From 091424cb14871190e8a2a9d8b5dc301d73aaf2fc Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Wed, 7 Feb 2024 11:49:42 +0000 Subject: [PATCH 240/245] overlays: gruvbox-nvim-better-diff: simplify --- .../gruvbox-nvim-better-diff/generated.nix | 24 ++++--------------- 1 file changed, 5 insertions(+), 19 deletions(-) diff --git a/overlays/gruvbox-nvim-better-diff/generated.nix b/overlays/gruvbox-nvim-better-diff/generated.nix index 50ea4ad..82a18c2 100644 --- a/overlays/gruvbox-nvim-better-diff/generated.nix +++ b/overlays/gruvbox-nvim-better-diff/generated.nix @@ -1,24 +1,10 @@ -{ vimUtils, fetchFromGitHub }: +{ ... }: -_final: _prev: { - gruvbox-nvim = vimUtils.buildVimPlugin { - pname = "gruvbox.nvim"; - version = "2023-10-07"; - - src = fetchFromGitHub { - owner = "ellisonleao"; - repo = "gruvbox.nvim"; - rev = "477c62493c82684ed510c4f70eaf83802e398898"; - sha256 = "0250c24c6n6yri48l288irdawhqs16qna3y74rdkgjd2jvh66vdm"; - }; - - patches = [ +_final: prev: { + gruvbox-nvim = prev.gruvbox-nvim.overrideAttrs (oa: { + patches = (oa.patches or [ ]) ++ [ # Inspired by https://github.com/ellisonleao/gruvbox.nvim/pull/291 ./colours.patch ]; - - meta = { - homepage = "https://github.com/ellisonleao/gruvbox.nvim/"; - }; - }; + }); } From 9b2963cb8c63c0aff2ca30b0897befc4a21d5bee Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Wed, 7 Feb 2024 11:50:42 +0000 Subject: [PATCH 241/245] overlays: add gruvbox-nvim-treesitter-fix The version in nixpkgs is not up-to-date with regards to the nvim-treesitter breaking changes that were recently introduced. --- overlays/gruvbox-nvim-treesitter-fix/default.nix | 4 ++++ overlays/gruvbox-nvim-treesitter-fix/generated.nix | 14 ++++++++++++++ 2 files changed, 18 insertions(+) create mode 100644 overlays/gruvbox-nvim-treesitter-fix/default.nix create mode 100644 overlays/gruvbox-nvim-treesitter-fix/generated.nix diff --git a/overlays/gruvbox-nvim-treesitter-fix/default.nix b/overlays/gruvbox-nvim-treesitter-fix/default.nix new file mode 100644 index 0000000..832e71d --- /dev/null +++ b/overlays/gruvbox-nvim-treesitter-fix/default.nix @@ -0,0 +1,4 @@ +self: prev: +{ + vimPlugins = prev.vimPlugins.extend (self.callPackage ./generated.nix { }); +} diff --git a/overlays/gruvbox-nvim-treesitter-fix/generated.nix b/overlays/gruvbox-nvim-treesitter-fix/generated.nix new file mode 100644 index 0000000..5a18d62 --- /dev/null +++ b/overlays/gruvbox-nvim-treesitter-fix/generated.nix @@ -0,0 +1,14 @@ +{ fetchFromGitHub }: + +_final: prev: { + gruvbox-nvim = prev.gruvbox-nvim.overrideAttrs (_: { + version = "2024-01-29"; + + src = fetchFromGitHub { + owner = "ellisonleao"; + repo = "gruvbox.nvim"; + rev = "6e4027ae957cddf7b193adfaec4a8f9e03b4555f"; + sha256 = "sha256-jWnrRy/PT7D0UcPGL+XTbKHWvS0ixvbyqPtTzG9HY84="; + }; + }); +} From 0650c1f15958e9510b67f51ce1cfe57f4bff94e2 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Wed, 7 Feb 2024 19:44:51 +0000 Subject: [PATCH 242/245] home: xdg: fix sort order --- modules/home/xdg/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/home/xdg/default.nix b/modules/home/xdg/default.nix index 3bba198..3aa43bd 100644 --- a/modules/home/xdg/default.nix +++ b/modules/home/xdg/default.nix @@ -48,8 +48,8 @@ in LESSHISTFILE = "${dataHome}/less/history"; LESSKEY = "${configHome}/less/lesskey"; PSQL_HISTORY = "${dataHome}/psql_history"; - REPO_CONFIG_DIR = "${configHome}/repo"; REDISCLI_HISTFILE = "${dataHome}/redis/rediscli_history"; + REPO_CONFIG_DIR = "${configHome}/repo"; XCOMPOSECACHE = "${dataHome}/X11/xcompose"; }; } From 7a03ce201268ebe924b42439a19a51988f5a625e Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Wed, 7 Feb 2024 19:45:32 +0000 Subject: [PATCH 243/245] home: xdg: add python configuration It looks like 3.13 finally brought a way to change the history location through `PYTHON_HISTORY`. --- modules/home/xdg/default.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/modules/home/xdg/default.nix b/modules/home/xdg/default.nix index 3aa43bd..6e49aa1 100644 --- a/modules/home/xdg/default.nix +++ b/modules/home/xdg/default.nix @@ -48,6 +48,9 @@ in LESSHISTFILE = "${dataHome}/less/history"; LESSKEY = "${configHome}/less/lesskey"; PSQL_HISTORY = "${dataHome}/psql_history"; + PYTHONPYCACHEPREFIX = "${cacheHome}/python/"; + PYTHONUSERBASE = "${dataHome}/python/"; + PYTHON_HISTORY = "${stateHome}/python/history"; REDISCLI_HISTFILE = "${dataHome}/redis/rediscli_history"; REPO_CONFIG_DIR = "${configHome}/repo"; XCOMPOSECACHE = "${dataHome}/X11/xcompose"; From c68574b7450ccff6fa60d79841bb39de577e1f0c Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Wed, 7 Feb 2024 20:17:46 +0000 Subject: [PATCH 244/245] home: add wget This is mostly so that I can add the XDG-compliant configuration. --- modules/home/default.nix | 1 + modules/home/wget/default.nix | 26 ++++++++++++++++++++++++++ 2 files changed, 27 insertions(+) create mode 100644 modules/home/wget/default.nix diff --git a/modules/home/default.nix b/modules/home/default.nix index 4dcfc35..c8183cf 100644 --- a/modules/home/default.nix +++ b/modules/home/default.nix @@ -39,6 +39,7 @@ ./tmux ./udiskie ./vim + ./wget ./wm ./x ./xdg diff --git a/modules/home/wget/default.nix b/modules/home/wget/default.nix new file mode 100644 index 0000000..32c13c0 --- /dev/null +++ b/modules/home/wget/default.nix @@ -0,0 +1,26 @@ +{ config, pkgs, lib, ... }: +let + cfg = config.my.home.wget; +in +{ + options.my.home.wget = with lib; { + enable = my.mkDisableOption "wget configuration"; + + package = mkPackageOption pkgs "wget" { }; + }; + + config = lib.mkIf cfg.enable { + home.packages = [ + cfg.package + ]; + + + home.sessionVariables = lib.mkIf cfg.enable { + WGETRC = "${config.xdg.configHome}/wgetrc"; + }; + + xdg.configFile."wgetrc".text = '' + hsts-file = ${config.xdg.dataHome}/wget-hsts + ''; + }; +} From 2e5899b22eda2561c332daa91cc375b2cb5fcfe9 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI <bruno@belanyi.fr> Date: Mon, 17 Apr 2023 21:00:36 +0100 Subject: [PATCH 245/245] WIP --- modules/home/nix/default.nix | 4 ++++ modules/nixos/system/nix/default.nix | 5 +++++ 2 files changed, 9 insertions(+) diff --git a/modules/home/nix/default.nix b/modules/home/nix/default.nix index 9ccbdc5..8e777da 100644 --- a/modules/home/nix/default.nix +++ b/modules/home/nix/default.nix @@ -48,7 +48,11 @@ in nix = { package = lib.mkDefault pkgs.nix; # NixOS module sets it unconditionally + # FIXME: waiting on https://github.com/nix-community/home-manager/pull/3876 settings = { + # I like XDG-compliance + use-xdg-base-directories = true; + experimental-features = [ "nix-command" "flakes" ]; }; }; diff --git a/modules/nixos/system/nix/default.nix b/modules/nixos/system/nix/default.nix index 47d6499..365e84f 100644 --- a/modules/nixos/system/nix/default.nix +++ b/modules/nixos/system/nix/default.nix @@ -54,7 +54,12 @@ in nix = { package = pkgs.nix; + # FIXME: waiting on https://github.com/NixOS/nixpkgs/pull/146515 + # FIXME: look at https://github.com/SuperSandro2000/nixos-modules/blob/master/modules/nix.nix settings = { + # I like XDG-compliance + use-xdg-base-directories = true; + experimental-features = [ "nix-command" "flakes" ]; }; };