home: add sway i3blocks
This commit is contained in:
parent
9287ae33bb
commit
c23a57a21a
|
@ -459,5 +459,50 @@ border-size=1
|
|||
};
|
||||
};
|
||||
};
|
||||
|
||||
xdg.configFile."i3blocks/bin/wifi".source = ./sway-i3block/wifi;
|
||||
xdg.configFile."i3blocks/bin/battery".source = ./sway-i3block/battery;
|
||||
xdg.configFile."i3blocks/config".text = ''
|
||||
align=center
|
||||
separator=false
|
||||
# separator_block_width=15
|
||||
markup=pango
|
||||
# color=#f8f8f2
|
||||
color=#e4e4e4
|
||||
|
||||
[root]
|
||||
label=💽
|
||||
command=df -h / | awk 'FNR==2 { gsub(/[A-Za-z]/, ""); printf " %i<span color=\"#589df6\">G</span>\n", $4 }'
|
||||
interval=3
|
||||
|
||||
[memory]
|
||||
label=💾
|
||||
command=free --giga | awk 'FNR==2{ printf " %i<span color=\"#589df6\">G</span>\n", $7 }'
|
||||
interval=2
|
||||
|
||||
[wifi]
|
||||
label=
|
||||
command=~/.config/i3blocks/bin/wifi
|
||||
interval=5
|
||||
color=#589df6
|
||||
|
||||
[volume]
|
||||
command=if ponymix -t sink is-muted; then echo '🔇'; else if test $(ponymix -t sink get-volume) -gt 50; then echo -n "🔊"; else echo -n "🔉"; fi; echo "$(ponymix -t sink get-volume)<span color=\"#589df6\">%</span>"; fi
|
||||
interval=1
|
||||
|
||||
[mic]
|
||||
command=if ponymix -t source is-muted; then echo '<span color="#ffffff"></span>'; else echo "<span color=\"#ff5555\"> $(ponymix -t source get-volume)%</span>"; fi
|
||||
interval=1
|
||||
|
||||
[battery]
|
||||
command=~/.config/i3blocks/bin/battery
|
||||
interval=2
|
||||
color=#ff5555
|
||||
|
||||
[time]
|
||||
label=⏰
|
||||
command=date '+%T'
|
||||
interval=1
|
||||
'';
|
||||
};
|
||||
}
|
||||
|
|
|
@ -0,0 +1,107 @@
|
|||
#!/usr/bin/env python3
|
||||
#
|
||||
# Copyright (C) 2016 James Murphy
|
||||
# Licensed under the GPL version 2 only
|
||||
#
|
||||
# A battery indicator blocklet script for i3blocks
|
||||
|
||||
import re
|
||||
from subprocess import check_output
|
||||
|
||||
status = check_output(['acpi'], universal_newlines=True)
|
||||
|
||||
if not status:
|
||||
# stands for no battery found
|
||||
fulltext = "<span color='red'>🔞🔋</span>"
|
||||
percentleft = 100
|
||||
else:
|
||||
# if there is more than one battery in one laptop, the percentage left is
|
||||
# available for each battery separately, although state and remaining
|
||||
# time for overall block is shown in the status of the first battery
|
||||
batteries = status.split("\n")
|
||||
state_batteries=[]
|
||||
commasplitstatus_batteries=[]
|
||||
percentleft_batteries=[]
|
||||
time = ""
|
||||
for battery in batteries:
|
||||
if battery!='':
|
||||
state_batteries.append(battery.split(": ")[1].split(", ")[0])
|
||||
commasplitstatus = battery.split(", ")
|
||||
if not time:
|
||||
time = commasplitstatus[-1].strip()
|
||||
# check if it matches a time
|
||||
time = re.match(r"(\d+):(\d+)", time)
|
||||
if time:
|
||||
time = ":".join(time.groups())
|
||||
timeleft = " ({})".format(time)
|
||||
else:
|
||||
timeleft = ""
|
||||
|
||||
p = int(commasplitstatus[1].rstrip("%\n"))
|
||||
if p>0:
|
||||
percentleft_batteries.append(p)
|
||||
commasplitstatus_batteries.append(commasplitstatus)
|
||||
state = state_batteries[0]
|
||||
commasplitstatus = commasplitstatus_batteries[0]
|
||||
if percentleft_batteries:
|
||||
percentleft = int(sum(percentleft_batteries)/len(percentleft_batteries))
|
||||
else:
|
||||
percentleft = 0
|
||||
|
||||
# stands for charging
|
||||
#FA_LIGHTNING = "<span color='#E88939' font='FontAwesome'>\uf0e7</span>"
|
||||
#FA_LIGHTNING = "<span color='#E88939'>⚡</span>"
|
||||
FA_LIGHTNING = "<span color='#E88939'>⚡</span>"
|
||||
|
||||
# stands for plugged in
|
||||
#FA_PLUG = "<span color='#E88939' font='FontAwesome'>\uf1e6</span>"
|
||||
#FA_PLUG = "<span color='#E88939'>🔌</span>"
|
||||
FA_PLUG = "<span color='#E88939'>🔌</span>"
|
||||
|
||||
# stands for using battery
|
||||
#FA_BATTERY = "<span color='#E88939' font='FontAwesome'>\uf240</span>"
|
||||
FA_BATTERY = "<span color='#E88939'>🔋</span>"
|
||||
|
||||
# stands for unknown status of battery
|
||||
#FA_QUESTION = "<span color='#E88939' font='FontAwesome'>\uf128</span>"
|
||||
FA_QUESTION = "<span color='#E88939'>❔</span>"
|
||||
|
||||
|
||||
if state == "Discharging":
|
||||
fulltext = FA_BATTERY + " "
|
||||
elif state == "Full":
|
||||
fulltext = FA_PLUG + " "
|
||||
timeleft = ""
|
||||
elif state == "Unknown":
|
||||
fulltext = FA_BATTERY + " " + FA_QUESTION + " "
|
||||
timeleft = ""
|
||||
else:
|
||||
fulltext = FA_LIGHTNING + " " + FA_PLUG + " "
|
||||
|
||||
percentcolor = "#FFFFFF"
|
||||
|
||||
if percentleft < 10:
|
||||
# exit code 33 will turn background red
|
||||
percentcolor = "#FFFFFF"
|
||||
elif percentleft < 20:
|
||||
percentcolor = "#FF3300"
|
||||
elif percentleft < 30:
|
||||
percentcolor = "#FF6600"
|
||||
elif percentleft < 40:
|
||||
percentcolor = "#FF9900"
|
||||
elif percentleft < 50:
|
||||
percentcolor = "#FFCC00"
|
||||
elif percentleft < 60:
|
||||
percentcolor = "#FFFF00"
|
||||
elif percentleft < 70:
|
||||
percentcolor = "#FFFF33"
|
||||
elif percentleft < 80:
|
||||
percentcolor = "#FFFF66"
|
||||
|
||||
fulltext += '<span color="{}">{}%</span>'.format(percentcolor, percentleft)
|
||||
fulltext += timeleft
|
||||
|
||||
print(fulltext)
|
||||
print(fulltext)
|
||||
if percentleft < 10:
|
||||
exit(33)
|
|
@ -0,0 +1,38 @@
|
|||
#!/bin/sh
|
||||
# Copyright (C) 2014 Alexander Keller <github@nycroth.com>
|
||||
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
#------------------------------------------------------------------------
|
||||
|
||||
INTERFACE="${BLOCK_INSTANCE:-wlan0}"
|
||||
|
||||
#------------------------------------------------------------------------
|
||||
|
||||
# As per #36 -- It is transparent: e.g. if the machine has no battery or wireless
|
||||
# connection (think desktop), the corresponding block should not be displayed.
|
||||
[[ ! -d /sys/class/net/${INTERFACE}/wireless ]] ||
|
||||
[[ "$(cat /sys/class/net/$INTERFACE/operstate)" = 'down' ]] && exit
|
||||
|
||||
COLOR_MAC="${COLOR_MAC:-grey}"
|
||||
COLOR_FREQ="${COLOR_FREQ:-white}"
|
||||
COLOR_SIGNAL="${COLOR_SIGNAL:-#589df6}"
|
||||
COLOR_BANDWIDTH="${COLOR_BANDWIDTH:-grey}"
|
||||
|
||||
echo -n " ";
|
||||
iw dev $INTERFACE link | head -8 | grep -vE '(SSID|TX|RX)' \
|
||||
| sed -e "s/.*to .*\([0-9a-f:]\{5\}\) .on.*/<span color='$COLOR_MAC'>\1<\/span>/g; s/^\s//g" \
|
||||
| tr -d "\n" \
|
||||
| sed -e "s/freq: / <span color='$COLOR_FREQ'>/g; s/signal: /<\/span> <span color='$COLOR_SIGNAL'>/g; s/mrx bitrate: \([0-9\.]*\).*tx bitrate: \([0-9\.]*\).*/<\/span> <span color='$COLOR_BANDWIDTH'>\1\/\2<\/span>/g;"
|
||||
echo ""
|
Loading…
Reference in New Issue