From bf465d56fa9176d811c75d5a610049faf11a6cb5 Mon Sep 17 00:00:00 2001 From: DashieTM Date: Sat, 24 Aug 2024 23:37:08 +0200 Subject: [PATCH] fix fish --- modules/programs/fish.nix | 240 ++++++++++++++--------------- modules/programs/home_packages.nix | 1 - 2 files changed, 120 insertions(+), 121 deletions(-) diff --git a/modules/programs/fish.nix b/modules/programs/fish.nix index 5bdf66a..61d5741 100644 --- a/modules/programs/fish.nix +++ b/modules/programs/fish.nix @@ -8,144 +8,144 @@ }; }; config = lib.mkIf config.mods.fish.enable - (lib.optionalAttrs (options ? programs.fish) { programs.fish = { enable = true; }; } - // lib.optionalAttrs (options ? xdg.configFile) { - xdg.configFile."fish/config.fish" = { - text = '' - if status is-interactive - # Commands to run in interactive sessions can go here - end + (lib.optionalAttrs (options ? programs.fish) { + programs.fish = { + enable = true; + shellInit = '' + if status is-interactive + # Commands to run in interactive sessions can go here + end - # ============================================================================= - # - # Utility functions for zoxide. - # + # ============================================================================= + # + # Utility functions for zoxide. + # - export NIX_PATH="$NIX_PATH:${config.conf.nixos-config-path}" + export NIX_PATH="$NIX_PATH:${config.conf.nixos-config-path}" - set EDITOR "neovide --no-fork" + set EDITOR "neovide --no-fork" - alias rebuild='sudo nixos-rebuild switch --flake ${config.conf.nixos-config-path}' - abbr --add ls 'lsd' - abbr --add :q 'exit' - abbr --add gh 'git push origin' - abbr --add gl 'git pull origin' - abbr --add gm 'git commit -m' - abbr --add ga "git add -A" - abbr --add g+ 'bear -- g++ -Wextra -Werror -std=c++20' - abbr --add s "kitty +kitten ssh" - abbr --add zl 'z "" ' - abbr --add nv 'neovide' - abbr --add cr 'cargo run' - abbr --add grep 'rg' - abbr --add cat 'bat' - abbr --add find 'fd' - abbr --add rm 'rip' + alias rebuild='sudo nixos-rebuild switch --flake ${config.conf.nixos-config-path}' + abbr --add ls 'lsd' + abbr --add :q 'exit' + abbr --add gh 'git push origin' + abbr --add gl 'git pull origin' + abbr --add gm 'git commit -m' + abbr --add ga "git add -A" + abbr --add g+ 'bear -- g++ -Wextra -Werror -std=c++20' + abbr --add s "kitty +kitten ssh" + abbr --add zl 'z "" ' + abbr --add nv 'neovide' + abbr --add cr 'cargo run' + abbr --add grep 'rg' + abbr --add cat 'bat' + abbr --add find 'fd' + abbr --add rm 'rip' - set fish_greeting - # pwd based on the value of _ZO_RESOLVE_SYMLINKS. - function __zoxide_pwd - builtin pwd -L - end + set fish_greeting + # pwd based on the value of _ZO_RESOLVE_SYMLINKS. + function __zoxide_pwd + builtin pwd -L + end - # A copy of fish's internal cd function. This makes it possible to use - # `alias cd=z` without causing an infinite loop. - if ! builtin functions --query __zoxide_cd_internal - if builtin functions --query cd - builtin functions --copy cd __zoxide_cd_internal - else - alias __zoxide_cd_internal='builtin cd' - end - end + # A copy of fish's internal cd function. This makes it possible to use + # `alias cd=z` without causing an infinite loop. + if ! builtin functions --query __zoxide_cd_internal + if builtin functions --query cd + builtin functions --copy cd __zoxide_cd_internal + else + alias __zoxide_cd_internal='builtin cd' + end + end - # cd + custom logic based on the value of _ZO_ECHO. - function __zoxide_cd - __zoxide_cd_internal $argv - end + # cd + custom logic based on the value of _ZO_ECHO. + function __zoxide_cd + __zoxide_cd_internal $argv + end - # ============================================================================= - # - # Hook configuration for zoxide. - # + # ============================================================================= + # + # Hook configuration for zoxide. + # - # Initialize hook to add new entries to the database. - function __zoxide_hook --on-variable PWD - test -z "$fish_private_mode" - and command zoxide add -- (__zoxide_pwd) - end + # Initialize hook to add new entries to the database. + function __zoxide_hook --on-variable PWD + test -z "$fish_private_mode" + and command zoxide add -- (__zoxide_pwd) + end - # ============================================================================= - # - # When using zoxide with --no-cmd, alias these internal functions as desired. - # + # ============================================================================= + # + # When using zoxide with --no-cmd, alias these internal functions as desired. + # - if test -z $__zoxide_z_prefix - set __zoxide_z_prefix 'z!' - end - set __zoxide_z_prefix_regex ^(string escape --style=regex $__zoxide_z_prefix) + if test -z $__zoxide_z_prefix + set __zoxide_z_prefix 'z!' + end + set __zoxide_z_prefix_regex ^(string escape --style=regex $__zoxide_z_prefix) - # Jump to a directory using only keywords. - function __zoxide_z - set -l argc (count $argv) - if test $argc -eq 0 - __zoxide_cd $HOME - else if test "$argv" = - - __zoxide_cd - - else if test $argc -eq 1 -a -d $argv[1] - __zoxide_cd $argv[1] - else if set -l result (string replace --regex $__zoxide_z_prefix_regex \'\' $argv[-1]); and test -n $result - __zoxide_cd $result - else - set -l result (command zoxide query --exclude (__zoxide_pwd) -- $argv) - and __zoxide_cd $result - end - end + # Jump to a directory using only keywords. + function __zoxide_z + set -l argc (count $argv) + if test $argc -eq 0 + __zoxide_cd $HOME + else if test "$argv" = - + __zoxide_cd - + else if test $argc -eq 1 -a -d $argv[1] + __zoxide_cd $argv[1] + else if set -l result (string replace --regex $__zoxide_z_prefix_regex \'\' $argv[-1]); and test -n $result + __zoxide_cd $result + else + set -l result (command zoxide query --exclude (__zoxide_pwd) -- $argv) + and __zoxide_cd $result + end + end - # Completions. - function __zoxide_z_complete - set -l tokens (commandline --current-process --tokenize) - set -l curr_tokens (commandline --cut-at-cursor --current-process --tokenize) + # Completions. + function __zoxide_z_complete + set -l tokens (commandline --current-process --tokenize) + set -l curr_tokens (commandline --cut-at-cursor --current-process --tokenize) - if test (count $tokens) -le 2 -a (count $curr_tokens) -eq 1 - # If there are < 2 arguments, use `cd` completions. - complete --do-complete "\'\' "(commandline --cut-at-cursor --current-token) | string match --regex '.*/$' - else if test (count $tokens) -eq (count $curr_tokens); and ! string match --quiet --regex $__zoxide_z_prefix_regex. $tokens[-1] - # If the last argument is empty and the one before doesn't start with - # $__zoxide_z_prefix, use interactive selection. - set -l query $tokens[2..-1] - set -l result (zoxide query --exclude (__zoxide_pwd) --interactive -- $query) - and echo $__zoxide_z_prefix$result - commandline --function repaint - end - end - complete --command __zoxide_z --no-files --arguments '(__zoxide_z_complete)' + if test (count $tokens) -le 2 -a (count $curr_tokens) -eq 1 + # If there are < 2 arguments, use `cd` completions. + complete --do-complete "\'\' "(commandline --cut-at-cursor --current-token) | string match --regex '.*/$' + else if test (count $tokens) -eq (count $curr_tokens); and ! string match --quiet --regex $__zoxide_z_prefix_regex. $tokens[-1] + # If the last argument is empty and the one before doesn't start with + # $__zoxide_z_prefix, use interactive selection. + set -l query $tokens[2..-1] + set -l result (zoxide query --exclude (__zoxide_pwd) --interactive -- $query) + and echo $__zoxide_z_prefix$result + commandline --function repaint + end + end + complete --command __zoxide_z --no-files --arguments '(__zoxide_z_complete)' - # Jump to a directory using interactive search. - function __zoxide_zi - set -l result (command zoxide query --interactive -- $argv) - and __zoxide_cd $result - end + # Jump to a directory using interactive search. + function __zoxide_zi + set -l result (command zoxide query --interactive -- $argv) + and __zoxide_cd $result + end - # ============================================================================= - # - # Commands for zoxide. Disable these using --no-cmd. - # + # ============================================================================= + # + # Commands for zoxide. Disable these using --no-cmd. + # - abbr --erase z &>/dev/null - alias z=__zoxide_z + abbr --erase z &>/dev/null + alias z=__zoxide_z - abbr --erase zi &>/dev/null - alias zi=__zoxide_zi + abbr --erase zi &>/dev/null + alias zi=__zoxide_zi - # ============================================================================= - # - # To initialize zoxide, add this to your configuration (usually - # ~/.config/fish/config.fish): - # - # zoxide init fish | source + # ============================================================================= + # + # To initialize zoxide, add this to your configuration (usually + # ~/.config/fish/config.fish): + # + # zoxide init fish | source - direnv hook fish | source - ''; - }; - }); + direnv hook fish | source + ''; + }; + }); } diff --git a/modules/programs/home_packages.nix b/modules/programs/home_packages.nix index 131c73a..fae7bbd 100644 --- a/modules/programs/home_packages.nix +++ b/modules/programs/home_packages.nix @@ -26,7 +26,6 @@ xournalpp vesktop kitty - fish ripgrep # TODO add fcp once fixed.... rm-improved