From 06de26be5328a13477942593daf06f417e830736 Mon Sep 17 00:00:00 2001 From: davidpkj Date: Mon, 16 Sep 2024 22:48:05 +0200 Subject: Update system helper scripts --- scripts/.local/bin/personal/bar/brightness | 84 ++++++++++----------------- scripts/.local/bin/personal/bar/mute | 33 ----------- scripts/.local/bin/personal/edit | 7 +++ scripts/.local/bin/personal/hostname | 3 + scripts/.local/bin/personal/musctl | 57 +++++++++--------- scripts/.local/bin/personal/volctl | 93 ++++++++++++++++++++++++------ 6 files changed, 145 insertions(+), 132 deletions(-) delete mode 100755 scripts/.local/bin/personal/bar/mute create mode 100755 scripts/.local/bin/personal/edit create mode 100755 scripts/.local/bin/personal/hostname (limited to 'scripts/.local/bin/personal') diff --git a/scripts/.local/bin/personal/bar/brightness b/scripts/.local/bin/personal/bar/brightness index f9c84ce..3ce4076 100755 --- a/scripts/.local/bin/personal/bar/brightness +++ b/scripts/.local/bin/personal/bar/brightness @@ -1,60 +1,36 @@ #!/bin/bash -# A script to manage screen and keyboard brightness on my machine -# Depends on: bash, brightnessctl -# By David Penkowoj, 2021/06/24 +# A script to manage screen brightness on my machine +# Depends on: bash, brightnessctl, libnotify +# By David Penkowoj, 2024-09-16 -MTR_DEVICE="amdgpu_bl2" -MTR_VALUE=99 +memfile="/tmp/$(whoami)-brightness.memtxt" +monitor_id="amdgpu_bl2" -SWITCH="$1" +bctl() { + brightnessctl --device="$monitor_id" "$@" +} -case $SWITCH in - "help") - printf "Possible arguments:\n" - printf "===================\n" - printf "load - loads brightness from save\n" - printf "save - saves current brightness\n" - printf "up - increases brightness by 5 percent and saves\n" - printf "down - decreases brightness by 5 percent and saves\n" - printf "smallup - increases brightness by 1 percent and saves\n" - printf "smalldown - decreases brightness by 1 percent and saves\n" - printf "status - show brightness of a device" - ;; - "load") - brightnessctl --device="$MTR_DEVICE" set "$MTR_VALUE%" - ;; - "save") - M="$(brightnessctl --device="$MTR_DEVICE" | grep -Eo "[0-9]+" | head -n 2 | tail -n 1)" - sed -i "s/MTR_VALUE=$MTR_VALUE/MTR_VALUE=$M/" "$0" - ;; - "smalldown") - if [[ "$2" = "monitor" ]]; then brightnessctl --device="$MTR_DEVICE" set 1-%; fi - brightness save - notify-send -u low -r "110" "$2: $(brightness get monitor)" - ;; - "smallup") - if [[ "$2" = "monitor" ]]; then brightnessctl --device="$MTR_DEVICE" set +1%; fi - brightness save - notify-send -u low -r "110" "$2: $(brightness get monitor)" - ;; - "down") - if [[ "$2" = "monitor" ]]; then brightnessctl --device="$MTR_DEVICE" set 5-%; fi - brightness save - notify-send -u low -r "110" "$2: $(brightness get monitor)" - ;; - "up") - if [[ "$2" = "monitor" ]]; then brightnessctl --device="$MTR_DEVICE" set +5%; fi - brightness save - notify-send -u low -r "110" "$2: $(brightness get monitor)" - ;; - "get") - M="$(brightnessctl --device="$MTR_DEVICE" | grep -Eo "[0-9]+" | head -n 2 | tail -n 1)" - if [[ "$2" = "monitor" ]]; then echo "$M"; fi - ;; - *) - printf "Monitor:\n" - brightnessctl --device="$MTR_DEVICE" | tail -n 3 | sed 's/\t/- /g' - ;; -esac +notify_brightness() { + current="$(brightness get)" + max="$(bctl m)" + notify-send -u low -r "110" "Screen brightness: $(( current * 100 / max ))%" +} +case "$1" in + "up") + bctl set +5% + notify_brightness + ;; + "down") + bctl set 5-% + notify_brightness + ;; + "get") + printf "%s\n" "$(bctl | grep -Eo "[0-9]+" | head -n 2 | tail -n 1)" + ;; + *) + printf "[ Error ] Usage: brightness [up|down|get]" + exit 1 + ;; +esac diff --git a/scripts/.local/bin/personal/bar/mute b/scripts/.local/bin/personal/bar/mute deleted file mode 100755 index 7c987a2..0000000 --- a/scripts/.local/bin/personal/bar/mute +++ /dev/null @@ -1,33 +0,0 @@ -#!/bin/bash - -SOURCE="alsa_input.usb-R__DE_Microphones_R__DE_NT-USB_Mini_610BAACA-00.mono-fallback" - -SOURCE="$(pactl get-default-source)" -VOLUME="$(pactl get-source-volume "$SOURCE" | grep -o [0-9]*% | head -n 1)" - -if [[ "$1" == "shortstatus" ]]; then - if [[ "$VOLUME" == "0%" ]]; then - echo "Muted" - else - echo "" - fi - - exit -fi - -if [[ "$1" == "status" ]]; then - NAME="$(pactl list sources | grep -o Description:.* | sed -n 's/Description: //g;2p')" - - echo "$NAME ($VOLUME)" - - exit -fi - -if [[ "$VOLUME" == "0%" ]]; then - pactl set-source-volume "$SOURCE" 70% - notify-send -u low "Unmuted" -r 110 -else - pactl set-source-volume "$SOURCE" 0% - notify-send -u low "Muted" -r 110 -fi - diff --git a/scripts/.local/bin/personal/edit b/scripts/.local/bin/personal/edit new file mode 100755 index 0000000..3ec2f0c --- /dev/null +++ b/scripts/.local/bin/personal/edit @@ -0,0 +1,7 @@ +#!/bin/bash + +p="$(which "$1")" && +istxt="$(file "$1" | cut -d' ' -f2)" && +exec $EDITOR $p || +echo "Error!" + diff --git a/scripts/.local/bin/personal/hostname b/scripts/.local/bin/personal/hostname new file mode 100755 index 0000000..a7aac82 --- /dev/null +++ b/scripts/.local/bin/personal/hostname @@ -0,0 +1,3 @@ +#!/bin/sh + +hostnamectl hostname diff --git a/scripts/.local/bin/personal/musctl b/scripts/.local/bin/personal/musctl index cca7b8d..6bfbd16 100755 --- a/scripts/.local/bin/personal/musctl +++ b/scripts/.local/bin/personal/musctl @@ -1,33 +1,38 @@ #!/bin/bash -STATE="$(mpc | grep -o playing)" -NAME="$(basename "$(mpc current)")" +# A script to manage the music player daemon (mpd) on my system +# Depends on: mpd, playerctl, libnotify +# By David Penkowoj, 2024-09-16 -notify() { - if [[ -n "$STATE" ]]; then - notify-send "Currently playing" "${NAME%.*}" - else - notify-send "MPD is currently paused" - fi +music_state="$(mpc | grep -o playing)" +music_name="$(basename "$(mpc current)")" + +notify_music() { + if [[ -n "$music_state" ]]; then + notify-send "Currently playing" "${music_name%.*}" + else + notify-send "MPD is currently paused" + fi } case "$1" in - "previous") - mpc -q prev - playerctl -s previous - ;; - "toggle") - mpc -q toggle - playerctl -s play-pause - ;; - "next") - mpc -q next - playerctl -s next - ;; - "notify") - notify - ;; - *) - echo "[ Error ] Unknown command" - ;; + "previous") + mpc -q prev + playerctl -s previous + ;; + "toggle") + mpc -q toggle + playerctl -s play-pause + ;; + "next") + mpc -q next + playerctl -s next + ;; + "notify") + notify_music + ;; + *) + printf "[ Error ] Usage: musctl [previous|toggle|next|notify]" + exit 1 + ;; esac diff --git a/scripts/.local/bin/personal/volctl b/scripts/.local/bin/personal/volctl index 8a02d1b..43d2a9a 100755 --- a/scripts/.local/bin/personal/volctl +++ b/scripts/.local/bin/personal/volctl @@ -1,23 +1,78 @@ #!/bin/bash # A script to manage the volume on my system universally +# Depends on: bash, pactl, libnotify +# By David Penkowoj, 2024-09-16 -sink="$(pactl get-default-sink)" -volume="$(pamixer --get-volume)" - -if [ "$1" = "increase" ] -then - pactl set-sink-volume "$sink" +5% -elif [ "$1" = "decrease" ] -then - pactl set-sink-volume "$sink" -5% -elif [ "$1" = "mute" ] -then - # TODO: Make this a toggle with memory - pactl set-sink-volume "$sink" 0% -elif [ "$1" = "check" ] -then - printf "%s\n" "$volume" -else - printf "[ Error ] Not enough arguments.\n" -fi +memfile="/tmp/$(whoami)-volctl.memtxt" + +# Headphones +def_sink="$(pactl get-default-sink)" +sink_volume="$(pactl get-sink-volume "$def_sink" | grep -o [0-9]*% | head -n 1)" + +# Microphone +def_source="$(pactl get-default-source)" +source_volume="$(pactl get-source-volume "$def_source" | grep -o [0-9]*% | head -n 1)" + +# Send notification +notify_volume() { + v="$2" + + if [ "$2" == "0%" ]; then + v="muted" + fi + + notify-send -u low -r "110" "$1 volume: $v" +} + +# Toggle headphones volume +toggle_deaf() { + newvol="0%" + + if [ "$sink_volume" == "0%" ]; then + newvol="$(<"$memfile")" + pactl set-sink-volume "$def_sink" "$newvol" + else + echo "$sink_volume" > "$memfile" + pactl set-sink-volume "$def_sink" 0% + fi + + # notify_volume "Output" "$newvol" +} + +# Toggle microphone volume +toggle_mute() { + newvol="0%" + + if [ "$source_volume" == "0%" ]; then + pactl set-source-volume "$def_source" 70% + newvol="70%" + else + pactl set-source-volume "$def_source" 0% + fi + + notify_volume "Input" "$newvol" +} + +# Decide what to do +case "$1" in + "up") + pactl set-sink-volume "$def_sink" +5% + ;; + "down") + pactl set-sink-volume "$def_sink" -5% + ;; + "deaf") + toggle_deaf + ;; + "mute") + toggle_mute + ;; + "get") + printf "In: %s, Out: %s\n" "$source_volume" "$sink_volume" + ;; + *) + printf "[ Error ] Usage: volctl [up|down|deaf|mute|get]" + exit 1 + ;; +esac -- cgit v1.2.3