From ea687c769521b3139c8547a2d4a839842fa7b0fe Mon Sep 17 00:00:00 2001
From: ben <ben@nagy.contact>
Date: Sat, 3 May 2025 14:41:13 -0700
Subject: added scripts

---
 scripts/stat/internet        |  7 ++++++
 scripts/stat/news            |  3 +++
 scripts/stat/ram.sh          |  2 ++
 scripts/stat/vol-stat        | 12 ++++++++++
 scripts/util/afk.sh          | 21 ++++++++++++++++
 scripts/util/arcc            | 11 +++++++++
 scripts/util/arco            | 11 +++++++++
 scripts/util/bday.sh         | 47 ++++++++++++++++++++++++++++++++++++
 scripts/util/bmark.sh        |  3 +++
 scripts/util/croc.sh         |  7 ++++++
 scripts/util/dic             |  5 ++++
 scripts/util/dupt.sh         |  5 ++++
 scripts/util/fmail.sh        |  3 +++
 scripts/util/git-repo-add.sh | 57 ++++++++++++++++++++++++++++++++++++++++++++
 scripts/util/gtab_init.sh    | 25 +++++++++++++++++++
 scripts/util/hist.sh         |  3 +++
 scripts/util/killpid.sh      |  3 +++
 scripts/util/manfzf.sh       | 13 ++++++++++
 scripts/util/netsel.sh       |  6 +++++
 scripts/util/open_1          |  5 ++++
 scripts/util/pgen.sh         | 34 ++++++++++++++++++++++++++
 scripts/util/sc.sh           |  3 +++
 scripts/util/sp.sh           | 11 +++++++++
 scripts/util/update-web.sh   |  5 ++++
 scripts/util/vol             | 19 +++++++++++++++
 scripts/util/vol+            | 17 +++++++++++++
 scripts/util/vol-            | 22 +++++++++++++++++
 27 files changed, 360 insertions(+)
 create mode 100755 scripts/stat/internet
 create mode 100755 scripts/stat/news
 create mode 100755 scripts/stat/ram.sh
 create mode 100755 scripts/stat/vol-stat
 create mode 100755 scripts/util/afk.sh
 create mode 100755 scripts/util/arcc
 create mode 100755 scripts/util/arco
 create mode 100755 scripts/util/bday.sh
 create mode 100755 scripts/util/bmark.sh
 create mode 100755 scripts/util/croc.sh
 create mode 100755 scripts/util/dic
 create mode 100755 scripts/util/dupt.sh
 create mode 100755 scripts/util/fmail.sh
 create mode 100755 scripts/util/git-repo-add.sh
 create mode 100755 scripts/util/gtab_init.sh
 create mode 100755 scripts/util/hist.sh
 create mode 100755 scripts/util/killpid.sh
 create mode 100755 scripts/util/manfzf.sh
 create mode 100755 scripts/util/netsel.sh
 create mode 100755 scripts/util/open_1
 create mode 100755 scripts/util/pgen.sh
 create mode 100755 scripts/util/sc.sh
 create mode 100755 scripts/util/sp.sh
 create mode 100755 scripts/util/update-web.sh
 create mode 100755 scripts/util/vol
 create mode 100755 scripts/util/vol+
 create mode 100755 scripts/util/vol-

(limited to 'scripts')

