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

如何配置XMonad让Conky作为dock不被窗口遮挡?

解决XMonad为Conky预留空间的问题

一、调整Conky配置(.conkyrc)

  • 将own_window_type固定设置为dock,desktop类型无法被XMonad的manageDocks识别为需要预留空间的dock组件。
  • 添加窗口提示配置,明确告知窗口管理器Conky的属性:
    own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
    
    • below:确保Conky始终处于其他窗口后方
    • sticky:让Conky在所有工作区保持显示
    • skip_taskbar/skip_pager:避免Conky出现在任务栏和分页器中
  • 配置alignment指定Conky的固定位置(如alignment top_right或bottom_left),同时设置minimum_size固定其尺寸,避免布局因窗口大小变化混乱。

二、修正XMonad配置

  • 删除className =? "Conky" --> doIgnore这一行:doIgnore会让XMonad完全忽略Conky窗口,导致manageDocks无法识别它并预留空间。
  • 确保avoidStruts正确包裹所有布局,示例:
    myLayout = avoidStruts (tiled ||| Mirror tiled ||| Full)
      where
        tiled   = Tall nmaster delta ratio
        nmaster = 1
        ratio   = 1/2
        delta   = 3/100
    
  • 确认main函数中docks转换器已正确应用,它是处理dock窗口空间预留的核心逻辑。

三、验证与额外处理

  • 修改配置后,先执行killall conky关闭现有进程,按Mod+Q重启XMonad,再重新启动Conky。
  • 若问题仍存在,用xprop工具点击Conky窗口,查看WM_CLASS值,确认XMonad配置中匹配的类名是否正确(部分版本Conky的类名为小写conky)。
  • 关于dzen2替代方案:若Conky配置始终不生效,可尝试将Conky输出管道到dzen2,它天生适配窗口管理器的dock场景。示例启动命令:
    conky -c ~/.conkyrc_dzen | dzen2 -x 0 -y 0 -w 1920 -h 24 -fn "Monospace-10" -bg "#222222" -fg "#ffffff"
    
    此方式下dzen2窗口会被manageDocks自动识别,无需额外复杂配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 04:49:57