nixos-config/my_zsh_utils.zsh
2025-09-14 00:30:02 +03:00

214 lines
4.8 KiB
Bash

#!/bin/zsh
function homeREBUILD () {
home-manager switch
}
docx_to_pdf () {
if [ -z "$1" ]; then
echo "docx_to_pdf <document path>" 1>&2
exit 1
fi
libreoffice --headless --convert-to pdf "$1"
}
download-audio(){
if (( 2 <= $# && $# <= 3 )) ; then
if (( $# > 2)); then
local CODE=$3
elif [ -z ${1##*soundcloud*} ]; then
local CODE="hls_mp3_128"
else
local CODE="ba*"
fi
#yt-dlp -F "$1"
echo "Using code $CODE"
yt-dlp --extract-audio --format $CODE "$1" --audio-format mp3 --output "$2.%(ext)s" --verbose --no-playlist
else
echo "Wrong!!!!!"
fi
}
convert_cmus_to_lfsl() {
local src_dir="$HOME/.config/cmus/playlists"
local dst_dir="$HOME/Music/playlists"
mkdir -p "$dst_dir"
for src in "$src_dir"/*; do
[ -f "$src" ] || continue
local base=$(basename "$src")
local out="$dst_dir/${base%.*}.lfsl"
printf 'Converting %s -> %s\n' "$src" "$out"
# Empty or (re)create output file
: > "$out"
while IFS= read -r line; do
# Only process non-empty lines
[ -z "$line" ] && continue
if [[ "$line" == "$HOME/Music/"* ]]; then
# Strip the prefix and append
echo "${line#"$HOME/Music/"}" >> "$out"
else
# Print warning for anything else
printf 'Warning: skipping "%s" (not under $HOME/Music)\n' "$line" >&2
fi
done < "$src"
done
}
download-video (){
yt-dlp -f "bestvideo[ext=mp4]+bestaudio[ext=m4a]/mp4" -o "%(title)s.mp4" $1
}
export amsterdam_server_ip="77.238.231.168"
export home_server_ip="81.200.28.227"
toamsterdamssh(){
ssh -p 22 "root@${amsterdam_server_ip}"
}
tomyservssh(){
ssh -p 22 "root@${home_server_ip}"
}
alias ls="ls -A --color=auto"
alias tree="tree -a -C"
alias grep="grep --colour=always"
alias cp="cp -r"
alias ascend="sudo -i zsh -l"
alias pm="pulsemixer"
alias ip="ip -color"
alias sisyphus="mpv --loop-file=inf"
alias COPY="xclip -i -f -selection primary | xclip -i -selection clipboard"
alias vgmch="valgrind --tool=memcheck"
alias vgmch-full="valgrind --leak-check=full --tool=memcheck"
alias pero="sqlite3 -cmd '.explain on' -box"
alias smatree="tree -I '.git|.idea|target|cmake-build-debug|.venv'"
alias df="df -h"
alias du="du -sh"
function ff (){
if [ -n "$FF_MAIN_PROFILE" ]; then
firefox -P "$FF_MAIN_PROFILE" $@
else
echo "Env var FF_MAIN_PROFILE not set"
fi
}
function bctl {
sudo rfkill unblock all
bluetoothctl
}
function nixREPL {
nix repl --expr 'let pkgs = import <nixpkgs> {}; lib = pkgs.lib; in pkgs'
}
function nixosREBUILD {
sudo nixos-rebuild switch
}
function unblockall {
sudo rfkill unblock all
}
function vibecheck { ping 8.8.8.8 }
function git-config-cred-store(){ git config credential.helper store }
function ffsilent { ffmpeg -i "$1" -c copy -an "${1%.*}-nosound.${1#*.}" }
function reSource { source /etc/zshrc.local }
function shitdown { sudo shutdown -h now }
function vpnup {
if [ -n "$WG_VPN_NAME" ]; then
wg-quick up "$WG_VPN_NAME"
else
echo "Env var WG_VPN_NAME is not set"
fi
}
function vpndown {
if [ -n "$WG_VPN_NAME" ]; then
wg-quick down "$WG_VPN_NAME"
else
echo "Env var WG_VPN_NAME is not set"
fi
}
function lockscreen-xfcre { xfce4-screensaver-command -l }
function logout-xfce { xfce4-session-logout --logout }
function cmusclear {
rm ~/.config/cmus/lib.pl
}
# Whenever you feel bad, just open this pdf and your mood will be ruined completely
function showmekeyboard {
xkbprint :0 -color -nkg 2 -o - | ps2pdf - - | zathura -
}
function tmuxzsh {
tmux new-session zsh
}
function cdnoita {
cd ~/.local/share/Steam/steamapps/compatdata/881100/pfx/drive_c/users/steamuser/AppData/LocalLow/Nolla_Games_Noita/
}
function start_recording_nosound {
if [ -z "$1" ]; then
echo "No output file specified"
else
ffmpeg -f x11grab -framerate 30 -i $DISPLAY -c:v libx264 -preset ultrafast -crf 18 "$1"
fi
}
function wmtest-with-xephyr {
xinit ~/.xinitrc -- /usr/bin/Xephyr :1 -ac -screen 1024x768 -br -noreset
}
alias ru-setxkbmap="setxkbmap -layout \"us,ru\""
function get-real-x {
setxkbmap -layout "us,ru" -option "grp:win_space_toggle"
xset r rate 250 30
xset b off
xset s off -dpms
}
function nixBUILDTHIS {
nix-build -E 'with import <nixpkgs> {}; callPackage ./default.nix {}'
}
function nixPREFETCHTHIS {
nix-prefetch-url --unpack "file://$(realpath $1)" 2>&1 1>/dev/null | tail -n 1
}
function win_r_compile {
dmenuc.py ~/.config/suckless_desktop/win_r.dmenu ~/.config/suckless_desktop/win_r_out/
}
alias cdslcfg="cd ~/.config/suckless_desktop"
alias cdnocfg="cd /etc/nixos"
alias cdhmcfg="cd ~/.config/home-manager"
function gitaddacommit {
git status
git add -A
git commit -m "$1"
git push
}
if [ -z "$SSH_AUTH_SOCK" ]; then
eval "$(ssh-agent -s)"
fi