kisscommunity

kisscommunity.bvnf.space site sources
git clone git://bvnf.space/home/kiss/kisscommunity.git
Log | Files | Refs | Submodules | README | LICENSE

index.txt (6735B)


      1
      2
      3
      4
      5
      6
      7
      8
      9
     10
     11
     12
     13
     14
     15
     16
     17
     18
     19
     20
     21
     22
     23
     24
     25
     26
     27
     28
     29
     30
     31
     32
     33
     34
     35
     36
     37
     38
     39
     40
     41
     42
     43
     44
     45
     46
     47
     48
     49
     50
     51
     52
     53
     54
     55
     56
     57
     58
     59
     60
     61
     62
     63
     64
     65
     66
     67
     68
     69
     70
     71
     72
     73
     74
     75
     76
     77
     78
     79
     80
     81
     82
     83
     84
     85
     86
     87
     88
     89
     90
     91
     92
     93
     94
     95
     96
     97
     98
     99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
Wayland
________________________________________________________________________________

Wayland [0] is a display protocol that aims to be a simpler and modern
replacement for the X Window System. [1] The Wayland protocol follows a
client–server model in which clients are the graphical applications requesting
the display of pixel buffers on the screen, and the server (compositor) is the
service provider controlling the display of these buffers. [2]

Unlike Xorg, which is at the center of the universe (and everyone must talk to),
Wayland puts the Linux kernel and its components (DRI, DRM, etc) in the middle.
This effectively leaves the Wayland compositor off in the corner as its little
more than a special application. [3]

Wayland has been in development since September of 2008 [4] and is usable today
for a large number of use-cases. Some hardware configurations (namely NVIDIA
GPUs) [5] [6] and a number of features are not currently supported by
compositors.


Caveats
________________________________________________________________________________

While the Wayland protocol is more or less done, the growing list of compositors
are in differing stages of completeness. Xorg is still in wide use and a lot of
software still requires it.

The major downside to Wayland (compositors) is the reduction in choice. While
the Wayland protocol does not define what a compositor shall depend on, they
typically lock the user into udev, libinput and systemd/logind.

The lack of standardized, desktop-oriented protocols has created a situation
where software may only work in some compositors and not others. This should
improve over time as more protocols become standardized.

- Limited hardware and driver support. [5] [6] [7] [8]
- Non-standard and compositor specific software. [10] [11] [12]
- No Wayland support in SDL 1 (must use XWayland). [13]
- Starting compositors without logind requires SUID permissions. [14]
- Locked into using udev. [15]


Benefits
________________________________________________________________________________

Wayland has a large number of benefits and improvements over Xorg. The above
caveats do not apply to everyone (or every system). Those unaffected or willing
to live with the caveats will have no problem swapping over.

- Less moving parts [13], although some software still heavily relies on the
  Xorg libraries (Mesa [16], Firefox [17], etc).
- No screen tearing by design [18].
- Hardware accelerated video playback in Firefox [19] and Webkit2GTK [20]


Prerequisites
________________________________________________________________________________

Though KISS does not support Wayland officially there is no problem in making it
capable through personal or 3rd party repositories. The official
repositories satisfy all dependencies. After "wayland" and "wayland-protocols"
are installed, some package adjustments are required to make them to known
citizens of your system.

NOTE: From this point it is expected that "wayland" and "wayland-protocols" are
      installed and you have forked the required packages with modified
      configure flags at the beginning of KISS_PATH. [21] Managing repositories

* Packages which need to be forked [23]:

      firefox --enable-default-toolkit=cairo-gtk3-wayland
      gtk+3   --enable-wayland-backend
      mesa    -Dplatforms=x11,drm,wayland


* Packages which pick up Wayland automatically at compile time [23]:
  [needs expansion and verification]

      cairo
      intel-vaapi-driver
      libva
      mpv
      pango
      sdl2
      webkit2gtk


Install Wayland on top Xorg KISS
________________________________________________________________________________

Mesa must be rebuilt first, followed by the aforementioned packages [22] in
a dependency given ascending order.

NOTE: kiss-revdepends is the tool you need.

mesa, cairo, pango, gtk+3, firefox/webkit2gtk
      qt5-wayland
      mpv
      libva, intel-vaapi-driver
      sdl2

$ kiss b mesa && kiss i mesa && kiss b pango && kiss i pango ...


Install Wayland on top base KISS
________________________________________________________________________________

Starting off a fresh base installation there is no manual intervention needed as
everything _should_ be autoconfigured.
[needs reproduction]


Post installation
________________________________________________________________________________

* In environments without systemd/elogind/consolekit the XDG_RUNTIME_DIR
  variable must be set manually. [23] Export this in your shellrc.

+------------------------------------------------------------------------------+
| .ashrc, .bashrc, .zshrc, etc                                                 |
+------------------------------------------------------------------------------+
|                                                                              |
|   export XDG_RUNTIME_DIR=${XDG_RUNTIME_DIR:-/tmp/$(id -u)-runtime-dir}       |
|                                                                              |
|   [ -d "$XDG_RUNTIME_DIR" ] || {                                             |
|       mkdir -p   "$XDG_RUNTIME_DIR"                                          |
|       chmod 0700 "$XDG_RUNTIME_DIR"                                          |
|   }                                                                          |
|                                                                              |
+------------------------------------------------------------------------------+

* Install a Compositor of your choosing.


References
________________________________________________________________________________

[0]  https://wayland.freedesktop.org/
[1]  https://wayland.freedesktop.org/faq.html#heading_toc_j_4
[2]  https://en.wikipedia.org/wiki/Wayland_(display_server_protocol)
[3]  https://lwn.net/Articles/413335/
[4]  https://cgit.freedesktop.org/wayland/wayland/commit/?id=97f1ebe8d5c2e166fabf757182c289fed266a45a
[5]  https://github.com/swaywm/sway/issues/490
[6]  https://drewdevault.com/2017/10/26/Fuck-you-nvidia.html
[7]  $/swaywm/sway/wiki#nvidia-users
[8]  https://wayland.freedesktop.org/building.html (Hardware / Drivers)

[10] $/Alexays/Waybar
[11] $/any1/wayvnc
[12] $/fzwoch/obs-gnome-screencast
[13] https://hansdegoede.livejournal.com/22212.html
[14] $/swaywm/sway/wiki/Running-Sway-without-systemd
[15] $/swaywm/wlroots#building #udev
[16] $/kiss-community/repo/blob/master/extra/mesa/depends
[17] $/kiss-community/repo-bin/blob/main/bin/firefox/depends
[18] https://people.freedesktop.org/~daniels/lca2013-wayland-x11.pdf
[19] https://bugzilla.mozilla.org/show_bug.cgi?id=1610199
[20] (webkit2gtk VAAPI source needed)
[21] #/kiss/managing-repositories
[22] https://wiki.gentoo.org/wiki/Sway#Other