# CLFSWM - Configuration variables

Here are the variables you can configure in CLFSWM with the configuration file or the configuration menu:

### Configuration variables groups:

- Circulate Mode Group
- Corner Group
- Expose Mode Group
- Frame Colors Group
- Gimp Layout Group
- Hook Group
- Identify Key Group
- Info Mode Group
- Main Mode Group
- Menu Group
- Miscellaneous Group
- Notify Window Group
- Placement Group
- Query String Group
- Second Mode Group

<= Circulate Mode Group =>

*circulate-font-string* = "fixed"
Circulate string window font string
*circulate-background* = "black"
Circulate string window background color
*circulate-foreground* = "green"
Circulate string window foreground color
*circulate-border* = "red"
Circulate string window border color
*circulate-width* = 400
Circulate mode window width
*circulate-height* = 15
Circulate mode window height
*circulate-text-limite* = 30
Maximum text limite in the circulate window

<= Corner Group =>

*corner-size* = 3
The size of the corner square
*corner-main-mode-left-button* = ((:TOP-LEFT OPEN-MENU)
(:TOP-RIGHT PRESENT-VIRTUAL-KEYBOARD)
(:BOTTOM-RIGHT EXPOSE-WINDOWS-MODE)
(:BOTTOM-LEFT NIL))
Actions on corners in the main mode with the left mouse button
*corner-main-mode-middle-button* = ((:TOP-LEFT HELP-ON-CLFSWM)
(:TOP-RIGHT
ASK-CLOSE/KILL-CURRENT-WINDOW)
(:BOTTOM-RIGHT NIL) (:BOTTOM-LEFT NIL))
Actions on corners in the main mode with the middle mouse button
*corner-main-mode-right-button* = ((:TOP-LEFT PRESENT-CLFSWM-TERMINAL)
(:TOP-RIGHT ASK-CLOSE/KILL-CURRENT-WINDOW)
(:BOTTOM-RIGHT EXPOSE-ALL-WINDOWS-MODE)
(:BOTTOM-LEFT NIL))
Actions on corners in the main mode with the right mouse button
*corner-second-mode-left-button* = ((:TOP-LEFT NIL) (:TOP-RIGHT NIL)
(:BOTTOM-RIGHT EXPOSE-WINDOWS-MODE)
(:BOTTOM-LEFT NIL))
Actions on corners in the second mode with the left mouse button
*corner-second-mode-middle-button* = ((:TOP-LEFT HELP-ON-CLFSWM)
(:TOP-RIGHT NIL) (:BOTTOM-RIGHT NIL)
(:BOTTOM-LEFT NIL))
Actions on corners in the second mode with the middle mouse button
*corner-second-mode-right-button* = ((:TOP-LEFT NIL) (:TOP-RIGHT NIL)
(:BOTTOM-RIGHT EXPOSE-ALL-WINDOWS-MODE)
(:BOTTOM-LEFT NIL))
Actions on corners in the second mode with the right mouse button
*virtual-keyboard-cmd* = "xvkbd"
The command to display the virtual keybaord
Here is an ~/.Xresources example for xvkbd:
xvkbd.windowGeometry: 300x100-0-0
xvkbd*Font: 6x12
xvkbd.modalKeytop: true
xvkbd.customization: -french
xvkbd.keypad: false
And make it always on top
*clfswm-terminal-name* = "clfswm-terminal"
The clfswm terminal name
*clfswm-terminal-cmd* = "xterm -T clfswm-terminal"
The clfswm terminal command.
This command must set the window title to *clfswm-terminal-name*

<= Expose Mode Group =>

*expose-font-string* = "fixed"
Expose string window font string
*expose-background* = "black"
Expose string window background color
*expose-foreground* = "green"
Expose string window foreground color
*expose-border* = "red"
Expose string window border color
*expose-valid-on-key* = T
Valid expose mode when an accel key is pressed
*expose-show-window-title* = T
Show the window title on accel window

<= Frame Colors Group =>

