Next: Introduction, Previous: (dir), Up: (dir) [Contents][Index]
This is the clfswm Reference Manual, version 1209.2, generated automatically by Declt version 4.0 beta 2 "William Riker" on Mon Aug 15 04:13:05 2022 GMT+0.
Next: Systems, Previous: The clfswm Reference Manual, Up: The clfswm Reference Manual [Contents][Index]
CLFSWM[0] - A(nother) Common Lisp FullScreen Window Manager CLFSWM is a 100% Common Lisp X11 window manager (based on [1]Tinywm and [2]Stumpwm. Many thanks to them). It can be driven only with the keyboard or with the mouse. A display contains a root frame and its children. A child can be a window or another frame. The root frame or its children can be the current root. The current root is fullscreen maximized (no decorations, no buttons, no menus: nothing, just the application fullscreen!). CLFSWM is highly dynamic. By default there is only one frame. Other frames are created/deleted on the fly. A window can be in more than one frame, so it can have multiple views of the same windows. Using CLFSWM is like walking through a tree of frames and windows. Enter in a child to make it the current root and make it fullscreen maximized. Leave it to make its parent the current root. Here is the default key binding to navigate through this tree: * Alt-Tab: circulate through children of the current child. * Alt-Left/Right: circulate through brother children (ie: this is like workspaces for a more conventional window manager) * Alt-Up: select the first child of the current frame. * Alt-Down: select the parent of the current child. * Alt-Enter: Make the current selected child the current root (ie maximize it) * Alt+Shift-Enter: Make the parent of the current root the current root (ie unmaximize the current root). There is no more need for a pager: you are in the pager! For its binding, CLFSWM has two modes: A main mode with minimal keys and mouse grabbing to avoid conflicts with others applications. And a second mode with more keys and mouse actions. For details of its usage, have a look at the files doc/keys.txt or doc/keys.html A lot of functions to manage CLFSWM can be found in the second mode menu. See the file menu-def.lisp for an overview. A frame can be placed anywhere in its parent frame. And can have different layouts to automatically manage its children (tile, tile to left, to bottom, no layout...). * Installation Boot up a common lisp implementation. I develop it with sbcl, I test it with cmucl regularly and I use it with clisp (you need the clx/xlib package). To use CLFSWM, load the load.lisp file. It loads the ASDF package, build the system and start the main loop. Then it dumps an executable image. it may also install files for you in a standard directory (/usr/local for example). Have a look at load.lisp for more details. You can also make a copy and tweak it. Another way is to do something like this: $ cd /in/the/directory/of/clfswm/ $ clisp/cmucl/sbcl/... # start a lisp > (load "asdf.lisp") ; asdf for clisp or cmucl or> (require :asdf) ; asdf for sbcl > (require :clx) ; clx for cmucl > (asdf:oos 'asdf:load-op :clfswm) ; compile and load the system > (in-package :clfswm) ; go in the clfswm package > (clfswm:main) ; start the main loop * Tweaking To change the default keybinding, have a look at the bindings*.lisp files and at the config.lisp file for global variables. All variables can be overwritten in a user configuration file: $XDG_CONFIG_HOME/clfswm/clfswmrc or $HOME/.clfswmrc or /etc/clfswmrc. It's a standard lisp file loaded at start up. There is an example in the clfswm source (see dot-clfswmrc). There is a lot of hooks in CLFSWM to tweak its behaviour. For example, if you want to add some frames at start up you can write your own init-hook (see dot-clfswmrc). * Lisp implementation note If you are using clisp/new-clx, be sure to use the last version (at least 2.43). Older versions are a little bit bogus. If you are using clisp/mit-clx or an other clx than clisp/new-clx, you may find a speed up with the compress notify event. See the variable *have-to-compress-notify* in the configuration file. * License CLFSWM is under the GNU General Public License - GPL license. You can find more information in the files COPYING. or on the [3]Free Software Foundation site. Philippe Brochard. Références http://common-lisp.net/project/clfswm/ http://trac.common-lisp.net/clfswm/ 1. http://incise.org/index.cgi/TinyWM 2. http://www.nongnu.org/stumpwm/ 3. http://www.gnu.org/
Next: Modules, Previous: Introduction, Up: The clfswm Reference Manual [Contents][Index]
The main system appears first, followed by any subsystem dependency.
CLFSWM: Fullscreen Window Manager
Philippe Brochard <hocwp@free.fr>
GNU Public License (GPL)
1209.2
src (module).
Next: Files, Previous: Systems, Up: The clfswm Reference Manual [Contents][Index]
Modules are listed depth-first from the system components tree.
clfswm (system).
Next: Packages, Previous: Modules, Up: The clfswm Reference Manual [Contents][Index]
Files are sorted by type and then listed depth-first from the systems components trees.
Next: clfswm/src/tools.lisp, Previous: Lisp, Up: Lisp [Contents][Index]
clfswm (system).
Next: clfswm/src/version.lisp, Previous: clfswm/clfswm.asd, Up: Lisp [Contents][Index]
src (module).
Next: clfswm/src/my-html.lisp, Previous: clfswm/src/tools.lisp, Up: Lisp [Contents][Index]
tools.lisp (file).
src (module).
*version* (special variable).
Next: clfswm/src/package.lisp, Previous: clfswm/src/version.lisp, Up: Lisp [Contents][Index]
tools.lisp (file).
src (module).
Next: clfswm/src/keysyms.lisp, Previous: clfswm/src/my-html.lisp, Up: Lisp [Contents][Index]
src (module).
Next: clfswm/src/xlib-util.lisp, Previous: clfswm/src/package.lisp, Up: Lisp [Contents][Index]
package.lisp (file).
src (module).
Next: clfswm/src/config.lisp, Previous: clfswm/src/keysyms.lisp, Up: Lisp [Contents][Index]
src (module).
Next: clfswm/src/netwm-util.lisp, Previous: clfswm/src/xlib-util.lisp, Up: Lisp [Contents][Index]
src (module).
Next: clfswm/src/clfswm-keys.lisp, Previous: clfswm/src/config.lisp, Up: Lisp [Contents][Index]
src (module).
Next: clfswm/src/clfswm-autodoc.lisp, Previous: clfswm/src/netwm-util.lisp, Up: Lisp [Contents][Index]
src (module).
Next: clfswm/src/clfswm-internal.lisp, Previous: clfswm/src/clfswm-keys.lisp, Up: Lisp [Contents][Index]
src (module).
Next: clfswm/src/clfswm-placement.lisp, Previous: clfswm/src/clfswm-autodoc.lisp, Up: Lisp [Contents][Index]
src (module).
print-object (method).
Next: clfswm/src/clfswm-generic-mode.lisp, Previous: clfswm/src/clfswm-internal.lisp, Up: Lisp [Contents][Index]
src (module).
Next: clfswm/src/clfswm-query.lisp, Previous: clfswm/src/clfswm-placement.lisp, Up: Lisp [Contents][Index]
src (module).
generic-mode (function).
Next: clfswm/src/clfswm-circulate-mode.lisp, Previous: clfswm/src/clfswm-generic-mode.lisp, Up: Lisp [Contents][Index]
src (module).
Next: clfswm/src/clfswm.lisp, Previous: clfswm/src/clfswm-query.lisp, Up: Lisp [Contents][Index]
src (module).
Next: clfswm/src/clfswm-second-mode.lisp, Previous: clfswm/src/clfswm-circulate-mode.lisp, Up: Lisp [Contents][Index]
src (module).
Next: clfswm/src/clfswm-expose-mode.lisp, Previous: clfswm/src/clfswm.lisp, Up: Lisp [Contents][Index]
src (module).
Next: clfswm/src/clfswm-fastswitch-mode.lisp, Previous: clfswm/src/clfswm-second-mode.lisp, Up: Lisp [Contents][Index]
src (module).
Next: clfswm/src/clfswm-corner.lisp, Previous: clfswm/src/clfswm-expose-mode.lisp, Up: Lisp [Contents][Index]
src (module).
Next: clfswm/src/clfswm-info.lisp, Previous: clfswm/src/clfswm-fastswitch-mode.lisp, Up: Lisp [Contents][Index]
src (module).
Next: clfswm/src/clfswm-menu.lisp, Previous: clfswm/src/clfswm-corner.lisp, Up: Lisp [Contents][Index]
src (module).
Next: clfswm/src/clfswm-configuration.lisp, Previous: clfswm/src/clfswm-menu.lisp, Up: Lisp [Contents][Index]
src (module).
reload-clfswm (function).
Next: clfswm/src/menu-def.lisp, Previous: clfswm/src/clfswm-util.lisp, Up: Lisp [Contents][Index]
src (module).
Next: clfswm/src/clfswm-pack.lisp, Previous: clfswm/src/menu-def.lisp, Up: Lisp [Contents][Index]
src (module).
Next: clfswm/src/clfswm-nw-hooks.lisp, Previous: clfswm/src/clfswm-layout.lisp, Up: Lisp [Contents][Index]
src (module).
Next: clfswm/src/bindings.lisp, Previous: clfswm/src/clfswm-pack.lisp, Up: Lisp [Contents][Index]
src (module).
Next: clfswm/src/bindings-second-mode.lisp, Previous: clfswm/src/clfswm-nw-hooks.lisp, Up: Lisp [Contents][Index]
src (module).
Previous: clfswm/src/bindings.lisp, Up: Lisp [Contents][Index]
src (module).
Next: Definitions, Previous: Files, Up: The clfswm Reference Manual [Contents][Index]
Packages are listed by definition order.
common-lisp.
Next: Indexes, Previous: Packages, Up: The clfswm Reference Manual [Contents][Index]
Definitions are sorted by export status, category, package, and then by lexicographic order.
Next: Internals, Previous: Definitions, Up: Definitions [Contents][Index]
Next: Macros, Previous: Public Interface, Up: Public Interface [Contents][Index]
Next: Ordinary functions, Previous: Special variables, Up: Public Interface [Contents][Index]
Add a hook only if not duplicated
Add a hook. Duplicate it if needed
Set var to val only when var not equal to val
Bind symbol to all internal symbols in package
Same thing as add-timer but with syntaxic sugar
Next: Standalone methods, Previous: Macros, Up: Public Interface [Contents][Index]
Start the function fun at delay seconds.
Append spaces before Newline on each line
Start the function fun at delay seconds.
Call a hook (a function, a symbol or a list of functions) Return the result of the last hook
Remove Newline and upcase string
execute program with args a list containing the arguments passed to
the program if wt is non-nil, the function will wait for the execution
of the program to return.
returns a two way stream connected to stdin/stdout of the program
Ensure an object is a list
Ensure that list has exactly n elements
Ensure a string is printable in ascii
Erase the timer identified by its id
Replace in string all characters found in the escaper list
Exit clfswm
Expand all newline in strings in list
Is the character an alphanumeric or one of the following characters: -, _, ., +, =, *, :, %.
Find a word pair
Return the string in common in all string in list
Return a number that is not in the list l.
Return the key associated to val in the hashtable
Return true only if word is at position 0 in string
Return the value of the environment variable.
Set an environment variable.
Insert elem in (nth n list)
Convert all integer string in lst to integer
Print n spaces on stream
Call each timers in *timer-list* if needed
x.
y.
Reload clfswm
Return a string containing N CHARs.
Reset clfswm
Return the key who match the val in the hashtable
Shuffle a list by swapping elements time times
Return a list from a string splited at each separators
Return the string in list witch match the match string
Search the string ’search’ in the symbol name of ’symbol’
Common interface to shell. Does not return anything useful.
Previous: Ordinary functions, Up: Public Interface [Contents][Index]
Previous: Public Interface, Up: Definitions [Contents][Index]
Next: Special variables, Previous: Internals, Up: Internals [Contents][Index]
Ask close/kill window placement
Pointer banishment placement
Hook executed when keys/buttons are bounds
Windows and frames border size
Circulate string window background color
Circulate string window border color
Circulate string window font string
Circulate string window foreground color
Circulate mode window height
Circulate mode window placement
Maximum text limite in the circulate window
Circulate window background transparency
Circulate mode window width
The clfswm terminal command.
This command must set the window title to *clfswm-terminal-name*
The clfswm terminal name
Close hook. This hook is run just before closing the display
Color of maybe selected windows
Color when moving or resizing a windows
Color of selected window
Color of unselected color
Time to wait before checking window in query tree
Number of try to wait the window in query tree
Error message color
Time to display the error message on commad error
Actions on corners in the main mode with the left mouse button
Actions on corners in the main mode with the middle mouse button
Actions on corners in the main mode with the right mouse button
Actions on corners in the second mode with the left mouse button
Actions on corners in the second mode with the middle mouse button
Actions on corners in the second mode with the right mouse button
The size of the corner square
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 mouse focus policy. One of :click, :sloppy, :sloppy-strict, :sloppy-select or :sloppy-select-window.
The default font used in clfswm
Default slots set in frame date
Default managed window types
Default modifiers list to append to explicit modifiers Example: :mod-2 for num_lock, :lock for Caps_lock...
Default action to do on newly created windows
Default transparency for all windows when in xcompmgr transparency mode
Default window height
Default window width
Expose string window background color
Expose string window background color for matching letters
Expose string window border color
Immediately select child if they can be directly accessed
Expose string window font string
Expose string window foreground color
Expose string window foreground color for letters
Expose string window foreground color for letter not selected
Expose mode window placement (Selection keys position)
Expose mode query window placement
Show the window title on accel window
Expose string window background transparency
Valid expose mode when an accel key is pressed
Fastswitch adjust window to show all children names
Fastswitch string window background color
Fastswitch string window border color
Fastswitch display mode (one of LINE or TREE)
Fastswitch string window font string
Fastswitch string window foreground color
Fastswitch string window foreground color for childname
Fastswitch string window foreground color for letters
Fastswitch string window foreground color for letters
Fastswitch string window foreground color for letters for frames
Fastswitch mode window placement
Fastswitch show frame in mini window
Fastswitch string window background transparency
Frame background
Frame foreground
Frame foreground for hidden windows
Frame foreground when the frame is the root frame
Frame background transparency
Time to display the GIMP layout notify window help
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 the current root if true
Hide or not unmanaged windows when a child is deselected.
Identify window background color
Identify window border color
Identify window font string
Identify window foreground color
Identify window background transparency
Info window background color
Info window border color
If true, click on info window select item. Otherwise, click to drag the menu
Colored info first color
Colored info second color
Colored info title color
Colored info underline color
Info window font string
Info window foreground color
Info window line cursor color color
Info mode window placement
Info selected item background color
Info window background transparency
Init hook. This hook is run just after the first root frame is created
Hook executed on each event loop
Maximum time (in seconds) to wait before calling *loop-hook*
Hook executed on the main function entrance after loading configuration file and before opening the display.
Comment color in menu
Key color in menu
Menu key color in menu
Submenu color in menu
Key bound min menu color
Syntax: (modifier-alias effective-modifier)
CLFSWM will never manage windows of this type. A list of (list match-function handle-function)
Notify Window background color
Notify Window border color
Notify Window display delay
Notify window font string
Notify Window foreground color
Notify window placement
Notify window background transparency
Query string window background color
Query string window border color
Query hook. Hook called on each button press event in query loop
Query string window foreground cursor color
Query string window font string
Query string window foreground color
Query hook. Hook called on each key press event in query loop
Query maximum length of completion list
Query string window message color
Query minimum input length for completion
Query mode window placement
Query string window parenthesis color
Query string window parenthesis color when no match
Query string window background transparency
Root of the root - ie the root frame
Hook executed when the root size has changed for example when adding/removing a monitor
Execute the function if not nil
Second mode window placement
Delay to show the current root
Current root notify window message
Current root notify window placement
’NIL’: always display all children (better with transparency support).
’<’: Hide only children less than children above.
’<=’: Hide children less or equal to children above (better for performance on slow machine).
Windows types which are optimized by the show hide policy
Show the root frame information or not
Second mode window background color
Second mode window border color
Second mode window font string
Second mode window foreground color
Second mode window height
Second mode background transparency
Second mode window width
Snap size (in % of parent size) when move or resize frame is constrained
Delay to display the new child after doing a spatial move
Delay to display the current child before doing a spatial move
Allow to steal the focus on configure request
Enable transparent background: one of nil, :pseudo, t (xcompmgr must be started)
Unmanager window placement
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
The events to listen for on managed windows.
Standard menu sections
Supported NETWM properties. Window types are in +WINDOW-TYPES+.
Alist mapping NETWM window types to keywords.
Next: Setf expanders, Previous: Special variables, Up: Internals [Contents][Index]
Like a defun but with a name expanded as handle-event-fun-’mode’-’keyword’
For example (define-handler main-mode :key-press (args) ...)
Expand in handle-event-fun-main-mode-key-press
Define a second key to start a shell command
Drawable wrapper to prevent type error in some CLX versions. Replace xlib:drawable-* functions with x-drawable-* equivalents
Convert a char to a keysym
Temporarly change the current child
Bind x y w h bds to current child coordinates and border size
Bind ’window’ to the current window
Bind symbol to all handle event functions available in mode
Bind (x y) to mouse pointer positions
Ignore Xlib errors in body.
Next: Ordinary functions, Previous: Macros, Up: Internals [Contents][Index]
child-border-size (generic function).
set-child-border-size (generic function).
child-name (generic function).
set-child-name (generic function).
child-transparency (generic function).
set-child-transparency (generic function).
current-child (function).
current-child-setter (function).
frame-data-slot (function).
set-frame-data-slot (function).
window-state (function).
set-window-state (function).
window-transparency (function).
set-window-transparency (function).
x-drawable-border-width (function).
set-x-drawable-border-width (function).
x-drawable-height (function).
set-x-drawable-height (function).
x-drawable-width (function).
set-x-drawable-width (function).
x-drawable-x (function).
set-x-drawable-x (function).
x-drawable-y (function).
set-x-drawable-y (function).
Next: Generic functions, Previous: Setf expanders, Up: Internals [Contents][Index]
Adapt the current frame to the current window minimal height hint
Adapt the current frame to the current window minimal size hints
Adapt the current frame to the current window minimal size hints
Adapt the current frame to the current window minimal width hint
Add a default frame in the current frame
Add a frame in the parent frame (and reorganize parent frame)
Add the current window in the main window list
Add a modifier in a state
Add a placed frame in the current frame
Set a click focus policy for all frames.
Set a sloppy focus policy for all frames.
Set a sloppy select policy for all frames.
Set a sloppy select window policy for all frames.
Set a (strict) sloppy focus policy for all frames.
Anti rotate brother frame geometry
Close or kill the current window (ask before doing anything)
Ask a frame name
Associate all keywords in mode to their corresponding handle event functions. For example: main-mode :key-press is bound to handle-event-fun-main-mode-key-press
Move the pointer to the lower right corner of the screen
Bind current child to slot
Bind or jump to a slot (a frame or a window)
Utility to change modifiers after binding definition
Bury the current child: put the current child at the end of the parent frame children list
Bury the first child: put the first child at the end of the current frame children list
Center the current frame
Center frame
Change the current root geometry
Convert a character to a keycode
h.
w.
x.
y.
Select the next brother
Select the next child
Select the next subchild
Select the previous borther
Select the previous child
Define a mapping from a keysym name to a keysym.
Remove all xlib:windows present in *root-frame* and not in the xlib tree
Clear all new window hooks for all frames
Clear the main window list
Clear the frame new window hook
Clear the query-string history
Clear the current selection
doc.
Copy the current child to the selection
Copy current child in a named frame
Copy current child in a numbered frame
Copy the focus window to the selection
Configuration menu
Fill the current frame in all directions
Fill the current frame down
Fill the current frame horizontally
Fill the current frame left
Fill the current frame right
Fill the current frame up
Fill the current frame vertically
Manage all window type
Do not manage any window type
Manage only normal window type
Change window types to be managed by a frame
Pack the current frame down
Pack the current frame left
Pack the current frame right
Pack the current frame up
Resize down the current frame
Resize down the current frame to its minimal size
Resize the current frame down to its half height
Resize the current frame left to its half width
Resize the current frame right to its half width
Resize the current frame up to its half height
Set a click focus policy for the current frame.
Set a sloppy focus policy for the current frame.
Set a sloppy select policy for the current frame.
Set a sloppy select window policy for the current frame.
Set a (strict) sloppy focus policy only for windows in the current frame.
Cut the current child to the selection
Cut the focus window to the selection
Decrease slowly the tile layout size
Decrease the tile layout size
Decrement the child under mouse transparency
Decrement slowly the child under mouse transparency
Open the next window in the current frame
Define a new key, a key is ’(char modifier1 modifier2...))
Define a new key, a key is ’(char modifier1 modifier2...))
Define a new key, a key is ’(char modifier1 modifier2...))
Define a new mouse button action, a button is ’(button number ’(modifier list))
Define a new key, a key is ’(char modifier1 modifier2...))
Define a new mouse button action, a button is ’(button number ’(modifier list))
Define a new key, a key is ’(char modifier1 modifier2...))
Define a new mouse button action, a button is ’(button number ’(modifier list))
Define a new key, a key is ’(char modifier1 modifier2...))
Define a new key, a key is ’(char modifier1 modifier2...))
Define a new mouse button action, a button is ’(button number ’(modifier list))
Delete child and its children in all frames from *root-frame*
Delete child and its children in the frame root and in all its children Warning:frame window and gc are freeed.
Delete child in all frames from *root-frame*
Delete child in the frame root and in all its children Warning:frame window and gc are freeed.
Delete the current child and its children in all frames
Close focus window: Delete the focus window in all frames and workspaces
Delete a frame by name
Delete a frame by number
Kill focus window: Destroy the focus window in all frames and workspaces
Display all X11 cursors for display-time seconds
Display information on the current window
Call nw-hook of each frame.
Do the action associated with corner. The corner function must return T to stop the button event
Return a tree of frames.
Ensure that all children names are unique
Ensure that all children numbers are unique
Enter in the selected frame - ie make it the root frame
Handle X errors
Eval a lisp form from the query input
Exchange two root geometry pointed with the mouse
Create a new frame for each window in frame
Create a new frame for each window in frame
Present all windows in all frames (An expose like)
gc.
key.
Present all windows in currents roots (An expose like)
Present all windows in currents roots (An expose like)
Switch between two layouts
Switch between children with expose shortcut
Move children with expose shortcut
Fill a frame down
Fill a frame left
Fill a frame rigth
Fill a frame up
Return keys in main and second mode bounds to function
Find to-find in root or in its children
Return t if child is in base or in its parents
Return the child under the mouse
Return the child under mouse from never managed windows
Find a frame from its name
Find a frame from its number
Return the frame with the window window
Print all handle event functions available in mode
Return the function associated to code/state
key is :next for the next free key in menu or a string
Return the parent frame of to-find
Fixe real (pixel) coordinates in float coordinates
Fixe real (pixel) coordinates in float coordinates for children in the current child
Focus child and its parents -
For window: set current child to window or its parent according to window-parent
Focus child - Return true if something has change
Focus child and its parents - Return true if something has change
Focus a frame by name
Focus a frame by number
Give the window focus.
Force the current window to move in the center of the frame (Useful only for unmanaged windows)
Force the current window to move in the frame (Useful only for unmanaged windows)
Return the value associated to data slot
Lower the child in the current frame
Raise the child in the current frame
Select the next child in the current frame
Select the previous child in the current frame
Maximize/Unmaximize the current frame in its parent frame
Unhide a hidden child from frame-src in frame-dest
Enter in a generic mode
Return a list of all children in root
Return all frame windows in root and in its children
Return all frame in root and in its children
Return all windows in root and in its children
Return all hiddens windows
Return only the windows that are managed for tiling
Convert float Height coordinate to pixel
Convert pixel Height coordinate to float
Open the help and info window
Help on the GIMP layout
Hide root and all its children
Hide all root children
Hide all frames info windows
Hide the current child
Hide the current frame window
Hide all existing windows in screen
Hide/show the frame window
Identify a key
Absorb all frames subchildren in frame (explode frame opposite)
Absorb all frames subchildren in frame (explode frame opposite)
Return t if (x, y) is in corner.
Corner is one of :bottom-right :bottom-left :top-right :top-left
Increase slowly the tile layout size
Increase the tile layout size
Increment the child under mouse transparency
Increment slowly the child under mouse transparency
Begin grab text
End grab
font.
list.
Open the info mode. Info-list is a list of info: One string per line
Or for colored output: a list (line_string color)
Or ((1_word color) (2_word color) 3_word (4_word color)...)
Open an info help menu.
Item-list is: ’((key function) separator (key function))
or with explicit docstring: ’((key function "documentation 1") (key function "bla bla") (key function))
key is a character, a keycode or a keysym
Separator is a string or a symbol (all but a list)
Function can be a function or a list (function color) for colored output
Grab text
Move one line down
Move one line up
Jump to slot
Decrement the current window transparency
Increment the current window transparency
Produce a key menu based on list item
Return the name corresponding to KEYSYM.
Return the keysym corresponding to NAME.
Leave the circulate mode
Leave the expose mode
Leave the fastswitch mode
Open the next window in the current frame and leave the focus on the current child
Leave the selected frame - ie make its parent the root frame
Leave the child if it’s not a frame
Leave the info mode
Leave the info mode and valid the selected item
Leave the query mode
Leave second mode
Load a file in the contrib directory
Map the window if needed and bring it just above sibling. Does not affect focus.
Main window bottom: Main windows on the bottom. Others on the top.
Main window left: Main windows on the left. Others on the right.
Main window right: Main windows on the right. Others on the left.
Main window top: Main windows on the top. Others on the bottom.
Prevent to add or delete a new window hook for this frame
Force to manage the current window by its parent frame
Return t only if window is managed by frame
doc.
item.
key.
name.
Move and focus the current frame or focus the current window parent. Or do actions on corners
Move and focus the current frame or focus the current window parent. Or do actions on corners - Skip windows in main window list
Move and focus the current child - Create a new frame on the root window
Move (constrained by other frames) and focus the current child - Create a new frame on the root window
Resize and focus the current frame or focus the current window parent. Or do actions on corners
Resize and focus the current child - Create a new frame on the root window
Resize (constrained by other frames) and focus the current child - Create a new frame on the root window
Focus the current frame or focus the current window parent mouse-fun is #’move-frame or #’resize-frame
Enter in the selected frame - ie make it the root frame
Focus the current frame or focus the current window parent
mouse-fun is #’move-frame or #’resize-frame.
Focus child and its parents -
For window: set current child to window or its parent according to window-parent
Leave the expose mode
Leave the selected frame - ie make its parent the root frame
Leave the info mode
Do actions on corners
Move the child under the mouse cursor to another frame
Select the next level in frame
Select the previous level in frame
Valid the expose mode
Move current child in a named frame