1lavalauncher(1)                  Version 2.0.0                 lavalauncher(1)
2
3
4

NAME

6       LavaLauncher - A simple launcher panel for Wayland desktops
7

DESCRIPTION

9       LavaLauncher is a simple launcher panel for Wayland desktops.
10
11       It displays a dynamically sized bar with user defined buttons. These
12       Buttons consist of an image, which is displayed as the button icon on
13       the bar, and at least one shell command, which is executed when the
14       user activates the button.
15
16       Buttons can be activated with pointer and touch events.
17
18       A single LavaLauncher instance can provide multiple such bars, across
19       multiple outputs.
20
21       The Wayland compositor must implement the Layer-Shell and XDG-Output
22       for LavaLauncher to work.
23
24       Beware: Unlike applications launchers which are similar in visual de‐
25       sign to LavaLauncher, which are often called "docks", LavaLauncher does
26       not care about desktop files or icon themes nor does it keep track run‐
27       ning applications. Instead, LavaLaunchers approach of manually defined
28       buttons is considerably more flexible: You could have buttons not just
29       for launching applications, but for practically anything you could do
30       in your shell, like for ejecting your optical drive, rotating your
31       screen, sending your cat an email, playing a funny sound, muting all
32       audio, toggling your lamps and a lot more. Be creative!
33

OPTIONS

35       -c <path>
36           Path to the configuration file.
37
38       -h
39           Display a helpful help message and exit.
40
41       -v
42           Enable verbose output.
43

CONFIGURATION

