.\" This program is free software; you can redistribute it and/or modify it .\" under the terms of the GNU General Public License as published by the Free .\" Software Foundation; either version 2 of the License, or (at your option) .\" any later version. .\" .\" This program is distributed in the hope that it will be useful, but WITHOUT .\" ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or .\" FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for .\" more details. .\" .\" You should have received a copy of the GNU General Public License along with .\" this program; if not, write to the Free Software Foundation, Inc., 59 Temple .\" Place, Suite 330, Boston, MA 02111-1307 USA. .\" .\" .\" This manpage is written using the mdoc macro language. .\" Examples of formatters which support mdoc are groff[1] and mandoc[2]. .\" An mdoc language reference is available[3]. .\" .\" [1] https://gnu.org/software/groff/ .\" [2] http://mdocml.bsd.lv/ .\" [3] http://mdocml.bsd.lv/mdoc.7.html .\" .Dd Aug 22, 2019 .Dt SDORFEHS 1 .Os .Sh NAME .Nm sdorfehs .Nd window manager without mouse dependency .Sh SYNOPSIS .Nm .Op Fl hv .Nm .Op Fl d Ar dpy .Op Fl s Ar num .Op Fl f Ar file .Nm .Op Fl d Ar dpy .Op Fl s Ar num .Op Fl i .Fl c Ar command Op Fl c Ar command ... .Sh DESCRIPTION .Nm is a window manager without fat library dependencies, fancy graphics or dependence on a mouse. .Pp The screen can be split into non-overlapping frames. All windows are kept maximized inside their frames. .Pp All interaction with the window manager is done through keystrokes. .Nm has a prefix map to minimize key clobbering. .Pp The options are as follows: .Bl -tag -width Bs .It Fl c Ar command Send .Nm a command. There must be a .Nm instance running as window manager for the given display/screen for this to work. Do not forget to quote the command if it contains spaces. For example: .Pp .Dl Nm Fl c Qq Ar "echo hello world" .It Fl d Ar display Set the X display to use or send commands to. .It Fl f Ar filename Specify an alternate configuration file. If this is not given, .Nm will try .Pa $HOME/.config/sdorfehs/config and execute each command when starting up. .It Fl h Show summary of options. .It Fl i Execute commands given with .Fl c in interactive mode. That means it will behave exactly as if called with .Ic C\-a \&: like prompting for missing arguments and things like that. .It Fl s Ar number Only use the specified screen. .El .Sh KEY BINDINGS To avoid conflicts with other programs, all default .Nm key bindings start with an escape key which, by default, is .Ic C\-a (Control\-a). Some important default key bindings: .Bl -tag -width Ds .It Ic C\-a \&? Show key bindings .It Ic C\-a a Send a Control\-a to the current window .It Ic C\-a c Start an X terminal .It Ic C\-a n Switch to next window .It Ic C\-a p Switch to previous window .It Ic C\-a 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 Switch to window number 0 | 1 | 2 | ... .It Ic C\-a k Close the current window .It Ic C\-a K XKill the current application .It Ic C\-a s | S Split the current frame into two vertical | horizontal ones .It Ic C\-a Tab | Left | Up | Right | Down Switch to the next | left | top | right | bottom frame. .It Ic C\-a Q Make the current frame the only one .It Ic C\-a \&: Execute a .Nm command .It Ic C\-a F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 Switch to vscreen number 0 | 1 | 2 | ... .El .Pp Further default key bindings can be found in parentheses after the commands in the next section. .Sh COMMANDS AND DEFAULT ALIASES .Bl -tag -width Ds .It Ic abort .Pq Ic C\-a C\-g Do nothing and that successfully. .Po Useful if you pressed .Ic C\-a in error .Pc . .It Ic addhook Ar event command Add a hook: run .Ar command whenever .Ar event is called. Possible events are: .Bl -tag -width Ds .It Cm deletewindow Run after a window is withdrawn. .It Cm key Run whenever a top level key is pressed (by default .Ic C\-a ) . .It Cm newwindow Run after a new window is mapped. .It Cm quit Run before exiting .Nm . .It Cm restart Run before restarting .Nm . .It Cm switchframe Run after a frame actually switched, but before the window in it is focused. .It Cm switchscreen Run when the user switches to a different screen. .It Cm switchvscreen Run when the user switches to a different virtual screen. .It Cm switchwin Run after a new window is selected. (With dedication, it may already be inactive again, if it was put into another frame) .El .It Ic alias Ar alias command Add .Ar alias as new way to call .Ar command . .It Ic bind Ar key command alias for .Qq Ic definekey Li root Ar key command .It Ic banish .Pq Ic C\-a b Banish the rat cursor to the lower right corner of the screen. .It Ic banishrel Banish the rat cursor to the lower right corner of the current window. If there isn't a window in the current frame, it banishes the rat cursor to the lower right corner of the frame. .It Ic chdir Op Ar directory If the optional argument is given, change the current directory of .Nm to .Ar directory . If nothing is given, change it to the value of the environment variable .Qq Ev HOME . .It Ic clrunmanaged Clears the unmanaged window list. .It Ic cnext Like .Ic next but switch to the next window with another resource class than the current one. (That means the next window belonging to another type of application than the current one.) .It Ic cprev Like .Ic prev but switch to the previous window with another resource class than the current one. (That means the previous window belonging to another type of application than the current one.) .It Ic colon Ar sdorfehs\-command Pq Ic C\-a \&: Execute .Ar sdorfehs\-command interactively. (i.e. ask for possible missing arguments.) .It Ic cother Like .Ic other but switch to the window of the current vscreen that was last accessed and has another resource class but is not currently visible. .It Ic curframe Pq Ic C\-a F Show a bar marking the current frame. .It Ic definekey Ar keymap key command Add a new key binding in .Ar keymap for .Ar key to execute .Ar command . Default keymaps are .Li top normally only containing .Ic C\-a , which reads a key from .Li root , containing all the normal commands. .Pp Note that you have to describe ":" by "colon", "!" by "exclam" and so on. If you cannot guess a name of a key, try either .Ic C\-a Ar key and look at the error message, or try .Ic :describekey Li root and pressing the key. .It Ic dedicate Op Cm 0 | 1 Consider the current frame dedicated/chaste .Pq Cm 1 or promiscuous .Pq Cm 0 . .Pp A dedicated frame will not accept new windows. When new windows are to be focused, they will be opened in a non-dedicated frame instead. .Pp If no argument is given, toggle the current dedicateness. By default no windows are dedicated. .It Ic delete Pq Ic C\-a k Close the current window. .It Ic delkmap Ar keymap Deletes the keymap named .Ar keymap , that was generated with .Ic newkmap . The keymaps .Li top (or whatever was specified by .Ic set Ar topkmap ) and .Li root cannot be deleted. .It Ic describekey Ar keymap Grab the next key. Similar to .Ic readkey , .Ic describekey shows only the command in .Ar keymap , that would be executed by .Ic readkey . .It Ic echo Ar text Show .Ar text as .Nm message. .It Ic escape Ar key Update the default escape key to .Ar key . .Pp Strictly speaking it updates the .Ic readkey Li root command in the keymap .Li top to .Ar key , the .Ic other binding in .Li root to .Ar key , and .Ic meta binding in .Li root to .Ar key without modifiers or .Ic "C\-" Ns Ar key if .Ar key has no modifiers. (If .Ic set Ar topkmap was called with an argument other than .Ar top that will be used instead of .Ar top . ) .It Ic exchangedown Pq Ic C\-a C\-Down Exchange the window in the current frame with the window in the frame below the current frame. .It Ic exchangeleft Pq Ic C\-a C\-Left Exchange the window in the current frame with the window in the frame left of the current frame. .It Ic exchangeright Pq Ic C\-a C\-Right Exchange the window in the current frame with the window in the frame right of the current frame. .It Ic exchangeup Pq Ic C\-a C\-Up Exchange the window in the current frame with the window in the frame above the current frame. .It Ic exec Ar shell\-command Pq Ic C\-a \&! Spawn a shell executing .Ar shell\-command . .It Ic execa Ar shell\-command Spawn a shell executing .Ar shell\-command , without remembering the current frame, so that _NET_WM_PID declaring programs will be placed into the frame active when they open a window instead of the frame active when .Nm gets this command. .It Ic execf Ar frame shell\-command Spawn a shell executing .Ar shell\-command , showing _NET_WM_PID supporting programs in the given frame instead of the frame selected when this program is run. .It Ic execv Ar vscreen shell\-command Spawn a shell within a specific vscreen .Ar vscreen , executing .Ar shell\-command as in the 'exec' command (i.e., using "sh -c"). This is not likely to work well with 'winaddcurvscreen' set to 1 anywhere in the configuration file. .It Ic execw Ar shell\-command Spawn a shell executing .Ar shell\-command , but wait for it to finish. This should behave the same as .Ar exec but will wait for completion. Use timeout(1) if it might hang, or .Nm will hang itself waiting for completion. Use the 'exec' shell builtin as the first word in the command string to get similar behavior to .Ar execa owing to the forked pid remaining stable and known to .Nm . .It Ic fdump Op Ar screenno Output the defining data for all frames of the current screen, or for screen number .Ar screenno if this is specified. .It Ic focus Pq Ic C\-a Tab Focus the next frame. .It Ic focuslast Switch to the last selected focus. .It Ic focusleft Pq Ic C\-a Left Switch to the frame to the left of the current one. .It Ic focusdown Pq Ic C\-a Down Switch to the frame beneath the current one. .It Ic focusright Pq Ic C\-a Right Switch to the frame to the right of the current one. .It Ic focusprev Focus the previous frame. .It Ic focusup Pq Ic C\-a Up Switch to the frame above the current one. .It Ic frestore Ar frames Replace the current frames with the ones specified in .Ar frames in the format as generated by .Ic fdump . .It Ic fselect Oo Ar frameno Oc Pq Ic C\-a f If an argument is supplied, switch to a frame given by number .Ar frameno . .Pp If no argument is given, show a frame selector in each frame and wait for a key to be pressed. If the key matches an existing frame selector, this frame gets focused. .Pp Frame selectors are by default the numbers starting with zero, but they can be changed by .Ic set Ns ting .Ar framesels . .It Ic getenv Ar variable Output the value of the environment variable .Ar variable . .It Ic getsel Paste the current X Selection into the current window. .It Ic gravity Op Cm nw | w | sw | n | c | s | ne | e | se Change how in its frame the current window is aligned. .It Ic help Op Ar keymap If the optional parameter .Ar keymap is given, list all keybindings in this keymap, otherwise list all key bindings in keymap .Li root . .It Ic hsplit Oo Ar l Ns Li / Ns Ar p | Oo Li \- Oc Ns Ar pixels Oc Pq Ic C\-a S Split the current frame into left frame and a right frame. If no parameter is given, split in halves. If two numbers separated by a slash .Pq Ql "/" are given, the left one is .Ar l times the .Ar p Ns th part and the right one .Pq Ar p Li \- Ar l times the .Ar p Ns th part of the prior width. Otherwise the right half is .Ar pixels wide or the left one is .Ar pixels wide, depending whether there is .Ql \- in front of the number or not. .It Ic inext Like .Ic next but switch to the next window with the same resource class as the current one. (That means the next window belonging to the same application as the current one.) .It Ic info Pq Ic C\-a i Output the current the width, height, window number and window name of the current window. .Po What name means is chosen by .Dq Ic set Ar winname . .Pc .It Ic iprev Like .Ic prev but switch to the previous window with the same resource class as the current one. (That means the previous window belonging to the same application as the current one.) .It Ic iother Like .Ic other but switch to the window of the current vscreen that was last accessed and has the same resource class but is not currently visible. .It Ic kill Pq Ic C\-a K Close the X-connection of the X-client responsible for the current window. .It Ic lastmsg Pq Ic C\-a m Reshow the last message. .It Ic link Ar key Op Ar keymap Do what .Ar key is bound to in the keymap .Ar keymap if supplied. Otherwise what .Ar key is bound to in keymap .Li root . .It Ic listhook Ar event List all commands specified with .Ic addhook to be executed when even .Ar event occurs. .It Ic meta Oo Ar key Oc Pq Ic C\-a t Send the escape key (that which normally is .Ic C\-a ) to the current window. If a .Ar key is specified, this is sent instead. Note that some applications by default ignore the synthetic key that is sent using this command as it is considered a security hole. xterm is one such application. .It Ic newkmap Ar keymap Generate a new keymap named .Ar keymap . This keymap can be used to add new key-command mappings to it with .Ic definekey and can be called with .Ic readkey . .It Ic next Pq Ic C\-a Return | C\-a n | C\-a space Switch to the next window in the current vscreen. .It Ic nextscreen Pq Ic C\-a N Switch to the next screen. (If you have multiple physical ones.) .It Ic number Ar new Op Ar old Give the number .Ar new to the window with the number .Ar old or the current window. .It Ic only Pq Ic C\-a Q Remove all frames on the current screen except the current frame and maximize this one to the size of the whole screen. .It Ic other Pq Ic C\-a C\-a Switch to the window of the current vscreen that was last accessed but is not currently visible. .It Ic prev Pq Ic C\-a p Switch to the previous window in the current vscreen. .It Ic prevscreen Pq Ic C\-a P Switch to the previous screen. (If you have multiple physical ones.) .It Ic prompt Op Ar prompt .Nm will ask the user for input, showing .Ar prompt (or a single colon, if no argument is given) and output the input the user has made. Note that this command probably does not make much sense in interactive mode. .It Ic putsel Ar x\-selection Replace the X selection with the text .Ar x\-selection . It can be inserted into the current window with .Ic getsel . .It Ic quit Quit .Nm . .It Ic ratinfo Display the x y coordinates of the rat cursor relative to the screen. .It Ic ratrelinfo Display the x y coordinates of the rat cursor relative to the current window or current frame if no window is focused .It Ic ratwarp Ar x y Move the rat cursor to the position .Ar ( x , y ) . .It Ic ratrelwarp Ar deltax deltay Move the rat cursor to .Ar ( deltax , deltay ) , relative to the current position. .It Ic ratclick Op Ar button Simulate a rat click with .Ar button (button 1=left button if none given). .It Ic rathold Cm ( up | down ) Op Ar button Simulate pressing|releasing rat button .Ar button (1=left button if none given). .It Ic readkey Ar keymap Grab the next key pressed, and execute the command associated to this key in .Ar keymap . To show it is waiting for a key, .Nm will change the rat cursor to a square if .Va waitcursor is set. This command is perhaps best described with its usage in the default configuration: by pressing .Ic C\-a , which is the only key in the keymap top , the command .Qq Ic readkey Ar root is executed. The next key then executes the command in keymap .Li root belonging to this command. .It Ic redisplay Pq Ic C\-a l Extend the current window to the whole size of its current frame and redisplay it. (Useful to redisplay normal windows or bring transient windows to the full size of the frame as only normal windows are maximized by .Nm ) .It Ic redo Pq Ic C\-a U Revert the last .Ic undo of frame changes. .It Ic remhook Ar event command Remove command .Ar command from the list of commands to be called when event .Ar event is hit. (The command has to specified, as an event can have multiple commands attached to it.) Use .Qq Ic listhook Ar hook to get a list of all attached commands. .It Ic remove Pq Ic C\-a R Remove the current frame and extend some frames around to fill the remaining gap. .It Ic resize Oo Ar deltax deltay Oc Pq Ic C\-a r If .Ar deltax and .Ar deltay are supplied, resize the current frame by that (i.e. move the bottom right corner by the given offsets and then move this frame and resize adjacent frames to make the frames fill the whole screen again.) .Pp If in interactive mode no arguments are supplied, resize the current frame interactively: .Pp .Bl -tag -offset 2n -width "C-f, Right, l" -compact .It Ic Return finish resizing .It Ic C\-g , Escape abort resizing .It Ic C\-n , Down , j grow vertically .It Ic C\-p , Up , k shrink vertically .It Ic C\-f , Right , l grow horizontally .It Ic C\-b , Left , h shrink horizontally .It Ic s shrink to size of current window .El .Pp While resizing interactively, changes are in multiples of the amount of pixels given by .Ic set Cm resizeunit (by default 10). .It Ic restart Restart .Nm . .It Ic sdump Output the list of all screens. The screens are separated by commas. Each screen is shown as 6 values: its number, its x-coordinate, its y-coordinate, its width, its height and if it is currently selected (1=true, 0=false). .It Ic select ( Cm \- | Ar name | Ar number ) Pq Ic C\-a \&' If a number is given, switch to the window with number .Ar number . If a name is given, switch to the window in the current vscreen with name .Ar name . Blank the current frame, if .Cm \- is given. .It Ic set Op Ar variable Op Ar value If no argument is given, output all .Nm variables and their values. .Pp If one argument is given, output the value of .Nm variable .Ar variable . Otherwise set .Ar variable to .Ar value . What values are valid depends on the variable. See the section .Sx VARIABLES later in this document for details. .It Ic setenv Ar variable value Set the environment variable .Ar variable to .Ar value . .Po Environment variables will be passed to all programs started from .Nm . .Pc .It Ic sfdump Output all frames similar to .Ic fdump , but not limited to one screen, but all screens at once and with the screen number after each frame. .It Ic sfrestore Ar frames Replace the current frames with the ones specified in .Ar frames in the format as generated by .Ic sfdump . .It Ic shrink Shrink the current frame to the size of the current window with in. .It Ic split Oo Ar split Oc Pq Ic C\-a s alias for .Ic vsplit .It Ic source Ar file Read .Ar file and execute each line as .Nm command. .It Ic sselect Ar screennumber Switch to the screen .Ar screennumber . (If you have multiple physical ones.) .It Ic smove Oo Ar screen Oc Move the current window to the current frame and vscreen on screen .Ar screen and focus it. .It Ic stick Mark the current window as sticky in its current frame, making it unavailable to other frames when selecting an available window. .It Ic swap Ar dest-frame Oo Ar src-frame Oc Pq Ic C\-a x Exchange the window in .Ar src\-frame (or the current frame if there is no second argument) with the window .Ar dest\-frame (or ask interactively which frame to swap with if there is no argument). .It Ic title Ar newname Pq Ic C\-a A Overwrite the title of the current window with .Ar newname . All following .Nm commands will only know the window under the new name. .It Ic unalias Ar alias Remove the alias .Ar alias . .It Ic unbind Ar key alias for .Dl Ic undefinekey Ar root key .It Ic undefinekey Ar keymap key Remove the binding for .Ar key from .Ar keymap . .It Ic undo Pq Ic C\-a _ , C\-a u Un\-do the last change to the frameset. (Like splitting, resizing, deleting, ...) .Pp The amount of steps that can be undone is specified by the variable .Va maxundos . .It Ic unmanage Op Ar name Add .Ar name to the list of unmanaged windows. Thus, windows of this name will not be managed but allowed to choose their position themselves. .Pp In non\-interactive mode calling it without arguments will print the list. .Pp The list can be cleared again by calling .Ic clrunmanaged . .It Ic unsetenv Ar variable Remove variable .Ar variable from the list of environment variables. .It Ic unstick No longer consider the current window as sticky in its current frame, making it again available to appear in other frames. .It Ic verbexec Ar cmdline Spawn a shell executing .Ar cmdline after showing a message with the command. .It Ic version Pq Ic C\-a v Output version and compile time information. .It Ic vmove Oo Ar vscreen Oc Move the current window to the current frame on vscreen .Ar vscreen and switch to it. Specify by either name or number. .It Ic vnext Switch to next vscreen. .It Ic vother Switch to the last-accessed vscreen before the current one. .It Ic vprev Switch to previous vscreen. .It Ic vrename Rename current vscreen. .It Ic vscreens Output a list of all vscreens with their number. .It Ic vselect Ar vscreen Select the vscreen named .Ar vscreen . .It Ic vsplit Oo Ar l Ns Li / Ns Ar p | Ar "pixels-from-top" | Li \- Ns Ar "pixels-from-bottom" Oc Pq Ic C\-a s Split the current frame into upper frame and a lower frame. If no parameter is given, split in halves. If two numbers separated by a slash .Pq Dq Li / are given, the upper one is .Ar l times the .Ar p Ns th part and the lower one .Pq Ar p Li \- Ar l times the .Ar p Ns th part of the prior height. Otherwise the lower one is .Ar "pixels from bottom" wide or the upper one .Ar "pixels from top" high, depending whether there is a .Dq Li \- in front of the number or not. .It Ic windows Oo Ar format Oc Pq Ic C\-a w In interactive mode, show the list of all windows in the current vscreen for the duration specified by the variable .Va msgwait . If .Va msgwait was zero, toggle between indefinitely showing and not showing. .Pp The messages are shown in columns or rows depending on the value of .Va winliststyle in the format set by .Ic set Ar winfmt . The following substitutions happen in format: .Pp .Bl -tag -offset 2n -width 2n -compact .It Li %a application name (resource name) .It Li %c resource class .It Li %f frame number .It Li %g gravity of the window .It Li %h height of the window .It Li %H unit to resize the window vertically (height_inc) .It Li %i X Window ID .It Li %p process ID .It Li %l last access number .It Li %M string .Li Maxsize , if it specifies a maximum size .It Li %n window number .It Li %s window status .Po .Ql * is active window, .Ql + would be chosen by .Ic other , .Ql \- otherwise .Pc .It Li %S screen number .It Li %t window name .Po see .Ic set Ar winname .Pc , .It Li \&%T the string .Dq Li Transient , if it is a transient window .It Li %w width of the window .It Li %W unit to resize the window horizontally (width_inc) .It Li %x xrandr screen number .It Li %% litteral .Ql % .El .Pp Additionally there can be a positive decimal integer number between the percent sign and the format string to specify the length this value should be truncated to if longer. .Po For example: .Li %20t .Pc .Pp In non\-interactive mode, output the list of windows in the current vscreen line by line. The format string can be overwritten by the optional parameter .Ar format . .El .Sh VARIABLES .Nm variables can be shown and set with .Ic set . The following variables are supported: .Bl -tag -width Ds .It Cm barborder Ar pixels Selects how thick the frame around .Nm Ap s bar, prompt, and message windows is. .Pp Default is .Li 1 . .It Cm barbordercolor Ar color The color of the bar, prompt, and message windows .Nm creates. .Pp Default is .Li black . .It Cm bargravity Li nw | w | sw | n | c | s | ne | e | se Select the location where message and prompt bars appear. .Pp Default is .Li nw . .It Cm barinpadding Li 0 | 1 If there is padding, determines whether the bar appears at the edge of the screen .Pq Li 1 or at the edge of the window area .Pq Li 0 . .Pp Default is .Li 1 . .It Cm barpadding Ar x y Set horizontal padding of .Nm windows to .Ar x and vertical padding to .Ar y . .Pp Default is .Li 14 10 . .It Cm barsticky Li 0 | 1 When set to .Li 1 , the bar remains on screen at all times and when messages or lists are not being shown, it displays the output of the current window information formatted with .Ic stickyfmt . .Pp Default is .Li 1 . .It Cm bgcolor Ar color The background color of the windows .Nm creates. .Pp Default is .Li black . .It Cm border Ar pixels Selects how thick the frame around windows is. .Pp Default is .Li 1 . .It Cm bwcolor Ar color The border color of unfocused windows. .Pp Default is .Li black . .It Cm fgcolor Ar color The foreground color of the windows .Nm creates. .Pp Default is .Li #eeeee . .It Cm font Ar font Make .Nm use font .Ar font . .It Cm framefmt Ar format Choose the default format for the window label shown when selecting a different frame. .Pp Default is .Li Frame %f (%Wx%H) . .It Cm framemsgwait Ar seconds The duration the .Ql Current frame indicator is shown. If .Ar seconds is zero, wait until the next interactive command. If .Ar seconds is .Li -1 , don't show any message. .It Cm framesels Ar selectors Override the frame selectors .Ic fselect uses. The first character is the selector for the first frame, the second character is the selector for the second frame and so on. .Pp Using this variable, one can directly access more than 10 frames. .Pp Default is an empty string, which is equivalent to "0123456789". .It Cm fwcolor Ar color The border color of the focused window. .Pp Default is .Li black . .It Cm gap Ar pixels Specify the number of pixels surrounding each frame, except for the outer edges which border the screen or its padding. .Pp Default is .Li 20 . .It Cm historysize Ar number Specify maximum number of values kept in input history. .Pp Default is .Li 20 . .It Cm winaddcurvscreen Li 0 | 1 When set to .Pq Li 1 , new windows will always start in whatever the current vscreen, ignoring vscreen of the origin process. .Pp Default is .Li 0 . .It Cm ignoreresizehints Li 0 | 1 When set to .Pq Li 1 , window resize hints will be ignored, forcing windows to be the exact sizes of their containing frame. .Pp Default is .Li 0 . .It Cm inputwidth Ar pixels Determine the width of the input window. .Pp Default is .Li 200 . .It Cm maxsizegravity Li nw | w | sw | n | c | s | ne | e | se Set the default gravity new self-maximized windows will get. Possible values are the same as in the .Ic gravity command, which changes the gravity of an existing window: cardinal points or numbers 1 to 9. .Pp Default is .Li c . .It Cm maxundos Ar number The maximal amount of step .Nm can undo with the .Ic undo command. .Pp Default is 20. .It Cm msgwait Ar seconds The duration the message window is shown. If .Ar seconds is zero, wait infinitely. .Pp Default is 3. .It Cm onlyborder Li 0 | 1 Determine whether to show borders and gaps .Pq Li 1 or not .Pq Li 0 when there is only one frame on the screen. .Pp Default is .Li 1 . .It Cm padding Ar left top right bottom Set how much space at the borders of the screen will not be used. .Pp Default is .Li 20 20 20 20 . .It Cm resizefmt Ar format Choose the default format for the window label shown when interactively resizing a window. .Pp Default is .Li Resize frame (%Wx%H) which shows the window width and height divided by any .Li PResizeInc hints, which for terminals will show the number of columns and lines. .It Cm resizeunit Ar pixels Set the amount of pixels interactive .Ic resize will add/subtract in each step. .Pp Default is 5. .It Cm rudeness Ar number Show or set what kind of windows are allowed to jostle into the foreground. .sp .Ar number is a bitwise OR of the following values: .Pp .Bl -tag -offset 2n -width 2n -compact .It 1 Transient windows may raise. .It 2 Normal windows may raise. .It 4 New transient windows end up in the foreground. .It 8 New normal windows end up in the foreground. .It 16 Window raise from different vscreen will be permitted. .El .Pp Default is all allowed except vscreen switch, i.e.\& 15. .It Cm startupmessage Li 0 | 1 Decide whether to show a greeting message at startup. .Pp The default is .Li 1 . .It Cm stickyfmt Ar format Choose the default format for current window information shown in the bar when the .Ic barsticky setting is enabled. .Pp Default is .Li %t . .It Cm topkmap Ar kmap Make .Ar kmap the top keymap .Nm grabs directly. .Pp The default value is .Li top . .It Cm transgravity Li nw | w | sw | n | c | s | ne | e | se Set the default gravity new transient windows will get. Possible values are the same as in the .Ic gravity command, which changes the gravity of an existing window: cardinal points or numbers 1 to 9. .Pp Default is .Li c . .It Cm vscreens Ar number Set the number of virtual screens (vscreens). .Pp Default is .Li 12 . .It Cm warp Li 0 | 1 Decide if focusing a window moves the rat cursor to the place it had been last time this window was focused, or not. .Pp Default is .Li 0 (off). .It Cm wingravity Li nw | w | sw | n | c | s | ne | e | se Set the default gravity new normal windows will get. Possible values are the same as in the .Ic gravity command, which changes the gravity of an existing window: cardinal points or numbers 1 to 9. .Pp Default is .Li nw . .It Cm waitcursor Li 0 | 1 Determine whether to change the rat cursor when waiting for a key .Pq Li 1 or not .Pq Li 0 See .Ic readkey and .Ic describekey . .Pp Default is .Li 1 . .It Cm winfmt Ar format Choose the default format for the .Ic windows command. .Pp Default is .Li %n%s%t . .It Cm winliststyle Li row | column Determines whether windows are shown in rows or in columns. .Pp Default is column. .It Cm winname Li title | name | class Choose what is considered the "name" of the window by .Nm : .Pp .Bl -tag -width Ds -compact .It title The title of the window. .It name The resource name of the window. .It class The resource class i.e. the name of the application. .El .Pp Default is .Li title . .El .Sh FILES .Bl -tag -compact .It Pa ~/.config/sdorfehs/config Configuration file read at startup time, if present. .Pp .It Pa ~/.config/sdorfehs/control Unix socket which accepts remote control commands sent by .Nm Fl c . .Pp .It Pa ~/.config/sdorfehs/bar FIFO/named pipe which accepts input to show on the sticky bar when .Ic barsticky is enabled. .El .Sh EXIT STATUS .Ex -std .Sh AUTHORS .An -nosplit .Nm is maintained by .An joshua stein Aq Mt jcs@jcs.org and is derived from ratpoison which was originally written by .An Shawn Betts Aq Mt sabetts@gmail.com .