From e1c45442b880951336759a58cdb5c306627cc9e4 Mon Sep 17 00:00:00 2001 From: Nickolaj Jepsen Date: Wed, 26 Feb 2025 20:34:54 +0100 Subject: [PATCH] feat: add aider and zoxide --- .gitignore | 3 +-- hosts/work/ssh.nix | 2 +- modules/desktop/gtk/default.nix | 2 +- modules/shell.nix | 2 ++ modules/shell/aider.nix | 25 ++++++++++++++++++ modules/shell/fish/autocomplete.fish | 4 +-- modules/shell/zoxide.nix | 5 ++++ ...da13a1f654ab32cea0102501eb-llm-api-key.age | Bin 0 -> 495 bytes ...ae3b7c469613cb81ec6a868a96-llm-api-key.age | 8 ++++++ ...ae3b7c469613cb81ec6a868a96-llm-api-key.age | Bin 0 -> 427 bytes ...d3be8bc97c3af769254574e9ba-llm-api-key.age | Bin 0 -> 463 bytes secrets/llm-api-key.env.age | 10 +++++++ 12 files changed, 55 insertions(+), 6 deletions(-) create mode 100644 modules/shell/aider.nix create mode 100644 modules/shell/zoxide.nix create mode 100644 secrets/hosts/bootstrap/.rekey/5b9b59da13a1f654ab32cea0102501eb-llm-api-key.age create mode 100644 secrets/hosts/desktop/.rekey/a450ddae3b7c469613cb81ec6a868a96-llm-api-key.age create mode 100644 secrets/hosts/laptop/.rekey/a450ddae3b7c469613cb81ec6a868a96-llm-api-key.age create mode 100644 secrets/hosts/work/.rekey/d451ded3be8bc97c3af769254574e9ba-llm-api-key.age create mode 100644 secrets/llm-api-key.env.age diff --git a/.gitignore b/.gitignore index e256ccc..40b013a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,6 @@ -result -result/ secrets/yubikey-identity.txt # Avoid leaking ssh keys **/id_ed25519 **/id_rsa +.aider* diff --git a/hosts/work/ssh.nix b/hosts/work/ssh.nix index e419164..fe7e64e 100644 --- a/hosts/work/ssh.nix +++ b/hosts/work/ssh.nix @@ -16,4 +16,4 @@ proxyJump = "bastion.ao"; }; }; -} \ No newline at end of file +} diff --git a/modules/desktop/gtk/default.nix b/modules/desktop/gtk/default.nix index 3bde0fb..4e7aa5f 100644 --- a/modules/desktop/gtk/default.nix +++ b/modules/desktop/gtk/default.nix @@ -3,7 +3,7 @@ nautilus gnome-photos ]; - + services.gvfs.enable = true; programs.dconf.enable = true; diff --git a/modules/shell.nix b/modules/shell.nix index 8922e37..1d53834 100644 --- a/modules/shell.nix +++ b/modules/shell.nix @@ -6,5 +6,7 @@ ./shell/comma.nix ./shell/neovim.nix ./shell/zellij.nix + ./shell/zoxide.nix + ./shell/aider.nix ]; } diff --git a/modules/shell/aider.nix b/modules/shell/aider.nix new file mode 100644 index 0000000..8603e6e --- /dev/null +++ b/modules/shell/aider.nix @@ -0,0 +1,25 @@ +{ + pkgsUnstable, + username, + config, + ... +}: { + age.secrets.llm-api-key = { + rekeyFile = ../../secrets/llm-api-key.env.age; + mode = "0600"; + owner = username; + }; + + environment.systemPackages = with pkgsUnstable; [ + aider-chat + ]; + fireproof.home-manager = { + home.file.".aider.conf.yml".text = '' + # Aider configuration file + # This file is used to configure the Aider chat client + # It is a YAML file + sonnet: true + env-file: ${config.age.secrets.llm-api-key.path} + ''; + }; +} diff --git a/modules/shell/fish/autocomplete.fish b/modules/shell/fish/autocomplete.fish index 7ba3475..e4b1ddd 100644 --- a/modules/shell/fish/autocomplete.fish +++ b/modules/shell/fish/autocomplete.fish @@ -1,4 +1,4 @@ # ds autocomplete (if its installed) if type -q ds - _DS_COMPLETE=fish_source ds | source; -end; \ No newline at end of file + _DS_COMPLETE=fish_source ds | source +end diff --git a/modules/shell/zoxide.nix b/modules/shell/zoxide.nix new file mode 100644 index 0000000..175a4ad --- /dev/null +++ b/modules/shell/zoxide.nix @@ -0,0 +1,5 @@ +_: { + fireproof.home-manager.programs.zoxide = { + enable = true; + }; +} diff --git a/secrets/hosts/bootstrap/.rekey/5b9b59da13a1f654ab32cea0102501eb-llm-api-key.age b/secrets/hosts/bootstrap/.rekey/5b9b59da13a1f654ab32cea0102501eb-llm-api-key.age new file mode 100644 index 0000000000000000000000000000000000000000..f6aa0dc68a266f6a64d299f7eb893d5e2b9afe2e GIT binary patch literal 495 zcmYdHPt{G$OD?J`D9Oyv)5|YP*Do{V(zR14F3!+RO))YxHMCUlH1x9w2~?;w*DuK{ zNDa);&dRaKt}68@NJ=g-&NFoKNzYC5_wdp;%GS;{);A6e3FPu|jI>D4(@qO@4~WQi zOi7M#D+yi@WVjAeq73LV=VQ3H*Uf^euZj@hPlx5=U993cwnUUn|uWg=QT<(ovtP9j5KxvmAeK;Io$ad1TGgCnv=1 z-7bZ#Tq5py?>|G8ZtTN-i`Q=v{kg#;V44&!kDMp#RNwil#hC3k@=mK=$hO!mZ0{1@ netlDKDS2JjJ&FG%E?KEh%~`Rl{Hs(>$8C!cbC3Ta9*eXAB9XCq literal 0 HcmV?d00001 diff --git a/secrets/hosts/desktop/.rekey/a450ddae3b7c469613cb81ec6a868a96-llm-api-key.age b/secrets/hosts/desktop/.rekey/a450ddae3b7c469613cb81ec6a868a96-llm-api-key.age new file mode 100644 index 0000000..c0ba5ad --- /dev/null +++ b/secrets/hosts/desktop/.rekey/a450ddae3b7c469613cb81ec6a868a96-llm-api-key.age @@ -0,0 +1,8 @@ +age-encryption.org/v1 +-> ssh-ed25519 UqEUow ZTWzzn7Ra3xjMUJkRm+lK+HMdqxCM1XiDneKWk6IoUY +7HIwLVhsJftGWMjhCQddz/MMqnpv7UoR1QzEXUfqVqo +-> ;7rhkFK-grease +2fBbpwA7 +--- Dj4NFjzl0zb+Wxl+j2eChRWowe4PAGkag//fwnjiiAs +%ތ?Ŋ$qU1Pk%]C:ODxɭyy,[Dm NZc* p; 3R}"P8  + qUP/0X9q2 h}v!PG#O4hՂl^@^J /2K \ No newline at end of file diff --git a/secrets/hosts/laptop/.rekey/a450ddae3b7c469613cb81ec6a868a96-llm-api-key.age b/secrets/hosts/laptop/.rekey/a450ddae3b7c469613cb81ec6a868a96-llm-api-key.age new file mode 100644 index 0000000000000000000000000000000000000000..30a5415b9421f7b56d12700fa7c61d4fb3fce8e2 GIT binary patch literal 427 zcmYdHPt{G$OD?J`D9Oyv)5|YP*Do{V(zR14F3!+RO))YxHMCR+Ep!ddFIT9H4E3lm z){oFHG%rXqGxNz$k4h@dDk(R1PL423tSIx!G009yjtVFWPv=TXPj{~Xe$2+Rp^ zGD`C>3U(>=OYzL~ElkXe$_WjNjPfteE-9!oOa|GO6X~y;UX+?xoXQpMZ=P9T;Zc!k zm>8AioSU8K>yuV&Y3@^2RS_JS6>9A4Q=j&=?d6?oV3?lc zo$JF@Y_6Rc=vk4i;pQ9QUY?cVU1gXOkrkn>U+n5*;H~eH=@hD8VNjG& z5nx^xWto-C<*%w56*yt_i==s8+jew{$v->!?(Aybr@CFAzRi1d+jHT`{rA$eSVa8} zIN7!T7HD5^;Let;FB9x$dUJ28;8JzqIej$G{9q6R2ix+gI~d!;o7ZkWT3eE?`Ers{ zgW};yt?JzxomG;BpZ*tw@8uL!df3I~vv00>Wy^;q2m83&ubEq(M4$gCC32(_Y6z}nK9Z6H09-$$u>b%7 literal 0 HcmV?d00001 diff --git a/secrets/hosts/work/.rekey/d451ded3be8bc97c3af769254574e9ba-llm-api-key.age b/secrets/hosts/work/.rekey/d451ded3be8bc97c3af769254574e9ba-llm-api-key.age new file mode 100644 index 0000000000000000000000000000000000000000..c88678b4bd319e4819c0ac12b3ecd940eae97ebd GIT binary patch literal 463 zcmYdHPt{G$OD?J`D9Oyv)5|YP*Do{V(zR14F3!+RO))YxHMCR+4Kyw=D_78WEB6jD zbTh9kHZ4i?Og9X3Nj5hKPYuc|t}Kl3%JlTtE(onm3@=P~b>%89@NxDp4k=IbDa-J+ z%u7x2%+Gc8@G=Q4adPx5$x10san3GtH!m&Mw*c8@;2LF88KRqBl$uzas-TmtV4dnv zW8)vdRpsmKX_V~co|{|X=$~mEROA$%RuC5GQBV;O6jqq(UX@j9nrfWr9g*Vb<5`%M7n)bjbwJYPz0H{p z-g8y44v*ic%xGA7_>$to6Q-Nru3dI))k@b!vtYjJxohvuvX5zQ%jAfNlS+NISMX0$ z!K+Ztp8EoO-hA9~q9v+lPw@WLy3ZnObDdS}H=jJg*SV K=G(1~nF|2vleWtM literal 0 HcmV?d00001 diff --git a/secrets/llm-api-key.env.age b/secrets/llm-api-key.env.age new file mode 100644 index 0000000..d138bdd --- /dev/null +++ b/secrets/llm-api-key.env.age @@ -0,0 +1,10 @@ +age-encryption.org/v1 +-> X25519 PkSPG1ZMXK0ArIw/8DE10dbf4bIh0539bjWzOCjDIFs +TtWsG59L7YoHVO+nl3lzDSEFFljVMMWef9QkOkZKmT4 +-> piv-p256 q3LNVw AvnoJDyUKLYCgIDWN4ey0UhENnnfJLpE/6jMh7iiwTZO +oVvNazfISZ4P027JK9wSMR1XQmO2oCVOf162SHL1k6o +-> Z#uEQzx-grease y<&| pho{ +PJKNrTEwLc21FkpGIa+FNaOJvzFJ +--- efk3YmjrmLWXw5GSNc9NBhtpOqQWaK6d1rs/7ZlQjBg +mBʥF UiJ! OG' /}挔l۾ՙCt y7r^a95gk3Ia&36{)_^nGm  +WY~>bz{xZ@1-)t5`&O%`?p2 \ No newline at end of file