diff options
Diffstat (limited to '.config/zsh')
| -rw-r--r-- | .config/zsh/.zshrc | 53 | ||||
| -rw-r--r-- | .config/zsh/alias.zsh | 63 | ||||
| -rw-r--r-- | .config/zsh/plugins.zsh | 2 |
3 files changed, 79 insertions, 39 deletions
diff --git a/.config/zsh/.zshrc b/.config/zsh/.zshrc index 4f09b46..34806c3 100644 --- a/.config/zsh/.zshrc +++ b/.config/zsh/.zshrc @@ -75,10 +75,20 @@ bindkey "^e" edit-command-line autoload -U add-zsh-hook eza_after_cd() { - eza -l --icons --color=always --group-directories-first --no-permissions --no-user --no-time --no-filesize + eza -l --color=always --group-directories-first --no-permissions --no-user --no-time --no-filesize } add-zsh-hook chpwd eza_after_cd +_fzf_comprun() { + local command=$1 + shift + + case "$command" in + cd) fzf "$@" --preview 'tree -C {} | head -200' ;; + *) fzf "$@" ;; + esac +} + autoload -Uz url-quote-magic zle -N self-insert url-quote-magic autoload -Uz bracketed-paste-magic @@ -88,10 +98,10 @@ zle -N bracketed-paste bracketed-paste-magic [ -f "$ZDOTDIR"/plugins.zsh ] && source "$ZDOTDIR"/plugins.zsh [ -f "$XDG_PACKAGE_HOME"/fzf/shell/completion.zsh ] && source "$XDG_PACKAGE_HOME"/fzf/shell/completion.zsh [ -f "$XDG_PACKAGE_HOME"/fzf/shell/key-bindings.zsh ] && source "$XDG_PACKAGE_HOME"/fzf/shell/key-bindings.zsh -[ -f "$XDG_CONFIG_HOME"/lf/icons ] && { - LF_ICONS="$(tr '\n' ':' <"$XDG_CONFIG_HOME"/lf/icons)" \ - && export LF_ICONS -} +# [ -f "$XDG_CONFIG_HOME"/lf/icons ] && { +# LF_ICONS="$(tr '\n' ':' <"$XDG_CONFIG_HOME"/lf/icons)" \ +# && export LF_ICONS +# } globalias() { if [[ $LBUFFER =~ ^[a-z0-9]+$ ]]; then @@ -113,7 +123,38 @@ lfcd () { [ -d "$dir" ] && [ "$dir" != "$(pwd)" ] && cd "$dir" fi } -bindkey -s '^o' '^ulfcd\n' + +nnncd () +{ + # Block nesting of nnn in subshells + [ "${NNNLVL:-0}" -eq 0 ] || { + echo "nnn is already running" + return + } + + # 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 "export" and make sure not to + # use a custom path, i.e. set NNN_TMPFILE *exactly* as follows: + # NNN_TMPFILE="${XDG_CONFIG_HOME:-$HOME/.config}/nnn/.lastd" + export NNN_TMPFILE="/tmp/nnn_lastd" + + # 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 builtin allows one to alias nnn to n, if desired, without + # making an infinitely recursive alias + command nnn "$@" + + [ ! -f "$NNN_TMPFILE" ] || { + . "$NNN_TMPFILE" + rm -f -- "$NNN_TMPFILE" > /dev/null + } +} +bindkey -s '^o' '^unnncd\n' bindkey -v "^ " globalias bindkey -v " " magic-space diff --git a/.config/zsh/alias.zsh b/.config/zsh/alias.zsh index 4cd4099..8be8ccd 100644 --- a/.config/zsh/alias.zsh +++ b/.config/zsh/alias.zsh @@ -11,12 +11,13 @@ # == ===== ==== == # ======================== -alias eza='eza --color=always --group-directories-first --icons' \ +alias eza='eza --color=always --group-directories-first' \ ls='eza -l' tree() { eza -T $@ | $PAGER } alias hff='cd ~/dev/go/hardflip' +alias kk='cd ~/dev/c/kirc' alias \ e='nvim' \ vim='nvim' \ @@ -46,28 +47,40 @@ alias \ rsync='rsync -v -h' \ grep='grep --color=always' \ rgrep='grep -R -n -H' \ - most='most -t4' \ fsl='fossil' \ diff='colordiff' \ xclip='xclip -selection clipboard' \ ctags='uctags "--exclude=.ccls*"' \ yt='pipe-viewer' \ yta='pipe-viewer -n' \ - gyt='gtk-pipe-viewer' \ ytdl='yt-dlp --add-metadata' \ ytdlist='yt-dlp -F' \ ytdl1080="yt-dlp --add-metadata -f '[height<=1080]'" \ - irssi='irssi --config="$XDG_CONFIG_HOME"/irssi/config --home="$XDG_DATA_HOME"/irssi' \ - irc='irssi' \ + irc='TERM=st-16color catgirl' \ free='freecolor' \ + n='nnn' \ + dl='nnn -T t $HOME/dl' \ gt='gpg-tui' \ - lg='lazygit' \ tf='terraform' \ gjdo="$HOME/dev/perl/gitjoe-scripts/gitjoe-do.pl" \ ddgit='git --git-dir=$HOME/docs/redot --work-tree=$HOME' \ dgit='git --git-dir=$HOME/docs/dotfiles-bsd --work-tree=$HOME' \ confgit='git --git-dir=$HOME/docs/conffiles-bsd --work-tree=/' \ git-pull-all='git branch -r | sed "1d;s,\x1B\[[0-9;]*[a-zA-Z],,g" | while read remote; do git branch --track "${remote#origin/}" "$remote"; git checkout "${remote#origin/}"; git pull; done' +b() { + oldpath="$(pwd)" + cd $HOME/.config/nnn/bookmarks + dir=$(fzf) + if [ -z "$dir" ]; then + cd "$oldpath" + return + fi + if ! cd "$dir"; then + cd "$oldpath" + return + fi + nnn +} bssh() { user='rbousset' host='bastion' @@ -87,10 +100,9 @@ bssh() { ssh $user@$host -t -- $* fi } -assh() { - user='admin' - host='bastion' - ssh $user@$host -- --osh $* +j() { + job=$(jobs -l | sed 's/ suspended //' | fzf --reverse --prompt='job > ') || return + [ -n "$job" ] && fg %$(awk '{print $1}' <<< "$job" | tr -d '[]') } upsrc() { doas git -C /usr/src pull --ff-only @@ -123,8 +135,12 @@ dgg() { } alias \ srcnt='find . -type f -name "*.c" -exec cat {} \; | sed "/^\//d" | sed "/^\*/d" | sed "/^ \*/d" | sed "/^\/\//d" | sed "/^$/d" | wc -l | tr -d " "' \ - v='nvim $(fzf --preview="head -$FZF_PREVIEW_LINES {}")' \ tohex='printf "0x%x\n"' +v() { + file=$(fzf --preview="head -$FZF_PREVIEW_LINES {}") + [ -z $file ] && return + nvim $file +} ebin() { p=$(pwd) cd "$HOME"/.local/bin || return @@ -158,24 +174,6 @@ de() { $VISUAL $sc cd $p } -eebin() { - file=$(find "$HOME"/.local/bin -type f | fzf) - [ $? -ne 0 ] && return - bsdsetsid emacsclient -c "$file" - kill -9 "$(ps -p $$ -oppid=)" -} -eeconf() { - file=$(find "$HOME"/.config -type f | fzf) - [ $? -ne 0 ] && return - bsdsetsid emacsclient -c "$file" - kill -9 "$(ps -p $$ -oppid=)" -} -ee() { - file=$(find . -type f | fzf) - [ $? -ne 0 ] && return - bsdsetsid emacsclient -c "$file" - kill -9 "$(ps -p $$ -oppid=)" -} pa() { if [ -d $HOME/.local/packs ] && cd $HOME/.local/packs || return 1 dir=$(\ls $HOME/.local/packs | fzf) @@ -211,6 +209,8 @@ twi() { alias mutt='neomutt' \ sxiv='nsxiv -b -a' \ nsxiv='nsxiv -b -a' \ + arduino-cli='arduino-cli --config-file $XDG_CONFIG_HOME/arduino-cli/arduino-cli.yaml' \ + ac='arduino-cli' \ pinfo='pkg info -x' \ psearch='pkg search' \ pinstall='doas pkg install' @@ -220,7 +220,7 @@ update() { yay ;; po-rbo) - doas apt update && doas apt dist-upgrade + doas apt update; doas apt dist-upgrade nix-channel --update nix-env -u # git -C $HOME/.local/packs/neovim checkout master @@ -250,8 +250,7 @@ hil() { search() { make -C /usr/ports search name=$1 | grep 'Path:'; } -alias watch='cmdwatch' \ - tsd='transmission-daemon' \ +alias tsd='transmission-daemon' \ tsm='transmission-remote' \ rsox='sox -t oss default' pstree() { diff --git a/.config/zsh/plugins.zsh b/.config/zsh/plugins.zsh index 9e13701..77bffa1 100644 --- a/.config/zsh/plugins.zsh +++ b/.config/zsh/plugins.zsh @@ -13,4 +13,4 @@ source $HOME/.local/packs/fast-syntax-highlighting/fast-syntax-highlighting.plugin.zsh >/dev/null source $HOME/.local/packs/zsh-autosuggestions/zsh-autosuggestions.plugin.zsh >/dev/null -[[ -r "/usr/share/z/z.sh" ]] && source /usr/share/z/z.sh +# [[ -r "/usr/share/z/z.sh" ]] && source /usr/share/z/z.sh |
