在 Ubuntu 24.04 中彻底释放 Windows 键(Super 键)给 VMware 虚拟机使用

Ubuntu 24.04 作为宿主机,运行 VMware Workstation/Player 虚拟机(如 Windows 系统),但按下物理键盘上的 Windows 键(Super 键) 时,宿主机 GNOME 桌面会响应(如打开“活动概览”),导致虚拟机无法接收到该按键。

本文提供 一键禁用 和 一键恢复 Super 键绑定的完整解决方案,确保 Super 键完全由虚拟机接管,且可随时还原 GNOME 默认行为。

一、问题根源

Ubuntu 24.04 默认使用 GNOME 46 桌面环境,其中:

  • Super 键单独按下 → 触发“活动概览”(Activities Overview);
  • Super + 字母/方向键 → 用于应用启动、窗口管理等快捷操作。

这些全局快捷键由 GNOME 拦截,优先于 VMware 的输入捕获,导致虚拟机无法接收到 Super 键事件。


二、解决方案思路

要让 VMware 虚拟机“独占” Super 键,必须:

  1. 禁用 Super 键触发“活动概览”
  2. 清除所有以 <Super> 开头的快捷键绑定
  3. 确保宿主机对 Super 键“无响应”,从而将其完整传递给虚拟机。

我们通过 gsettings 命令修改 GNOME 配置,实现上述目标,并封装为两个脚本:

  • disable-super-key.sh释放 Super 键给虚拟机
  • restore-super-key.sh恢复 GNOME 默认 Super 键行为

三、脚本 1:禁用 Super 键(交给虚拟机)

将以下内容保存为 disable-super-key.sh

#!/bin/bash

echo "🔒 正在禁用 Super 键绑定,将其完全交给虚拟机..."

# 禁用 Super 键打开活动概览
gsettings set org.gnome.shell.keybindings toggle-overview "[]"

# 清空 overlay-key(Super 键主绑定)
gsettings set org.gnome.mutter overlay-key ''

# 清除所有包含 <Super> 的快捷键(彻底释放)
SCHEMAS=$(gsettings list-schemas | grep -E "(keybindings|shortcuts)")

for schema in $SCHEMAS; do
    keys=$(gsettings list-keys "$schema" 2>/dev/null || true)
    for key in $keys; do
        value=$(gsettings get "$schema" "$key" 2>/dev/null || true)
        if [[ "$value" == *"<Super>"* ]]; then
            echo "🧹 清除: $schema :: $key"
            gsettings set "$schema" "$key" "[]"
        fi
    done
done

echo "✅ Super 键已完全解除绑定,可被 VMware 虚拟机使用。"
echo "💡 提示:如需恢复,请运行 restore-super-key.sh"

使用方法:

chmod +x disable-super-key.sh
./disable-super-key.sh

✅ 执行后,Super 键在宿主机上将“无任何作用”,VMware 虚拟机可正常接收(需确保 VMware 处于输入捕获状态)。


四、脚本 2:恢复 Super 键(还原 GNOME 默认)

将以下内容保存为 restore-super-key.sh

#!/bin/bash

echo "🔄 正在恢复 Super 键默认行为..."

# 恢复活动概览绑定(Ubuntu 24.04 默认为 ['<Super>'])
gsettings reset org.gnome.shell.keybindings toggle-overview
gsettings reset org.gnome.mutter overlay-key

# 手动恢复常用 Super 快捷键
gsettings set org.gnome.shell.keybindings show-apps "['<Super>a']"
gsettings set org.gnome.settings-daemon.plugins.media-keys screensaver "['<Super>l']"
gsettings set org.gnome.settings-daemon.plugins.media-keys terminal "['<Super>t']"
gsettings set org.gnome.desktop.wm.keybindings maximize "['<Super>Up']"
gsettings set org.gnome.desktop.wm.keybindings unmaximize "['<Super>Down']"
gsettings set org.gnome.desktop.wm.keybindings panel-left "['<Super>Left']"
gsettings set org.gnome.desktop.wm.keybindings panel-right "['<Super>Right']"

echo "✅ Super 键已恢复 GNOME 默认功能。"
echo "💡 可按 Alt+F2 → 输入 'r' → 回车,重启 GNOME Shell 生效。"

使用方法:

chmod +x restore-super-key.sh
./restore-super-key.sh

✅ 执行后,Super 键将重新用于打开活动概览、锁屏、启动终端等 GNOME 功能。


五、使用

  • 日常使用虚拟机时:运行 disable-super-key.sh
  • 退出虚拟机后想恢复桌面体验:运行 restore-super-key.sh
  • 无需重启系统,配置即时生效;
  • 两个脚本仅修改当前用户的 GNOME 设置,不影响其他用户。

六、注意

  • 如果你使用了 GNOME 扩展(如 Dash to PanelArcMenu 等),它们可能有自己的 Super 键绑定,需在扩展设置中单独调整;
  • 本方案适用于 VMware Workstation / Player,也适用于 VirtualBox、QEMU/KVM 等其他虚拟化平台;
  • 若未来升级 GNOME 或 Ubuntu,部分快捷键路径可能变化,但核心逻辑(禁用 overlay-keytoggle-overview)依然有效。