Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
en:system:display_servers:xenocara [2019/10/05 04:04]
emulatorman
en:system:display_servers:xenocara [2023/12/05 10:06] (current)
throgh [Driver installation]
Line 1: Line 1:
 ====== Xenocara ====== ====== Xenocara ======
- 
-<note warning>This page is under development!</note> 
  
 [[https://www.xenocara.org/|Xenocara]] provides a framework to host OpenBSD modifications and to automate the build of the modular X.Org components, including 3rd party packages and some software maintained by OpenBSD developers. [[https://www.xenocara.org/|Xenocara]] provides a framework to host OpenBSD modifications and to automate the build of the modular X.Org components, including 3rd party packages and some software maintained by OpenBSD developers.
  
-It includes a customised X.Org X server that utilises a **dedicated _x11 user by default to drop privileges and perform privilege separation** in accordance to OpenBSD's least privilege policy. Furthermore, Xenocara includes several other projects, such as [[https://www.hyperbola.info/packages/?name=xenocara-cwm|cwm]], **a stacking window manager for the X Window System**.+It includes a customised X.Org X server that utilises a **dedicated _x11 user by default to drop privileges and perform privilege separation** in accordance to OpenBSD's least privilege policy. Furthermore, Xenocara includes several other projects, such as [[https://www.hyperbola.info/packages/?name=xenocara-twm|twm]], **a tabbed window manager for the X Window System**.
  
 <note warning> <note warning>
-The **perform privilege separation feature** was disabled in Hyperbola GNU/Linux-libre because it requires OpenBSD-specific system calls such as [[https://man.openbsd.org/OpenBSD-6.5/pledge|pledge]] and [[https://man.openbsd.org/OpenBSD-6.5/unveil|unveil]], however it will be implemented for [[en:main:nomenclatures#hyperbolabsd|HyperbolaBSD]], an operating system which is being developed by **Hyperbola Project**.+The **perform privilege separation feature** was disabled in Hyperbola GNU/Linux-libre because it requires OpenBSD-specific system calls such as [[https://man.openbsd.org/OpenBSD-6.5/pledge|pledge]] and [[https://man.openbsd.org/OpenBSD-6.5/unveil|unveil]], however it will be implemented for [[en:project:nomenclatures#hyperbolabsd|HyperbolaBSD]], an operating system which is being developed by **Hyperbola Project**.
 </note> </note>
  
Line 23: Line 21:
 Finally, an [[https://www.hyperbola.info/groups/x86_64/xenocara/|xenocara]] group is also available, which includes Xenocara server packages, packages from the [[https://www.hyperbola.info/groups/x86_64/xenocara-apps/|xenocara-apps]] group and fonts. Finally, an [[https://www.hyperbola.info/groups/x86_64/xenocara/|xenocara]] group is also available, which includes Xenocara server packages, packages from the [[https://www.hyperbola.info/groups/x86_64/xenocara-apps/|xenocara-apps]] group and fonts.
  
-<note tip>You will typically seek to install a [[en:application:window_managers|window manager]] or a [[en:application:desktop_environments|desktop environment]] to supplement Xenocara.</note>+<note tip>You will typically seek to install a [[en:system:userspace:window_manager|window manager]] or a [[en:system:userspace:desktop_enviroment|desktop environment]] to supplement Xenocara.</note>
  
 ==== Driver installation ==== ==== Driver installation ====
Line 50: Line 48:
  
 {| border="1" style="sortable; text-align: center; width: 100%; border-collapse:collapse; color:#262627; background-color:#f8f9fa;" {| border="1" style="sortable; text-align: center; width: 100%; border-collapse:collapse; color:#262627; background-color:#f8f9fa;"
-! style="background-color:#eaecf0" |Brand +! style="background-color:#eaecf0" |Graphicscard
-! style="background-color:#eaecf0" |Driver+
 ! style="background-color:#eaecf0" |OpenGL ! style="background-color:#eaecf0" |OpenGL
-! style="background-color:#eaecf0" |OpenGL (multilib)+! style="background-color:#eaecf0" |Driver
 |- |-
 ! rowspan="3" style="background-color:#eaecf0" |AMD/ATI ! rowspan="3" style="background-color:#eaecf0" |AMD/ATI
 |- |-
-| [[https://www.hyperbola.info/packages/?name=xorg-video-amdgpu|xorg-video-amdgpu]] 
 | rowspan="4" | [[https://www.hyperbola.info/packages/?name=mesa|mesa]] | rowspan="4" | [[https://www.hyperbola.info/packages/?name=mesa|mesa]]
-| rowspan="4" | [[https://www.hyperbola.info/packages/?name=lib32-mesa|lib32-mesa]] 
 |- |-
 | [[https://www.hyperbola.info/packages/?name=xenocara-video-ati|xenocara-video-ati]] | [[https://www.hyperbola.info/packages/?name=xenocara-video-ati|xenocara-video-ati]]
 |- |-
 ! style="background-color:#eaecf0" | Intel ! style="background-color:#eaecf0" | Intel
-| [[https://www.hyperbola.info/packages/?name=xorg-video-intel|xorg-video-intel]]+| [[https://www.hyperbola.info/packages/?name=xenocara-video-intel|xenocara-video-intel]]
 |- |-
 ! style="background-color:#eaecf0" | NVIDIA ! style="background-color:#eaecf0" | NVIDIA
Line 70: Line 65:
 |} |}
  
-<note tip> Fourth generation Intel GPUs users (GMA 3000 from 2006 and newer) may want to use the default Xenocara driver, rather than installing [[https://www.hyperbola.info/packages/?name=xorg-video-intel|xorg-video-intel]] driver package. For more information, see [[https://man.openbsd.org/OpenBSD-6.5/modesetting.4|modesetting(4)]].</note>+<note tip> Fourth generation Intel GPUs users (GMA 3000 from 2006 and newer) may want to use the default Xenocara driver, rather than installing [[https://www.hyperbola.info/packages/?name=xenocara-video-intel|xenocara-video-intel]] driver package. For more information, see [[https://man.openbsd.org/OpenBSD-6.5/modesetting.4|modesetting(4)]].</note>
  
 <note tip> For NVIDIA GPUs users, may find their respective card's [[https://nouveau.freedesktop.org/wiki/CodeNames/|code name]] (a more detailed list is available on [[https://en.wikipedia.org/wiki/Comparison_of_Nvidia_Graphics_Processing_Units|Wikipedia]]), and compare it with the [[https://nouveau.freedesktop.org/wiki/FeatureMatrix/|feature matrix]] for supported features.</note> <note tip> For NVIDIA GPUs users, may find their respective card's [[https://nouveau.freedesktop.org/wiki/CodeNames/|code name]] (a more detailed list is available on [[https://en.wikipedia.org/wiki/Comparison_of_Nvidia_Graphics_Processing_Units|Wikipedia]]), and compare it with the [[https://nouveau.freedesktop.org/wiki/FeatureMatrix/|feature matrix]] for supported features.</note>
  
-<note warning> AMD GPUs users (GCN third generation from 2014 and newer) must to use the [[https://www.hyperbola.info/packages/?name=xorg-video-amdgpu|xorg-video-amdgpu]] driver package, rather than installing [[https://www.hyperbola.info/packages/?name=xenocara-video-ati|xenocara-video-ati]] driver package that is dedicated for old AMD and ATI GPUs.</note>+<note warning> AMD GPUs users (GCN third generation from 2014 and newer) should not install [[https://www.hyperbola.info/packages/?name=xenocara-video-ati|xenocara-video-ati]] driver package that is dedicated for old AMD and ATI GPUs. Please note that AMD GPUs are mostly not running free, libre driver implementations therefore and cannot make usage of full OpenGL.</note>
  
 Other video drivers can be found in the [[https://www.hyperbola.info/groups/x86_64/xenocara-drivers/|xenocara-drivers]] group. Other video drivers can be found in the [[https://www.hyperbola.info/groups/x86_64/xenocara-drivers/|xenocara-drivers]] group.
  
-Xenocara should run smoothly with fully free software drivers. The exceptions to this rule are recent GPUs (especially NVIDIA GPUs), that are not supported. If it is the case, use the default Xenocara driver which includes GLAMOR acceleration (see [[https://man.openbsd.org/OpenBSD-6.5/modesetting.4|modesetting(4)]]).+Xenocara should run smoothly with fully free software drivers. The exceptions to this rule are recent GPUs (especially NVIDIA and AMD GPUs), that are not supported. If it is the case, use the default Xenocara driver which includes GLAMOR acceleration (see [[https://man.openbsd.org/OpenBSD-6.5/modesetting.4|modesetting(4)]]).
  
 +<note important>Please note that **Hyperbola is not supporting Vulkan** and only implements the OpenGL-standard. The reasoning is a minimalist approach as Vulkan needs wide more dependencies.</note>
 ===== Running ===== ===== Running =====
  
-The [[https://man.openbsd.org/OpenBSD-6.5/Xorg.1|Xorg(1)]] command is usually not run directly, instead the X server is started with either a [[en:application:display_managers|display manager]] or xinit.+The [[https://man.openbsd.org/OpenBSD-6.5/Xorg.1|Xorg(1)]] command is usually not run directly, instead the X server is started with either a [[en:system:userspace:application:display_managers|display manager]] or xinit.
  
 ==== xinit ==== ==== xinit ====
Line 88: Line 84:
 The xinit program allows an user to manually start an Xenocara display server. The [[https://man.openbsd.org/OpenBSD-6.5/startx.1|startx(1)]] script is a front-end for [[https://man.openbsd.org/OpenBSD-6.5/xinit.1|xinit(1)]]. The xinit program allows an user to manually start an Xenocara display server. The [[https://man.openbsd.org/OpenBSD-6.5/startx.1|startx(1)]] script is a front-end for [[https://man.openbsd.org/OpenBSD-6.5/xinit.1|xinit(1)]].
  
-xinit is typically used to start [[en:application:window_managers|window managers]] or [[en:application:desktop_environments|desktop environments]].+<note important>If **Lumina Desktop** is being used you would need to use <color #620BB9/#EEDDFF>start-lumina-desktop</color> instead</note> 
 + 
 +xinit is typically used to start [[en:system:userspace:window_manager|window managers]] or [[en:system:userspace:desktop_enviroment|desktop environments]].
  
 === Installation === === Installation ===
Line 97: Line 95:
 # pacman -S xenocara-xinit # pacman -S xenocara-xinit
 </code> </code>
- 
-=== Configuration === 
- 
-xinit and startx will look for ~/.xinitrc to run as a shell script to start up client programs. 
  
 === xinitrc === === xinitrc ===
Line 112: Line 106:
 This default xinitrc will start a basic environment with [[https://www.hyperbola.info/packages/?name=xenocara-twm|xenocara-twm]], [[https://www.hyperbola.info/packages/?name=xenocara-xclock|xenocara-xclock]] and [[https://www.hyperbola.info/packages/?name=xterm|xterm]] (assuming that the necessary packages are installed). This default xinitrc will start a basic environment with [[https://www.hyperbola.info/packages/?name=xenocara-twm|xenocara-twm]], [[https://www.hyperbola.info/packages/?name=xenocara-xclock|xenocara-xclock]] and [[https://www.hyperbola.info/packages/?name=xterm|xterm]] (assuming that the necessary packages are installed).
  
-If those packages aren't installedrun:+ 
 + 
 +Thereforeto start a different [[en:system:userspace:window_manager|window manager]] or [[en:system:userspace:desktop_enviroment|desktop environment]], first create a copy of the default xinitrc in your home directory:
  
 <code bash> <code bash>
-# pacman -S xenocara-twm xenocara-xclock xterm+$ cp /etc/X11/xinit/xinitrc ~/.xinitrc 
 +</code> 
 + 
 +Then edit the file and replace the default programs with desired commands. Remember that lines following a command using exec would be ignored. For example, to start [[https://www.hyperbola.info/packages/?name=xscreensaver|xscreensaver]] in the background and then start [[en:system:userspace:application:window_managers:openbox|openbox]], use the following: 
 + 
 +<code bash> 
 +$ ~/.xinitrc 
 + 
 +... 
 +xscreensaver & 
 +exec openbox-session
 </code> </code>
  
Line 125: Line 131:
 $ startx $ startx
 </code> </code>
 +
 +===== Configuring =====
 +
 +<note>Hyperbola supplies default configuration files in /usr/share/X11/xorg.conf.d/, and no extra configuration is necessary for most setups.</note>
 +
 +Xenocara uses a configuration file called xorg.conf and files ending in the suffix .conf for its initial setup: the complete list of the folders where these files are searched can be found in [[https://man.openbsd.org/OpenBSD-6.5/xorg.conf.5|xorg.conf(5)]], together with a detailed explanation of all the available options.
 +
 +==== Using .conf files ====
 +
 +The /etc/X11/xorg.conf.d/ directory stores host-specific configuration. You are free to add configuration files there, but they must have a .conf suffix: the files are read in ASCII order, and by convention their names start with XX- (two digits and a hyphen, so that for example 10 is read before 20). These files are parsed by the X server upon startup and are treated like part of the traditional xorg.conf configuration file. Note that on conflicting configuration, the file read last will be processed. For that reason the most generic configuration files should be ordered first by name. The configuration entries in the xorg.conf file are processed at the end.
 +
 +==== Using xorg.conf ====
 +
 +Xorg can also be configured via /etc/X11/xorg.conf or /etc/xorg.conf. You can also generate a skeleton for xorg.conf with:
 +
 +<code bash>
 +# Xorg :0 -configure
 +</code>
 +
 +This should create a xorg.conf.new file in /root/ that you can copy over to /etc/X11/xorg.conf.
 +
 +<note tip>
 +If you are already running an X server, use a different display, for example:
 +<code bash>
 +# Xorg :2 -configure
 +</code>
 +</note>
 +
 +===== Input devices =====
 +
 +For input devices the X server defaults to the libinput driver, but [[https://www.hyperbola.info/packages/?name=xorg-input-evdev|xorg-input-evdev]] and related drivers are available as alternative.
 +
 +[[https://www.hyperbola.info/packages/?name=eudev|eudev]] will detect hardware and both drivers will act as hotplugging input driver for almost all devices, as defined in the default configuration files 10-quirks.conf and 40-libinput.conf in the /usr/share/X11/xorg.conf.d/ directory.
 +
 +After starting X server, the log file will show which driver hotplugged for the individual devices (note the most recent log file name may vary):
 +
 +<code bash>
 +$ grep -e "Using input driver " Xorg.0.log
 +</code>
 +
 +If both do not support a particular device, install the needed driver from the [[https://www.hyperbola.info/groups/x86_64/xenocara-drivers/|xenocara-drivers]] group. The same applies, if you want to use another driver.
  
 ===== Acknowledgement ===== ===== Acknowledgement =====
  
 This wiki article is based on **ArchWiki**. We may have removed non-[[https://www.gnu.org/philosophy/free-system-distribution-guidelines.html|FSDG]] bits from it. This wiki article is based on **ArchWiki**. We may have removed non-[[https://www.gnu.org/philosophy/free-system-distribution-guidelines.html|FSDG]] bits from it.