Yserver is a new X11 server developed from scratch in Rust, recently reached the stable version 1.0. This project aims to provide a modern X11 server for current Linux systems, supporting contemporary desktop environments, window managers, and applications, while eliminating legacy components such as multiple screens, non-TrueColor visuals, and endian-swapped clients.

Although Wayland has become the standard for many desktop environments, X11 remains widely used, especially by those who depend on legacy workflows, specific window managers, or applications that work better under X11.

Yserver stands out for its standalone DRM/KMS server, capable of running full desktop environment sessions such as MATE, Xfce, and Cinnamon. It also supports various window managers like FVWM3, e16, and Window Maker.

The project offers a wide range of X11 extensions, including BIG-REQUESTS, Composite, DAMAGE, DPMS, DRI3, GLX, MIT-SHM, Present, RANDR, RENDER, SHAPE, SYNC, XFIXES, XInputExtension, XKEYBOARD, and XTEST.

Yserver has been tested on AMD, Intel, NVIDIA hardware with proprietary drivers, Snapdragon X1 with Adreno graphics, Apple M1 and M2 systems with Asahi Linux, and virtio-gpu in virtualized environments.

However, it has some limitations, such as the lack of compatibility of GLXEXTtexturefrompixmap with the proprietary NVIDIA driver and restrictions in VT switching, depending on how the server is started, especially in LightDM sessions.

Yserver can be started directly from a TTY or used with LightDM for graphical logins. It requires a recent stable Rust toolchain and system dependencies such as libseat, libxkbcommon, libinput, fontconfig, and related graphics components.

Currently, Yserver is an experimental but technically significant project, not yet a direct replacement for the X.Org server. However, its ability to run full sessions of MATE, Xfce, and Cinnamon makes it a notable release.

Prerequisites

To install and use Yserver, make sure you have the following hardware and software requirements:

  • Operating System: Linux
  • Rust Toolchain: Recent stable version
  • Libraries and Components:
    • libseat
    • libxkbcommon
    • libinput
    • fontconfig
    • Related graphics components

PROCEDURE: Installing and Configuring Yserver

By the end of this guide, you will have installed and configured Yserver, a modern X11 server written in Rust, capable of running full desktop sessions on Linux systems.

  • Step 1: Update the System

    Update the system and install the necessary dependencies:

    • Update the system:
    • sudo apt update && sudo apt upgrade -y
    • Install the dependencies:
    • sudo apt install -y libseat-dev libxkbcommon-dev libinput-dev fontconfig
  • Step 2: Install Rust

    Install the Rust toolchain:

    • Download and install Rust:
    • curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
    • Follow the instructions to complete the installation.
  • Step 3: Clone the Yserver Repository

    Clone the Yserver repository from GitHub:

    git clone https://github.com/joske/yserver.git
  • Step 4: Build Yserver

    Build Yserver using Cargo:

    • Navigate to the project directory:
    • cd yserver
    • Build the project:
    • cargo build --release
  • Step 5: Configure LightDM (Optional)

    If you want to use Yserver with LightDM for graphical logins:

    • Edit the LightDM configuration file:
    • sudo nano /etc/lightdm/lightdm.conf
    • Add or modify the following line:
    • display-setup-script=/usr/local/bin/yserver
  • Step 6: Start Yserver

    Start Yserver directly from a TTY or via LightDM:

    • From a TTY:
    • sudo /usr/local/bin/yserver
    • Via LightDM (if configured):
    • Reboot the system and select Yserver as the display server in the LightDM login menu.

Yserver is now installed and configured. You can run full desktop sessions like MATE, Xfce, and Cinnamon.

Verification and Troubleshooting

By the end of this guide, you will be able to test the functionality of Yserver and resolve any common issues.

Functionality Test

  • Starting from TTY: To test Yserver, start it directly from a TTY. Make sure you have all the necessary dependencies installed, including libseat, libxkbcommon, libinput, fontconfig, and related graphics components.
  • Starting with LightDM: If you prefer to use LightDM for graphical logins, make sure it is configured correctly. Keep in mind that VT switching functionalities might be limited.
  • Testing Desktop Sessions: Verify that Yserver can run full desktop sessions like MATE, Xfce, and Cinnamon. Also, check compatibility with window managers like FVWM3, e16, and Window Maker.

Troubleshooting

  • Issues with NVIDIA: If you are using the proprietary NVIDIA driver, be aware that GLXEXTtexturefrompixmap might not work. Look for alternative solutions or update the driver.
  • VT Switching Restrictions: Depending on how the server is started, especially in LightDM sessions, there may be restrictions in VT switching.
  • LightDM Configuration: Ensure that LightDM is properly configured to work with Yserver.

For more details and support, visit the project's GitHub repository.

By the end of this guide, you will have understood the importance and potential of Yserver, a new X11 server written in Rust that represents a significant step in the development of display technologies for Linux.

Yserver does not aim to replicate all the functionalities of the X.Org server but focuses on supporting modern desktop environments, window managers, and applications, eliminating legacy components such as multiple screens, non-TrueColor visuals, indirect GLX, and others.

  • Main Features: Support for desktops like MATE, Xfce, and Cinnamon, and window managers like FVWM3, e16, and Window Maker.

Editorial Note and Disclaimer

The guides and content published on GoYou are the result of independent research and analysis activities, for informational, educational, and in-depth purposes.

GoYou does not constitute a journalistic publication nor an editorial product pursuant to Law No. 62/2001 and does not perform real-time information activities.

The GoYou project does not provide professional, technical, legal, or financial advice and disclaims any liability for the misuse of the information published.

In the Crypto sector, every investment involves risks: readers are invited to always inform themselves independently before making any decision.