45       LavaLauncher is configured with a configuration file.
46
47       Unless the path to a configuration file has been specified,
48       LavaLauncher tries to find a configuration file at, in decending prior‐
49       ity, "./lavalauncher.conf", "$XDG_CON‐
50       FIG_HOME/lavalauncher/lavalauncher.conf", "$HOME/.con‐
51       fig/lavalauncher/lavalauncher.conf" "/usr/lo‐
52       cal/etc/lavalauncher/lavalauncher.conf" and
53       "/etc/lavalauncher/lavalauncher.conf"
54
55       You can find an example configuration at the end of this section.
56
57   STRUCTURE
58       The configuration file has a simple structure. It consists of contexts
59       and assignments.
60
61       Assignments are always inside contexts and consist of three parts: The
62       variable to be changed, followed by the new value for the variable, and
63       finally a semicolon (';'). The value string must be separated from the
64       variable name by whitespace and may be quoted, causing LavaLauncher to
65       use it as is, including all whitespace that would otherwise be stripped
66       from the final string.
67
68       A context consist of at least three parts: The context name, followed
69       by an opening bracket, optionally contents, and finally a closing
70       bracket. All these must be separated by whitespace. Some Contexts must
71       be nested as contents of other contexts.
72
73       Comments start with an octothorpe ('#').
74
75   GLOBAL SETTINGS
76       Global settings can be configured int the "global-settings" context.
77       The assignments which can be made in this context are as follows.
78
79       watch-config-file
80           Automatically reload when a change in the configuration file is de‐
81           tected. Can be "true" or "false". The default is "false". Behold:
82           If the configuration file contains an error upon reload,
83           LavaLauncher will exit.
84
85   BAR
86       Every "bar" context will add a bar. The assignments possible in this
87       context are as follows.
88
89       alignment
90           Alignment of the buttons / bar. Can be "start", "center" or "end".
91           The default is "center".
92
93       background-colour
94           The background colour of the bar. The default is "#000000".
95
96       border
97           The border size. Expects either one integer, to set the size of all
98           borders, or four integers, to set the individual sizes for the top,
99           left, right and bottom border. The default border size is 1.
100
101       condition-resolution
102           The resolution proportions an output must have for the bar to be
103           displayed on it. Can be either "all", "wider-than-high" or "higher-
104           than-wide". The default is "all".
105
106       condition-scale
107           The scale an output must have for the bar to be displayed on it.
108           Can be either an integer greater than zero or "all". The default is
109           "all".
110
111       condition-transform
112           The rotation an output must have for the bar to be displayed on it.
113           Can be "all", 0, 1, 2 or 3. The numerical values represent rota‐
114           tions of 0, 90, 180 and 270 degrees, with the exact correspondence
115           depending on the compositor. The default is "all".
116
117       cursor-name
118           Name of the cursor displayed when hovering the pointer over the
119           bar. The default cursor is "pointer". Behold: What cursors are
120           available depends on your cursor theme.
121
122       exclusive-zone
123           Exclusive zone of the surface. Can be "true", "false" or "station‐
124           ary". If "true", the compositor is informed that it should not ob‐
125           struct the surface of LavaLauncher with other surfaces. If "false",
126           the compositor is informed that it can place other surfaces over or
127           under the surface of LavaLauncher. If "stationary", the compositor
128           is informed that the surface of LavaLauncher should not be moved to
129           accommodate other layer shell surfaces and that it can freely place
130           other surfaces over or under the surface of LavaLauncher. The de‐
131           fault is "true". The exact implementation is compositor dependant;
132           A compositor may choose to ignore the requested exclusive zone of
133           surfaces.
134
135       icon-padding
136           Padding around the icons. The default 4.
137
138       indicator-active-colour
139           The colour of the indicator for icons being activated. The default
140           is "#606060".
141
142       indicator-hover-colour
143           The colour of the indicator for icons over which the cursor hovers.
144           The default is "#404040".
145
146       indicator-padding
147           Padding around the icon indicator. The default 0.
148
149       indicator-style
150           Style of the icon indicator. Can be "rectangle", "rounded-rectan‐
151           gle" and "circle". The default is "rounded-rectangle". The corner
152           radia for "rounded-rectangle" are the same as the ones of the bar
153           itself.
154
155       layer
156           Layer of the bar surface. Can be "overlay", "top", "bottom" or
157           "background". Typically, "bottom" and "background" will be under‐
158           neath regular windows, while "top" and "overlay" will be above
159           them, however the exact placement on the z axis depends on the im‐
160           plementation of the compositor. The default layer is "bottom".
161
162       margin
163           The margin of the surface. Expects either one integer, to set the
164           margin in all directions, or four integers, to set the individual
165           top-, left-, right- and bottom-margins. The default margin is 0.
166
167       mode
168           The display mode of the bar. Can be "default", "full" or "simple".
169           In "default" mode, the bar is sized just large enough to house all
170           the buttons. Logically, the default mode is "default". In "full"
171           mode, the bar spans the entire length of the edge it is docked to.
172           "simple" mode is usually visually identical to "normal" mode, how‐
173           ever the surface of the bar is sized and anchored less aggres‐
174           sively, which may (or may not, depending on the implementation of
175           the compositor) improve how well LavaLauncher geometrically inte‐
176           grates and fits onto the desktop (and also will use less memory).
177           It gives the compositor a lot more leeway regarding the exact
178           placement of the bar. Behold: In "simple" mode, some compositors
179           may not respect margins parallel to the bar or the exclusive zone,
180           possibly even depending on the alignment. This is not a bug in
181           LavaLauncher but a limitation of your compositor.
182
183       namespace
184           The namespace of the layershell surface of the bar. Some composi‐
185           tors may treat layershell surfaces differently based on their name‐
186           space. The default is "LavaLauncher".
187
188       output
189           Name of the output on which the bar should be displayed. Output
190           names are compositor dependant. If set to "all" or "*",
191           LavaLauncher will display the bar on all outputs, which is the de‐
192           fault behaviour.
193
194       position
195           Position of the bar. Can be "top", "right", "bottom", "left". The
196           bar will dock to that edge of the output(s). The default position
197           is "bottom".
198
199       radius
200           The radius of the corners. Expects either one integer, to set the
201           radius of all corners, or four integers, to set the individual
202           radii for the top-left, top-right, bottom-left and bottom-right
203           corner. The default radius is 5. Set to 0 to disable corner round‐
204           ness.
205
206       size
207           Size of the bar. The default size is 60.
208
209   BAR COPY
210       Every "bar-copy" context will add a bar. This new bar has the same con‐
211       figuration and items as the previous bar. You can change the configura‐
212       tion and define additional items as usual. The assignments possible in
213       this context are the same as for the "bar" context.
214
215   BUTTON
216       Every "button" context will add a button to a bar. As such, this con‐
217       text is a nested inside the "bar" or "bar-copy" context. The assign‐
218       ments possible in this context are as follows.
219
220       command
221           Sets the shell command for left-, right-, middle-click and touch
222           interactions.
223
224       image-path
225           The path to an image file, which will be used as the icon of the
226           button.
227
228       left-click-command
229           The shell command executed when the user left-clicks on the button.
230
231       right-click-command
232           The shell command executed when the user right-clicks on the but‐
233           ton.
234
235       middle-click-command
236           The shell command executed when the user middle-clicks on the but‐
237           ton.
238
239       scroll-down-command
240           The shell command executed when the user scrolls down on the but‐
241           ton.
242
243       scroll-up-command
244           The shell command executed when the user scrolls up on the button.
245
246       touch-command
247           The shell command executed when the user touches the button.
248
249   SPACER
250       Every "spacer" context will add a spacer to a bar. As such, this con‐
251       text is a nested inside the "bar" or "bar-copy" context. The assign‐
252       ments possible in this context are as follows.
253
254       length
255           Length of the spacer.
256
257   COMMANDS
258       Commands are executed using sh(1).
259
260       LavaLauncher understands typical backslash escape sequences.
261
262       If the command is "exit", LavaLauncher will exit, if it is "reload",
263       LavaLauncher will reload.
264
265       LavaLauncher sets some environmental variables for the processes it
266       launches. Since all commands are executed via a shell, they can be used
267       as arguments for the commands. These variables are as follows.
268
269       $LAVALAUNCHER_OUTPUT_NAME
270           The name of the output the button has been clicked on.
271
272       $LAVALAUNCHER_OUTPUT_SCALE
273           The scale of the output the button has been clicked on.
274
275   COLOURS
276       LavaLauncher can parse hex code colours and read RGB values directly.
277
278       The supported formats are "#RRGGBB", "#RRGGBBAA", "0xRRGGBB" and "0xR‐
279       RGGBBAA" for hex code colours and "rgb(rrr,ggg,bbb)" and
280       "rgba(rrr,ggg,bbb,aaa)" for RGB colours.
281
282   CONDITIONS
283       Conditions are (re-)evaluated and bars created and destroyed accord‐
284       ingly whenever an outputs parameters are updated.
285
286       You can use conditions in combinations with the "bar-copy" feature to
287       create multiple versions of a bar for different conditions.
288
289   IMAGES
290       LavaLauncher support PNG images and, if enabled at compile time, SVG
291       images. It is recommended to use square images.
292
293   EXAMPLE CONFIGURATION
294       This is an example configuration which defines two bars.
295
296           global-settings
297           {
298                watch-config-file true;
299           }
300
301           bar # this is the first bar
302           {
303                output eDP-1;
304                position bottom;
305                background-colour "#202020";
306
307                button
308                {
309                     image-path /path/to/image.png;
310                     command    useful-script.sh;
311                }
312
313                button
314                {
315                     image-path "/path/to/another/image.png";
316                     command    "another-useful-script.sh";
317                }
318           }
319
320           bar # this is the second bar
321           {
322                output all;
323
324                button
325                {
326                     image-path "/path/to/a/third/image.png";
327                     command    "do-something"
328                }
329           }
330

BUGS

332       Probably.
333
334       Please report all bugs you find with an explanation how to reproduce
335       them.
336

MAILINGLIST

338       You can send bug reports, patches and feedback to the mailinglist.
339
340       <~leon_plickat/lavalauncher@lists.sr.ht>
341

GIT

343       This project is developed using git. You can find the repository by
344       visiting the following URL.
345
346       <https://git.sr.ht/~leon_plickat/lavalauncher>
347

AUTHORS

349       Leon Henrik Plickat <leonhenrik.plickat@stud.uni-goettingen.de>
350
351
352
353Version 2.0.0                     2021-01-26                   lavalauncher(1)
Impressum