Skip to main content
Version: v1.3.5

TUI

The HyprDynamicMonitors TUI provides an interactive interface for managing Hyprland monitor configurations.

Launch the TUI

hyprdynamicmonitors tui

The TUI can be used with or without a valid HyprDynamicMonitors configuration:

  • With config: Full functionality including profile management
  • Without config: Monitor manipulation and ephemeral application only

Views

The TUI has two main views that you can switch between using Tab:

  1. Monitors View - Edit monitor layouts, positions, modes, and settings
  2. Profile View - Manage HyprDynamicMonitors profiles and configuration

Switching between views

info

The profile view is available only when --config points to a valid hyprdynamicmonitors configuration. Without it, you can still experiment with monitors and apply settings, but cannot save them under hyprdynamicmonitors.

Global Keybinds

KeyAction
q / Ctrl+CQuit the TUI
TabSwitch between Monitors and Profile views

Monitors View

The Monitors view shows connected monitors on the left and a visual preview on the right.

Monitors View

KeyAction
j / downMove down in the monitor list
k / upMove up in the monitor list
EnterSelect a monitor for editing / Deselect when in editing mode

Monitor Preview Controls

Panning Mode

KeyAction
pToggle panning mode (move freely around the monitor grid)
h/j/k/l or arrow keysPan the preview in panning mode
cCenter the view back to origin (0,0)

Panning mode

Zoom

KeyAction
+Zoom in on the preview
-Zoom out on the preview
TZoom and pan monitors to fit the preview screen

Zoom

Display Options

KeyAction
FToggle fullscreen preview mode
oToggle follow monitor mode (preview auto-centers on selected monitor)
SToggle snapping (when moving monitors, they snap to edges of other monitors)

Display options

Editing a Monitor

Once you select a monitor with Enter, it enters EDITING mode. In this mode:

Editing a monitor

Position

KeyAction
h/j/k/l or arrow keysMove the monitor in 50px steps
  • With snapping enabled (default), monitors will snap to edges of other monitors within 50px
  • When snapping occurs, visual grid lines show the snap alignment

Positioning monitors

Rotation

KeyAction
rRotate the monitor by 90 degrees (cycles through 0 → 90 → 180 → 270 → 0)
LFlip (mirror) monitor horizontally
note

Cannot rotate disabled monitors

Rotating monitors

Resolution and Refresh Rate

KeyAction
mOpen mode selection menu
j/kPreview different modes (updates preview in real-time)
EnterApply the selected mode
EscClose (applying the last selection)

Shows all available modes for the selected monitor.

Changing resolution and refresh rate

Scaling

KeyAction
sOpen scale selector
kIncrease scale by 0.1
jDecrease scale by 0.1
EnterConfirm scale change
EscClose (applying the last selection)

Adjusting monitor scaling

Mirroring

KeyAction
iOpen mirror selection menu
j/kNavigate through available monitors to mirror
EnterApply mirror setting
EscClose (applying the last selection)

Select which monitor this monitor should mirror. Mirror loops are prevented automatically.

Monitor mirroring

Enable/Disable

KeyAction
eToggle monitor (e)nabled/disabled
  • Disabled monitors show as disable in the config preview
  • Cannot disable the last remaining monitor
  • Cannot edit settings of disabled monitors

Enabling/disabling monitors

Variable Refresh Rate (VRR)

KeyAction
vToggle VRR on/off for the monitor

Toggling VRR

Color Profiles Management

KeyAction
CEnter color profiles management menu
Esc/EnterBack / Select
up/downChange the current color preset
bToggle bitdepth (at the moment only default and 10 is supported)
r/RAdjust SDR brightness (when hdr color profile is selected)
t/TAdjust SDR saturation (when hdr color profile is selected)

Color profiles management

Known Limitation

Due to hyprctl not yet supporting the output of these, when you change the color preset and apply it, then reload the TUI, the color preset will mismatch and show auto/default/srgb. This will change as soon as the underlying issue in Hyprland is resolved.

Applying Changes

KeyAction
AApply current monitor configuration to Hyprland (ephemeral, not persisted on disk)
YConfirm and apply
N or EscCancel

Shows confirmation prompt before applying.

Applying changes


Profile View

The Profile view shows your HyprDynamicMonitors configuration and lets you save monitor layouts as profiles.

Profile Management

Creating a New Profile

KeyAction
nCreate new profile from current monitor layout
EnterSave the profile
EscCancel

Opens profile name input where you can type the profile name.

The profile will include:

  • All connected monitors as required monitors (matched by description)
  • Current monitor layout, modes, scales, positions, and settings

Creating a new profile

Editing an Existing Profile

When the current monitors match an existing profile:

KeyAction
aApply edited settings to the matching profile
YConfirm and update the profile
N or EscCancel
eEdit the config file in your $EDITOR

Shows confirmation prompt with profile name. After confirmation, the config is reloaded automatically.

Editing an existing profile

Profile Status Indicators

The TUI shows different status messages:

  • Profile: [name] - Current monitors match this profile exactly
  • Monitor Count Mismatch - Monitors match partially but count differs
  • No Matching Profile - No profile matches current monitor setup

Configuration

KeyAction
COpen the HyprDynamicMonitors config file in your default editor (defined by $EDITOR)

Opening config file

Rendering Hyprland Configuration

The TUI can generate and edit the Hyprland monitor configuration on-demand:

KeyAction
RRender configuration from template/static file to the destination
EEdit the rendered configuration file in your $EDITOR

The R command writes the rendered output to your configured config.general.destination. You can then manually edit this file with E.

Ephemeral Changes

If the hyprdynamicmonitors daemon is running, any manual edits to the rendered configuration will be overwritten when the daemon responds to monitor or power state events.

Rendering and editing config


Tips

  1. Snapping: Keep snapping enabled (default) for easier monitor alignment. When snapping is active, monitors automatically align to edges of other monitors within 50px.

  2. Follow Mode: Enable f(o)llow mode (o) when moving monitors to keep them centered in the preview.

  3. Fullscreen Preview: Use fullscreen mode (F) to get a better view when working with many monitors or complex layouts.

  4. Preview Before Applying: All changes are shown in the preview immediately. You can experiment freely without affecting your actual configuration until you press A to apply and confirm.

  5. Profile Workflow:

    • Arrange monitors in the Monitors view
    • Switch to Profile view with Tab
    • Create a new profile with n or update existing with a
    • The profile will be saved to your HyprDynamicMonitors config
  6. Panning: Use panning mode (p) to explore large monitor layouts. The grid shows spacing dots that scale with zoom level.


Visual Indicators

Monitor List

  • > - Currently selected item in the list
  • [EDITING] - Monitor is in editing mode
  • [CHANGE MODE] - Mode selection menu is open
  • [SCALE MODE] - Scale selector is open
  • [MIRRORING] - Mirror selection menu is open

Monitor Preview

  • Monitors are shown as colored rectangles on a grid
  • The selected monitor has a different fill pattern
  • Monitor labels show the name and an arrow indicating rotation
  • Bottom edge is highlighted with a brighter color to show orientation
  • Snap lines appear as vertical | and horizontal - lines when snapping occurs

Status Messages

Success messages appear in the header and automatically clear after 2 seconds. Errors linger until cleared by any other success.

See Also