diff options
| author | ivan-boikov <ik.boikov.public@protonmail.com> | 2022-05-22 18:11:15 +0200 |
|---|---|---|
| committer | ivan-boikov <ik.boikov.public@protonmail.com> | 2022-05-22 18:11:15 +0200 |
| commit | 688f02cc56104ef13dc923ee86c9801cecf0f759 (patch) | |
| tree | 850a13167c7bdbc6f3be9bc6d2877090b2065805 /scripts | |
| parent | 832badeaff2a74f19416f5fe637985ff93105423 (diff) | |
updated scripts
Diffstat (limited to 'scripts')
| -rwxr-xr-x | scripts/.local/bin/checkpipewire | 1 | ||||
| -rwxr-xr-x | scripts/.local/bin/checkvideodriver | 1 | ||||
| -rwxr-xr-x | scripts/.local/bin/checkzwap | 1 | ||||
| -rwxr-xr-x | scripts/.local/bin/dcpug | 18 | ||||
| -rwxr-xr-x | scripts/.local/bin/dkill | 2 | ||||
| -rwxr-xr-x | scripts/.local/bin/dmnt | 26 | ||||
| -rwxr-xr-x | scripts/.local/bin/dpass | 2 | ||||
| -rwxr-xr-x | scripts/.local/bin/importvpn | 3 | ||||
| -rwxr-xr-x | scripts/.local/bin/pinentry-wrapper | 10 | ||||
| -rwxr-xr-x | scripts/.local/bin/smbscan | 60 | ||||
| -rwxr-xr-x | scripts/.local/bin/statusbar/sb-battery | 30 | ||||
| -rwxr-xr-x | scripts/.local/bin/statusbar/sb-clock | 30 | ||||
| -rwxr-xr-x | scripts/.local/bin/statusbar/sb-cpu | 11 | ||||
| -rwxr-xr-x | scripts/.local/bin/statusbar/sb-internet | 8 | ||||
| -rwxr-xr-x | scripts/.local/bin/statusbar/sb-iplocate | 2 | ||||
| -rwxr-xr-x | scripts/.local/bin/statusbar/sb-mailbox | 6 | ||||
| -rwxr-xr-x | scripts/.local/bin/statusbar/sb-nettraf | 2 | ||||
| -rwxr-xr-x | scripts/.local/bin/statusbar/sb-volume | 10 | ||||
| -rwxr-xr-x | scripts/.local/bin/sysact | 26 |
19 files changed, 150 insertions, 99 deletions
diff --git a/scripts/.local/bin/checkpipewire b/scripts/.local/bin/checkpipewire new file mode 100755 index 0000000..33af0d4 --- /dev/null +++ b/scripts/.local/bin/checkpipewire @@ -0,0 +1 @@ +LANG=C pactl info | grep "Server Name" diff --git a/scripts/.local/bin/checkvideodriver b/scripts/.local/bin/checkvideodriver new file mode 100755 index 0000000..935cf00 --- /dev/null +++ b/scripts/.local/bin/checkvideodriver @@ -0,0 +1 @@ +lshw -c video diff --git a/scripts/.local/bin/checkzwap b/scripts/.local/bin/checkzwap new file mode 100755 index 0000000..25bae37 --- /dev/null +++ b/scripts/.local/bin/checkzwap @@ -0,0 +1 @@ +sudo grep -R . /sys/kernel/debug/zswap diff --git a/scripts/.local/bin/dcpug b/scripts/.local/bin/dcpug new file mode 100755 index 0000000..7d4720b --- /dev/null +++ b/scripts/.local/bin/dcpug @@ -0,0 +1,18 @@ +#!/bin/sh + +dmenu="$(command -v cdmenu)" +if [ "$dmenu" == "" ]; then + dmenu="dmenu" +fi + +sudo="$(command -v sudo)" +if [ "$sudo" == "" ]; then + sudo="doas" +fi + +profiles="$(cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors | sed 's/ /\\n/g')" + +profile=$(printf $profiles | $dmenu) + +notify-send "Set CPU profile: $profile" +$sudo cpupower frequency-set --governor $profile diff --git a/scripts/.local/bin/dkill b/scripts/.local/bin/dkill index 3e0b7ea..e3aca22 100755 --- a/scripts/.local/bin/dkill +++ b/scripts/.local/bin/dkill @@ -1,7 +1,7 @@ #!/usr/bin/env bash # dmenu theming -dmenu="cdmenu" +dmenu="$HOME/.local/bin/cdmenu" lines="-l 30" selected="$(ps -a -u $USER | \ diff --git a/scripts/.local/bin/dmnt b/scripts/.local/bin/dmnt index 46ec57c..fb615fc 100755 --- a/scripts/.local/bin/dmnt +++ b/scripts/.local/bin/dmnt @@ -2,7 +2,7 @@ #TODO: GET RID OF GLOBAL VARIABLES LIKE chosen #shopt -s expand_aliases -dmenu="cdmenu" +dmenu="$HOME/.local/bin/cdmenu" getmount() { \ [ -z "$chosen" ] && exit 1 @@ -10,8 +10,8 @@ getmount() { \ mp="$(find $1 2>/dev/null | "$dmenu" -l 30 -i -p "Type in mount point.")" || exit 1 [ "$mp" = "" ] && exit 1 if [ ! -d "$mp" ]; then - mkdiryn=$(printf "No\\nYes" | "$dmenu" -i -p "$mp does not exist. Create it?") || exit 1 - [ "$mkdiryn" = "Yes" ] && (mkdir -p "$mp" || sudo -A mkdir -p "$mp") + mkdiryn=$(printf "No\nYes" | "$dmenu" -i -p "$mp does not exist. Create it?") || exit 1 + [ "$mkdiryn" = "Yes" ] && (mkdir -p "$mp" || doas mkdir -p "$mp") fi } @@ -21,24 +21,24 @@ mountusb() { \ # *crypto_LUKS*) #;; #esac - #sudo -A mount "$1" 2>/dev/null && notify-send "USB mounting" "$1 mounted." && exit 0 - sudo -A mount "$1" 2>/dev/null && notify-send "$1 mounted" "" && exit 0 + #doas mount "$1" 2>/dev/null && notify-send "USB mounting" "$1 mounted." && exit 0 + doas mount "$1" 2>/dev/null && notify-send "$1 mounted" "" && exit 0 alreadymounted=$(lsblk -nrpo "name,type,mountpoint" | awk '$3!~/\/boot|\/home$|SWAP/&&length($3)>1{printf "-not ( -path *%s -prune ) ",$3}') getmount "/mnt /media -maxdepth 1 -type d $alreadymounted" partitiontype="$(lsblk -no "fstype" "$1")" case "$partitiontype" in - "vfat") sudo -A mount -t vfat "$1" "$mp" -o rw,umask=0000;; - "exfat") sudo -A mount "$1" "$mp" -o uid="$(id -u)",gid="$(id -g)";; + "vfat") doas mount -t vfat "$1" "$mp" -o rw,umask=0000;; + "exfat") doas mount "$1" "$mp" -o uid="$(id -u)",gid="$(id -g)";; *crypto_LUKS*) name="$(LC_ALL=C tr -dc A-Za-z0-9 </dev/urandom | head -c 16)" mkfifo fifo dpass > fifo & - sudo cryptsetup open --type luks "$1" "$name" --key-file fifo + doas cryptsetup open --type luks "$1" "$name" --key-file fifo rm fifo device="/dev/mapper/$name" - sudo -A mount "$device" "$mp" + doas mount "$device" "$mp" ;; - *) sudo -A mount "$1" "$mp"; user="$(whoami)"; ug="$(groups | awk '{print $1}')"; sudo -A chown "$user":"$ug" "$mp";; + *) doas mount "$1" "$mp"; user="$(whoami)"; ug="$(groups | awk '{print $1}')"; doas chown "$user":"$ug" "$mp";; esac notify-send "$1 mounted to $mp." "" } @@ -55,7 +55,7 @@ mountsamba() { \ getmount "/mnt -maxdepth 1 -type d" user=$(echo $(whoami) | $dmenu -i -p "Input user name for $1:") pass=$(pass-askpass "Input password for user \"$user\" for share $1") - sudo -A mount -t cifs -o user="$user",password="$pass",iocharset=utf8,uid=$(id -u),gid=$(id -g),file_mode=0644,dir_mode=0755 "$1" "$mp" + doas mount -t cifs -o user="$user",password="$pass",iocharset=utf8,uid=$(id -u),gid=$(id -g),file_mode=0644,dir_mode=0755 "$1" "$mp" if [ $? -ne 0 ]; then notify-send -u critical "Samba mounting" "Failed to mount $1 to $mp as $user" exit 1 @@ -64,7 +64,7 @@ mountsamba() { \ } unmountdev() { \ - result=$(sudo -A umount "$1" 2>&1) + result=$(doas umount "$1" 2>&1) if [ -z "$result" ]; then notify-send "Unmount device" "$1 unmounted" return @@ -89,7 +89,7 @@ selectusb() { \ chosen=$(lsblk -lpo "vendor,model,name,label,size,mountpoint" | "$dmenu" -l 30 | xargs | cut -d' ' -f 1) # if mounted if [ ! -z "$(grep $chosen "/etc/mtab")" ] ; then - choice=$(echo "No\nYes" | "$dmenu" -l 2 -p "Partition is mounted. Unmount?") + choice=$(echo -e "No\nYes" | "$dmenu" -l 2 -p "Partition is mounted. Unmount?") case $choice in Yes) unmountdev $chosen ;; No) exit ;; diff --git a/scripts/.local/bin/dpass b/scripts/.local/bin/dpass index 9f187ff..e8864d6 100755 --- a/scripts/.local/bin/dpass +++ b/scripts/.local/bin/dpass @@ -36,7 +36,7 @@ fi if [[ -n $WAYLAND_DISPLAY ]]; then dmenu=dmenu-wl elif [[ -n $DISPLAY ]]; then - dmenu=cdmenu + dmenu="$HOME/.local/bin/cdmenu" else echo "Error: No Wayland or X11 display detected" >&2 exit 1 diff --git a/scripts/.local/bin/importvpn b/scripts/.local/bin/importvpn new file mode 100755 index 0000000..7a753fb --- /dev/null +++ b/scripts/.local/bin/importvpn @@ -0,0 +1,3 @@ +#!/bin/sh + +nmcli connection import type openvpn file "$1" diff --git a/scripts/.local/bin/pinentry-wrapper b/scripts/.local/bin/pinentry-wrapper new file mode 100755 index 0000000..febdbe2 --- /dev/null +++ b/scripts/.local/bin/pinentry-wrapper @@ -0,0 +1,10 @@ +#!/usr/bin/env bash + +case "${PINENTRY_USER_DATA-}" in + *USE_TTY=1*) + exec pinentry-tty "$@" + ;; + *) + exec /usr/bin/pinentry "$@" + ;; +esac diff --git a/scripts/.local/bin/smbscan b/scripts/.local/bin/smbscan new file mode 100755 index 0000000..c0de47d --- /dev/null +++ b/scripts/.local/bin/smbscan @@ -0,0 +1,60 @@ +#!/bin/sh +# props to https://andreafortuna.org/2016/08/08/simple-smb-scanner-with-a-single-line-of-shell/ +# plus some tweaks from me + +dmenu=cdmenu + +subnet=$1 +if [ -z $subnet ]; then + echo "No subnet specified, using local..." + IP=$(ip addr | grep 'state UP' -A2 | tail -n1 | awk '{print $2}' | cut -f1 -d'/') + subnet="$(echo $IP | cut -d. -f1-3).*" + echo "Scanning subnet $subnet" +fi + +scan() { + nmap $1 -p 445 --open -oG - | grep "Host:" | cut -d " " -f 2 | uniq | xargs -I '{}' sh -c 'echo "Scan {}";echo "---------";smbclient -L//{} -N' +} +#scanresult=$(scan) + +scanresult="""Scan 192.168.70.1 +--------- + + Sharename Type Comment + --------- ---- ------- + print$ Disk Printer Drivers + public Disk + IPC$ IPC IPC Service (Samba 4.13.13-Debian) +SMB1 disabled -- no workgroup available +Scan 192.168.70.3 +--------- + + Sharename Type Comment + --------- ---- ------- + print$ Disk Printer Drivers + IPC$ IPC IPC Service (Samba 4.13.14-Debian) +SMB1 disabled -- no workgroup available""" + +printf "$scanresult\n" + +IPs=$(echo "$scanresult" | grep Scan | cut -d' ' -f2-) +printf "Server IPs:\n$IPs\n" + +IP=$(printf "$IPs" | $dmenu -l 64) +echo "Selected $IP" + +shares="""$(scan $IP)""" +printf "Shares:\n$shares\n" +# cut off header from smbclient with tail and warning about SMB1 with head +shares=$(printf "$shares" | tail -n +6 | head -n -1) +printf "Filtered shares:\n$shares\n" + +share=$(printf "$shares" | $dmenu -l 64 -p "Select share to mount" | tr -s " ") +printf "$share" + +share=$(echo $share | cut -d' ' -f 1) +echo $share + +user=$(: | $dmenu -i -p "Input user name:") + +mount -t cifs -o user="$user" //"$IP"/"$share" <MOUNT POINT> diff --git a/scripts/.local/bin/statusbar/sb-battery b/scripts/.local/bin/statusbar/sb-battery index 93cbe08..04a3cf7 100755 --- a/scripts/.local/bin/statusbar/sb-battery +++ b/scripts/.local/bin/statusbar/sb-battery @@ -1,20 +1,6 @@ #!/bin/sh -# Prints all batteries, their percentage remaining and an emoji corresponding -# to charge status (🔌 for plugged up, 🔋 for discharging on battery, etc.). - -case $BLOCK_BUTTON in - 3) notify-send "🔋 Battery module" "🔋: discharging -🛑: not charging -♻: stagnant charge -🔌: charging -⚡: charged -❗: battery very low! -- Scroll to change adjust xbacklight." ;; - 4) xbacklight -inc 10 ;; - 5) xbacklight -dec 10 ;; - 6) "$TERMINAL" -e "$EDITOR" "$0" ;; -esac +# Prints all batteries, their percentage remaining # Loop through all attached batteries and format the info for battery in /sys/class/power_supply/BAT?*; do @@ -22,16 +8,16 @@ for battery in /sys/class/power_supply/BAT?*; do [ -n "${capacity+x}" ] && printf " " # Sets up the status and capacity case "$(cat "$battery/status" 2>&1)" in - "Full") status="⚡" ;; - "Discharging") status="🔋" ;; - "Charging") status="🔌" ;; - "Not charging") status="🛑" ;; - "Unknown") status="♻️" ;; + "Full") status="F" ;; + "Discharging") status="-" ;; + "Charging") status="+" ;; + "Not charging") status="" ;; + "Unknown") status="?" ;; *) exit 1 ;; esac capacity="$(cat "$battery/capacity" 2>&1)" # Will make a warn variable if discharging and low - [ "$status" = "🔋" ] && [ "$capacity" -le 25 ] && warn="❗" + [ "$status" = "D" ] && [ "$capacity" -le 25 ] && warn="!!!" # Prints the info - printf "%s%s%d%%" "$status" "$warn" "$capacity"; unset warn + printf "%d%%%s%s" "$capacity" "$status" "$warn" ; unset warn done && printf "\\n" diff --git a/scripts/.local/bin/statusbar/sb-clock b/scripts/.local/bin/statusbar/sb-clock index 33f5b25..e6fbb6b 100755 --- a/scripts/.local/bin/statusbar/sb-clock +++ b/scripts/.local/bin/statusbar/sb-clock @@ -1,31 +1,3 @@ #!/bin/sh -clock=$(date '+%I') - -#case "$clock" in -# "00") icon="🕛" ;; -# "01") icon="🕐" ;; -# "02") icon="🕑" ;; -# "03") icon="🕒" ;; -# "04") icon="🕓" ;; -# "05") icon="🕔" ;; -# "06") icon="🕕" ;; -# "07") icon="🕖" ;; -# "08") icon="🕗" ;; -# "09") icon="🕘" ;; -# "10") icon="🕙" ;; -# "11") icon="🕚" ;; -# "12") icon="🕛" ;; -#esac -# -#case $BLOCK_BUTTON in -# 1) notify-send "This Month" "$(cal --color=always | sed "s/..7m/<b><span color=\"red\">/;s/..27m/<\/span><\/b>/")" && notify-send "Appointments" "$(calcurse -d3)" ;; -# 2) setsid -f "$TERMINAL" -e calcurse ;; -# 3) notify-send "📅 Time/date module" "\- Left click to show upcoming appointments for the next three days via \`calcurse -d3\` and show the month via \`cal\` -#- Middle click opens calcurse if installed" ;; -# 6) "$TERMINAL" -e "$EDITOR" "$0" ;; -#esac - -#date "+%Y %b %d (%a) $icon%I:%M%p" - -date "+%d/%m/%Y (%a) %H:%M:%S" +date "+%d/%m/%y %a %H:%M:%S" diff --git a/scripts/.local/bin/statusbar/sb-cpu b/scripts/.local/bin/statusbar/sb-cpu index 1572b52..4594826 100755 --- a/scripts/.local/bin/statusbar/sb-cpu +++ b/scripts/.local/bin/statusbar/sb-cpu @@ -1,12 +1,3 @@ #!/bin/sh -case $BLOCK_BUTTON in - 1) notify-send "🖥 CPU hogs" "$(ps axch -o cmd:15,%cpu --sort=-%cpu | head)\\n(100% per core)" ;; - 2) setsid -f "$TERMINAL" -e htop ;; - 3) notify-send "🖥 CPU module " "\- Shows CPU temperature. -- Click to show intensive processes. -- Middle click to open htop." ;; - 6) "$TERMINAL" -e "$EDITOR" "$0" ;; -esac - -sensors | awk '/Core 0/ {print "🌡" $3}' +sensors | awk '/CPU:/ {print $2}' | sed 's/....$//' diff --git a/scripts/.local/bin/statusbar/sb-internet b/scripts/.local/bin/statusbar/sb-internet index 94b7da2..e342345 100755 --- a/scripts/.local/bin/statusbar/sb-internet +++ b/scripts/.local/bin/statusbar/sb-internet @@ -4,6 +4,8 @@ # Show 🌐 if connected to ethernet or ❎ if none. # Show 🔒 if a vpn connection is active +# EDIT: NO CRINGEY EMOJI + case $BLOCK_BUTTON in 1) "$TERMINAL" -e nmtui; pkill -RTMIN+4 dwmblocks ;; 3) notify-send "🌐 Internet module" "\- Click to connect @@ -18,9 +20,9 @@ case $BLOCK_BUTTON in esac if grep -xq 'up' /sys/class/net/w*/operstate 2>/dev/null ; then - wifiicon="$(awk '/^\s*w/ { print "📶", int($3 * 100 / 70) "% " }' /proc/net/wireless)" + wifiicon="$(awk '/^\s*w/ { print "W" int($3 * 100 / 70) }' /proc/net/wireless)" elif grep -xq 'down' /sys/class/net/w*/operstate 2>/dev/null ; then - grep -xq '0x1003' /sys/class/net/w*/flags && wifiicon="📡 " || wifiicon="❌ " + grep -xq '0x1003' /sys/class/net/w*/flags && wifiicon="X" || wifiicon="X" fi -printf "%s%s%s\n" "$wifiicon" "$(sed "s/down/❎/;s/up/🌐/" /sys/class/net/e*/operstate 2>/dev/null)" "$(sed "s/.*/🔒/" /sys/class/net/tun*/operstate 2>/dev/null)" +printf "%s%s%s\n" "$(sed "s/.*/V/" /sys/class/net/tun*/operstate 2>/dev/null)" "$(sed "s/down/X/;s/up/E/" /sys/class/net/e*/operstate 2>/dev/null)" "$wifiicon" diff --git a/scripts/.local/bin/statusbar/sb-iplocate b/scripts/.local/bin/statusbar/sb-iplocate index 2c70b08..ab89ffd 100755 --- a/scripts/.local/bin/statusbar/sb-iplocate +++ b/scripts/.local/bin/statusbar/sb-iplocate @@ -9,7 +9,7 @@ #addr="$(curl ifconfig.me 2>/dev/null)" || exit #grep "flag: " "${XDG_DATA_HOME:-$HOME/.local/share}/larbs/emoji" | grep "$(geoiplookup "$addr" | sed 's/.*, //')" | sed "s/flag: //;s/;.*//" -locaddr=$(hostname -I | awk '{print $1}') +locaddr=$(hostname -i | awk '{print $1}') echo $locaddr case $BLOCK_BUTTON in diff --git a/scripts/.local/bin/statusbar/sb-mailbox b/scripts/.local/bin/statusbar/sb-mailbox index 2132184..13e152f 100755 --- a/scripts/.local/bin/statusbar/sb-mailbox +++ b/scripts/.local/bin/statusbar/sb-mailbox @@ -3,6 +3,8 @@ # Displays number of unread mail and an loading icon if updating. # When clicked, brings up `neomutt`. +# ivan: removed gay emoji + case $BLOCK_BUTTON in 1) setsid -f "$TERMINAL" -e neomutt ;; 2) setsid -f mw -Y >/dev/null ;; @@ -15,6 +17,6 @@ esac unread="$(find "${XDG_DATA_HOME:-$HOME/.local/share}"/mail/*/[Ii][Nn][Bb][Oo][Xx]/new/* -type f | wc -l 2>/dev/null)" -pidof mbsync >/dev/null 2>&1 && icon="🔃" +pidof mbsync >/dev/null 2>&1 && icon="U" -[ "$unread" = "0" ] && [ "$icon" = "" ] || echo "📬$unread$icon" +[ "$unread" = "0" ] && [ "$icon" = "" ] || echo "$unread$icon" diff --git a/scripts/.local/bin/statusbar/sb-nettraf b/scripts/.local/bin/statusbar/sb-nettraf index eb7a73b..824e156 100755 --- a/scripts/.local/bin/statusbar/sb-nettraf +++ b/scripts/.local/bin/statusbar/sb-nettraf @@ -26,4 +26,4 @@ update() { rx=$(update /sys/class/net/[ew]*/statistics/rx_bytes) tx=$(update /sys/class/net/[ew]*/statistics/tx_bytes) -printf "🔻%4sB 🔺%4sB\\n" $(numfmt --to=iec $rx) $(numfmt --to=iec $tx) +printf "%4sB/%4sB\\n" $(numfmt --to=iec $rx) $(numfmt --to=iec $tx) diff --git a/scripts/.local/bin/statusbar/sb-volume b/scripts/.local/bin/statusbar/sb-volume index 3cfdc45..2b7ce67 100755 --- a/scripts/.local/bin/statusbar/sb-volume +++ b/scripts/.local/bin/statusbar/sb-volume @@ -17,14 +17,10 @@ esac vol="$(pamixer --get-volume)" -if [ "$vol" -gt "70" ]; then - icon="🔊" -elif [ "$vol" -gt "30" ]; then - icon="🔉" -elif [ "$vol" -gt "0" ]; then - icon="🔈" +if [ "$vol" -gt "0" ]; then + icon="" else - echo 🔇 && exit + echo && exit fi echo "$icon$vol%" diff --git a/scripts/.local/bin/sysact b/scripts/.local/bin/sysact index f12bfa1..bf7f199 100755 --- a/scripts/.local/bin/sysact +++ b/scripts/.local/bin/sysact @@ -1,19 +1,27 @@ #!/bin/sh +dmenu="$HOME/.local/bin/cdmenu" + # A dmenu wrapper script for system functions. case "$(readlink -f /sbin/init)" in *systemd*) ctl='systemctl' ;; *) ctl='loginctl' ;; esac -case "$(printf "🔒 lock\n🚪 leave dwm\n♻️ renew dwm\n🐻 hibernate\n💤 sleep\n🔃 reboot\n🖥️shutdown\n📺 display off" | cdmenu -i -p 'Action: ')" in - '🔒 lock') slock ;; - '🚪 leave dwm') kill -TERM "$(pgrep -u "$USER" "\bdwm$")" ;; - '♻️ renew dwm') kill -HUP "$(pgrep -u "$USER" "\bdwm$")" ;; - '🐻 hibernate') slock $ctl hibernate ;; - '💤 sleep') slock $ctl suspend ;; - '🔃 reboot') $ctl reboot ;; - '🖥️shutdown') $ctl poweroff ;; - '📺 display off') xset dpms force off ;; +if [ -z "$1" ]; then + cmd=$(printf "lock\nleave dwm\nrenew dwm\nhibernate\nsleep\nreboot\nshutdown\ndisplay off" | $dmenu -i -p 'Action: ') +else + cmd=$1 +fi + +case "$cmd" in + 'lock') slock ;; + 'leave dwm') kill -TERM "$(pgrep -u "$USER" "\bdwm$")" ;; + 'renew dwm') kill -HUP "$(pgrep -u "$USER" "\bdwm$")" ;; + 'hibernate') slock $ctl hibernate ;; + 'sleep') slock $ctl suspend ;; + 'reboot') $ctl reboot ;; + 'shutdown') $ctl poweroff ;; + 'display off') xset dpms force off ;; *) exit 1 ;; esac |
