From 6b07457d1eadead6c640e978c2b51cf788ab9825 Mon Sep 17 00:00:00 2001 From: Don Armstrong Date: Mon, 6 Nov 2017 19:04:42 -0800 Subject: [PATCH] add post about autorandr --- posts/autorandr.mdwn | 64 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 posts/autorandr.mdwn diff --git a/posts/autorandr.mdwn b/posts/autorandr.mdwn new file mode 100644 index 0000000..c94dcc6 --- /dev/null +++ b/posts/autorandr.mdwn @@ -0,0 +1,64 @@ +[[!meta title="Autorandr: automatically adjust screen layout"]] + +Like many laptop users, I often plug my laptop into different monitor +setups (multiple monitors at my desk, projector when presenting, etc.) +Running xrandr commands or clicking through interfaces gets tedious, +and writing scripts isn't much better. + +Recently, I ran +across [autorandr](https://github.com/phillipberndt/autorandr), which +detects attached monitors using EDID (and other settings), saves +xrandr configurations, and restores them. It can also run arbitrary +scripts when a particular configuration is loaded. I've packed it, and +it is currently waiting in NEW. If you can't wait, +the +[deb is here](https://www.donarmstrong.com/autorandr_1.2-1_all.deb) +and +the +[git repo is here](https://git.donarmstrong.com/deb_pkgs/autorandr.git). + +To use it, simply install the package, and create your initial +configuration (in my case, undocked): + +``` +autorandr --save undocked +``` + +then, dock your laptop (or plug in your external monitor(s)), change +the configuration using xrandr (or whatever you use), and save your +new configuration (in my case, workstation): + +``` +autorandr --save workstation +``` + +repeat for any additional configurations you have (or as you find new +configurations). + +Autorandr has `udev`, `systemd`, and `pm-utils` hooks, and `autorandr +--change` should be run any time that new displays appear. You can +also run `autorandr --change` or `autorandr --load workstation` +manually too if you need to. You can also add your own +'~/.config/autorandr/$PROFILE/postswitch` script to run after a +configuration is loaded. Since I run i3, my workstation configuration +looks like this: + +``` +#!/bin/bash + +xrandr --dpi 92 +xrandr --output DP2-2 --primary +i3-msg '[workspace="^(1|4|6)"] move workspace to output DP2-2;' +i3-msg '[workspace="^(2|5|9)"] move workspace to output DP2-3;' +i3-msg '[workspace="^(3|8)"] move workspace to output DP2-1;' +``` + +which fixes the dpi appropriately, sets the primary screen (possibly +not needed?), and moves the i3 workspaces about. You can also arrange +for configurations to never be run by adding a `block` hook in the +profile directory. + +Check it out if you change your monitor configuration regularly! + + +[[!tag debian tech]] -- 2.39.2