[titlebar] Collapse titlebar to windows even if we do not resize it
[awesome.git] / awesomerc.5.txt
blobc1f0f2294573bfe5738b1b2cc441210009123362
1 awesomerc(5)
2 ===========
4 NAME
5 ----
7 awesomerc - Configuration file for the 'awesome window manager'
9 SYNOPSIS
10 --------
12 <item> [<argument>]
14     <option> = <value>
16     <item> [<argument>] { <option> = <value>, ... }
17     ....
20 <option> = <value>
22 include(file.conf)
24 DESCRIPTION
25 -----------
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.
32 OPTIONS
33 --------
34 awesomerc contains 4 global sections: *screen*, *rules*, *keys* and *mouse* which
35 are described here.
37 screen
38 ~~~~~~
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*, *styles*,
41 *padding* and *statusbar*.
43 general
44 ^^^^^^^
45 General is a section containing some general options for this screen.
47 titlebar::
48     This section defines the parameters of the windows titlebar.
49 border::
50     This defines the window borders size in pixel.
51 new_become_master::
52     If this is set to true, new windows will become the master window.
53 new_get_focus::
54     If this is set to true, new windows will get focus.
55 opacity_unfocused::
56     If this is set to a float value between 0 and 1, non-focused windows will have this opacity.
57     This requires an external XComposite manager.
58 opacity_focused::
59     If this is set to a float value between 0 and 1, focused windows will have this opacity.
60     This requires an external XComposite manager.
61 resize_hints::
62     If this is set to true, resize hints given by the window will be respected.
63     If this is set to false, window size will be forced.
64     If you dislike gaps between windows, you should try to set it to false.
65 sloppy_focus::
66     If this is set to true, focus will be set to the window under the mouse. If not,
67     you will have to click on a window to set it focused.
68 sloppy_focus_raise::
69     If this is set to true with sloppy_focus, when a window is focused with the mouse
70     it will be raised on top of the windows stack.
71 snap::
72     Snap windows to the screen border when it is this pixel away only from the border.
73 floating_placement::
74     Select the floating placement algorithm to use when placing window.
75     
76 tags
77 ^^^^
78 Tags is a section containing one or more tag sections, which defines a tag.
80 tag
81 +++
82 Tag is a section which contains several options defining a tag.
84 layout::
85     Layout is a name of an available layout which will be set by default on this tag.
86 mwfact::
87     Set the default master width factor for this tag.
88 ncol::
89     Set the default number of columns for non-master windows for this tag.
90 nmaster::
91     Set the default number of windows which will be treated as master for this tag.
93 layouts
94 ^^^^^^^
95 Layouts is a section containing a layout list, where each layout is a layout section.
97 layout
98 ++++++
99 Layout is a section which define a layout. It has a title which is the algorithm to use.
101 image::
102     Set the image path used to describe this layouts, useful in layoutinfo widget.
104 styles
105 ^^^^^^
106 Styles is a section containing the style parameters which is composed of a normal, focus and urgent
107 subsection each ones containing:
109 font::
110     The font to use.
111 fg::
112     Set the foreground color.
113 bg::
114     Set the background color.
115 border::
116     Set the window's border color.
117 shadow::
118     Set the shadow color.
119 shadow_offset::
120     Set the shadow offset in pixel.
122 padding
123 ^^^^^^^
124 Padding is a section containing screen padding parameters.
126 top::
127     Set the top padding in pixel.
128 bottom::
129     Set the bottom padding in pixel.
130 left::
131     Set the left padding in pixel.
132 right::
133     Set the right padding in pixel.
135 statusbar
136 ^^^^^^^^^
137 Statusbar are sections containing statusbars parameters. Each statusbar section
138 must have a title which is the statusbar name. Each statusbar can have none or
139 several widgets (see WIDGETS section for more details) each one identified by its
140 name.
142 position::
143     Default statusbar position.
144 height::
145     Statusbar height. By default, is auto computed with font size.
146 width::
147     Statusbar width. By default, it will be whole screen.
149 rules
150 ~~~~~
151 Rules is a section containing a rule list to automatically configure windows.
153 rule
154 ^^^^
155 Rule are sections containing the auto-configuration options for one window.
157 name::
158     Set the window name for name matching as a regular expression.
159 xproperty_name::
160     Set the name of the XProperty for XProperty matching.
161 xproperty_value::
162     Set the regular expression to match against the named XProperty's value.
163 float::
164     Set the window to be floating. One of auto, true or false. Defaults to auto.
165 master::
166     Set the window to be the master. One of auto, true or false. Defaults to
167     auto.
168 tags::
169     Set the tags to be assigned to the window as a regular expression.
170 screen::
171     Set the screen the window should show up on.
172 icon::
173     Set the window's icon.
174 opacity::
175     Set the window's opacity.
177 keys
178 ~~~~
179 Keys is the section to define your keybindings in. It may consist of multiple
180 key and keylist entries.
184 In a key section you define a single keybinding.
186 key::
187     The keysym you want to bind.
188 mod::
189     Modifiers that need to be pressed for this binding.
190 command::
191     The *uicb function* to call.
192 arg::
193     The argument to the *uicb function*, if needed.
195 keylist
196 ^^^^^^^
197 In a keylist you can define multiple very similar keybindings at once. For
198 example you can define <Mod1>-{1..9} to switch the view to tag 1..9
199 respectively.
201 keylist::
202     The list of keysyms to bind.
203 modkey::
204     Modifiers that need to be pressed for these bindings.
205 command::
206     The *uicb function* to call.
207 arglist::
208     The list of arguments to the *uicb function*, if needed. *Must* match the
209     length of *keylist*.
211 mouse
212 ~~~~~
213 In the mouse section you may define mouse button bindings for the root and
214 client windows.
216 client
217 ^^^^^^
218 Defines a mouse button binding for events on clients.
220 button::
221     The mouse button you want to bind.
222 modkey::
223     Modifiers that need to be pressed for this binding.
224 command::
225     The *uicb function* to call.
226 arg::
227     The argument to the *uicb function*, if needed.
229 root
230 ^^^^
231 Defines a mouse button binding for events on the root window.
233 button::
234     The mouse button you want to bind.
235 modkey::
236     Modifiers that need to be pressed for this binding.
237 command::
238     The *uicb function* to call.
239 arg::
240     The argument to the *uicb function*, if needed.
242 UICB FUNCTIONS
243 --------------
245 In awesome, a lot of *functions* are available. These functions are called
246 uicb (User Interface Call Backs). Each function can be bound to a key shortcut
247 or a mouse button.
249 General
250 ~~~~~~~
251 *quit*::
252     This function quits awesome.
253 *statusbar_toggle* statusbar-identifier::
254     Hide or show statusbar (with no argument, toggle all).
255 *spawn* client::
256     Execute an external program.
257 *exec* program::
258     Replace awesome with another window manager.
259 *restart*::
260     Restart awesome.
261 *widget_tell* widget-identifier data::
262     Feed information to your widgets.
264 Client
265 ~~~~~~
266 *client_kill*::
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.
275 *client_swapnext*::
276     Swap window placement with the next displayed window.
277 *client_swapprev*::
278     Swap window placement with the previous displayed window.
279 *client_focusnext*::
280     Focus next window.
281 *client_focusprev*::
282     Focus previous window.
283 *client_togglemax*::
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.
291 *client_zoom*::
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.
297 *client_toggletag*::
298     Add or remove tag to focused window.
299 *client_movemouse*::
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.
307 *client_toggletitlebar*::
308     Toggle window titlebar.
312 *tag_setlayout* relative or absolute integer::
313     Set layout number; or just switch to the next layout for current tag.
314 *tag_toggleview* tag::
315     Add windows tagged with tag number to current display.
316 *tag_view* tag number::
317     View windows tagged with tag number.
318 *tag_viewnext*::
319     Show windows tagged with next tag in list.
320 *tag_viewprev*::
321     Show windows tagged with previous tag in list.
322 *tag_prev_selected*::
323     Switch back to the previously displayed set of tags.
324 *tag_setmwfact* relative or absolute float::
325     Set master width factor.
326 *tag_setncol* relative or absolute integer::
327     Set number of columns for non-master windows.
328 *tag_setnmaster* relative or absolute integer::
329     Set number of master windows.
330 *tag_create* name::
331     Create a new tag with that name.
333 Focus
334 ~~~~~
335 *focus_client_byname* string::
336     Give client focus by its name.
337 *focus_history* negative number::
338     Focus the client that had focused nth focus switch earlier.
340 Screen
341 ~~~~~~
342 *screen_focus* relative or absolute integer::
343     Select Screen and focus first window and move mouse.
345 WIDGETS
346 -------
347 Statusbars can be customized by modifying widgets names, order and options.
349 taglist
350 ~~~~~~~
351 This widget shows the tag list.
353 *mouse*::
354     Set mouse bindings.
355 *x*::
356     Horizontal offset (auto-alignment if not set).
357 *y*::
358     Vertical offset (auto-alignment if not set).
359 *align*::
360     Widget alignment.
362 layoutinfo
363 ~~~~~~~~~~
364 This widget shows a icon for the selected layout.
366 *mouse*::
367     Set mouse bindings.
368 *x*::
369     Horizontal offset (auto-alignment if not set).
370 *y*::
371     Vertical offset (auto-alignment if not set).
372 *align*::
373     Widget alignment.
375 focusicon
376 ~~~~~~~~~
377 This widget shows a icon for the focused window  using NET_WM_ICON or icon file set in rule.
379 *mouse*::
380     Set mouse bindings.
381 *x*::
382     Horizontal offset (auto-alignment if not set).
383 *y*::
384     Vertical offset (auto-alignment if not set).
385 *align*::
386     Widget alignment.
388 tasklist
389 ~~~~~~~~
390 This widget shows a list of running windows.
392 *mouse*::
393     Set mouse bindings.
394 *styles*::
395     Style section with normal, focus and urgent subsections.
396 *text_align*::
397     Text alignement.
398 *show_icons*::
399     Show applications icons.
400 *show*::
401     Show all windows from all tags, tags clients only or focused client.
402 *x*::
403     Horizontal offset (auto-alignment if not set).
404 *y*::
405     Vertical offset (auto-alignment if not set).
407 textbox
408 ~~~~~~~
409 This widget shows a text.
411 *mouse*::
412     Set mouse bindings.
413 *width*::
414     Set width.
415 *style*::
416     Style section with <style section>
417 *text*::
418     Text to change.
419 *text_align*::
420     Text alignement.
421 *x*::
422     Horizontal offset (auto-alignment if not set).
423 *y*::
424     Vertical offset (auto-alignment if not set).
425 *align*::
426     Widget alignment.
428 iconbox
429 ~~~~~~~
430 This widget shows an icon.
432 *mouse*::
433     Set mouse bindings.
434 *image*::
435     Image file.
436 *resize*::
437     Resize icon to fit into statusbar.
438 *x*::
439     Horizontal offset (auto-alignment if not set).
440 *y*::
441     Vertical offset (auto-alignment if not set).
442 *align*::
443     Widget alignment.
445 progressbar
446 ~~~~~~~~~~~
447 This widget shows one or more progress-bars.
449 *data*::
450     Draws a bar for each data section;
451     Options: reverse, fg, fg_center, fg_end, fg_off, bg, bordercolor.
452 *reverse*::
453     Reverse/mirror the bar.
454 *fg*::
455     Foreground color.
456 *fg_center*::
457     Foreground color in the center of the bar (as gradient).
458 *fg_end*::
459     Foreground color at the end of a bar (as gradient).
460 *fg_end*::
461     Foreground color of not filled bar.
462 *bg*::
463     Background color (between bar and border).
464 *bordercolor*::
465     Border color.
466 *mouse*::
467     Set mouse bindings.
468 *width*::
469     Set width.
470 *height*::
471     Set height (i.e. 0.9 = 90%)
472 *padding*::
473     Empty space on both sides.
474 *vertical*::
475     Draw the bar(s) vertically/standing up.
476 *ticks_count*::
477     Number of 'ticks' to draw.
478 *ticks_gap*::
479     Distance between the ticks.
480 *border_width*::
481     Border width in pixels.
482 *border_padding*::
483     Padding between border and ticks/bar.
484 *x*::
485     Horizontal offset (auto-alignment if not set).
486 *y*::
487     Vertical offset (auto-alignment if not set).
488 *align*::
489     Widget alignment.
491 graph
492 ~~~~~
493 This widget shows a graph.
495 *data*::
496     Defines a data-stream section;
497     Options: max, scale, fg, fg_center, fg_end and draw_style.
498 *max*::
499     This value prints a full graph (default = 100).
500 *scale*::
501     Re-scales when input > max (see below).
502 *fg*::
503     Foreground color.
504 *fg_center*::
505     Foreground color in the center of the bar (as gradient).
506 *fg_end*::
507     Foreground color at the end of a bar (as gradient).
508 *vertical_gradient*
509     If true, create a gradient from 0 > full instead of new > old values
510 *draw_style*::
511     bottom (fills from bottom to top), top, or line.
512 *mouse*::
513     Set mouse bindings.
514 *width*::
515     Set width.
516 *height*::
517     Set height (i.e. 0.9 = 90%).
518 *padding_left*::
519     Empty space on the left.
520 *grow*::
521     Put new values onto the 'left' or 'right'.
522 *bg*::
523     Background color.
524 *bordercolor*::
525     Border color.
526 *x*::
527     Horizontal offset (auto-alignment if not set).
528 *y*::
529     Vertical offset (auto-alignment if not set).
530 *align*::
531     Widget alignment.
533 FORMAT
534 ------
535 Here is the global configuration file format, with a list of options
536 and possible values.
538 ..............................................
539 Note: when there is no whitespace, quotes are optional.
541 <boolean>       -> "true" or "false"
542 <color>         -> #ff9933 (hexadecimal color notation: #red green blue)
543 <float>         -> 0.3, 0,8 (often values between 0 and 1 are useful)
544 <font>          -> Pango font: sans 10, sans italic 10, fixed 12, ...
545 <identifier>    -> foobar (choose a name/string)
546 <image>         -> "/home/awesome/pics/icon.png" (path to image)
547 <integer>       -> 1, 10, -3 (positive numbers are required mostly)
548 <key>           -> a, 1, F10 (see /usr/include/X11/keysymdef.h w/o XK_ or 'xev')
549                    or a keycode beginning with #
550 <mod>           -> "Mod1", "Mod4", "Control" (modifiers)
551 <regex>         -> regular expression
552 <string>        -> "foo bar"
553 <uicb-arg>      -> prog, 3... (argument to a uicb function, where required)
554 <uicb-cmd>      -> spawn, exec, client_tag... (see UICB FUNCTIONS above)
555 <position>      -> list of position: off, top, right, left, bottom, auto
556 <{.., ...}>     -> list of available options
557 <style section> -> a section with font, fg, bg, border, shadow and shadow_offset options.
558                    { font = <font> fg = <color> bg = <color> border = <color>
559                      shadow = <color> shadow_offset = <integer> }
560 <titlebar>      -> a section with position and icon position.
561                    { position = <position> icon = <position> text_align = <{center,right,left}>
562                      height = <integer> width = <integer> styles { } }
564 [MULTI] means, you can use an item multiple times.
567 screen <integer> [MULTI]
569     general
570     {
571         border = <integer>
572         new_become_master = <boolean>
573         new_get_focus = <boolean>
574         opacity_unfocused = <integer>
575         opacity_focused = <integer>
576         resize_hints = <boolean>
577         sloppy_focus = <boolean>
578         sloppy_focus_raise = <boolean>
579         snap = <integer>
580         floating_placement = <{smart,under_mouse}>
581         mwfact_lower_limit = <float>
582         mwfact_upper_limit = <float>
583     }
584     titlebar
585     {
586         <titlebar>
587     }
588     tags
589     {
590         tag <identifier> [MULTI]
591         {
592             layout = <{dwindle,floating,max,
593                      spiral,tile,tileleft,tilebottom,tiletop}>
594             mwfact = <float>
595             nmaster = <integer>
596             ncol = <integer>
597         }
598     }
599     layouts
600     {
601         layout <{dwindle,floating,max,
602                  spiral,tile,tileleft,
603                  tilebottom,tiletop}> { image = <image> } [MULTI]
604     }
605     styles
606     {
607         normal { <style section> }
608         focus { <style section> }
609         urgent { <style section> }
610     }
611     padding
612     {
613         top = <integer>
614         bottom = <integer>
615         left = <integer>
616         right = <integer>
617     }
618     statusbar <identifier> [MULTI]
619     {
620         position = <{top,bottom,left,right,off}>
621         height = <integer>
622         width = <integer>
624         taglist <identifier> [MULTI]
625         {
626             x = <integer> y = <integer>
627             align = <{auto,right,left}>
628             mouse [MULTI]
629             {
630                 button = <integer> modkey = {<mod>, ...}
631                 command = <uicb-cmd> arg = <uicb-arg>
632             }
633         }
634         layoutinfo <identifier>
635         {
636             x = <integer> y = <integer>
637             align = <{auto,right,left}>
638             mouse [MULTI]
639             {
640                 button = <integer> modkey = {<mod>, ...}
641                 command = <uicb-cmd> arg = <uicb-arg>
642             }
643         }
644         focusicon <identifier>
645         {
646             x = <integer> y = <integer>
647             align = <{auto,right,left}>
648             mouse [MULTI]
649             {
650                 button = <integer> modkey = {<mod>, ...}
651                 command = <uicb-cmd> arg = <uicb-arg>
652             }
653         }
654         tasklist <identifier>
655         {
656             styles
657             {
658                 normal { <style section> }
659                 focus { <style section> }
660             }
661             show_icons = <boolean>
662             show = <{all,tags,focus}>
663             text_align = <{center,left,right}>
664             x = <integer> y = <integer>
665             mouse [MULTI]
666             {
667                 command = <uicb-cmd> arg = <uicb-arg>
668                 button = <integer> modkey = {<mod>, ...}
669             }
670         }
671         textbox <identifier> [MULTI]
672         {
673             style { <style section> }
674             text = <string>
675             width = <integer>
676             text_align = <{center,left,right}>
677             x = <integer> y = <integer>
678             align = <{auto,right,left}>
679             mouse [MULTI]
680             {
681                 button = <integer> modkey = {<mod>, ...}
682                 command = <uicb-cmd> arg = <uicb-arg>
683             }
684         }
685         iconbox <identifier> [MULTI]
686         {
687             image = <image>
688             resize = <boolean>
689             x = <integer> y = <integer>
690             align = <{auto,right,left}>
691             mouse [MULTI]
692             {
693                 button = <integer> modkey = {<mod>, ...}
694                 command = <uicb-cmd> arg = <uicb-arg>
695             }
696         }
697         progressbar <identifier> [MULTI]
698         {
699             data [MULTI]
700             {
701                 reverse = <boolean> bg = <color> bordercolor = <color>
702                 fg = <color> fg_center = <color> fg_end = <color> fg_off = <color>
703             }
704             gap = <integer>
705             width = <integer>
706             height = <float>
707             padding = <integer>
708             vertical = <boolean>
709             ticks_count = <integer>
710             ticks_gap = <integer>
711             border_width = <integer>
712             border_padding = <integer>
713             x = <integer> y = <integer>
714             align = <{auto,right,left}>
715             mouse [MULTI]
716             {
717                 button = <integer> modkey = {<mod>, ...}
718                 command = <uicb-cmd> arg = <uicb-arg>
719             }
720         }
721         graph <identifier> [MULTI]
722         {
723             data [MULTI]
724             {
725                 scale = <boolean> max = <float> draw_style = <{bottom, top, line}>
726                 fg = <color> fg_center = <color> fg_end = <color>
727                 vertical_gradient = <boolean>
728             }
729             width = <integer>
730             height = <float>
731             padding_left = <integer>
732             grow = <{left, right}>
733             bg = <color>
734             bordercolor = <color>
735             x = <integer> y = <integer>
736             align = <{auto,right,left}>
737             mouse [MULTI]
738             {
739                 button = <integer> modkey = {<mod>, ...}
740                 command = <uicb-cmd> arg = <uicb-arg>
741             }
742         }
743     }
745 rules
747     rule [MULTI]
748     {
749         name = <regex>
750         xproperty_name = <string>
751         xproperty_value = <regex>
752         float = <{auto,true,false}>
753         master = <{auto,true,false}>
754         tags = <regex>
755         screen = <integer>
756         icon = <image>
757         opacity = <float>
758         titlebar
759         {
760             <titlebar>
761         }
762     }
764 keys
766     key [MULTI]
767     {
768         key = <key> modkey = {<mod>, ...}
769         command = <uicb-cmd> arg = <uicb-arg>
770     }
771     keylist [MULTI]
772     {
773         keylist = {<key>, ...}
774         modkey = {<mod>, ...}
775         command = <uicb-cmd>
776         arglist = {<uicb-arg>, ...}
777     }
779 mouse
781     client [MULTI]
782     {
783         button = <integer> modkey = {<mod>, ...}
784         command = <uicb-cmd> arg = <uicb-arg>
785     }
786     root [MULTI]
787     {
788         button = <integer> modkey = {<mod>, ...}
789         command = <uicb-cmd> arg = <uicb-arg>
790     }
792 ..............................................
794 EXAMPLES
795 --------
797 Check awesome's wiki: http://awesome.naquadah.org/wiki/
799 Simple textbox example
800 ~~~~~~~~~~~~~~~~~~~~~~
801 ..............................................
802 1. Add an include directive into ~/.awesomerc
804     screen 0 {
805         include(~/.awesome/bottom-status-bar)
807 2. Create ~/.awesome/bottom-status-bar
809     statusbar "bottom"
810     {
811         position = "bottom"
812         textbox "clock" { }
813     }
815 3. Check the configuration file for errors
817     $ awesome -k
818     Configuration file OK.
820     Note: If you see anything other than "Configuration file OK." you have a
821     typo somewhere.
823 4. Create ~/bin/awesome-clock
825     #!/bin/sh
826     while true
827     do
828       echo "0 widget_tell clock text `date`"
829       echo "" # an empty line flushes data inside awesome
830       sleep 1
831     done | awesome-client
833     Note: What we're saying is "awesome-client, tell widget 'clock' to set
834     it's 'text' property to date's output".
836 5. Make your ~/bin/awesome-clock executable
838    $ chmod a+x ~/bin/awesome-clock
840 6. Modify ~/.xinitrc
842     ~/bin/awesome-clock &
843     exec awesome
845 7. Restart awesome
847 8. If your didn't get what you were expecting, take a look at
848    ~/.xsession-errors or the terminal where X got started.
849 ..............................................
851 Simple progressbar example
852 ~~~~~~~~~~~~~~~~~~~~~~~~~~
853 ..............................................
855 1. Add an include directive into ~/.awesomerc
857     screen 0
858     {
859         include(~/.awesome/bottom-status-bar)
860     }
862 2. Create ~/.awesome/bottom-status-bar
864     progressbar diskusage
865     {
866         data "disk"
867         {
868             bordercolor = "#006e96"
869             bg          = "#000000"
870             fg          = "#ff0000"
871             fg_center   = "#daaf0a"
872             fg_end      = "#00ff00"
873         }
874         width = 100
875         align = "left"
876     }
878 3. Check the configuration file for errors
880     $ awesome -k
881     Configuration file OK.
883     Note: If you see anything other than "Configuration file OK," you have a
884     typo somewhere.
886 4. Create ~/bin/awesome-diskusage
888     #!/bin/sh
889     while true; do
890         usage = `df /dev/sda5 | awk '/\/dev\/sda5/ { print 100-$5 }'`
891         echo "0 widget_tell diskusage data disk ${usage}"
892         echo "" # an empty line flushes data inside awesome
893         sleep 600;
894     done | awesome-client
897     Note: What we're saying is "awesome-client, tell widget 'diskusage' to
898     set it's 'data' property named 'disk' to ${usage}."
900 5. Make ~/bin/awesome-diskusage executable
902 $ chmod a+x ~/bin/awesome-diskusage
904 6. Modify ~/.xinitrc
906     ~/bin/awesome-diskusage &
907     exec awesome
909 7. Restart awesome
911 8. If your didn't get what you were expecting, take a look at
912    ~/.xsession-errors or the terminal where X got started.
913 ..............................................
916 SEE ALSO
917 --------
918 awesome(1) awesome-client(1)
921 AUTHORS
922 -------
923 This man page was written by Julien Danjou <julien@danjou.info>, Marco Candrian <mac@calmar.ws>
924 and Chris Ciulla <chris.ciulla@gmail.com> (Simple Examples).
928 http://awesome.naquadah.org