Skip to content

Latest commit

 

History

History
60 lines (47 loc) · 2 KB

README.md

File metadata and controls

60 lines (47 loc) · 2 KB

MonitorMaestro

Tired of fiddling with Hyprland configs?

Monitor Maestro lets you switch between monitor layouts in a snap!

This Rust-powered TUI app lets you define layouts in a simple TOML or JSON file and switch between them with a few keystrokes.

Effortless Workflow:

  • Define layouts in TOML or JSON.
  • Simple TUI for easy selection.
  • Switch layouts instantly.

The TUI runs on a terminal, so it's up to you to add a bind in you Hyprland configs
If you want an example, take a look at my Hyprlad dotfiles and search for monitor_maestro

Functionality

The program has 3 execution options:

  • tui <MODE>: start the TUI, either in:
    • list: list workspaces from config (specify with -p / --path) file and select one
    • interactive: draw current monitors with rectangles (needs a larger terminal window)
  • workspace <NAME>: no tui, only run the commands to start the specified workspace
  • state: get the current workspace from the file /tmp/monitor_maestro_state.txt, auto-handled

Keybinds

Tui in mode:
list:
- j - k: go down - up the list
- q - ESC: exit
- Enter: select monitor layout

interactive:
- h - l: go left - right the monitor rectangles
- q - ESC: exit
- Enter: WIP

Installation

Clone the repo, then build with cargo

cargo build --release

and copy the executable monitor_maestro wherever you choose.

Configuration

An example workspaces configuration toml file is provided
Also json file.
A monitor can either be:

  • Enabled, and requires the fields:

    • dimensions
    • refresh rate
    • position
    • scaling
  • Disabled

Milestones

  • Dynamic TUI showing rectangles as current monitor layout, in a pseudo realistic way
  • Toml configuration
  • TUI for interactive monitor layout creation and json output