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