CentOS7配置Console界面运行openbox
source link: http://just4coding.com/2023/10/19/openbox/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
CentOS7配置Console界面运行openbox
2023-10-19 MISC
之前的文章<<CentOS7配置Console GUI/TUI程序>>介绍了在CentOS7
的Console
界面上配置GUI/TUI
可视化程序的几种方法。尽管这些GUI
程序可以简化系统的配置难度,但对于界面要求复杂的专用场景较不是很适用,比如需要支持鼠标操作等。但安装完整的一套桌面环境,对服务器的资源占用又较大,这种场景下,可以只安装X Window
和openbox
来支撑运行完整图形界面程序。
X Window
被设计为Client/Server
架构。Server
负责图形设备和外部设备的处理来显示画图和处理外设操作,而图形界面程序作为Client
只是通知Server
进行相应的操作,如画线,显示字符等等。Client
和Server
之间不要求位于同一台计算机,它们之间可以通过网络进行协议传输。Client
和Server
的角色和我们日常网络访问所说的Client
和Server
相比。一般我们日常通过SSH
登录服务器,我们所看到界面和操作外设的一端做为客户端,我们所使用的应用位于服务端。而在X Window
体系下。我们看到界面和操作外设的一端是X Server
, 而图形界面程序运行的一端是X Client
。
对于任一X Client
来说,它并不知晓其他X Client
的存在,对于他们在同一X Server
上如何排放,需要另一个组件来完成,这就是窗口管理器
, 它也是一个X Client
,只是它负责的是其他X Client
的管理, 示意图如下:
因为各个X Client
完全可以使用不同的图形库进行开发,图形风格可以完全不一样。为了使不同的图形程序风格一致,因而出现了GNOME
和KDE
等桌面环境,其上的图形程序共用相同的图形库等,因而呈现出一致的展示风格。
对于文章开头提到的需求,只是为了在console
界面中使用有限个数图形应用程序,没有必要使用庞大的桌面环境,只需要安装X Server
和一个窗口管理器。openbox
就是一个非常轻量、可灵活配置的容器管理器。
下面我们在CentOS7
上进行实践。
首先安装X Window
相关组件和openbox
:
yum install -y xorg-x11-server-Xorg xorg-x11-xauth xorg-x11-xinit xorg-x11-drivers
yum install -y epel-release
yum install -y openbox
正常情况下,console
界面下初始化运行的是getty
程序,在CentOS7
下为agetty
。之前的文章中介绍了几种相应自动运行程序的方法:
- 将GUI程序作为getty程序执行
- 将GUI程序替换login程序执行,这种方式需要跳过getty程序读取用户名的步骤
- 将GUI程序作为shell程序执行,这种方式需要完成自动登录,跳过密码校验之前的步骤
除了以上这些方法之外,我们还可以在bashrc
中自动启动程序。
因为我们要启动X Server
环境,需要使用startx
脚本,因而采用这种方式。
修改文件/root/.bashrc
, 添加如下内容:
TTY=${TTY:-$(tty)}
if [ x"$TTY" = x"/dev/tty1" ]; then
printf -v vt 'vt%02d' "${TTY#/dev/tty}"
exec startx `which openbox-session` -- $vt > /dev/null 2>&1
fi
跳过root
自动登录的部分和之前文章中介绍的一致。修改完成后,重启我们的CentOS
,可以看到灰黑色的openbox
界面:
鼠标右击可以看到openbox
的菜单:
openbox
的配置相当灵活,可以配置文件进行修改和配置。可以参考文章:
https://linuxtoy.org/archives/openbox-getting-started-guide.html
openbox
可以配置自动加载应用程序,这样就可以实现Console
界面上自动运行我们所开发的图形界面程序了。
我们创建文件~/.config/openbox/autostart
, 添加如下内容运行一个示意的XClock
:
/usr/bin/xclock &
重新启动CentOS7
, 界面如下,自动运行了xclock
程序:
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK