7 awesomerc - Configuration file for the 'awesome window manager'
16 <item> [<argument>] { <option> = <value>, ... }
27 The awesomerc file contains configuration informations for *awesome*. It can
28 be used to configure the behaviour and look of awesome in a variety of ways.
30 It is read at startup.
34 awesomerc contains 4 global sections: *screen*, *rules*, *keys* and *mouse* which
39 This is the global section for a physical screen. It must have a title with screen number,
40 starting at 0. It contains several subsections, which are *general*, *tags*, *layouts*, *colors*,
41 *padding* and *statusbar*.
45 General is a section containing some general options for this screen.
48 This defines the window borders size in pixel.
50 This defines the general font used in awesome.
52 If this is set to true, new windows will become the master window.
54 If this is set to true, new windows will get focus.
56 If this is set to true, non-focused windows will have this opacity.
57 This requires an external XComposite manager.
59 If this is set to true, resize hints given by the window will be respected.
60 If this is set to false, window size will be forced.
61 If you dislike gaps between windows, you should try to set it to false.
63 If this is set to true, focus will be set to the window under the mouse. If not,
64 you will have to click on a window to set it focused.
66 If this is set to true with sloppy_focus, when a window is focused with the mouse
67 it will be raised on top of the windows stack.
69 Snap windows to the screen border when it is this pixel away only from the border.
71 Select the floating placement algorithm to use when placing window.
75 Tags is a section containing one or more tag sections, which defines a tag.
79 Tag is a section which contains several options defining a tag.
82 Layout is a name of an available layout which will be set by default on this tag.
84 Set the default master width factor for this tag.
86 Set the default number of columns for non-master windows for this tag.
88 Set the default number of windows which will be treated as master for this tag.
92 Layouts is a section containing a layout list, where each layout is a layout section.
96 Layout is a section which define a layout. It has a title which is the algorithm to use.
99 Set the image path used to describe this layouts, useful in layoutinfo widget.
103 Colors is a section containing the color parameters.
106 Set the normal foreground color.
108 Set the normal background color.
110 Set the unfocused window's border color.
112 Set the focused foreground color.
114 Set the focused background color.
116 Set the focused window's border color.
118 Set the foreground color to use for urgent flag. This is mostly useful
119 with the taglist widget which will use this color whenever a window sets its
120 XUrgencyHint on a non-visible tag.
122 Set the background color to use for urgent flag.
126 Padding is a section containing screen padding parameters.
129 Set the top padding in pixel.
131 Set the bottom padding in pixel.
133 Set the left padding in pixel.
135 Set the right padding in pixel.
139 Statusbar are sections containing statusbars parameters. Each statusbar section
140 must have a title which is the statusbar name. Each statusbar can have none or
141 several widgets (see WIDGETS section for more details) each one identified by its
145 Default statusbar position.
147 Statusbar height. By default, is auto computed with font size.
149 Statusbar width. By default, it will be whole screen.
153 Rules is a section containing a rule list to automatically configure windows.
157 Rule are sections containing the auto-configuration options for one window.
160 Set the window name for name matching as a regular expression.
162 Set the name of the XProperty for XProperty matching.
164 Set the regular expression to match against the named XProperty's value.
166 Set the window to be floating. One of auto, true or false. Defaults to auto.
168 Set the window to be the master. One of auto, true or false. Defaults to
171 Set the tags to be assigned to the window as a regular expression.
173 Set the screen the window should show up on.
175 Set the window's icon.
177 Set the window's opacity.
181 Keys is the section to define your keybindings in. It may consist of multiple
182 key and keylist entries.
186 In a key section you define a single keybinding.
189 The keysym you want to bind.
191 Modifiers that need to be pressed for this binding.
193 The *uicb function* to call.
195 The argument to the *uicb function*, if needed.
199 In a keylist you can define multiple very similar keybindings at once. For
200 example you can define <Mod1>-{1..9} to switch the view to tag 1..9
204 The list of keysyms to bind.
206 Modifiers that need to be pressed for these bindings.
208 The *uicb function* to call.
210 The list of arguments to the *uicb function*, if needed. *Must* match the
215 In the mouse section you may define mouse button bindings for the root and
220 Defines a mouse button binding for events on clients.
223 The mouse button you want to bind.
225 Modifiers that need to be pressed for this binding.
227 The *uicb function* to call.
229 The argument to the *uicb function*, if needed.
233 Defines a mouse button binding for events on the root window.
236 The mouse button you want to bind.
238 Modifiers that need to be pressed for this binding.
240 The *uicb function* to call.
242 The argument to the *uicb function*, if needed.
247 In awesome, a lot of *functions* are available. These functions are called
248 uicb (User Interface Call Backs). Each function can be bound to a key shortcut
254 This function quits awesome.
255 *statusbar_toggle* statusbar-identifier::
256 Hide or show statusbar (with no argument, toggle all).
258 Execute an external program.
260 Replace awesome with another window manager (or itself; i.e. reload config).
261 *widget_tell* widget-identifier data::
262 Feed information to your widgets.
267 Closes the focused client.
268 *client_moveresize* x y width height::
269 Dynamically move and resize floating windows.
270 Coordinates can be relative or absolute. Relative values must begin with + or -.
271 E.g: to move a window 10 pixels up: "+0 \+10 +0 +0" To move a window
272 in the upper left corner and increase its width by 10px: "0 0 \+0 +10"
273 *client_settrans* float::
274 Set client transparency, number can be a relative or absolute floating number in percentage.
276 Swap window placement with the next displayed window.
278 Swap window placement with the previous displayed window.
282 Focus previous window.
284 Set window fullscreen. Calling this function another time will reset the window to its previous state.
285 *client_togglehorizontalmax*::
286 Set window's horizontal size to display width. Calling another time will reset the window to its previous state.
287 *client_toggleverticalmax*::
288 Set window's vertical size to display height. Calling another time will reset the window to its previous state.
289 *client_togglefloating*::
290 Set window floating or tiled.
292 Set window as master window.
293 *client_movetoscreen* relative or absolute integer::
294 Move focused window to the nth screen, or next (+1) or previous (-1). If no screen_number is set, move to the next screen.
295 *client_tag* tag number::
296 Tag focused window with this tag.
298 Add or remove tag to focused window.
300 Move client window with mouse.
301 *client_resizemouse*::
302 Resize client window with mouse.
303 *client_setscratch*::
304 Set or unset client as being the scratch window.
305 *client_togglescratch*::
306 Toggle scratch window.
310 *tag_setlayout* relative or absolute integer::
311 Set layout number; or just switch to the next layout for current tag.
312 *tag_toggleview* tag::
313 Add windows tagged with tag number to current display.
314 *tag_view* tag number::
315 View windows tagged with tag number.
317 Show windows tagged with next tag in list.
319 Show windows tagged with previous tag in list.
320 *tag_prev_selected*::
321 Switch back to the previously displayed set of tags.
322 *tag_setmwfact* relative or absolute float::
323 Set master width factor.
324 *tag_setncol* relative or absolute integer::
325 Set number of columns for non-master windows.
326 *tag_setnmaster* relative or absolute integer::
327 Set number of master windows.
329 Create a new tag with that name.
333 *focus_client_byname* string::
334 Give client focus by its name.
335 *focus_history* negative number::
336 Focus the client that had focused nth focus switch earlier.
340 *screen_focus* relative or absolute integer::
341 Select Screen and focus first window and move mouse.
345 Statusbars can be customized by modifying widgets names, order and options.
349 This widget shows the tag list.
354 Horizontal offset (auto-alignment if not set).
356 Vertical offset (auto-alignment if not set).
362 This widget shows a icon for the selected layout.
367 Horizontal offset (auto-alignment if not set).
369 Vertical offset (auto-alignment if not set).
375 This widget shows a icon for the focused window using NET_WM_ICON or icon file set in rule.
380 Horizontal offset (auto-alignment if not set).
382 Vertical offset (auto-alignment if not set).
388 This widget shows a list of running windows.
399 Background color for focused window.
401 Foreground color for focused window.
405 Show applications icons.
407 Show all windows from all tags, tags clients only or focused client.
409 Horizontal offset (auto-alignment if not set).
411 Vertical offset (auto-alignment if not set).
415 This widget shows a text.
432 Horizontal offset (auto-alignment if not set).
434 Vertical offset (auto-alignment if not set).
440 This widget shows an icon.
447 Resize icon to fit into statusbar.
449 Horizontal offset (auto-alignment if not set).
451 Vertical offset (auto-alignment if not set).
457 This widget shows one or more progress-bars.
460 Draws a bar for each data section;
461 Options: reverse, fg, fg_center, fg_end, bg, bordercolor.
463 Reverse/mirror the bar.
467 Foreground color in the center of the bar (as gradient).
469 Foreground color at the end of a bar (as gradient).
479 Set height (i.e. 0.9 = 90%)
481 Empty space on both sides.
483 Draw the bar(s) vertically/standing up.
485 Horizontal offset (auto-alignment if not set).
487 Vertical offset (auto-alignment if not set).
493 This widget shows a graph.
496 Defines a data-stream section;
497 Options: max, scale, fg, fg_center, fg_end and style.
499 This value prints a full graph (default = 100)
501 Re-scales when input > max (see below).
505 Foreground color in the center of the bar (as gradient).
507 Foreground color at the end of a bar (as gradient).
509 If true, create a gradient from 0 > full instead of new > old values
511 bottom (fills to bottom with fg), top, or line.
517 Set height (i.e. 0.9 = 90%)
519 Empty space on the left.
525 Horizontal offset (auto-alignment if not set).
527 Vertical offset (auto-alignment if not set).
533 Here is the global configuration file format, with a list of options
536 ..............................................
537 Note: when there is no whitespace, quotes are optional.
539 <boolean> -> "true" or "false"
540 <color> -> #ff9933 (hexadecimal color notation: #red green blue)
541 <float> -> 0.3, 0,8 (often values between 0 and 1 are useful)
542 <font> -> Xft font: mono-10, fixed-12, sans-8, ...
543 <identifier> -> foobar (choose a name/string)
544 <image> -> "/home/awesome/pics/icon.png" (path to image)
545 <integer> -> 1, 10, -3 (positive numbers are required mostly)
546 <key> -> a, 1, F10 (see /usr/include/X11/keysymdef.h w/o XK_ or 'xev')
547 or a keycode beginning with #
548 <mod> -> "Mod1", "Mod4", "Control" (modifiers)
549 <regex> -> regular expression
550 <string> -> "foo bar"
551 <uicb-arg> -> prog, 3... (argument to a uicb function, where required)
552 <uicb-cmd> -> spawn, exec, client_tag... (see UICB FUNCTIONS above)
553 <{.., ...}> -> list of available options
555 [MULTI] means, you can use an item multiple times.
559 screen <integer> [MULTI]
565 new_become_master = <boolean>
566 new_get_focus = <boolean>
567 opacity_unfocused = <integer>
568 resize_hints = <boolean>
569 sloppy_focus = <boolean>
570 sloppy_focus_raise = <boolean>
572 floating_placement = <{smart,under_mouse}>
573 text_shadow_offset = <int>
574 mwfact_lower_limit = <float>
575 mwfact_upper_limit = <float>
579 tag <identifier> [MULTI]
581 layout = <{dwindle,floating,max,
582 spiral,tile,tileleft,tilebottom,tiletop}>
590 layout <{dwindle,floating,max,
591 spiral,tile,tileleft,
592 tilebottom,tiletop}> { image = <image> } [MULTI]
598 normal_border = <color>
601 focus_border = <color>
612 statusbar <identifier> [MULTI]
614 position = <{top,bottom,left,right}>
618 taglist <identifier> [MULTI]
620 x = <integer> y = <integer>
621 align = <{auto,right,left}>
624 button = <integer> modkey = {<mod>, ...}
625 command = <uicb-cmd> arg = <uicb-arg>
628 layoutinfo <identifier>
630 x = <integer> y = <integer>
631 align = <{auto,right,left}>
634 button = <integer> modkey = {<mod>, ...}
635 command = <uicb-cmd> arg = <uicb-arg>
638 focusicon <identifier>
640 x = <integer> y = <integer>
641 align = <{auto,right,left}>
644 button = <integer> modkey = {<mod>, ...}
645 command = <uicb-cmd> arg = <uicb-arg>
648 tasklist <identifier>
655 show_icons = <boolean>
656 show = <{all,tags,focus}>
657 text_align = <{center,left,right}>
658 x = <integer> y = <integer>
661 command = <uicb-cmd> arg = <uicb-arg>
662 button = <integer> modkey = {<mod>, ...}
665 textbox <identifier> [MULTI]
672 text_align = <{center,left,right}>
673 x = <integer> y = <integer>
674 align = <{auto,right,left}>
677 button = <integer> modkey = {<mod>, ...}
678 command = <uicb-cmd> arg = <uicb-arg>
681 iconbox <identifier> [MULTI]
685 x = <integer> y = <integer>
686 align = <{auto,right,left}>
689 button = <integer> modkey = {<mod>, ...}
690 command = <uicb-cmd> arg = <uicb-arg>
693 progressbar <identifier> [MULTI]
697 reverse = <boolean> bg = <color> bordercolor = <color>
698 fg = <color> fg_center = <color> fg_end = <color>
705 x = <integer> y = <integer>
706 align = <{auto,right,left}>
709 button = <integer> modkey = {<mod>, ...}
710 command = <uicb-cmd> arg = <uicb-arg>
713 graph <identifier> [MULTI]
717 scale = <boolean> max = <float> style = <{bottom, top, line}>
718 fg = <color> fg_center = <color> fg_end = <color>
719 vertical_gradient = <boolean>
723 padding_left = <integer>
725 bordercolor = <color>
726 x = <integer> y = <integer>
727 align = <{auto,right,left}>
730 button = <integer> modkey = {<mod>, ...}
731 command = <uicb-cmd> arg = <uicb-arg>
741 xproperty_name = <string>
742 xproperty_value = <regex>
743 float = <{auto,true,false}>
744 master = <{auto,true,false}>
755 key = <key> modkey = {<mod>, ...}
756 command = <uicb-cmd> arg = <uicb-arg>
760 keylist = {<key>, ...}
761 modkey = {<mod>, ...}
763 arglist = {<uicb-arg>, ...}
770 button = <integer> modkey = {<mod>, ...}
771 command = <uicb-cmd> arg = <uicb-arg>
775 button = <integer> modkey = {<mod>, ...}
776 command = <uicb-cmd> arg = <uicb-arg>
779 ..............................................
784 Check awesome's wiki: http://awesome.naquadah.org/wiki/
786 Simple textbox example
787 ~~~~~~~~~~~~~~~~~~~~~~
788 ..............................................
789 1. Add an include directive into ~/.awesomerc
792 include(~/.awesome/bottom-status-bar)
794 2. Create ~/.awesome/bottom-status-bar
802 3. Check the configuration file for errors
805 Configuration file OK.
807 Note: If you see anything other than "Configuration file OK." you have a
810 4. Create ~/bin/awesome-clock
815 echo "0 widget_tell clock text `date`"
816 echo "" # an empty line flushes data inside awesome
818 done | awesome-client
820 Note: What we're saying is "awesome-client, tell widget 'clock' to set
821 it's 'text' property to date's output".
823 5. Make your ~/bin/awesome-clock executable
825 $ chmod a+x ~/bin/awesome-clock
829 ~/bin/awesome-clock &
834 8. If your didn't get what you were expecting, take a look at
835 ~/.xsession-errors or the terminal where X got started.
836 ..............................................
838 Simple progressbar example
839 ~~~~~~~~~~~~~~~~~~~~~~~~~~
840 ..............................................
842 1. Add an include directive into ~/.awesomerc
846 include(~/.awesome/bottom-status-bar)
849 2. Create ~/.awesome/bottom-status-bar
851 progressbar diskusage
855 bordercolor = "#006e96"
858 fg_center = "#daaf0a"
865 3. Check the configuration file for errors
868 Configuration file OK.
870 Note: If you see anything other than "Configuration file OK," you have a
873 4. Create ~/bin/awesome-diskusage
877 usage = `df /dev/sda5 | awk '/\/dev\/sda5/ { print 100-$5 }'`
878 echo "0 widget_tell diskusage data disk ${usage}"
879 echo "" # an empty line flushes data inside awesome
881 done | awesome-client
884 Note: What we're saying is "awesome-client, tell widget 'diskusage' to
885 set it's 'data' property named 'disk' to ${usage}."
887 5. Make ~/bin/awesome-diskusage executable
889 $ chmod a+x ~/bin/awesome-diskusage
893 ~/bin/awesome-diskusage &
898 8. If your didn't get what you were expecting, take a look at
899 ~/.xsession-errors or the terminal where X got started.
900 ..............................................
905 awesome(1) awesome-client(1)
910 This man page was written by Julien Danjou <julien@danjou.info>, Marco Candrian <mac@calmar.ws>
911 and Chris Ciulla <chris.ciulla@gmail.com> (Simple Examples).
915 http://awesome.naquadah.org