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)