|
1 | | -{ config, lib, pkgs, hostnames, ... }: |
| 1 | +{ |
| 2 | + config, |
| 3 | + lib, |
| 4 | + pkgs, |
| 5 | + hostnames, |
| 6 | + ... |
| 7 | +}: |
2 | 8 |
|
3 | 9 | let |
4 | 10 | inherit (lib) mkIf concatStringsSep; |
5 | 11 | cfg = config.cli; |
6 | 12 |
|
7 | 13 | language = name: text: text; |
8 | | - hasPackage = pname: |
9 | | - lib.any (p: p ? pname && p.pname == pname) config.home.packages; |
| 14 | + hasPackage = pname: lib.any (p: p ? pname && p.pname == pname) config.home.packages; |
10 | 15 |
|
11 | 16 | hasRipgrep = hasPackage "ripgrep"; |
12 | 17 | hasNeovim = config.programs.neovim.enable; |
13 | | -in { |
| 18 | +in |
| 19 | +{ |
14 | 20 | config = mkIf cfg.enable { |
15 | | - home.packages = with pkgs; [ babelfish grc ]; |
| 21 | + home.packages = with pkgs; [ |
| 22 | + babelfish |
| 23 | + grc |
| 24 | + ]; |
16 | 25 |
|
17 | 26 | programs.fish = { |
18 | 27 | enable = true; |
|
24 | 33 | nr = "nix run nixpkgs#"; |
25 | 34 | nsn = "nix shell nixpkgs#"; |
26 | 35 | nbn = "nix build nixpkgs#"; |
27 | | - nbp = |
28 | | - "nix-build -E 'with import <nixpkgs> {}; callPackage ./default.nix {}'"; |
| 36 | + nbp = "nix-build -E 'with import <nixpkgs> {}; callPackage ./default.nix {}'"; |
29 | 37 | nrr = "nixos-rebuild-remote"; |
30 | 38 |
|
31 | 39 | # xmodmap |
|
48 | 56 | fish_greeting = ""; |
49 | 57 |
|
50 | 58 | fish_user_key_bindings = language "fish" '' |
51 | | - # fish_vi_key_bindings |
52 | | -
|
53 | 59 | # use search with tab complete - next best thing to fzf tab completion |
54 | | - bind --mode insert \t complete-and-search |
55 | | - bind --mode insert --key btab complete |
56 | | - bind --mode visual \t complete-and-search |
57 | | - bind --mode visual --key btab complete |
58 | | - bind \t complete-and-search |
59 | | - bind --key btab complete |
| 60 | + bind --mode insert tab complete |
| 61 | + bind --mode insert shift-tab complete-and-search |
| 62 | + bind --mode visual tab complete |
| 63 | + bind --mode visual shift-tab complete-and-search |
| 64 | + bind tab complete |
| 65 | + bind shift-tab complete-and-search |
60 | 66 |
|
61 | 67 | # open command buffer in vim when alt+e is pressed |
62 | 68 | bind \ee edit_command_buffer |
|
179 | 185 | }; |
180 | 186 |
|
181 | 187 | # grep using ripgrep and pass to nvim |
182 | | - nvimrg = |
183 | | - mkIf (hasNeovim && hasRipgrep) "nvim -q (rg --vimgrep $argv | psub)"; |
| 188 | + nvimrg = mkIf (hasNeovim && hasRipgrep) "nvim -q (rg --vimgrep $argv | psub)"; |
184 | 189 |
|
185 | 190 | # prints the command to the screen, colorized it would be when executed |
186 | 191 | # at the command line, then executes the command. |
@@ -231,8 +236,10 @@ in { |
231 | 236 | ''; |
232 | 237 | }; |
233 | 238 |
|
234 | | - plugins = with pkgs; |
235 | | - with fishPlugins; [ |
| 239 | + plugins = |
| 240 | + with pkgs; |
| 241 | + with fishPlugins; |
| 242 | + [ |
236 | 243 | { |
237 | 244 | name = "fisher"; |
238 | 245 | src = fetchFromGitHub { |
@@ -426,29 +433,57 @@ in { |
426 | 433 | }; |
427 | 434 |
|
428 | 435 | # file writing |
429 | | - xdg.configFile."fish/env.secrets.fish".text = let |
430 | | - inherit (builtins) concatStringsSep elemAt map; |
431 | | - cat = pkgs.coreutils + "/bin/cat"; |
432 | | - mkSecret = entry: |
433 | | - let |
434 | | - name = elemAt entry 0; |
435 | | - secret = elemAt entry 1; |
436 | | - path = config.sops.secrets.${secret}.path; |
437 | | - in ''set --export ${name} "$(${cat} ${path} 2>/dev/null)"''; |
438 | | - secrets = [ |
439 | | - [ "YOUTUBE_API_KEY" "youtube" ] |
440 | | - [ "BW_SESSION" "bw" ] |
441 | | - [ "CACHIX_AUTH_TOKEN" "cachix" ] |
442 | | - [ "CACHIX_ACTIVATE_TOKEN" "cachix-activate" ] |
443 | | - [ "HASS_SERVER" "hass_url" ] |
444 | | - [ "HASS_TOKEN" "hass_token" ] |
445 | | - [ "OPENROUTER_KEY" "openrouter_key" ] |
446 | | - [ "OPENAI_KEY" "openai_key" ] |
447 | | - ]; |
448 | | - envFile = concatStringsSep "\n" (map mkSecret secrets); |
449 | | - in '' |
450 | | - ${envFile} |
451 | | - set --export NIX_CONFIG "access-tokens = github.com=$(${cat} ${config.sops.secrets.nix-github-token.path} 2>/dev/null)" |
452 | | - ''; |
| 436 | + xdg.configFile."fish/env.secrets.fish".text = |
| 437 | + let |
| 438 | + inherit (builtins) concatStringsSep elemAt map; |
| 439 | + cat = pkgs.coreutils + "/bin/cat"; |
| 440 | + mkSecret = |
| 441 | + entry: |
| 442 | + let |
| 443 | + name = elemAt entry 0; |
| 444 | + secret = elemAt entry 1; |
| 445 | + path = config.sops.secrets.${secret}.path; |
| 446 | + in |
| 447 | + ''set --export ${name} "$(${cat} ${path} 2>/dev/null)"''; |
| 448 | + secrets = [ |
| 449 | + [ |
| 450 | + "YOUTUBE_API_KEY" |
| 451 | + "youtube" |
| 452 | + ] |
| 453 | + [ |
| 454 | + "BW_SESSION" |
| 455 | + "bw" |
| 456 | + ] |
| 457 | + [ |
| 458 | + "CACHIX_AUTH_TOKEN" |
| 459 | + "cachix" |
| 460 | + ] |
| 461 | + [ |
| 462 | + "CACHIX_ACTIVATE_TOKEN" |
| 463 | + "cachix-activate" |
| 464 | + ] |
| 465 | + [ |
| 466 | + "HASS_SERVER" |
| 467 | + "hass_url" |
| 468 | + ] |
| 469 | + [ |
| 470 | + "HASS_TOKEN" |
| 471 | + "hass_token" |
| 472 | + ] |
| 473 | + [ |
| 474 | + "OPENROUTER_KEY" |
| 475 | + "openrouter_key" |
| 476 | + ] |
| 477 | + [ |
| 478 | + "OPENAI_KEY" |
| 479 | + "openai_key" |
| 480 | + ] |
| 481 | + ]; |
| 482 | + envFile = concatStringsSep "\n" (map mkSecret secrets); |
| 483 | + in |
| 484 | + '' |
| 485 | + ${envFile} |
| 486 | + set --export NIX_CONFIG "access-tokens = github.com=$(${cat} ${config.sops.secrets.nix-github-token.path} 2>/dev/null)" |
| 487 | + ''; |
453 | 488 | }; |
454 | 489 | } |
0 commit comments