0

所以我第一次安装了 xmobar,并在文档和一些 YouTube 视频的帮助下对它进行了一些修改。当我重新加载 xmonad wm 时,我得到了 xmobar 栏,但它卡在了更新中……我将提供配置文件。提前致谢!

Config
{ --APPERANCE

  --FONTS
  font = "xft=Ubuntu:weight=bold:pixelsize=12:antialias=true:hinting:true",
  --COLORS
  bgColor = "#282c34",
  fgColor = "#ff6c6b",
  --BAR POSITION
  position = Top,
  commands =
  [ --Get kernel version
    Run Com ".local/bin/kernel" [] "kernel" 3600,
    --CPU Usage
    Run Cpu ["-t", "<fn=2>\xf108</fn>  cpu: (<total>%)", "-H", "50", "--high", "red"] 20,
    --RAM Usage
    Run Memory ["-t", "<fn=2>\xf233</fn>  mem: <used>M (<usedratio>%)"] 20,
    --Free Disk Space
    Run DiskU [("/", "<fn=2>\xf0c7</fn>  hdd: <free> free")] [] 60,
    --Uptime
    Run Uptime ["-t", "uptime: <days>d <hours>h"] 360,
    --Battery
    Run BatteryP ["BAT0"] ["-t", "<acstatus><watts> (<left>%)"] 360,
    --Date & Time
    Run Date "<fn=2>\xf017</fn>  %b %d %Y - (%H:%M) " "date" 50,
    --Weather
    Run Weather "RJTT" ["--template", "<skyCondition> | <fc=#4682B4><tempC></fc>°C | <fc=#4682B4><rh></fc>% | <fc=#4682B4><pressure></fc>hPa"] 36000,
    --Network Activity Monitor
    Run DynNetwork
          [ "--template",
            "<dev>: <tx>kB/s|<rx>kB/s",
            "--Low",
            "1000", -- units: B/s
            "--High",
            "5000", -- units: B/s
            "--low",
            "darkgreen",
            "--normal",
            "darkorange",
            "--high",
            "darkred"
          ]
          10,
          -- Script that dynamically adjusts xmobar padding depending on number of trayer icons
          Run Com ".config/xmobar/trayer-padding-icon.sh" [] "trayerpad" 20
    ]
}
4

1 回答 1

1

您没有在配置中指定顶级template。缺失时,默认"%StdinReader% }{ <fc=#00FF00>%uname%</fc> * <fc=#FF0000>%theDate%</fc>". 这三个项目中的哪一个还在Updating...

如果是StdinReader(很可能)并且假设您希望显示 XMonad 记录的数据(即不仅仅是您定义的“外部”项目),请检查您的 XMonad 实例的输出是否正确地通过管道传输到 xmobar。这可以在您的.xsession(或类似的)文件中设置,也可以在 XMonad 中使用spawnPipeand hPutStrLn(来自包中的XMonad.Util.Run模块xmonad-contrib)。

对于后者,您通常还会导入XMonad.Hooks.DynamicLog(也从xmonad-contrib包中)并logHook重新定义ppOutput您首选的漂亮打印机的字段(大概xmobarPP)以将其输出定向到 xmobar 的实例。然后你xmonad.hs会看起来像这样:

import XMonad.Util.Run -- for spawnPipe and hPutStrLn
import XMonad.Hooks.DynamicLog -- for dynamicLogWithPP, pp*, xmobar*
...
main = do
  ...
  barpipe <- spawnPipe "xmobar -with -your -preferred -options"
  ...
  xmonad $ def {
    ...
    logHook = dynamicLogWithPP $ xmobarPP {
      ...
      ppOutput = hPutStrLn barpipe
      ...
    }
    ...
  }

关于您的 xmobar 配置的其余部分:

  • 考虑添加您自己的顶级template,否则您将无法使用(即显示)您在其中定义的任何项目
  • =用字体定义中的第二个替换:得到font = "xft:Ubuntu...
于 2021-10-22T19:12:04.880 回答