diff --git a/.bash_profile b/.bash_profile index e159928..3b11ec6 100644 --- a/.bash_profile +++ b/.bash_profile @@ -19,5 +19,5 @@ PERL_MM_OPT="INSTALL_BASE=/home/cobra/perl5"; export PERL_MM_OPT; . ~/.devspec if [[ $(tty) == /dev/tty2 ]]; then - exec $WM + exec $WM fi \ No newline at end of file diff --git a/.bashrc b/.bashrc index 30c0b32..7ac34d5 100644 --- a/.bashrc +++ b/.bashrc @@ -18,7 +18,7 @@ export GPG_TTY=$(tty) export MANPATH=/run/current-system/profile/share/man:/home/cobra/.guix-profile/share/man:/run/current-system/profile/share/man:/home/cobra/.guix-home/profile/share/man clear() { - printf '\033c' # faster than ncurses clear by a lot + printf '\033c' # faster than ncurses clear by a lot } # Other aliases @@ -39,7 +39,7 @@ alias dico="dico -d en-wiktionary" # Random string (passwords) randstr() { - tr -cd '[:graph:]' >($COPY_COMMAND) + printf "%s" "$( >($COPY_COMMAND) } # URL-encode stdin urlencode() { - LC_COLLATE_OLD=$LC_COLLATE - LC_COLLATE=C + LC_COLLATE_OLD=$LC_COLLATE + LC_COLLATE=C - local TEXT="$( /dev/null \;; } fixdh() { - diffhome | while read -r _ SRC _ DEST _; do - cp $SRC $DEST; - done; + diffhome | while read -r _ SRC _ DEST _; do + cp $SRC $DEST; + done; } strlen() { - N=$(wc -c <<< "$*") - ((N--)) - printf '%u -' "$N" + N=$(wc -c <<< "$*") + ((N--)) + printf '%u\n' "$N" } uppweb() { - ssh vern.cc 'cd ~/public_html; git pull' + ssh vern.cc 'cd ~/public_html; git pull' } caption() { - [ -z "$3" ] && { - echo "Usage: caption [input] [output] [text...]" - return 1 - } - local FILE="$1" - local OUT="$2" - shift 2 - local TEXT="$*" - local WIDTH="$(identify -format "%[w] -" "$FILE" | head -n1)" - local HEIGHT="$(identify -format "%[h] -" "$FILE" | head -n1)" - local FONT_SIZE="$(((HEIGHT+WIDTH)/20))" - convert -gravity north \( -size "${WIDTH}x" -pointsize "$FONT_SIZE" -font 'Liberation-Sans-Bold' caption:"$TEXT" -gravity Center -extent "${WIDTH}x" \) "$FILE" -append "$OUT" + [ -z "$3" ] && { + echo "Usage: caption [input] [output] [text...]" + return 1 + } + local FILE="$1" + local OUT="$2" + shift 2 + local TEXT="$*" + local WIDTH="$(identify -format "%[w]\n" "$FILE" | head -n1)" + local HEIGHT="$(identify -format "%[h]\n" "$FILE" | head -n1)" + local FONT_SIZE="$(((HEIGHT+WIDTH)/20))" + convert -gravity north \( -size "${WIDTH}x" -pointsize "$FONT_SIZE" -font 'Liberation-Sans-Bold' caption:"$TEXT" -gravity Center -extent "${WIDTH}x" \) "$FILE" -append "$OUT" } captionvid() { - [ -z "$3" ] && { - echo "Usage: captionvid [input] [output] [text...]" - return 1 - } - rm /tmp/caption.*.png - FPS="$(ffmpeg -i "$1" 2>&1 |grep fps | sed 's/.* \([0-9]\+\) fps.*/\1/')" - IN="$1" - OUT="$2" - shift 2 - ffmpeg -i "$IN" "/tmp/caption.%02d.png" - for i in /tmp/caption.*; do - caption "$i" "$i-new.png" "$*" - done - ffmpeg -framerate $FPS -i "/tmp/caption.%02d.png-new.png" "$OUT" - rm /tmp/caption.*.png + [ -z "$3" ] && { + echo "Usage: captionvid [input] [output] [text...]" + return 1 + } + rm /tmp/caption.*.png + FPS="$(ffmpeg -i "$1" 2>&1 |grep fps | sed 's/.* \([0-9]\+\) fps.*/\1/')" + IN="$1" + OUT="$2" + shift 2 + ffmpeg -i "$IN" "/tmp/caption.%02d.png" + for i in /tmp/caption.*; do + caption "$i" "$i-new.png" "$*" + done + ffmpeg -framerate $FPS -i "/tmp/caption.%02d.png-new.png" "$OUT" + rm /tmp/caption.*.png } topbottom() { - [ -z "$3" ] && { - echo "Usage: caption [input] [output] [text...]" - return 1 - } - local FILE="$1" - local OUT="$2" - shift 2 - local WIDTH="$(identify -format "%[w] -" "$FILE" | head -n1)" - local HEIGHT="$(identify -format "%[h] -" "$FILE" | head -n1)" - local FONT_SIZE="$(((HEIGHT+WIDTH)/20))" - convert -size "${WIDTH}x" -stroke black -strokewidth 3 -fill white -pointsize "$FONT_SIZE" -font 'Liberation-Sans-Bold' -gravity Center -extent "${WIDTH}x" -gravity north \( -annotate +0+0 "$1" \) -gravity south \( -annotate +0+0 "$2" \) "$FILE" -append "$OUT" + [ -z "$3" ] && { + echo "Usage: caption [input] [output] [text...]" + return 1 + } + local FILE="$1" + local OUT="$2" + shift 2 + local WIDTH="$(identify -format "%[w]\n" "$FILE" | head -n1)" + local HEIGHT="$(identify -format "%[h]\n" "$FILE" | head -n1)" + local FONT_SIZE="$(((HEIGHT+WIDTH)/20))" + convert -size "${WIDTH}x" -stroke black -strokewidth 3 -fill white -pointsize "$FONT_SIZE" -font 'Liberation-Sans-Bold' -gravity Center -extent "${WIDTH}x" -gravity north \( -annotate +0+0 "$1" \) -gravity south \( -annotate +0+0 "$2" \) "$FILE" -append "$OUT" } topbottomvid() { - [ -z "$3" ] && { - echo "Usage: captionvid [input] [output] [text...]" - return 1 - } - rm /tmp/caption.*.png - FPS="$(ffmpeg -i "$1" 2>&1 |grep fps | sed 's/.* \([0-9]\+\) fps.*/\1/')" - IN="$1" - OUT="$2" - shift 2 - ffmpeg -i "$IN" "/tmp/caption.%02d.png" - for i in /tmp/caption.*; do - topbottom "$i" "$i-new.png" "$1" "$2" - done - ffmpeg -framerate $FPS -i "/tmp/caption.%02d.png-new.png" "$OUT" - rm /tmp/caption.*.png + [ -z "$3" ] && { + echo "Usage: captionvid [input] [output] [text...]" + return 1 + } + rm /tmp/caption.*.png + FPS="$(ffmpeg -i "$1" 2>&1 |grep fps | sed 's/.* \([0-9]\+\) fps.*/\1/')" + IN="$1" + OUT="$2" + shift 2 + ffmpeg -i "$IN" "/tmp/caption.%02d.png" + for i in /tmp/caption.*; do + topbottom "$i" "$i-new.png" "$1" "$2" + done + ffmpeg -framerate $FPS -i "/tmp/caption.%02d.png-new.png" "$OUT" + rm /tmp/caption.*.png } subcipher() { - local COLOR PERM L1 line grep word - if [ $# -lt 3 ]; then - if [ $# -lt 2 ] || [[ "$1" != "0" && "$1" != "1" ]]; then - printf "Usage: [0|1] subcipher file [string...] -" - return 1 - fi - fi - COLOR="$1" - shift - PERM="$1" - shift - [ -z "$*" ] && set -- "$( ${1:-$(date -u -I)}.svg + ssh vern "${1:-/opt/gnuplot/users/gnuplot.sh}; cat /opt/gnuplot/users/${1:-$(date -u -I)}.svg" > ${1:-$(date -u -I)}.svg } mnplot() { - ssh mythos "${1:-/opt/gnuplot/gnuplot.sh}; cat /opt/gnuplot/${1:-$(date -u -I)}.svg" > ${1:-$(date -u -I)}.svg + ssh mythos "${1:-/opt/gnuplot/gnuplot.sh}; cat /opt/gnuplot/${1:-$(date -u -I)}.svg" > ${1:-$(date -u -I)}.svg } vnplot() { - ssh vern "${1:-/opt/gnuplot/net/gnuplot.sh}; cat /opt/gnuplot/net/${1:-$(date -u -I)}.svg" > ${1:-$(date -u -I)}.svg + ssh vern "${1:-/opt/gnuplot/net/gnuplot.sh}; cat /opt/gnuplot/net/${1:-$(date -u -I)}.svg" > ${1:-$(date -u -I)}.svg } vpplot() { - ssh vern "${1:-/opt/gnuplot/power/gnuplot.sh}; cat /opt/gnuplot/power/${1:-$(date -u -I)}.svg" > ${1:-$(date -u -I)}.svg + ssh vern "${1:-/opt/gnuplot/power/gnuplot.sh}; cat /opt/gnuplot/power/${1:-$(date -u -I)}.svg" > ${1:-$(date -u -I)}.svg } inplot() { - ssh iceberg "${1:-~/gnuplot/gnuplot.sh}; cat ~/gnuplot/${1:-$(date -u -I)}.svg" > ${1:-$(date -u -I)}.svg + ssh iceberg "${1:-~/gnuplot/gnuplot.sh}; cat ~/gnuplot/${1:-$(date -u -I)}.svg" > ${1:-$(date -u -I)}.svg } cnplot() { - ssh crescent "${1:-/opt/gnuplot/net/gnuplot.sh}; cat /opt/gnuplot/net/${1:-$(date -u -I)}.svg" > ${1:-$(date -u -I)}.svg + ssh crescent "${1:-/opt/gnuplot/net/gnuplot.sh}; cat /opt/gnuplot/net/${1:-$(date -u -I)}.svg" > ${1:-$(date -u -I)}.svg } cpplot() { - ssh crescent "${1:-/opt/gnuplot/power/gnuplot.sh}; cat /opt/gnuplot/power/${1:-$(date -u -I)}.svg" > ${1:-$(date -u -I)}.svg + ssh crescent "${1:-/opt/gnuplot/power/gnuplot.sh}; cat /opt/gnuplot/power/${1:-$(date -u -I)}.svg" > ${1:-$(date -u -I)}.svg } reconf() { - $PRIV su - -c "guix system reconfigure /etc/guix-config/${HOSTNAME,,}.scm" + $PRIV su - -c "guix system reconfigure /etc/guix-config/${HOSTNAME,,}.scm" } hreconf() { - guix home reconfigure $HOME/.config/guix/home.scm + guix home reconfigure $HOME/.config/guix/home.scm } geng() { - < "$1" sed 's/\s*;.*//' | grep -ve '^$' -e '^T' | awk '{print "N"NR" "$0}' > "$2" + < "$1" sed 's/\s*;.*//' | grep -ve '^$' -e '^T' | awk '{print "N"NR" "$0}' > "$2" } mkmshex() { - FILE="${1%.*}" - microscheme "$1" - avr-gcc -B /run/current-system/profile/avr/lib/avr5 -mmcu="$2" -g -Os "$FILE".s -o "$FILE".elf - avr-objcopy -Oihex "$FILE".o "$FILE".hex + FILE="${1%.*}" + microscheme "$1" + avr-gcc -B /run/current-system/profile/avr/lib/avr5 -mmcu="$2" -g -Os "$FILE".s -o "$FILE".elf + avr-objcopy -Oihex "$FILE".o "$FILE".hex } uploadhex() { - avrdude -C/run/current-system/profile/etc/avrdude.conf -v -p"$2" -carduino -P${3:-/dev/ttyS0} -U"flash:w:$1:i" + avrdude -C/run/current-system/profile/etc/avrdude.conf -v -p"$2" -carduino -P${3:-/dev/ttyS0} -U"flash:w:$1:i" } gshpkg() { - local re='[(]?("([^"]*)"' - if [[ "$GUIX_ENVIRONMENT" ]]; then - local PACKAGES=($(while read -r line; do - [[ "$line" =~ $re ]] && printf '%s ' "${BASH_REMATCH[1]}" - done < $GUIX_ENVIRONMENT/manifest)) - echo ${PACKAGES[@]} - fi + local re='[\(]?\("([^"]*)"' + if [[ "$GUIX_ENVIRONMENT" ]]; then + local PACKAGES=($(while read -r line; do + [[ "$line" =~ $re ]] && printf '%s ' "${BASH_REMATCH[1]}" + done < $GUIX_ENVIRONMENT/manifest)) + echo ${PACKAGES[@]} + fi } \ No newline at end of file diff --git a/.config/guix/cobra/bin.scm b/.config/guix/cobra/bin.scm index c80039d..7ccf801 100644 --- a/.config/guix/cobra/bin.scm +++ b/.config/guix/cobra/bin.scm @@ -1,46 +1,58 @@ (define-module (cobra bin) #:use-module (guix gexp) + #:use-module (gnu packages base) #:export (bin-torbrowser - bin-suspend-wrap - bin-suspend - bin-start-pipewire - bin-screenshot - bin-logout-wofi - bin-lock - bin-fss - bin-beep-wrapper - bin-beep - bin-backtick)) + bin-suspend-wrap + bin-suspend + bin-start-pipewire + bin-screenshot + bin-logout-wofi + bin-lock + bin-fss + bin-beep-wrapper + bin-beep + bin-backtick)) (define bin-torbrowser - (plain-file "bin-torbrowser" "\ + (computed-file "bin-torbrowser" + #~(begin + (system (string-append #$coreutils "/bin/cat << \"EOF\" >" #$output "\n" "\ #!/usr/bin/env bash cd ~/.local/share/torbrowser/tor-browser/ -guix shell --check --pure --expression='(list (@@ (gnu packages gcc) gcc-11) \"lib\")' coreutils bash grep sed gcc-toolchain patchelf gtk+ dbus-glib libxt libevent openssl file alsa-lib << EOF +guix shell --check --pure --expression='(list (@@ (gnu packages gcc) gcc-11) \"lib\")' coreutils bash grep sed gcc-toolchain patchelf gtk+ dbus-glib libxt libevent openssl file alsa-lib << \"EOF\" >" #$output "1 set -x cd Browser patchelf --set-interpreter \\$LIBRARY_PATH/ld-linux-x86-64.so.2 firefox.real patchelf --set-interpreter \\$LIBRARY_PATH/ld-linux-x86-64.so.2 TorBrowser/Tor/tor LD_LIBRARY_PATH=\\$LIBRARY_PATH ./start-tor-browser -v -EOF")) +EOT" "\nEOF")) + (chmod #$output #o755)))) (define bin-suspend-wrap - (plain-file "bin-suspend-wrap" "\ + (computed-file "bin-suspend-wrap" + #~(begin + (system (string-append #$coreutils "/bin/cat << \"EOF\" >" #$output "\n" "\ #!/usr/bin/env bash sudo ~/.local/bin/__suspend while grep -v '\\[' /sys/power/state; do - swaylock - break -done")) + swaylock + break +done" "\nEOF")) + (chmod #$output #o755)))) (define bin-suspend - (plain-file "bin-suspend" "\ + (computed-file "bin-suspend" + #~(begin + (system (string-append #$coreutils "/bin/cat << \"EOF\" >" #$output "\n" "\ #!/usr/bin/env bash -echo mem > /sys/power/state")) +echo mem > /sys/power/state" "\nEOF")) + (chmod #$output #o755)))) (define bin-start-pipewire - (plain-file "bin-start-pipewire" "\ + (computed-file "bin-start-pipewire" + #~(begin + (system (string-append #$coreutils "/bin/cat << \"EOF\" >" #$output "\n" "\ #!/usr/bin/env bash rm -rf /run/user/$UID/pulse @@ -49,83 +61,95 @@ rm -rf /run/user/$UID/pulse pipewire & pipewire-pulse & -wireplumber &")) +wireplumber &" "\nEOF")) + (chmod #$output #o755)))) (define bin-screenshot - (plain-file "bin-screenshot" "\ + (computed-file "bin-screenshot" + #~(begin + (system (string-append #$coreutils "/bin/cat << \"EOF\" >" #$output "\n" "\ #!/usr/bin/env bash if [ ! -d $HOME/Pictures/Screenshots ] then - mkdir -p $HOME/Pictures/Screenshots + mkdir -p $HOME/Pictures/Screenshots fi fullscreen() { - filename=$HOME/Pictures/Screenshots/$(date +%Y%m%d_%H:%M:%S_Fullscreen).png - grim $filename - cat $filename | wl-copy \ - && notify-send -i $filename \"Fullscreen Screenshot taken\" - } + filename=$HOME/Pictures/Screenshots/$(date +%Y%m%d_%H:%M:%S_Fullscreen).png + grim $filename + cat $filename | wl-copy \ + && notify-send -i $filename \"Fullscreen Screenshot taken\" + } selecting() { - filename=$HOME/Pictures/Screenshots/$(date +%Y%m%d_%H:%M:%S_Selected).png - grim -g \"$(slurp -b e3eaf699)\" $filename \ - && notify-send -i $filename \"Selective Screenshot taken\" - cat $filename | wl-copy - } + filename=$HOME/Pictures/Screenshots/$(date +%Y%m%d_%H:%M:%S_Selected).png + grim -g \"$(slurp -b e3eaf699)\" $filename \ + && notify-send -i $filename \"Selective Screenshot taken\" + cat $filename | wl-copy + } wofirun() { - case \"$(printf \"fullscreen\\nselect\\n\" | wofi --dmenu -i -H 500 -W 250 -x 0 -y 0 )\" in - 'fullscreen')fullscreen;; - 'select')selecting;; - esac + case \"$(printf \"fullscreen\\nselect\\n\" | wofi --dmenu -i -H 500 -W 250 -x 0 -y 0 )\" in + 'fullscreen')fullscreen;; + 'select')selecting;; + esac } helpscreen() { - echo \"Usage: screenshot [-f] [-s] [-w] [-h] \" - echo \"Options:\" - echo \"-f : Fullscreen screenshot\" - echo \"-s : Select a region for the screenshot\" - echo \"-w : Shows a wofi prompt for screenshot\" - echo \"-h : Shows this fucking help menu\" - echo \"If no flags are selected then -f is chosen\" + echo \"Usage: screenshot [-f] [-s] [-w] [-h] \" + echo \"Options:\" + echo \"-f : Fullscreen screenshot\" + echo \"-s : Select a region for the screenshot\" + echo \"-w : Shows a wofi prompt for screenshot\" + echo \"-h : Shows this fucking help menu\" + echo \"If no flags are selected then -f is chosen\" } case $1 in - -f)fullscreen;; - -s)selecting;; - -h)helpscreen;; - -w)wofirun;; - *)fullscreen;; -esac")) + -f)fullscreen;; + -s)selecting;; + -h)helpscreen;; + -w)wofirun;; + *)fullscreen;; +esac" "\nEOF")) + (chmod #$output #o755)))) (define bin-logout-wofi - (plain-file "bin-logout-wofi" "\ + (computed-file "bin-logout-wofi" + #~(begin + (system (string-append #$coreutils "/bin/cat << \"EOF\" >" #$output "\n" "\ #!/usr/bin/env bash case \"$(printf \"logout\\nreboot\\nshutdown\\nsleep\\n\" | wofi --dmenu -i -H 500 -W 250 -x 0 -y 0 )\" in - 'logout') swaymsg exit;; - 'sleep') ~/.local/bin/suspend ;; - 'reboot') sudo reboot ;; - 'shutdown') sudo poweroff ;; - *) exit 1 ;; -esac")) + 'logout') swaymsg exit;; + 'sleep') ~/.local/bin/suspend ;; + 'reboot') sudo reboot ;; + 'shutdown') sudo poweroff ;; + *) exit 1 ;; +esac" "\nEOF")) + (chmod #$output #o755)))) (define bin-lock - (plain-file "bin-lock" "\ + (computed-file "bin-lock" + #~(begin + (system (string-append #$coreutils "/bin/cat << \"EOF\" >" #$output "\n" "\ #!/usr/bin/env bash if ! ps aux | grep -v grep | grep swaylock; then -# if [[ $(playerctl status) != \"Playing\" ]]; then -# swayidle -w timeout 600 'sudo ~/.local/bin/__suspend' & -# SUSPEND=$! -# fi - swayidle -w timeout 15 'swaymsg \"output * dpms off\"' resume 'swaymsg \"output * dpms on\"' & - SCREENOFF=$! - swaylock - kill $SUSPEND $SCREENOFF -fi")) +# if [[ $(playerctl status) != \"Playing\" ]]; then +# swayidle -w timeout 600 'sudo ~/.local/bin/__suspend' & +# SUSPEND=$! +# fi + swayidle -w timeout 15 'swaymsg \"output * dpms off\"' resume 'swaymsg \"output * dpms on\"' & + SCREENOFF=$! + swaylock + kill $SUSPEND $SCREENOFF +fi" "\nEOF")) + (chmod #$output #o755)))) (define bin-fss - (plain-file "bin-fss" "\ + (computed-file "bin-fss" + #~(begin + (system (string-append #$coreutils "/bin/cat << \"EOF\" >" #$output "\n" "\ #!/usr/bin/env bash # made by aryak.vern.cc modified by cobra.vern.cc if [[ -S \"/tmp/mpvfsfsock\" ]]; then @@ -133,32 +157,41 @@ if [[ -S \"/tmp/mpvfsfsock\" ]]; then else mpv --input-ipc-server=/tmp/mpvfsfsock ~/.local/share/fss.ogg trap \"rm -rf /tmp/mpvfsfsock\" EXIT -fi")) +fi" "\nEOF")) + (chmod #$output #o755)))) (define bin-beep-wrapper - (plain-file "bin-beep-wrapper" "\ + (computed-file "bin-beep-wrapper" + #~(begin + (system (string-append #$coreutils "/bin/cat << \"EOF\" >" #$output "\n" "\ #!/usr/bin/env bash while sleep 1; do - ## Battery beep - if ls /sys/class/power_supply/BAT* &>/dev/null; then - BAT0=$(/dev/null; then + BAT0=$(" #$output "\n" "\ #!/usr/bin/env sh -echo $1 > /proc/acpi/ibm/beep")) +echo $1 > /proc/acpi/ibm/beep" "\nEOF")) + (chmod #$output #o755)))) (define bin-backtick - (plain-file "bin-backtick" "\ + (computed-file "bin-backtick" + #~(begin + (system (string-append #$coreutils "/bin/cat << \"EOF\" >" #$output "\n" "\ #!/usr/bin/env bash cpu() { @@ -166,11 +199,12 @@ cpu() { } ram() { - free -h | sed '2!d' | (read _ _ used _; echo $used) + free -h | sed '2!d' | (read _ _ used _; echo $used) } bat() { - acpi -b | sed 's/Battery /BAT/' + acpi -b | sed 's/Battery /BAT/' } -echo \"$(cpu)% $(ram) $(bat)\"")) +echo \"$(cpu)% $(ram) $(bat)\"" "\nEOF")) + (chmod #$output #o755)))) diff --git a/.config/guix/cobra/homedir.scm b/.config/guix/cobra/homedir.scm index be9847f..b750012 100644 --- a/.config/guix/cobra/homedir.scm +++ b/.config/guix/cobra/homedir.scm @@ -10,35 +10,35 @@ #!/usr/bin/env bash if [[ $HOSTNAME == pp ]]; then - PRIV=doas - UPDATE=\"$PRIV sh -c 'apk update && apk upgrade -aiv && apk fix'\" - COPY_COMMAND=\"wl-copy\" - PASTE_COMMAND=\"wl-paste\" - WIFI=wlan0 - WM=\"bash\" -elif [[ $HOSTNAME == Xenon ]]; then - PRIV=sudo - UPDATE=\"guix pull --branch=master && guix system reconfigure /etc/guix-config/${HOSTNAME,,}.scm && guix package -u\" - COPY_COMMAND=\"wl-copy\" - PASTE_COMMAND=\"wl-paste\" - WIFI=wlp2s0 - WM='sway' - #export WLR_DRM_DEVICES=/dev/dri/card1:/dev/dri/card0 + PRIV=doas + UPDATE=\"$PRIV sh -c 'apk update && apk upgrade -aiv && apk fix'\" + COPY_COMMAND=\"wl-copy\" + PASTE_COMMAND=\"wl-paste\" + WIFI=wlan0 + WM=\"bash\" +elif [[ $HOSTNAME == Oganesson ]]; then + PRIV=sudo + UPDATE=\"guix pull --branch=master && guix system reconfigure /etc/guix-config/${HOSTNAME,,}.scm && guix package -u\" + COPY_COMMAND=\"wl-copy\" + PASTE_COMMAND=\"wl-paste\" + WIFI=wlp2s0 + WM='sway' + #export WLR_DRM_DEVICES=/dev/dri/card1:/dev/dri/card0 elif [[ $HOSTNAME == Neon ]]; then - PRIV=sudo - UPDATE=\"guix pull --branch=master && guix system reconfigure /etc/guix-config/${HOSTNAME,,}.scm && guix package -u\" - COPY_COMMAND=\"wl-copy\" - PASTE_COMMAND=\"wl-paste\" - WIFI=wlp2s0 - WM='sway' - export WLR_NO_HARDWARE_CURSORS=1 + PRIV=sudo + UPDATE=\"guix pull --branch=master && guix system reconfigure /etc/guix-config/${HOSTNAME,,}.scm && guix package -u\" + COPY_COMMAND=\"wl-copy\" + PASTE_COMMAND=\"wl-paste\" + WIFI=wlp2s0 + WM='sway' + export WLR_NO_HARDWARE_CURSORS=1 else - PRIV=sudo - UPDATE=\"$PRIV sh -c 'apt update && apt upgrade && apt autoremove'\" - COPY_COMMAND=\"xclip -i -selection clipboard\" - PASTE_COMMAND=\"xclip -o -selection clipboard\" - WIFI=wlp2s0 - WM=\"bash\" + PRIV=sudo + UPDATE=\"$PRIV sh -c 'apt update && apt upgrade && apt autoremove'\" + COPY_COMMAND=\"xclip -i -selection clipboard\" + PASTE_COMMAND=\"xclip -o -selection clipboard\" + WIFI=wlp2s0 + WM=\"bash\" fi")) (define bash-profile @@ -64,7 +64,7 @@ PERL_MM_OPT=\"INSTALL_BASE=/home/cobra/perl5\"; export PERL_MM_OPT; . ~/.devspec if [[ $(tty) == /dev/tty2 ]]; then - exec $WM + exec $WM fi")) (define prompt @@ -85,195 +85,195 @@ _CYN=\"\\[\\033[36m\\]\" _WHT=\"\\[\\033[37m\\]\" __debug_trap() { - # Set necessary pre-command variables (PROMPT_COMMAND is a - # command so its excluded here) - if [[ \"$BASH_COMMAND\" != \"$PROMPT_COMMAND\" - && \"$LAST_BASH_COMMAND\" == \"$PROMPT_COMMAND\" ]]; then - INC_TIME=1 - LAST_RT=\"$EPOCHREALTIME\" # This should be the last thing done in this function - fi - LAST_BASH_COMMAND=\"$BASH_COMMAND\" + # Set necessary pre-command variables (PROMPT_COMMAND is a + # command so its excluded here) + if [[ \"$BASH_COMMAND\" != \"$PROMPT_COMMAND\" + && \"$LAST_BASH_COMMAND\" == \"$PROMPT_COMMAND\" ]]; then + INC_TIME=1 + LAST_RT=\"$EPOCHREALTIME\" # This should be the last thing done in this function + fi + LAST_BASH_COMMAND=\"$BASH_COMMAND\" } trap '__debug_trap' DEBUG __get_cmd_time() { - # Set hours minutes seconds and remove preceding zeros - local YEAR - local DAYS - local HOUR - local MINS - local SECS - ((YEAR=10#$(($(TZ=UTC printf '%(%Y)T' \"$CMD_TIME\")))-1970)) - ((DAYS=10#$(TZ=UTC printf '%(%j)T' \"$CMD_TIME\"))) - ((HOUR=10#$(TZ=UTC printf '%(%H)T' \"$CMD_TIME\"))) - ((MINS=10#$(TZ=UTC printf '%(%M)T' \"$CMD_TIME\"))) - ((SECS=10#$(TZ=UTC printf '%(%S)T' \"$CMD_TIME\"))) + # Set hours minutes seconds and remove preceding zeros + local YEAR + local DAYS + local HOUR + local MINS + local SECS + ((YEAR=10#$(($(TZ=UTC printf '%(%Y)T' \"$CMD_TIME\")))-1970)) + ((DAYS=10#$(TZ=UTC printf '%(%j)T' \"$CMD_TIME\"))) + ((HOUR=10#$(TZ=UTC printf '%(%H)T' \"$CMD_TIME\"))) + ((MINS=10#$(TZ=UTC printf '%(%M)T' \"$CMD_TIME\"))) + ((SECS=10#$(TZ=UTC printf '%(%S)T' \"$CMD_TIME\"))) - # Choose whether or not to print hours minutes and seconds - [[ $CMD_TIME -ge 31536000 ]] && printf '%sy ' \"${YEAR}\" - [[ $CMD_TIME -ge 86400 ]] && printf '%sd ' \"${DAYS}\" - [[ $CMD_TIME -ge 3600 ]] && printf '%sh ' \"${HOUR}\" - [[ $CMD_TIME -ge 60 ]] && printf '%sm ' \"${MINS}\" - [[ $CMD_TIME -ge 1 ]] && printf '%ss ' \"${SECS}\" - # If you want to have a limit uncomment the next line and replace somenum with - # the minimum microseconds -# [[ $CMD_US -ge somenum ]] && - printf '%sμs' \"${CMD_US:-0}\" + # Choose whether or not to print hours minutes and seconds + [[ $CMD_TIME -ge 31536000 ]] && printf '%sy ' \"${YEAR}\" + [[ $CMD_TIME -ge 86400 ]] && printf '%sd ' \"${DAYS}\" + [[ $CMD_TIME -ge 3600 ]] && printf '%sh ' \"${HOUR}\" + [[ $CMD_TIME -ge 60 ]] && printf '%sm ' \"${MINS}\" + [[ $CMD_TIME -ge 1 ]] && printf '%ss ' \"${SECS}\" + # If you want to have a limit uncomment the next line and replace somenum with + # the minimum microseconds +# [[ $CMD_US -ge somenum ]] && + printf '%sμs' \"${CMD_US:-0}\" } __sig() { - # Giant switch case for getting the name of the signal (`kill -l`) - local ITR=0 - local RET - for RET in \"$@\"; do - if [[ $ITR != 0 ]]; then - printf '%s|%s' \"$_WHT\" \"$_RED\" - fi - ((ITR++)) - case $RET in - 126): \"ACCES\" ;; - 127): \"NOENT\" ;; - 129): \"HUP\" ;; - 130): \"INT\" ;; - 131): \"QUIT\" ;; - 132): \"ILL\" ;; - 133): \"TRAP\" ;; - 134): \"ABRT\" ;; - 135): \"BUS\" ;; - 136): \"FPE\" ;; - 137): \"KILL\" ;; - 138): \"USR\"1 ;; - 139): \"SEGV\" ;; - 140): \"USR\"2 ;; - 141): \"PIPE\" ;; - 142): \"ALRM\" ;; - 143): \"TERM\" ;; - 144): \"STKFLT\" ;; - 145): \"CHLD\" ;; - 146): \"CONT\" ;; - 147): \"STOP\" ;; - 148): \"TSTP\" ;; - 149): \"TTIN\" ;; - 150): \"TTOU\" ;; - 151): \"URG\" ;; - 152): \"XCPU\" ;; - 153): \"XFSZ\" ;; - 154): \"VTALRM\" ;; - 155): \"PROF\" ;; - 156): \"WINCH\" ;; - 157): \"IO\" ;; - 158): \"PWR\" ;; - 159): \"SYS\" ;; - 16[3-9]|1[7-8][0-9]|19[0-2]): \"RT$((RET-128))\" ;; # Savagery - *): \"$RET\" ;; # Print exit code if not in list - esac - printf '%s' \"$_\" - done + # Giant switch case for getting the name of the signal (`kill -l`) + local ITR=0 + local RET + for RET in \"$@\"; do + if [[ $ITR != 0 ]]; then + printf '%s|%s' \"$_WHT\" \"$_RED\" + fi + ((ITR++)) + case $RET in + 126): \"ACCES\" ;; + 127): \"NOENT\" ;; + 129): \"HUP\" ;; + 130): \"INT\" ;; + 131): \"QUIT\" ;; + 132): \"ILL\" ;; + 133): \"TRAP\" ;; + 134): \"ABRT\" ;; + 135): \"BUS\" ;; + 136): \"FPE\" ;; + 137): \"KILL\" ;; + 138): \"USR\"1 ;; + 139): \"SEGV\" ;; + 140): \"USR\"2 ;; + 141): \"PIPE\" ;; + 142): \"ALRM\" ;; + 143): \"TERM\" ;; + 144): \"STKFLT\" ;; + 145): \"CHLD\" ;; + 146): \"CONT\" ;; + 147): \"STOP\" ;; + 148): \"TSTP\" ;; + 149): \"TTIN\" ;; + 150): \"TTOU\" ;; + 151): \"URG\" ;; + 152): \"XCPU\" ;; + 153): \"XFSZ\" ;; + 154): \"VTALRM\" ;; + 155): \"PROF\" ;; + 156): \"WINCH\" ;; + 157): \"IO\" ;; + 158): \"PWR\" ;; + 159): \"SYS\" ;; + 16[3-9]|1[7-8][0-9]|19[0-2]): \"RT$((RET-128))\" ;; # Savagery + *): \"$RET\" ;; # Print exit code if not in list + esac + printf '%s' \"$_\" + done } __ssh() { - local CON=($SSH_CONNECTION) - local SRV_IP=\"${CON[2]}\" - [[ -z \"$SRV_IP\" ]] && return - local SRV_PORT=\"${CON[3]}\" - # 4 chars from startand 4 chars from end - local SRV_IP_CUT=\"${_CYN}${SRV_IP}\" - [[ ${#SRV_IP} -gt 8 ]] && local SRV_IP_CUT=\"${_CYN}${SRV_IP:0:4}${_WHT}*${_CYN}${SRV_IP: -4}\" + local CON=($SSH_CONNECTION) + local SRV_IP=\"${CON[2]}\" + [[ -z \"$SRV_IP\" ]] && return + local SRV_PORT=\"${CON[3]}\" + # 4 chars from startand 4 chars from end + local SRV_IP_CUT=\"${_CYN}${SRV_IP}\" + [[ ${#SRV_IP} -gt 8 ]] && local SRV_IP_CUT=\"${_CYN}${SRV_IP:0:4}${_WHT}*${_CYN}${SRV_IP: -4}\" - printf '%s' \"${_GRN}${_BLU}[${SRV_IP_CUT}${_PRP}${_BLD}:${_NON}${_CYN}${SRV_PORT}${_BLU}]${_NON}\" + printf '%s' \"${_GRN}${_BLU}[${SRV_IP_CUT}${_PRP}${_BLD}:${_NON}${_CYN}${SRV_PORT}${_BLU}]${_NON}\" } __guix_env() { - local re='[\\(]?\\(\"([^\"]*)\"' - if [[ \"$GUIX_ENVIRONMENT\" ]]; then - local PACKAGES=($(while read -r line; do - [[ \"$line\" =~ $re ]] && printf '%s ' \"${BASH_REMATCH[1]}\" - done < $GUIX_ENVIRONMENT/manifest)) - if [[ ${#PACKAGES[@]} -eq 2 ]]; then - printf \"${_BLD}${_BLU}[${_NON}${_YLW}Guix${_NON}: ${_WHT}%s ${_NON}+ ${_PRP}%d ${_NON}pkg${_BLD}${_BLU}] \" \"${PACKAGES[0]}\" \"$((${#PACKAGES[@]}-1))\" - elif [[ ${#PACKAGES[@]} -gt 2 ]]; then - printf \"${_BLD}${_BLU}[${_NON}${_YLW}Guix${_NON}: ${_WHT}%s ${_NON}+ ${_PRP}%d ${_NON}pkgs${_BLD}${_BLU}] \" \"${PACKAGES[0]}\" \"$((${#PACKAGES[@]}-1))\" - else - printf \"${_BLD}${_BLU}[${_NON}${_YLW}Guix${_NON}: ${_WHT}%s${_BLD}${_BLU}] \" \"${PACKAGES[@]}\" - fi - fi + local re='[\\(]?\\(\"([^\"]*)\"' + if [[ \"$GUIX_ENVIRONMENT\" ]]; then + local PACKAGES=($(while read -r line; do + [[ \"$line\" =~ $re ]] && printf '%s ' \"${BASH_REMATCH[1]}\" + done < $GUIX_ENVIRONMENT/manifest)) + if [[ ${#PACKAGES[@]} -eq 2 ]]; then + printf \"${_BLD}${_BLU}[${_NON}${_YLW}Guix${_NON}: ${_WHT}%s ${_NON}+ ${_PRP}%d ${_NON}pkg${_BLD}${_BLU}] \" \"${PACKAGES[0]}\" \"$((${#PACKAGES[@]}-1))\" + elif [[ ${#PACKAGES[@]} -gt 2 ]]; then + printf \"${_BLD}${_BLU}[${_NON}${_YLW}Guix${_NON}: ${_WHT}%s ${_NON}+ ${_PRP}%d ${_NON}pkgs${_BLD}${_BLU}] \" \"${PACKAGES[0]}\" \"$((${#PACKAGES[@]}-1))\" + else + printf \"${_BLD}${_BLU}[${_NON}${_YLW}Guix${_NON}: ${_WHT}%s${_BLD}${_BLU}] \" \"${PACKAGES[@]}\" + fi + fi } __prompt() { - # Get exit code (must be first) - local PLC=(\"${PIPESTATUS[@]}\") + # Get exit code (must be first) + local PLC=(\"${PIPESTATUS[@]}\") - # Reset time when prompt was first displayed after command - # this contributes to the ~40 microsecond difference in $CMD_US and the actual time it took - if [[ \"$INC_TIME\" != 0 ]]; then - PROMPT_RT=\"$EPOCHREALTIME\" - INC_TIME=0 - fi + # Reset time when prompt was first displayed after command + # this contributes to the ~40 microsecond difference in $CMD_US and the actual time it took + if [[ \"$INC_TIME\" != 0 ]]; then + PROMPT_RT=\"$EPOCHREALTIME\" + INC_TIME=0 + fi - # *_RT may not be set - LAST_RT=\"${LAST_RT:-$EPOCHREALTIME}\" - PROMPT_RT=\"${PROMPT_RT:-$EPOCHREALTIME}\" + # *_RT may not be set + LAST_RT=\"${LAST_RT:-$EPOCHREALTIME}\" + PROMPT_RT=\"${PROMPT_RT:-$EPOCHREALTIME}\" - # Get relative times + # Get relative times - # Remove decimal point, simulating multiplying by 1 million - PROMPT_RT1M=\"${PROMPT_RT/.}\" - PROMPT_RT1M=\"${PROMPT_RT1M/,}\" - LAST_RT1M=\"${LAST_RT/.}\" - LAST_RT1M=\"${LAST_RT1M/,}\" + # Remove decimal point, simulating multiplying by 1 million + PROMPT_RT1M=\"${PROMPT_RT/.}\" + PROMPT_RT1M=\"${PROMPT_RT1M/,}\" + LAST_RT1M=\"${LAST_RT/.}\" + LAST_RT1M=\"${LAST_RT1M/,}\" - ((CMD_US=PROMPT_RT1M-LAST_RT1M)) + ((CMD_US=PROMPT_RT1M-LAST_RT1M)) - CMD_TIME=0 + CMD_TIME=0 - # Divide by 1 million to get a more accurate difference - ((CMD_TIME=CMD_US/1000000)) + # Divide by 1 million to get a more accurate difference + ((CMD_TIME=CMD_US/1000000)) - [[ ${#CMD_US} -lt 6 ]] || CMD_US=\"${CMD_US: -6}\" - ((CMD_US=10#$CMD_US)) + [[ ${#CMD_US} -lt 6 ]] || CMD_US=\"${CMD_US: -6}\" + ((CMD_US=10#$CMD_US)) - # Set prompt sections + # Set prompt sections - local SIG - local COL - local UHD - local TIME - local IND - local GUIX + local SIG + local COL + local UHD + local TIME + local IND + local GUIX - # Text + # Text - # ssh detection and indicator - [[ \"$SSH_CONNECTION\" ]] && local SSH=\"$(__ssh) \" + # ssh detection and indicator + [[ \"$SSH_CONNECTION\" ]] && local SSH=\"$(__ssh) \" - # [INT], [4], etc. - local RET - for RET in \"${PLC[@]}\"; do - if [[ $RET -gt 0 ]]; then - SIG=\"$(printf '%s[%s%s%s] ' \"$_BLU\" \"$_RED\" \"$(__sig \"${PLC[@]}\")\" \"$_BLU\")\" - break - fi - done + # [INT], [4], etc. + local RET + for RET in \"${PLC[@]}\"; do + if [[ $RET -gt 0 ]]; then + SIG=\"$(printf '%s[%s%s%s] ' \"$_BLU\" \"$_RED\" \"$(__sig \"${PLC[@]}\")\" \"$_BLU\")\" + break + fi + done - # Guix shell environment - GUIX=\"$(__guix_env)\" + # Guix shell environment + GUIX=\"$(__guix_env)\" - # [user@homeserver:~] - COL=\"$([[ $UID == 0 ]] && printf '%s' \"$_RED\" || printf '%s' \"$_YLW\")\" - UHD=\"${_BLD}${_BLU}[${COL}\\u${_PRP}@${_CYN}\\h${_PRP}:${_GRN}\\w${_BLU}]\" + # [user@homeserver:~] + COL=\"$([[ $UID == 0 ]] && printf '%s' \"$_RED\" || printf '%s' \"$_YLW\")\" + UHD=\"${_BLD}${_BLU}[${COL}\\u${_PRP}@${_CYN}\\h${_PRP}:${_GRN}\\w${_BLU}]\" - # 2y 351d 12m 43s 382969μs - TIME=\"${_YLW}$(__get_cmd_time)\" + # 2y 351d 12m 43s 382969μs + TIME=\"${_YLW}$(__get_cmd_time)\" - # Random colored $ or # - _RAND256=\"\\[\\033[38;2;$((RANDOM%256));$((RANDOM%256));$((RANDOM%256))m\\]\" - IND=\"${_RAND256}\\\\$\" + # Random colored $ or # + _RAND256=\"\\[\\033[38;2;$((RANDOM%256));$((RANDOM%256));$((RANDOM%256))m\\]\" + IND=\"${_RAND256}\\\\$\" - # Set the prompt - PS1=\"${_NON}${SSH}${GUIX}${SIG}${UHD} ${TIME} ${IND} ${_NON}\" + # Set the prompt + PS1=\"${_NON}${SSH}${GUIX}${SIG}${UHD} ${TIME} ${IND} ${_NON}\" } - + PROMPT_COMMAND=__prompt")) (define bashrc @@ -298,7 +298,7 @@ export GPG_TTY=$(tty) export MANPATH=/run/current-system/profile/share/man:/home/cobra/.guix-profile/share/man:/run/current-system/profile/share/man:/home/cobra/.guix-home/profile/share/man clear() { - printf '\\033c' # faster than ncurses clear by a lot + printf '\\033c' # faster than ncurses clear by a lot } # Other aliases @@ -319,7 +319,7 @@ alias dico=\"dico -d en-wiktionary\" # Random string (passwords) randstr() { - tr -cd '[:graph:]' >($COPY_COMMAND) + printf \"%s\" \"$( >($COPY_COMMAND) } # URL-encode stdin urlencode() { - LC_COLLATE_OLD=$LC_COLLATE - LC_COLLATE=C + LC_COLLATE_OLD=$LC_COLLATE + LC_COLLATE=C - local TEXT=\"$( /dev/null \\;; } fixdh() { - diffhome | while read -r _ SRC _ DEST _; do - cp $SRC $DEST; - done; + diffhome | while read -r _ SRC _ DEST _; do + cp $SRC $DEST; + done; } strlen() { - N=$(wc -c <<< \"$*\") - ((N--)) - printf '%u\\n' \"$N\" + N=$(wc -c <<< \"$*\") + ((N--)) + printf '%u\\n' \"$N\" } uppweb() { - ssh vern.cc 'cd ~/public_html; git pull' + ssh vern.cc 'cd ~/public_html; git pull' } caption() { - [ -z \"$3\" ] && { - echo \"Usage: caption [input] [output] [text...]\" - return 1 - } - local FILE=\"$1\" - local OUT=\"$2\" - shift 2 - local TEXT=\"$*\" - local WIDTH=\"$(identify -format \"%[w]\\n\" \"$FILE\" | head -n1)\" - local HEIGHT=\"$(identify -format \"%[h]\\n\" \"$FILE\" | head -n1)\" - local FONT_SIZE=\"$(((HEIGHT+WIDTH)/20))\" - convert -gravity north \\( -size \"${WIDTH}x\" -pointsize \"$FONT_SIZE\" -font 'Liberation-Sans-Bold' caption:\"$TEXT\" -gravity Center -extent \"${WIDTH}x\" \\) \"$FILE\" -append \"$OUT\" + [ -z \"$3\" ] && { + echo \"Usage: caption [input] [output] [text...]\" + return 1 + } + local FILE=\"$1\" + local OUT=\"$2\" + shift 2 + local TEXT=\"$*\" + local WIDTH=\"$(identify -format \"%[w]\\n\" \"$FILE\" | head -n1)\" + local HEIGHT=\"$(identify -format \"%[h]\\n\" \"$FILE\" | head -n1)\" + local FONT_SIZE=\"$(((HEIGHT+WIDTH)/20))\" + convert -gravity north \\( -size \"${WIDTH}x\" -pointsize \"$FONT_SIZE\" -font 'Liberation-Sans-Bold' caption:\"$TEXT\" -gravity Center -extent \"${WIDTH}x\" \\) \"$FILE\" -append \"$OUT\" } captionvid() { - [ -z \"$3\" ] && { - echo \"Usage: captionvid [input] [output] [text...]\" - return 1 - } - rm /tmp/caption.*.png - FPS=\"$(ffmpeg -i \"$1\" 2>&1 |grep fps | sed 's/.* \\([0-9]\\+\\) fps.*/\\1/')\" - IN=\"$1\" - OUT=\"$2\" - shift 2 - ffmpeg -i \"$IN\" \"/tmp/caption.%02d.png\" - for i in /tmp/caption.*; do - caption \"$i\" \"$i-new.png\" \"$*\" - done - ffmpeg -framerate $FPS -i \"/tmp/caption.%02d.png-new.png\" \"$OUT\" - rm /tmp/caption.*.png + [ -z \"$3\" ] && { + echo \"Usage: captionvid [input] [output] [text...]\" + return 1 + } + rm /tmp/caption.*.png + FPS=\"$(ffmpeg -i \"$1\" 2>&1 |grep fps | sed 's/.* \\([0-9]\\+\\) fps.*/\\1/')\" + IN=\"$1\" + OUT=\"$2\" + shift 2 + ffmpeg -i \"$IN\" \"/tmp/caption.%02d.png\" + for i in /tmp/caption.*; do + caption \"$i\" \"$i-new.png\" \"$*\" + done + ffmpeg -framerate $FPS -i \"/tmp/caption.%02d.png-new.png\" \"$OUT\" + rm /tmp/caption.*.png } topbottom() { - [ -z \"$3\" ] && { - echo \"Usage: caption [input] [output] [text...]\" - return 1 - } - local FILE=\"$1\" - local OUT=\"$2\" - shift 2 - local WIDTH=\"$(identify -format \"%[w]\\n\" \"$FILE\" | head -n1)\" - local HEIGHT=\"$(identify -format \"%[h]\\n\" \"$FILE\" | head -n1)\" - local FONT_SIZE=\"$(((HEIGHT+WIDTH)/20))\" - convert -size \"${WIDTH}x\" -stroke black -strokewidth 3 -fill white -pointsize \"$FONT_SIZE\" -font 'Liberation-Sans-Bold' -gravity Center -extent \"${WIDTH}x\" -gravity north \\( -annotate +0+0 \"$1\" \\) -gravity south \\( -annotate +0+0 \"$2\" \\) \"$FILE\" -append \"$OUT\" + [ -z \"$3\" ] && { + echo \"Usage: caption [input] [output] [text...]\" + return 1 + } + local FILE=\"$1\" + local OUT=\"$2\" + shift 2 + local WIDTH=\"$(identify -format \"%[w]\\n\" \"$FILE\" | head -n1)\" + local HEIGHT=\"$(identify -format \"%[h]\\n\" \"$FILE\" | head -n1)\" + local FONT_SIZE=\"$(((HEIGHT+WIDTH)/20))\" + convert -size \"${WIDTH}x\" -stroke black -strokewidth 3 -fill white -pointsize \"$FONT_SIZE\" -font 'Liberation-Sans-Bold' -gravity Center -extent \"${WIDTH}x\" -gravity north \\( -annotate +0+0 \"$1\" \\) -gravity south \\( -annotate +0+0 \"$2\" \\) \"$FILE\" -append \"$OUT\" } topbottomvid() { - [ -z \"$3\" ] && { - echo \"Usage: captionvid [input] [output] [text...]\" - return 1 - } - rm /tmp/caption.*.png - FPS=\"$(ffmpeg -i \"$1\" 2>&1 |grep fps | sed 's/.* \\([0-9]\\+\\) fps.*/\\1/')\" - IN=\"$1\" - OUT=\"$2\" - shift 2 - ffmpeg -i \"$IN\" \"/tmp/caption.%02d.png\" - for i in /tmp/caption.*; do - topbottom \"$i\" \"$i-new.png\" \"$1\" \"$2\" - done - ffmpeg -framerate $FPS -i \"/tmp/caption.%02d.png-new.png\" \"$OUT\" - rm /tmp/caption.*.png + [ -z \"$3\" ] && { + echo \"Usage: captionvid [input] [output] [text...]\" + return 1 + } + rm /tmp/caption.*.png + FPS=\"$(ffmpeg -i \"$1\" 2>&1 |grep fps | sed 's/.* \\([0-9]\\+\\) fps.*/\\1/')\" + IN=\"$1\" + OUT=\"$2\" + shift 2 + ffmpeg -i \"$IN\" \"/tmp/caption.%02d.png\" + for i in /tmp/caption.*; do + topbottom \"$i\" \"$i-new.png\" \"$1\" \"$2\" + done + ffmpeg -framerate $FPS -i \"/tmp/caption.%02d.png-new.png\" \"$OUT\" + rm /tmp/caption.*.png } subcipher() { - local COLOR PERM L1 line grep word - if [ $# -lt 3 ]; then - if [ $# -lt 2 ] || [[ \"$1\" != \"0\" && \"$1\" != \"1\" ]]; then - printf \"Usage: [0|1] subcipher file [string...]\\n\" - return 1 - fi - fi - COLOR=\"$1\" - shift - PERM=\"$1\" - shift - [ -z \"$*\" ] && set -- \"$( ${1:-$(date -u -I)}.svg + ssh vern \"${1:-/opt/gnuplot/users/gnuplot.sh}; cat /opt/gnuplot/users/${1:-$(date -u -I)}.svg\" > ${1:-$(date -u -I)}.svg } mnplot() { - ssh mythos \"${1:-/opt/gnuplot/gnuplot.sh}; cat /opt/gnuplot/${1:-$(date -u -I)}.svg\" > ${1:-$(date -u -I)}.svg + ssh mythos \"${1:-/opt/gnuplot/gnuplot.sh}; cat /opt/gnuplot/${1:-$(date -u -I)}.svg\" > ${1:-$(date -u -I)}.svg } vnplot() { - ssh vern \"${1:-/opt/gnuplot/net/gnuplot.sh}; cat /opt/gnuplot/net/${1:-$(date -u -I)}.svg\" > ${1:-$(date -u -I)}.svg + ssh vern \"${1:-/opt/gnuplot/net/gnuplot.sh}; cat /opt/gnuplot/net/${1:-$(date -u -I)}.svg\" > ${1:-$(date -u -I)}.svg } vpplot() { - ssh vern \"${1:-/opt/gnuplot/power/gnuplot.sh}; cat /opt/gnuplot/power/${1:-$(date -u -I)}.svg\" > ${1:-$(date -u -I)}.svg + ssh vern \"${1:-/opt/gnuplot/power/gnuplot.sh}; cat /opt/gnuplot/power/${1:-$(date -u -I)}.svg\" > ${1:-$(date -u -I)}.svg } inplot() { - ssh iceberg \"${1:-~/gnuplot/gnuplot.sh}; cat ~/gnuplot/${1:-$(date -u -I)}.svg\" > ${1:-$(date -u -I)}.svg + ssh iceberg \"${1:-~/gnuplot/gnuplot.sh}; cat ~/gnuplot/${1:-$(date -u -I)}.svg\" > ${1:-$(date -u -I)}.svg } cnplot() { - ssh crescent \"${1:-/opt/gnuplot/net/gnuplot.sh}; cat /opt/gnuplot/net/${1:-$(date -u -I)}.svg\" > ${1:-$(date -u -I)}.svg + ssh crescent \"${1:-/opt/gnuplot/net/gnuplot.sh}; cat /opt/gnuplot/net/${1:-$(date -u -I)}.svg\" > ${1:-$(date -u -I)}.svg } cpplot() { - ssh crescent \"${1:-/opt/gnuplot/power/gnuplot.sh}; cat /opt/gnuplot/power/${1:-$(date -u -I)}.svg\" > ${1:-$(date -u -I)}.svg + ssh crescent \"${1:-/opt/gnuplot/power/gnuplot.sh}; cat /opt/gnuplot/power/${1:-$(date -u -I)}.svg\" > ${1:-$(date -u -I)}.svg } reconf() { - $PRIV su - -c \"guix system reconfigure /etc/guix-config/${HOSTNAME,,}.scm\" + $PRIV su - -c \"guix system reconfigure /etc/guix-config/${HOSTNAME,,}.scm\" } hreconf() { - guix home reconfigure $HOME/.config/guix/home.scm + guix home reconfigure $HOME/.config/guix/home.scm } geng() { - < \"$1\" sed 's/\\s*;.*//' | grep -ve '^$' -e '^T' | awk '{print \"N\"NR\" \"$0}' > \"$2\" + < \"$1\" sed 's/\\s*;.*//' | grep -ve '^$' -e '^T' | awk '{print \"N\"NR\" \"$0}' > \"$2\" } mkmshex() { - FILE=\"${1%.*}\" - microscheme \"$1\" - avr-gcc -B /run/current-system/profile/avr/lib/avr5 -mmcu=\"$2\" -g -Os \"$FILE\".s -o \"$FILE\".elf - avr-objcopy -Oihex \"$FILE\".o \"$FILE\".hex + FILE=\"${1%.*}\" + microscheme \"$1\" + avr-gcc -B /run/current-system/profile/avr/lib/avr5 -mmcu=\"$2\" -g -Os \"$FILE\".s -o \"$FILE\".elf + avr-objcopy -Oihex \"$FILE\".o \"$FILE\".hex } uploadhex() { - avrdude -C/run/current-system/profile/etc/avrdude.conf -v -p\"$2\" -carduino -P${3:-/dev/ttyS0} -U\"flash:w:$1:i\" + avrdude -C/run/current-system/profile/etc/avrdude.conf -v -p\"$2\" -carduino -P${3:-/dev/ttyS0} -U\"flash:w:$1:i\" } gshpkg() { - local re='[\\(]?\\(\"([^\"]*)\"' - if [[ \"$GUIX_ENVIRONMENT\" ]]; then - local PACKAGES=($(while read -r line; do - [[ \"$line\" =~ $re ]] && printf '%s ' \"${BASH_REMATCH[1]}\" - done < $GUIX_ENVIRONMENT/manifest)) - echo ${PACKAGES[@]} - fi + local re='[\\(]?\\(\"([^\"]*)\"' + if [[ \"$GUIX_ENVIRONMENT\" ]]; then + local PACKAGES=($(while read -r line; do + [[ \"$line\" =~ $re ]] && printf '%s ' \"${BASH_REMATCH[1]}\" + done < $GUIX_ENVIRONMENT/manifest)) + echo ${PACKAGES[@]} + fi }")) diff --git a/.config/guix/home.scm b/.config/guix/home.scm index bedd49d..ce6325e 100644 --- a/.config/guix/home.scm +++ b/.config/guix/home.scm @@ -10,10 +10,10 @@ (gnu services mcron) (guix gexp) - ;; Deranged Guix Home Configuration Usage(TM) + ;; Deranged Guix Home Usage(TM) (cobra homedir) - (cobra bin) - (cobra config)) + (cobra config) + (cobra bin)) (define webfetch-job #~(job "*/1 * * * *" diff --git a/.devspec b/.devspec index c568262..58ce589 100644 --- a/.devspec +++ b/.devspec @@ -1,33 +1,33 @@ #!/usr/bin/env bash if [[ $HOSTNAME == pp ]]; then - PRIV=doas - UPDATE="$PRIV sh -c 'apk update && apk upgrade -aiv && apk fix'" - COPY_COMMAND="wl-copy" - PASTE_COMMAND="wl-paste" - WIFI=wlan0 - WM="bash" -elif [[ $HOSTNAME == Xenon ]]; then - PRIV=sudo - UPDATE="guix pull --branch=master && guix system reconfigure /etc/guix-config/${HOSTNAME,,}.scm && guix package -u" - COPY_COMMAND="wl-copy" - PASTE_COMMAND="wl-paste" - WIFI=wlp2s0 - WM='sway' - #export WLR_DRM_DEVICES=/dev/dri/card1:/dev/dri/card0 + PRIV=doas + UPDATE="$PRIV sh -c 'apk update && apk upgrade -aiv && apk fix'" + COPY_COMMAND="wl-copy" + PASTE_COMMAND="wl-paste" + WIFI=wlan0 + WM="bash" +elif [[ $HOSTNAME == Oganesson ]]; then + PRIV=sudo + UPDATE="guix pull --branch=master && guix system reconfigure /etc/guix-config/${HOSTNAME,,}.scm && guix package -u" + COPY_COMMAND="wl-copy" + PASTE_COMMAND="wl-paste" + WIFI=wlp2s0 + WM='sway' + #export WLR_DRM_DEVICES=/dev/dri/card1:/dev/dri/card0 elif [[ $HOSTNAME == Neon ]]; then - PRIV=sudo - UPDATE="guix pull --branch=master && guix system reconfigure /etc/guix-config/${HOSTNAME,,}.scm && guix package -u" - COPY_COMMAND="wl-copy" - PASTE_COMMAND="wl-paste" - WIFI=wlp2s0 - WM='sway' - export WLR_NO_HARDWARE_CURSORS=1 + PRIV=sudo + UPDATE="guix pull --branch=master && guix system reconfigure /etc/guix-config/${HOSTNAME,,}.scm && guix package -u" + COPY_COMMAND="wl-copy" + PASTE_COMMAND="wl-paste" + WIFI=wlp2s0 + WM='sway' + export WLR_NO_HARDWARE_CURSORS=1 else - PRIV=sudo - UPDATE="$PRIV sh -c 'apt update && apt upgrade && apt autoremove'" - COPY_COMMAND="xclip -i -selection clipboard" - PASTE_COMMAND="xclip -o -selection clipboard" - WIFI=wlp2s0 - WM="bash" + PRIV=sudo + UPDATE="$PRIV sh -c 'apt update && apt upgrade && apt autoremove'" + COPY_COMMAND="xclip -i -selection clipboard" + PASTE_COMMAND="xclip -o -selection clipboard" + WIFI=wlp2s0 + WM="bash" fi \ No newline at end of file diff --git a/.local/bin/__suspend b/.local/bin/__suspend index 27d08d6..410e059 100755 --- a/.local/bin/__suspend +++ b/.local/bin/__suspend @@ -1,2 +1,2 @@ #!/usr/bin/env bash -echo mem > /sys/power/state \ No newline at end of file +echo mem > /sys/power/state diff --git a/.local/bin/backtick b/.local/bin/backtick index 7b84a75..e451748 100755 --- a/.local/bin/backtick +++ b/.local/bin/backtick @@ -5,11 +5,11 @@ cpu() { } ram() { - free -h | sed '2!d' | (read _ _ used _; echo $used) + free -h | sed '2!d' | (read _ _ used _; echo $used) } bat() { - acpi -b | sed 's/Battery /BAT/' + acpi -b | sed 's/Battery /BAT/' } -echo "$(cpu)% $(ram) $(bat)" \ No newline at end of file +echo "$(cpu)% $(ram) $(bat)" diff --git a/.local/bin/beep b/.local/bin/beep index 738bfe1..5846521 100755 --- a/.local/bin/beep +++ b/.local/bin/beep @@ -1,2 +1,2 @@ #!/usr/bin/env sh -echo $1 > /proc/acpi/ibm/beep \ No newline at end of file +echo $1 > /proc/acpi/ibm/beep diff --git a/.local/bin/beep-wrapper b/.local/bin/beep-wrapper index 3a37dfe..0f33cce 100755 --- a/.local/bin/beep-wrapper +++ b/.local/bin/beep-wrapper @@ -1,14 +1,14 @@ #!/usr/bin/env bash while sleep 1; do - ## Battery beep - if ls /sys/class/power_supply/BAT* &>/dev/null; then - BAT0=$(/dev/null; then + BAT0=$(/gnu/store/fivbm252q6y700l89dvqm4mgdgpf0dpc-bin-torbrowser1 set -x cd Browser patchelf --set-interpreter \$LIBRARY_PATH/ld-linux-x86-64.so.2 firefox.real patchelf --set-interpreter \$LIBRARY_PATH/ld-linux-x86-64.so.2 TorBrowser/Tor/tor LD_LIBRARY_PATH=\$LIBRARY_PATH ./start-tor-browser -v -EOF \ No newline at end of file +EOT diff --git a/.prompt b/.prompt index 32b1f6a..5b58a17 100644 --- a/.prompt +++ b/.prompt @@ -14,193 +14,193 @@ _CYN="\[\033[36m\]" _WHT="\[\033[37m\]" __debug_trap() { - # Set necessary pre-command variables (PROMPT_COMMAND is a - # command so its excluded here) - if [[ "$BASH_COMMAND" != "$PROMPT_COMMAND" - && "$LAST_BASH_COMMAND" == "$PROMPT_COMMAND" ]]; then - INC_TIME=1 - LAST_RT="$EPOCHREALTIME" # This should be the last thing done in this function - fi - LAST_BASH_COMMAND="$BASH_COMMAND" + # Set necessary pre-command variables (PROMPT_COMMAND is a + # command so its excluded here) + if [[ "$BASH_COMMAND" != "$PROMPT_COMMAND" + && "$LAST_BASH_COMMAND" == "$PROMPT_COMMAND" ]]; then + INC_TIME=1 + LAST_RT="$EPOCHREALTIME" # This should be the last thing done in this function + fi + LAST_BASH_COMMAND="$BASH_COMMAND" } trap '__debug_trap' DEBUG __get_cmd_time() { - # Set hours minutes seconds and remove preceding zeros - local YEAR - local DAYS - local HOUR - local MINS - local SECS - ((YEAR=10#$(($(TZ=UTC printf '%(%Y)T' "$CMD_TIME")))-1970)) - ((DAYS=10#$(TZ=UTC printf '%(%j)T' "$CMD_TIME"))) - ((HOUR=10#$(TZ=UTC printf '%(%H)T' "$CMD_TIME"))) - ((MINS=10#$(TZ=UTC printf '%(%M)T' "$CMD_TIME"))) - ((SECS=10#$(TZ=UTC printf '%(%S)T' "$CMD_TIME"))) + # Set hours minutes seconds and remove preceding zeros + local YEAR + local DAYS + local HOUR + local MINS + local SECS + ((YEAR=10#$(($(TZ=UTC printf '%(%Y)T' "$CMD_TIME")))-1970)) + ((DAYS=10#$(TZ=UTC printf '%(%j)T' "$CMD_TIME"))) + ((HOUR=10#$(TZ=UTC printf '%(%H)T' "$CMD_TIME"))) + ((MINS=10#$(TZ=UTC printf '%(%M)T' "$CMD_TIME"))) + ((SECS=10#$(TZ=UTC printf '%(%S)T' "$CMD_TIME"))) - # Choose whether or not to print hours minutes and seconds - [[ $CMD_TIME -ge 31536000 ]] && printf '%sy ' "${YEAR}" - [[ $CMD_TIME -ge 86400 ]] && printf '%sd ' "${DAYS}" - [[ $CMD_TIME -ge 3600 ]] && printf '%sh ' "${HOUR}" - [[ $CMD_TIME -ge 60 ]] && printf '%sm ' "${MINS}" - [[ $CMD_TIME -ge 1 ]] && printf '%ss ' "${SECS}" - # If you want to have a limit uncomment the next line and replace somenum with - # the minimum microseconds -# [[ $CMD_US -ge somenum ]] && - printf '%sμs' "${CMD_US:-0}" + # Choose whether or not to print hours minutes and seconds + [[ $CMD_TIME -ge 31536000 ]] && printf '%sy ' "${YEAR}" + [[ $CMD_TIME -ge 86400 ]] && printf '%sd ' "${DAYS}" + [[ $CMD_TIME -ge 3600 ]] && printf '%sh ' "${HOUR}" + [[ $CMD_TIME -ge 60 ]] && printf '%sm ' "${MINS}" + [[ $CMD_TIME -ge 1 ]] && printf '%ss ' "${SECS}" + # If you want to have a limit uncomment the next line and replace somenum with + # the minimum microseconds +# [[ $CMD_US -ge somenum ]] && + printf '%sμs' "${CMD_US:-0}" } __sig() { - # Giant switch case for getting the name of the signal (`kill -l`) - local ITR=0 - local RET - for RET in "$@"; do - if [[ $ITR != 0 ]]; then - printf '%s|%s' "$_WHT" "$_RED" - fi - ((ITR++)) - case $RET in - 126): "ACCES" ;; - 127): "NOENT" ;; - 129): "HUP" ;; - 130): "INT" ;; - 131): "QUIT" ;; - 132): "ILL" ;; - 133): "TRAP" ;; - 134): "ABRT" ;; - 135): "BUS" ;; - 136): "FPE" ;; - 137): "KILL" ;; - 138): "USR"1 ;; - 139): "SEGV" ;; - 140): "USR"2 ;; - 141): "PIPE" ;; - 142): "ALRM" ;; - 143): "TERM" ;; - 144): "STKFLT" ;; - 145): "CHLD" ;; - 146): "CONT" ;; - 147): "STOP" ;; - 148): "TSTP" ;; - 149): "TTIN" ;; - 150): "TTOU" ;; - 151): "URG" ;; - 152): "XCPU" ;; - 153): "XFSZ" ;; - 154): "VTALRM" ;; - 155): "PROF" ;; - 156): "WINCH" ;; - 157): "IO" ;; - 158): "PWR" ;; - 159): "SYS" ;; - 16[3-9]|1[7-8][0-9]|19[0-2]): "RT$((RET-128))" ;; # Savagery - *): "$RET" ;; # Print exit code if not in list - esac - printf '%s' "$_" - done + # Giant switch case for getting the name of the signal (`kill -l`) + local ITR=0 + local RET + for RET in "$@"; do + if [[ $ITR != 0 ]]; then + printf '%s|%s' "$_WHT" "$_RED" + fi + ((ITR++)) + case $RET in + 126): "ACCES" ;; + 127): "NOENT" ;; + 129): "HUP" ;; + 130): "INT" ;; + 131): "QUIT" ;; + 132): "ILL" ;; + 133): "TRAP" ;; + 134): "ABRT" ;; + 135): "BUS" ;; + 136): "FPE" ;; + 137): "KILL" ;; + 138): "USR"1 ;; + 139): "SEGV" ;; + 140): "USR"2 ;; + 141): "PIPE" ;; + 142): "ALRM" ;; + 143): "TERM" ;; + 144): "STKFLT" ;; + 145): "CHLD" ;; + 146): "CONT" ;; + 147): "STOP" ;; + 148): "TSTP" ;; + 149): "TTIN" ;; + 150): "TTOU" ;; + 151): "URG" ;; + 152): "XCPU" ;; + 153): "XFSZ" ;; + 154): "VTALRM" ;; + 155): "PROF" ;; + 156): "WINCH" ;; + 157): "IO" ;; + 158): "PWR" ;; + 159): "SYS" ;; + 16[3-9]|1[7-8][0-9]|19[0-2]): "RT$((RET-128))" ;; # Savagery + *): "$RET" ;; # Print exit code if not in list + esac + printf '%s' "$_" + done } __ssh() { - local CON=($SSH_CONNECTION) - local SRV_IP="${CON[2]}" - [[ -z "$SRV_IP" ]] && return - local SRV_PORT="${CON[3]}" - # 4 chars from startand 4 chars from end - local SRV_IP_CUT="${_CYN}${SRV_IP}" - [[ ${#SRV_IP} -gt 8 ]] && local SRV_IP_CUT="${_CYN}${SRV_IP:0:4}${_WHT}*${_CYN}${SRV_IP: -4}" + local CON=($SSH_CONNECTION) + local SRV_IP="${CON[2]}" + [[ -z "$SRV_IP" ]] && return + local SRV_PORT="${CON[3]}" + # 4 chars from startand 4 chars from end + local SRV_IP_CUT="${_CYN}${SRV_IP}" + [[ ${#SRV_IP} -gt 8 ]] && local SRV_IP_CUT="${_CYN}${SRV_IP:0:4}${_WHT}*${_CYN}${SRV_IP: -4}" - printf '%s' "${_GRN}${_BLU}[${SRV_IP_CUT}${_PRP}${_BLD}:${_NON}${_CYN}${SRV_PORT}${_BLU}]${_NON}" + printf '%s' "${_GRN}${_BLU}[${SRV_IP_CUT}${_PRP}${_BLD}:${_NON}${_CYN}${SRV_PORT}${_BLU}]${_NON}" } __guix_env() { - local re='[\(]?\("([^"]*)"' - if [[ "$GUIX_ENVIRONMENT" ]]; then - local PACKAGES=($(while read -r line; do - [[ "$line" =~ $re ]] && printf '%s ' "${BASH_REMATCH[1]}" - done < $GUIX_ENVIRONMENT/manifest)) - if [[ ${#PACKAGES[@]} -eq 2 ]]; then - printf "${_BLD}${_BLU}[${_NON}${_YLW}Guix${_NON}: ${_WHT}%s ${_NON}+ ${_PRP}%d ${_NON}pkg${_BLD}${_BLU}] " "${PACKAGES[0]}" "$((${#PACKAGES[@]}-1))" - elif [[ ${#PACKAGES[@]} -gt 2 ]]; then - printf "${_BLD}${_BLU}[${_NON}${_YLW}Guix${_NON}: ${_WHT}%s ${_NON}+ ${_PRP}%d ${_NON}pkgs${_BLD}${_BLU}] " "${PACKAGES[0]}" "$((${#PACKAGES[@]}-1))" - else - printf "${_BLD}${_BLU}[${_NON}${_YLW}Guix${_NON}: ${_WHT}%s${_BLD}${_BLU}] " "${PACKAGES[@]}" - fi - fi + local re='[\(]?\("([^"]*)"' + if [[ "$GUIX_ENVIRONMENT" ]]; then + local PACKAGES=($(while read -r line; do + [[ "$line" =~ $re ]] && printf '%s ' "${BASH_REMATCH[1]}" + done < $GUIX_ENVIRONMENT/manifest)) + if [[ ${#PACKAGES[@]} -eq 2 ]]; then + printf "${_BLD}${_BLU}[${_NON}${_YLW}Guix${_NON}: ${_WHT}%s ${_NON}+ ${_PRP}%d ${_NON}pkg${_BLD}${_BLU}] " "${PACKAGES[0]}" "$((${#PACKAGES[@]}-1))" + elif [[ ${#PACKAGES[@]} -gt 2 ]]; then + printf "${_BLD}${_BLU}[${_NON}${_YLW}Guix${_NON}: ${_WHT}%s ${_NON}+ ${_PRP}%d ${_NON}pkgs${_BLD}${_BLU}] " "${PACKAGES[0]}" "$((${#PACKAGES[@]}-1))" + else + printf "${_BLD}${_BLU}[${_NON}${_YLW}Guix${_NON}: ${_WHT}%s${_BLD}${_BLU}] " "${PACKAGES[@]}" + fi + fi } __prompt() { - # Get exit code (must be first) - local PLC=("${PIPESTATUS[@]}") + # Get exit code (must be first) + local PLC=("${PIPESTATUS[@]}") - # Reset time when prompt was first displayed after command - # this contributes to the ~40 microsecond difference in $CMD_US and the actual time it took - if [[ "$INC_TIME" != 0 ]]; then - PROMPT_RT="$EPOCHREALTIME" - INC_TIME=0 - fi + # Reset time when prompt was first displayed after command + # this contributes to the ~40 microsecond difference in $CMD_US and the actual time it took + if [[ "$INC_TIME" != 0 ]]; then + PROMPT_RT="$EPOCHREALTIME" + INC_TIME=0 + fi - # *_RT may not be set - LAST_RT="${LAST_RT:-$EPOCHREALTIME}" - PROMPT_RT="${PROMPT_RT:-$EPOCHREALTIME}" + # *_RT may not be set + LAST_RT="${LAST_RT:-$EPOCHREALTIME}" + PROMPT_RT="${PROMPT_RT:-$EPOCHREALTIME}" - # Get relative times + # Get relative times - # Remove decimal point, simulating multiplying by 1 million - PROMPT_RT1M="${PROMPT_RT/.}" - PROMPT_RT1M="${PROMPT_RT1M/,}" - LAST_RT1M="${LAST_RT/.}" - LAST_RT1M="${LAST_RT1M/,}" + # Remove decimal point, simulating multiplying by 1 million + PROMPT_RT1M="${PROMPT_RT/.}" + PROMPT_RT1M="${PROMPT_RT1M/,}" + LAST_RT1M="${LAST_RT/.}" + LAST_RT1M="${LAST_RT1M/,}" - ((CMD_US=PROMPT_RT1M-LAST_RT1M)) + ((CMD_US=PROMPT_RT1M-LAST_RT1M)) - CMD_TIME=0 + CMD_TIME=0 - # Divide by 1 million to get a more accurate difference - ((CMD_TIME=CMD_US/1000000)) + # Divide by 1 million to get a more accurate difference + ((CMD_TIME=CMD_US/1000000)) - [[ ${#CMD_US} -lt 6 ]] || CMD_US="${CMD_US: -6}" - ((CMD_US=10#$CMD_US)) + [[ ${#CMD_US} -lt 6 ]] || CMD_US="${CMD_US: -6}" + ((CMD_US=10#$CMD_US)) - # Set prompt sections + # Set prompt sections - local SIG - local COL - local UHD - local TIME - local IND - local GUIX + local SIG + local COL + local UHD + local TIME + local IND + local GUIX - # Text + # Text - # ssh detection and indicator - [[ "$SSH_CONNECTION" ]] && local SSH="$(__ssh) " + # ssh detection and indicator + [[ "$SSH_CONNECTION" ]] && local SSH="$(__ssh) " - # [INT], [4], etc. - local RET - for RET in "${PLC[@]}"; do - if [[ $RET -gt 0 ]]; then - SIG="$(printf '%s[%s%s%s] ' "$_BLU" "$_RED" "$(__sig "${PLC[@]}")" "$_BLU")" - break - fi - done + # [INT], [4], etc. + local RET + for RET in "${PLC[@]}"; do + if [[ $RET -gt 0 ]]; then + SIG="$(printf '%s[%s%s%s] ' "$_BLU" "$_RED" "$(__sig "${PLC[@]}")" "$_BLU")" + break + fi + done - # Guix shell environment - GUIX="$(__guix_env)" + # Guix shell environment + GUIX="$(__guix_env)" - # [user@homeserver:~] - COL="$([[ $UID == 0 ]] && printf '%s' "$_RED" || printf '%s' "$_YLW")" - UHD="${_BLD}${_BLU}[${COL}\u${_PRP}@${_CYN}\h${_PRP}:${_GRN}\w${_BLU}]" + # [user@homeserver:~] + COL="$([[ $UID == 0 ]] && printf '%s' "$_RED" || printf '%s' "$_YLW")" + UHD="${_BLD}${_BLU}[${COL}\u${_PRP}@${_CYN}\h${_PRP}:${_GRN}\w${_BLU}]" - # 2y 351d 12m 43s 382969μs - TIME="${_YLW}$(__get_cmd_time)" + # 2y 351d 12m 43s 382969μs + TIME="${_YLW}$(__get_cmd_time)" - # Random colored $ or # - _RAND256="\[\033[38;2;$((RANDOM%256));$((RANDOM%256));$((RANDOM%256))m\]" - IND="${_RAND256}\\$" + # Random colored $ or # + _RAND256="\[\033[38;2;$((RANDOM%256));$((RANDOM%256));$((RANDOM%256))m\]" + IND="${_RAND256}\\$" - # Set the prompt - PS1="${_NON}${SSH}${GUIX}${SIG}${UHD} ${TIME} ${IND} ${_NON}" + # Set the prompt + PS1="${_NON}${SSH}${GUIX}${SIG}${UHD} ${TIME} ${IND} ${_NON}" } - + PROMPT_COMMAND=__prompt \ No newline at end of file diff --git a/etc/guix-config/xenon.scm b/etc/guix-config/oganesson.scm similarity index 100% rename from etc/guix-config/xenon.scm rename to etc/guix-config/oganesson.scm