*frame-background* = "Black"
Frame background
*frame-foreground* = "Green"
Frame foreground
*frame-foreground-root* = "Red"
Frame foreground when the frame is the root frame
*frame-foreground-hidden* = "Darkgreen"
Frame foreground for hidden windows

<= Gimp Layout Group =>

*gimp-layout-notify-window-delay* = 30
Time to display the GIMP layout notify window help

<= Hook Group =>

*binding-hook* = (SET-DEFAULT-CIRCULATE-KEYS SET-DEFAULT-EXPOSE-KEYS
INIT-*INFO-KEYS*
INIT-*INFO-MOUSE*
SET-DEFAULT-INFO-KEYS
SET-DEFAULT-INFO-MOUSE
INIT-*QUERY-KEYS*
SET-DEFAULT-QUERY-KEYS
INIT-*MAIN-KEYS*
INIT-*MAIN-MOUSE*
SET-DEFAULT-MAIN-KEYS
SET-DEFAULT-MAIN-MOUSE
INIT-*SECOND-KEYS*
INIT-*SECOND-MOUSE*
SET-DEFAULT-SECOND-KEYS
SET-DEFAULT-SECOND-MOUSE)
Hook executed when keys/buttons are bounds
*loop-hook* = NIL
Hook executed on each event loop
*main-entrance-hook* = NIL
Hook executed on the main function entrance after
loading configuration file and before opening the display.
*init-hook* = (DEFAULT-INIT-HOOK DISPLAY-HELLO-WINDOW)
Init hook. This hook is run just after the first root frame is created
*close-hook* = (CLOSE-NOTIFY-WINDOW CLOSE-CLFSWM-TERMINAL
CLOSE-VIRTUAL-KEYBOARD)
Close hook. This hook is run just before closing the display
*default-nw-hook* = DEFAULT-FRAME-NW-HOOK
Default action to do on newly created windows

<= Identify Key Group =>

*identify-font-string* = "fixed"
Identify window font string
*identify-background* = "black"
Identify window background color
*identify-foreground* = "green"
Identify window foreground color
*identify-border* = "red"
Identify window border color

<= Info Mode Group =>

*info-background* = "black"
Info window background color
*info-foreground* = "green"
Info window foreground color
*info-border* = "red"
Info window border color
*info-line-cursor* = "white"
Info window line cursor color color
*info-selected-background* = "blue"
Info selected item background color
*info-font-string* = "fixed"
Info window font string
*info-click-to-select* = T
If true, click on info window select item. Otherwise, click to drag the menu
*info-color-title* = "Magenta"
Colored info title color
*info-color-underline* = "Yellow"
Colored info underline color
*info-color-first* = "Cyan"
Colored info first color
*info-color-second* = "lightblue"
Colored info second color

<= Main Mode Group =>

*color-move-window* = "DeepPink"
Color when moving or resizing a windows
*color-selected* = "Red"
Color of selected window
*color-unselected* = "Blue"
Color of unselected color
*color-maybe-selected* = "Yellow"
Color of maybe selected windows

<= Menu Group =>

*menu-color-submenu* = "Cyan"
Submenu color in menu
*menu-color-comment* = "Yellow"
Comment color in menu
*menu-color-key* = "Magenta"
Key color in menu
*menu-color-menu-key* = #
Menu key color in menu
*xdg-section-list* = (TEXTEDITOR FILEMANAGER WEBBROWSER AUDIOVIDEO AUDIO
VIDEO DEVELOPMENT EDUCATION GAME GRAPHICS NETWORK
OFFICE SETTINGS SYSTEM UTILITY TERMINALEMULATOR
ARCHLINUX SCREENSAVER)
Standard menu sections

<= Miscellaneous Group =>

