1
* add option to make layout default on startup by means of desktop environment integration
2
* 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
3
* call xrandr without blocking
4
* receive notifications on changes (XRRScreenChangeNotify)
5
6
    * 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
7
8
* don't reset displays moved over edges; instead, move as far as possible
9
* allow setting dpi
10
* integrate related settings: (might end up writing a complete configuration manager, which is not my intention)
11
12
    * xsetwacom
13
    * gnome-panel layout (is this 1.3's --primary?)
14
15
* integrate new 1.3 features (projection matrix, panning (requested in <http://forum.eee-pc.de/viewtopic.php?t=8035>))
16
17
    * getting the matrix right manually can be difficult. zbar since 0.10 provides recognition for qr codes; plan is like this:
18
19
       1. user starts arandr
20
       2. user connects webcam
21
       3. arandr makes displays show qr codes with their names
22
       4. user holds webcam where his head is
23
       5. arandr knows what he sees and can position displays and offer to apply a matrix
24
25
* be more intelligent about future xrandr versions (cf debian #523903)
26
* read --props, parse edid (using parse-edid from read-edid; dispcalGUI has dispcalGUI/edid.py with a parse_edid that just works), maybe even offer setting properties
27
* make script properties editable (and explain what it does)
28
* provide example scripts
29
30
    * for rotation
31
    * for setting background images?
32
33
* have inactive outpus in a side bar, showing their size?
34
* gracefully handle
35
36
    * loading files describing invalid state
37
    * naming transitions (LVDS -> LVDS1)
38
    * unimplemented options (--right-of)
39
40
* 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 *[]*):
41
42
  ..
43
44
    1. When …
45
46
        a) the monitor setup changes (trigger through hal or udev)
47
48
            *[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]*
49
50
        b) X starts
51
52
    2. Identify all monitors through EDID
53
54
        *[using this is already on the todo list]*
55
56
    3. If the setup …
57
58
        a) has been used before:
59
60
           4a. Set the setup that was used last time with this configuration.
61
62
                *[that requires the xrandr shell scripts to have an additional line, something like "ln -sf ../$MYFILENAME > ~/.screenlayout/last_used/$HASH_OF_HARDWARE"]*
63
64
        b) Else
65
66
           4b. Show a notification about new screen setup
67
68
           4c. Clicking on the notification starts for example Arandr
69
70
* integrate xvattr for mirror mode (cf http://wiki.debian.org/XStrikeForce/HowToRandR12 section "XV Overlay on only one display") -- but is this still alive at all?
71
* integrate --randr-display in gui configuration and add more options than "DISPLAY=${} xrandr" (for example "ssh some-server xrandr", maybe even with zeroconf detection of ssh hosts, but i digress)
72
* rewrite parser to --verbose
73
* use distutils translation build system instead of custom one (compare hotot package)
74
* debian packaging: use dh_python2 (/ dh_python3) instead of python-support