aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGuangxiong Lin <[email protected]>2023-11-15 00:47:36 +0800
committerGuangxiong Lin <[email protected]>2023-11-15 00:47:36 +0800
commit55c2d8e73db4e9e93cddcb981c15fb8fe9b1dcf4 (patch)
treee03567af41164a2086c834d5f63cca402263ce5c
parente98d273b32cf21f85b0d5d55a819b13ae3d296e7 (diff)
downloaddotfiles-55c2d8e73db4e9e93cddcb981c15fb8fe9b1dcf4.tar.gz
dotfiles-55c2d8e73db4e9e93cddcb981c15fb8fe9b1dcf4.tar.bz2
dotfiles-55c2d8e73db4e9e93cddcb981c15fb8fe9b1dcf4.zip
Remove z.sh and try zoxide and fish
-rw-r--r--.config/fish/config.fish16
-rw-r--r--.config/fish/fish_variables31
-rw-r--r--.config/fish/functions/init_fzf.fish11
-rw-r--r--.config/fish/functions/is_mac.fish4
-rw-r--r--.config/fish/functions/n.fish36
-rw-r--r--.zprofile1
-rwxr-xr-x.zrc17
-rw-r--r--.zshrc7
-rwxr-xr-xscripts/bootstrap.sh3
9 files changed, 107 insertions, 19 deletions
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 () {