如何用Bash脚本实现无标题栏的程序启动闪屏(类似LibreOffice)
用Zenity实现无标题栏的Linux启动闪屏
核心命令实现
直接用Zenity的内置参数就能实现无标题栏、仅显示图片的闪屏,无需额外工具:
zenity --borderless --image="/绝对路径/到你的闪屏图片.png" --no-focus --timeout=3
参数说明
--borderless:彻底移除窗口的标题栏、边框,只保留图片内容--image:指定闪屏图片的路径,支持PNG、JPG等常见格式(建议用绝对路径避免启动时路径问题)--no-focus:让闪屏窗口不抢占系统焦点,不影响后台程序的加载流程--timeout:设置闪屏自动关闭的秒数,可根据你的程序实际启动时间调整
添加文本信息(可选)
如果需要在图片上叠加版本号、加载提示等文本,可配合Pango标记语法格式化内容:
zenity --borderless --image="/绝对路径/到你的闪屏图片.png" \ --text="<span color='#ffffff' size='xx-large'>v1.2.3</span><br><span size='large'>正在加载...</span>" \ --align=center --no-focus --timeout=3
通过<span>标签可以调整文本的颜色、字号,--align=center让文本居中显示在图片下方(或上方,取决于窗口布局)。
与程序启动同步(更灵活的方式)
如果不想依赖固定超时时间,可在启动闪屏后,等程序初始化完成再手动关闭:
# 启动闪屏并记录进程ID zenity --borderless --image="/绝对路径/到你的闪屏图片.png" --no-focus & SPLASH_PID=$! # 执行你的程序启动逻辑 ./your_app_executable # 程序启动完成后关闭闪屏 kill $SPLASH_PID
解决个别桌面环境的边框残留问题
如果在GNOME、KDE等桌面环境下,--borderless仍有细微边框,可配合wmctrl工具强制移除窗口装饰(需先安装:sudo apt install wmctrl):
zenity --borderless --image="/绝对路径/到你的闪屏图片.png" --no-focus & # 获取闪屏窗口ID并移除装饰 WMID=$(wmctrl -l | grep "zenity" | awk '{print $1}') wmctrl -i -r $WMID -b remove,decorated
内容的提问来源于stack exchange,提问作者samueldelorenzi
相关产品推荐
相关产品推荐

