Ubuntu 20.04自定义X会话管理器实现QEMU全屏启动的配置咨询
Ubuntu 20.04自定义X会话管理器实现QEMU全屏启动的配置咨询
嘿,我完全懂你不想用臃肿窗口管理器的心情——毕竟咱们要的就是极简的QEMU启动环境,不用那些多余的桌面组件。下面给你几个纯脚本层面就能搞定的方案,你可以挨个试试:
方案1:先对齐X会话分辨率再启动QEMU
有时候QEMU的-full-screen参数不生效,是因为X会话默认的分辨率和你的物理显示器不匹配。咱们可以先让X会话切换到显示器的最佳分辨率,再启动QEMU:
#!/bin/bash # 自动获取当前显示器的最佳分辨率(带*标记的那行) BEST_RES=$(xrandr | grep '*' | awk '{print $1}') # 获取当前连接的显示器名称(比如eDP-1、HDMI-1之类) DISPLAY_OUTPUT=$(xrandr | grep ' connected' | awk '{print $1}') # 把X会话的分辨率设置为显示器最佳值 xrandr --output $DISPLAY_OUTPUT --mode $BEST_RES # 启动QEMU并强制全屏,替换成你自己的其他QEMU参数 exec qemu-system-x86_64 -full-screen -enable-kvm [你的磁盘/网络等参数]
方案2:用超轻量窗口管理器兜底(几乎无冗余)
有些应用要正确触发全屏,依赖窗口管理器提供的基础X11原子操作,这时候可以用openbox这种极简WM——它几乎没有多余组件,完全符合你“无fluff”的需求。
先安装openbox(如果没装的话):
sudo apt install openbox
然后修改你的启动脚本:
#!/bin/bash # 后台启动openbox openbox & OB_PID=$! # 给1秒时间让openbox初始化完成 sleep 1 # 启动全屏QEMU qemu-system-x86_64 -full-screen [你的其他QEMU参数] # QEMU退出后,杀掉openbox进程,自动回到登录界面 kill $OB_PID
方案3:强制指定QEMU的输出分辨率
如果上面的方法还是不行,你可以直接给QEMU指定和显示器一致的分辨率,配合全屏参数强制占满屏幕:
#!/bin/bash # 替换成你的显示器实际分辨率,比如1920x1080、2560x1440 TARGET_RES="1920x1080" # 启动QEMU时指定分辨率+全屏 exec qemu-system-x86_64 -full-screen -vga std -video virtio,width=${TARGET_RES%x*},height=${TARGET_RES#*x} [你的其他QEMU参数]
额外检查点
- 确保你的启动脚本有可执行权限:
chmod +x /path/to/your/qemu-start.sh - 检查
/usr/share/xsessions/里的.desktop文件,Exec字段要指向脚本的绝对路径,比如:[Desktop Entry] Name=QEMU Fullscreen Comment=Start QEMU in fullscreen mode Exec=/home/your-user/scripts/qemu-start.sh Type=Application
备注:内容来源于stack exchange,提问作者James B
相关产品推荐
相关产品推荐

