Beta

gardisplay

Display Configuration

A graphical X11 monitor manager with drag-and-drop layout, per-monitor resolution and refresh rate selection, fractional scaling, rotation, and named profiles. Changes are applied via RandR with a 15-second auto-revert watchdog that restores the previous configuration if you can't confirm.

Features

  • Drag-and-drop monitor arrangement with edge snapping
  • Per-monitor resolution, refresh rate, rotation, and scale
  • Enable/disable individual monitors
  • Named profiles (save, load, rename, delete)
  • 15-second auto-revert with independent watchdog process
  • DPI scaling via xsettingsd and xrdb
  • Virtual resolutions for single-mode displays (Apple Silicon)
  • RandR CRTC transform for fractional scaling
  • Double-click to set primary monitor
  • Visual snap guides during drag
  • Demo mode for UI development without hardware

Quick Start Guide

Get up and running with gardisplay in a few steps. This guide covers installation, launching, and basic monitor configuration.

1. Installation

Install gardisplay using the unified installer or build from source:

terminal
$ curl -fsSL https://gar.musicsian.com/install.sh | bash -s -- --component=gardisplay # Install via script
$ cd ~/.local/src/gardesk/gardisplay && cargo build --release # Or build from source

2. System Dependencies

gardisplay requires X11 with RandR, and optionally xsettingsd for DPI scaling:

Install dependencies
$ sudo pacman -S libx11 xorg-xrandr xsettingsd # Arch
$ sudo apt install libx11-dev x11-xserver-utils xsettingsd # Debian/Ubuntu
$ sudo dnf install libX11-devel xrandr xsettingsd # Fedora

3. Launch

Run gardisplay to open the monitor configuration window:

terminal
$ gardisplay # Open display settings
$ gardisplay --demo # Open with fake monitors (UI testing)
$ gardisplay -c ~/.config/gardisplay/config.toml # Custom config path

4. Arrange Monitors

The top section shows your monitors as draggable rectangles. Drag them to arrange the layout, then click a monitor to configure its settings in the panel below.

  • Drag a monitor rectangle to reposition it
  • Click a monitor to select it and see its settings
  • Double-click a monitor to set it as primary

5. Apply Changes

After arranging monitors and adjusting settings, apply the layout:

  • Click Apply or press Enter to apply
  • A confirmation dialog appears with a 15-second countdown
  • Click Keep to confirm, or wait for auto-revert

6. Keyboard Shortcuts

Key Action
Enter / Ctrl+AApply layout via RandR
Backspace / Ctrl+RRevert to original layout
Ctrl+SSave current profile
Escape / QQuit
Double-clickSet clicked monitor as primary

Releases

v0.1.0 Initial Release
  • • Drag-and-drop monitor layout with edge snapping
  • • Per-monitor resolution, refresh rate, rotation, and scale via RandR
  • • Named profile management (save, load, rename, delete)
  • • 15-second auto-revert watchdog for safe display changes
  • • DPI scaling via xsettingsd and xrdb
  • • Virtual resolutions for single-mode displays
  • • Demo mode for UI testing