Ubuntu中窗口始终置顶后Alt+Esc无法切换窗口焦点的问题咨询
Ubuntu中窗口始终置顶后Alt+Esc无法切换窗口焦点的问题咨询
嗨,我来帮你捋清楚这个问题~
首先说结论:这不是Ubuntu的默认正常行为,而是GNOME窗口管理器处理「始终置顶(Always on Top)」窗口时的一个特殊逻辑——当有窗口被设为始终置顶后,它会牢牢占据焦点层级的最顶端,导致Alt+Esc这种循环切换窗口的快捷键只能调整非置顶窗口的堆叠顺序,但没办法主动把焦点从置顶窗口转移到其他窗口,必须手动用鼠标点击才能切换焦点。
接下来给你几个解决思路,按需选择:
临时快速解决
如果你只是偶尔需要GNOME Clock置顶,最简单的办法是先取消它的置顶状态:按下Alt+Space打开Clock的窗口菜单,取消勾选「Always on Top」选项,之后Alt+Esc就能正常切换窗口和焦点了。
自定义快捷键强制切换焦点(适合长期保留置顶窗口的场景)
如果你需要Clock一直保持置顶,同时让Alt+Esc能自动切换焦点到目标窗口,可以通过自定义脚本+快捷键的方式实现:
- 先安装依赖工具:打开终端执行
sudo apt install wmctrl xdotool - 创建一个切换窗口的脚本,比如
~/cycle_windows_focus.sh,内容如下:#!/bin/bash # 获取所有非置顶窗口的ID(排除GNOME Clock) ALL_WINDOWS=$(wmctrl -l | grep -v "Clock" | awk '{print $1}') # 获取当前激活窗口的ID CURRENT_WINDOW=$(xdotool getactivewindow) # 找到当前窗口的下一个窗口ID,如果是最后一个则回到第一个 NEXT_WINDOW=$(echo "$ALL_WINDOWS" | grep -A1 "$CURRENT_WINDOW" | tail -1) if [ -z "$NEXT_WINDOW" ]; then NEXT_WINDOW=$(echo "$ALL_WINDOWS" | head -1) fi # 激活目标窗口并获取焦点 xdotool windowactivate "$NEXT_WINDOW" - 给脚本添加执行权限:
chmod +x ~/cycle_windows_focus.sh - 打开GNOME的「设置」→「键盘快捷键」,拉到最底部点击「自定义快捷键」→「添加快捷键」:
- 名称填「循环切换窗口并获取焦点」
- 命令填
bash ~/cycle_windows_focus.sh - 快捷键设置为
Alt+Esc(会提示覆盖默认快捷键,确认即可)
用GNOME扩展修复焦点逻辑
还有更省心的方式——安装GNOME扩展来调整窗口焦点规则:
- 打开GNOME扩展管理器(如果没装,先执行
sudo apt install gnome-shell-extension-prefs安装) - 搜索并安装「Focus On Raise」扩展,它的作用是强制让任何被提升到顶层的窗口自动获取焦点,这样即使有置顶窗口,
Alt+Esc切换窗口时,目标窗口会自动拿到焦点。
备注:内容来源于stack exchange,提问作者Bhaumik Tripathi
相关产品推荐
相关产品推荐

