169 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			169 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
# environment variables
 | 
						||
 | 
						||
## system
 | 
						||
BROWSER=firefox; export BROWSER
 | 
						||
CC=cc; export CC
 | 
						||
EDITOR=nvim; export EDITOR
 | 
						||
LD_LIBRARY_PATH="$HOME/.local/lib:$LD_LIBRARY_PATH"; export LD_LIBRARY_PATH
 | 
						||
PAGER=less; export PAGER
 | 
						||
PATH="$HOME/.local/bin:$HOME/.local/games:$PATH"; export PATH
 | 
						||
 | 
						||
## XDG
 | 
						||
XDG_CACHE_HOME="$HOME/.var/cache"; export XDG_CACHE_HOME
 | 
						||
XDG_CONFIG_HOME="$HOME/.local/etc"; export XDG_CONFIG_HOME
 | 
						||
XDG_DATA_HOME="$HOME/.local/share"; export XDG_DATA_HOME
 | 
						||
XDG_STATE_HOME="$HOME/.local/state"; export XDG_STATE_HOME
 | 
						||
 | 
						||
XDG_DESKTOP_DIR="$HOME/desktop"; export XDG_DESKTOP_DIR
 | 
						||
XDG_DOCUMENTS_DIR="$HOME/documents"; export XDG_DOCUMENTS_DIR
 | 
						||
XDG_DOWNLOAD_DIR="$HOME/downloads"; export XDG_DOWNLOAD_DIR
 | 
						||
XDG_MUSIC_DIR="$HOME/music"; export XDG_MUSIC_DIR
 | 
						||
XDG_PICTURES_DIR="$HOME/pictures"; export XDG_PICTURES_DIR
 | 
						||
XDG_PUBLICSHARE_DIR="$HOME/public"; export XDG_PUBLICSHARE_DIR
 | 
						||
XDG_SCREENSHOTS_DIR="$XDG_PICTURES_DIR/screenshots"; export XDG_SCREENSHOTS_DIR
 | 
						||
XDG_TEMPLATES_DIR="$HOME/templates"; export XDG_TEMPLATES_DIR
 | 
						||
XDG_VIDEOS_DIR="$HOME/videos"; export XDG_VIDEOS_DIR
 | 
						||
 | 
						||
## programming environment
 | 
						||
CARGO_HOME="$XDG_DATA_HOME/cargo"; export CARGO_HOME
 | 
						||
GOPATH="$XDG_DATA_HOME/go"; export GOPATH
 | 
						||
RUSTUP_HOME="$XDG_DATA_HOME/rustup"; export RUSTUP_HOME
 | 
						||
 | 
						||
CMAKE_EXE_LINKER_FLAGS="-fuse-ld=mold"; export CMAKE_EXE_LINKER_FLAGS
 | 
						||
CMAKE_MODULE_LINKER_FLAGS="-fuse-ld=mold"; export CMAKE_MODULE_LINKER_FLAGS
 | 
						||
CMAKE_SHARED_LINKER_FLAGS="-fuse-ld=mold"; export CMAKE_SHARED_LINKER_FLAGS
 | 
						||
CMAKE_STATIC_LINKER_FLAGS="-fuse-ld=mold"; export CMAKE_STATIC_LINKER_FLAGS
 | 
						||
 | 
						||
## misc
 | 
						||
LIBVA_DRIVER_NAME=radeonsi; export LIBVA_DRIVER_NAME
 | 
						||
MOZ_ENABLE_WAYLAND=1; export MOZ_ENABLE_WAYLAND
 | 
						||
QT_QPA_PLATFORM=wayland; export QT_QPA_PLATFORM
 | 
						||
QT_QPA_PLATFORMTHEME=qt5ct; export QT_QPA_PLATFORMTHEME
 | 
						||
GTK_IM_MODULE=ibus
 | 
						||
QT_IM_MODULE=ibus
 | 
						||
 | 
						||
# functions
 | 
						||
bmv() {
 | 
						||
	if test -z "$1"; then
 | 
						||
		printf "Usage: %s [files pattern]...\n" "$0" 1>&2
 | 
						||
		return 64 # sysexits.h(3) EX_USAGE
 | 
						||
	fi
 | 
						||
 | 
						||
	while test -n "$2"; do
 | 
						||
		for file in $1; do
 | 
						||
			mv "$file" "$(printf "%s" "$file" | sed "s/\$2//g")"
 | 
						||
		done
 | 
						||
 | 
						||
		shift 2
 | 
						||
	done
 | 
						||
}
 | 
						||
 | 
						||
paclean() {
 | 
						||
	for package in `pacman -Qtq`; do
 | 
						||
		pacman -Qi "$package"
 | 
						||
 | 
						||
		printf "Uninstall? [y/N] "
 | 
						||
		read resp
 | 
						||
 | 
						||
		# TODO: Add undo
 | 
						||
		if [ "$resp" != "y" ] && [ "$resp" != "Y" ]; then
 | 
						||
			printf "Skipped %s.\n\n" "$package" 1>&2
 | 
						||
		else
 | 
						||
			printf "Queued %s for uninstall.\n\n" "$package" 1>&2
 | 
						||
			packages="$packages$package "
 | 
						||
		fi
 | 
						||
	done
 | 
						||
	su -c "pacman -Rns $packages"
 | 
						||
}
 | 
						||
 | 
						||
