如何取消GNOME对同类型特定Xorg应用及程序窗口实例的分组?
我之前也被GNOME的窗口分组折腾过好几次——明明是同一个程序的不同实例,却被强行捆在一起,Alt+Tab切换的时候找起来特别麻烦。下面给你两种实用的解决办法,分别对应全局取消所有应用分组,以及只针对特定Xorg应用(比如Eclipse)单独设置:
这个方法会让所有应用的多窗口都独立显示,不管是任务面板、图标还是Alt+Tab切换都不会再分组:
修改Alt+Tab切换的分组设置
打开终端,执行以下命令:gsettings set org.gnome.shell.window-switcher group-apps false执行后,Alt+Tab切换时就会显示所有独立窗口,不再按应用分组。
修改任务面板(Dash to Dock)的分组设置
如果你用的是默认的Dash to Dock扩展,还需要关闭窗口合并:gsettings set org.gnome.shell.extensions.dash-to-dock merge-all-windows false这样任务栏上的图标会为每个窗口单独显示,不会合并成一个。
如果之后想恢复默认设置,把上面命令里的false改成true即可。
如果你不想全局修改,只想让某些应用的多窗口独立,可以通过修改应用的桌面启动文件,给不同实例设置不同的窗口类名(WM_CLASS),让GNOME把它们识别为不同应用:
复制应用的桌面文件
首先找到Eclipse的系统桌面文件,通常在/usr/share/applications/eclipse.desktop,复制一份到用户专属的应用目录,避免修改系统文件:cp /usr/share/applications/eclipse.desktop ~/.local/share/applications/eclipse-instance1.desktop编辑桌面文件内容
用文本编辑器打开复制后的文件,修改以下两处:- 修改
Name字段,方便区分不同实例:Name=Eclipse Instance 1 - 修改
Exec字段,在启动命令前添加WM_CLASS环境变量,给这个实例指定唯一的窗口类名:
(注意把Exec=env WM_CLASS=Eclipse-Instance1 /path/to/your/eclipse/eclipse/path/to/your/eclipse/替换成你实际的Eclipse安装路径)
- 修改
创建多个实例的启动入口
如果你需要多个独立的Eclipse窗口,可以重复上面的步骤,复制多份桌面文件,分别把Name改成Eclipse Instance 2,WM_CLASS改成Eclipse-Instance2,以此类推。
这样每次通过不同的桌面文件启动Eclipse,GNOME就会把它们当成完全独立的应用,不会再分组了。
内容的提问来源于stack exchange,提问作者piegames

