ion(1)
NAME
Ion - an X11 window manager
SYNOPSIS
ion [options]
DESCRIPTION
Ion is a tiling tabbed window manager designed with keyboard users in
mind.
OPTIONS
- -display host:display.screen
- X display to manage
- -cfgfile configfile
- Configuration file to use instead of default
- -moduledir dir
- Directory to search for module
- -confdir dir
- Directory to search for configuration files and other scripts
- -oneroot
- 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.
- -sessionname session_name
- Set session name. This option affects where workspace and other save files are put (~/.ion2/session_name if option set).
- -xinerama 0|1
- 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.
- -i18n Enable use of multi-byte string routines, actual encoding
- depending on the locale.
- -help Show help on command line options
- -version
- Show version
- -about Show about text (version, copyright)
BASIC CONCEPTS
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 of different
key bindings. 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 are screens and they correspond to
physical screens. Screens contain workspaces and client windows put in
full screen mode. Only one of these "multiplexed" objects can be viewed
at a time.
Two types of workspaces are currently supported; tiled (traditional
Ion-style) and floating (PWM-style). Workspaces are not visible objects
but rather collections of frames. Frames are the objects with decorations such as tabs and borders and there are two types of these corresponding to the different types of workspaces.
Frames contain (multiplex) client windows, to each of which corresponds
a tab in the frame's decoration. Only one client window (or other
object) can be shown at a time in each frame. (In a traditional window
manager each frame may contain exactly one client window.)
"Queries" are boxes that appear at the bottoms of frames or screens and
are used to ask the user for textual input. Most queries support tabcompletion.
KEYS
- These are the default key 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.
- F-keys
- F1 Show manual page (query, uses ion-man). Tab-completion can be
enabled by specifying a list of directories in the variable query_man_path.
- Mod1+F1
Show Ion manual page.
- F2 Run an x-terminal-emulator.
- F3 Run a program (query). Precede the program name with a colon (:)
to run in an x-terminal-emulator (ion-runinxterm).
- Mod1+F3
Open a Lua code query. You can call all the functions listed in the Ion configuration document (see section SEE ALSO) here. The variable "_" is bound to the frame in which the query was opened.
- F4 Start new SSH session (query, uses ion-ssh). Hosts to tab-com
plete are read from ~/.ssh/known_hosts.
- F5 Open a file for editing (query). Uses ion-edit which by default
uses run-mailcap.
- F6 Open a file for viewing (query). Uses ion-view which by default
uses run-mailcap.
- F9 Go to existing workspace or create new (query). If a non-exis
tent workspace was entered, the type of the workspace to be created will be queried as well.
- Mod1+F9
Create a new workspace (of type controlled with the default_ws_type variable) with a default name formed from the type of the workspace.
- F12 Main menu
- Navigation
- Mod1+n Go to n:th workspace (n=1..9, 0)
- Mod1+Right
Go to next workspace
- Mod1+Left
Go to previous workspace
- Mod1+Shift+n
Go to n:th screen (n=1,2)
- Mod1+Shift+Right
Go to next screen
- Mod1+Shift+Left
Go to previous screen
- Mod1+G Go to client (query; only works in a frame)
- Mod1+K K
Go to previously active object
- Navigation on tiled workspaces
- Mod1+N Go to frame below current frame
- Mod1+P Go to frame above current frame
- Mod1+Tab
Go to frame right of current frame
- Mod1+K Tab
Go to frame left of current frame
- Navigation on floating workspaces
- Mod1+N Raise frame
- Mod1+P Lower frame
- Mod1+Tab
Circulate focus and raise
- Mod1+K Tab
Back-circulate focus and raise
- Closing and destroying objects.
- Mod1+C Close active object if possible
- Mod1+K C
Kill client owning current client window (if any)
- Mod1+K X
Destroy frame
- Frame operations
- Mod1+K N
Go to next client window within frame
- Mod1+K P
Go to previous client window within frame
- Mod1+K n
Go to n:th client window within frame (n=1..9, 0)
- Mod1+A Attach named client window in the frame (query)
- Mod1+M Frame context menu
- Tags
- Mod1+T Toggle current client window's tag state (indicated by a right
angle in the top-right corner of the window's tab)
- Mod1+K T
Clear all objects' tag state
- Mod1+K A
Attach all tagged windows to the frame
- Resizing and splitting
- Mod1+K V
Maximize vertically
- Mod1+K H
Maximize horizontally
- Mod1+S Split vertically (tiled workspaces only)
- Mod1+K S
Split horizontally (tiled workspaces only)
- Mod1+R Enter resize mode
- Resize mode bindings
- Left, Right, Up Down or F, B, P, N
Grow the frame in the specific direction
- Shift+Left, Right, Up Down or Shift+F, B, P, N
Shrink the frame in the specific direction
- Mod1+Left, Right, Up Down or Mod1+F, B, P, N
On floating frame workspaces: move the frame in the specific direction.
- Miscellaneous
- Mod1+L Broken application resize kludge; try to make that broken appli
cation that didn't get it the first time to understand the real size of the active window
- Mod1+K Q
Send next key press to active client window.
- Mod1+Enter
Toggle client window full screen mode.
LINE-EDITING KEYS
- These keys can be used in the line editor (queries). They are similar
to those of the joe(1) editor. Selection works differently, though,
while the keys are equivalent.
- Movement
- Control+F, Right arrow
Go forward character
- Control+B, Left arrow
Go backward character
- Control+E, End
Go to end of line
- Control+A, Home
Go to beginning of line
- Control+Z
Backward skip word
- Control+X
Forward skip word
- Delete
- Control+D, Delete
Delete next character
- Control+H, Backspace
Delete previous character
- Control+J
Delete to end of line
- Control+Y
Delete whole line
- Control+W
Delete word
- Control+O
Backward delete word
- Selections
- Control+K B
Set mark (begin selection)
- Control+K K
Copy selection
- Control+K Y
Cut selection
- Control+K C
Paste
- Completion and history
- Tab Complete or list possible completions (if available)
- Control+U, Page up
Scroll completions up
- Control+V, Page down
Scroll completions down
- Control+P, Up arrow
Previous history entry
- Control+N, Down arrow
Next history entry
- Cancel, accept
- Control+C, Escape
Cancel
- Control+M, Enter
Accept
POINTING DEVICE BUTTONS
- The bindings for the two types of frames are again different because
not all legacy/floating frame actions are available on tiled frames and
thus those buttons have been mapped to other actions.
- Tiled frames
- Button1 (left) or Button2 (middle) on tab
Click: switch client, drag: drag&drop clients between frames
- Button1 (left) on border
Drag: resize
- Mod1+Button1 (left) or Mod1+Button3 (right)
Resize.
- Button3 (right) on tab
Context menu
- Floating frames
- Button1 (left)
Press: raise frame, click tab: switch client, double-click tab: toggle shade mode, drag border: resize, drag elsewhere: move frame
- Button2 (middle) on tab
Click: switch client, drag: drag&drop clients between frames
- Mod1+Button1 (left)
Click: raise, drag: move
- Mod1+Button3 (right)
Click: lower, drag: resize
- Button3 (right) on tab
Context menu
FILES AND DIRECTORIES
- /etc/X11/ion2/
- System default configuration files
- /etc/X11/ion2/ion.lua
- System default main configuration files
- /etc/X11/ion2/look-*.lua
- Colour scheme configuration files
- ~/.ion2/
- User configuration files
- ~/.ion2/ion.lua
- User default configuration file (overrides system default)
SEE ALSO
The Ion home page, http://iki.fi/tuomov/ion/
The document "Ion: Configuring and extending with Lua" found on the Ion
home page and in the ion2-doc package.
/usr/share/doc/ion2/
AUTHOR
- Ion was written by Tuomo Valkonen <tuomov at iki.fi>.