我喜欢使用 GNOME 桌面,但我更喜欢用 openbox 替换其窗口管理器,并设置 4 个工作区。但是,当我运行 时openbox --replace
,可用的工作区数量下降到 1。如果我进入 obconf,工作区仍然配置为 4(~/.config/openbox/rc.xml
显示相同)。我可以通过将 obconf 中的值更改为其他任何值,然后改回 4,让工作区重新出现。
自从 Ubuntu 9.04(现在已升级到 10.10)以来,我一直在处理这个问题,因为我很少重启。但每当我必须重启时,都必须重置我的工作区,这真的很烦人。更改 rc.xml 中的值并运行openbox --reconfigure
似乎没有任何效果。那么 obconf 做了什么,而我没有(可能发送了一条 dbus 消息 [编辑:观察时,dbus-monitor
在更改 obconf 中的工作区值时我看不到任何消息])?
我希望有一种比openbox --replace
登录时运行更干净的方法来更改窗口管理器。所以我的问题是:
- 有没有更好的方法来指定备用窗口管理器(即不会导致工作区中断的方法)?
- 如果没有,我该如何自动将工作区数量设置回 4?
更新:
我终于有时间尝试一下我对 MrShunz 的回答所作的评论(添加WINDOW_MANAGER=/usr/bin/openbox
到~/.gnomerc
)。但效果与 相同openbox --replace
。
另一个更新(回复 geekosaur):
运行时xprop -root -spy
我看到这个(以及其他值):
_NET_NUMBER_OF_DESKTOPS(CARDINAL) = 1
_NET_DESKTOP_NAMES(UTF8_STRING) = 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x20, 0x31, 0x0
但我认为这是有道理的,因为当我从终端启动 openbox 时,它会显示以下内容:
Openbox-WARNING **: Openbox is configured for 4 desktops, but the current session has 1. Overriding the Openbox configuration.
但这是谎言,因为 metacity(openbox 接管时的活动窗口管理器)配置了四个桌面。
答案1
另一种解决方法:启动 odconf 并调整工作区的数量,也可以恢复工作区。
答案2
好吧,您可以尝试按自己喜欢的方式进行配置,然后按照建议保存会话这里。
答案3
我很想看看xprop -root -spy | grep --line-buffered _NET_
您启动 OpenBox 时的输出;我猜它在启动时没有将正确的_NET_NUMBER_OF_DESKTOPS
和/或_NET_DESKTOP_NAMES
原子放在根窗口上,而更改设置会导致它在那里放置正确的值。如果是这样,您需要将其作为 OpenBox 的错误提交。
答案4
最后偶然发现了一个解决方法。openbox --replace
我没有在启动时运行,而是运行了以下脚本:
openbox --replace &
metacity --replace &
openbox --replace &