Reference

ion2(1)

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(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-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(7x), pwm(1), joe(1)

AUTHOR

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