From 4192eb836c0b70f1f1a6359c3ce3c206e02fd720 Mon Sep 17 00:00:00 2001 From: whiteman808 Date: Sat, 21 Feb 2026 06:02:21 +0100 Subject: [PATCH] [profiles/base] modify bash config --- profiles/base/.bash/conf.d/03-emacs.bash | 3 +- profiles/base/.bash/conf.d/04-env.bash | 8 +-- .../.bash/conf.d/06-tool-integrations.bash | 59 ++++++++++--------- profiles/base/.bash/conf.d/07-aliases.bash | 6 +- profiles/base/.bash/conf.d/08-functions.bash | 35 ++++++++++- profiles/base/.bashrc | 13 ++-- 6 files changed, 82 insertions(+), 42 deletions(-) diff --git a/profiles/base/.bash/conf.d/03-emacs.bash b/profiles/base/.bash/conf.d/03-emacs.bash index 35f9677..36b600f 100644 --- a/profiles/base/.bash/conf.d/03-emacs.bash +++ b/profiles/base/.bash/conf.d/03-emacs.bash @@ -1,4 +1,5 @@ # emacs specific stuff # shellcheck source=/dev/null -[[ ${EAT_SHELL_INTEGRATION_DIR} ]] && . "${EAT_SHELL_INTEGRATION_DIR}/bash" +[[ -n "${EAT_SHELL_INTEGRATION_DIR}" ]] && + . "${EAT_SHELL_INTEGRATION_DIR}/bash" diff --git a/profiles/base/.bash/conf.d/04-env.bash b/profiles/base/.bash/conf.d/04-env.bash index 0d47173..a78c69a 100644 --- a/profiles/base/.bash/conf.d/04-env.bash +++ b/profiles/base/.bash/conf.d/04-env.bash @@ -1,8 +1,8 @@ # Set environment variables if command -v nvim >/dev/null 2>&1; then - export EDITOR="nvim" + export EDITOR="nvim" else - export EDITOR="vim" + export EDITOR="vim" fi # export EDITOR="ec" export VISUAL="${EDITOR}" @@ -22,6 +22,6 @@ export GPGKEY="4A45503BBE575E3D4DAF28E27264AFFDC98D52BB" # gpg-agent unset SSH_AGENT_PID if [[ "${gnupg_SSH_AUTH_SOCK_by:-0}" -ne "$$" ]]; then - SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-ssh-socket 2>/dev/null) - export SSH_AUTH_SOCK + SSH_AUTH_SOCK="$(gpgconf --list-dirs agent-ssh-socket 2>/dev/null)" + export SSH_AUTH_SOCK fi diff --git a/profiles/base/.bash/conf.d/06-tool-integrations.bash b/profiles/base/.bash/conf.d/06-tool-integrations.bash index 026da22..524e352 100644 --- a/profiles/base/.bash/conf.d/06-tool-integrations.bash +++ b/profiles/base/.bash/conf.d/06-tool-integrations.bash @@ -1,54 +1,59 @@ # 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 # HSTR configuration - add this to ~/.bashrc -alias hh=hstr # hh to be alias for hstr -export HSTR_CONFIG=hicolor # get more colors -shopt -s histappend # append new history items to .bash_history -export HISTCONTROL=ignorespace # leading space hides commands from history -export HISTFILESIZE=10000 # increase history file size (default is 500) -export HISTSIZE=${HISTFILESIZE} # increase history size (default is 500) +alias hh="hstr" # hh to be alias for hstr +export HSTR_CONFIG="hicolor" # get more colors +shopt -s histappend # append new history items to .bash_history +export HISTCONTROL="ignorespace" # leading space hides commands from history +export HISTFILESIZE="10000" # increase history file size (default is 500) +export HISTSIZE="${HISTFILESIZE}" # increase history size (default is 500) # ensure synchronization between bash memory and history file export PROMPT_COMMAND=("history -a; history -n;" "${PROMPT_COMMAND[@]}") function hstrnotiocsti { - { READLINE_LINE="$( { &1 1>&3 3>&- )"; } 3>&1; - READLINE_POINT=${#READLINE_LINE} + { READLINE_LINE="$({ &1 1>&3 3>&-)"; } 3>&1 + READLINE_POINT="${#READLINE_LINE}" } # if this is interactive shell, then bind hstr to Ctrl-r (for Vi mode check doc) -if [[ $- =~ .*i.* ]]; then bind -x '"\C-r": "hstrnotiocsti"'; fi -export HSTR_TIOCSTI=n +if [[ $- =~ .*i.* ]]; then + bind -x '"\C-r": "hstrnotiocsti"' +fi +export HSTR_TIOCSTI="n" # ranger ranger_cd() { - temp_file=$(mktemp -t "ranger_cd.XXXXXXXXXX") - ranger --choosedir="${temp_file}" -- "${@:-${PWD}}" - if chosen_dir="$(cat -- "${temp_file}")" && [[ "${chosen_dir}" ]] && [[ "${chosen_dir}" != "${PWD}" ]]; then - cd -- "${chosen_dir}" || exit 1 - 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}" || exit 1 + fi + rm -f -- "${temp_file}" } -alias ranger=ranger_cd +alias ranger="ranger_cd" # mc # shellcheck source=/dev/null -[[ -f /usr/libexec/mc/mc.sh ]] && . /usr/libexec/mc/mc.sh -[[ -f /usr/lib/mc/mc.sh ]] && . /usr/lib/mc/mc.sh +[[ -f "/usr/libexec/mc/mc.sh" ]] && . "/usr/libexec/mc/mc.sh" +[[ -f "/usr/lib/mc/mc.sh" ]] && . "/usr/lib/mc/mc.sh" # inside tmux, we don't know if Sway got restarted if [[ -v TMUX ]]; then - swaymsg() { - SWAYSOCK=${XDG_RUNTIME_DIR}/sway-ipc.${UID}.$(pgrep -x sway).sock - export SWAYSOCK - command swaymsg "$@" - } + swaymsg() { + SWAYSOCK="${XDG_RUNTIME_DIR}/sway-ipc.${UID}.$(pgrep -x sway).sock" + export SWAYSOCK + command swaymsg "$@" + } fi diff --git a/profiles/base/.bash/conf.d/07-aliases.bash b/profiles/base/.bash/conf.d/07-aliases.bash index 80633a1..c1dce78 100644 --- a/profiles/base/.bash/conf.d/07-aliases.bash +++ b/profiles/base/.bash/conf.d/07-aliases.bash @@ -7,12 +7,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/arch.paraboletancza.org" +alias sync_repo="rsync_copy_ssh --delete ~/arch_paczuchy/* \ + vps.paraboletancza.org:/srv/http/arch.paraboletancza.org" alias aur_sync="aur sync --sign --chroot" alias aur_build="aur build --sign --chroot" diff --git a/profiles/base/.bash/conf.d/08-functions.bash b/profiles/base/.bash/conf.d/08-functions.bash index f0524c4..7338a54 100644 --- a/profiles/base/.bash/conf.d/08-functions.bash +++ b/profiles/base/.bash/conf.d/08-functions.bash @@ -1,4 +1,35 @@ take() { - mkdir -p "$1" - cd "$1" || exit 1 + 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[@]}" "$@" +} + +yt_dl_mp3() { + 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[@]}" "$@" } diff --git a/profiles/base/.bashrc b/profiles/base/.bashrc index 221ed4c..df2a9b5 100644 --- a/profiles/base/.bashrc +++ b/profiles/base/.bashrc @@ -3,12 +3,13 @@ # # load bash configuration -readonly CONF_DIR="${HOME}/.bash/conf.d" +CONF_DIR="${HOME}/.bash/conf.d" +readonly CONF_DIR if [[ -d "${CONF_DIR}" ]]; then - for conf_file in "${CONF_DIR}"/*.bash; do - [[ -r "${conf_file}" ]] || continue - # shellcheck source=/dev/null - source "${conf_file}" - done + for conf_file in "${CONF_DIR}"/*.bash; do + [[ -r "${conf_file}" ]] || continue + # shellcheck source=/dev/null + source "${conf_file}" + done fi