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
|
||||
|
||||
export LESS=-R
|
||||
|
@ -6,22 +5,29 @@ alias info='info --vi-keys'
|
|||
export DIST=$(lsb_release --id | cut -d' ' -f2)
|
||||
|
||||
# Some aliases
|
||||
alias println='printf "\n"'
|
||||
|
||||
# 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 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"'
|
||||
alias editgrub='sudoedit /etc/default/grub && sudo update-grub'
|
||||
alias editenv='sudoedit /etc/environment'
|
||||
|
||||
CONFIG_SHELL_FUNCTIONS="${BASH_SOURCE[0]:-${(%):-%x}}"
|
||||
alias r="reset && exec zsh"
|
||||
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'
|
||||
|
||||
# Fast shortcuts
|
||||
alias t='task'
|
||||
alias tw='timew'
|
||||
alias c='clear'
|
||||
alias q='exit'
|
||||
alias v='nvim'
|
||||
|
@ -30,9 +36,8 @@ alias grpr='grp -r'
|
|||
b() { bat "$@" 2>/dev/null || ls -lah "$@" }
|
||||
cdd() { cd "$@" 2>/dev/null || cd "$(dirname "$1")" "${@:2}" }
|
||||
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([^"]*)')"
|
||||
|
||||
|
@ -227,86 +232,6 @@ resetdocker() {
|
|||
}
|
||||
|
||||
# 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
|
||||
|
||||
snapinstall() {
|
||||
|
@ -432,9 +357,6 @@ function zipdiff() {
|
|||
|
||||
# PROJECTS
|
||||
|
||||
source "$(dirname $SHELL_FUNCTIONS)/git"
|
||||
source "$(dirname $SHELL_FUNCTIONS)/projects"
|
||||
|
||||
pdiff() {
|
||||
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
|
||||
|
||||
neofetch
|
||||
task next limit:3
|
||||
timew
|
||||
if test "$PWD" = ~ && test "$0" != "$SHELL"; then
|
||||
neofetch --config $(xdg-user-dir CONFIG)/neofetch/config-short.conf
|
||||
task next limit:3
|
||||
timew | head -3
|
||||
fi
|
||||
|
||||
# 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]
|
||||
|
@ -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"
|
||||
fi
|
||||
|
||||
# If you come from bash you might have to change your $PATH.
|
||||
export PATH=$HOME/bin:$HOME/.local/bin:$PATH
|
||||
|
||||
# Path to your oh-my-zsh installation.
|
||||
export ZSH=~/.local/share/oh-my-zsh
|
||||
export CONFIG_ZSH="$HOME/.config/zsh"
|
||||
export CONFIG_SHELLS="$HOME/.config/shell"
|
||||
export ZSH="$HOME/.local/share/oh-my-zsh"
|
||||
DEFAULT_USER=$USER
|
||||
|
||||
ZSH_THEME="powerlevel10k/powerlevel10k"
|
||||
|
@ -36,17 +37,15 @@ DISABLE_UNTRACKED_FILES_DIRTY="true" # DOn't mark untracked files as dirty - spe
|
|||
plugins=(
|
||||
git
|
||||
git-extras
|
||||
git-auto-fetch
|
||||
z
|
||||
fast-syntax-highlighting
|
||||
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
|
||||
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
|
||||
|
||||
source $ZSH/oh-my-zsh.sh
|
||||
|
@ -98,7 +97,7 @@ bindkey '^q' push-line-or-edit
|
|||
|
||||
export KEYTIMEOUT=1
|
||||
|
||||
# Manual VIM bindings - disabled, replaced by plugin {{{
|
||||
# Obsolete: zsh-vim-mode plugin - Custom VIM bindings {{{
|
||||
#bindkey -v
|
||||
#autoload -Uz history-search-end
|
||||
#
|
||||
|
@ -115,7 +114,7 @@ export KEYTIMEOUT=1
|
|||
# '^[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() {
|
||||
# FOO=$1
|
||||
# local zero='%([BSUbfksu]|([FB]|){*})'
|
||||
|
@ -145,8 +144,6 @@ export KEYTIMEOUT=1
|
|||
|
||||
## User configuration
|
||||
|
||||
source "$SHELL_CONFIG/functions"
|
||||
|
||||
# turn on spelling correction
|
||||
setopt correct
|
||||
# don't save duplicates in command history
|
||||
|
@ -154,7 +151,9 @@ setopt histignoredups
|
|||
|
||||
setopt extended_glob
|
||||
|
||||
# Enable zmv
|
||||
setopt pipefail
|
||||
|
||||
# Enable zmv (see ZSHCONTRIB(1))
|
||||
autoload zmv
|
||||
alias zmv='noglob zmv'
|
||||
alias zmw='zmv -W'
|
||||
|
@ -162,7 +161,6 @@ alias zcp='noglob zmv -C'
|
|||
alias zln='noglob zmv -L'
|
||||
alias zsy='noglob zmv -Ls'
|
||||
|
||||
|
||||
# Preferred editor for local and remote sessions
|
||||
if [[ -n $SSH_CONNECTION ]]; then
|
||||
export EDITOR='vim'
|
||||
|
@ -170,6 +168,7 @@ else
|
|||
export EDITOR='nvim'
|
||||
fi
|
||||
|
||||
for file in $CONFIG_SHELLS/*; do source $file; done
|
||||
|
||||
# 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
|
||||
|
||||
# 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
|
||||
|
|
Loading…
Reference in New Issue