1 Star 0 Fork 11

coder_lw / wiki

forked from deepinwiki / wiki 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
wayland.md 5.16 KB
一键复制 编辑 原始数据 按行查看 历史
htqx 提交于 2019-12-25 13:50 . 修改格式

[TOC]

Wayland

前言

wayland 是什么?是 linux 的一个窗口界面协议,类似 X协议 而言。wayland的协议的实现,其中一个叫weston(X协议相对应的产物是Xorg)。新版gnome 桌面环境默认支持wayland,wayland赫然成为将来的linux桌面标准。

怎么知道现在用的协议是不是wayland?

# 方法一
loginctl # 查看当前的会话,例如是2
loginctl show-session 2 -p Type  # 显示会话的种类,显示:Type=wayland

# 方法二
echo $XDG_SESSION_TYPE

# 方法三
neofetch #这个命令需要安装,显示:
             ............                htqx@lv6htqx.pc 
         .';;;;;.       .,;,.            --------------- 
      .,;;;;;;;.       ';;;;;;;.         OS: Deepin 15 x86_64 
    .;::::::::'     .,::;;,''''',.       Kernel: 5.3.0-3-amd64 
   ,'.::::::::    .;;'.          ';      Uptime: 15 minutes 
  ;'  'cccccc,   ,' :: '..        .:     Packages: 3390 (dpkg) 
 ,,    :ccccc.  ;: .c, '' :.       ,;    Shell: bash 5.0.11 
.l.     cllll' ., .lc  :; .l'       l.   Resolution: 3840x2160 
.c       :lllc  ;cl:  .l' .ll.      :'   DE: GNOME 3.34.1 
.l        'looc. .   ,o:  'oo'      c,   Theme: deepin [GTK2/3] 
.o.         .:ool::coc'  .ooo'      o.   Icons: deepin [GTK2/3] 
 ::            .....   .;dddo      ;c    Terminal: gnome-terminal 
  l:...            .';lddddo.     ,o     CPU: AMD Athlon 200GE (4) @ 3.200GHz 
   lxxxxxdoolllodxxxxxxxxxc      :l      GPU: AMD ATI Radeon Vega Series / Rade 
    ,dxxxxxxxxxxxxxxxxxxl.     'o,       GPU: NVIDIA GeForce GTX 750 Ti 
      ,dkkkkkkkkkkkkko;.    .;o;         Memory: 3208MiB / 30089MiB 
        .;okkkkkdl;.    .,cl:.
            .,:cccccccc:,.                                       
# DE: GNOME 3.34.1 如果是这个,默认就是wayland                                                               

linux 视窗的构成模型

关于视窗的linux组件:

  1. 登录界面 DM(display manager)
    1. gdm3
    2. sddm
    3. lightdm
    4. slim
    5. lxdm
    6. kdm
    7. xdm
    8. wdm
    9. nodm
  2. 窗口管理器 WM (window manager)
    1. compiz
    2. openbox
    3. awesome
    4. twm
    5. kwin(kde)
    6. mutter(gnome)
    7. i3
    8. xmonad
    9. e17
    10. fvwm
    11. fluxbox
    12. xfwm
    13. dwm
    14. qtile
    15. sway
    16. muffin
    17. gnome-shell
    18. kmscon
    19. rdp session
    20. weston
  3. 桌面环境 DE (Desktop environment)
    1. gnome
    2. kde(plasma)
    3. cinnamon
    4. lxde
    5. xfce
  4. 控制协议的实现
    1. xorg
    2. weston
  5. 特效合成管理器 Composite
    1. compton
    2. xcompmgr
    3. unagi

其中桌面环境 DE 相当于其他组件合并在一起的集合。窗口管理器 WM 很多都是自带特效合成管理器的,所以它不是必须的。

怎么安装wayland

综合上述,安装wayland主要是看要安装的桌面环境,本身是否已经实现对wayland的支持。

借助debian task-*系列任务包会一键安装所有桌面组件

# gnome 桌面
sudo apt install task-gnome-desktop
# kde 桌面
sudo apt install task-kde-desktop 
sudo apt install plasma-workspace-wayland

# cinnamon 暂时不支持wayland
sudo apt install task-cinnamon-desktop

补充:

  1. kde-full 完整包,
  2. kde-standard 标准包,
  3. kde-plasma-desktop 简约包

SDDM语言设置问题

在linux的桌面架构中,登陆器是第一步,因此它的设置会直接导致桌面的稳定。

gnome 用的默认登陆器是gdm3,但是这个登陆器有个问题就是还不能支持plasma wayland的登录。

另一个lightdm也很流行,但是不支持wayland。

但是当你用sddm的时候,会发现登录的时候中文变英文,这究竟是怎么回事?就算你进入桌面后,设置中文,结果也是无效的。

这得从linux的语言设置机制讲起,总之,linux分三个环境变量来指定语言:

  1. LC_ALL
  2. LANG
  3. LANGAGUE

其中最没有强制性的是LANG,也就是默认设置。但是另外两个会有更大的优先权。

而/etc/profile 里面会将 tty1~tty6都设置为:LC_ALL=C。也就是除非我们的视窗在tty7端口,否则默认都会覆盖掉我们的LANG设置。这在精巧设计的某些登陆器是没有问题的,但是SDDM会存在这个问题。

原理很复杂,出现问题的bug表现也很严重,包括打不开gnome-terminals终端,应用程序都是英文,显示文字乱码,等等。但解决方案很简单:

echo "export LC_ALL=zh_CN.UTF-8" >>~/.profile

当启动会话时,将会读取这个文件的设置,只需要将LC_ALL变量设置为中文的zh_CN.UTF-8即可。

xfce 的xfwm4 渲染花屏问题

我是amd 200ge核显,用这个xfce出现很多马赛克,解决方法是 修改渲染的模式:

sudo xfconf-query -c xfwm4 -p /general/vblank_mode -t string -s "xpresent" --create

注意,lxqt如果也是用了xfwm4,以上方案是 无效的,但是可以在会话配置的窗口管理器里面填入:xfwm4 --vblank=xpresent 解决这个问题。

参考

  1. arch wiki : https://wiki.archlinux.org/index.php/GNOME_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)
  2. xfce马赛克花屏问题: http://tieba.baidu.com/p/6229228730
1
https://gitee.com/coder_lw/wiki.git
git@gitee.com:coder_lw/wiki.git
coder_lw
wiki
wiki
master

搜索帮助