window上开发没有ubuntu下的方便,经常在window主机和ubuntu虚拟机直接切换太麻烦,每次得ctrl+alt从虚拟机释放鼠标才可以切换,经过折腾发现以下几种方法可行
方法1 虚拟机监听切换按键并通知主机进行切换桌面
虚拟主机放在单独的一个桌面上并全屏,在ubuntu虚拟机中配置一个Py脚本,把监听的按键写入主机中(tcp方式更麻烦,这里采用写入文件传递的方法)
import os
from pynput import keyboard
import time
# 定义组合键,例如 Ctrl + Alt + A、Ctrl + Alt + S、Ctrl + Alt + Z
COMBINATIONS = {
frozenset([keyboard.Key.ctrl, keyboard.Key.alt, keyboard.KeyCode(char='a')]): "SWITCH_DESKTOP_A",
frozenset([keyboard.Key.ctrl, keyboard.Key.alt, keyboard.KeyCode(char='s')]): "SWITCH_DESKTOP_S",
frozenset([keyboard.Key.ctrl, keyboard.Key.alt, keyboard.KeyCode(char='z')]): "SWITCH_DESKTOP_Z"
}
current_keys = set()
triggered = False # 防止重复触发
def on_press(key):
global triggered
current_keys.add(key)
for combination, command in COMBINATIONS.items():
if combination.issubset(current_keys) and not triggered:
# 根据按键组合写入不同的内容到共享文件
with open("/home/vm/Desktop-win11/switch_command.txt", "w") as f:
f.write(command)
triggered = True # 设置标志位,防止重复触发
break
def on_release(key):
global triggered
if key in current_keys:
current_keys.remove(key)
# 如果所有按键都释放,重置标志位
if not current_keys:
triggered = False
with keyboard