123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788 |
- .\" title: wmfs
- .\" dev: xorg62
- .\" man: arpinux
- .\"
- .TH "WMFS" "1" "2012/05/02" "wmfs" "manual of wmfs"
- .\" disable hyphenation
- .nh
- .\" disable justification (adjust text to left margin only)
- .ad l
- .SH "NAME"
- wmfs \- Window Manager From Scratch
- .SH "SYNOPSIS"
- \fBwmfs\fR [\fB\-hv\fR] [\fB\-C <file>\fR] [\fB\-c <uicb_function> <cmd>\fR]
- .sp
- .SH "DESCRIPTION"
- \fBWMFS\fR is a lightweight and highly configurable tiling window manager for X written in C\&.
- .sp
- .SH "OPTIONS"
- .PP
- \fB\-C <file>\fR
- .RS 4
- Load a configuration file\&.
- .RE
- .PP
- \fB\-c <uicb_function> <cmd>\fR
- .RS 4
- Execute an uicb function to control WMFS\&.
- .RE
- .PP
- \fB\-v\fR
- .RS 4
- Print version information to standard output, then exit\&.
- .RE
- .PP
- \fB\-h\fR
- .RS 4
- Print help information, then exit\&.
- .RE
- .SH "DEFAULT KEY BINDINGS"
- .PP
- \fBControl\-Alt + r\fR
- .RS 4
- Reload WMFS binary
- .RE
- .PP
- \fBSuper + Return\fR
- .RS 4
- Run a terminal (urxvt by default)
- .RE
- .PP
- \fBSuper + q\fR
- .RS 4
- Quit the selected client
- .RE
- .PP
- \fBControl\-Alt + q\fR
- .RS 4
- Exit WMFS
- .RE
- .PP
- \fBSuper + f \fR
- .RS 4
- Toggle free the selected client
- .RE
- .PP
- \fBSuper + Shift + f \fR
- .RS 4
- Toggle ignore_tag the selected client
- .RE
- .PP
- \fBSuper + Shift + h \fR
- .RS 4
- Toggle infobar visibility
- .RE
- .PP
- \fBAlt + Tab\fR
- .RS 4
- Give the focus to the next client
- .RE
- .PP
- \fBAlt\-Shift + Tab\fR
- .RS 4
- Give the focus to the previous client
- .RE
- .PP
- \fBAlt + h\fR
- .RS 4
- Give the focus to the client on the left
- .RE
- .PP
- \fBAlt + l\fR
- .RS 4
- Give the focus to the client on the right
- .RE
- .PP
- \fBAlt + k\fR
- .RS 4
- Give the focus to the client on the top
- .RE
- .PP
- \fBAlt + j\fR
- .RS 4
- Give the focus to the client on the bottom
- .RE
- .PP
- \fBSuper + Tab\fR
- .RS 4
- Give the focus to the next tabbed client
- .RE
- .PP
- \fBSuper\-Shift + Tab\fR
- .RS 4
- Give the focus to the previous tabbed client
- .RE
- .PP
- \fBControl\-Shift + h\fR
- .RS 4
- Swap with the client on the left
- .RE
- .PP
- \fBControl\-Shift + l\fR
- .RS 4
- Swap with the client on the right
- .RE
- .PP
- \fBControl\-Shift + k\fR
- .RS 4
- Swap with the client on the top
- .RE
- .PP
- \fBControl\-Shift + j\fR
- .RS 4
- Swap with the client on the bottom
- .RE
- .PP
- \fBAlt\-Shift + h\fR
- .RS 4
- Tab in the client on the left
- .RE
- .PP
- \fBAlt\-Shift + l\fR
- .RS 4
- Tab in the client on the right
- .RE
- .PP
- \fBAlt\-Shift + k\fR
- .RS 4
- Tab in the client on the top
- .RE
- .PP
- \fBAlt\-Shift + j\fR
- .RS 4
- Tab in the client on the bottom
- .RE
- .PP
- \fBAlt\-Shift + u\fR
- .RS 4
- Untab the client
- .RE
- .PP
- \fBSuper + h\fR
- .RS 4
- Increase the client to the left
- .RE
- .PP
- \fBSuper + l\fR
- .RS 4
- Decrease the client from the left
- .RE
- .PP
- \fBSuper + k\fR
- .RS 4
- Increase the client to the top
- .RE
- .PP
- \fBSuper + j\fR
- .RS 4
- Decrease the client from the top
- .RE
- .PP
- \fBSuper\-Control + h\fR
- .RS 4
- Decrease the client from the right
- .RE
- .PP
- \fBSuper\-Control + l\fR
- .RS 4
- Increase the client to the right
- .RE
- .PP
- \fBSuper\-Control + k\fR
- .RS 4
- Decrease the client from the bottom
- .RE
- .PP
- \fBSuper\-Control + j\fR
- .RS 4
- Increase the client to the bottom
- .RE
- .PP
- \fBControl + Right\fR
- .RS 4
- Next tag
- .RE
- .PP
- \fBControl + Left\fR
- .RS 4
- Previous tag
- .RE
- .PP
- \fBControl + Up\fR
- .RS 4
- Next screen
- .RE
- .PP
- \fBControl + Down\fR
- .RS 4
- Previous screen
- .RE
- .PP
- \fBSuper + m\fR
- .RS 4
- Vertical mirror layout
- .RE
- .PP
- \fBSuper\-Shift + m\fR
- .RS 4
- Horizontal mirror layout
- .RE
- .PP
- \fBSuper + r\fR
- .RS 4
- Rotate layout right
- .RE
- .PP
- \fBSuper\-Shift + r\fR
- .RS 4
- Rotate layout left
- .RE
- .PP
- \fBSuper\-Control\-Alt + h\fR
- .RS 4
- Integrate client in left layout
- .RE
- .PP
- \fBSuper\-Control\-Alt + j\fR
- .RS 4
- Integrate client in bottom layout
- .RE
- .PP
- \fBSuper\-Control\-Alt + k\fR
- .RS 4
- Integrate client in top layout
- .RE
- .PP
- \fBSuper\-Control\-Alt + l\fR
- .RS 4
- Integrate client in right layout
- .RE
- .PP
- \fBSuper + o\fR
- .RS 4
- Restore previous layout
- .RE
- .PP
- \fBSuper\-Shift + o\fR
- .RS 4
- Restore next layout
- .RE
- .PP
- \fBSuper + p\fR
- .RS 4
- Display a launcher in the statusbar to run an unix command\fR
- .RE
- .PP
- \fBSuper + F[1\&.\&.9]\fR
- .RS 4
- Change tag view
- .RE
- .PP
- \fBSuper\-Shift + F[1\&.\&.9]\fR
- .RS 4
- Transfert the selected client to the wanted tag
- .RE
- .PP
- \fBSuper + -\fR
- .RS 4
- Delete current tag\fR
- .RE
- .PP
- \fBSuper\-Shift + -\fR
- .RS 4
- Add current tag\fR
- .RE
- .SH "CONFIGURATION"
- WMFS is configured by \fI$HOME/\&.config/wmfs/wmfsrc\fR\&.
- .RE
- .PP
- \fB\ include:\fR
- wmfsrc supports ”@include” to split configuration file by section\&.
- .RS 2
- \fB\ Usage:\fR "@include ~/.config/wmfs/wmfs_themes"\&.
- .RE
- .PP
- \fB\ [themes]\fR
- wmfsrc supports themes for client and statusbar\&.
- .RS 2
- \fB Misc\fR
- .RS 2
- \fB\ name:\fR
- theme name, will be used in next sections\&.
- .PP
- \fB\ font:\fR
- theme font in XLFD format\&.
- .PP
- .RE
- \fB\ Bars\fR
- .RS 2
- \fB\ bars_width:\fR
- bar height in pixels\&.
- .PP
- \fB\ bars_fg/bg:\fR
- statusbar text/background color\&.
- .PP
- .RE
- \fB\ Tags\fR
- .RS 2
- \fB\ tags_normal_fg/bg:\fR
- normal tag text/button color\&.
- .PP
- \fB\ tags_normal_statusline:\fR
- normal tag statusline\&.
- .PP
- \fB\ tags_sel_fg/bg:\fR
- selected tag text/button color\&.
- .PP
- \fB\ tags_sel_statusline:\fR
- selected tag statusline\&.
- .PP
- \fB\ tags_occupied_fg/bg:\fR
- occupied tag text/button color\&.
- .PP
- \fB\ tags_occupied_statusline:\fR
- occupied tag statusline\&.
- .PP
- \fB\ tags_urgent_fg/bg:\fR
- urgent tag text/button color\&.
- .PP
- \fB\ tags_urgent_statusline:\fR
- urgent tag statusline\&.
- .PP
- \fB\ tags_border_color:\fR
- tag button border color\&.
- .PP
- \fB\ tags_border_width:\fR
- tag button border width\&.
- .PP
- .RE
- \fB\ Clients\fR
- .RS 2
- \fB\ client_normal_fg/bg:\fR
- normal client titlebar text/background color\&.
- .PP
- \fB\ client_normal_statusline:\fR
- normal client statusline\&.
- .PP
- \fB\ client_sel_fg/bg:\fR
- selected client titlebar text/background color\&.
- .PP
- \fB\ client_sel_statusline:\fR
- selected client statusline\&.
- .PP
- \fB\ frame_bg:\fR
- client border color\&.
- .PP
- \fB\ client_titlebar_width:\fR
- client titlebar height in pixels\&.
- .PP
- \fB\ client_border_width:\fR
- client border height in pixels\&.
- .RE
- .PP
- .RE
- \fB\ [bars]\fR
- .RS 2
- \fB\ position:\fR
- statusbar position on screen (0=Top; 1=Bottom, 2=Hide)\&.
- .PP
- \fB\ screen:\fR
- screen to display statusbar (start ar 0), set to\fB -1\fR to display on every screen\&.
- .PP
- \fB\ elements:\fR
- ordered statusbar elements t=Tags, s=Statustext, y=Systray, l=Launcher\&.
- .PP
- \fB\ theme:\fR
- names of the statusbar theme\&.
- .RE
- .PP
- .RE
- \fB\ [tags]\fR
- .RS 2
- \fB\ circular:\fR
- enable tag wrapping. default is true\&.
- .PP
- \fB\ screen:\fR
- screen to display tag. use no screen option or screen =\fB -1\fR to set tag on each screen\&.
- .PP
- \fB\ name:\fR
- display tagname\&.
- .PP
- \fB\ statusline:\fR
- draw a custom statusline in the specific tag (can display any sequences)\&.
- .PP
- \fB\ mousebinds:\fR
- mouse actions on the tag buttons\&.
- .RE
- .PP
- .RE
- \fB\ [client]\fR
- .RS 2
- \fB\ theme:\fR
- apply theme to client by default\&.
- .PP
- \fB\ key_modifier:\fR
- key modifier to perform actions on clients\&.
- .PP
- \fB\ focus:\fR
- select the focus mouse options; enter=focus follow mouse, click=click to focus, everything-else=disable focus mouse support\&.
- .PP
- \fB\ mousebinds:\fR
- mouse actions on client\&.
- .PP
- \fB\ padding:\fR
- enable padding between clients. default is 0\&.
- .PP
- \fB\ autofocus:\fR
- give focus to new created clients. default is false\&.
- .RE
- .PP
- .RE
- \fB\ [rules]\fR
- specific rules for clients: to identify an application, use xprop\&.
- .RS 2
- \fB\ instance:\fR
- first part of WM_CLASS\&.
- .PP
- \fB\ class:\fR
- second part of WM_CLASS\&.
- .PP
- \fB\ role:\fR
- WM_WINDOW_ROLE\&.
- .PP
- \fB\ name:\fR
- _NET_WM_NAME\&.
- .PP
- \fB\ theme:\fR
- apply theme to client\&.
- .PP
- \fB\ tag:\fR
- specify a tag to display client (start at 0)\&.
- .PP
- \fB\ screen:\fR
- display client on a specific screen\&.
- .PP
- \fB\ free:\fR
- client in auto-free mode (true/false)\&.
- .PP
- \fB\ tab:\fR
- open client in a tab (true/false)\&.
- .PP
- \fB\ ignore_tag:\fR
- specify to client to ignore tags (client is displayed on every tag)\&.
- .RE
- .PP
- .RE
- \fB\ [launchers]\fR
- .RS 2
- \fB\ name:\fR
- launcher-name, will be used in the [keys] section\&.
- .PP
- \fB\ prompt:\fR
- display text at the beginning of the prompt\&.
- .PP
- \fB\ command:\fR
- command used by the launcher. can be an uicb function or an uicb function + extension\&.
- .RE
- .PP
- .RE
- \fB\ [keys]\fR
- .RS 2
- each line is contained within\fB\ [key]...[/key]\fR
- .PP
- \fB\ mod:\fR
- key modifier (Alt, Control, Shift, Super)\&.
- .PP
- \fB\ key:\fR
- key to press, you can identify it with "xev"\&.
- .PP
- \fB\ func:\fR
- uicb function to launch\&.
- .PP
- \fB\ cmd:\fR
- if\fB\ func = "spawn"\fR set the external command to launch\&.
- .sp
- .SH "STATUS"
- statusbars, tags, surfaces and titlebars support sequences to display text, images bars and graphs through the\fB\ wmfs -c status\fR command.
- .PP
- \fB\ Syntax\fR
- .PP
- .RS 4
- \fB\ position:\fR “left/right” (relative) or “x;y” (absolute)\&.
- .PP
- \fB\ dimension:\fR “ww;hh” for width;height of the rectangle or the image, to display an image at its original size, set it to “0;0”\&.
- .PP
- \fB\ color:\fR ”#rrggbb”\&.
- .PP
- \fB\ imagepath:\fR absolute path for the image\&.
- .PP
- \fB\ border:\fR width of the progressbar border in pixels\&.
- .PP
- \fB\ curser:\fR width of the curser in the positionbar\&.
- .PP
- \fB\ value:\fR a variable, to draw progressbar\&.
- .PP
- \fB\ valuemax:\fR maximum value of the ‘value’ used in the progressbar\&.
- .RE
- .PP
- \fB\ basic usage:\fR
- wmfs -c status "<barname> TEXT visible on 'barname'"\&.
- .PP
- \fB\ display colors:\fR
- wmfs -c status "<barname> ^s[<position>;<color>;<text>]"\&.
- .PP
- \fB\ display rectangles:\fR
- wmfs -c status "<barname> ^R[<position>;<dimensions>;<color>]"\&.
- .PP
- \fB\ display images:\fR
- wmfs -c status "<barname> ^i[<position>;<dimensions>;<imagepath>]"\&.
- .PP
- \fB\ display progressbars:\fR
- wmfs -c status "<barname> ^p[<position>;<dimensions>;<border>;<value>;<valuemax>;<bgcolor>;<fgcolor>]"\&.
- .PP
- \fB\ display positionbars:\fR
- wmfs -c status "<barname> ^P[<position>;<dimensions>;<curser>;<value>;<valuemax>;<bgcolor>;<fgcolor>]"\&.
- .PP
- \fB\ display graph:\fR
- wmfs -c status "<barname> ^g[<position>;<dimensions>;<value>;<valuemax>;<bgcolor>;<fgcolor>;<name>]"\&.
- .RE
- .PP
- \fB\ mousebinds:\fR
- sequences supports mousebinds with format\fB\ (<key>;<uicb-function>)\fR or\fB\ (<key>;<spawn>;<command>)\fR
- .RE
- .PP
- \fB\ surfaces:\fR
- you can display popups from the statusbar with the mousebind\fB\ (<key>;status_surface;<position>,<dimension>,<color> <datas>)\fR
- .PP
- .sp
- .SH "UICB Functions"
- UICB functions list. for “User Interface Call Backs”\&.
- .PP
- \fB\ usage in the wmfsrc:\fR func = "tag_next"\fB\ or\fR func = "spawn" cmd = "urxvt -e vim"\&.
- .RE
- \fB\ usage in the status.sh:\fR wmfs -c status "<barname> ^s[<position>;<color>;next](1;tag_next)"\&.
- .RE
- \fB\ usage in your terminal:\fR wmfs -c tag_next\&.
- .PP
- \fB\ spawn\fR
- .RS 4
- launch a command. ex: func = "spawn" cmd = "urxvtc -e screen irssi"\&.
- .RE
- .PP
- \fB\ quit\fR
- .RS 4
- quit wmfs\&.
- .RE
- .PP
- \fB\ reload\fR
- .RS 4
- reload wmfs\&.
- .RE
- .PP
- \fB\ tag_set\fR
- .RS 4
- set tag by number\&.
- .RE
- .PP
- \fB\ tag\fR
- .RS 4
- set tag by name\&.
- .RE
- .PP
- \fB\ tag_next/prev\fR
- .RS 4
- set next/previous tag\&.
- .RE
- .PP
- \fB\ tag_client\fR
- .RS 4
- tag the client\&.
- .RE
- .PP
- \fB\ tag_client_and_set\fR
- .RS 4
- teg the client and set the tag\&.
- .RE
- .PP
- \fB\ tag_move_client_next/prev\fR
- .RS 4
- tag the client with next/previous tag\&.
- .RE
- .PP
- \fB\ tag_click\fR
- .RS 4
- display tag with a clic on tag button\&.
- .RE
- .PP
- \fB\ tag_new/del\fR
- .RS 4
- add/delete a tag\&.
- .RE
- .PP
- \fB infobar_toggle_hide\fR
- .RS 4
- toggle specific infobar visibility (infobar_name as cmd)\&.
- .RE
- .PP
- \fB\ layout_vmirror\fR
- .RS 4
- vertical mirror tiling\&.
- .RE
- .PP
- \fB\ layout_hmirror\fR
- .RS 4
- horizontal mirror tiling\&.
- .RE
- .PP
- \fB\ layout_rotate_left\fR
- .RS 4
- tiling rotate anti/clockwise\&.
- .RE
- .PP
- \fB\ layout_prev_set\fR
- .RS 4
- back to previous set layout\&.
- .RE
- .PP
- \fB\ layout_next_set\fR
- .RS 4
- go to next set layout\&.
- .RE
- .PP
- \fB\ layout_integrate_left/right/top/bottom\fR
- .RS 4
- client integration in the client zone by direction\&.
- .RE
- .PP
- \fB\ client_close\fR
- .RS 4
- close the client\&.
- .RE
- .PP
- \fB\ client_resize_right/left/top/bottom\fR
- .RS 4
- resize client with direction\&.
- .RE
- .PP
- \fB\ client_focus_right/left/top/bottom\fR
- .RS 4
- focus client with direction\&.
- .RE
- .PP
- \fB\ client_tab_right/left/top/bottom\fR
- .RS 4
- tab client with direction\&.
- .RE
- .PP
- \fB\ client_swap_right/left/top/bottom\fR
- .RS 4
- swap client with direction\&.
- .RE
- .PP
- \fB\ client_focus_next/prev\fR
- .RS 4
- move focus to the next/previous client\&.
- .RE
- .PP
- \fB\ client_swap_next/prev\fR
- .RS 4
- swap with the next/previous client\&.
- .RE
- .PP
- \fB\ client_untab\fR
- .RS 4
- untab the client\&.
- .RE
- .PP
- \fB\ client_focus_next_tab\fR
- .RS 4
- move focus to next tab-client\&.
- .RE
- .PP
- \fB\ client_focus_prev_tab\fR
- .RS 4
- move focus to previous tab-client\&.
- .RE
- .PP
- \fB\ client_focus_click\fR
- .RS 4
- give focus to client with a clic\&.
- .RE
- .PP
- \fB\ client_toggle_free\fR
- .RS 4
- toggle free the selected client\&.
- .RE
- .PP
- \fB\ client_toggle_ignore_tag\fR
- .RS 4
- toggle ignore_tag the selected client\&.
- .RE
- .PP
- \fB\ client_tab_next_opened\fR
- .RS 4
- open the client in a tab\&.
- .RE
- .PP
- \fB\ status\fR
- .RS 4
- display the argument text in the statusbar\&.
- .RE
- .PP
- \fB\ status_surface\fR
- .RS 4
- display a surface. can contain sequences\&.
- .RE
- .PP
- \fB\ mouse_resize\fR
- .RS 4
- resize the client\&.
- .RE
- .PP
- \fB\ mouse_move\fR
- .RS 4
- move the client\&.
- .RE
- .PP
- \fB\ mouse_swap\fR
- .RS 4
- swap the client\&.
- .RE
- .PP
- \fB\ mouse_tab\fR
- .RS 4
- tab the client\&.
- .RE
- .PP
- \fB\ screen_next/prev\fR
- .RS 4
- go to next/previous screen\&.
- .RE
- .PP
- \fB\ screen_move_client_next/prev\fR
- .RS 4
- move the client to next/previous screen\&.
- .RE
- .PP
- \fB\ launcher\fR
- .RS 4
- native prompt. ex:\fB\ func = "launcher" cmd = "exec"\fR display the “exec” launcher\&.
- .RE
- .PP
- .sp
- .SH "BUGS"
- WMFS isn\'t stable for now\&. So it certainly contains some bugs\&.
- .sp
- .SH "AUTHOR"
- Martin Duquesnoy <\fIxorg62@gmail\&.com\fR\&[1]>\&.
- .sp
- .SH "WWW"
- Main site: \fIhttps://github\&.com/xorg62/wmfs\fR
- .PP
- Wiki: \fIhttps://github\&.com/xorg62/wmfs/wiki\fR
- .PP
- Bug tracker: \fIhttps://github\&.com/xorg62/wmfs/issues\fR
- .sp
- .SH "COPYING"
- WMFS is under the BSD license\&. See COPYING for more information\&.
- .RE
|