summaryrefslogtreecommitdiffstats
path: root/.config/zsh
diff options
context:
space:
mode:
Diffstat (limited to '.config/zsh')
-rw-r--r--.config/zsh/.zshrc53
-rw-r--r--.config/zsh/alias.zsh63
-rw-r--r--.config/zsh/plugins.zsh2
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