全站通知:

安装桌面环境

阅读

    

2024-10-26更新

    

最新编辑:贪睡的小爱

阅读:

  

更新日期:2024-10-26

  

最新编辑:贪睡的小爱

来自ArchWIKI_BWIKI_哔哩哔哩
跳到导航 跳到搜索
页面贡献者 :
贪睡的小爱


上一页: Pacman包管理器与密钥管理 下一页: None


DM,显示服务器,WM,DE简介

为了更好的使用和配置桌面环境,先让我们什么是DM(DisplayManager),显示服务器(DisplayServer),WM(WindowManager),DE(DesktopEnvironment)


DM(DisplayManager)
显示管理器,可能和大家想得不一样,他并不是全局的管理如何显示,而是提供一个用户认证界面,也就是用户登陆界面,它用于登陆到图形会话。他在被启动的时候会调用自身的图形服务器来

启动一个小型的图形化界面以供用户登陆,常用的DM有:sddm,gdm,xdm等。


显示服务器(DisplayServer)
显示服务器就是字面意思,其作用是用来管理如何显示图形化界面,常见的显示服务器有:wayland,X11等, 其中最常听说的xorg是x11的实现。


WM(WindowManager)
窗口管理器,顾名思义,是用来管理窗口的样式/行为的。举个例子,macos的默认窗口样式所定义的关闭/最小化/最大化按钮在左上角,并且是以红绿灯的形式出现的,而windows窗口的这些按钮

在右上角,并且以图标的形式出现。没错,这就是窗口管理器干的事儿。常见的WM有:i3, hyprland等


DE(DesktopEnvironment)
桌面环境是一一系列软件的集合,它包含了前面所说到的DM,显示服务器,WM 以及其他组件,如文件管理器,进程管理器,浏览器等。他几乎是开箱即用的,无需

多于的配置即可使用,类似于windows系统,安装好直接就可以使用,常见的DE有:kde, gnome等


一个完整的桌面环境应该是这样的:
  1. 由systemd启动DM, DM使用内置的可视化来显示一个登陆界面供用户登陆
  2. 当用户成功登陆后,DM会启动显示服务器
  3. 显示服务器启动后,紧接着会自动启动WM
  4. 初始化桌面环境(启动开机自启程序,面板等)


注意:因为DE是一系列组件的集合,可以不直接安装DE(如gnome,kde)。如果没安装DE,那么最后一步是初始化WM(窗口管理器),其具体是执行窗口管理器自己的配置文件来完成初始化。

安装KDE

如果你是新手,建议直接用DE,他更简单,不需要额外的配置就可以使用这里我们以kde讲解,如果需要自己定义DM,WM这些东西,可以直接看下一章。



kde是一个DE(DesktopEnvironment),之前说过,DE是一系列组件的集合,也就是说我们无 需关心怎么安装配置DM,显示服务器,WM这些东西。 安装kde很简单,只需要安装以下包即可:


    # 安装基础的kde桌面环境
    sudo pacman -S plasma-meta konsole dolphin
其中plasma-meta是kde的基础包,里面包含了基本的组件等,除了系统设置外,plasma-meta不包含任何应用程序,konsole是kde的终端,dolphin是kde的文件管理器。
kde使用sddm作为默认的DM,如果希望开机自动启动桌面环境,那么可以使用systemd设置sddm开机自动运行:


    # 开机自启sddm
    systemctl enable sddm
至此,kde的安装已经全部完成,重启即可使用

自定义桌面

在linux里有很多自定义桌面环境的组合,大家可以根据各自的喜好选择,本章使用如下组合讲解:
  • DM: xdm
  • 显示服务器: xorg (X11的实现)
  • WM: i3
安装的顺序也是 DM -> 显示服务器 -> WM, 给大家大致介绍以下这些东西:
  1. xdm: 一个显示管理器,拥有一个简洁的界面,响应快速, 也可以高度定制。
  2. xorg: xorg是X11的一个实现,
  3. i3: 一个轻量级的平铺式窗口管理器
Tips: 什么是平铺式窗口管理器?就是把所有软件的窗口都完整的平铺在屏幕上,而没有窗口堆叠的,即平铺式,例如,安卓就是典型的平铺式窗口管理器,而windows,macos这些都是堆叠式。

安装xdm

xdm是个简单并且简洁的DM,无需额外的配置,安装好即可使用,安装命令如下:


    # 安装xdm
    sudo pacman -S xorg-xdm

