ION(1)                                                                  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 cus-
       tom 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  decora-
       tions  such as tabs and borders and there are two types of these corre-
       sponding 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 xterm.

       F3     Run a program (query). Precede the program name with a colon (:)
              to run in xterm (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 cre-
              ated 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
       ETCDIR/
              System default configuration files

       ETCDIR/ion.lua
              System default main configuration files

       ETCDIR/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.

       DOCDIR/

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


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



                                                                        ION(1)
