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 键,必须:
- 禁用 Super 键触发“活动概览”;
- 清除所有以
<Super>开头的快捷键绑定; - 确保宿主机对 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 Panel、ArcMenu 等),它们可能有自己的 Super 键绑定,需在扩展设置中单独调整;
- 本方案适用于 VMware Workstation / Player,也适用于 VirtualBox、QEMU/KVM 等其他虚拟化平台;
- 若未来升级 GNOME 或 Ubuntu,部分快捷键路径可能变化,但核心逻辑(禁用
overlay-key和toggle-overview)依然有效。
CycleUser