add zsh config
This commit is contained in:
parent
a7643fa46f
commit
adca9c494a
66
home/default/.config/shell/aliasrc
Normal file
66
home/default/.config/shell/aliasrc
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# Use neovim for vim if present.
|
||||||
|
[ -x "$(command -v nvim)" ] && alias vim="nvim" vimdiff="nvim -d"
|
||||||
|
|
||||||
|
# Use $XINITRC variable if file exists.
|
||||||
|
[ -f "$XINITRC" ] && alias startx="startx $XINITRC"
|
||||||
|
|
||||||
|
# sudo not required for some system commands
|
||||||
|
for command in mount umount sv pacman updatedb su shutdown poweroff reboot ; do
|
||||||
|
alias $command="sudo $command"
|
||||||
|
done; unset command
|
||||||
|
|
||||||
|
se() { cd ~/.local/bin; $EDITOR $(fzf) ;}
|
||||||
|
|
||||||
|
# Verbosity and settings that you pretty much just always are going to want.
|
||||||
|
alias \
|
||||||
|
cp="cp -iv" \
|
||||||
|
mv="mv -iv" \
|
||||||
|
rm="rm -vI" \
|
||||||
|
bc="bc -ql" \
|
||||||
|
pg="ps -aux | grep --color=auto" \
|
||||||
|
mkd="mkdir -pv" \
|
||||||
|
ffmpeg="ffmpeg -hide_banner"
|
||||||
|
wedit(){
|
||||||
|
which $@ >/dev/null 2>&1 && [ -n "$1" ] && vim $(which $@) && exit 0
|
||||||
|
printf "file doesn't exist.\n"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Colorize commands when possible.
|
||||||
|
alias \
|
||||||
|
ls="ls -hN --color=auto --group-directories-first" \
|
||||||
|
grep="grep --color=auto" \
|
||||||
|
diff="diff --color=auto" \
|
||||||
|
ccat="highlight --out-format=ansi" \
|
||||||
|
ip="ip -color=auto"
|
||||||
|
|
||||||
|
# These common commands are just too long! Abbreviate them.
|
||||||
|
alias \
|
||||||
|
ka="killall" \
|
||||||
|
g="git" \
|
||||||
|
sdn="shutdown -h now" \
|
||||||
|
e="$EDITOR" \
|
||||||
|
v="nvim" \
|
||||||
|
z="zathura" \
|
||||||
|
i="nsxiv -a"
|
||||||
|
|
||||||
|
alias \
|
||||||
|
magit="nvim -c MagitOnly" \
|
||||||
|
ref="shortcuts >/dev/null; source ${XDG_CONFIG_HOME:-$HOME/.config}/shell/shortcutrc ; source ${XDG_CONFIG_HOME:-$HOME/.config}/shell/zshnameddirrc" \
|
||||||
|
weath="curl wttr.in"
|
||||||
|
|
||||||
|
# misc
|
||||||
|
alias \
|
||||||
|
ytmus="yt-dlp --embed-metadata --embed-thumbnail -xc -f bestaudio/best --restrict-filenames" \
|
||||||
|
ytvid="yt-dlp --embed-metadata --embed-thumbnail --embed-chapters --write-auto-subs -f bestvideo'[height<=1080]''[ext=mp4]'+bestaudio'[ext=m4a]'/best'[ext=mp4]'/best" \
|
||||||
|
t="todo.sh -t -d $HOME/notebook/todo/todo.cfg" \
|
||||||
|
fj="firejail --profile=$HOME/.config/firejail/game.profile" \
|
||||||
|
dj="dijo"
|
||||||
|
|
||||||
|
# ytfzf
|
||||||
|
alias \
|
||||||
|
ytfzf="ytfzf --thumb-viewer=imv" \
|
||||||
|
ytfzf-video="ytfzf --detach -t" \
|
||||||
|
ytfzf-audio="ytfzf -m" \
|
||||||
|
ytfzf-history="ytfzf --detach -H"
|
14
home/default/.config/shell/bm-dirs
Normal file
14
home/default/.config/shell/bm-dirs
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
# You can add comments to these files with #
|
||||||
|
cac ${XDG_CACHE_HOME:-$HOME/.cache}
|
||||||
|
cf ${XDG_CONFIG_HOME:-$HOME/.config}
|
||||||
|
D ${XDG_DOWNLOAD_DIR:-$HOME/Downloads}
|
||||||
|
d ${XDG_DOCUMENTS_DIR:-$HOME/Documents}
|
||||||
|
dt ${XDG_DATA_HOME:-$HOME/.local/share}
|
||||||
|
rr $HOME/.local/src
|
||||||
|
h $HOME
|
||||||
|
m ${XDG_MUSIC_DIR:-$HOME/Music}
|
||||||
|
mn /mnt
|
||||||
|
pp ${XDG_PICTURES_DIR:-$HOME/Pictures}
|
||||||
|
sc $HOME/.local/bin
|
||||||
|
src $HOME/.local/src
|
||||||
|
vv ${XDG_VIDEOS_DIR:-$HOME/Videos}
|
20
home/default/.config/shell/bm-files
Normal file
20
home/default/.config/shell/bm-files
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
# keys filename description
|
||||||
|
bf ${XDG_CONFIG_HOME:-$HOME/.config}/shell/bm-files # This file, a list of bookmarked files
|
||||||
|
bd ${XDG_CONFIG_HOME:-$HOME/.config}/shell/bm-dirs # A list of bookmarked directories similar to this file
|
||||||
|
cfx ${XDG_CONFIG_HOME:-$HOME/.config}/x11/xresources # Colors, themes and variables for X11
|
||||||
|
cfs ${XDG_CONFIG_HOME:-$HOME/.config}/sway/config
|
||||||
|
cfb ${XDG_CONFIG_HOME:-$HOME/.config}/waybar/config
|
||||||
|
cfB ${XDG_CONFIG_HOME:-$HOME/.config}/waybar/style.css
|
||||||
|
|
||||||
|
cfv ${XDG_CONFIG_HOME:-$HOME/.config}/nvim/init.vim # vim/neovim config
|
||||||
|
cfz $ZDOTDIR/.zshrc # zsh (shell) config
|
||||||
|
cfa ${XDG_CONFIG_HOME:-$HOME/.config}/shell/aliasrc # aliases used by zsh (and potentially other shells)
|
||||||
|
cfp ${XDG_CONFIG_HOME:-$HOME/.config}/shell/profile # profile file for login settings for zsh
|
||||||
|
cfm ${XDG_CONFIG_HOME:-$HOME/.config}/mutt/muttrc # mutt (email client) config
|
||||||
|
cfn ${XDG_CONFIG_HOME:-$HOME/.config}/newsboat/config # newsboat (RSS reader)
|
||||||
|
cfu ${XDG_CONFIG_HOME:-$HOME/.config}/newsboat/urls # RSS urls for newsboat
|
||||||
|
cfmb ${XDG_CONFIG_HOME:-$HOME/.config}/ncmpcpp/bindings # ncmpcpp (music player) keybinds file
|
||||||
|
cfmc ${XDG_CONFIG_HOME:-$HOME/.config}/ncmpcpp/config # ncmpcpp (music player) config
|
||||||
|
cfl ${XDG_CONFIG_HOME:-$HOME/.config}/lf/lfrc # lf (file browser) config
|
||||||
|
cfL ${XDG_CONFIG_HOME:-$HOME/.config}/lf/scope # lf's scope/preview file
|
||||||
|
cfX ${XDG_CONFIG_HOME:-$HOME/.config}/nsxiv/exec/key-handler # sxiv (image viewer) key/script handler
|
19
home/default/.config/shell/inputrc
Normal file
19
home/default/.config/shell/inputrc
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
$include /etc/inputrc
|
||||||
|
set editing-mode vi
|
||||||
|
$if mode=vi
|
||||||
|
|
||||||
|
set show-mode-in-prompt on
|
||||||
|
set vi-ins-mode-string \1\e[6 q\2
|
||||||
|
set vi-cmd-mode-string \1\e[2 q\2
|
||||||
|
|
||||||
|
set keymap vi-command
|
||||||
|
# these are for vi-command mode
|
||||||
|
Control-l: clear-screen
|
||||||
|
Control-a: beginning-of-line
|
||||||
|
|
||||||
|
set keymap vi-insert
|
||||||
|
# these are for vi-insert mode
|
||||||
|
Control-l: clear-screen
|
||||||
|
Control-a: beginning-of-line
|
||||||
|
|
||||||
|
$endif
|
85
home/default/.config/shell/profile
Normal file
85
home/default/.config/shell/profile
Normal file
@ -0,0 +1,85 @@
|
|||||||
|
#!/bin/zsh
|
||||||
|
|
||||||
|
# profile file. Runs on login. Environmental variables are set here.
|
||||||
|
|
||||||
|
# If you don't plan on reverting to bash, you can remove the link in ~/.profile
|
||||||
|
# to clean up.
|
||||||
|
|
||||||
|
# paths
|
||||||
|
export PATH="$PATH:$HOME/.local/bin"
|
||||||
|
export PATH="$PATH:/var/lib/flatpak/exports/bin"
|
||||||
|
export PATH="$PATH:$HOME/.local/share/go/bin"
|
||||||
|
export PATH="$PATH:$HOME/.local/share/cargo/bin"
|
||||||
|
export PATH="$PATH:$HOME/.emacs.d/bin"
|
||||||
|
unsetopt PROMPT_SP
|
||||||
|
|
||||||
|
# Default programs:
|
||||||
|
export EDITOR="nvim"
|
||||||
|
export TERMINAL="foot"
|
||||||
|
export BROWSER="librewolf"
|
||||||
|
|
||||||
|
# ~/ Clean-up:
|
||||||
|
export XDG_CONFIG_HOME="$HOME/.config"
|
||||||
|
export XDG_DATA_HOME="$HOME/.local/share"
|
||||||
|
export XDG_CACHE_HOME="$HOME/.cache"
|
||||||
|
export XINITRC="${XDG_CONFIG_HOME:-$HOME/.config}/x11/xinitrc"
|
||||||
|
#export XAUTHORITY="$XDG_RUNTIME_DIR/Xauthority" # This line will break some DMs.
|
||||||
|
export NOTMUCH_CONFIG="${XDG_CONFIG_HOME:-$HOME/.config}/notmuch-config"
|
||||||
|
export GTK2_RC_FILES="${XDG_CONFIG_HOME:-$HOME/.config}/gtk-2.0/gtkrc-2.0"
|
||||||
|
export LESSHISTFILE="-"
|
||||||
|
export WGETRC="${XDG_CONFIG_HOME:-$HOME/.config}/wget/wgetrc"
|
||||||
|
export INPUTRC="${XDG_CONFIG_HOME:-$HOME/.config}/shell/inputrc"
|
||||||
|
export ZDOTDIR="${XDG_CONFIG_HOME:-$HOME/.config}/zsh"
|
||||||
|
#export ALSA_CONFIG_PATH="$XDG_CONFIG_HOME/alsa/asoundrc"
|
||||||
|
#export GNUPGHOME="${XDG_DATA_HOME:-$HOME/.local/share}/gnupg"
|
||||||
|
export WINEPREFIX="${XDG_DATA_HOME:-$HOME/.local/share}/wineprefixes/default"
|
||||||
|
export KODI_DATA="${XDG_DATA_HOME:-$HOME/.local/share}/kodi"
|
||||||
|
export PASSWORD_STORE_DIR="${XDG_DATA_HOME:-$HOME/.local/share}/password-store"
|
||||||
|
export TMUX_TMPDIR="$XDG_RUNTIME_DIR"
|
||||||
|
export ANDROID_SDK_HOME="${XDG_CONFIG_HOME:-$HOME/.config}/android"
|
||||||
|
export CARGO_HOME="${XDG_DATA_HOME:-$HOME/.local/share}/cargo"
|
||||||
|
export GOPATH="${XDG_DATA_HOME:-$HOME/.local/share}/go"
|
||||||
|
export ANSIBLE_CONFIG="${XDG_CONFIG_HOME:-$HOME/.config}/ansible/ansible.cfg"
|
||||||
|
export UNISON="${XDG_DATA_HOME:-$HOME/.local/share}/unison"
|
||||||
|
export HISTFILE="${XDG_DATA_HOME:-$HOME/.local/share}/history"
|
||||||
|
export WEECHAT_HOME="${XDG_CONFIG_HOME:-$HOME/.config}/weechat"
|
||||||
|
export MBSYNCRC="${XDG_CONFIG_HOME:-$HOME/.config}/mbsync/config"
|
||||||
|
export ELECTRUMDIR="${XDG_DATA_HOME:-$HOME/.local/share}/electrum"
|
||||||
|
|
||||||
|
# Other program settings:
|
||||||
|
export DICS="/usr/share/stardict/dic/"
|
||||||
|
export SUDO_ASKPASS="$HOME/.local/bin/dmenupass"
|
||||||
|
export FZF_DEFAULT_OPTS="--layout=reverse --height 40%"
|
||||||
|
export LESS=-R
|
||||||
|
export LESS_TERMCAP_mb="$(printf '%b' '[1;31m')"
|
||||||
|
export LESS_TERMCAP_md="$(printf '%b' '[1;36m')"
|
||||||
|
export LESS_TERMCAP_me="$(printf '%b' '[0m')"
|
||||||
|
export LESS_TERMCAP_so="$(printf '%b' '[01;44;33m')"
|
||||||
|
export LESS_TERMCAP_se="$(printf '%b' '[0m')"
|
||||||
|
export LESS_TERMCAP_us="$(printf '%b' '[1;32m')"
|
||||||
|
export LESS_TERMCAP_ue="$(printf '%b' '[0m')"
|
||||||
|
export LESSOPEN="| /usr/bin/highlight -O ansi %s 2>/dev/null"
|
||||||
|
export QT_QPA_PLATFORMTHEME="gtk2" # Have QT use gtk2 theme.
|
||||||
|
export MOZ_USE_XINPUT2="1" # Mozilla smooth scrolling/touchpads.
|
||||||
|
export AWT_TOOLKIT="MToolkit wmname LG3D" #May have to install wmname
|
||||||
|
export _JAVA_AWT_WM_NONREPARENTING=1 # Fix for Java applications in dwm
|
||||||
|
export GTK_IM_MODULE=fcitx
|
||||||
|
export QT_IM_MODULE=fcitx
|
||||||
|
export XMODIFIERS=@im=fcitx
|
||||||
|
export SDL_IM_MODULE=fcitx
|
||||||
|
export GLFW_IM_MODULE=ibus
|
||||||
|
|
||||||
|
#wayland
|
||||||
|
#export QT_QPA_PLATFORM=wayland
|
||||||
|
#export XDG_CURRENT_DESKTOP=river
|
||||||
|
#export XDG_SESSION_DESKTOP=river
|
||||||
|
#export XDG_CURRENT_SESSION_TYPE=wayland
|
||||||
|
#export GDK_BACKEND="wayland,x11"
|
||||||
|
#export MOZ_ENABLE_WAYLAND=1
|
||||||
|
|
||||||
|
|
||||||
|
[ ! -f ${XDG_CONFIG_HOME:-$HOME/.config}/shell/shortcutrc ] && setsid shortcuts >/dev/null 2>&1
|
||||||
|
|
||||||
|
if [ -z $DISPLAY ] && [ "$(tty)" = "/dev/tty1" ]; then
|
||||||
|
exec /usr/bin/sway
|
||||||
|
fi
|
98
home/default/.config/zsh/.zshrc
Normal file
98
home/default/.config/zsh/.zshrc
Normal file
@ -0,0 +1,98 @@
|
|||||||
|
# zsh
|
||||||
|
|
||||||
|
# Enable colors and change prompt:
|
||||||
|
autoload -U colors && colors # Load colors
|
||||||
|
#PS1="%B%{$fg[red]%}[%{$fg[yellow]%}%n%{$fg[green]%}@%{$fg[blue]%}%M %{$fg[magenta]%}%~%{$fg[red]%}]%{$reset_color%}$%b "
|
||||||
|
#PS1="[%n@%M %~]$ "
|
||||||
|
#PS1=" %~ $ "
|
||||||
|
PS1=" %{$fg[magenta]%}%~%{$fg[red]%} %{$reset_color%}λ%b " # minimal
|
||||||
|
setopt autocd # Automatically cd into typed directory.
|
||||||
|
stty stop undef # Disable ctrl-s to freeze terminal.
|
||||||
|
setopt interactive_comments
|
||||||
|
|
||||||
|
# History in cache directory:
|
||||||
|
HISTSIZE=10000000
|
||||||
|
SAVEHIST=10000000
|
||||||
|
HISTFILE="${XDG_CACHE_HOME:-$HOME/.cache}/zsh/history"
|
||||||
|
|
||||||
|
# Load aliases and shortcuts if existent.
|
||||||
|
[ -f "${XDG_CONFIG_HOME:-$HOME/.config}/shell/shortcutrc" ] && source "${XDG_CONFIG_HOME:-$HOME/.config}/shell/shortcutrc"
|
||||||
|
[ -f "${XDG_CONFIG_HOME:-$HOME/.config}/shell/aliasrc" ] && source "${XDG_CONFIG_HOME:-$HOME/.config}/shell/aliasrc"
|
||||||
|
[ -f "${XDG_CONFIG_HOME:-$HOME/.config}/shell/zshnameddirrc" ] && source "${XDG_CONFIG_HOME:-$HOME/.config}/shell/zshnameddirrc"
|
||||||
|
|
||||||
|
# Basic auto/tab complete:
|
||||||
|
autoload -U compinit
|
||||||
|
zstyle ':completion:*' menu select
|
||||||
|
zmodload zsh/complist
|
||||||
|
compinit
|
||||||
|
_comp_options+=(globdots) # Include hidden files.
|
||||||
|
|
||||||
|
# vi mode
|
||||||
|
bindkey -v
|
||||||
|
export KEYTIMEOUT=1
|
||||||
|
|
||||||
|
# use vim keys in tab complete menu:
|
||||||
|
bindkey -M menuselect 'h' vi-backward-char
|
||||||
|
bindkey -M menuselect 'k' vi-up-line-or-history
|
||||||
|
bindkey -M menuselect 'l' vi-forward-char
|
||||||
|
bindkey -M menuselect 'j' vi-down-line-or-history
|
||||||
|
bindkey -v '^?' backward-delete-char
|
||||||
|
|
||||||
|
# change cursor shape for different vi modes.
|
||||||
|
function zle-keymap-select () {
|
||||||
|
case $KEYMAP in
|
||||||
|
vicmd) echo -ne '\e[1 q';; # block
|
||||||
|
viins|main) echo -ne '\e[5 q';; # beam
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
zle -N zle-keymap-select
|
||||||
|
zle-line-init() {
|
||||||
|
zle -K viins # initiate `vi insert` as keymap (can be removed if `bindkey -V` has been set elsewhere)
|
||||||
|
echo -ne "\e[5 q"
|
||||||
|
}
|
||||||
|
zle -N zle-line-init
|
||||||
|
echo -ne '\e[5 q' # Use beam shape cursor on startup.
|
||||||
|
preexec() { echo -ne '\e[5 q' ;} # Use beam shape cursor for each new prompt.
|
||||||
|
|
||||||
|
# use lf to switch directories and bind it to ctrl-o
|
||||||
|
lfcd () {
|
||||||
|
tmp="$(mktemp -uq)"
|
||||||
|
trap 'rm -f $tmp >/dev/null 2>&1 && trap - HUP INT QUIT TERM PWR EXIT' HUP INT QUIT TERM PWR EXIT
|
||||||
|
lf -last-dir-path="$tmp" "$@"
|
||||||
|
if [ -f "$tmp" ]; then
|
||||||
|
dir="$(cat "$tmp")"
|
||||||
|
[ -d "$dir" ] && [ "$dir" != "$(pwd)" ] && cd "$dir"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
bindkey -s '^o' '^ulfcd\n'
|
||||||
|
|
||||||
|
bindkey -s '^a' '^ubc -lq\n'
|
||||||
|
|
||||||
|
bindkey -s '^f' '^ucd "$(dirname "$(fzf)")"\n'
|
||||||
|
|
||||||
|
bindkey '^[[P' delete-char
|
||||||
|
|
||||||
|
# edit line in vim with ctrl-e:
|
||||||
|
autoload edit-command-line; zle -N edit-command-line
|
||||||
|
bindkey '^e' edit-command-line
|
||||||
|
bindkey -M vicmd '^[[P' vi-delete-char
|
||||||
|
bindkey -M vicmd '^e' edit-command-line
|
||||||
|
bindkey -M visual '^[[P' vi-delete
|
||||||
|
|
||||||
|
# ctrl + shift + n in the same directory in foot
|
||||||
|
function osc7 {
|
||||||
|
local LC_ALL=C
|
||||||
|
export LC_ALL
|
||||||
|
|
||||||
|
setopt localoptions extendedglob
|
||||||
|
input=( ${(s::)PWD} )
|
||||||
|
uri=${(j::)input/(#b)([^A-Za-z0-9_.\!~*\'\(\)-\/])/%${(l:2::0:)$(([##16]#match))}}
|
||||||
|
print -n "\e]7;file://${HOSTNAME}${uri}\e\\"
|
||||||
|
}
|
||||||
|
autoload -Uz add-zsh-hook
|
||||||
|
add-zsh-hook -Uz chpwd osc7
|
||||||
|
|
||||||
|
[ ! -f ${XDG_CONFIG_HOME:-$HOME/.config}/shell/shortcutrc ] && setsid shortcuts >/dev/null 2>&1
|
||||||
|
|
||||||
|
# Load syntax highlighting; should be last.
|
||||||
|
source /usr/share/zsh/plugins/fast-syntax-highlighting/fast-syntax-highlighting.plugin.zsh 2>/dev/null
|
1
home/default/.zprofile
Symbolic link
1
home/default/.zprofile
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
.config/shell/profile
|
Loading…
Reference in New Issue
Block a user