From 3eaf30494fe5828ce984327345c5d3369931360b Mon Sep 17 00:00:00 2001 From: whiteman808 Date: Sat, 21 Feb 2026 06:02:35 +0100 Subject: [PATCH] [profiles/base] modify zsh config --- profiles/base/.zsh/conf.d/00-base.zsh | 15 ++- .../base/.zsh/conf.d/01-vi-keybindings.zsh | 32 +++---- profiles/base/.zsh/conf.d/02-prompt.zsh | 26 +++--- profiles/base/.zsh/conf.d/03-plugins.zsh | 2 +- profiles/base/.zsh/conf.d/04-emacs.zsh | 3 +- profiles/base/.zsh/conf.d/05-env.zsh | 2 +- profiles/base/.zsh/conf.d/06-color-output.zsh | 16 ++-- .../base/.zsh/conf.d/07-tool-integrations.zsh | 91 ++++++++++--------- profiles/base/.zsh/conf.d/08-aliases.zsh | 6 +- profiles/base/.zsh/conf.d/09-functions.zsh | 46 +++++----- profiles/base/.zshrc | 2 +- 11 files changed, 127 insertions(+), 114 deletions(-) diff --git a/profiles/base/.zsh/conf.d/00-base.zsh b/profiles/base/.zsh/conf.d/00-base.zsh index 23935e9..fb703f4 100644 --- a/profiles/base/.zsh/conf.d/00-base.zsh +++ b/profiles/base/.zsh/conf.d/00-base.zsh @@ -1,11 +1,18 @@ # Set PATH environment variable typeset -U path PATH -path=("${HOME}/.local/bin" /usr/local/sbin /usr/local/bin /usr/sbin /sbin "${path[@]}") +path=( + "${HOME}/.local/bin" + "/usr/local/sbin" + "/usr/local/bin" + "/usr/sbin" + "/sbin" + "${path[@]}" +) export PATH # Configure shell history behavior -HISTFILE=${HOME}/.zsh_history -HISTSIZE=10000 -SAVEHIST=10000 +HISTFILE="${HOME}/.zsh_history" +HISTSIZE="10000" +SAVEHIST="10000" setopt appendhistory setopt HIST_IGNORE_SPACE diff --git a/profiles/base/.zsh/conf.d/01-vi-keybindings.zsh b/profiles/base/.zsh/conf.d/01-vi-keybindings.zsh index 55e5367..d6d7752 100644 --- a/profiles/base/.zsh/conf.d/01-vi-keybindings.zsh +++ b/profiles/base/.zsh/conf.d/01-vi-keybindings.zsh @@ -1,6 +1,6 @@ # Enable vi keybindings bindkey -v -export KEYTIMEOUT=1 +export KEYTIMEOUT="1" autoload -z edit-command-line zle -N edit-command-line bindkey '^e' edit-command-line @@ -13,24 +13,24 @@ bindkey '^U' backward-kill-line # Change cursor shape for different vi modes zle-keymap-select() { - if [[ ${KEYMAP} == vicmd ]] || - [[ $1 == block ]]; then - echo -ne '\e[2 q' - psvar[1]="(cmd) " - elif [[ ${KEYMAP} == main ]] || - [[ ${KEYMAP} == viins ]] || - [[ -z ${KEYMAP} ]] || - [[ $1 == beam ]]; then - echo -ne '\e[6 q' - psvar[1]="(ins) " - fi - zle reset-prompt + if [[ "${KEYMAP}" == "vicmd" ]] || + [[ "$1" == "block" ]]; then + echo -ne '\e[2 q' + psvar[1]="(cmd) " + elif [[ "${KEYMAP}" == "main" ]] || + [[ "${KEYMAP}" == "viins" ]] || + [[ -z "${KEYMAP}" ]] || + [[ "$1" == "beam" ]]; then + echo -ne '\e[6 q' + psvar[1]="(ins) " + fi + zle reset-prompt } 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[6 q' - psvar[1]="(ins) " + zle -K viins # Initiate `vi insert` as keymap (can be removed if `bindkey -V` has been set elsewhere) + echo -ne '\e[6 q' + psvar[1]="(ins) " } zle -N zle-line-init echo -ne '\e[6 q' # Use beam shape cursor on startup diff --git a/profiles/base/.zsh/conf.d/02-prompt.zsh b/profiles/base/.zsh/conf.d/02-prompt.zsh index 59686f3..612b914 100644 --- a/profiles/base/.zsh/conf.d/02-prompt.zsh +++ b/profiles/base/.zsh/conf.d/02-prompt.zsh @@ -1,19 +1,19 @@ -if [[ -z ${TMUX} ]]; then - export REAL_TERM=${TERM} +if [[ -z "${TMUX}" ]]; then + export REAL_TERM="${TERM}" fi -if [[ ${REAL_TERM} != "linux" ]]; then - # To customize prompt, run `p10k configure` or edit ~/.zsh/prompt/p10k.zsh. - . "${HOME}/.zsh/plugins/powerlevel10k/powerlevel10k.zsh-theme" +if [[ "${REAL_TERM}" != "linux" ]]; then + # To customize prompt, run `p10k configure` or edit ~/.zsh/prompt/p10k.zsh. + . "${HOME}/.zsh/plugins/powerlevel10k/powerlevel10k.zsh-theme" - # Enable Powerlevel10k instant prompt. Should stay close to the top of ~/.zshrc. - # Initialization code that may require console input (password prompts, [y/n] - # confirmations, etc.) must go above this block; everything else may go below. - if [[ -r "${XDG_CACHE_HOME:-${HOME}/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then - . "${XDG_CACHE_HOME:-${HOME}/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" - fi + # Enable Powerlevel10k instant prompt. Should stay close to the top of ~/.zshrc. + # Initialization code that may require console input (password prompts, [y/n] + # confirmations, etc.) must go above this block; everything else may go below. + if [[ -r "${XDG_CACHE_HOME:-${HOME}/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then + . "${XDG_CACHE_HOME:-${HOME}/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" + fi - [[ -f ${HOME}/.zsh/prompt/p10k.zsh ]] && . "${HOME}/.zsh/prompt/p10k.zsh" + [[ -f "${HOME}/.zsh/prompt/p10k.zsh" ]] && . "${HOME}/.zsh/prompt/p10k.zsh" else - . "${HOME}/.zsh/prompt/fallback.zsh" + . "${HOME}/.zsh/prompt/fallback.zsh" fi diff --git a/profiles/base/.zsh/conf.d/03-plugins.zsh b/profiles/base/.zsh/conf.d/03-plugins.zsh index 3b9bf09..5b0dd60 100644 --- a/profiles/base/.zsh/conf.d/03-plugins.zsh +++ b/profiles/base/.zsh/conf.d/03-plugins.zsh @@ -8,7 +8,7 @@ fpath=("${HOME}/.zsh/plugins/zsh-completions/src" "${fpath[@]}") autoload -U compinit promptinit compinit promptinit -[[ -f /etc/gentoo-release ]] && prompt gentoo +[[ -f "/etc/gentoo-release" ]] && prompt gentoo # Enable cache for completions zstyle ":completion::complete:*" use-cache 1 diff --git a/profiles/base/.zsh/conf.d/04-emacs.zsh b/profiles/base/.zsh/conf.d/04-emacs.zsh index a9f1118..c0b93f1 100644 --- a/profiles/base/.zsh/conf.d/04-emacs.zsh +++ b/profiles/base/.zsh/conf.d/04-emacs.zsh @@ -1,2 +1,3 @@ # emacs specific stuff -[[ ${EAT_SHELL_INTEGRATION_DIR} ]] && . "${EAT_SHELL_INTEGRATION_DIR}/zsh" +[[ -n "${EAT_SHELL_INTEGRATION_DIR}" ]] && + . "${EAT_SHELL_INTEGRATION_DIR}/zsh" diff --git a/profiles/base/.zsh/conf.d/05-env.zsh b/profiles/base/.zsh/conf.d/05-env.zsh index 91a4ebb..75723fb 100644 --- a/profiles/base/.zsh/conf.d/05-env.zsh +++ b/profiles/base/.zsh/conf.d/05-env.zsh @@ -22,5 +22,5 @@ export GPGKEY="4A45503BBE575E3D4DAF28E27264AFFDC98D52BB" # gpg-agent unset SSH_AGENT_PID if [[ "${gnupg_SSH_AUTH_SOCK_by:-0}" -ne $$ ]]; then - export SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-ssh-socket 2>/dev/null) + export SSH_AUTH_SOCK="$(gpgconf --list-dirs agent-ssh-socket 2>/dev/null)" fi diff --git a/profiles/base/.zsh/conf.d/06-color-output.zsh b/profiles/base/.zsh/conf.d/06-color-output.zsh index 0cd2317..18f397c 100644 --- a/profiles/base/.zsh/conf.d/06-color-output.zsh +++ b/profiles/base/.zsh/conf.d/06-color-output.zsh @@ -8,15 +8,15 @@ export LESS='-R --use-color -Dd+r$Du+b$' zmodload zsh/zpty pty() { - zpty pty-${UID} ${1+$@} - if [[ ! -t 1 ]]; then - setopt local_traps - trap '' INT - fi - zpty -r pty-${UID} - zpty -d pty-${UID} + zpty pty-${UID} ${1+$@} + if [[ ! -t 1 ]]; then + setopt local_traps + trap '' INT + fi + zpty -r pty-${UID} + zpty -d pty-${UID} } ptyless() { - pty "$@" | less + pty "$@" | less } diff --git a/profiles/base/.zsh/conf.d/07-tool-integrations.zsh b/profiles/base/.zsh/conf.d/07-tool-integrations.zsh index f2a5734..d8bc7c9 100644 --- a/profiles/base/.zsh/conf.d/07-tool-integrations.zsh +++ b/profiles/base/.zsh/conf.d/07-tool-integrations.zsh @@ -1,81 +1,84 @@ # HSTR configuration - add this to ~/.zshrc if command -v hstr >/dev/null 2>&1; then - alias hh=hstr # hh to be alias for hstr - setopt histignorespace # skip cmds w/ leading space from history - export HSTR_CONFIG=hicolor # get more colors - hstr_no_tiocsti() { - zle -I - { HSTR_OUT="$( { &1 1>&3 3>&- )"; } 3>&1; - BUFFER=${HSTR_OUT} - CURSOR=${#BUFFER} - zle redisplay - } - zle -N hstr_no_tiocsti - bindkey '\C-r' hstr_no_tiocsti - export HSTR_TIOCSTI=n + alias hh="hstr" # hh to be alias for hstr + setopt histignorespace # skip cmds w/ leading space from history + export HSTR_CONFIG="hicolor" # get more colors + hstr_no_tiocsti() { + zle -I + { HSTR_OUT="$( { &1 1>&3 3>&- )"; } 3>&1; + BUFFER="${HSTR_OUT}" + CURSOR="${#BUFFER}" + zle redisplay + } + zle -N hstr_no_tiocsti + bindkey '\C-r' hstr_no_tiocsti + export HSTR_TIOCSTI=n else - bindkey '\C-r' history-incremental-search-backward + bindkey '\C-r' history-incremental-search-backward fi # better ls if command -v eza >/dev/null 2>&1; then - alias ll="eza -bghHlS" + alias ll="eza -bghHlS" else - alias ll="exa -bghHlS" + alias ll="exa -bghHlS" fi # bat (debian) if command -v batcat >/dev/null 2>&1; then - alias bat=batcat + alias bat=batcat fi # ranger ranger_cd() { - temp_file=$(mktemp -t "ranger_cd.XXXXXXXXXX") - ranger --choosedir="${temp_file}" -- "${@:-${PWD}}" - if chosen_dir=$(cat -- "${temp_file}") && [ -n ${chosen_dir} ] && [ ${chosen_dir} != "${PWD}" ]; then - cd -- "${chosen_dir}" - fi - rm -f -- "${temp_file}" + temp_file=$(mktemp -t "ranger_cd.XXXXXXXXXX") + ranger --choosedir="${temp_file}" -- "${@:-${PWD}}" + if chosen_dir=$(cat -- "${temp_file}") && + [ -n "${chosen_dir}" ] && + [ "${chosen_dir}" != "${PWD}" ]; then + cd -- "${chosen_dir}" + fi + rm -f -- "${temp_file}" } -alias ranger=ranger_cd +alias ranger="ranger_cd" # mc -if [[ -f /usr/libexec/mc/mc.sh ]]; then - . /usr/libexec/mc/mc.sh -fi +[[ -f "/usr/libexec/mc/mc.sh" ]] && . "/usr/libexec/mc/mc.sh" +[[ -f "/usr/lib/mc/mc.sh" ]] && . "/usr/lib/mc/mc.sh" # nix package manager -if [[ -e "${HOME}/.nix-profile/etc/profile.d/nix.sh" ]]; then - . "${HOME}/.nix-profile/etc/profile.d/nix.sh" -fi +[[ -e "${HOME}/.nix-profile/etc/profile.d/nix.sh" ]] && + . "${HOME}/.nix-profile/etc/profile.d/nix.sh" # nix shell if command -v nix-your-shell >/dev/null 2>&1; then - nix-your-shell zsh | . /dev/stdin + nix-your-shell zsh | . /dev/stdin fi # node.js export NVM_DIR="${HOME}/.nvm" -[[ -s ${NVM_DIR}/nvm.sh ]] && . "${NVM_DIR}/nvm.sh" # This loads nvm -[[ -s ${NVM_DIR}/bash_completion ]] && . "${NVM_DIR}/bash_completion" # This loads nvm bash_completion +[[ -s "${NVM_DIR}/nvm.sh" ]] && + . "${NVM_DIR}/nvm.sh" # This loads nvm +[[ -s "${NVM_DIR}/bash_completion" ]] && + . "${NVM_DIR}/bash_completion" # This loads nvm bash_completion # rvm -[[ -s ${HOME}/.rvm/scripts/rvm ]] && . "${HOME}/.rvm/scripts/rvm" +[[ -s "${HOME}/.rvm/scripts/rvm" ]] && . "${HOME}/.rvm/scripts/rvm" # pyenv -export PYENV_ROOT=${HOME}/.pyenv -if [[ -d ${PYENV_ROOT}/bin ]]; then - path=("${PYENV_ROOT}/bin" "${path[@]}") - export PATH - eval "$(pyenv init - zsh)" - eval "$(pyenv virtualenv-init -)" +export PYENV_ROOT="${HOME}/.pyenv" +if [[ -d "${PYENV_ROOT}/bin" ]]; then + path=("${PYENV_ROOT}/bin" "${path[@]}") + export PATH + eval "$(pyenv init - zsh)" + eval "$(pyenv virtualenv-init -)" fi # inside tmux, we don't know if Sway got restarted if [[ -v TMUX ]]; then - swaymsg() { - export SWAYSOCK="${XDG_RUNTIME_DIR}/sway-ipc.${UID}.$(pgrep -x sway).sock" - command swaymsg "$@" - } + swaymsg() { + SWAYSOCK="${XDG_RUNTIME_DIR}/sway-ipc.${UID}.$(pgrep -x sway).sock" + export SWAYSOCK + command swaymsg "$@" + } fi diff --git a/profiles/base/.zsh/conf.d/08-aliases.zsh b/profiles/base/.zsh/conf.d/08-aliases.zsh index 03a304c..ec4e972 100644 --- a/profiles/base/.zsh/conf.d/08-aliases.zsh +++ b/profiles/base/.zsh/conf.d/08-aliases.zsh @@ -6,12 +6,14 @@ alias tq="tmuxinator start quake" alias sudo="sudo " alias rsync_copy="rsync -aAXUHvh --partial-dir=.rsync-partial --progress" alias rsync_copy_ssh="rsync_copy -e ssh" -alias rsync_backup="rsync_copy --numeric-ids --delete --exclude={'/dev/*','/proc/*','/sys/*','/tmp/*','/run/*','/mnt/*','/media/*','/lost+found'}" +alias rsync_backup="rsync_copy --numeric-ids --delete --exclude={'/dev/*', \ + '/proc/*','/sys/*','/tmp/*','/run/*','/mnt/*','/media/*','/lost+found'}" alias rsync_backup_ssh="rsync_backup -e ssh" alias rsync_restore="rsync_copy --numeric-ids --delete --exclude='lost+found'" alias rsync_restore_ssh="rsync_restore -e ssh" alias glog="git log --oneline" alias emerge_world="emerge --ask --verbose --deep --newuse --update @world" -alias sync_repo="rsync_copy_ssh --delete ~/arch_paczuchy/* vps.paraboletancza.org:/srv/http/repo.paraboletancza.org/arch" +alias sync_repo="rsync_copy_ssh --delete ~/arch_paczuchy/* \ + vps.paraboletancza.org:/srv/http/repo.paraboletancza.org/arch" alias aur_sync="aur sync --sign --chroot" alias aur_build="aur build --sign --chroot" diff --git a/profiles/base/.zsh/conf.d/09-functions.zsh b/profiles/base/.zsh/conf.d/09-functions.zsh index 0708b93..7338a54 100644 --- a/profiles/base/.zsh/conf.d/09-functions.zsh +++ b/profiles/base/.zsh/conf.d/09-functions.zsh @@ -1,35 +1,35 @@ take() { - local -r directory=$1 - mkdir -p "${directory}" - cd "${directory}" + local -r directory="$1" + mkdir -p "${directory}" + cd "${directory}" || exit 1 } # downloading from youtube yt-dlp() { - local -a -r args=( - --cookies-from-browser "chromium:${HOME}/.local/share/qutebrowser" - --extractor-args "youtube:player_client=default,web_safari;player_js_version=actual" - --fragment-retries infinite - ) - command yt-dlp "${args[@]}" "$@" + local -a -r args=( + --cookies-from-browser "chromium:${HOME}/.local/share/qutebrowser" + --extractor-args "youtube:player_client=default,web_safari;player_js_version=actual" + --fragment-retries infinite + ) + command yt-dlp "${args[@]}" "$@" } yt_dl_mp3() { - yt-dlp -t mp3 --embed-thumbnail "$@" + yt-dlp -t mp3 --embed-thumbnail "$@" } yt_dl_channel() { - local -a -r args=( - --download-archive "archive.txt" - --output "%(upload_date)s.%(title)s.%(id)s.%(ext)s" - --merge-output-format mkv - --ignore-errors - --write-sub - --sub-langs "en,pl" - --cookies-from-browser "chromium:${HOME}/.local/share/qutebrowser" - --write-description - --write-info-json - --write-thumbnail - ) - yt-dlp "${args[@]}" "$@" + local -a -r args=( + --download-archive "archive.txt" + --output "%(upload_date)s.%(title)s.%(id)s.%(ext)s" + --merge-output-format mkv + --ignore-errors + --write-sub + --sub-langs "en,pl" + --cookies-from-browser "chromium:${HOME}/.local/share/qutebrowser" + --write-description + --write-info-json + --write-thumbnail + ) + yt-dlp "${args[@]}" "$@" } diff --git a/profiles/base/.zshrc b/profiles/base/.zshrc index 0093eae..eb02ccf 100644 --- a/profiles/base/.zshrc +++ b/profiles/base/.zshrc @@ -1,4 +1,4 @@ # load zsh configuration for file in "${HOME}/.zsh/conf.d/"*.zsh(N); do - source "${file}" + source "${file}" done