Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/pbrisbin/msu
Monitor Setup Utility
https://github.com/pbrisbin/msu
Last synced: 2 months ago
JSON representation
Monitor Setup Utility
- Host: GitHub
- URL: https://github.com/pbrisbin/msu
- Owner: pbrisbin
- Created: 2013-12-31T02:05:45.000Z (almost 11 years ago)
- Default Branch: master
- Last Pushed: 2021-10-14T20:01:49.000Z (about 3 years ago)
- Last Synced: 2024-10-09T09:45:11.468Z (3 months ago)
- Language: Haskell
- Homepage:
- Size: 40 KB
- Stars: 5
- Watchers: 4
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
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)