myip() {
 | 
						||
	curl icanhazip.com
 | 
						||
}
 | 
						||
 | 
						||
sc() {
 | 
						||
	if test -z "$1"; then
 | 
						||
		printf "Usage: %s URI...\n" "$0" 1>&2
 | 
						||
		return 64 # sysexits.h(3) EX_USAGE
 | 
						||
	fi
 | 
						||
 | 
						||
	while "$1"; do
 | 
						||
		scdl --original-name --debug -l "$1" >> log 2>&1
 | 
						||
	done
 | 
						||
}
 | 
						||
 | 
						||
yt() {
 | 
						||
	if test -z "$1"; then
 | 
						||
		printf "Usage: %s URI...\n" "$0" 1>&2
 | 
						||
		return 64 # sysexits.h(3) EX_USAGE
 | 
						||
	fi
 | 
						||
 | 
						||
	while "$1"; do
 | 
						||
		yt-dlp -vx --split-chapters -o \
 | 
						||
			"chapter:%(fulltitle)s - %(section_number)s %(section_title)s.%(ext)s" \
 | 
						||
			"$1" --audio-quality 0 >> log 2>&1
 | 
						||
		shift
 | 
						||
	done
 | 
						||
}
 | 
						||
 | 
						||
# aliases
 | 
						||
alias weather="curl 'wttr.in/?0'"
 | 
						||
alias vi="busybox vi"
 | 
						||
 | 
						||
# zsh configuration settings
 | 
						||
case "$SHELL" in
 | 
						||
	/bin/sh || */dash )
 | 
						||
		set -o vi
 | 
						||
		PS1='$ '
 | 
						||
		;;
 | 
						||
 | 
						||
	*/zsh )
 | 
						||
		HISTFILE="$XDG_DATA_HOME/zsh/histfile"
 | 
						||
		HISTSIZE=999999999
 | 
						||
		SAVEHIST="$HISTSIZE"
 | 
						||
 | 
						||
		unsetopt autocd
 | 
						||
		bindkey -v
 | 
						||
		zstyle :compinstall filename "$HOME/.zshrc"
 | 
						||
		autoload -Uz compinit
 | 
						||
		compinit -u -d "$XDG_CACHE_HOME/zsh/zcompdump"
 | 
						||
		setopt rmstarsilent
 | 
						||
 | 
						||
		# Key (zshmisc(1)):
 | 
						||
		#
 | 
						||
		# '%F{$color}$x%f': Change foreground color of $x to $color
 | 
						||
		# '%B$x%b': Make $x bold
 | 
						||
		# '%n': $USER
 | 
						||
		# '%M': $HOST
 | 
						||
		# '%1~': $PWD, but shows '~' if at $HOME
 | 
						||
		# '%(?.#.%?)':
 | 
						||
		# '%n(x.true.false)' evaluates ternary expression for condition x, where n
 | 
						||
		# is an integer, by default '0':
 | 
						||
		# '?': If the last command’s exit status was 0, true
 | 
						||
		# '#': Prints literal '#' to the prompt
 | 
						||
		# '[%?]': Prints the last exit status with literal brackets surrounding it
 | 
						||
 | 
						||
		ERR='[%f%F{green}%?%f%F{blue}]%f'
 | 
						||
		ERR_LINE="%(?.#.$ERR)"
 | 
						||
 | 
						||
		LINE1='%F{blue}╭%f %B%F{blue}%n%f@%F{magenta}%M%f%b'
 | 
						||
		LINE2='%F{blue}│%f %F{green}%B%0~%b%f'
 | 
						||
		LINE3="%F{blue}╰─$ERR_LINE%f "
 | 
						||
 | 
						||
		PS1="$(printf "%s\n%s\n%s" "$LINE1" "$LINE2" "$LINE3")"; export PS1
 | 
						||
 | 
						||
		plugindir="/usr/share/zsh/plugins"
 | 
						||
		for plugin in \
 | 
						||
			"$plugindir/zsh-autosuggestions/zsh-autosuggestions.zsh" \
 | 
						||
			"$plugindir/fast-syntax-highlighting/fast-syntax-highlighting.plugin.zsh" \
 | 
						||
			"$plugindir/zsh-history-substring-search/zsh-history-substring-search.zsh"
 | 
						||
		do
 | 
						||
			source "$plugin"
 | 
						||
		done
 | 
						||
 | 
						||
		bindkey -a 'k' history-substring-search-up
 | 
						||
		bindkey -a 'j' history-substring-search-down
 | 
						||
 | 
						||
		alias which="$HOME/.local/bin/which"
 | 
						||
		;;
 | 
						||
esac
 |