You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 22.04下i3中Dunst通知无法浮动的问题求助

解决i3中Dunst通知无法按预期浮动显示的问题

问题说明

在Ubuntu 22.04上使用i3窗口管理器搭配Dunst通知工具,期望通知以300x300的浮动窗口在右上角展示,但目前通知始终占据屏幕顶部整宽,且i3未正确识别其为浮动窗口——即便已在i3配置中针对Dunst类启用了浮动规则。

当前配置

Dunst配置文件 (~/.config/dunst/dunstrc)

[global]
width = 300
height = 300
origin = top-right
offset = 10x50
scale = 0
title = Dunst
class = Dunst

i3配置文件 (~/.config/i3/config)

for_window [window_role="pop-up"] floating enable
for_window [window_role="task_dialog"] floating enable
for_window [class="Dunst"] floating enable

xprop检测结果

对通知窗口执行xprop命令,输出如下:

_NET_WM_WINDOW_OPACITY(CARDINAL) = 3650722120
_NET_WM_STATE(ATOM) = _NET_WM_STATE_ABOVE
_NET_WM_WINDOW_TYPE(ATOM) = _NET_WM_WINDOW_TYPE_NOTIFICATION, _NET_WM_WINDOW_TYPE_UTILITY
WM_CLASS(STRING) = "Dunst", "Dunst"
_NET_WM_NAME(UTF8_STRING) = "Dunst"
WM_NAME(STRING) = "Dunst"

修复方案

1. 修改Dunst的窗口类型设置

i3对_NET_WM_WINDOW_TYPE_NOTIFICATION类型的窗口有默认处理逻辑,可能会忽略浮动配置。可以强制Dunst使用utility类型窗口,并禁用xinerama适配:
在Dunst配置的[global]段添加两行:

force_xinerama = false
window_type = utility

2. 调整i3的规则优先级

i3的规则按顺序匹配,把Dunst的浮动规则移到最前面确保优先生效;同时添加针对通知窗口类型的兜底规则:
修改i3配置为:

for_window [class="Dunst"] floating enable
for_window [window_type="notification"] floating enable
for_window [window_role="pop-up"] floating enable
for_window [window_role="task_dialog"] floating enable

3. 重启服务加载新配置

  • 重启Dunst:执行killall dunst && dunst &
  • 重新加载i3配置:按Mod+Shift+C,或用Mod+Shift+R重启i3

4. 测试效果

发送测试通知验证:

notify-send "测试通知" "检查是否按预期以浮动窗口显示"

此时通知应以300x300的尺寸出现在屏幕右上角,不再占满顶部宽度。


内容的提问来源于stack exchange,提问作者Raida

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 01:25:12