virt-manager 打开虚拟机图形控制台,其上方详情菜单栏无法隐藏,无法做到无缝沉浸使用。
可以通过修改其源代码隐藏掉。而且 virt-manager 源代码是 python 脚本,所以修改后不需要重新打包就能直接生效。
在 ArchLinux 中,通过 yay -S virt-manager
安装的程序文件在 /usr/share/virt-manager
路径中。
打开 /usr/share/virt-manager/virtManager/vmwindow.py
文件,在其中找到 self.init_menus()
这一行代码,在后面添加隐藏菜单栏的逻辑保存即可:
# 找到这一行
self.init_menus()
# 添加隐藏菜单的逻辑
import os
if os.environ.get("HIDE_VM_MENUBAR", "0") == "1":
self.widget("details-menubar").hide()
后续使用时就可以通过 HIDE_VM_MENUBAR
变量来控制菜单的显示,用法如下:
# 正常启动,默认显示菜单栏
virt-manager
# 添加变量,隐藏虚拟机菜单
HIDE_VM_MENUBAR=1 virt-manager
# 直接打开虚拟机控制台,隐藏菜单栏
HIDE_VM_MENUBAR=1 virt-manager -c qemu:///system --show-domain-console Win11
可以把命令写到脚本或者 Desktop 中方便使用,打开后效果如下:
如果有黑边那就是虚拟系统没能自适应调整分辨率填满窗口,一般重启就好了。
标题栏我是直接通过 KDE 窗口规则隐藏掉了,各个桌面环境不同也有各自的解决方案,不再展开。
其实直接把 /usr/share/virt-manager/ui/vmwindow.ui
文件中的 <object class="GtkMenuBar" id="details-menubar">
的 visible
属性改为 false
也是可以的,改起来简单但没有环境变量灵活。
如果有人能 fork 一个分支,直接加上窗口大小调整、隐藏各种菜单工具栏的功能按钮就好了,没研究过 python 开发,以后有时间可以试试。