dzen2如何检测实际分辨率和显示器数量

dzen2如何检测实际分辨率和显示器数量

我在笔记本电脑上这样dzen2使用:xmonad

 h <- spawnPipe "dzen2 -fn fixed -x 0 -y 800 -h 21 -w 1280 -ta l -fg '#ffffff' -bg '#663300' -e ''"

然而它也存在一些问题。

  • 如果我单独使用具有其他分辨率的外部显示器,它不会停留在屏幕底部(我猜是因为我设置了-y 800)。但是它应该自动检测到这一点并将其放置在屏幕底部。
  • 与宽度相同(例如使用投影仪时)。但是它应该自动设置最大宽度。
  • 如果我使用多台显示器,则它仅在一台显示器上,但如果在每台显示器上都有它的副本,那就太好了。

我该如何解决这些问题?

答案1

我运行了类似这样的xrandr输出。awk例如,这将为您提供最高的连接屏幕的高度:

TALLEST_HEIGHT=`xrandr --prop --nograb | awk -F " |x+" 'BEGIN { max = 0 } / connected/ { if($5 > max){ max = $5 }}; END { print max }'`

然后您可以在调用时使用它dzen

dzen -h $TALLEST_HEIGHT (...)

类似的逻辑可以应用于许多情况,如果您切换$5$4您将获得宽度,并且它也可以轻松地适应以获得最小的屏幕而不是最宽的屏幕。您还可以查看字段$6和 ,$7它们会告诉您每个显示的偏移量,并使用它们到达图片的最底部(或最左边)。

相关内容