diff --git a/home-profiles/desktop/.config/qbar/blocks/disk b/home-profiles/desktop/.config/qbar/blocks/disk new file mode 100755 index 0000000000000000000000000000000000000000..b48df329184fc60435a646ca550c78887fb5b1c7 --- /dev/null +++ b/home-profiles/desktop/.config/qbar/blocks/disk @@ -0,0 +1,6 @@ +#!/usr/bin/env zsh + +dir="/" + +df -h -P -l "$dir" | awk '/\// { print $4 }' + diff --git a/home-profiles/desktop/.config/qbar/blocks/mumble b/home-profiles/desktop/.config/qbar/blocks/mumble new file mode 100755 index 0000000000000000000000000000000000000000..1f25f2fb7bd70675d3c1caadf9fd6c82c32ea4bf --- /dev/null +++ b/home-profiles/desktop/.config/qbar/blocks/mumble @@ -0,0 +1,34 @@ +#!/usr/bin/env python + +# SPDX-License-Identifier: GPL-3.0-or-later +# usage: $ block-mumble mumble.example.com:64738 mumble.example.org +# depends: python + +from struct import pack, unpack +import socket, sys, time, datetime + +servers = [(*x.split(':'), 64738)[:2] for x in sys.argv[1:]] +servers = [(host, int(port)) for (host, port) in servers] + +if not servers: + exit(1) + +msg = '🎧︎' +with socket.socket(socket.AF_INET, socket.SOCK_DGRAM) as s: + s.settimeout(1) + + for host, port in servers: + msg += f' {host}:' if len(servers) > 1 else ' ' + try: + # https://wiki.mumble.info/wiki/Protocol + buf = pack('>iQ', 0, 0) + s.sendto(buf, (host, port)) + data, _ = s.recvfrom(1024) + data = unpack(">bbbbQiii", data) + msg += f'{data[5]}/{data[6]}' + except socket.gaierror: + msg += '<error>unknown<error>' + except socket.timeout: + msg += '<warning>?/?<warning>' + +print(msg)