注意:我是不是寻找如何在同一应用程序的窗口之间切换。Alt+Tab非常适合这一点。
我经常同时打开两个浏览器窗口(因为它们用于不同的配置文件)。我经常移动窗口(例如Ctrl+ Win+ ←/ Ctrl+ Win+ →),并且我经常会在屏幕的一半显示浏览器,而在另一半使用文本编辑器。
不幸的是,我的系统(Ubuntu 17.10 + Gnome 桌面)的“分组”行为意味着,当我将所需的浏览器窗口移到前台(例如,覆盖终端)时,两个都浏览器窗口出现。有一半的时间,第二个浏览器窗口留在屏幕的另一半,所以它遮住了我的文本编辑器,如果不进一步移动窗口,我就无法参考我的代码。
我可以做些什么来让这些窗口保持未分组状态?在我家的系统 (Ubuntu + Unity) 中,我没有遇到这个问题。
编辑:我已尽力遵循https://askubuntu.com/a/1054494/117018WM_CLASS
为我的不同配置文件设置不同的值:我更新了我的.desktop
文件,但是当我检查WM_CLASS
使用时xprop
,我的更改似乎没有生效:WM_CLASS(STRING) = "google-chrome", "Google-chrome"
。
我更新了.desktop
以下文件:
function update ()
{
f=$1
newclass=$(basename $f)
newclass=${newclass#*-}
newclass=${newclass%.desktop}
newclass=${newclass/-/_}
sed -i -e "s/StartupWMClass=.*/StartupWMClass=${newclass}/" -e "s/Exec=\(.*\)/Exec=\1 --class ${newclass}/" "$f"
echo $f
}
find $HOME/.local/share/applications -name chrome-\* | while read -r f; do
update "$f"
done
find $HOME/.gnome/apps -name chrome-\* | while read -r f; do
update "$f"
done
现在,.desktop
文件如下所示:
#!/usr/bin/env xdg-open
[Desktop Entry]
Version=1.0
Terminal=false
Type=Application
Name=Docs
Exec=/opt/google/chrome/google-chrome --profile-directory=Default --app-id=aohghmighlieiainnegkcijnfilokake --class aohghmighlieiainnegkcijnfilokake_Default
Icon=chrome-aohghmighlieiainnegkcijnfilokake-Default
NoDisplay=true
StartupWMClass=aohghmighlieiainnegkcijnfilokake_Default
答案1
据我所知,Alt+Tab将应用程序的所有窗口移到最前面而不是最新的窗口是您的问题。更改 Alt+Tab 行为的唯一方法是使用不同的切换器。即使您使用没有任何 root 访问权限的普通 Ubuntu,您也可以实现这一点。这需要在终端上执行一些命令。
涉及终端的方法
gsettings set org.gnome.desktop.wm.keybindings switch-applications []
gsettings set org.gnome.desktop.wm.keybindings switch-applications-backward []
gsettings set org.gnome.desktop.wm.keybindings switch-windows "['<Super>Tab', '<Alt>Tab']"
gsettings set org.gnome.desktop.wm.keybindings switch-windows-backward "['<Shift><Super>Tab', '<Shift><Alt>Tab']"
这些命令从默认的“应用程序切换器”中删除键绑定并将其设置为“窗口切换器”。Alt+Tab现在将以更传统的方式运行,并允许您在单个窗口之间切换,而不是在不同应用程序的所有窗口之间切换。
要恢复默认设置,请发出四个类似的命令,替换set
并reset
省略设置,例如
gsettings reset org.gnome.desktop.wm.keybindings switch-windows-backward
安装扩展的替代方法
拥有 root 访问权限或启用了扩展安装的 Ubuntu 用户可以使用 Alternatetab 扩展实现相同效果。这是 Ubuntu 中的官方 gnome 扩展,包含在软件包中gnome-shell-extensions
。也可以从 Gnome 安装Shell 扩展网站。
答案2
在 Ubuntu 18.04 中(不确定早期版本是否如此),可以将Alt+分配Tab给“切换窗口”而不是“切换应用程序”。然后,只有选定的浏览器窗口会出现,另一个将留在后台。
要更改此行为,请转到“设置”->“设备”->“键盘”,然后将Alt“+”分配Tab给“切换窗口”,请参阅http://ubuntuhandbook.org/index.php/2019/02/alt-tab-display-separate-windows-ubuntu-18-04/。