diff --git a/scripts/stat/internet b/scripts/stat/internet
new file mode 100755
index 0000000..a23d2cd
--- /dev/null
+++ b/scripts/stat/internet
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+if grep -qx 'up' /sys/class/net/wlan0/operstate 2>/dev/null; then
+    awk '/^\s*w/ { print int($3 * 100 / 70) "%" }' /proc/net/wireless
+else
+    echo "X"
+fi
diff --git a/scripts/stat/news b/scripts/stat/news
new file mode 100755
index 0000000..f96bbea
--- /dev/null
+++ b/scripts/stat/news
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+ps -e | grep "newsboat" >/dev/null && echo "X" || newsboat -x print-unread | grep -Eo '[0-9]{1,10}'
diff --git a/scripts/stat/ram.sh b/scripts/stat/ram.sh
new file mode 100755
index 0000000..2ef1be1
--- /dev/null
+++ b/scripts/stat/ram.sh
@@ -0,0 +1,2 @@
+#!/bin/sh
+free -m | awk 'NR==2{printf "%.2f%%", $3*100/$2 }'
diff --git a/scripts/stat/vol-stat b/scripts/stat/vol-stat
new file mode 100755
index 0000000..2b15ef6
--- /dev/null
+++ b/scripts/stat/vol-stat
@@ -0,0 +1,12 @@
+#!/bin/sh
+
+perc=$(awk -F"[][]" '/Front Left/ { print $2 }' <(amixer sget Master) | tail -n +2)
+
+case $(awk -F"[][]" '/Front Left/ { print $4 }' <(amixer sget Master) | tail -n +2) in
+	"on")
+		echo "$perc/1"
+		;;
+	"off")
+		echo "$perc/0"
+		;;
+esac
diff --git a/scripts/util/afk.sh b/scripts/util/afk.sh
new file mode 100755
index 0000000..a189dd5
--- /dev/null
+++ b/scripts/util/afk.sh
@@ -0,0 +1,21 @@
+#!/bin/sh
+
+# TODO: for dunst, we need to create a watchdog process
+
+# Prevent screen from sleeping or trick websites to think you're present while afk
+
+dzen_opts="-bg white -fg black -p 1 -x -475 -y 50 -w 475 -h 50"
+message="Away from keyboard for ~$1 minutes"
+
+#[[ $(pgrep dunst) ]] && dunstctl set-paused true
+while true; do
+    for direction in "10 0" "0 10" "-10 0" "0 -10"; do # move around
+        xdotool mousemove_relative -- $direction
+        printf '%s\n' "$message" | dzen2 $dzen_opts
+    done
+
+    xdotool mousemove 2880 540 # someplace near the middle
+done
+
+#[[ $(pgrep dunst) ]] && dunstctl set-paused false
+rm "$PID_FILE"
diff --git a/scripts/util/arcc b/scripts/util/arcc
new file mode 100755
index 0000000..7bb25e7
--- /dev/null
+++ b/scripts/util/arcc
@@ -0,0 +1,11 @@
+#!/bin/bash
+
+if df | grep -q aa && df | grep -q arc ; then
+	sudo umount ~/Digital/Drives/D2
+	sudo cryptsetup close /dev/mapper/arc &&
+
+		sudo umount ~/Digital/Drives/ED
+	sudo cryptsetup close /dev/mapper/aa
+	else
+		echo "Error: Drive not mounted.";
+fi
diff --git a/scripts/util/arco b/scripts/util/arco
new file mode 100755
index 0000000..2d93661
--- /dev/null
+++ b/scripts/util/arco
@@ -0,0 +1,11 @@
+#!/bin/bash
+
+if lsblk | grep -q sdc && lsblk | grep -q sdb ; then
+	sudo cryptsetup open /dev/sdb arc
+	sudo mount /dev/mapper/arc ~/Digital/Drives/D2 -o compress-force &&
+
+	sudo cryptsetup open /dev/sdc aa
+	sudo mount /dev/mapper/aa ~/Digital/Drives/ED
+else
+	echo "Error: Drive not mounted.";
+fi
diff --git a/scripts/util/bday.sh b/scripts/util/bday.sh
new file mode 100755
index 0000000..72ac556
--- /dev/null
+++ b/scripts/util/bday.sh
@@ -0,0 +1,47 @@
+#!/bin/sh
+
+# I'm forgetful of these things
+
+today=$(date '+%m/%d')
+run_date=$(date '+%Y-%m-%d')
+#F_BDAY_RECORDS="bdays.txt"
+F_BDAY_RECORDS=~/.local/share/bdays.txt
+BDAY_IMG=~/Digital/Pictures/Backgrounds/birthday.png
+
+last_run=$(
+  grep '^# last run:' "$F_BDAY_RECORDS" 2>/dev/null \
+    | tail -n1 \
+    | awk '{ print $4 }'
+)
+[ "$last_run" = "$run_date" ] && exit 0
+
+
+BDAY_LIST=$(awk -v td="$today" '
+  $0 ~ /^[[:space:]]*#/ { next }   # skip comments
+  NF < 3                 { next }   # skip malformed
+  $1 == td {
+    printf("%s %d\n", $3, $2 + 1)
+  }
+' "$F_BDAY_RECORDS")
+
+[ -z "$BDAY_LIST" ] && exit 0
+
+magick -size 800x600 canvas:black \
+  -gravity north -font 'Adwaita-Sans-Bold' -pointsize 72 -fill white \
+  -annotate +0+50 'Birthdays Today' \
+  -gravity center -font 'Adwaita-Sans' -pointsize 36 \
+  -annotate +0+100 "$BDAY_LIST" \
+  ~/Digital/Pictures/Backgrounds/birthday.png
+
+awk -v td="$today" '
+  /^# last run:/        { next }         # drop old last-run
+  $0 ~ /^[[:space:]]*#/ { print; next }  # preserve other comments
+  NF < 3                { print; next }  # preserve blanks/malformed
+  $1 == td             { $2 = $2 + 1 }   # bump age
+  { print $1, $2, $3 }                   # print all records
+' "$F_BDAY_RECORDS" > bdays.tmp
+
+echo "# last run: $run_date" >> bdays.tmp
+mv bdays.tmp "$F_BDAY_RECORDS"
+
+xwallpaper --output HDMI-A-0 --center "$BDAY_IMG"
diff --git a/scripts/util/bmark.sh b/scripts/util/bmark.sh
new file mode 100755
index 0000000..466414c
--- /dev/null
+++ b/scripts/util/bmark.sh
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+xdotool type $(grep -v '^#' ~/.local/share/bmark/bmarks.txt | dmenu -i -l 30 | cut -d' ' -f1)
diff --git a/scripts/util/croc.sh b/scripts/util/croc.sh
new file mode 100755
index 0000000..ae7efbd
--- /dev/null
+++ b/scripts/util/croc.sh
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+nmcli c show --active | grep -q "wg-mullvad" 2>>/dev/null && read -p "VPN is active. Contine? [Y/n] " ON || echo "VPN is off, aborting."; break ;
+
+case $ON in
+	[Yy]* ) croc $1;
+esac
diff --git a/scripts/util/dic b/scripts/util/dic
new file mode 100755
index 0000000..58755a8
--- /dev/null
+++ b/scripts/util/dic
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+# Online CLI dictionary
+
+curl -s https://www.wordnik.com/words/"$1" | awk '/id="define/{p=1}p' | awk '/div/{p++}p==2' | sed -e 's/<[^>]*>//g' | sed 's/^    *$//g' | expand --tabs=1 | less
diff --git a/scripts/util/dupt.sh b/scripts/util/dupt.sh
new file mode 100755
index 0000000..61d2260
--- /dev/null
+++ b/scripts/util/dupt.sh
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+# open a new terminal in the current working directory
+
+st -e sh -c 'cd "$PWD" && exec $SHELL' >/dev/null 2>&1 &
diff --git a/scripts/util/fmail.sh b/scripts/util/fmail.sh
new file mode 100755
index 0000000..e90e91a
--- /dev/null
+++ b/scripts/util/fmail.sh
@@ -0,0 +1,3 @@
+#!/bin/bash
+
+/usr/local/bin/mailsync && /bin/mbsync -c /home/black/.config/mbsync/config -a
diff --git a/scripts/util/git-repo-add.sh b/scripts/util/git-repo-add.sh
new file mode 100755
index 0000000..709ead0
--- /dev/null
+++ b/scripts/util/git-repo-add.sh
@@ -0,0 +1,57 @@
+#!/bin/bash
+
+# this is to be run locally after remote script has executed
+
+if [ $# -ne 1 ]; then
+    echo -e "\nUsage: $0 'new-repo-name'\n"
+    exit 1
+fi
+
+if [ -d "$1" ]; then
+    echo "Directory $1 already exists. Aborting."
+    exit 1
+fi
+
+
+echo -e "\nCreating new repo $PWD/$1"
+
+mkdir "$1"                     && echo "created $PWD/$1"
+cd "$1"
+git init                       && echo "initialized $1"
+touch README.md                && echo "created 'README.md'"
+echo "init" > README.md
+git add .                      && echo "staged $1"
+git commit -m 'initial commit' && echo "commited repo"
+
+echo -e "\n\n"
+while true; do
+	echo "Enter remote name and URL (press enter to finish)"
+	echo -e "eg. origin ssh://git@ssh.github.com:443/user/$1\n"
+	read -p ": " name url
+
+	if [ -z "$name" ] && [ -z "$url" ]; then
+        break
+    fi
+
+	if [ -z "$name" ] || [ -z "$url" ]; then
+		echo -e "\nYou must provide a name and url"
+		echo -e "eg. origin ssh://git@ssh.github.com:443/user/$1\n\n"
+		continue
+	fi
+
+	git remote add "$name" "$url"
+	echo "added $name ($url)"
+done
+
+read -p "Push to remote? (y/n): " push_choice
+
+if [[ "$push_choice" =~ ^[Yy]$ ]]; then
+    for remote in $(git remote); do
+        git push "$remote" --all
+        echo "Pushed to remote: $remote"
+    done
+else
+    echo "Push aborted."
+fi
+
+cd ..
diff --git a/scripts/util/gtab_init.sh b/scripts/util/gtab_init.sh
new file mode 100755
index 0000000..99b3cde
--- /dev/null
+++ b/scripts/util/gtab_init.sh
@@ -0,0 +1,25 @@
+pad_id=$(xinput | grep "HID 256c:006d Pad pad" | cut -f 2 | cut -d '=' -f 2)
+stylus_id=$(xinput | grep "HID 256c:006d Pen stylus" | cut -f 2 | cut -d '=' -f 2)
+#SCREEN="$1"
+
+# Reset Buttons
+xsetwacom set $pad_id Button 1 "key + "
+xsetwacom set $pad_id Button 2 "key + "
+xsetwacom set $pad_id Button 3 "key + "
+xsetwacom set $pad_id Button 8 "key + "
+xsetwacom set $pad_id Button 9 "key + "
+xsetwacom set $pad_id Button 10 "key + "
+xsetwacom set $pad_id Button 11 "key + "
+xsetwacom set $pad_id Button 12 "key + "
+
+# Set the Screen
+xsetwacom set $stylus_id MapToOutput "DisplayPort-0" # $SCREEN
+
+# Set Buttons
+xsetwacom --set $pad_id Button 1 "key +ctrl z -ctrl"
+xsetwacom --set $pad_id Button 2 "key +ctrl s -ctrl"
+xsetwacom --set $pad_id Button 9 "key +ctrl shift p -ctrl"
+xsetwacom --set $pad_id Button 10 "key +ctrl shift e -ctrl"
+xsetwacom --set $pad_id Button 11 "key +ctrl shift a -ctrl"
+#xsetwacom --set $pad_id Button 12 "key +ctrl 7 -ctrl"
+xsetwacom --set $pad_id Button 12 "key +ctrl shift r -ctrl"
diff --git a/scripts/util/hist.sh b/scripts/util/hist.sh
new file mode 100755
index 0000000..16b7717
--- /dev/null
+++ b/scripts/util/hist.sh
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+$(cat "$HISTFILE" | fzf)
diff --git a/scripts/util/killpid.sh b/scripts/util/killpid.sh
new file mode 100755
index 0000000..34a738a
--- /dev/null
+++ b/scripts/util/killpid.sh
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+ps -aux | fzf | awk '{print $2}' | xargs -r kill
diff --git a/scripts/util/manfzf.sh b/scripts/util/manfzf.sh
new file mode 100755
index 0000000..aa25d11
--- /dev/null
+++ b/scripts/util/manfzf.sh
@@ -0,0 +1,13 @@
+# Man without options will use fzf to select a page
+function fzf-man(){
+	MAN="/usr/bin/man"
+	if [ -n "$1" ]; then
+		$MAN "$@"
+		return $?
+	else
+		$MAN -k . | fzf --reverse --preview="echo {1,2} | sed 's/ (/./' | sed -E 's/\)\s*$//' | xargs $MAN" | awk '{print $1 "." $2}' | tr -d '()' | xargs -r $MAN
+		return $?
+	fi
+}
+
+fzf-man
diff --git a/scripts/util/netsel.sh b/scripts/util/netsel.sh
new file mode 100755
index 0000000..b1b2a88
--- /dev/null
+++ b/scripts/util/netsel.sh
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+BSSID=$(printf "%s" "$(nmcli d wifi | fzf --height 40%)" | sed 's/\*//' | awk '{print $1}')
+#read -sp "Enter password for $BSSID: " PASSWORD
+
+nmcli d wifi connect $BSSID #password "$PASSWORD"
diff --git a/scripts/util/open_1 b/scripts/util/open_1
new file mode 100755
index 0000000..58c8efc
--- /dev/null
+++ b/scripts/util/open_1
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+sudo cryptsetup open /dev/sda1 one
+
+sudo mount /dev/mapper/one ~/Digital/Drives/D1 -o compress-force
diff --git a/scripts/util/pgen.sh b/scripts/util/pgen.sh
new file mode 100755
index 0000000..f3a7976
--- /dev/null
+++ b/scripts/util/pgen.sh
@@ -0,0 +1,34 @@
+#!/bin/bash
+
+# A pseudorandom password generator
+
+LEN=16 # default length
+SYMBOLS=true
+
+gen_psw() {
+  local len=$1
+  local symbols=$2
+  local charset="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
+
+  [[ $symbols == true ]] && charset="${charset}!@#$%^&*()_+{}|:<>?"
+
+  psw=$(< /dev/urandom tr -dc "$charset" | head -c "$len")
+  echo "$psw"
+}
+
+while [[ "$#" -gt 0 ]]; do
+  case $1 in
+    -l|--length) LEN="$2"; shift ;;
+    -ns|--no-symbols) SYMBOLS=false ;;
+    *) echo "Unknown flag: $1"; exit 1 ;;
+  esac
+  shift
+done
+
+PASSWORD=$(gen_psw "$LEN" "$SYMBOLS")
+echo "$PASSWORD"
+
+if command -v xclip &> /dev/null; then
+  echo -n "$PASSWORD" | xclip -selection clipboard
+  printf '%s\n' "Password has been copied." | dzen2 -p 1 -bg white -fg black -x -305 -y 50 -w 455 -h 50
+fi
diff --git a/scripts/util/sc.sh b/scripts/util/sc.sh
new file mode 100755
index 0000000..9557e34
--- /dev/null
+++ b/scripts/util/sc.sh
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+maim -s -m 10 | tee ~/Digital/Pictures/Screen\ Shots/$(date +%Y-%m-%d__%S%S).jpg | xclip -selection clipboard -t image/png
diff --git a/scripts/util/sp.sh b/scripts/util/sp.sh
new file mode 100755
index 0000000..b4ce819
--- /dev/null
+++ b/scripts/util/sp.sh
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+# pacman wrapper
+
+case $* in
+	-Syu ) sudo pacman -Syu
+		echo 0 > ~/.local/share/updates.txt ;;
+	-Syyu ) sudo pacman -Syyu
+		echo 0 > ~/.local/share/updates.txt ;;
+	* )  sudo pacman ;;
+esac
diff --git a/scripts/util/update-web.sh b/scripts/util/update-web.sh
new file mode 100755
index 0000000..88292b5
--- /dev/null
+++ b/scripts/util/update-web.sh
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+SITE=$(printf "$(ls ~/Dev/website)" | dmenu -i -p "Pick a site to update");
+rsync -uvrp --delete-after ~/Dev/website/"$SITE"/ root@nagy.contact:/var/www/"$SITE"/
+printf "Updating: $SITE\n" | dzen2  -bg white -fg black -p 2 -x -375 -y 50 -w 275 -h 50
diff --git a/scripts/util/vol b/scripts/util/vol
new file mode 100755
index 0000000..1aa82c0
--- /dev/null
+++ b/scripts/util/vol
@@ -0,0 +1,19 @@
+#!/bin/sh
+
+ mute_state=$(amixer -c 3 get 'Master',0 | grep -o '\[on\]')
+
+ if [[ $mute_state == "[on]" ]]; then
+     amixer -c 3 set 'Master',0 mute
+ 	printf '%s\n' "Volume: Off" | dzen2 -p 1 -bg white -fg black -x -375 -y 50 -w 275 -h 50
+     amixer -c 3 set 'Headphone',0 mute
+ else
+     amixer -c 3 set 'Master',0 unmute
+     amixer -c 3 set 'Headphone',0 unmute
+ 	printf '%s\n' "Volume: On" | dzen2 -p 1 -bg white -fg black -x -375 -y 50 -w 275 -h 50
+ fi
+
+
+#amixer -D pulse sset Master toggle
+#state=$(amixer -D pulse sget Master | grep 'Front Left:' | sed -E 's/.*\[([a-z]+)\].*/\1/')
+#printf 'Volume %s\n' "$state" | dzen2 -p 1 -bg white -fg black -x -375 -y 50 -w 275 -h 50
+# amixer set Master toggle ; a="$(awk -F"[][]" '/Front Left/ { print $4 }' <(amixer sget Master) | tail -n +2)"; printf '%s\n' "Volume: $a" | dzen2 -p 1 -bg white -fg black -x -375 -y 50 -w 275 -h 50
diff --git a/scripts/util/vol+ b/scripts/util/vol+
new file mode 100755
index 0000000..89c8fcb
--- /dev/null
+++ b/scripts/util/vol+
@@ -0,0 +1,17 @@
+#!/bin/bash
+
+MASTER_SINK=$(pactl list short sinks | grep "RUNNING" | awk '{print $1}')
+if [ $# -eq 0 ]
+then
+    pactl set-sink-volume $MASTER_SINK +5%
+else
+    pactl set-sink-volume $MASTER_SINK +$@%
+fi
+level=$(pactl list sinks | grep -E "RUNNING|Volume" | grep -A1 "RUNNING" | grep -E -o "[[:digit:]]{1,5}%" | head -n1)
+printf '%s\n' "Vol $(echo $level)" | dzen2 -p 1 -bg white -fg black -x -375 -y 50 -w 275 -h 50
+
+#amixer -D pulse sset Master -c 3 5%+
+#level=$(amixer -D pulse sget Master -c 3 | sed -n 's/^[^[]*\[\([0-9]*%\)\].*$/\1/p')
+#3printf '%s\n' "Vol $(echo $level)" | dzen2 -p 1 -bg white -fg black -x -375 -y 50 -w 275 -h 50
+
+#amixer set Master -c 3 5%+ > /dev/null 2>&1 ; a="$()" ; printf '%s\n' "Vol $(amixer -c 3 sget Master | awk -F'[][]' '/Mono: Playback/ {print $2}')" | dzen2 -p 1 -bg white -fg black -x -375 -y 50 -w 275 -h 50
diff --git a/scripts/util/vol- b/scripts/util/vol-
new file mode 100755
index 0000000..c2c2f9c
--- /dev/null
+++ b/scripts/util/vol-
@@ -0,0 +1,22 @@
+#!/bin/bash
+
+
+MASTER_SINK=$(pactl list short sinks | grep "RUNNING" | awk '{print $1}')
+if [ $# -eq 0 ]
+then
+    pactl set-sink-volume $MASTER_SINK -5%
+else
+    pactl set-sink-volume $MASTER_SINK -$@%
+fi
+
+level=$(pactl list sinks | grep -E "RUNNING|Volume" | grep -A1 "RUNNING" | grep -E -o "[[:digit:]]{1,5}%" | head -n1)
+printf '%s\n' "Vol $(echo $level)" | dzen2 -p 1 -bg white -fg black -x -375 -y 50 -w 275 -h 50
+
+
+#amixer -D pulse sset Master -c 3 5%-
+
+#level=$(amixer -D pulse sget Master -c 3 | grep 'Front Left:' | sed -E 's/.*\[([0-9]+%)\].*/\1/')
+#level=$(amixer -D pulse sget Master -c 3 | sed -n 's/^[^[]*\[\([0-9]*%\)\].*$/\1/p')
+#printf '%s\n' "Vol $(echo $level)" | dzen2 -p 1 -bg white -fg black -x -375 -y 50 -w 275 -h 50
+
+#amixer set Master -c 2 5%- > /dev/null 2>&1 ; a="$()" ; printf '%s\n' "Vol $(amixer -c 2 sget Master | awk -F'[][]' '/Mono: Playback/ {print $2}')" | dzen2 -p 1 -bg white -fg black -x -375 -y 50 -w 275 -h 50
-- 
cgit v1.2.3