Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/pbrisbin/msu

Monitor Setup Utility
https://github.com/pbrisbin/msu

Last synced: 2 months ago
JSON representation

Monitor Setup Utility

Awesome Lists containing this project

README

        

# Monitor Setup Utility

[ARandR][] is great for setting up monitors in a minimal way. I use it when
plugging in at some random location and/or to save scripts to set things to a
known configuration.

[arandr]: https://christian.amsuess.com/tools/arandr/

By contrast, this tool allows me to run a single command, with no options or
thought (e.g. from a udev hot-plug rule), and have that tool figure out where I
am and *what* saved-script (or literal command) to execute to configure my
monitors.

Plugging into my office dock, like I do every morning? The script notes that I'm
on my home wifi and a specific Display is now connected and it does the Right
Thing.

Unplugging to only my laptop screen connected? This script sees this and resets
to it as the single primary display.

## Usage

Create a configuration file that defines how to match a "context" and what
command to execute if matched:

**~/.monitors.yaml**:

```yaml
- name: none
match:
# Only our primary display is connected
displays:
connected:
eq:
- eDP1

# Turn everything else off and turn that on
exec:
xrandr
--output eDP1 --primary --mode 2560x1440
--output DP1 --off
--output DP2 --off
--output DP2-1 --off
--output DP2-2 --off
--output DP2-3 --off
--output HDMI1 --off
--output HDMI2 --off
--output VIRTUAL1 --off

- name: home-dual
match:
# My second display is connected
displays:
connected:
eq:
- eDP1
- DP2-2

# And I'm on one of my home wifi networks
wifi:
essid:
in:
- pb-and-j
- pb-and-j-5g

# Set up those two displays how I like
exec:
xrandr
--output eDP1 --mode 2560x1440 --right-of DP2-2
--output DP1 --off
--output DP2 --off
--output DP2-1 --off
--output DP2-2 --primary --mode 2560x1440
--output DP2-3 --off
--output HDMI1 --off
--output HDMI2 --off
--output VIRTUAL1 --off
```

Then run:

```console
msu
```

---

[CHANGELOG](./CHANGELOG.md) | [LICENSE](./LICENSE)