mirror of
https://github.com/vincentbernat/i3wm-configuration.git
synced 2025-06-24 02:38:33 +02:00
polybar: display dunst state for notifications
This commit is contained in:
parent
80c4605916
commit
295e13f1c4
2 changed files with 50 additions and 2 deletions
|
@ -62,6 +62,8 @@ icons = {
|
||||||
"wifi-medium": icon(2, ""),
|
"wifi-medium": icon(2, ""),
|
||||||
"wifi-high": icon(2, ""),
|
"wifi-high": icon(2, ""),
|
||||||
"wired": icon(2, ""),
|
"wired": icon(2, ""),
|
||||||
|
"notifications-enabled": icon(2, ""),
|
||||||
|
"notifications-disabled": icon(2, ""),
|
||||||
}
|
}
|
||||||
application_icons_nomatch = icon(2, "")
|
application_icons_nomatch = icon(2, "")
|
||||||
application_icons_alone = {application_icons[k] for k in {"vbeterm"}}
|
application_icons_alone = {application_icons[k] for k in {"vbeterm"}}
|
||||||
|
@ -550,6 +552,46 @@ async def bluetooth_notifications(
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@on(
|
||||||
|
DBusSignal(
|
||||||
|
system=False,
|
||||||
|
path="/org/freedesktop/Notifications",
|
||||||
|
interface="org.freedesktop.DBus.Properties",
|
||||||
|
member="PropertiesChanged",
|
||||||
|
signature="sa{sv}as",
|
||||||
|
)
|
||||||
|
)
|
||||||
|
async def dunst_status_update(
|
||||||
|
i3, event, path, interface, changed, invalid
|
||||||
|
):
|
||||||
|
"""Update notification status in polybar."""
|
||||||
|
if interface != "org.dunstproject.cmd0":
|
||||||
|
return
|
||||||
|
if "paused" not in changed:
|
||||||
|
return
|
||||||
|
polybar(
|
||||||
|
"dunst",
|
||||||
|
icons[
|
||||||
|
changed["paused"][1]
|
||||||
|
and "notifications-disabled"
|
||||||
|
or "notifications-enabled"
|
||||||
|
],
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@on(StartEvent)
|
||||||
|
async def dunst_status_check(i3, event):
|
||||||
|
"""Display notification status for polybar."""
|
||||||
|
conn = i3.session_bus["org.freedesktop.Notifications"]
|
||||||
|
obj = conn["/org/freedesktop/Notifications"]
|
||||||
|
dunst = await obj.get_async_interface("org.dunstproject.cmd0")
|
||||||
|
paused = await dunst.paused
|
||||||
|
polybar(
|
||||||
|
"dunst",
|
||||||
|
icons[paused and "notifications-disabled" or "notifications-enabled"],
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
@on(
|
@on(
|
||||||
DBusSignal(
|
DBusSignal(
|
||||||
system=True,
|
system=True,
|
||||||
|
|
|
@ -34,11 +34,11 @@ modules-center = date
|
||||||
|
|
||||||
[bar/alone]
|
[bar/alone]
|
||||||
inherit = bar/common
|
inherit = bar/common
|
||||||
modules-right = cpu memory brightness battery network disk pulseaudio
|
modules-right = cpu memory brightness battery network disk dunst pulseaudio
|
||||||
|
|
||||||
[bar/primary]
|
[bar/primary]
|
||||||
inherit = bar/common
|
inherit = bar/common
|
||||||
modules-right = cpu memory brightness battery network disk pulseaudio
|
modules-right = cpu memory brightness battery network disk dunst pulseaudio
|
||||||
|
|
||||||
[bar/secondary]
|
[bar/secondary]
|
||||||
inherit = bar/common
|
inherit = bar/common
|
||||||
|
@ -106,6 +106,12 @@ type = custom/ipc
|
||||||
hook-0 = cat $XDG_RUNTIME_DIR/i3/network.txt 2> /dev/null
|
hook-0 = cat $XDG_RUNTIME_DIR/i3/network.txt 2> /dev/null
|
||||||
initial = 1
|
initial = 1
|
||||||
|
|
||||||
|
[module/dunst]
|
||||||
|
type = custom/ipc
|
||||||
|
hook-0 = cat $XDG_RUNTIME_DIR/i3/dunst.txt 2> /dev/null
|
||||||
|
initial = 1
|
||||||
|
click-left = dunstctl set-paused toggle
|
||||||
|
|
||||||
[module/date]
|
[module/date]
|
||||||
type = internal/date
|
type = internal/date
|
||||||
interval = 2
|
interval = 2
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue