make util-scripts a submodule repo

This commit is contained in:
Zhongheng Liu 2026-05-18 11:49:05 +02:00
commit 6ad8cf4798
10 changed files with 4 additions and 143 deletions

3
.gitmodules vendored
View file

@ -4,3 +4,6 @@
[submodule "repo"]
path = repo
url = git@stvnliu.me:steven/ebuild-lithium
[submodule "exec"]
path = exec
url = git@stvnliu.me:steven/util-scripts

View file

@ -1,16 +0,0 @@
PREFIX ?= /usr/local
BINDIR ?= $(PREFIX)/bin
SRCDIR ?= exec
SCRIPTS := $(wildcard $(SRCDIR)/*.sh)
install:
@mkdir -p $(BINDIR)
for f in $(SCRIPTS); do \
install -m 755 "$$f" "$(BINDIR)/$$(basename $$f .sh)"; \
done
uninstall:
for f in $(SCRIPTS); do \
rm -f "$(BINDIR)/$$(basename $$f .sh)"; \
done

1
exec Submodule

@ -0,0 +1 @@
Subproject commit 96d01820c1311de7703a80446b228e33b65eab7c

View file

@ -1,2 +0,0 @@
#!/usr/bin/bash
echo $(wcalc -q "round($(cat /sys/class/power_supply/BAT1/charge_now)/$(cat /sys/class/power_supply/BAT1/charge_full) * 100)")%

View file

@ -1,2 +0,0 @@
sleep 5
wlr-randr --output "HDMI-A-1" --on --mode "2560x1440@144.001007" --scale 1

View file

@ -1 +0,0 @@
free -g | awk 'NR==2 {printf "%dG/%dG\n", $3, $2}'

View file

@ -1,5 +0,0 @@
#!/usr/bin/sh
IFS=""
file="$HOME/Screenshots/$(date '+%Y-%m-%d-%H-%M-%S.png')"
echo $file
slurp | grim -g - $file

View file

@ -1 +0,0 @@
slurp | grim -g - - | wl-copy

View file

@ -1 +0,0 @@
echo "<$(hostname)@$(uname -r)> [BAT: $(batman)] [MEM: $(mem)]"

View file

@ -1,115 +0,0 @@
#!/usr/bin/env bash
#
# volume-notify.sh — adjust volume via wpctl + show notification via dunstify
#
# Usage:
# volume-notify.sh up → raise volume
# volume-notify.sh down → lower volume
# volume-notify.sh mute → toggle mute
#
# Adjust the step size and icons as desired.
# Which sink to use — default audio sink
SINK="@DEFAULT_SINK@"
# Step percent (use percentage step)
STEP="5%"
# Notification stack tag (so dunst replaces same notification)
STACK_TAG="volume-notify"
# Icons (set your paths or icon names)
ICON_HIGH="audio-volume-high"
ICON_MED="audio-volume-medium"
ICON_LOW="audio-volume-low"
ICON_MUTED="audio-volume-muted"
# Increase volume
vol_up() {
wpctl set-volume $SINK $STEP+ -l 1
}
# Decrease volume
vol_down() {
wpctl set-volume $SINK $STEP- -l 1
}
# Toggle mute
vol_mute() {
wpctl set-mute $SINK toggle
}
# Get current volume (floating between 0.0-∞, where 1.0 = 100%) and compute percent
get_volume_percent() {
# Example output: “Volume: 0.50” or “Volume: 0.50 [50%]”
local raw
raw=$(wpctl get-volume $SINK 2>/dev/null | awk '/Volume:/ {print $2}')
# convert to percent
# float *100
local pct
pct=$(awk "BEGIN { printf \"%d\", ($raw * 100) }")
echo "$pct"
}
# Get mute state (yes/no)
get_mute_state() {
local m
m=$(wpctl get-volume $SINK 2>/dev/null | awk '/Mute:/ {print $2}')
echo "$m"
}
# Send the notification
send_notification() {
local pct mute icon bar
pct=$(get_volume_percent)
mute=$(get_mute_state)
if [[ "$mute" == "yes" ]]; then
icon="$ICON_MUTED"
# we can treat volume as 0
pct=0
else
# pick icon based on level
if (( pct >= 66 )); then
icon="$ICON_HIGH"
elif (( pct >= 33 )); then
icon="$ICON_MED"
else
icon="$ICON_LOW"
fi
fi
# Optional: build a simple textual bar (e.g., █ or ░)
# e.g., length 20, filled proportionally
local barlen=20
local filled=$(( (pct * barlen) / 100 ))
bar=$(printf '%*s' "$filled" '' | tr ' ' '█')
bar+=$(printf '%*s' "$((barlen - filled))" '' | tr ' ' '░')
# Send notification: use value hint for progress bar
dunstify -i "$icon" \
-u normal \
-h string:x-dunst-stack-tag:$STACK_TAG \
-h int:value:$pct "Volume: ${pct}%"
}
# Main logic
case "$1" in
up)
vol_up
send_notification
;;
down)
vol_down
send_notification
;;
mute)
vol_mute
send_notification
;;
*)
echo "Usage: $0 {up|down|mute}"
exit 1
;;
esac