This guide explains how to configure and use the display server selection functionality in Dotsible, allowing you to choose between X11 and Wayland/Sway display servers for your Ubuntu and Arch Linux systems.
Dotsible now supports configuring different display servers to meet your specific needs:
- X11: Traditional display server with broad compatibility
- Wayland: Modern display server with better security and performance
- Sway: Wayland compositor with i3-like tiling window manager
Set these variables when running the playbook to specify your display server preference:
# For X11 (default)
ansible-playbook site.yml -e "display_server_preference=x11"
# For Wayland
ansible-playbook site.yml -e "display_server_preference=wayland"
# With specific desktop environment
ansible-playbook site.yml -e "display_server_preference=wayland desktop_environment=gnome"- Description: Traditional X Window System
- Best for: Maximum compatibility, older applications, gaming
- Supported on: Ubuntu, Arch Linux
- Desktop Environments: GNOME, KDE, XFCE, i3, Awesome, OpenBox
- Description: Modern display server protocol
- Best for: Security, performance, modern applications
- Supported on: Ubuntu, Arch Linux
- Desktop Environments: GNOME, KDE, Sway, Hyprland (Arch only)
| Desktop Environment | X11 Support | Wayland Support | Default Session |
|---|---|---|---|
| GNOME | ✅ | ✅ | Wayland |
| KDE | ✅ | ✅ | X11 |
| XFCE | ✅ | ❌ | X11 |
| i3 | ✅ | ❌ | X11 |
| Sway | ❌ | ✅ | Wayland |
| Desktop Environment | X11 Support | Wayland Support | Default Session |
|---|---|---|---|
| GNOME | ✅ | ✅ | Wayland |
| KDE | ✅ | ✅ | X11 |
| XFCE | ✅ | ❌ | X11 |
| i3 | ✅ | ❌ | X11 |
| Sway | ❌ | ✅ | Wayland |
| Hyprland | ❌ | ✅ | Wayland |
-
Default X11 setup (no extra configuration needed):
ansible-playbook site.yml --extra-vars "profile=developer" -
Wayland with GNOME:
ansible-playbook site.yml --extra-vars "profile=developer display_server_preference=wayland desktop_environment=gnome" -
Sway tiling window manager:
ansible-playbook site.yml --extra-vars "profile=developer display_server_preference=wayland desktop_environment=sway"
You can also set these preferences in your inventory files:
# inventories/local/group_vars/workstations.yml
display_server_preference: wayland
desktop_environment: gnome
# Or in host-specific variables
# inventories/local/host_vars/my-laptop.yml
display_server_preference: x11
desktop_environment: i3The system automatically installs the appropriate packages based on your display server choice:
- Core X11 server and utilities
- Window managers (i3, awesome, openbox, etc.)
- Display managers (lightdm, gdm, sddm)
- X11-specific utilities (xclip, arandr, redshift)
- Wayland core protocols and utilities
- Wayland compositors (sway, wayfire, hyprland)
- Wayland-specific utilities (wl-clipboard, grim, slurp)
- Display managers with Wayland support
Services are automatically configured based on your display server choice:
- X11: Enables appropriate display managers (lightdm, gdm, sddm)
- Wayland: Configures Wayland-compatible display managers
- Sway: No display manager required (direct login)
All GUI-enabled profiles now support display server selection:
- Developer: Full development environment with GUI applications
- Gaming: Optimized for gaming (typically X11 for compatibility)
- Designer: Creative tools with proper graphics acceleration
-
Application compatibility: Some applications may not work properly with Wayland
- Solution: Use X11 for maximum compatibility
-
Gaming performance: Some games perform better on X11
- Solution: Use X11 for gaming setups
-
Screen sharing: May not work properly in Wayland
- Solution: Use X11 or check application-specific Wayland support
To switch between display servers after installation:
-
Re-run the playbook with different settings:
ansible-playbook site.yml --extra-vars "display_server_preference=wayland" -
Manual switching at login screen:
- Look for session options in your display manager
- Choose between X11 and Wayland sessions
- For new users: Start with X11 for maximum compatibility
- For security-conscious users: Use Wayland for better isolation
- For gaming: Use X11 for best compatibility
- For development: Either works, choose based on your needs
- For servers: Display server configuration is not applicable
The display server configuration affects these files:
group_vars/ubuntu.yml: Ubuntu-specific display server packages and servicesgroup_vars/archlinux.yml: Arch Linux-specific display server packages and servicesgroup_vars/all/profiles.yml: Profile-specific display server preferences
Planned improvements include:
- Support for additional Wayland compositors
- Automatic display server detection and recommendation
- Per-application display server preferences
- Integration with dotfiles for display server-specific configurations