aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xherbstluftwm/.config/herbstluftwm/panel_indicators.sh157
-rwxr-xr-xherbstluftwm/.config/herbstluftwm/populate_panel.sh10
-rw-r--r--herbstluftwm/.config/herbstluftwm/system_utils/all.sh9
-rw-r--r--herbstluftwm/.config/herbstluftwm/system_utils/battery.sh12
-rw-r--r--herbstluftwm/.config/herbstluftwm/system_utils/clock.sh6
-rw-r--r--herbstluftwm/.config/herbstluftwm/system_utils/music.sh29
-rw-r--r--herbstluftwm/.config/herbstluftwm/system_utils/network.sh34
-rw-r--r--herbstluftwm/.config/herbstluftwm/system_utils/volume.sh8
8 files changed, 162 insertions, 103 deletions
diff --git a/herbstluftwm/.config/herbstluftwm/panel_indicators.sh b/herbstluftwm/.config/herbstluftwm/panel_indicators.sh
index 2a3d2e6..a65be74 100755
--- a/herbstluftwm/.config/herbstluftwm/panel_indicators.sh
+++ b/herbstluftwm/.config/herbstluftwm/panel_indicators.sh
@@ -1,36 +1,17 @@
1#!/usr/bin/env bash 1#!/usr/bin/env bash
2 2
3icon_font="FontAwesome-10" 3source "$HLWM_CONF_DIR/system_utils/all.sh"
4
5export icon_font="FontAwesome-10"
4 6
5battery_icon=("\uf244" "\uf243" "\uf242" "\uf241" "\uf240" "\uf1e6") 7battery_icon=("\uf244" "\uf243" "\uf242" "\uf241" "\uf240" "\uf1e6")
6network_icon=("\uf1eb" "\uf109") 8network_icon=("\uf1eb" "\uf109")
7music_icon="\uf001" 9music_icon="\uf001"
8volume_icon=("\uf026" "\uf027" "\uf028") 10volume_icon=("\uf026" "\uf027" "\uf028")
9 11
10music() 12hlwm_indicator_music()
11{ 13{
12 # Music 14 playing=$(hlwm_utils_music_playing)
13 mpd_status=$(mpc | sed -nr "s/^\[(.*)\].*$/\1/p")
14 if [ $mpd_status = "playing" ]; then
15 player_artist=$(mpc -f "%artist%" current)
16 player_title=$(mpc -f "%title%" current)
17 if [ -n "$player_artist" ]; then
18 playing="$player_artist - $player_title"
19 else
20 playing="$player_title"
21 fi
22 elif [ $(playerctl status) = "Playing" ]; then
23 player_artist=$(playerctl metadata artist)
24 player_title=$(playerctl metadata title)
25 if [ -n "$player_artist" ] && [ -n "$player_title" ]; then
26 playing="$player_artist - $player_title"
27 else
28 now_playing=$(playerctl metadata vlc:nowplaying)
29 playing="$now_playing"
30 fi
31 else
32 playing=""
33 fi
34 15
35 if [ -n "$playing" ]; then 16 if [ -n "$playing" ]; then
36 if [ "$current" != "$playing" ] ; then 17 if [ "$current" != "$playing" ] ; then
@@ -48,70 +29,39 @@ music()
48 fi 29 fi
49} 30}
50 31
51volume() 32hlwm_indicator_volume()
52{ 33{
53 # Volume 34 # Volume
54 if pgrep pulseaudio >> /dev/null ; then 35 if pgrep pulseaudio >> /dev/null ; then
55 volumes=$(\ 36 volume=$(hlwm_utils_volume)
56 amixer get Master | \ 37 if [ -z "$volume" ] ; then
57 grep "Front Right: Playback"\ 38 volume_status="off"
58 ) 39 elif [ "$volume" -eq 0 ]; then
59 vol=$(\ 40 volume_status="%{F$HLWM_FG_ACOLOR}${volume_icon[0]} $volume%%{F-}"
60 echo $volumes | \ 41 elif [ "$volume" -lt 33 ]; then
61 sed "s/.*\[\([0-9]*\)%\].*/\1/"\ 42 volume_status="%{F$HLWM_FG_ACOLOR}${volume_icon[1]} $volume%%{F-}"
62 )
63 if [ -z $vol ] ; then
64 vol_status="off"
65 elif [ $vol -eq 0 ]; then
66 vol_status="%{F$HLWM_FG_ACOLOR}${volume_icon[0]} $vol%%{F-}"
67 elif [ $vol -lt 33 ]; then
68 vol_status="%{F$HLWM_FG_ACOLOR}${volume_icon[1]} $vol%%{F-}"
69 else 43 else
70 vol_status="%{F$HLWM_FG_ACOLOR}${volume_icon[2]} $vol%%{F-}" 44 volume_status="%{F$HLWM_FG_ACOLOR}${volume_icon[2]} $volume%%{F-}"
71 fi 45 fi
72 echo -e "volume\t$vol_status" 46 echo -e "volume\t$volume_status"
73 else 47 else
74 echo -e "volume\toff" 48 echo -e "volume\toff"
75 fi 49 fi
76} 50}
77 51
78network() 52hlwm_indicator_network()
79{ 53{
80 # Network 54 # Network
81 read lo int1 int2 <<< `ip link | sed -n 's/^[0-9]: \(.*\):.*$/\1/p'` 55 conn=$(hlwm_utils_active_network)
82 if iwconfig $int1 >/dev/null 2>&1; then 56 conn_type=$(echo "$conn" | cut -d: -f1)
83 wifi=$int1
84 eth=$int2
85 else
86 wifi=$int2
87 eth=$int1
88 fi
89
90 ip link show $eth | grep 'state UP' >/dev/null && int=$eth || int=$wifi
91 57
92 if [ $int == $wifi ] ; then 58 if [ "$conn_type" = "wifi" ] ; then
93 iwconfig=$(iwconfig $int) 59 ssid=$(echo "$conn" | cut -d: -f2)
94 ssid=$( 60 quality=$(echo "$conn" | cut -d: -f3)
95 echo $iwconfig | \ 61 net_status="${network_icon[0]} $ssid $quality%"
96 sed "s/.*ESSID:\(\".*\"\).*/\1/" | \ 62 elif [ "$conn_type" = "eth" ] ; then
97 sed "s/.*\(off\/any\).*/\"\1\"/" | \ 63 name=$(echo "$conn" | cut -d: -f2)
98 sed "s/.*\"\(.*\)\".*/\1/" 64 net_status="${network_icon[1]} $name"
99 )
100
101 quality=$( \
102 echo $iwconfig | \
103 sed "s/^.*Link Quality=\([0-9]*\)\/\([0-9]*\) .*$/(\1*100)\/\2/" | \
104 bc
105 )
106
107 if [ $ssid == "off/any" ] ; then
108 net_status="off"
109 else
110 net_status="${network_icon[0]} $ssid $quality%"
111 fi
112
113 elif [ $int == $eth ] ; then
114 net_status="${network_icon[1]} Ethernet"
115 else 65 else
116 net_status="off" 66 net_status="off"
117 fi 67 fi
@@ -119,39 +69,50 @@ network()
119 echo -e "net\t$net_status" 69 echo -e "net\t$net_status"
120} 70}
121 71
122battery() 72hlwm_indicator_battery()
123{ 73{
124 # Batteries 74 # Batteries
125 bat_info="off" 75 battery_info=""
126 for bat in $(find /sys/class/power_supply | grep BAT); do 76 while read -r battery; do
127 nr="${bat: -1}"
128 bat_info=""
129 77
130 bat_lvl=$(cat /sys/class/power_supply/BAT$nr/capacity) 78 battery=($battery)
131 bat_state=$(cat /sys/class/power_supply/BAT$nr/status) 79 battery_nr=${battery[0]}
80 battery_status=${battery[1]}
81 battery_level=${battery[2]}
132 82
133 if [ $bat_state == "Charging" ] ; then 83 if [ "$battery_status" = "Charging" ] ; then
134 bat_status="${battery_icon[5]}" 84 battery_status="${battery_icon[5]}"
135 elif [ $bat_lvl -lt 10 ] ; then 85 elif [ "$battery_level" -lt 10 ] ; then
136 bat_status="%{F$HLWM_ACCENT_ACOLOR}${battery_icon[0]}%{F-}" 86 battery_status="%{F$HLWM_ACCENT_ACOLOR}${battery_icon[0]}%{F-}"
137 elif [ $bat_lvl -lt 25 ] ; then 87 elif [ "$battery_level" -lt 25 ] ; then
138 bat_status="${battery_icon[1]}" 88 battery_status="${battery_icon[1]}"
139 elif [ $bat_lvl -lt 50 ] ; then 89 elif [ "$battery_level" -lt 50 ] ; then
140 bat_status="${battery_icon[2]}" 90 battery_status="${battery_icon[2]}"
141 elif [ $bat_lvl -lt 75 ] ; then 91 elif [ "$battery_level" -lt 75 ] ; then
142 bat_status="${battery_icon[3]}" 92 battery_status="${battery_icon[3]}"
143 else 93 else
144 bat_status="${battery_icon[4]}" 94 battery_status="${battery_icon[4]}"
145 fi 95 fi
146 96
147 bat_info+="$nr: $bat_status $bat_lvl%%{F-}" 97 battery_info+="$battery_nr: $battery_status $battery_level%%{F-}"
148 done 98 done < <(hlwm_utils_battery)
149 echo -e "battery\t$bat_info" 99
100 if [ -z "$battery_info" ] ; then
101 echo -e "battery\toff"
102 else
103 echo -e "battery\t$battery_info"
104 fi
150} 105}
151 106
152clock() 107hlwm_indicator_clock()
153{ 108{
154 echo -e $(date +$"date\t%{F$HLWM_FG_ACOLOR}%H:%M:%S %{F$HLWM_FG_ACOLOR}(%d-%m-%Y)%{F-}") 109 datetime=$(hlwm_utils_datetime)
110 datetime=($datetime)
111
112 date=${datetime[0]}
113 time=${datetime[1]}
114
115 echo -e "date\t%{F$HLWM_FG_ACOLOR}$time %{F$HLWM_FG_ACOLOR}($date)%{F-}"
155} 116}
156 117
157# vim: set ts=4 sw=4 tw=0 et : 118# vim: set ts=4 sw=4 tw=0 et :
diff --git a/herbstluftwm/.config/herbstluftwm/populate_panel.sh b/herbstluftwm/.config/herbstluftwm/populate_panel.sh
index bdb27b4..15a40c4 100755
--- a/herbstluftwm/.config/herbstluftwm/populate_panel.sh
+++ b/herbstluftwm/.config/herbstluftwm/populate_panel.sh
@@ -24,11 +24,11 @@ fi
24 # date ^fg(#efefef)18:33^fg(#909090), 2013-10-^fg(#efefef)29 24 # date ^fg(#efefef)18:33^fg(#909090), 2013-10-^fg(#efefef)29
25 25
26 while true ; do 26 while true ; do
27 music 27 hlwm_indicator_music
28 volume & 28 hlwm_indicator_volume &
29 network & 29 hlwm_indicator_network &
30 battery & 30 hlwm_indicator_battery &
31 clock & 31 hlwm_indicator_clock &
32 sleep 1 || break 32 sleep 1 || break
33 done > >(uniq_linebuffered) & 33 done > >(uniq_linebuffered) &
34 34
diff --git a/herbstluftwm/.config/herbstluftwm/system_utils/all.sh b/herbstluftwm/.config/herbstluftwm/system_utils/all.sh
new file mode 100644
index 0000000..d5a61ac
--- /dev/null
+++ b/herbstluftwm/.config/herbstluftwm/system_utils/all.sh
@@ -0,0 +1,9 @@
1#!/usr/bin/env bash
2utils=$(find "$HLWM_CONF_DIR/system_utils/" -name "*.sh" | grep -v ".*all.sh")
3
4for util in $utils; do
5 echo "source $util"
6 source $util
7done
8
9# vim: set ts=8 sw=4 tw=0 et :
diff --git a/herbstluftwm/.config/herbstluftwm/system_utils/battery.sh b/herbstluftwm/.config/herbstluftwm/system_utils/battery.sh
new file mode 100644
index 0000000..68c06ab
--- /dev/null
+++ b/herbstluftwm/.config/herbstluftwm/system_utils/battery.sh
@@ -0,0 +1,12 @@
1#!/usr/bin/env bash
2
3hlwm_utils_battery() {
4 for bat in $(find /sys/class/power_supply | grep BAT); do
5 bat_nr="${bat: -1}"
6 bat_lvl=$(cat "/sys/class/power_supply/BAT$bat_nr/capacity")
7 bat_state=$(cat "/sys/class/power_supply/BAT$bat_nr/status")
8
9 echo "$bat_nr $bat_state $bat_lvl"
10 done
11}
12# vim: set ts=8 sw=4 tw=0 et :
diff --git a/herbstluftwm/.config/herbstluftwm/system_utils/clock.sh b/herbstluftwm/.config/herbstluftwm/system_utils/clock.sh
new file mode 100644
index 0000000..644f311
--- /dev/null
+++ b/herbstluftwm/.config/herbstluftwm/system_utils/clock.sh
@@ -0,0 +1,6 @@
1#!/usr/bin/env bash
2
3hlwm_utils_datetime() {
4 date +$"%d-%m-%Y %H:%M:%S "
5}
6# vim: set ts=8 sw=4 tw=0 et :
diff --git a/herbstluftwm/.config/herbstluftwm/system_utils/music.sh b/herbstluftwm/.config/herbstluftwm/system_utils/music.sh
new file mode 100644
index 0000000..da7b74d
--- /dev/null
+++ b/herbstluftwm/.config/herbstluftwm/system_utils/music.sh
@@ -0,0 +1,29 @@
1#!/usr/bin/env bash
2
3hlwm_utils_music_playing() {
4
5 playing=""
6
7 mpd_status=$(mpc | sed -nr "s/^\[(.*)\].*$/\1/p")
8 if [ "$mpd_status" = "playing" ]; then
9 player_artist=$(mpc -f "%artist%" current)
10 player_title=$(mpc -f "%title%" current)
11 if [ -n "$player_artist" ]; then
12 playing="$player_artist - $player_title"
13 else
14 playing="$player_title"
15 fi
16 elif [ "$(playerctl status)" = "Playing" ]; then
17 player_artist=$(playerctl metadata artist)
18 player_title=$(playerctl metadata title)
19 if [ -n "$player_artist" ] && [ -n "$player_title" ]; then
20 playing="$player_artist - $player_title"
21 else
22 now_playing=$(playerctl metadata vlc:nowplaying)
23 playing="$now_playing"
24 fi
25 fi
26
27 echo "$playing"
28}
29# vim: set ts=8 sw=4 tw=0 et :
diff --git a/herbstluftwm/.config/herbstluftwm/system_utils/network.sh b/herbstluftwm/.config/herbstluftwm/system_utils/network.sh
new file mode 100644
index 0000000..4cbc1fb
--- /dev/null
+++ b/herbstluftwm/.config/herbstluftwm/system_utils/network.sh
@@ -0,0 +1,34 @@
1#!/usr/bin/env bash
2
3hlwm_utils_active_network() {
4 network=""
5
6 wifi=""
7 eth=""
8
9 devices="$(nmcli -t -f type,state,device d)"
10 for device in $devices; do
11 type=$(echo "$device" | cut -d: -f1)
12 state=$(echo "$device" | cut -d: -f2)
13 hwdevice=$(echo "$device" | cut -d: -f3)
14
15 if [ "$state" != "connected" ]; then
16 continue
17 elif [ "$type" = "wifi" ]; then
18 wifi="$hwdevice"
19 elif [ "$type" = "ethernet" ]; then
20 eth="$hwdevice"
21 fi
22 done
23
24 if [ -n "$wifi" ]; then
25 wifi_list=$(nmcli -t -f in-use,ssid,signal d wifi list ifname "$wifi")
26 network="wifi:$(echo "$wifi_list" | sed -n 's/^\*:\(.*\)$/\1/p')"
27 elif [ -n "$eth" ]; then
28 network_info=$(nmcli -t d show "$eth")
29 network="eth:$(echo "$network_info" | sed -n 's/^GENERAL.CONNECTION:\(.*\)$/\1/p')"
30 fi
31
32 echo "$network"
33}
34# vim: set ts=8 sw=4 tw=0 et :
diff --git a/herbstluftwm/.config/herbstluftwm/system_utils/volume.sh b/herbstluftwm/.config/herbstluftwm/system_utils/volume.sh
new file mode 100644
index 0000000..fcd4b88
--- /dev/null
+++ b/herbstluftwm/.config/herbstluftwm/system_utils/volume.sh
@@ -0,0 +1,8 @@
1#!/usr/bin/env bash
2
3hlwm_utils_volume() {
4 amixer get Master |
5 grep "Front Right: Playback" |
6 sed "s/.*\[\([0-9]*\)%\].*/\1/"
7}
8# vim: set ts=8 sw=4 tw=0 et :