.\" Title: fluxbox-apps .\" Author: [see the "AUTHORS" section] .\" Generator: DocBook XSL Stylesheets v1.74.0 .\" Date: 02/19/2009 .\" Manual: Fluxbox Manual .\" Source: fluxbox-apps.txt 1.1.2 .\" Language: English .\" .TH "FLUXBOX\-APPS" "5" "02/19/2009" "fluxbox\-apps\&.txt 1\&.1\&.2" "Fluxbox Manual" .\" ----------------------------------------------------------------- .\" * (re)Define some macros .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" toupper - uppercase a string (locale-aware) .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .de toupper .tr aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ \\$* .tr aabbccddeeffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz .. .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" SH-xref - format a cross-reference to an SH section .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .de SH-xref .ie n \{\ .\} .toupper \\$* .el \{\ \\$* .\} .. .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" SH - level-one heading that works better for non-TTY output .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .de1 SH .\" put an extra blank line of space above the head in non-TTY output .if t \{\ .sp 1 .\} .sp \\n[PD]u .nr an-level 1 .set-an-margin .nr an-prevailing-indent \\n[IN] .fi .in \\n[an-margin]u .ti 0 .HTML-TAG ".NH \\n[an-level]" .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 \." make the size of the head bigger .ps +3 .ft B .ne (2v + 1u) .ie n \{\ .\" if n (TTY output), use uppercase .toupper \\$* .\} .el \{\ .nr an-break-flag 0 .\" if not n (not TTY), use normal case (not uppercase) \\$1 .in \\n[an-margin]u .ti 0 .\" if not n (not TTY), put a border/line under subheading .sp -.6 \l'\n(.lu' .\} .. .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" SS - level-two heading that works better for non-TTY output .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .de1 SS .sp \\n[PD]u .nr an-level 1 .set-an-margin .nr an-prevailing-indent \\n[IN] .fi .in \\n[IN]u .ti \\n[SN]u .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .ps \\n[PS-SS]u \." make the size of the head bigger .ps +2 .ft B .ne (2v + 1u) .if \\n[.$] \&\\$* .. .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" BB/BE - put background/screen (filled box) around block of text .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .de BB .if t \{\ .sp -.5 .br .in +2n .ll -2n .gcolor red .di BX .\} .. .de EB .if t \{\ .if "\\$2"adjust-for-leading-newline" \{\ .sp -1 .\} .br .di .in .ll .gcolor .nr BW \\n(.lu-\\n(.i .nr BH \\n(dn+.5v .ne \\n(BHu+.5v .ie "\\$2"adjust-for-leading-newline" \{\ \M[\\$1]\h'1n'\v'+.5v'\D'P \\n(BWu 0 0 \\n(BHu -\\n(BWu 0 0 -\\n(BHu'\M[] .\} .el \{\ \M[\\$1]\h'1n'\v'-.5v'\D'P \\n(BWu 0 0 \\n(BHu -\\n(BWu 0 0 -\\n(BHu'\M[] .\} .in 0 .sp -.5v .nf .BX .in .sp .5v .fi .\} .. .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" BM/EM - put colored marker in margin next to block of text .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .de BM .if t \{\ .br .ll -2n .gcolor red .di BX .\} .. .de EM .if t \{\ .br .di .ll .gcolor .nr BH \\n(dn .ne \\n(BHu \M[\\$1]\D'P -.75n 0 0 \\n(BHu -(\\n[.i]u - \\n(INu - .75n) 0 0 -\\n(BHu'\M[] .in 0 .nf .BX .in .fi .\} .. .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "Name" fluxbox-apps \- per\-window attribute configuration for fluxbox(1) .SH "Synopsis" .sp ~/\&.fluxbox/apps .SH "SYNTAX" .sp Variable parameters are shown in emphasis: \fIargument\fR .sp All other characters shown are required verbatim\&. Whitespce is only required to delimit words, but it is fine to add more whitespace\&. .SH "DESCRIPTION" .sp It is possible to force an application to always have the same dimensions, position, and other settings when it is first launched\&. These settings are saved in the `apps\' file\&. .sp Most simple settings can be saved using the \(lqRemember\&...\(rq submenu of the window menu, which can usually be opened with a right\-click on the titlebar\&. More advanced features require manually editing the `apps\' file\&. This may include using \fBGROUP SECTIONS\fR to set up automatic window tab groups\&. .sp You do not need to \(lqreload\(rq fluxbox after editing the apps file, the changes should be rescanned when the next window is opened\&. .sp The file is made up of two main types of sections, apps and groups, detailed below\&. .SH "APP SECTIONS" .sp \fB[app]\fR sections provide settings for individual application windows\&. .PP These sections begin with a line of the format: .RS 4 \fB[app]\fR \fB(\fR\fIpattern\fR\fB)\fR \fB{\fR\fIcount\fR\fB}\fR .RE .sp The \fIpattern\fR can be one or more patterns which match windows\&. For more details, see \fBCLIENT PATTERNS\fR\&. If you specify more than one \fIpattern\fR, they must ALL match for the settings to be applied\&. .sp The \fB{\fR\fIcount\fR\fB}\fR is optional\&. If specified, then the entry will only match at most that many windows at any time\&. If omitted, the default is to apply the settings to all matching windows\&. .sp This opening \fB[apps]\fR line is followed by any number of settings for the application\&. See \fBSETTINGS\fR for more details\&. .PP Each of these sections ends with the single line: .RS 4 \fB[end]\fR .RE .SH "GROUP SECTIONS" .sp The primary purpose of \fB[group]\fR sections is to group windows together\&. All windows in a group will be tabbed together automatically\&. .PP These sections begin with a line of the format: .RS 4 \fB[group]\fR \fB(\fR\fIpattern\fR\fB)\fR .RE .sp Where the \fIpattern\fR item is optional\&. If specified, this pattern must match for the group to take effect\&. It is common to use non\-window\-specific patterns such as \fB(workspace)\fR here\&. See \fBCLIENT PATTERNS\fR for more details\&. .sp This is followed by any number of \fB[app]\fR lines\&. These have a simiar format to the \fB[app]\fR section detailed above in \fBAPP SECTIONS\fR, but do not contain any settings and do not have an associated \fB[end]\fR line\&. .PP Like this: .RS 4 \fB[app]\fR \fB(\fR\fIpattern\fR\fB)\fR .RE .sp This section may also contain settings that are applied to every window in the group\&. See the \fBSETTINGS\fR section for details\&. .PP As with \fB[app]\fR sections, each of these sections ends with the single line: .RS 4 \fB[end]\fR .RE .SH "SETTINGS" .sp These settings may be stored in the `apps\' file\&. A settings line must appear inside either an \fB[app]\fR or \fB[group]\fR section\&. .PP The general format is: .RS 4 \fB[\fR\fIsetting\fR\fB]\fR \fB{\fR\fIvalue\fR\fB}\fR .RE .sp All allowed values are described below, except for \fIbool\fR which can simply have the value \fByes\fR or \fBno\fR, which enables or disables the associated setting, respectively\&. .PP \fB[Workspace]\fR {\fInumber\fR} .RS 4 Forces the application to open on the \fInumber\fR workspace specified\&. Workspaces are set by number, beginning with 0\&. .RE .PP \fB[Jump]\fR {\fIbool\fR} .RS 4 Changes the active workspace to the remembered one when the application is opened\&. This is only useful when used in conjunction with \fI[Workspace]\fR\&. See \fBEXAMPLES\fR\&. .RE .PP \fB[Head]\fR {\fInumber\fR} .RS 4 Forces the application to open on the \fInumber\fR head specified (Xinerama only)\&. .RE .PP \fB[Layer]\fR {\fInumber\fR} .RS 4 Specify the layer to open the window on (by number)\&. Each layer has a number\&. The named ones are: 2\-AboveDock, 4\-Dock, 6\-Top, 8\-Normal, 10\-Bottom, 12\-Desktop\&. .RE .PP \fB[Dimensions]\fR {\fIwidth\fR \fIheight\fR} .RS 4 Opens the application with the specified \fIwidth\fR and \fIheight\fR, in pixels\&. .RE .PP \fB[Position]\fR (\fIanchor\fR) {\fIX\fR \fIY\fR} .RS 4 Position the application at a particular spot\&. By default the upper\-left corner is placed at screen coordinates (\fIX\fR,\fIY\fR)\&. If you specify an \fIanchor\fR, say BottomRight, then the lower\-right corner of the window is positioned (\fIX\fR,\fIY\fR) pixels from the lower\-right corner of the screen\&. .PP \fIanchor\fR may be set to one of: .RS 4 \fBTopLeft Left BottomLeft Top Center Bottom TopRight Right BottomRight\fR .RE .RE .PP \fB[Deco]\fR {\fIvalue\fR} .RS 4 .PP Specify the decoration state\&. There are several predefined \fIvalue\fR sets: .RS 4 .PP \fBNORMAL\fR .RS 4 Standard decorations .RE .PP \fBNONE\fR .RS 4 No decorations \fBTAB\fR Like TAB except keep the tabs .RE .PP \fBBorder\fR .RS 4 Like NONE except keep the X window border .RE .PP \fBTINY\fR .RS 4 Titlebar with only an iconify button .RE .PP \fBTOOL\fR .RS 4 Titlebar only .RE .sp The \fIvalue\fR may also be a bitmask for finer\-grained control\&. The bits are, from (1<<0) to (1<<10): Titlebar, Handle/Grips, Border, Iconify Button, Maximize Button, Close Button, Menu Enabled, Sticky Button, Shade Button, Tabbing enabled, Focus Enabled\&. .RE .RE .PP \fB[Shaded]\fR {\fIbool\fR} .RS 4 Whether the window is Shaded (rolled\-up) or not\&. .RE .PP \fB[Tab]\fR {\fIbool\fR} .RS 4 Whether the window has tabs enabled\&. .RE .PP \fB[FocusHidden]\fR {\fIbool\fR} .RS 4 If enabled, the window will not appear in \fINextWindow\fR/\fIPrevWindow\fR lists\&. .RE .PP \fB[IconHidden]\fR {\fIbool\fR} .RS 4 If enabled, the window will not appear in the icon area of the toolbar\&. .RE .PP \fB[Hidden]\fR {\fIbool\fR} .RS 4 A shortcut for setting both \fBFocusHidden\fR and \fBIconHidden\fR at the same time\&. .RE .PP \fB[Sticky]\fR {\fIbool\fR} .RS 4 Specify if an application should be sticky (shown on all workspaces) or not\&. .RE .PP \fB[Minimized]\fR {\fIbool\fR} .RS 4 Application should start minimized .RE .PP \fB[Maximized]\fR {\fIvalue\fR} .RS 4 .PP Application should start maximized\&. \fIvalue\fR may be: .RS 4 .PP \fByes\fR .RS 4 Fully maximized .RE .PP \fBhorz\fR .RS 4 Horizontally maximized .RE .PP \fBvert\fR .RS 4 Vertically maximized .RE .PP \fBno\fR .RS 4 Not maximized .RE .RE .RE .PP \fB[Fullscreen]\fR {\fIbool\fR} .RS 4 Application should start in fullscreen mode (fully maximized without any decorations)\&. .RE .PP \fB[Close]\fR {\fIbool\fR} .RS 4 Save settings on close\&. By default, application settings are not updated when a window is closed\&. .RE .PP \fB[Alpha]\fR {\fIvalue\fR [\fIvalue\fR]} .RS 4 Set the alpha value for this window\&. If two values are given, they correspond to the focused and unfocused transparency, respectively\&. One number only will be used for both values\&. \fIvalue\fR is an integer between 0 and 255\&. .RE .SH "CLIENT PATTERNS" .PP A \fIpattern\fR looks like this: .RS 4 \fB(\fR[\fIpropertyname\fR[!]=]\fIregexp\fR\fB)\fR \&... .RE .sp Match definitions are enclosed in parentheses \fB(\fR\&...\fB)\fR, and if no \fIpropertyname\fR is given then \fBName\fR is assumed\&. The \fIregexp\fR can contain any regular expression, or the special value \fB[current]\fR, which matches the corresponding value of the currently focused window\&. See \fIregex(7)\fR for more information on acceptable regular expressions\&. .sp \fIpropertyname\fR is not case sensitive, whereas the \fIregexp\fR is\&. .sp If you specify multiple \fB(\fR\fB\fIpattern\fR\fR) arguments, this implies an AND condition \- All specified patterns must match\&. .sp You can use \fB=\fR to test for equality or \fB!=\fR to test for inequality\&. .PP The following values are accepted for \fIpropertyname\fR: .RS 4 .PP \fBName\fR .RS 4 A string, corresponding to the CLASSNAME property (The first field of WM_CLASS from the output of the \fBxprop(1)\fR utility)\&. .RE .PP \fBClass\fR .RS 4 A string, corresponding to the CLASSCLASS property (The second field of WM_CLASS from the output of the \fBxprop(1)\fR utility)\&. .RE .PP \fBTitle\fR .RS 4 A string, corresponding to the window title (WM_NAME from \fBxprop(1)\fR)\&. .RE .PP \fBRole\fR .RS 4 A string, corresponding to the ROLE property (WM_WINDOW_ROLE from \fBxprop(1)\fR)\&. .RE .PP \fBTransient\fR .RS 4 Either \fByes\fR or \fBno\fR, depending on whether the window is transient (typically, a popup dialog) or not\&. .RE .PP \fBMaximized\fR .RS 4 Either \fByes\fR or \fBno\fR, depending on whether the window is maximized or not\&. .RE .PP \fBMinimized\fR .RS 4 Either \fByes\fR or \fBno\fR, depending on whether the window is minimized (iconified) or not\&. .RE .PP \fBShaded\fR .RS 4 Either \fByes\fR or \fBno\fR, depending on whether the window is shaded or not\&. .RE .PP \fBStuck\fR .RS 4 Either \fByes\fR or \fBno\fR, depending on whether the window is sticky (on all workspaces) or not\&. .RE .PP \fBFocusHidden\fR .RS 4 Either \fByes\fR or \fBno\fR, depending on whether the window has asked to be left off the focus list (or, the alt\-tab list), or not\&. .RE .PP \fBIconHidden\fR .RS 4 Either \fByes\fR or \fBno\fR, depending on whether the window has asked to be left off the icon list (or, the taskbar), or not\&. .RE .PP \fBUrgent\fR .RS 4 Either \fByes\fR or \fBno\fR, depending on whether the window has the urgent hint set\&. .RE .PP \fBWorkspace\fR .RS 4 A number corresponding to the workspace number to which the window is attached\&. The first workspace here is \fB0\fR\&. You may also use \fB[current]\fR to match the currently visible workspace\&. .RE .PP \fBWorkspaceName\fR .RS 4 A string corresponding to the name of the workspace to which the window is attached\&. .RE .PP \fBHead\fR .RS 4 The number of the display head to which the window is attached\&. You may match this against the special value \fB[mouse]\fR which refers to the head where the mouse pointer currently resides\&. .RE .PP \fBLayer\fR .RS 4 The string name of the window\'s layer, which is one of \fBAboveDock\fR, \fBDock\fR, \fBTop\fR, \fBNormal\fR, \fBBottom\fR, \fBDesktop\fR .RE .RE .PP \fBExample\ \&1.\ \&Matches any windows with the CLASSNAME of "xterm"\fR .sp .if n \{\ .RS 4 .\} .fam C .ps -1 .nf .BB lightgray (xterm) .EB lightgray .fi .fam .ps +1 .if n \{\ .RE .\} .PP \fBExample\ \&2.\ \&Matches any windows with the same CLASSNAME as the currently focused window\fR .sp .if n \{\ .RS 4 .\} .fam C .ps -1 .nf .BB lightgray (Name=[current]) .EB lightgray .fi .fam .ps +1 .if n \{\ .RE .\} .PP \fBExample\ \&3.\ \&Matches any windows on the same head as the mouse but on a different layer than the currently focused window\fR .sp .if n \{\ .RS 4 .\} .fam C .ps -1 .nf .BB lightgray (Head=[mouse]) (Layer!=[current]) .EB lightgray .fi .fam .ps +1 .if n \{\ .RE .\} .SH "FILES" .PP \fB~/\&.fluxbox/apps\fR .RS 4 This is the default location for the application settings\&. .RE .SH "RESOURCES" .PP \fBsession\&.appsFile:\fR \fIlocation\fR .RS 4 This may be set to override the location of the application settings\&. .RE .SH "EXAMPLES" .sp Here are some interesting and/or useful examples you can do with your apps file\&. .sp .if n \{\ .RS 4 .\} .fam C .ps -1 .nf .BB lightgray # Put the first two windows which end with \'term\' on workspace 1 [app] (name=\&.*[tT]erm) {2} [Workspace] {1} [end] # Center kate with a specific size, and update these values when the window is # closed\&. [app] (name=kate) [Dimensions] {1022 747} [Position] (CENTER) {0 0} [Close] {yes} [end] # When starting konqueror, jump to workspace 1 first and start it there\&. [app] (name=konqueror) [Workspace] {1} [Jump] {yes} [end] # start all aterm without decorations [app] (name=aterm) [Deco] {NONE} [end] # a group with the gimp dock and toolbox # appears on layer 4 (bottom) [group] [app] (name=gimp) (role=gimp\-dock) [app] (name=gimp) (role=gimp\-toolbox) [Layer] {4} [end] .EB lightgray .fi .fam .ps +1 .if n \{\ .RE .\} .SH "AUTHORS" .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Jim Ramsay (>fluxbox\-1\&.0\&.0) .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Curt Micol (>fluxbox\-0\&.9\&.11) .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Tobias Klausmann (\(lafluxbox\-0\&.9\&.11) .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Grubert (fluxbox) .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Matthew Hawkins (blackbox) .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Wilbert Berendsen (blackbox) .RE .SH "SEE ALSO" .sp fluxbox(1) xprop(1) regex(7)