man ion2 (Commandes) - an X11 window manager

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 tab-completion.

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(1) 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-complete 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-existent 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 application 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/

X(7), pwm(1), joe(1)

AUTHOR

Ion was written by Tuomo Valkonen <tuomov at iki.fi>.