首先我们使用的是树莓派官方系统的Lite版本,其他linux应该通用
前言
我们这里尝试全屏运行chromium
浏览器
首先我们安装sudo apt install chromium-browser
这时直接运行浏览会报如下错误
pi@raspberrypi:~ $ chromium-browser
[605:605:0523/020045.414169:ERROR:browser_main_loop.cc(584)] Failed to put Xlib into threaded mode.
(chromium-browser-v7:605): Gtk-WARNING **: 02:00:45.470: cannot open display:
这是因为我们系统中没有安装x服务
,我们平时用的gnome
桌面系统等都是基于x服务
运行图形应用程序的时候,会查找DISPLAY
环境变量,然后把图形输出到这个地址上。
正常情况下,运行图形程序是需要x服务
和gnome等窗口管理系统
才能打开图形程序。
作为生产环境,我们不需要窗口管理系统
也可以运行我们的图形程序。具体操作如下
操作步骤
首先,我们通过sudo apt-get install xserver-xorg
安装xorg
(目前主流的x服务)
然后安装使用x服务打开软件的一个工具sudo apt-get install xinit
现在我们就可以使用xinit chromium-browser
或者startx chromium-browser
来启动chromium
浏览器了。但是,如下图所示,浏览器并没有填充整个屏幕。(看右侧光标,那里还是有黑边的)
这时候修改~/.config/chromium/Default/Preferences
文件
找到window_placement
的部分修改如下参数即可。
"window_placement": {
"bottom": 屏幕高像素,
"left": 0,
"maximized": true,
"right": 屏幕宽像素,
"top": 0,
"work_area_bottom": 屏幕高像素,
"work_area_left": 0,
"work_area_right": 屏幕宽像素,
"work_area_top": 0
}
注意,一定要关闭浏览器后再修改保存,然后再重新打开浏览器。
浏览器关闭的时候会重写此文件,造成修改被还原。
或者运行的时候使用参数chromium-browser --window-size=1920,1080 --window-position=0,0
也能达到一样的效果,可见,窗口位置和大小是目标程序自己定义的。
效果如下
使用窗口管理器
安装软件sudo apt install matchbox-window-manager
然后运行窗口startx matchbox-window-manager
切换另一个窗口ctrl + alt + F2
后,设置DISPLAY
后运行浏览器
export DISPLAY=:0
chromium-browser
此时切换回ctrl + alt + F1
后发现浏览已经打开,而且标题栏可以切换多个窗口
同样,在ssh中设置export DISPLAY=:0
后运行chromium-browser
窗口也会在设备上打开。
摘抄别人的启动代码
# 禁止显示器休眠
xset dpms 0 0 0
xset s off
# Hide the mouse from the display
unclutter &
# If Chrome crashes (usually due to rebooting), clear the crash flag so we don't have the annoying warning bar
sed -i 's/"exited_cleanly":false/"exited_cleanly":true/' /home/pi/.config/chromium/Default/Preferences
sed -i 's/"exit_type":"Crashed"/"exit_type":"Normal"/' /home/pi/.config/chromium/Default/Preferences
# 删除chrome临时目录
rm -r /home/pi/.config/chromium -f
matchbox-window-manager -use_cursor no -use_titlebar no &
chromium-browser --disable-features=TranslateUI --window-size=1920,1080 --fast --fast-start --disable-popup-blocking --disable-infobars --start-fullscreen --incognito --disable-session-crashed-bubble --allow-running-insecure-content https://yoururl/
Chromium-browser的启动参数
--disable-features=TranslateUI
不显示翻译此页面的窗口提示--window-size=1920,1080
满屏的尺寸,这个参数很重要,因为在Lite在显示屏默认不为全屏,这个参数对应启动设定的屏幕尺寸--fast
--fast-start
If this flag is present then this command line is being delegated to an already running chrome process via the fast path, ie: before chrome.dll is loaded. It is useful to tell the difference for tracking purposes.--disable-popup-blocking
禁用弹出拦截--disable-desktop-notifications
禁用桌面通知,在 Windows 中桌面通知默认是启用的。--disable-infobars
让chorme启动后不提示黄色边框。--start-fullscreen
全屏模式,可以退出--incognito
让浏览器直接以隐身模式启动。--disable-session-crashed-bubbleDisables
using bubbles for session restore request.--allow-running-insecure-content
默认情况下,https 页面不允许从 http 链接引用 javascript/css/plug-ins。添加这一参数会放行这些内容。
备选参数
--touch-events=enabled
--kiosk
启用kiosk模式。(一种类似于全屏的浏览模式)
很实用
很有用的一篇分享
没成功!浏览器启动后一闪而过
闪退?
这篇文章正是我想要的,树莓派装的系统是NOOBS(不带桌面的),想运行Qt程序就犯愁了,感谢这篇文章,给我了思路
不客气(!)[zface_1.png]