Shell: Update aliases, improve configuration editing, separate music functions
This commit is contained in:
parent
498978ddbc
commit
a98234a870
|
@ -1,4 +1,3 @@
|
||||||
#! /usr/bin/make
|
|
||||||
# Shell configuration for Zsh, works almost completely for Bash as well
|
# Shell configuration for Zsh, works almost completely for Bash as well
|
||||||
|
|
||||||
export LESS=-R
|
export LESS=-R
|
||||||
|
@ -6,22 +5,29 @@ alias info='info --vi-keys'
|
||||||
export DIST=$(lsb_release --id | cut -d' ' -f2)
|
export DIST=$(lsb_release --id | cut -d' ' -f2)
|
||||||
|
|
||||||
# Some aliases
|
# Some aliases
|
||||||
alias println='printf "\n"'
|
alias conf='{ fd -t f . --full-path $(xdg-user-dir CONFIG) /etc; echo ~/.gradle/gradle.properties } | fzf --tiebreak=end,length --preview "bat --color=always --style=numbers --line-range :500 {}" --bind "enter:execute(test -O {} && $EDITOR {} || sudoedit {}),del:execute(gio trash {}),change:top"'
|
||||||
|
|
||||||
# find pruning avoids permission denied errors - see https://unix.stackexchange.com/a/121020/272449
|
|
||||||
alias conf='find ~/.config/nvim ~/.config ~/.gradle/gradle.properties /etc -type d ! \( -readable \) -prune -o -type f -print | fzf --tiebreak=end,index --preview "bat --color=always --style=numbers --line-range :500 {}" --bind "enter:execute(test -O {} && $EDITOR {} || sudoedit {}),del:execute(gio trash {})"'
|
|
||||||
alias editgrub='sudoedit /etc/default/grub && sudo update-grub'
|
alias editgrub='sudoedit /etc/default/grub && sudo update-grub'
|
||||||
alias editenv='sudoedit /etc/environment'
|
alias editenv='sudoedit /etc/environment'
|
||||||
|
|
||||||
|
CONFIG_SHELL_FUNCTIONS="${BASH_SOURCE[0]:-${(%):-%x}}"
|
||||||
|
alias r="reset && exec zsh"
|
||||||
editshell() {
|
editshell() {
|
||||||
nvim $(test $# -lt 1 && echo "$SHELL_FUNCTIONS" || (results=$(find "$dropbox_path/tools/setup" -maxdepth 1 -name "$1.sh") && test "$results" && echo "$results") || echo "$(dirname $SHELL_FUNCTIONS)/$1") && r
|
file=$((test $# -lt 1 && echo "$CONFIG_SHELL_FUNCTIONS") || (test "$1" = "zsh" && echo "$CONFIG_ZSH/.zshrc") || echo "$CONFIG_SHELLS/$1")
|
||||||
|
checksum="$(md5sum $file)"
|
||||||
|
$EDITOR $file
|
||||||
|
test "$checksum" != "$(md5sum $file)" && exec $SHELL
|
||||||
}
|
}
|
||||||
|
|
||||||
alias graphics='lspci -vnn | grep VGA --color=never'
|
alias -g ___='"$(eval "$(fc -ln -1)" | tail -n 1)"'
|
||||||
|
alias -g G="| grp"
|
||||||
|
|
||||||
|
alias println='printf "\n"'
|
||||||
|
alias graphics='lspci -vnn | grep VGA --color=never'
|
||||||
alias startMinecraftServer='curl https://ipinfo.io/ip | xclip -sel clip && cd ~/daten/games/sharedgames/minecraft/server && java -jar forge-1.12.2-14.23.5.2768-universal.jar -mx 8G'
|
alias startMinecraftServer='curl https://ipinfo.io/ip | xclip -sel clip && cd ~/daten/games/sharedgames/minecraft/server && java -jar forge-1.12.2-14.23.5.2768-universal.jar -mx 8G'
|
||||||
|
|
||||||
# Fast shortcuts
|
# Fast shortcuts
|
||||||
alias t='task'
|
alias t='task'
|
||||||
|
alias tw='timew'
|
||||||
alias c='clear'
|
alias c='clear'
|
||||||
alias q='exit'
|
alias q='exit'
|
||||||
alias v='nvim'
|
alias v='nvim'
|
||||||
|
@ -30,9 +36,8 @@ alias grpr='grp -r'
|
||||||
b() { bat "$@" 2>/dev/null || ls -lah "$@" }
|
b() { bat "$@" 2>/dev/null || ls -lah "$@" }
|
||||||
cdd() { cd "$@" 2>/dev/null || cd "$(dirname "$1")" "${@:2}" }
|
cdd() { cd "$@" 2>/dev/null || cd "$(dirname "$1")" "${@:2}" }
|
||||||
tr() { tree -C -a -L 2 "$@" | less }
|
tr() { tree -C -a -L 2 "$@" | less }
|
||||||
|
alias sc='sudo systemctl'
|
||||||
|
|
||||||
SHELL_FUNCTIONS="${BASH_SOURCE[0]:-${(%):-%x}}"
|
|
||||||
alias r="reset && source $SHELL_FUNCTIONS"
|
|
||||||
|
|
||||||
dropbox_path="$(cat ~/.dropbox/info.json | grep -Po '"'"path"'"\s*:\s*"\K([^"]*)')"
|
dropbox_path="$(cat ~/.dropbox/info.json | grep -Po '"'"path"'"\s*:\s*"\K([^"]*)')"
|
||||||
|
|
||||||
|
@ -227,86 +232,6 @@ resetdocker() {
|
||||||
}
|
}
|
||||||
|
|
||||||
# MUSIC
|
# MUSIC
|
||||||
|
|
||||||
music_folder="/home/janek/daten/musik"
|
|
||||||
audio_folder="/home/janek/daten/audio"
|
|
||||||
music_original_folder="$audio_folder/songs/_raw"
|
|
||||||
|
|
||||||
makePl() { echo ${2:-empty} >$1.m3u8 }
|
|
||||||
makePls() {
|
|
||||||
i=1; while test $i -le ${1:-9}; do makePl "${2:-Ω}$i" "empty$i"; ((i++)); done
|
|
||||||
}
|
|
||||||
|
|
||||||
findsongs() {
|
|
||||||
find -regextype posix-extended -maxdepth 1 -type f -regex "${1:-.*\.(mp3|flac|wav|m4a)}" -printf "%P\n"
|
|
||||||
}
|
|
||||||
|
|
||||||
addmix() {
|
|
||||||
mv -v "$1.cue" "$audio_folder/recordings/cues"
|
|
||||||
addsong "$1.flac" Mixes
|
|
||||||
}
|
|
||||||
|
|
||||||
addsong() {
|
|
||||||
test "$1" = "-q" && shift && quick="true"
|
|
||||||
|
|
||||||
local raw="${1%.*}"
|
|
||||||
local isflac=$(case "$1" in *.flac) echo "true";; esac)
|
|
||||||
test "$isflac" || (echo "Converting to flac..." && flac "$1" --totally-silent)
|
|
||||||
|
|
||||||
test "$quick" || (echo "Press ENTER when the metadata of the flac file is correct..." && read)
|
|
||||||
|
|
||||||
echo "Converting to mp3..."
|
|
||||||
lame -V0 "$1" --silent
|
|
||||||
|
|
||||||
mkdir -p "$music_folder/$2"
|
|
||||||
mkdir -p "$music_original_folder/$2"
|
|
||||||
|
|
||||||
local destination="$music_folder/$2/$raw.mp3"
|
|
||||||
echo "Moving mp3 with metadata to $destination"
|
|
||||||
ffmpeg -i "$raw.mp3" -i "$raw.flac" -c copy -map_metadata 1 "$destination" -v warning "${@:3}" && rm "$raw.mp3"
|
|
||||||
test ! "$PWD" -ef "$music_original_folder/$2" && mv -v "$raw.flac" "$music_original_folder/$2" && (test "$isflac" || rm -v "$1")
|
|
||||||
}
|
|
||||||
|
|
||||||
addalbum() {
|
|
||||||
mkdir -p "$music_folder/$1"
|
|
||||||
mkdir -p "$music_original_folder/$1"
|
|
||||||
f1 -regextype posix-extended -type f -regex "\./(cover|folder)\.(png|jpg|jpeg)" | while read cover; do
|
|
||||||
foundcover="true"
|
|
||||||
cp -v "$cover" "$music_folder/$1" &&
|
|
||||||
mv -v "$cover" "$music_original_folder/$1"
|
|
||||||
done
|
|
||||||
test "$foundcover" || f1 -regextype posix-extended -type f -regex ".*\.(png|jpg|jpeg)" | while read cover; do
|
|
||||||
cp -v "$cover" "$music_folder/$1" &&
|
|
||||||
mv -v "$cover" "$music_original_folder/$1"
|
|
||||||
done
|
|
||||||
|
|
||||||
IFS=$'\n'
|
|
||||||
for s in $(findsongs ".*\.(flac|wav)"); do
|
|
||||||
highlight "$s"
|
|
||||||
addsong -q "$s" "$1" "${@:2}"
|
|
||||||
done
|
|
||||||
unset IFS
|
|
||||||
}
|
|
||||||
|
|
||||||
formatsongs() {
|
|
||||||
_pwd="$PWD"
|
|
||||||
find "$PWD" "$@" -type d | while read d; do cd $d; findsongs | while read song; do
|
|
||||||
new="$(formatsong "$song")"
|
|
||||||
test "$new" != "$song" && mv -v "$song" "$new"
|
|
||||||
done; done
|
|
||||||
cd "$_pwd"
|
|
||||||
IFS=$'\n'
|
|
||||||
for f in $(find "$@" -name "*.wav"); do
|
|
||||||
echo "Converting $f to ${f%.*}.flac"
|
|
||||||
ffmpeg -i "$f" "${f%.*}.flac" -v warning && rm -v $f
|
|
||||||
done
|
|
||||||
unset IFS
|
|
||||||
}
|
|
||||||
|
|
||||||
formatsong() {
|
|
||||||
echo "$1" | sed -e 's/\([ ([]\)\(ft\|Ft\|Feat\)\([ .]\)/\1feat\3/;s/\([ ([]\)feat /\1feat. /;s/ \((Original Mix)\|(Original)\|(Full Stream)\|.NCS Release.\)//i;s/ \(\..\{2,4\}\)$/\1/;s/---/ - /;s/^[0-9]\{6\}_//;s/ / /g;s/\(\w\)+\(\w\)/\1 \2/g' -
|
|
||||||
}
|
|
||||||
|
|
||||||
# INSTALL
|
# INSTALL
|
||||||
|
|
||||||
snapinstall() {
|
snapinstall() {
|
||||||
|
@ -432,9 +357,6 @@ function zipdiff() {
|
||||||
|
|
||||||
# PROJECTS
|
# PROJECTS
|
||||||
|
|
||||||
source "$(dirname $SHELL_FUNCTIONS)/git"
|
|
||||||
source "$(dirname $SHELL_FUNCTIONS)/projects"
|
|
||||||
|
|
||||||
pdiff() {
|
pdiff() {
|
||||||
diff -r $1 $2 -x .git -x .idea -x .gradle
|
diff -r $1 $2 -x .git -x .idea -x .gradle
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,80 @@
|
||||||
|
MUSIC="/home/janek/daten/musik"
|
||||||
|
AUDIO="/home/janek/daten/audio"
|
||||||
|
MUSIC_RAW="$audio_folder/songs/_raw"
|
||||||
|
|
||||||
|
makePl() { echo ${2:-empty} >$1.m3u8 }
|
||||||
|
makePls() {
|
||||||
|
i=1; while test $i -le ${1:-9}; do makePl "${2:-Ω}$i" "empty$i"; ((i++)); done
|
||||||
|
}
|
||||||
|
|
||||||
|
findsongs() {
|
||||||
|
find -regextype posix-extended -maxdepth 1 -type f -regex "${1:-.*\.(mp3|flac|wav|m4a)}" -printf "%P\n"
|
||||||
|
}
|
||||||
|
|
||||||
|
addmix() {
|
||||||
|
mv -v "$1.cue" "$audio_folder/recordings/cues"
|
||||||
|
addsong "$1.flac" Mixes
|
||||||
|
}
|
||||||
|
|
||||||
|
addsong() {
|
||||||
|
test "$1" = "-q" && shift && quick="true"
|
||||||
|
|
||||||
|
local raw="${1%.*}"
|
||||||
|
local isflac=$(case "$1" in *.flac) echo "true";; esac)
|
||||||
|
test "$isflac" || (echo "Converting to flac..." && flac "$1" --totally-silent)
|
||||||
|
|
||||||
|
test "$quick" || (echo "Press ENTER when the metadata of the flac file is correct..." && read)
|
||||||
|
|
||||||
|
echo "Converting to mp3..."
|
||||||
|
lame -V0 "$1" --silent
|
||||||
|
|
||||||
|
mkdir -p "$MUSIC/$2"
|
||||||
|
mkdir -p "$MUSIC_RAW/$2"
|
||||||
|
|
||||||
|
local destination="$MUSIC/$2/$raw.mp3"
|
||||||
|
echo "Moving mp3 with metadata to $destination"
|
||||||
|
ffmpeg -i "$raw.mp3" -i "$raw.flac" -c copy -map_metadata 1 "$destination" -v warning "${@:3}" && rm "$raw.mp3"
|
||||||
|
test ! "$PWD" -ef "$MUSIC_RAW/$2" && mv -v "$raw.flac" "$MUSIC_RAW/$2" && (test "$isflac" || rm -v "$1")
|
||||||
|
}
|
||||||
|
|
||||||
|
addalbum() {
|
||||||
|
mkdir -p "$MUSIC/$1"
|
||||||
|
mkdir -p "$MUSIC_RAW/$1"
|
||||||
|
f1 -regextype posix-extended -type f -regex "\./(cover|folder)\.(png|jpg|jpeg)" | while read cover; do
|
||||||
|
foundcover="true"
|
||||||
|
cp -v "$cover" "$MUSIC/$1" &&
|
||||||
|
mv -v "$cover" "$MUSIC_RAW
|
||||||
|
/$1"
|
||||||
|
done
|
||||||
|
test "$foundcover" || f1 -regextype posix-extended -type f -regex ".*\.(png|jpg|jpeg)" | while read cover; do
|
||||||
|
cp -v "$cover" "$MUSIC/$1" &&
|
||||||
|
mv -v "$cover" "$MUSIC_RAW
|
||||||
|
/$1"
|
||||||
|
done
|
||||||
|
|
||||||
|
IFS=$'\n'
|
||||||
|
for s in $(findsongs ".*\.(flac|wav)"); do
|
||||||
|
highlight "$s"
|
||||||
|
addsong -q "$s" "$1" "${@:2}"
|
||||||
|
done
|
||||||
|
unset IFS
|
||||||
|
}
|
||||||
|
|
||||||
|
formatsongs() {
|
||||||
|
_pwd="$PWD"
|
||||||
|
find "$PWD" "$@" -type d | while read d; do cd $d; findsongs | while read song; do
|
||||||
|
new="$(formatsong "$song")"
|
||||||
|
test "$new" != "$song" && mv -v "$song" "$new"
|
||||||
|
done; done
|
||||||
|
cd "$_pwd"
|
||||||
|
IFS=$'\n'
|
||||||
|
for f in $(find "$@" -name "*.wav"); do
|
||||||
|
echo "Converting $f to ${f%.*}.flac"
|
||||||
|
ffmpeg -i "$f" "${f%.*}.flac" -v warning && rm -v $f
|
||||||
|
done
|
||||||
|
unset IFS
|
||||||
|
}
|
||||||
|
|
||||||
|
formatsong() {
|
||||||
|
echo "$1" | sed -e 's/\([ ([]\)\(ft\|Ft\|Feat\)\([ .]\)/\1feat\3/;s/\([ ([]\)feat /\1feat. /;s/ \((Original Mix)\|(Original)\|(Full Stream)\|.NCS Release.\)//i;s/ \(\..\{2,4\}\)$/\1/;s/---/ - /;s/^[0-9]\{6\}_//;s/ / /g;s/\(\w\)+\(\w\)/\1 \2/g' -
|
||||||
|
}
|
|
@ -1,8 +1,9 @@
|
||||||
# Commands
|
# Commands
|
||||||
|
if test "$PWD" = ~ && test "$0" != "$SHELL"; then
|
||||||
neofetch
|
neofetch --config $(xdg-user-dir CONFIG)/neofetch/config-short.conf
|
||||||
task next limit:3
|
task next limit:3
|
||||||
timew
|
timew | head -3
|
||||||
|
fi
|
||||||
|
|
||||||
# Enable Powerlevel10k instant prompt. Should stay close to the top of ~/.config/zsh/.zshrc.
|
# Enable Powerlevel10k instant prompt. Should stay close to the top of ~/.config/zsh/.zshrc.
|
||||||
# Initialization code that may require console input (password prompts, [y/n]
|
# Initialization code that may require console input (password prompts, [y/n]
|
||||||
|
@ -11,11 +12,11 @@ if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]
|
||||||
source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh"
|
source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# If you come from bash you might have to change your $PATH.
|
|
||||||
export PATH=$HOME/bin:$HOME/.local/bin:$PATH
|
export PATH=$HOME/bin:$HOME/.local/bin:$PATH
|
||||||
|
|
||||||
# Path to your oh-my-zsh installation.
|
export CONFIG_ZSH="$HOME/.config/zsh"
|
||||||
export ZSH=~/.local/share/oh-my-zsh
|
export CONFIG_SHELLS="$HOME/.config/shell"
|
||||||
|
export ZSH="$HOME/.local/share/oh-my-zsh"
|
||||||
DEFAULT_USER=$USER
|
DEFAULT_USER=$USER
|
||||||
|
|
||||||
ZSH_THEME="powerlevel10k/powerlevel10k"
|
ZSH_THEME="powerlevel10k/powerlevel10k"
|
||||||
|
@ -36,17 +37,15 @@ DISABLE_UNTRACKED_FILES_DIRTY="true" # DOn't mark untracked files as dirty - spe
|
||||||
plugins=(
|
plugins=(
|
||||||
git
|
git
|
||||||
git-extras
|
git-extras
|
||||||
|
git-auto-fetch
|
||||||
z
|
z
|
||||||
fast-syntax-highlighting
|
fast-syntax-highlighting
|
||||||
zsh-autosuggestions
|
zsh-autosuggestions
|
||||||
#zsh-vim-mode
|
zsh-vim-mode
|
||||||
)
|
)
|
||||||
|
|
||||||
SHELL_CONFIG="$HOME/.config/shell"
|
|
||||||
ZSH_CONFIG="$HOME/.config/zsh"
|
|
||||||
|
|
||||||
_comp_options+=(globdots) # Show files starting with dot in autocomplete
|
_comp_options+=(globdots) # Show files starting with dot in autocomplete
|
||||||
fpath=($fpath "$ZSH_CONFIG/zsh_completion") # Custom completions
|
fpath=($fpath "$CONFIG_ZSH/zsh_completion") # Custom completions
|
||||||
ZSH_COMPDUMP="$(xdg-user-dir CACHE)/zsh/zcompdump-$ZSH_VERSION" # Cache completions
|
ZSH_COMPDUMP="$(xdg-user-dir CACHE)/zsh/zcompdump-$ZSH_VERSION" # Cache completions
|
||||||
|
|
||||||
source $ZSH/oh-my-zsh.sh
|
source $ZSH/oh-my-zsh.sh
|
||||||
|
@ -98,7 +97,7 @@ bindkey '^q' push-line-or-edit
|
||||||
|
|
||||||
export KEYTIMEOUT=1
|
export KEYTIMEOUT=1
|
||||||
|
|
||||||
# Manual VIM bindings - disabled, replaced by plugin {{{
|
# Obsolete: zsh-vim-mode plugin - Custom VIM bindings {{{
|
||||||
#bindkey -v
|
#bindkey -v
|
||||||
#autoload -Uz history-search-end
|
#autoload -Uz history-search-end
|
||||||
#
|
#
|
||||||
|
@ -115,7 +114,7 @@ export KEYTIMEOUT=1
|
||||||
# '^[OB' history-beginning-search-forward-end
|
# '^[OB' history-beginning-search-forward-end
|
||||||
# }}}
|
# }}}
|
||||||
|
|
||||||
# Show time on the right after executing command - obsolete through powerlevel10k {{{
|
# Obsolete: powerlevel10k - Show time on the right after executing command {{{
|
||||||
# strlen() {
|
# strlen() {
|
||||||
# FOO=$1
|
# FOO=$1
|
||||||
# local zero='%([BSUbfksu]|([FB]|){*})'
|
# local zero='%([BSUbfksu]|([FB]|){*})'
|
||||||
|
@ -145,8 +144,6 @@ export KEYTIMEOUT=1
|
||||||
|
|
||||||
## User configuration
|
## User configuration
|
||||||
|
|
||||||
source "$SHELL_CONFIG/functions"
|
|
||||||
|
|
||||||
# turn on spelling correction
|
# turn on spelling correction
|
||||||
setopt correct
|
setopt correct
|
||||||
# don't save duplicates in command history
|
# don't save duplicates in command history
|
||||||
|
@ -154,7 +151,9 @@ setopt histignoredups
|
||||||
|
|
||||||
setopt extended_glob
|
setopt extended_glob
|
||||||
|
|
||||||
# Enable zmv
|
setopt pipefail
|
||||||
|
|
||||||
|
# Enable zmv (see ZSHCONTRIB(1))
|
||||||
autoload zmv
|
autoload zmv
|
||||||
alias zmv='noglob zmv'
|
alias zmv='noglob zmv'
|
||||||
alias zmw='zmv -W'
|
alias zmw='zmv -W'
|
||||||
|
@ -162,7 +161,6 @@ alias zcp='noglob zmv -C'
|
||||||
alias zln='noglob zmv -L'
|
alias zln='noglob zmv -L'
|
||||||
alias zsy='noglob zmv -Ls'
|
alias zsy='noglob zmv -Ls'
|
||||||
|
|
||||||
|
|
||||||
# Preferred editor for local and remote sessions
|
# Preferred editor for local and remote sessions
|
||||||
if [[ -n $SSH_CONNECTION ]]; then
|
if [[ -n $SSH_CONNECTION ]]; then
|
||||||
export EDITOR='vim'
|
export EDITOR='vim'
|
||||||
|
@ -170,6 +168,7 @@ else
|
||||||
export EDITOR='nvim'
|
export EDITOR='nvim'
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
for file in $CONFIG_SHELLS/*; do source $file; done
|
||||||
|
|
||||||
# AUTOMATICALLY ADDED SHIT
|
# AUTOMATICALLY ADDED SHIT
|
||||||
|
|
||||||
|
@ -186,6 +185,6 @@ export NVM_DIR="$HOME/.nvm"
|
||||||
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
|
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
|
||||||
|
|
||||||
# To customize prompt, run `p10k configure` or edit .p10k.zsh.
|
# To customize prompt, run `p10k configure` or edit .p10k.zsh.
|
||||||
[[ ! -f $ZSH_CONFIG/.p10k.zsh ]] || source $ZSH_CONFIG/.p10k.zsh
|
[[ ! -f $CONFIG_ZSH/.p10k.zsh ]] || source $CONFIG_ZSH/.p10k.zsh
|
||||||
|
|
||||||
[ -f ~/.fzf.zsh ] && source ~/.fzf.zsh
|
[ -f ~/.fzf.zsh ] && source ~/.fzf.zsh
|
||||||
|
|
Loading…
Reference in New Issue