You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Arch+Xorg环境下非Kiosk模式启动Firefox并指定URL及修复xdotool故障

问题解决方法

1. 修复URL参数传递问题

原脚本使用$*传递参数,在处理多参数或带空格的URL时会出现解析错误,将其替换为"$@"即可正确传递所有启动参数(包括目标URL)。"$@"会保留每个参数的独立性,确保Firefox能正确接收并打开指定页面。

2. 修复xdotool失效问题

原脚本存在两个核心问题导致xdotool失效:

  • sudo xinit是阻塞执行的,会等到Firefox关闭后才运行后续xdotool命令,此时窗口已不存在;
  • DISPLAY环境变量未在xdotool执行前正确指定,且如果用sudo启动Xorg,普通用户的xdotool无权限访问root用户的显示会话。

修改后的脚本(推荐无需sudo的版本)

#!/bin/bash
# 后台启动Firefox,传递所有参数到指定DISPLAY
xinit firefox "$@" -- :1 &
# 等待Firefox窗口初始化(可根据实际加载速度调整sleep时长)
sleep 5
# 指定DISPLAY调整窗口大小,用--class匹配Firefox更稳定
DISPLAY=:1 xdotool search --class Firefox windowsize 2560 1440
# 等待窗口调整完成,再切换全屏
sleep 2
DISPLAY=:1 xdotool search --class Firefox windowfocus key F11

若必须使用sudo启动的版本

如果你的环境要求必须用sudo启动xinit,需同时用sudo运行xdotool并指定DISPLAY:

#!/bin/bash
sudo xinit firefox "$@" -- :1 &
sleep 5
sudo DISPLAY=:1 xdotool search --class Firefox windowsize 2560 1440
sleep 2
sudo DISPLAY=:1 xdotool search --class Firefox windowfocus key F11

额外优化说明

  • 将--name ".*Mozilla Firefox"替换为--class Firefox,因为Firefox的窗口标题会随页面变化,而窗口类名始终是Firefox,匹配更可靠;
  • sleep的时长可根据你的系统性能调整,确保Firefox窗口完全加载后再执行xdotool操作。

内容的提问来源于stack exchange,提问作者Nallu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 05:23:16