Ion - an X11 window manager
Ion is a tiling tabbed window manager designed with keyboard users in mind.
X display to manage
Configuration file to use instead of default
Directory to search for configuration files and other scripts
On X servers with multiple (traditional non-Xinerama) screens, manage only default screen (root window), not all, as given by the -display option or in the DISPLAY environment variable.
Set session name. This option affects where workspace and other save files are put (~/.ion3/session_name if option set).
If Ion was compiled with Xinerama support, this option can be used to enable/disable (1/0) the use of it. The default is to use Xinerama screen information.
Show help on command line options
Show about text (version, copyright)
This section is an overview of the types objects that appear on an X display managed by Ion and their relationships in a standard setup. This information is necessary to understand the operations and availability of the different key bindings explained below. For a more detailed explanation, needed for writing custom bindings configuration files, see the additional documentation available from the Ion Web page.
The top-level objects that matter in the case at hand are screens. They correspond to physical screens. Screens contain workspaces and client windows put in full screen mode. These objects are multiplixed in the sense that only one can be displayed at a time.
Ion currently supports two types of workspaces; tiled of the traditional Ion-style and more conventional floating workspaces of the PWM flavour. Workspaces are not visible objects but rather collections of simultaneously visible frames.
Akin to screens, frames multiplex other objects, but in this case mostly client windows. Most of the time, frames are the only trace of Ion you see on the screen. Frames may have border decorations, and they have a tab for each multiplexed object.
Queries are boxes that appear at the bottoms of frames or screens to ask you for textual input to execute an action that depends on it. Most queries support tab-completion.
These are the default key and pointer bindings. (Mod1) depends on your system. On PC:s with XFree86 it is probably bound to the left Alt key (Alt_L). On Suns it is usually bound to the diamond keys (Meta_L, Meta_R). Use xmodmap(1x) to find out.
The string in square brackets after a binding group heading below indicates the module that whose configuration file defines these bindings.
Globally available bindings
Tag current object within the frame.
Mod1+K 1, Mod1+K 2, Mod1+K
3, Mod1+K 4, Mod1+K 5, Mod1+K 6, Mod1+K 7,
Mod1+K 8, Mod1+K 9, Mod1+K 0
Switch to n:th object within the frame.
Mod1+K N, Mod1+K P
Switch to next/previous object within the frame.
Mod1+K comma, Mod1+K period
Move current object within the frame left/right.
Mod1+K H, Mod1+K V
Maximize the frame horizontally/vertically.
Attach tagged objects to this frame.
Query for a client window to attach to active frame.
Mod1+M, Button3 press
Display frame context menu.
Begin move/resize mode.
Button1 click at tab, Button2 click at tab
Switch the frame to display the object indicated by the tab.
Button1 drag at border, Mod1+Button3 drag
Resize the frame.
Move the frame.
Button1 drag at tab, Button2 drag at tab
Move objects between frames by dragging and dropping the tab.
Mod1+1, Mod1+2, Mod1+3, Mod1+4, Mod1+5, Mod1+6, Mod1+7, Mod1+8, Mod1+9,
Switch to n:th object (workspace, full screen client window) within current screen.
Switch to next/previous object within current screen.
Go to previous active object.
Clear all tags.
Go to n:th screen on multihead setup.
Go to next/previous screen on multihead setup.
Create a new workspace of chosen default type.
F12, Button3 press
Display the main menu.
Display the window list menu.
Close current object.
Nudge current client window. This might help with some programs’ resizing problems.
Toggle fullscreen mode of current client window.
Kill client owning current client window.
Send next key press to current client window. Some programs may not allow this by default.
Query for manual page to be displayed.
Show the Ion manual page.
Run a terminal emulator.
Query for command line to execute.
Query for Lua code to execute.
Query for host to connect to with SSH.
Query for file to edit.
Query for file to view.
Query for workspace to go to or create a new one.
Query for a client window to go to.
Bindings operating on frames and their children
Cancel the resize mode.
End the resize mode.
Left, Right, Up, Down, F, B, P, N
Grow in specified direction.
Shift+Up, Shift+Down, Shift+F, Shift+B,
Shrink in specified direction.
Mod1+Up, Mod1+Down, Mod1+F, Mod1+B, Mod1+P,
Move in specified direction.
Bindings for tiled workspaces [mod_ionws]
Split current frame vertically.
Mod1+P, Mod1+N, Mod1+Tab, Mod1+K Tab
Go to frame above/below/right/left of current frame.
Split current frame horizontally.
Destroy current frame.
floating workspaces and frames [mod_floatws]
Circulate focus and raise the newly focused frame.
Backwards-circulate focus and raise the newly focused frame.
Raise/lower active frame.
Button1 double click at tab
Toggle shade mode
Button1 press at tab, Button1 press at border, Mod1+Button1 click
Raise the frame.
Lower the frame.
Button1 drag at tab
Move the frame.
message boxes and queries [mod_query]
Escape, Control+G, Control+C
Close the query/message box, not executing bound actions.
Control+U, Control+V, Page_Up, Page_Down
Scroll the message or completions up/down.
editing in queries [mod_query]
These bindings are similar to those of the joe(1) text editor. Cut, copy and paste works in a more conventional manner, though, but the keys are equivalent.
Control+F, Control+B, Right, Left
Move one character forward/backward.
Control+E, Control+A, End, Home
Go to end/beginning.
Skip one word forward/backward.
Delete next character.
Delete previous character.
Delete one word forward/backward.
Delete to end of line.
Delete the whole line.
Control+P, Control+N, Up, Down, Control+Up, Control+Down
Select next/previous (matching) history entry.
Button2 click, Control+K C
Paste from the clipboard.
Set mark/begin selection.
Clear mark/cancel selection.
Try to complete the entered text.
Control+M, Return, KP_Enter
Close the query and execute bound action.
Escape, Control+G, Control+C, Left
Close the menu.
Return, KP_Enter, Control+M, Right
Activate current menu entry.
Control+N, Control+P, Up, Down
Select next/previous menu entry.
Clear the menu’s typeahead find buffer.
System default main configuration files
Other configuration files.
Colour scheme configuration files
User configuration files
User default main configuration file (overrides system default)
The Ion home page, http://iki.fi/tuomov/ion/
The document "Ion: Configuring and extending with Lua" found on the Ion home page.
Ion was written by Tuomo Valkonen <tuomov at iki.fi>.