1DISPER(1) User Commands DISPER(1)
2
3
4
6 disper - on-the-fly display switcher
7
9 disper [options] (-l|-s|-c|-e|-p|-i)
10
12 Disper re-routes your screen output to one or more connected displays.
13 For example when giving a presentation, all one wants is that the
14 beamer, which has just been connected, is able to show whatever you
15 prepared.
16
17 There is the option to either clone all detected displays, or extend
18 the desktop to them. Resolutions are automatically detected by default.
19 For cloning, the highest resolution supported by all displays devices
20 is chosen; for extending every display device gets its preferred or
21 highest supported resolution. For special setups requiring more
22 detailed control, one can still use the vendor-supplied display config‐
23 uration utilities.
24
26 --version
27 show program's version number and exit
28
29 -h, --help
30 show this help message and exit
31
32 -v, --verbose
33 show what's happening
34
35 -q, --quiet
36 be quiet and only show errors
37
38 -r RESOLUTION, --resolution=RESOLUTION
39 set resolution, e.g. "800x600", or "auto" to detect the dis‐
40 play's preferred resolution, "max" to use the maximum resolution
41 advertised, or "off" to disable the display entirely. For extend
42 it is possible to enter a single resolution for all displays or
43 a commaseparated list of resolutions (one for each display).
44 Beware that many displays advertise resolutions they can not
45 fully show, so "max" is not advised.
46
47 -d DISPLAYS, --displays=DISPLAYS
48 comma-separated list of displays to operate on, or "auto" to
49 detect; the first is the primary display.
50
51 -t DIRECTION, --direction=DIRECTION
52 where to extend displays: "left", "right", "top", or "bottom"
53
54 --scaling=SCALING
55 flat-panel scaling mode: "default", "native", "scaled", "cen‐
56 tered", or "aspect-scaled"
57
58 --plugins=PLUGINS
59 comma-separated list of plugins to enable. Special names: "user"
60 for all user plugins in ~/.config/disper/hooks; "all" for all
61 plugins found; "none" for no plugins.
62
63 --cycle-stages=CYCLE_STAGES
64 colon-separated list command-line arguments to cycle through;
65 "-S:-c:-s" by default
66
68 Select exactly one of the following actions
69
70 -l, --list
71 list the attached displays
72
73 -s, --single
74 only enable the primary display
75
76 -S, --secondary
77 only enable the secondary display
78
79 -c, --clone
80 clone displays
81
82 -e, --extend
83 extend displays
84
85 -p, --export
86 export current settings to standard output
87
88 -i, --import
89 import current settings from standard input
90
91 -C, --cycle
92 cycle through the list of cycle stages
93
95 There is a possibility to cycle between different setups with a single
96 disper invocation using the option --cycle. The options to cycle
97 through are specified by the option --cycle-stages, which consists of a
98 colon-separated list of disper options. To alternate, for example,
99 between clone and extend, one could use
100 disper --cycle-stages='-e : -c' --cycle
101 Currently the last selected stage is stored in the file $XDG_CON‐
102 FIG_HOME/disper/last_cycle_stage (actually the file last_cycle_stage in
103 the directory of the last configuration file read). This means that
104 when display configuration is modified by something else than disper
105 (for example by restarting the computer), cycling will continue from
106 where it was last time, not necessarily from the current display con‐
107 figuration. This is something that may change in the future.
108
110 It is possible to execute user-supplied hooks on display switch, for
111 example to display a notification or change the wallpaper. Which ones
112 are enabled is specified by the --plugins option. System hooks are
113 located in /usr/share/disper/hooks/ while user hooks should be placed
114 in $XDG_CONFIG_HOME/disper/hooks (or ~/.config/disper/hooks/ or ~/.dis‐
115 per/hooks/).
116
117 Each hook is an executable file (which includes scripts). The following
118 environment variables are available when invoked:
119
120 DISPER_VERSION
121 Version of disper (0.3.1).
122
123 DISPER_LOG_LEVEL
124 Log level: 0 (quiet), 1 (normal) or 2 (verbose).
125
126 DISPER_STAGE
127 Execution stage: prepare or switch. Most plugins will only need
128 to act on the switch stage, which is just after the display
129 switch has happened. Please make sure to execute an action only
130 on switch for future compatibility. (There are ideas for import
131 and export as well.)
132
133 DISPER_DISPLAYS
134 Space-separated list of displays that have output. These names
135 may be slightly different from what disper uses internally
136 because they have to be valid environment variable names. (e.g.
137 DFP_0 CRT_0)
138
139 DISPER_LAYOUT
140 One of: clone, top, right, bottom or left.
141
142 DISPER_BB_RESOLUTION
143 Size of full bounding box (e.g. 1024x768).
144
145 For each of DISPER_DISPLAYS the resolution of the corresponding display
146 is supplied as well. If only DFP-0 would be attached, DISPER_DISPLAYS
147 would contain just DFP_0 and the following variables would be set as
148 well:
149
150 DISPER_RESOLUTION_DFP_0
151 Resolution of display DFP-0 (e.g. 1024x768).
152
153 If you want to write your own hook you can also look at the ones sup‐
154 plied with disper in /usr/share/disper/hooks/.
155
157 $XDG_CONFIG_HOME/disper/config or ~/.config/disper/config or ~/.dis‐
158 per/config
159 Default command-line options to include at each disper invoca‐
160 tion. Multiple lines are concatenated, and lines starting with #
161 are ignored. A typical example might include:
162 # enable all plugins in ~/.config/disper/hooks
163 --plugins=user
164 # cycle over clone and extend
165 --cycle-stages='-c : -e'
166 $XDG_CONFIG_HOME/disper/hooks/ or ~/.config/disper/hooks/ or ~/.dis‐
167 per/hooks/
168 Directory containing user hooks. These can be enabled with the
169 --plugins option.
170 /usr/share/disper/hooks/
171 Directory containing system hooks. User hooks take preference of
172 system hooks or plugins.
173
175 Written by Willem van Engen.
176
178 xrandr(1), nvidia-settings(1)
179
180
181
182disper 0.3.1 January 2019 DISPER(1)