5

CentOS7配置Console界面运行openbox

 9 months ago
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.
neoserver,ios ssh client

CentOS7配置Console界面运行openbox

2023-10-19 MISC

之前的文章<<CentOS7配置Console GUI/TUI程序>>介绍了在CentOS7Console界面上配置GUI/TUI可视化程序的几种方法。尽管这些GUI程序可以简化系统的配置难度,但对于界面要求复杂的专用场景较不是很适用,比如需要支持鼠标操作等。但安装完整的一套桌面环境,对服务器的资源占用又较大,这种场景下,可以只安装X Windowopenbox来支撑运行完整图形界面程序。

X Window被设计为Client/Server架构。Server负责图形设备和外部设备的处理来显示画图和处理外设操作,而图形界面程序作为Client只是通知Server进行相应的操作,如画线,显示字符等等。ClientServer之间不要求位于同一台计算机,它们之间可以通过网络进行协议传输。ClientServer的角色和我们日常网络访问所说的ClientServer相比。一般我们日常通过SSH登录服务器,我们所看到界面和操作外设的一端做为客户端,我们所使用的应用位于服务端。而在X Window体系下。我们看到界面和操作外设的一端是X Server, 而图形界面程序运行的一端是X Client

对于任一X Client来说,它并不知晓其他X Client的存在,对于他们在同一X Server上如何排放,需要另一个组件来完成,这就是窗口管理器, 它也是一个X Client,只是它负责的是其他X Client的管理, 示意图如下:

1.png

因为各个X Client完全可以使用不同的图形库进行开发,图形风格可以完全不一样。为了使不同的图形程序风格一致,因而出现了GNOMEKDE等桌面环境,其上的图形程序共用相同的图形库等,因而呈现出一致的展示风格。

对于文章开头提到的需求,只是为了在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界面:

2.png

鼠标右击可以看到openbox的菜单:

3.png

openbox的配置相当灵活,可以配置文件进行修改和配置。可以参考文章:
https://linuxtoy.org/archives/openbox-getting-started-guide.html

openbox可以配置自动加载应用程序,这样就可以实现Console界面上自动运行我们所开发的图形界面程序了。

我们创建文件~/.config/openbox/autostart, 添加如下内容运行一个示意的XClock

/usr/bin/xclock &

重新启动CentOS7, 界面如下,自动运行了xclock程序:

4.png

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK