在 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)依然有效。
Category
Tagcloud
Story PyOpenCL Conda 耳机 macOS Mac Chat FuckZhihu Hadoop Book Memory Kivy Ollama Hack Virtual Machine QEMU Learning Hackintosh PHD ChromeBook RaspberryPi Windows 蓝牙 Science University Camera GeoPython NAS Code Generation VTK Mount&Blade Python Virtualization n8n Video Cursor Poem Moon Lens FckZhiHu 音频 Translate Tools Disease Visualization Junck Discuss Lesson Library SandBox Programming RTL-SDR Shit Game AI Radio Hate Life Hardware CUDA Raspbian Windows11 IDE VirtualMachine Pyenv GIS FuckChunWan Tool Linux DIY GPT-OSS Server Data HBase OpenCL MayaVi Scholar Xcode Software Photography VirtualBox QT VisPy Telescope Communicate Qwen3 QGIS Geology GlumPy Photo Download Microscope Translation