110 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			110 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
#!/usr/bin/env bash
 | 
						|
 | 
						|
if [ "$TERM" == 'xterm-kitty' ]; then
 | 
						|
   alias ssh='kitty +kitten ssh'
 | 
						|
   alias diff='kitty +kitten diff'
 | 
						|
fi
 | 
						|
 | 
						|
DEFAULT_RSYNC='--info=ALL --recursive --delay-updates --human-readable --links --hard-links --perms'
 | 
						|
 | 
						|
alias l='ls -l -v --all --human-readable --classify --group-directories-first' # -lvahF --group-directories-first
 | 
						|
alias lt=='l --time-style=long-iso'
 | 
						|
alias r='reset'
 | 
						|
alias ..='cd ..'
 | 
						|
alias refresh_bashrc='. ~/.bashrc' # alternatively: 'source ~/.bashrc'
 | 
						|
alias rsync_default="rsync $DEFAULT_RSYNC --checksum"
 | 
						|
# source /usr/share/bash-completion/completions/rsync
 | 
						|
# complete -F _rsync rsync_default
 | 
						|
alias rsync_backup="rsync $DEFAULT_RSYNC --checksum --times --group --owner --delete"
 | 
						|
alias rsync_move="rsync $DEFAULT_RSYNC --checksum --remove-source-files"
 | 
						|
alias rsync_update="rsync $DEFAULT_RSYNC --update --times"
 | 
						|
alias rsync_copy="rsync $DEFAULT_RSYNC --ignore-times"
 | 
						|
alias off='systemctl poweroff'
 | 
						|
alias nnn='nnn -dHrR'
 | 
						|
alias nn='n -dHrR'
 | 
						|
alias c='clear'
 | 
						|
alias sort_dirs_by_size='du --block-size=1K --human-readable --max-depth=1 | sort --human-numeric-sort --reverse' # 'du -kh --max-depth=1 | sort -hr'
 | 
						|
alias sd='sudo ' # alias, so sudo can use aliases: "If the last character of the alias value is a blank, then the next command word following the alias is also checked for alias expansion."
 | 
						|
alias mountdrive='udisksctl mount -b'
 | 
						|
alias unmountdrive='udisksctl unmount -b'
 | 
						|
alias fssizes='df -kh --output=size,used,avail,pcent,target | sort -hr'
 | 
						|
alias dirsizes='du -kh --apparent-size --max-depth=1 | sort -hr'
 | 
						|
 | 
						|
 | 
						|
updateSystem() {
 | 
						|
  executeAndNotify "doUpdateSystem $1" "system updated" "system update failed"
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
doUpdateSystem() {
 | 
						|
   updatePackages $1;
 | 
						|
   updateFlatpak $1;
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
updateFlatpak() {
 | 
						|
   noconfirm=
 | 
						|
   if [[ $1 == "-y" ]]; then
 | 
						|
      noconfirm="--assumeyes";
 | 
						|
   fi
 | 
						|
   executeAndNotify "doUpdateFlatpak $noconfirm" "flatpaks updated" "flatpak update failed";
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
doUpdateFlatpak() {
 | 
						|
   flatpak update $1;
 | 
						|
   flatpak remove --unused $1;
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
# executes command and notifies upon failure
 | 
						|
execute() {
 | 
						|
   dir="$(pwd)";
 | 
						|
   dir=${dir##*/};
 | 
						|
   if [[ -n "$2" ]]; then
 | 
						|
      errLog=$2;
 | 
						|
   else
 | 
						|
      errLog="execution of \"$1\" failed";
 | 
						|
   fi
 | 
						|
 | 
						|
   if ! $1; then
 | 
						|
      notifyError "$dir: $errLog";
 | 
						|
      return 1;
 | 
						|
   fi
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
# executes command and notifies upon success or failure
 | 
						|
executeAndNotify () {
 | 
						|
   dir="$(pwd)";
 | 
						|
   dir=${dir##*/};
 | 
						|
   if [[ -n "$2" ]]; then
 | 
						|
      winLog=$2;
 | 
						|
   else
 | 
						|
      winLog="execution of \"$1\" succeeded";
 | 
						|
   fi
 | 
						|
 | 
						|
   if ! execute "$1" "$3"; then # arguments in quotes so they are interpreted as ONE argument each by execute()
 | 
						|
      return 1;
 | 
						|
   fi
 | 
						|
   notifyInfo "$dir: $winLog";
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
# find file but don't print errors (e.g. can't access directory etc.)
 | 
						|
finds () {
 | 
						|
   find $* 2>/dev/null;
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
# sends a desktop-notification with an icon signalling an error
 | 
						|
notifyError () {
 | 
						|
   notify-send "$1" --icon=data-warning;
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
# sends a desktop-notification with an icon signalling a simple information
 | 
						|
notifyInfo () {
 | 
						|
   notify-send "$1" --icon=preferences-desktop-notification;
 | 
						|
}
 |