diff --git a/flake.lock b/flake.lock index 8991ec2..bb38070 100644 --- a/flake.lock +++ b/flake.lock @@ -205,7 +205,89 @@ "type": "github" } }, + "fenix_2": { + "inputs": { + "nixpkgs": [ + "himalaya", + "nixpkgs" + ], + "rust-analyzer-src": "rust-analyzer-src_2" + }, + "locked": { + "lastModified": 1732405626, + "narHash": "sha256-uDbQrdOyqa2679kKPzoztMxesOV7DG2+FuX/TZdpxD0=", + "owner": "soywod", + "repo": "fenix", + "rev": "c7af381484169a78fb79a11652321ae80b0f92a6", + "type": "github" + }, + "original": { + "owner": "soywod", + "repo": "fenix", + "type": "github" + } + }, + "fenix_3": { + "inputs": { + "nixpkgs": [ + "mirador", + "nixpkgs" + ], + "rust-analyzer-src": "rust-analyzer-src_3" + }, + "locked": { + "lastModified": 1732405626, + "narHash": "sha256-uDbQrdOyqa2679kKPzoztMxesOV7DG2+FuX/TZdpxD0=", + "owner": "soywod", + "repo": "fenix", + "rev": "c7af381484169a78fb79a11652321ae80b0f92a6", + "type": "github" + }, + "original": { + "owner": "soywod", + "repo": "fenix", + "type": "github" + } + }, + "fenix_4": { + "inputs": { + "nixpkgs": [ + "neverest", + "nixpkgs" + ], + "rust-analyzer-src": "rust-analyzer-src_4" + }, + "locked": { + "lastModified": 1732405626, + "narHash": "sha256-uDbQrdOyqa2679kKPzoztMxesOV7DG2+FuX/TZdpxD0=", + "owner": "soywod", + "repo": "fenix", + "rev": "c7af381484169a78fb79a11652321ae80b0f92a6", + "type": "github" + }, + "original": { + "owner": "soywod", + "repo": "fenix", + "type": "github" + } + }, "flake-compat": { + "flake": false, + "locked": { + "lastModified": 1673956053, + "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-compat_2": { "flake": false, "locked": { "lastModified": 1696426674, @@ -221,7 +303,7 @@ "type": "github" } }, - "flake-compat_2": { + "flake-compat_3": { "flake": false, "locked": { "lastModified": 1733328505, @@ -237,7 +319,7 @@ "type": "github" } }, - "flake-compat_3": { + "flake-compat_4": { "flake": false, "locked": { "lastModified": 1696426674, @@ -253,7 +335,7 @@ "type": "github" } }, - "flake-compat_4": { + "flake-compat_5": { "locked": { "lastModified": 1696426674, "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", @@ -267,7 +349,7 @@ "url": "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz" } }, - "flake-compat_5": { + "flake-compat_6": { "flake": false, "locked": { "lastModified": 1696426674, @@ -420,7 +502,7 @@ }, "flake-utils_3": { "inputs": { - "systems": "systems_5" + "systems": "systems_6" }, "locked": { "lastModified": 1731533236, @@ -438,7 +520,7 @@ }, "flake-utils_4": { "inputs": { - "systems": "systems_6" + "systems": "systems_7" }, "locked": { "lastModified": 1731533236, @@ -476,7 +558,7 @@ }, "git-hooks": { "inputs": { - "flake-compat": "flake-compat_3", + "flake-compat": "flake-compat_4", "gitignore": "gitignore_2", "nixpkgs": [ "neovim-nightly-overlay", @@ -640,6 +722,50 @@ "type": "github" } }, + "himalaya": { + "inputs": { + "fenix": "fenix_2", + "nixpkgs": [ + "nixpkgs" + ], + "pimalaya": "pimalaya" + }, + "locked": { + "lastModified": 1734596413, + "narHash": "sha256-08qvr9WeQTVaYgpecfXhdK3Ecf/2HaKRC4aN0QRYpl4=", + "owner": "pimalaya", + "repo": "himalaya", + "rev": "5eeda248fd90d161c8b346604f603d4a0a37ec6d", + "type": "github" + }, + "original": { + "owner": "pimalaya", + "repo": "himalaya", + "type": "github" + } + }, + "himalaya-vim": { + "inputs": { + "flake-compat": "flake-compat", + "nixpkgs": [ + "nixpkgs" + ], + "utils": "utils" + }, + "locked": { + "lastModified": 1733824228, + "narHash": "sha256-W3DoPg18sYv7RKMZka5h+6VaAStX1FHPf2pu/DZJPIg=", + "owner": "pimalaya", + "repo": "himalaya-vim", + "rev": "0e5d3395441301538c1830366f3212ed55b1d315", + "type": "github" + }, + "original": { + "owner": "pimalaya", + "repo": "himalaya-vim", + "type": "github" + } + }, "home-manager": { "inputs": { "nixpkgs": [ @@ -769,7 +895,7 @@ "hyprwayland-scanner": "hyprwayland-scanner", "nixpkgs": "nixpkgs_5", "pre-commit-hooks": "pre-commit-hooks", - "systems": "systems_4", + "systems": "systems_5", "xdph": "xdph" }, "locked": { @@ -1005,6 +1131,28 @@ "type": "github" } }, + "mirador": { + "inputs": { + "fenix": "fenix_3", + "nixpkgs": [ + "nixpkgs" + ], + "pimalaya": "pimalaya_2" + }, + "locked": { + "lastModified": 1733376925, + "narHash": "sha256-Knfh4QkRa6KyAdicvBRO23rvu5F1rikHtH4VphEnKM8=", + "owner": "pimalaya", + "repo": "mirador", + "rev": "5cbf31577edb3439f81277f6e717c48591af3d9f", + "type": "github" + }, + "original": { + "owner": "pimalaya", + "repo": "mirador", + "type": "github" + } + }, "naersk": { "inputs": { "nixpkgs": [ @@ -1029,7 +1177,7 @@ }, "neovim-nightly-overlay": { "inputs": { - "flake-compat": "flake-compat_2", + "flake-compat": "flake-compat_3", "flake-parts": "flake-parts_3", "git-hooks": "git-hooks", "hercules-ci-effects": "hercules-ci-effects", @@ -1067,6 +1215,28 @@ "type": "github" } }, + "neverest": { + "inputs": { + "fenix": "fenix_4", + "nixpkgs": [ + "nixpkgs" + ], + "pimalaya": "pimalaya_3" + }, + "locked": { + "lastModified": 1734595002, + "narHash": "sha256-MXQDy5b/ooSkISEVM9KxHeqkkhPimZJtX3j9jqTP5aU=", + "owner": "pimalaya", + "repo": "neverest", + "rev": "cc5f5214d3bea064ed059116ac81e40a803faa7e", + "type": "github" + }, + "original": { + "owner": "pimalaya", + "repo": "neverest", + "type": "github" + } + }, "niri": { "inputs": { "niri-stable": "niri-stable", @@ -1502,7 +1672,7 @@ "devshell": [ "devshell" ], - "flake-compat": "flake-compat_4", + "flake-compat": "flake-compat_5", "flake-parts": [ "flake-parts" ], @@ -1572,9 +1742,57 @@ "type": "github" } }, + "pimalaya": { + "flake": false, + "locked": { + "lastModified": 1732869386, + "narHash": "sha256-83tDRVfSBVZgIp6WOb6r/T6cHfP7lNsK1MUTdkGMi14=", + "owner": "pimalaya", + "repo": "nix", + "rev": "be23e0deeb014c6be5232322b892c9bee25dee77", + "type": "github" + }, + "original": { + "owner": "pimalaya", + "repo": "nix", + "type": "github" + } + }, + "pimalaya_2": { + "flake": false, + "locked": { + "lastModified": 1732861699, + "narHash": "sha256-zAH0R9TnwxqevDMtQlp1+K/FUvHD7vFCvxx1IAPJPkg=", + "owner": "pimalaya", + "repo": "nix", + "rev": "5496d03953c15ce3022b76e9514ff083517cc740", + "type": "github" + }, + "original": { + "owner": "pimalaya", + "repo": "nix", + "type": "github" + } + }, + "pimalaya_3": { + "flake": false, + "locked": { + "lastModified": 1732869386, + "narHash": "sha256-83tDRVfSBVZgIp6WOb6r/T6cHfP7lNsK1MUTdkGMi14=", + "owner": "pimalaya", + "repo": "nix", + "rev": "be23e0deeb014c6be5232322b892c9bee25dee77", + "type": "github" + }, + "original": { + "owner": "pimalaya", + "repo": "nix", + "type": "github" + } + }, "pre-commit-hooks": { "inputs": { - "flake-compat": "flake-compat", + "flake-compat": "flake-compat_2", "gitignore": "gitignore", "nixpkgs": [ "hyprland", @@ -1598,7 +1816,7 @@ }, "pre-commit-hooks_2": { "inputs": { - "flake-compat": "flake-compat_5", + "flake-compat": "flake-compat_6", "gitignore": "gitignore_4", "nixpkgs": "nixpkgs_10", "nixpkgs-stable": "nixpkgs-stable_4" @@ -1647,12 +1865,16 @@ "flake-parts": "flake-parts_2", "flake-utils": "flake-utils", "ghostty": "ghostty", + "himalaya": "himalaya", + "himalaya-vim": "himalaya-vim", "home-manager": "home-manager_2", "hypr-contrib": "hypr-contrib", "hyprland": "hyprland", "impermanence": "impermanence", "master": "master", + "mirador": "mirador", "neovim-nightly-overlay": "neovim-nightly-overlay", + "neverest": "neverest", "niri": "niri", "nix-index-database": "nix-index-database", "nix-monitored": "nix-monitored", @@ -1684,6 +1906,57 @@ "type": "github" } }, + "rust-analyzer-src_2": { + "flake": false, + "locked": { + "lastModified": 1732050317, + "narHash": "sha256-G5LUEOC4kvB/Xbkglv0Noi04HnCfryur7dVjzlHkgpI=", + "owner": "rust-lang", + "repo": "rust-analyzer", + "rev": "c0bbbb3e5d7d1d1d60308c8270bfd5b250032bb4", + "type": "github" + }, + "original": { + "owner": "rust-lang", + "ref": "nightly", + "repo": "rust-analyzer", + "type": "github" + } + }, + "rust-analyzer-src_3": { + "flake": false, + "locked": { + "lastModified": 1732050317, + "narHash": "sha256-G5LUEOC4kvB/Xbkglv0Noi04HnCfryur7dVjzlHkgpI=", + "owner": "rust-lang", + "repo": "rust-analyzer", + "rev": "c0bbbb3e5d7d1d1d60308c8270bfd5b250032bb4", + "type": "github" + }, + "original": { + "owner": "rust-lang", + "ref": "nightly", + "repo": "rust-analyzer", + "type": "github" + } + }, + "rust-analyzer-src_4": { + "flake": false, + "locked": { + "lastModified": 1732050317, + "narHash": "sha256-G5LUEOC4kvB/Xbkglv0Noi04HnCfryur7dVjzlHkgpI=", + "owner": "rust-lang", + "repo": "rust-analyzer", + "rev": "c0bbbb3e5d7d1d1d60308c8270bfd5b250032bb4", + "type": "github" + }, + "original": { + "owner": "rust-lang", + "ref": "nightly", + "repo": "rust-analyzer", + "type": "github" + } + }, "search": { "inputs": { "flake-utils": "flake-utils_4", @@ -1766,21 +2039,6 @@ } }, "systems_4": { - "locked": { - "lastModified": 1689347949, - "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", - "owner": "nix-systems", - "repo": "default-linux", - "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default-linux", - "type": "github" - } - }, - "systems_5": { "locked": { "lastModified": 1681028828, "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", @@ -1795,6 +2053,21 @@ "type": "github" } }, + "systems_5": { + "locked": { + "lastModified": 1689347949, + "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", + "owner": "nix-systems", + "repo": "default-linux", + "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default-linux", + "type": "github" + } + }, "systems_6": { "locked": { "lastModified": 1681028828, @@ -1825,11 +2098,26 @@ "type": "github" } }, + "systems_8": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, "timers": { "inputs": { "naersk": "naersk", "nixpkgs": "nixpkgs_12", - "utils": "utils" + "utils": "utils_2" }, "locked": { "lastModified": 1693040925, @@ -1910,7 +2198,25 @@ }, "utils": { "inputs": { - "systems": "systems_7" + "systems": "systems_4" + }, + "locked": { + "lastModified": 1694529238, + "narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "ff7b65b44d01cf9ba6a71320833626af21126384", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "utils_2": { + "inputs": { + "systems": "systems_8" }, "locked": { "lastModified": 1692799911, diff --git a/flake.nix b/flake.nix index 7f925ce..7cf7dd5 100644 --- a/flake.nix +++ b/flake.nix @@ -49,6 +49,19 @@ blink-compat.url = "github:Saghen/blink.compat"; blink-compat.flake = false; + # Pimalaya + himalaya.url = "github:pimalaya/himalaya"; + himalaya.inputs.nixpkgs.follows = "nixpkgs"; + + neverest.url = "github:pimalaya/neverest"; + neverest.inputs.nixpkgs.follows = "nixpkgs"; + + mirador.url = "github:pimalaya/mirador"; + mirador.inputs.nixpkgs.follows = "nixpkgs"; + + himalaya-vim.url = "github:pimalaya/himalaya-vim"; + himalaya-vim.inputs.nixpkgs.follows = "nixpkgs"; + # river river.url = "git+https://github.com/riverwm/river?submodules=1"; river.flake = false; diff --git a/modules/profiles/pimalaya.nix b/modules/profiles/pimalaya.nix new file mode 100644 index 0000000..6fb5f6a --- /dev/null +++ b/modules/profiles/pimalaya.nix @@ -0,0 +1,106 @@ +{ lib +, config +, pkgs +, ... +}: + +with lib; +let + cfg = config.my.profiles.pimalaya; +in + +{ + options.my.profiles.pimalaya.enable = mkEnableOption "Pimalaya email stuff"; + + config = mkIf cfg.enable { + my = { + services.mirador = { + enable = true; + package = inputs.mirador.packages.${pkgs.system}.default.overrideAttrs (old: { + nativeBuildInputs = old.nativeBuildInputs ++ [ pkgs.installShellFiles ]; + postInstall = old.postInstall + '' + installShellCompletion --cmd mirador \ + --bash <($out/bin/mirador completion bash) \ + --fish <($out/bin/mirador completion fish) \ + --zsh <($out/bin/mirador completion zsh) + ''; + }); + settings.accounts.personal = { + default = true; + folder = "INBOX"; + backend.type = "imap"; + backend.host = "mail.your-server.de"; + backend.port = 993; + backend.encryption = "tls"; + backend.login = "mail@moritzboeh.me"; + backend.auth.type = "password"; + backend.auth.command = "cat /run/agenix/email"; + on-message-added.cmd = "systemctl start --user neverest.service"; + on-message-added.notify.summary = "📫 New message from {sender}"; + on-message-added.notify.body = "{subject}"; + }; + }; + services.neverest = { + enable = true; + package = inputs.neverest.packages.${pkgs.system}.default.overrideAttrs (old: { + nativeBuildInputs = old.nativeBuildInputs ++ [ pkgs.installShellFiles ]; + postInstall = old.postInstall + '' + installShellCompletion --cmd neverest \ + --bash <($out/bin/neverest completion bash) \ + --fish <($out/bin/neverest completion fish) \ + --zsh <($out/bin/neverest completion zsh) + ''; + }); + settings.accounts.personal = { + default = true; + left.backend.type = "imap"; + left.backend.host = "mail.your-server.de"; + left.backend.port = 993; + left.backend.encryption = "tls"; + left.backend.login = "mail@moritzboeh.me"; + left.backend.auth.type = "password"; + left.backend.auth.command = "cat /run/agenix/email"; + right.backend.type = "maildir"; + right.backend.root-dir = "/home/moritz/Documents/Mail/personal"; + right.backend.maildirpp = false; + right.folder.aliases.inbox = "INBOX"; + right.folder.aliases.sent = "Sent"; + right.folder.aliases.drafts = "Drafts"; + right.folder.aliases.trash = "Trash"; + }; + }; + programs.himalaya = { + enable = true; + package = inputs.himalaya.packages.${pkgs.system}.default.overrideAttrs (old: { + nativeBuildInputs = old.nativeBuildInputs ++ [ pkgs.installShellFiles ]; + postInstall = old.postInstall + '' + installShellCompletion --cmd himalaya \ + --bash <($out/bin/himalaya completion bash) \ + --fish <($out/bin/himalaya completion fish) \ + --zsh <($out/bin/himalaya completion zsh) + ''; + }); + settings.accounts.personal = { + default = true; + email = "mail@moritzboeh.me"; + display-name = "Moritz Böhme"; + downloads-dir = "/home/moritz/Downloads"; + backend.type = "maildir"; + backend.root-dir = "/home/moritz/Documents/Mail/personal"; + backend.maildirpp = false; + folder.aliases.inbox = "INBOX"; + folder.aliases.sent = "Sent"; + folder.aliases.drafts = "Drafts"; + folder.aliases.trash = "Trash"; + message.send.backend.type = "smtp"; + message.send.backend.host = "mail.your-server.de"; + message.send.backend.port = 465; + message.send.backend.login = "mail@moritzboeh.me"; + message.send.backend.encryption.type = "tls"; + message.send.backend.auth.type = "password"; + message.send.backend.auth.command = "cat /run/agenix/email"; + }; + }; + }; + }; +} diff --git a/modules/programs/himalaya.nix b/modules/programs/himalaya.nix new file mode 100644 index 0000000..13f34a6 --- /dev/null +++ b/modules/programs/himalaya.nix @@ -0,0 +1,30 @@ +{ config +, lib +, pkgs +, ... +}: + +with lib; +let + cfg = config.my.programs.himalaya; + toml = pkgs.formats.toml { }; +in +{ + options.my.programs.himalaya.enable = mkEnableOption "himalaya"; + options.my.programs.himalaya.package = mkPackageOption pkgs "himalaya" { }; + options.my.programs.himalaya.settings = mkOption { + inherit (toml) type; + default = { }; + apply = toml.generate "config.toml"; + }; + + + config = mkIf cfg.enable { + home-manager.users.moritz.xdg.configFile."himalaya/config.toml".source = cfg.settings; + home-manager.users.moritz.home.packages = [ cfg.package ]; + age.secrets.email = { + file = ../../secrets/email.age; + owner = "1000"; + }; + }; +} diff --git a/modules/programs/nvim/new_plugins/himalaya-vim.nix b/modules/programs/nvim/new_plugins/himalaya-vim.nix new file mode 100644 index 0000000..cbb6653 --- /dev/null +++ b/modules/programs/nvim/new_plugins/himalaya-vim.nix @@ -0,0 +1,23 @@ +{ config, lib, pkgs, inputs, ... }: + +let + inherit (lib) mkEnableOption mkIf readFile; +in +{ + home-manager.users.moritz.programs.nixvim = lib.mkIf config.my.programs.himalaya.enable { + extraPlugins = with pkgs.vimPlugins; [ + # himalaya-vim + inputs.himalaya-vim.packages.${pkgs.system}.default + ]; + extraConfigLuaPost = '' + vim.g.himalaya_folder_picker = "telescope"; + ''; + autoCmd = [ + { + command = "set modifiable"; + event = [ "FileType" ]; + pattern = [ "himalaya-email-listing" ]; + } + ]; + }; +} diff --git a/modules/services/mirador.nix b/modules/services/mirador.nix new file mode 100644 index 0000000..807c90e --- /dev/null +++ b/modules/services/mirador.nix @@ -0,0 +1,50 @@ +{ config +, lib +, pkgs +, ... +}: + +with lib; +let + cfg = config.my.services.mirador; + toml = pkgs.formats.toml { }; +in +{ + options.my.services.mirador = { + enable = mkEnableOption "mirador"; + package = mkPackageOption pkgs "mirador" { }; + settings = mkOption { + inherit (toml) type; + default = { }; + apply = toml.generate "config.toml"; + }; + }; + + + config = mkIf cfg.enable { + home-manager.users.moritz = { + xdg.configFile."mirador/config.toml".source = cfg.settings; + home.packages = [ cfg.package ]; + systemd.user.services.mirador = { + Unit = { + Description = "CLI to watch mailbox changes"; + }; + Service = { + # Lower CPU and I/O priority + Nice = 19; + IOSchedulingClass = "best-effort"; + IOSchedulingPriority = 7; + IOWeight = 100; + + ExecStart = '' + ${lib.getExe cfg.package} watch + ''; + }; + }; + }; + age.secrets.email = { + file = ../../secrets/email.age; + owner = "1000"; + }; + }; +} diff --git a/modules/services/neverest.nix b/modules/services/neverest.nix new file mode 100644 index 0000000..d246412 --- /dev/null +++ b/modules/services/neverest.nix @@ -0,0 +1,71 @@ +{ config +, lib +, pkgs +, ... +}: + +with lib; +let + cfg = config.my.services.neverest; + toml = pkgs.formats.toml { }; +in +{ + options.my.services.neverest = { + enable = mkEnableOption "neverest"; + package = mkPackageOption pkgs "neverest" { }; + frequency = mkOption { + type = types.str; + default = "hourly"; + description = '' + How often to run neverest when + `services.neverest.enable = true`. + This value is passed to the systemd timer configuration as + the onCalendar option. See + {manpage}`systemd.time(7)` + for more information about the format. + ''; + }; + settings = mkOption { + inherit (toml) type; + default = { }; + apply = toml.generate "config.toml"; + }; + }; + + + config = mkIf cfg.enable { + home-manager.users.moritz = { + xdg.configFile."neverest/config.toml".source = cfg.settings; + home.packages = [ cfg.package ]; + systemd.user.timers.neverest = { + Unit.Description = "Run neverest"; + Timer = { + OnCalendar = cfg.frequency; + Persistent = true; + RandomizedDelaySec = "10m"; + }; + Install.WantedBy = [ "timers.target" ]; + }; + systemd.user.services.neverest = { + Unit = { + Description = "CLI to synchronize, backup and restore emails"; + }; + Service = { + # Lower CPU and I/O priority + Nice = 19; + IOSchedulingClass = "best-effort"; + IOSchedulingPriority = 7; + IOWeight = 100; + + ExecStart = '' + ${lib.getExe cfg.package} synchronize + ''; + }; + }; + }; + age.secrets.email = { + file = ../../secrets/email.age; + owner = "1000"; + }; + }; +} diff --git a/secrets/email.age b/secrets/email.age new file mode 100644 index 0000000..4a7e4fa --- /dev/null +++ b/secrets/email.age @@ -0,0 +1,9 @@ +age-encryption.org/v1 +-> ssh-ed25519 CjuqfA MpG6qzuiLlKhSXD8Huw1Bvq3ryPWqz/ess/yhxlsc10 +1HvQ9OHzuSwgKPBBi5z/A2M0ExquwBtCC53LD/D3+/g +-> ssh-ed25519 wG6LYg xJwvrYgDvHcL8dhV35LWIUEedyA4yz0tbcnI/eE/sSE +NYvEWeD+XHubSicVRG3KH3MG2DGua2s3Fks87sbfVRI +-> ssh-ed25519 ZYd7Zg ltnNKEHfkPGv2BYzDOy5iXSr7eJjkF9Vuuyor9HkVEo +f06sXYZWWlt8nRpfNqWrLgLtkwO1Ox2f6lYhZX0zwwA +--- peGLxgxO+t4dAKViNPJ12BTj+FnQc69z5rfb92JfomU +~LGw5u~v0G U3||r=AZK~W@F&Cj \ No newline at end of file diff --git a/secrets/secrets.nix b/secrets/secrets.nix index 197c70b..e9337d1 100644 --- a/secrets/secrets.nix +++ b/secrets/secrets.nix @@ -29,4 +29,5 @@ in "openai.age".publicKeys = personal; "anthropic.age".publicKeys = personal; "nix-github-token.age".publicKeys = personal; + "email.age".publicKeys = personal; }