From 55c2d8e73db4e9e93cddcb981c15fb8fe9b1dcf4 Mon Sep 17 00:00:00 2001 From: Guangxiong Lin Date: Wed, 15 Nov 2023 00:47:36 +0800 Subject: Remove z.sh and try zoxide and fish --- .config/fish/config.fish | 16 ++++++++++++++++ .config/fish/fish_variables | 31 +++++++++++++++++++++++++++++++ .config/fish/functions/init_fzf.fish | 11 +++++++++++ .config/fish/functions/is_mac.fish | 4 ++++ .config/fish/functions/n.fish | 36 ++++++++++++++++++++++++++++++++++++ .zprofile | 1 + .zrc | 17 ----------------- .zshrc | 7 ++++++- scripts/bootstrap.sh | 3 ++- 9 files changed, 107 insertions(+), 19 deletions(-) create mode 100644 .config/fish/config.fish create mode 100644 .config/fish/fish_variables create mode 100644 .config/fish/functions/init_fzf.fish create mode 100644 .config/fish/functions/is_mac.fish create mode 100644 .config/fish/functions/n.fish create mode 100644 .zprofile delete mode 100755 .zrc diff --git a/.config/fish/config.fish b/.config/fish/config.fish new file mode 100644 index 0000000..4414fb7 --- /dev/null +++ b/.config/fish/config.fish @@ -0,0 +1,16 @@ +if status is-interactive + command -v zoxide > /dev/null && zoxide init --cmd j fish | source + command -v navi > /dev/null && eval "$(navi widget fish)" + init_fzf + + if command -v nnn > /dev/null; + set -l function_file "$HOME/.config/fish/functions/n.fish" + if [ ! -r $function_file ]; + echo 'Downloading nnn function' + curl -L 'https://raw.githubusercontent.com/jarun/nnn/master/misc/quitcd/quitcd.fish' > $function_file + end + end + + command -v tig > /dev/null && function tigs; tig status; end + command -v git > /dev/null && function g; git $argv; end +end diff --git a/.config/fish/fish_variables b/.config/fish/fish_variables new file mode 100644 index 0000000..1a82b8a --- /dev/null +++ b/.config/fish/fish_variables @@ -0,0 +1,31 @@ +# This file contains fish universal variable definitions. +# VERSION: 3.0 +SETUVAR __fish_initialized:3400 +SETUVAR fish_color_autosuggestion:555\x1ebrblack +SETUVAR fish_color_cancel:\x2dr +SETUVAR fish_color_command:blue +SETUVAR fish_color_comment:red +SETUVAR fish_color_cwd:green +SETUVAR fish_color_cwd_root:red +SETUVAR fish_color_end:green +SETUVAR fish_color_error:brred +SETUVAR fish_color_escape:brcyan +SETUVAR fish_color_history_current:\x2d\x2dbold +SETUVAR fish_color_host:normal +SETUVAR fish_color_host_remote:yellow +SETUVAR fish_color_normal:normal +SETUVAR fish_color_operator:brcyan +SETUVAR fish_color_param:cyan +SETUVAR fish_color_quote:yellow +SETUVAR fish_color_redirection:cyan\x1e\x2d\x2dbold +SETUVAR fish_color_search_match:bryellow\x1e\x2d\x2dbackground\x3dbrblack +SETUVAR fish_color_selection:white\x1e\x2d\x2dbold\x1e\x2d\x2dbackground\x3dbrblack +SETUVAR fish_color_status:red +SETUVAR fish_color_user:brgreen +SETUVAR fish_color_valid_path:\x2d\x2dunderline +SETUVAR fish_key_bindings:fish_default_key_bindings +SETUVAR fish_pager_color_completion:normal +SETUVAR fish_pager_color_description:B3A06D\x1eyellow\x1e\x2di +SETUVAR fish_pager_color_prefix:normal\x1e\x2d\x2dbold\x1e\x2d\x2dunderline +SETUVAR fish_pager_color_progress:brwhite\x1e\x2d\x2dbackground\x3dcyan +SETUVAR fish_pager_color_selected_background:\x2dr diff --git a/.config/fish/functions/init_fzf.fish b/.config/fish/functions/init_fzf.fish new file mode 100644 index 0000000..b1fab2a --- /dev/null +++ b/.config/fish/functions/init_fzf.fish @@ -0,0 +1,11 @@ +function init_fzf + command -v fzf > /dev/null || exit 0 + + if is_mac; + source $(brew --prefix fzf)/shell/key-bindings.fish + end + + function fish_user_key_bindings + fzf_key_bindings + end +end diff --git a/.config/fish/functions/is_mac.fish b/.config/fish/functions/is_mac.fish new file mode 100644 index 0000000..51c7cbd --- /dev/null +++ b/.config/fish/functions/is_mac.fish @@ -0,0 +1,4 @@ +function is_mac + [ $(uname) = Darwin ] && return 0 || return 1 +end + diff --git a/.config/fish/functions/n.fish b/.config/fish/functions/n.fish new file mode 100644 index 0000000..a8c3dc4 --- /dev/null +++ b/.config/fish/functions/n.fish @@ -0,0 +1,36 @@ +# Rename this file to match the name of the function +# e.g. ~/.config/fish/functions/n.fish +# or, add the lines to the 'config.fish' file. + +function n --wraps nnn --description 'support nnn quit and change directory' + # Block nesting of nnn in subshells + if test -n "$NNNLVL" -a "$NNNLVL" -ge 1 + echo "nnn is already running" + return + end + + # The behaviour is set to cd on quit (nnn checks if NNN_TMPFILE is set) + # If NNN_TMPFILE is set to a custom path, it must be exported for nnn to + # see. To cd on quit only on ^G, remove the "-x" from both lines below, + # without changing the paths. + if test -n "$XDG_CONFIG_HOME" + set -x NNN_TMPFILE "$XDG_CONFIG_HOME/nnn/.lastd" + else + set -x NNN_TMPFILE "$HOME/.config/nnn/.lastd" + end + + # Unmask ^Q (, ^V etc.) (if required, see `stty -a`) to Quit nnn + # stty start undef + # stty stop undef + # stty lwrap undef + # stty lnext undef + + # The command function allows one to alias this function to `nnn` without + # making an infinitely recursive alias + command nnn $argv + + if test -e $NNN_TMPFILE + source $NNN_TMPFILE + rm $NNN_TMPFILE + end +end diff --git a/.zprofile b/.zprofile new file mode 100644 index 0000000..fed5738 --- /dev/null +++ b/.zprofile @@ -0,0 +1 @@ +source ~/.zshrc diff --git a/.zrc b/.zrc deleted file mode 100755 index 5856f5c..0000000 --- a/.zrc +++ /dev/null @@ -1,17 +0,0 @@ -#!/usr/bin/env bash - -[[ -r /usr/share/z/z.sh ]] && source /usr/share/z/z.sh -[[ -r /usr/local/etc/profile.d/z.sh ]] && source /usr/local/etc/profile.d/z.sh - -[ ! -f /usr/share/z/z.sh -a ! -f /usr/local/etc/profile.d/z.sh ] && return - -if command -v fzf &> /dev/null; then - unalias j 2> /dev/null - - j () { - [ $# -gt 0 ] && _z "$*" && return - cd "$(_z -l 2>&1 | fzf --height 40% --nth 2.. --reverse --inline-info +s --tac --query "${*##-* }" | sed 's/^[0-9,.]* *//')" - } -else - export _Z_CMD='j' -fi diff --git a/.zshrc b/.zshrc index 3f523a5..378d28f 100644 --- a/.zshrc +++ b/.zshrc @@ -22,12 +22,13 @@ source $HOME/.path source $HOME/.env source $HOME/.aliases source $HOME/.functions -[ -r "$HOME/.zrc" ] && source "$HOME/.zrc" [ -r $HOME/.zplugrc ] && source $HOME/.zplugrc [ -r $HOME/.nnnrc ] && source $HOME/.nnnrc [ -r $HOME/.fzfrc ] && source $HOME/.fzfrc +command -v zoxide > /dev/null && eval "$(zoxide init --cmd j zsh)" + if command -v direnv &> /dev/null; then eval "$(direnv hook zsh)" fi @@ -38,3 +39,7 @@ fi [[ $(uname) == Darwin ]] && [ -r $HOME/.macos ] && source $HOME/.macos [ -r $HOME/.zsh_local ] && source $HOME/.zsh_local + +if command -v fish > /dev/null; then + exec fish +fi diff --git a/scripts/bootstrap.sh b/scripts/bootstrap.sh index 383ce78..915dda6 100755 --- a/scripts/bootstrap.sh +++ b/scripts/bootstrap.sh @@ -24,7 +24,8 @@ link_all () { .config/i3 .config/polybar .xinitrc .pam_environment \ .zprofile .newsboat .ledgerrc .nnnrc .alacritty.yml .fzfrc .zplugrc \ .env .zrc .config/kitty .wezterm.lua .config/mpv \ - .config/sway .config/swaylock .config/zathura .tigrc .config/foot + .config/sway .config/swaylock .config/zathura .tigrc .config/foot \ + .config/fish } main () { -- cgit v1.2.3