add option to make layout default on startup by means of desktop environment integration
implement missing xrandr 1.2 features: reflect, additional modes (for forcibly applying saved layouts so they are already active when an output is connected), fb, fbmm/dpi
call xrandr without blocking
receive notifications on changes (XRRScreenChangeNotify)
- useful resources: <http://www.mail-archive.com/sawfish-list@gnome.org/msg03630.html> (a patch to sawfish for xrandr event support), Xrandr.c (that defines XRRSelectInput), SelInput.c (compare XSelectInput /XRRSelectInput), ./eventdemo.py
don't reset displays moved over edges; instead, move as far as possible
allow setting dpi
integrate related settings: (might end up writing a complete configuration manager, which is not my intention)
- xsetwacom
- gnome-panel layout (is this 1.3's --primary?)
integrate new 1.3 features (projection matrix, panning (requested in <http://forum.eee-pc.de/viewtopic.php?t=8035>))
be more intelligent about future xrandr versions (cf debian #523903)
read --props, parse edid (using parse-edid from read-edid), maybe even offer setting properties
make script properties editable (and explain what it does)
provide example scripts
- for rotation
- for setting background images?
have inactive outpus in a side bar, showing their size?
gracefully handle
- loading files describing invalid state
- naming transitions (LVDS -> LVDS1)
- unimplemented options (--right-of)
setting configuration based on hardware: this calls for two additional programs -- one that listens for hardware changes and executes a command when something changes, and one that acts on a change and sets the last used configuration with that hardware (or something else configurable). Martin Insulander suggestes this (with my comments in []):
When …
the monitor setup changes (trigger through hal or udev)
[afaik there is no such thing currently in udev; i'd rather have xrandr with a --listen / --on-change-exec option. furthermore, other mechanisms that do the same thing should be identified to avoid conflicts]
X starts
Identify all monitors through EDID
[using this is already on the todo list]
If the setup …
has been used before:
4a. Set the setup that was used last time with this configuration.
[that requires the xrandr shell scripts to have an additional line, something like "ln -sf ../$MYFILENAME > ~/.screenlayout/last_used/$HASH_OF_HARDWARE"]
Else
4b. Show a notification about new screen setup
4c. Clicking on the notification starts for example Arandr