Initial commit
This commit is contained in:
commit
d978c129d2
6 changed files with 197 additions and 0 deletions
10
README.md
Normal file
10
README.md
Normal file
|
@ -0,0 +1,10 @@
|
|||
This is just a bunch of usefull little scripts when you don't have a fully fledged
|
||||
desktop environment on hand and are relying on the elegant simplicity of a window
|
||||
manager like for example [[dwm|dwm.suckless.org]].
|
||||
|
||||
## List ##
|
||||
* dpass : dmenu password entry (WIP)
|
||||
* loopdwm : easy dwm restarting, supports multiple versions
|
||||
* touchtog : toggle synaptics touchpad
|
||||
* volcont : pulsaudio volume control and synchronisation
|
||||
* clipqr : display primary clipboard with a QRcode (text transfer to phone)
|
3
clipqr
Executable file
3
clipqr
Executable file
|
@ -0,0 +1,3 @@
|
|||
#!/bin/sh
|
||||
|
||||
xsel -p -o | qrencode -o - | feh -. -
|
2
dpass
Executable file
2
dpass
Executable file
|
@ -0,0 +1,2 @@
|
|||
#!/bin/bash
|
||||
dmenu -nf '#000' -p "$1" <&- && echo
|
16
loopdwm
Executable file
16
loopdwm
Executable file
|
@ -0,0 +1,16 @@
|
|||
#!/bin/sh
|
||||
|
||||
while true; do
|
||||
# Chose version to use dynamically
|
||||
case "$(cat ~/.dwm-exec)" in
|
||||
dwm)
|
||||
dwm=/usr/bin/dwm
|
||||
;;
|
||||
dwm-dev)
|
||||
dwm=~/suckless/dwm
|
||||
;;
|
||||
esac
|
||||
$dwm 2> ~/.dwm.log
|
||||
# No error logging
|
||||
#$dwm >/dev/null 2>&1
|
||||
done
|
9
touchtog
Executable file
9
touchtog
Executable file
|
@ -0,0 +1,9 @@
|
|||
#!/bin/sh
|
||||
|
||||
off=$(synclient -l | awk -F '= ' '/TouchpadOff/{print $2}')
|
||||
|
||||
if [ $off = 0 ]; then
|
||||
synclient TouchpadOff=1
|
||||
else
|
||||
synclient TouchpadOff=0
|
||||
fi
|
157
volcont
Executable file
157
volcont
Executable file
|
@ -0,0 +1,157 @@
|
|||
#!/bin/sh
|
||||
|
||||
# finds the active sink for pulse audio and increments the volume. useful when you have multiple audio outputs and have a key bound to vol-up and down
|
||||
# Taken from http://customlinux.blogspot.fr/2013/02/pavolumesh-control-active-sink-volume.html
|
||||
# and slightly adapted by lhark to work with notify-send
|
||||
|
||||
notify='yes'
|
||||
notiftime='400'
|
||||
inc='5'
|
||||
capvol='yes'
|
||||
maxvol='200'
|
||||
autosync='no'
|
||||
|
||||
main_sink=$(pacmd list-sinks |awk '/* index:/{print $3}')
|
||||
active_sinks=$(pacmd list-sinks |awk '/index:/{print $NF}' | tr '\n' ' ' | sed 's/ $/\n/g')
|
||||
limit=$((100 - inc))
|
||||
maxlimit=$((maxvol - inc))
|
||||
|
||||
updateSinks () {
|
||||
active_sinks=$(pacmd list-sinks |awk '/index:/{print $NF}' | tr '\n' ' ' | sed 's/ $/\n/g')
|
||||
}
|
||||
|
||||
|
||||
volUp () {
|
||||
updateSinks
|
||||
getCurVol
|
||||
|
||||
for sink in ${active_sinks}; do
|
||||
if [ ${capvol} = 'yes' ]; then
|
||||
if [ "${curVol}" -le 100 ] && [ "${curVol}" -ge ${limit} ]; then
|
||||
pactl set-sink-volume "${sink}" 100%
|
||||
elif [ "${curVol}" -lt ${limit} ]; then
|
||||
pactl set-sink-volume "${sink}" +${inc}%
|
||||
fi
|
||||
elif [ "${curVol}" -le ${maxvol} ] && [ "${curVol}" -ge ${maxlimit} ]; then
|
||||
pactl set-sink-volume "${sink}" ${maxvol}%
|
||||
elif [ "${curVol}" -lt ${maxlimit} ]; then
|
||||
pactl set-sink-volume "${sink}" +${inc}%
|
||||
fi
|
||||
done
|
||||
|
||||
getCurVol
|
||||
|
||||
if [ ${notify} = 'yes' ]
|
||||
then
|
||||
notify-send "Volume : ${curVol}%" -t ${notiftime}
|
||||
fi
|
||||
|
||||
if [ ${autosync} = 'yes' ]
|
||||
then
|
||||
volSync
|
||||
fi
|
||||
}
|
||||
|
||||
volDown () {
|
||||
updateSinks
|
||||
for sink in ${active_sinks}; do
|
||||
pactl set-sink-volume "${sink}" -${inc}%
|
||||
done
|
||||
getCurVol
|
||||
|
||||
if [ ${notify} = 'yes' ]; then
|
||||
notify-send "Volume : ${curVol}%" -t ${notiftime}
|
||||
fi
|
||||
|
||||
if [ ${autosync} = 'yes' ]; then
|
||||
volSync
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
volSync () {
|
||||
updateSinks
|
||||
getCurVol
|
||||
|
||||
for each in ${active_sinks}; do
|
||||
pactl set-sink-volume "${each}" "${curVol}"%
|
||||
done
|
||||
}
|
||||
|
||||
|
||||
getCurVol () {
|
||||
curVol=$(pacmd list-sinks |grep -A 15 'index: '"${main_sink}"'' |grep 'volume:' |egrep -v 'base volume:' |awk -F : '{print $3}' |grep -o -P '.{0,3}%'|sed s/.$// | tr -d ' ')
|
||||
}
|
||||
|
||||
|
||||
volMute () {
|
||||
case "$1" in
|
||||
mute)
|
||||
for sink in ${active_sinks}; do
|
||||
pactl set-sink-mute "${sink}" 1
|
||||
done
|
||||
curVol=0
|
||||
status=1
|
||||
;;
|
||||
unmute)
|
||||
for sink in ${active_sinks}; do
|
||||
pactl set-sink-mute "${sink}" 0
|
||||
done
|
||||
getCurVol
|
||||
status=0
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ ${notify} = 'yes' ]; then
|
||||
notify-send "$([ "${status}" = 1 ] && echo "Sound muted" || echo "Sound unmuted")" -t ${notiftime}
|
||||
fi
|
||||
}
|
||||
|
||||
volMuteStatus () {
|
||||
curStatus=$(pacmd list-sinks |grep -A 15 'index: '"${main_sink}"'' |awk '/muted/{ print $2}')
|
||||
|
||||
if [ "${curStatus}" = 'yes' ]; then
|
||||
volMute unmute
|
||||
else
|
||||
volMute mute
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
volHelp () {
|
||||
echo "Finds the active sink for pulse audio and manages the volume."
|
||||
echo "Options :"
|
||||
echo ""
|
||||
echo " --down"
|
||||
echo " --help"
|
||||
echo " --mute"
|
||||
echo " --sync Sync all sinks volumes"
|
||||
echo " --toggle"
|
||||
echo " --unmute"
|
||||
echo " --up"
|
||||
}
|
||||
|
||||
|
||||
case "$1" in
|
||||
--up)
|
||||
volUp
|
||||
;;
|
||||
--down)
|
||||
volDown
|
||||
;;
|
||||
--toggle)
|
||||
volMuteStatus
|
||||
;;
|
||||
--help)
|
||||
volHelp
|
||||
;;
|
||||
--mute)
|
||||
volMute mute
|
||||
;;
|
||||
--unmute)
|
||||
volMute unmute
|
||||
;;
|
||||
--sync)
|
||||
volSync
|
||||
;;
|
||||
esac
|
Loading…
Reference in a new issue