安装i3

i3的安装方式也很简单,如下:


    # 安装i3
    pacman -S i3-wm

安装和配置显示服务器(xorg)

当我们不使用现成的桌面环境(gnome,kde等)时,在安装完xorg需要配置才能正常启动DM, 以下是具体步骤:


    # 安装xorg
    pamcan -S xorg

    # 编写 ~/.xsession 配置文件
    vim ~/.xsession
    # ~/.xsession 是x服务器用来初始化环境,类似于 ~/.bashc
    # 在 ~/.xsession 写启动i3的脚本,直接写入 i3 即可, 等同于以下命令:
    echo "i3" > ~/.xsession

    # 给 .xsession 执行权限
    chmod +x ~/.xsession
全部安装和配置完成后,直接启动xdm即可:


    # 启动xdm
    systemctl start xdm

    # 如果想要自启也可以设置
    systemctl enable xdm

配置i3

i3的配置文件默认在 ~/.config/i3 下,所以我们需要把配置文件存放在这个目录下面,并且其文件名是config。在进入i3环境时,会提示要不要创建配置文件,如果选择yes,那么会自动在

~/.config/i3下创建config文件,如果选择no,则自行创建该文件即可。


接下来对config配置文件常用的语法做个简单的说明:


    # 设置变量
    set $VARIABLE_NAME VALUE
        #参数解释
        VARIABLE_NAME: 变量名
        VALUE: 变量值

        # 示例
        set $ctrl control
        含义: 定义一个变量ctrl,其值为control
        (注: 如果需要引用变量,那么应该写成 $VARIABLE_NAME 的形式,类似php的变量引用)

    # 绑定快捷键
    bindsym KEY_CODE KEY ACTION
        # 参数解释
        KEY_CODE: 键盘的按键代码
        KEY: 关键字,如exec, move, focus等
        ACTION: 需要执行的动作

        # 示例
        bindsym Mod1 exec firefox
        含义: 当按下Mod1键时执行firefox
        (注: Mod1是i3特定的键盘按键代称,详细请查看https://i3wm.org/docs/userguide.html#binding_modes)

    # 当启动i3时,自启动软件
    exec [PARAMETER] COMMAND
        # 参数解释
        PARAMETER: 执行的参数,如 --no-startup-id可以禁止软件启动的通知,输出
        COMMAND: 执行的软件命令

        # 示例
        exec --no-startup-id firefox
        含义: i3启动的时候,自启动firefox,并且没有任何提示信息和终端输出。
        (注: COMMAND命令部分,如果有参数,可以直接接着写,如 exec --no-startup-id start NetworkManager)
修改完配置文件后,需要重新加载i3才能生效,可以执行以下命令或者注销:


    i3-msg reload

xorg详解(可选读)

再识xorg

之前我们说过xorg是x11的一个实现,当然也有其他的实现,比如:xfree86, xwayland, xcb等。那回归主题,xorg具体是什么呢?xorg是基于C/S架构的,也就是说,xorg有客户端和

服务端,然而这种CS架构不是大家想象的那样子。

在xorg里服务端是用来控制硬件的东西,包括但不限于显示屏,鼠标,键盘等,并将信息发送给客户端,你没听错,是服务端把信息发送给客户端。而客户端则是通过x协议像服务端发送数据的东西,

也就是各种基于x的软件,包括但不限于qq,wps,终端模拟器,vmware等等,你没听错,就是我们日常用的所有软件,都属于x客户端。到这里肯定还是很糊,没关系,有个印象就行, 接下来我会给大家梳理x服务器和x客户端之间的交互过程,看完也许就会恍然大悟了。


以鼠标在软件里点击一个按钮举例
  1. 鼠标按下: x服务端监测到鼠标按下事件, 并获取鼠标当前位置。
  2. 客户端处理: x服务器把鼠标按下事件等信息发送给对应客户端进程并执行按下后的相应逻辑,例如鼠标在qq里点击一个按钮,那么x服务端 会把信息发送给qq, 并且执行按下 按钮后的代码,然后客户端(qq)根据处理结果生成新的窗口内容或者状态。
  3. 服务端渲染: 客户端再把需要更新的内容发送给服务端,由服务端控制屏幕更新这些内容。

配置xorg




上一页: Pacman包管理器与密钥管理 下一页: None