add zsh config and started personal conf system

This commit is contained in:
Jakub 2024-07-23 01:31:13 -04:00
parent 413701af78
commit 0855df7610
13 changed files with 2077 additions and 0 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
user/.config/zsh/personal/*

9
.gitmodules vendored
View File

@ -1,3 +1,12 @@
[submodule "source-software/dwm"]
path = source-software/dwm
url = https://git.jakubb.xyz/jakub/dwm
[submodule "user/.local/share/zsh/plugins/zsh-autosuggestions"]
path = user/.local/share/zsh/plugins/zsh-autosuggestions
url = https://github.com/zsh-users/zsh-autosuggestions
[submodule "user/.local/share/zsh/plugins/zsh-syntax-highlighting"]
path = user/.local/share/zsh/plugins/zsh-syntax-highlighting
url = https://github.com/zsh-users/zsh-syntax-highlighting
[submodule "user/.local/share/zsh/plugins/powerlevel10k"]
path = user/.local/share/zsh/plugins/powerlevel10k
url = https://github.com/romkatv/powerlevel10k

BIN
personal/archives/zsh.zip Normal file

Binary file not shown.

7
personal/pack.sh Normal file
View File

@ -0,0 +1,7 @@
#!/bin/sh
# zip and encrypt configs for git backup
dir="$PWD"
cd ../user/.config/zsh/personal
zip --encrypt ../../../../personal/archives/zsh.zip ./*
cd "$dir"

5
personal/unpack.sh Normal file
View File

@ -0,0 +1,5 @@
#!/bin/sh
# Unpack for normal install
unzip ./archives/zsh.zip -d ../user/.config/zsh/personal

1
root/etc/zsh/zshenv Normal file
View File

@ -0,0 +1 @@
export ZDOTDIR="$HOME/.config/zsh"

37
user/.config/zsh/.zshenv Normal file
View File

@ -0,0 +1,37 @@
# default programs
export EDITOR="nvim"
export TERMINAL="st"
# export BROWSER="firefox"
# xdg dirs
export XDG_DATA_HOME="$HOME/.local/share"
export XDG_CONFIG_HOME="$HOME/.config"
export XDG_STATE_HOME="$HOME/.local/state"
export XDG_CACHE_HOME="$HOME/.cache"
# cleaning .home
export CUDA_CACHE_PATH="$XDG_CACHE_HOME"/nv
export ANDROID_HOME="$XDG_DATA_HOME"/android
export GTK2_RC_FILES="$XDG_CONFIG_HOME"/gtk-2.0/gtkrc
export GNUPGHOME="$XDG_DATA_HOME"/gnupg
export LESSHISTFILE="$XDG_CACHE_HOME"/less/history
export XAUTHORITY="$XDG_RUNTIME_DIR"/Xauthority
export PASSWORD_STORE_DIR="$HOME"/pass
export WINEPREFIX="$XDG_DATA_HOME"/wine
export XINITRC="$XDG_CONFIG_HOME"/X11/xinitrc
export _JAVA_OPTIONS=-Djava.util.prefs.userRoot="$XDG_CONFIG_HOME"/java
export HISTFILE="${XDG_STATE_HOME}"/bash/history
# Set program to get sudo password for mounting drives
export SUDO_ASKPASS="$HOME/.local/bin/dmenu-askpass"
# path
export PATH=~/.local/bin/:$PATH
# themeing
export QT_QPA_PLATFORMTHEME="qt5ct"
alias mbsync="mbsync -c $XDG_CONFIG_HOME/isync/mbsyncrc"
[ -f "${XDG_CONFIG_HOME:-$HOME/.config}/zsh/personal/zshenv" ] && \
source "${XDG_CONFIG_HOME:-$HOME/.config}/zsh/personal/zshenv"

80
user/.config/zsh/.zshrc Normal file
View File

@ -0,0 +1,80 @@
# vars used for config
zsh_cache="${XDG_CACHE_HOME:-$HOME/.cache}/zsh"
[ -d "$zsh_cache" ] || mkdir -p "$zsh_cache"
zsh_config="${XDG_CONFIG_HOME:-$HOME/.config}/zsh"
[ -d "$zsh_config" ] || mkdir -p "$zsh_config"
zsh_plugins="${XDF_DATA_HOME:-$HOME/.local/share}/zsh/plugins"
[ -d "$zsh_plugins" ] || mkdir -p "$zsh_plugins"
# enable Powerlevel10k instant prompt - should stay close to the top
if [[ -r "$zsh_cache/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then
source "$zsh_cache/p10k-instant-prompt-${(%):-%n}.zsh"
fi
# basic options
setopt autocd
setopt interactive_comments
unsetopt beep
stty stop undef
autoload -U colors && colors
PS1="%B%{$fg[blue]%}%n%{$fg[cyan]%}@%{$fg[blue]%}%M %{$fg[cyan]%}%~ >%{$reset_color%} "
# history
HISTFILE=$zsh_cache/hist
HISTSIZE=10000000000
SAVEHIST=1000000
# tab complete
autoload -Uz compinit
zstyle ':completion:*' menu select
zmodload zsh/complist
compinit -d "$zsh_cache/zcompdump"
_comp_options+=(globdots) # include hidden files.
# use vim keybinds
bindkey -v
export KEYTIMEOUT=1
# vim keys in completion 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
bindkey '^[[P' 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.
# 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
# Load aliases
source "$zsh_config/alias"
# source plugin configs
source "$zsh_config/p10k.zsh"
# source plugins
[ "$TERM" != 'linux' ] && source "$zsh_plugins/powerlevel10k/powerlevel10k.zsh-theme"
source "$zsh_plugins/zsh-autosuggestions/zsh-autosuggestions.zsh"
source "$zsh_plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh"
neofetch

173
user/.config/zsh/alias Normal file
View File

@ -0,0 +1,173 @@
# configure some coreutils
alias ls='ls -AhN --color=always --group-directories-first' \
rm='rm -r' \
mv='mv -i' \
cp='cp -i' \
mkdir='mkdir -p'
# cd up dirs
alias ...='cd ../..' \
....='cd ../../..' \
.....='cd ../../../..' \
......='cd ../../../../..' \
.......='cd ../../../../../..' \
........='cd ../../../../../../..' \
.........='cd ../../../../../../../..' \
..........='cd ../../../../../../../../..' \
...........='cd ../../../../../../../../../..'
# shortucts
## programs
alias music='ncmpcpp' \
e="$EDITOR" \
f='lf' \ e="$EDITOR" \
nw="$TERMINAL 2> /dev/null & disown" \
copy="xclip -selection clipboard" \
dl='curl -LO' \
drdr="dragon-drop -a -x"
## git
alias ga='git add' \
gA='git add -A' \
gch='git checkout' \
gC='git clone' \
gc='git commit' \
gca='git commit --amend' \
gd='git diff' \
gl='git log' \
gp='git push' \
gP='git pull' \
gprs='git pull --recurse-submodules'\
gr='git reset' \
gR='git reset --hard' \
gS='git status'
gnr () {
[ -z $1 ] && {
echo 'Please enter a repo name'
return 1
}
git init
git remote add origin 'gitea@git.jakubb.xyz:jakub/'"$1"'.git'
git add -A
git commit -m "init"
git push -u origin -o repo.private=false master
}
gnpr () {
[ -z $1 ] && {
echo 'Please enter a repo name'
return 1
}
git init
git remote add origin 'gitea@git.jakubb.xyz:jakub/'"$1"'.git'
git add -A
git commit -m "init"
git push -u origin -o repo.private=true master
}
gnhr () {
[ -z $1 ] && {
echo 'Please enter a repo name'
return 1
}
git init
git remote add origin 'gitea@git.jakubb.xyz:34mdh/'"$1"'.git'
git add -A
git commit -m "init"
git push -u origin -o repo.private=false master
}
gnphr () {
[ -z $1 ] && {
echo 'Please enter a repo name'
return 1
}
git init
git remote add origin 'gitea@git.jakubb.xyz:34mdh/'"$1"'.git'
git add -A
git commit -m "init"
git push -u origin -o repo.private=true master
}
## make
alias mk='make' \
mkc='make clean' \
smi='sudo make install ' \
smic='sudo make install clean'
## clean up after patch
alias pc="rm *.orig; rm -i *.rej"
# updating
update-zsh-plugins() {
for dir in "${XDF_DATA_HOME:-$HOME/.local/share}/zsh/plugins"/*; do
git -C "$dir" pull
done
kill -42 "$( pidof dwmblocks )"
}
update-nvim-plugins() {
nvim --headless -c 'PackerSync'
kill -42 "$( pidof dwmblocks )"
}
update-all() {
update-zsh-plugins
#update-nvim-plugins
yay
}
alias upsh='update-zsh-plugins' \
upn='update-nvim-plugins' \
upa='update-all'
# quit shortcuts
alias ZZ='exit' \
ZQ='exit' \
q='exit' \
qw='exit' \
# use lf to cd
lf() {
export LF_CD_FILE=/var/tmp/.lfcd-$$
command lf-run $@
if [ -s "$LF_CD_FILE" ]; then
local DIR="$(realpath "$(cat "$LF_CD_FILE")")"
if [ "$DIR" != "$PWD" ]; then
cd "$DIR"
fi
rm "$LF_CD_FILE"
fi
unset LF_CD_FILE
}
# long commands
srch() {
if [ -z "$1" ]; then
echo 'Please enter a search pattern'
return 1
else
find -name '*'"$1"'*'
fi
}
alias rspw='systemctl restart --user pipewire-pulse.socket pipewire-pulse.service pipewire.socket pipewire.service' \
rfa="source ${XDG_CONFIG_HOME:-$HOME/.config}/zsh/alias" \
ushp='update-zsh-plugins' \
unp='update-nvim-plugins'
generate_password() {
if [ "$1" = '-s' ]; then
tr -dc 'A-Za-z0-9' </dev/urandom | head -c "$1" ; echo
else
tr -dc 'A-Za-z0-9!"#$%&'\''()*+,-./:;<=>?@[\]^_`{|}~' </dev/urandom | head -c "$1" ; echo
fi
}
alias hsn='hugo server --noHTTPCache'
# source personal aliases
[ -f "${XDG_CONFIG_HOME:-$HOME/.config}/zsh/personal/alias" ] && \
source "${XDG_CONFIG_HOME:-$HOME/.config}/zsh/personal/alias"

1761
user/.config/zsh/p10k.zsh Normal file

File diff suppressed because it is too large Load Diff

@ -0,0 +1 @@
Subproject commit 2b7da93df04acd04d84f5de827e5b14077839a4b

@ -0,0 +1 @@
Subproject commit c3d4e576c9c86eac62884bd47c01f6faed043fc5

@ -0,0 +1 @@
Subproject commit e0165eaa730dd0fa321a6a6de74f092fe87630b0