*have-to-compress-notify* = T
Compress event notify?
This variable may be useful to speed up some slow version of CLX.
It is particulary useful with CLISP/MIT-CLX.
*show-root-frame-p* = NIL
Show the root frame information or not
*border-size* = 1
Windows and frames border size
*loop-timeout* = 0.1
Maximum time (in seconds) to wait before calling *loop-hook*
*default-font-string* = "fixed"
The default font used in clfswm
*default-frame-data* = ((:TILE-SIZE 0.8) (:TILE-SPACE-SIZE 0.1)
(:FAST-LAYOUT (TILE-LEFT-LAYOUT TILE-LAYOUT))
(:MAIN-LAYOUT-WINDOWS NIL))
Default slots set in frame date
*default-managed-type* = (:NORMAL)
Default managed window types
*default-focus-policy* = :CLICK
Default mouse focus policy. One of :click, :sloppy, :sloppy-strict or :sloppy-select.
*default-modifiers* = NIL
Default modifiers list to append to explicit modifiers
Example: :mod-2 for num_lock, :lock for Caps_lock...
*never-managed-window-list* = ((EQUAL-WM-CLASS-ROX-PINBOARD NIL)
(EQUAL-WM-CLASS-XVKBD RAISE-WINDOW)
(EQUAL-CLFSWM-TERMINAL RAISE-AND-FOCUS-WINDOW))
CLFSWM will never manage windows of this type.
A list of (list match-function handle-function)
*hide-unmanaged-window* = T
Hide or not unmanaged windows when a child is deselected.
*snap-size* = 20
Snap size (in pixels) when move or resize frame is constrained
*spatial-move-delay-before* = 0.2
Delay to display the current child before doing a spatial move
*spatial-move-delay-after* = 0.5
Delay to display the new child after doing a spatial move
*create-frame-on-root* = NIL
Create frame on root.
Set this variable to true if you want to allow to create a new frame
on the root window in the main mode with the mouse
*default-window-width* = 400
Default window width
*default-window-height* = 300
Default window height

<= Notify Window Group =>

*notify-window-font-string* = "fixed"
Notify window font string
*notify-window-background* = "black"
Notify Window background color
*notify-window-foreground* = "green"
Notify Window foreground color
*notify-window-border* = "red"
Notify Window border color
*notify-window-delay* = 10
Notify Window display delay

<= Placement Group =>

*banish-pointer-placement* = BOTTOM-RIGHT-PLACEMENT
Pointer banishment placement
*second-mode-placement* = TOP-MIDDLE-PLACEMENT
Second mode window placement
*info-mode-placement* = TOP-LEFT-PLACEMENT
Info mode window placement
*query-mode-placement* = TOP-LEFT-PLACEMENT
Query mode window placement
*circulate-mode-placement* = BOTTOM-MIDDLE-PLACEMENT
Circulate mode window placement
*expose-mode-placement* = TOP-LEFT-CHILD-PLACEMENT
Expose mode window placement (Selection keys position)
*notify-window-placement* = BOTTOM-RIGHT-PLACEMENT
Notify window placement
*ask-close/kill-placement* = TOP-RIGHT-PLACEMENT
Ask close/kill window placement

<= Query String Group =>

*query-font-string* = "fixed"
Query string window font string
*query-background* = "black"
Query string window background color
*query-message-color* = "yellow"
Query string window message color
*query-foreground* = "green"
Query string window foreground color
*query-cursor-color* = "white"
Query string window foreground cursor color
*query-parent-color* = "blue"
Query string window parenthesis color
*query-parent-error-color* = "red"
Query string window parenthesis color when no match
*query-border* = "red"
Query string window border color

<= Second Mode Group =>

*sm-border-color* = "Green"
Second mode window border color
*sm-background-color* = "Black"
Second mode window background color
*sm-foreground-color* = "Red"
Second mode window foreground color
*sm-font-string* = "fixed"
Second mode window font string
*sm-width* = 300
Second mode window width
*sm-height* = 25
Second mode window height

This documentation was produced with the CLFSWM auto-doc functions. To reproduce it, use the produce-conf-var-doc-html-in-file or the produce-all-docs function from the Lisp REPL.

Something like this:
LISP> (in-package :clfswm)
CLFSWM> (produce-conf-var-doc-html-in-file "my-variables.html")
or
CLFSWM> (produce-all-docs)