diff --git a/home-manager/common/programs/core.nix b/home-manager/common/programs/core.nix index 40bbaf3..82f7a23 100644 --- a/home-manager/common/programs/core.nix +++ b/home-manager/common/programs/core.nix @@ -67,92 +67,6 @@ with lib; { tmate ]; }) - (mkIf config.nathan.programs.util.fish { - ######################### - ## Fish Configuration - ######################### - programs.fish = { - enable = true; - # Setup our aliases - shellAliases = { - ls = "exa --icons"; - la = "exa --icons -a"; - lg = "exa --icons --git"; - cat = "bat"; - dig = "dog"; - df = "duf"; - idris2 = "rlwrap -s 1000 idris2 --no-banner"; - }; - # Custom configuration - interactiveShellInit = '' - # Setup any-nix-shell - any-nix-shell fish --info-right | source - # Load logger function - source ~/.config/fish/functions/cmdlogger.fish - # Load up vi keybindings - fish_vi_key_bindings - ''; - functions = { - # Setup command logging to ~/.logs - cmdlogger = { - onEvent = "fish_preexec"; - body = '' - mkdir -p ~/.logs - echo (date -u +"%Y-%m-%dT%H:%M:%SZ")" "(echo %self)" "(pwd)": "$argv >> ~/.logs/(hostname)-(date "+%Y-%m-%d").log - ''; - }; - }; - }; - programs.starship = { - enable = true; - settings = { - directory = { - truncation_length = 3; - fish_style_pwd_dir_length = 1; - }; - git_commit = { - commit_hash_length = 6; - only_detached = false; - }; - package = { symbol = ""; }; - time = { - disabled = false; - format = "[$time]($style)"; - time_format = "%I:%M %p"; - }; - }; - }; - programs.bat = { - enable = true; - config = { - theme = "zenburn"; - style = "header,rule,snip,changes"; - }; - }; - ######################### - ## Readline + fzf and other quality of life stuff - ######################### - programs.readline = { - enable = true; - extraConfig = '' - set editing-mode vi - set show-all-if-ambiguous on - set editing-mode vi - - set keymap vi-command - # these are for vi-command mode - "\e[A": history-search-backward - "\e[B": history-search-forward - j: history-search-forward - k: history-search-backward - set keymap vi-insert - # these are for vi-insert mode - "\e[A": history-search-backward - "\e[B": history-search-forward - ''; - }; - programs.fzf = { enable = true; }; - }) (mkIf config.nathan.programs.util.json { ######################### ## JSON Utilities diff --git a/home-manager/common/programs/fish.nix b/home-manager/common/programs/fish.nix new file mode 100644 index 0000000..4e5f269 --- /dev/null +++ b/home-manager/common/programs/fish.nix @@ -0,0 +1,91 @@ +{ config, lib, pkgs, inputs, ... }: +with lib; { + config = mkMerge [ + (mkIf config.nathan.programs.util.fish { + ######################### + ## Fish Configuration + ######################### + programs.fish = { + enable = true; + # Setup our aliases + shellAliases = { + ls = "exa --icons"; + la = "exa --icons -a"; + lg = "exa --icons --git"; + cat = "bat"; + dig = "dog"; + df = "duf"; + idris2 = "rlwrap -s 1000 idris2 --no-banner"; + }; + # Custom configuration + interactiveShellInit = '' + # Setup any-nix-shell + any-nix-shell fish --info-right | source + # Load logger function + source ~/.config/fish/functions/cmdlogger.fish + # Load up vi keybindings + fish_vi_key_bindings + ''; + functions = { + # Setup command logging to ~/.logs + cmdlogger = { + onEvent = "fish_preexec"; + body = '' + mkdir -p ~/.logs + echo (date -u +"%Y-%m-%dT%H:%M:%SZ")" "(echo %self)" "(pwd)": "$argv >> ~/.logs/(hostname)-(date "+%Y-%m-%d").log + ''; + }; + }; + }; + programs.starship = { + enable = true; + settings = { + directory = { + truncation_length = 3; + fish_style_pwd_dir_length = 1; + }; + git_commit = { + commit_hash_length = 6; + only_detached = false; + }; + package = { symbol = ""; }; + time = { + disabled = false; + format = "[$time]($style)"; + time_format = "%I:%M %p"; + }; + }; + }; + programs.bat = { + enable = true; + config = { + theme = "zenburn"; + style = "header,rule,snip,changes"; + }; + }; + ######################### + ## Readline + fzf and other quality of life stuff + ######################### + programs.readline = { + enable = true; + extraConfig = '' + set editing-mode vi + set show-all-if-ambiguous on + set editing-mode vi + + set keymap vi-command + # these are for vi-command mode + "\e[A": history-search-backward + "\e[B": history-search-forward + j: history-search-forward + k: history-search-backward + set keymap vi-insert + # these are for vi-insert mode + "\e[A": history-search-backward + "\e[B": history-search-forward + ''; + }; + programs.fzf = { enable = true; }; + }) + ]; +} diff --git a/home-manager/darwin/default.nix b/home-manager/darwin/default.nix index d8e93ef..cda6e78 100644 --- a/home-manager/darwin/default.nix +++ b/home-manager/darwin/default.nix @@ -14,6 +14,7 @@ with nLib; { ../common/programs/terminal.nix ../common/programs/git.nix ../common/programs/ssh.nix + ../common/programs/fish.nix ./programs/core.nix ./programs/emacs.nix ./programs/devel.nix diff --git a/home-manager/linux/default.nix b/home-manager/linux/default.nix index 1ddf658..aac8f4e 100644 --- a/home-manager/linux/default.nix +++ b/home-manager/linux/default.nix @@ -14,6 +14,7 @@ with nLib; { ../common/programs/terminal.nix ../common/programs/git.nix ../common/programs/ssh.nix + ../common/programs/fish.nix ./programs/sway.nix ./programs/communications.nix ./programs/devel.nix