You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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能自动切换焦点到目标窗口,可以通过自定义脚本+快捷键的方式实现:

  1. 先安装依赖工具:打开终端执行
    sudo apt install wmctrl xdotool
    
  2. 创建一个切换窗口的脚本,比如~/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"
    
  3. 给脚本添加执行权限:
    chmod +x ~/cycle_windows_focus.sh
    
  4. 打开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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.17 09:53:03