yserver
A modern X11 server written from scratch in Rust.
File Explorer
Download Latest Version (.zip)- audit.yml
- ci.yml
- release.yml
- dependabot.yml
- cursor.pcf
- nil2.pcf
- README.md
- yserver.rs
- buffer.rs
- device.rs
- mod.rs
- modeset.rs
- page_flip.rs
- swapchain.rs
- context.rs
- event.rs
- hotkey.rs
- leds.rs
- libinput_config.rs
- mod.rs
- backend.rs
- batch_resource.rs
- completion_poller.rs
- composite_pool_ring.rs
- cursor.rs
- descriptor_pool_ring.rs
- engine.rs
- frame_builder.rs
- glyph_atlas.rs
- glyph_pixels.rs
- imported_syncobj.rs
- mod.rs
- owned_semaphore.rs
- platform.rs
- present_completion.rs
- present_source_wait.rs
- root_overlay.rs
- scene.rs
- store.rs
- stroke.rs
- submit_group.rs
- submit_trace.rs
- telemetry.rs
- copy.rs
- fill.rs
- image.rs
- mod.rs
- render.rs
- scanout_logic_fill.rs
- text.rs
- traps.rs
- composite.frag.glsl
- composite.vert.glsl
- logic_fill.frag.glsl
- logic_fill.vert.glsl
- masked_blit.frag.glsl
- masked_blit.vert.glsl
- render.frag.glsl
- render.vert.glsl
- text.frag.glsl
- text.vert.glsl
- trap.frag.glsl
- trap.vert.glsl
- triangle.frag.glsl
- triangle.vert.glsl
- call_stats.rs
- compositor.rs
- copy_scratch.rs
- device.rs
- dri3.rs
- dst_readback.rs
- glyph.rs
- gradient.rs
- instance.rs
- logic_fill_pipeline.rs
- mask_scratch.rs
- masked_blit_pipeline.rs
- memory.rs
- mod.rs
- pipeline.rs
- pixmap_pool.rs
- render_pipeline.rs
- scanout.rs
- sync.rs
- target.rs
- text_pipeline.rs
- trap_pipeline.rs
- backend.rs
- console.rs
- core.rs
- cpu_types.rs
- cursor_plane.rs
- hotplug.rs
- mod.rs
- render_node.rs
- xkb.rs
- xshmfence.rs
- event_loop.rs
- mod.rs
- paint.rs
- state.rs
- mod.rs
- state.rs
- clock.rs
- input_thread.rs
- launch.rs
- lib.rs
- version.rs
- mod.rs
- dri3_fd_leak.rs
- glx_tfp_export.rs
- render_acceptance.rs
- build.rs
- Cargo.toml
- gamma.rs
- handles.rs
- mod.rs
- params.rs
- recording.rs
- trait_def.rs
- auth.rs
- barriers.rs
- client_io.rs
- client_reader.rs
- damage_fanout.rs
- fanout.rs
- key_fanout.rs
- message.rs
- mod.rs
- pointer_fanout.rs
- poll_tokens.rs
- process_disconnect.rs
- process_request.rs
- run.rs
- sender.rs
- setup_thread.rs
- xi1_focus.rs
- xi1_state_notify.rs
- xkb_layout.rs
- mod.rs
- pump.rs
- request.rs
- sequence_map.rs
- trait_impl.rs
- libinput_props.rs
- mod.rs
- crossings.rs
- dri3.rs
- lib.rs
- nested.rs
- present_scheduler.rs
- properties.rs
- randr.rs
- resources.rs
- server.rs
- unix_fd.rs
- xauth.rs
- Cargo.toml
- atoms.rs
- colors.rs
- composite.rs
- damage.rs
- dpms.rs
- dri3.rs
- glx.rs
- keysyms.rs
- mit_shm.rs
- mod.rs
- present.rs
- randr.rs
- request_lengths.rs
- request_swap.rs
- screensaver.rs
- shape.rs
- sync.rs
- wire.rs
- wire_swap.rs
- x_resource.rs
- xf86vidmode.rs
- xfixes.rs
- xinerama.rs
- xtest.rs
- lib.rs
- Cargo.toml
- starty.1.scd
- yserver.1.scd
- 2026-05-31-render-source-picture-redirect.md
- 2026-06-01-touch-input-gap.md
- 2026-06-01-tray-loop-emit-site-confirmed.md
- 2026-06-09-cow-structural-results.md
- 2026-06-09-glx-tfp-radv-export-rootcause.md
- 2026-06-17-macos-windows-port-feasibility.md
- 2026-06-17-openbsd-bsd-family-port-feasibility.md
- 2026-06-17-tech-debt-stub-audit.md
- 2026-06-18-pointer-stacking-dual-authority-diagnosis.md
- 2026-06-18-xorg-xts-baseline.md
- 2026-06-18-xorg-xts-baseline.tsv
- 2026-06-18-xorg-xts-journal.gz
- 2026-06-25-altgr-4level-golden-vector.md
- 2026-06-25-xkb-indicator-compat-golden-vector.md
- 2026-06-25-xkb-request-coverage-audit.md
- 2026-06-26-stub-gap-survey.md
- 2026-07-08-mate-compositor-drag-smear-diagnosis.md
- 2026-07-08-perf-thread-wm-redirect-model.md
- 2026-07-08-xorg-render-optimization-gaps.md
- 2026-05-04-phase6-5-fvwm3-trace.md
- 2026-04-27-property-storage.md
- 2026-04-28-clipping-and-pointer-events.md
- 2026-04-28-unmap-notify.md
- 2026-04-29-copyarea-putimage.md
- 2026-04-29-nested-randr-compat.md
- 2026-04-29-phase1-outstanding.md
- 2026-04-29-phase2-fvwm3.md
- 2026-04-30-phase2-wrap-up.md
- 2026-04-30-phase3-2-advanced-interoperability.md
- 2026-04-30-phase3-3-wm-validation-followups.md
- 2026-04-30-phase3-toolkit-compat.md
- 2026-05-02-phase3-6-plan.md
- 2026-05-02-phase6-bootstrap.md
- 2026-05-03-phase6-2-backend-trait.md
- 2026-05-03-phase6-3-pump-sink-rework.md
- 2026-05-04-phase6-4-kms-backend.md
- 2026-05-04-phase6-5-wm-readiness.md
- 2026-05-04-phase6-6-render-completion.md
- 2026-05-04-software-cursor.md
- 2026-05-05-phase67-full-x11-pass.md
- 2026-05-06-be-client-support.md
- 2026-05-06-single-threaded-core.md
- 2026-05-07-phase6-10-multi-monitor.md
- 2026-05-08-phase4-1-4-1-fill.md
- 2026-05-08-phase4-1-4-2-copyarea.md
- 2026-05-08-phase4-1-vulkan-compositor.md
- 2026-05-09-phase4-2-dri3-present-glx.md
- 2026-05-11-x11-composite-implementation.md
- 2026-05-12-rendering-rearchitecture-phase1-results.md
- 2026-05-12-rendering-rearchitecture-phase1.md
- 2026-05-12-rendering-rearchitecture-phase2-results.md
- 2026-05-12-rendering-rearchitecture-phase2.md
- 2026-05-12-rendering-rearchitecture-phase3-codex.md
- 2026-05-12-rendering-rearchitecture-phase3.md
- 2026-05-12-rendering-rearchitecture-phase3a-results.md
- 2026-05-13-kms-teardown-fix-results.md
- 2026-05-13-kms-teardown-fix.md
- 2026-05-13-rendering-rearchitecture-phase3b-results.md
- 2026-05-13-rendering-rearchitecture-phase3b.md
- 2026-05-13-rendering-rearchitecture-phase3c-results.md
- 2026-05-13-rendering-rearchitecture-phase3c.md
- 2026-05-13-rendering-rearchitecture-phase3d-results.md
- 2026-05-13-rendering-rearchitecture-phase3d.md
- 2026-05-13-rendering-rearchitecture-phase3e-results.md
- 2026-05-13-rendering-rearchitecture-phase3e.md
- 2026-05-13-rendering-rearchitecture-phase3f-1-results.md
- 2026-05-13-rendering-rearchitecture-phase3f-1.md
- 2026-05-13-rendering-rearchitecture-phase3f-2-results.md
- 2026-05-13-rendering-rearchitecture-phase3f-2.md
- 2026-05-13-rendering-rearchitecture-phase4-results.md
- 2026-05-13-rendering-rearchitecture-phase4.md
- 2026-05-14-gpu-trap-rasterization-results.md
- 2026-05-14-gpu-trap-rasterization.md
- 2026-05-14-pixmap-allocation-pool-results.md
- 2026-05-14-pixmap-allocation-pool.md
- 2026-05-14-rendering-rearchitecture-phase5-results.md
- 2026-05-14-rendering-rearchitecture-phase5.md
- 2026-05-16-stage-1.md
- 2026-05-16-stage-2.md
- 2026-05-16-stage-3.md
- 2026-05-17-stage-4.md
- 2026-05-19-stage-5-hw-cursor.md
- 2026-05-20-cow-authoritative-mode.md
- 2026-05-20-stage-5-make-v2-fast.md
- 2026-05-21-descriptor-pool-ring.md
- 2026-05-23-deferred-present-completion.md
- 2026-05-23-frame-builder-submit-rate-phase-a.md
- 2026-05-24-frame-builder-phase-b1.md
- 2026-05-24-frame-builder-phase-b2.md
- 2026-05-25-frame-builder-phase-b3.md
- 2026-05-28-vt-switching.md
- 2026-05-30-dpms.md
- 2026-05-30-mit-screen-saver.md
- 2026-05-31-idletime-sync-alarms.md
- 2026-06-02-touchpad-tier2b.md
- 2026-06-03-wezterm-transparent-backing-seed.md
- 2026-06-08-cow-structural.md
- 2026-06-09-glx-texture-from-pixmap.md
- 2026-06-09-glx-tfp-modifier-export.md
- 2026-06-10-animated-cursors.md
- 2026-06-12-lightdm-launch.md
- 2026-06-12-xcmisc.md
- 2026-06-12-xinerama.md
- 2026-06-13-root-getimage-screenshot.md
- 2026-06-13-vt-switch-direct-mode.md
- 2026-06-16-drm-display-hotplug.md
- 2026-06-17-randr-output-management.md
- 2026-06-17-xfixes-pointer-barriers.md
- 2026-06-18-randr-gamma.md
- 2026-06-18-step2-stacking-projection.md
- 2026-06-21-clip-readback-and-depth1-fill.md
- 2026-06-21-gpu-side-clip-copyarea-plan.md
- 2026-06-22-same-target-renderpass-coalescing.md
- 2026-06-22-slice2-cross-kind-impl.md
- 2026-06-22-slice2-cross-kind-renderpass-session.md
- 2026-06-24-xkb-runtime-layout-v2.md
- 2026-06-24-xkb-runtime-layout.md
- 2026-06-25-xauth-server-auth.md
- 2026-07-02-render-clipbychildren-damage.md
- 2026-07-08-direct-scanout-fullscreen-scope.md
- 2026-07-08-glyph-batching-and-a1-cache-scope.md
- 2026-07-13-import-region-select-includeinferiors.md
- 2026-07-14-root-includeinferiors-overlay.md
- 2026-07-15-freeze-state-unification.md
- 2026-07-15-xi2-core-implicit-pointer-grab.md
- 2026-07-16-grab-ownership-unification.md
- 2026-07-25-asynchronous-present-source-wait.md
- 2026-07-26-nvidia-cursor-sw-on-drag.md
- 2026-07-26-protocol-silent-success-audit.md
- 2026-07-27-present-complete-vblank-pacing.md
- 2026-07-28-install-contract-docs.md
- 2026-08-01-present-deferred-execution-supersession.md
- 2026-08-01-xi-onehot-property-short-write.md
- 2026-08-03-glx-reply-xorg-alignment.md
- 2026-08-05-present-direct-scanout-m0.md
- 2026-08-05-present-direct-scanout-m1.md
- 2026-08-05-present-direct-scanout-m2.md
- 2026-08-06-glx-vendor-names-from-driver.md
- 2026-08-07-glx-extension-string-terminator.md
- 2026-08-08-dri3-syncobj-drm-signal.md
- 2026-08-12-dri3-syncobj-identity.md
- xlib9-core-fonts-text.md
- 2026-04-27-property-storage-design.md
- 2026-04-28-clipping-and-pointer-events-design.md
- 2026-04-28-unmap-notify-design.md
- 2026-04-29-copyarea-putimage-design.md
- 2026-04-29-nested-randr-compat-design.md
- 2026-04-29-phase1-outstanding-design.md
- 2026-04-30-phase2-wrap-up-design.md
- 2026-04-30-phase3-2-advanced-interoperability-design.md
- 2026-04-30-phase3-3-wm-validation-followups-design.md
- 2026-04-30-phase3-toolkit-compat-design.md
- 2026-05-01-phase3-5-extension-completion-design.md
- 2026-05-02-phase3-6-design.md
- 2026-05-02-phase6-bootstrap-design.md
- 2026-05-03-phase6-2-backend-trait-design.md
- 2026-05-03-phase6-3-pump-sink-rework-design.md
- 2026-05-04-phase6-6-render-completion-design.md
- 2026-05-05-phase67-design.md
- 2026-05-05-single-threaded-core-design.md
- 2026-05-07-phase4-1-vulkan-compositor-design.md
- 2026-05-07-phase6-10-multi-monitor-design.md
- 2026-05-09-phase4-2-dri3-present-glx-design.md
- 2026-05-11-x11-composite-design.md
- 2026-05-12-kms-vulkan-frame-ownership-codex.md
- 2026-05-12-rendering-rearchitecture-hld.md
- 2026-05-12-waitidle-catalogue.md
- 2026-05-15-rendering-model-v2.md
- 2026-05-21-descriptor-pool-ring-design.md
- 2026-05-23-deferred-present-completion-design.md
- 2026-05-23-frame-builder-submit-rate-design.md
- 2026-05-24-frame-builder-phase-b-design.md
- 2026-05-25-frame-builder-phase-b3-design.md
- 2026-05-27-vt-switching-design.md
- 2026-05-30-dpms-design.md
- 2026-05-30-mit-screen-saver-design.md
- 2026-05-31-idletime-sync-alarms-design.md
- 2026-06-02-touchpad-tier2b-design.md
- 2026-06-02-touchpad-xi2-properties-design.md
- 2026-06-08-cow-structural-design.md
- 2026-06-09-glx-texture-from-pixmap-design.md
- 2026-06-10-animated-cursors-design.md
- 2026-06-12-lightdm-launch-design.md
- 2026-06-12-xcmisc-design.md
- 2026-06-12-xinerama-design.md
- 2026-06-13-root-getimage-screenshot-design.md
- 2026-06-13-vt-switch-direct-mode-design.md
- 2026-06-14-idle-compositor-cursor-damage.md
- 2026-06-17-randr-output-management-design.md
- 2026-06-17-xfixes-pointer-barriers-design.md
- 2026-06-18-randr-gamma-design.md
- 2026-06-21-clip-readback-and-depth1-fill-design.md
- 2026-06-21-gpu-side-clip-copyarea-design.md
- 2026-06-25-xauth-server-auth-design.md
- 2026-07-02-render-clipbychildren-damage-design.md
- 2026-07-14-root-includeinferiors-overlay-design.md
- 2026-07-16-grab-ownership-unification-design.md
- 2026-07-20-idle-compositor-per-output-recompose.md
- 2026-07-20-nvidia-gbm-scanout-allocation.md
- 2026-07-28-packaging-install-contract-design.md
- 2026-07-28-present-completion-clock-provenance-design.md
- 2026-07-28-present-synced-acquire-wait-design.md
- 2026-07-31-present-deferred-execution-supersession-design.md
- 2026-08-01-xi-onehot-property-short-write-design.md
- 2026-08-03-glx-reply-xorg-alignment-design.md
- 2026-08-05-glx-vendor-names-from-driver-design.md
- 2026-08-05-present-direct-scanout-design.md
- 2026-08-07-glx-extension-string-terminator-design.md
- 2026-08-08-dri3-syncobj-drm-signal-design.md
- 2026-07-11-doc-retention-audit.md
- bsd-support.md
- code-quality-audit-2026-07-26.md
- extensions.txt
- handoff-click-below.md
- handoff-gitk-render.md
- handoff-icewm-tooltip-crossing-churn.md
- handoff-xi2-grab-ownership-desync.md
- high-level-design.md
- known-issues.md
- nvidia.txt
- protocol-audit-2026-05-19.md
- root-resize-probe.py
- setup.md
- status-archive-2026-05-13.md
- status-archive-2026-05-15.md
- status-archive-2026-05-21.md
- status.md
- test-status.md
- wip-texture-from-pixmap-assessment-2026-05-20.md
- wip-tray-applets-investigation-2026-05-20-pm.md
- xts-baseline-summary.txt
- xts-baseline.md
- lightdm-99-yserver.conf.in
- yserver.tmpfiles
- amdgpu-bo-placement.sh
- anim-cursor-probe.c
- barrier-smoke.c
- chromium-yserver-debug.sh
- chromium-yserver-gdb.sh
- chromium-yserver-trace.sh
- debug-xts-case-hw.sh
- debug-xts-case-vng.sh
- e16-glyph-probe.c
- e16-hover-probe.c
- e16-hover-repro.sh
- e16-vng-probe.sh
- e16-vng-strace.sh
- e16-vng-strace2.sh
- e16-vng-trace-xephyr.sh
- e16-vng-trace.sh
- e16-vng-xephyr-control.sh
- fontset-dump-trace.sh
- fontset-probe.c
- fontset-trace-xephyr.sh
- fontset-trace-yserver.sh
- fontset-vng-test.sh
- glx-cfgdump.c
- glx-tfp-probe.c
- install-smoke.sh
- marco-gdb-watch.gdb
- marco-gdb.sh
- marco-watch.sh
- marco-xephyr.sh
- or-fullscreen-repro.c
- picom-yserver.sh
- profile-mate.sh
- rendercheck.sh
- run-plasma-yserver.sh
- run-xfill-diag.sh
- scene-walk.sh
- vng-defpresent-smoke.sh
- vng-mate-smoke.sh
- xid-exhaust-probe.c
- xkb-names-vng-test.sh
- xts-batch.sh
- xts-run.sh
- xts-vs-baseline.py
- xts-xlib-sweep.sh
- yserver-lightdm.sh
- yserver-vng-run.sh
- .gitignore
- AGENTS.md
- Cargo.lock
- Cargo.toml
- CLAUDE.md
- CONTRIBUTING.md
- Justfile
- LICENSE
- README.md
- rust-toolchain.toml
- rustfmt.toml
- starty
# Installation Guide
1. Get the code
git clone https://github.com/joske/yserver
Downloads the entire project code from GitHub to your computer.
cd yserver
Moves into the project folder you just downloaded.
2. Official Install Script
Easy RecommendedPrerequisites
- APT (Debian/Ubuntu ๊ณ์ด) Built into Debian/Ubuntu-based Linux distributions.
sudo apt install ./yserver_*.deb
Installs directly from the APT package repository (Debian/Ubuntu-based).
After installing, open a new terminal and run the program's version command (e.g. --version) to confirm it worked.
Pulled directly from this repo's README.
3. Rust
MediumPrerequisites
- Git Needed to download the project code from GitHub.
- Rust (rustup) Installing via rustup also installs cargo.
cargo build --release
Compiles the Rust project.
cargo run
Builds and then immediately runs the program.
If cargo build finishes without errors, it worked. The executable is created under target/.
// repository documentation
Was this content helpful?
(0 ratings)
