我正在使用 XMonad 作为我的窗口管理器,并且想使用托盘作为 nm-applet 之类的图标面板。
问题是面板不会出现在屏幕顶部。如果我将其设置为底部,它就会出现。
经过多次尝试,我发现这是因为我的 xorg.conf 是为双屏设置的,并且托盘面板可能在我的视图之外生成(我目前只有一个屏幕,但我切换了很多次)。
手动调整 xorg.conf 文件以仅允许一个屏幕后,面板就会出现在正确的位置。
这些是我必须修改的内容:
Section "Monitor"
Identifier "0-LVDS"
Option "VendorName" "ATI Proprietary Driver"
Option "ModelName" "Generic Autodetecting Monitor"
Option "DPMS" "true"
Option "PreferredMode" "1366x768"
Option "TargetRefresh" "60"
Option "Position" "0 0" # Was 1280 256
Option "Rotate" "normal"
Option "Disable" "false"
EndSection
SubSection "Display"
Viewport 0 0
Virtual 1366 768 # Was 2646 2646
Depth 24
EndSubSection
问题当然是我不能再使用双屏设置了。有没有办法在双屏设置下强制托盘处于正确位置?
答案1
是的,我认为你说的“托盘面板在我的视图之外生成”是对的。我刚刚在另一个论坛上发布了这个答案(https://bbs.archlinux.org/viewtopic.php?pid=878706#p878706)
我认为问题在于放置托盘的位置与虚拟屏幕大小和布局之间的相互作用。我遇到过类似的问题,托盘(右下角)在我的双屏设置下消失了。就我而言,我在这样做时遇到了麻烦:
xrandr --output LVDS1 --auto --primary --rotate normal --pos 0x0 --output VGA1 --rotate normal --left-of LVSD1
trayer --edge bottom --align right --SetDockType true --SetPartialStrut true --expand true --widthtype request --transparent true --tint 0x191970 --height 12 --distance 20 --distancefrom right
(LVSD1 是我的笔记本电脑)
问题是左侧显示器的分辨率为 1280x1024,而笔记本电脑的分辨率为 1600x900。这意味着托盘(--edge bottom)位于笔记本电脑屏幕下部的下方。一个简单的解决方法是对齐两个屏幕的底部,例如(使用我的设置)
xrandr --output LVDS1 --auto --primary --rotate normal --pos 1280x124 --output VGA1 --rotate normal --auto --pos 0x0
也许在您的情况下,这只是指定主显示器和托盘边缘选项的位置的问题,以便它们可以很好地协作。
PS1. 我认为在大多数带有最新 xorg 的发行版中,您实际上不需要指定 xorg.conf 文件。
答案2
您可以采取的另一种方法是使用具有多显示器支持的托盘分支:https://github.com/sargon/trayer-srg
答案3
我现在正在使用 stalonetray。此应用程序允许您绝对放置托盘栏,从而解决了该问题。