X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=man%2Fi3.man;h=9d34c71038a316e01601ebe7543bffb15e7038a7;hb=1f2c9306a27cced83ad960e929bb9e9a163b7843;hp=cf592c62f4b6b3e771cecd393a8c0d20d270f5fd;hpb=28c4b045d69284d19cdbae01cf6a9e9f91889e04;p=i3%2Fi3 diff --git a/man/i3.man b/man/i3.man index cf592c62..9d34c710 100644 --- a/man/i3.man +++ b/man/i3.man @@ -1,7 +1,7 @@ i3(1) ===== Michael Stapelberg -v3.beta, May 2009 +v4.0, July 2011 == NAME @@ -9,88 +9,98 @@ i3 - an improved dynamic, tiling window manager == SYNOPSIS -i3 [-c configfile] [-a] +i3 [-a] [-c configfile] [-C] [-d ] [-v] [-V] == OPTIONS --c:: -Specifies an alternate configuration file path - -a:: Disables autostart. +-c:: +Specifies an alternate configuration file path. + +-C:: +Check the configuration file for validity and exit. + +-d:: +Specifies the debug loglevel. To see the most output, use -d all. + +-v:: +Display version number (and date of the last commit). + +-V:: +Be verbose. + == DESCRIPTION === INTRODUCTION i3 was created because wmii, our favorite window manager at the time, didn’t -provide some features we wanted (Xinerama done right, for example), had some -bugs, didn’t progress since quite some time and wasn’t easy to hack at all +provide some features we wanted (multi-monitor done right, for example), had +some bugs, didn’t progress since quite some time and wasn’t easy to hack at all (source code comments/documentation completely lacking). Still, we think the wmii developers and contributors did a great job. Thank you for inspiring us to create i3. Please be aware that i3 is primarily targeted at advanced users and developers. +=== IMPORTANT NOTE TO nVidia BINARY DRIVER USERS + +If you are using the nVidia binary graphics driver (also known as 'blob') +you need to use the +--force-xinerama+ flag (in your ~/.xsession) when starting +i3, like so: + +---------------------------------------------- +exec i3 --force-xinerama -V >>~/.i3/i3log 2>&1 +---------------------------------------------- + +See also docs/multi-monitor for the full explanation. + === TERMINOLOGY -Client:: -A client is X11-speak for a window. +Tree:: +i3 keeps your layout in a tree data structure. -Table:: -Your workspace is managed using a table. You can move windows around and create new columns -(move a client to the right) or rows (move it to the bottom) implicitly. -+ -By "snapping" a client in a specific direction, you increase its colspan/rowspan. +Window:: +An X11 window, like the Firefox browser window or a terminal emulator. -Container:: -A container contains a variable number of clients. Each cell of the table is a container. +Split container:: +A split container contains multiple other split containers or windows. + -Containers can be used in various modes. The default mode is called "default" and just -resizes each client equally so that it fits. +Containers can be used in various layouts. The default mode is called "default" +and just resizes each client equally so that it fits. Workspace:: -A workspace is a set of clients (technically speaking, it’s just a table). Other window -managers call this "Virtual Desktops". +A workspace is a set of containers. Other window managers call this "Virtual +Desktops". + -In i3, each workspace is assigned to a specific virtual screen. By default, screen 1 -has workspace 1, screen 2 has workspace 2 and so on… However, when you create a new -workspace (by simply switching to it), it’ll be assigned the screen you are currently -on. - -Virtual Screen:: -Using Xinerama, you can have an X11 screen spanning multiple real monitors. Furthermore, -you can set them up in cloning mode or with positions (monitor 1 is left of monitor 2). +In i3, each workspace is assigned to a specific virtual screen. By default, +screen 1 has workspace 1, screen 2 has workspace 2 and so on… However, when you +create a new workspace (by simply switching to it), it’ll be assigned the +screen you are currently on. + +Output:: +Using XRandR, you can have an X11 screen spanning multiple real monitors. +Furthermore, you can set them up in cloning mode or with positions (monitor 1 +is left of monitor 2). + -A virtual screen is the result of your Xinerama setup. For example, if you have attached -two real monitors (let’s say your laptop screen and a video projector) and enabled cloning, i3 -will use one virtual screen with the size of the smallest screen you have attached (so -that you can see all your windows on each screen all the time). -If you have two monitors attached, one configured to be left of the other, i3 will use -two virtual screens. +i3 uses the RandR API to query which outputs are available and which screens +are connected to these outputs. == KEYBINDINGS Here is a short overview of the default keybindings: j/k/l/;:: -Direction keys (left, down, up, right). They are on your homerow (see the mark on your "j" key). +Direction keys (left, down, up, right). They are on your homerow (see the mark +on your "j" key). Alternatively, you can use the cursor keys. Mod1+:: Focus window in . -Mod3+:: -Focus container in . - Mod1+Shift+:: Move window to . -Mod3+Shift+:: -Move container to . - -Mod1+Control+:: -Snap container to . - Mod1+:: Switch to workspace . @@ -100,126 +110,138 @@ Move window to workspace . Mod1+f:: Toggle fullscreen mode. -Mod1+h:: +Mod1+s:: Enable stacking layout for the current container. Mod1+e:: Enable default layout for the current container. +Mod1+w:: +Enable tabbed layout for the current container. + Mod1+Shift+Space:: -Toggle tiling/floating for the current window. +Toggle tiling/floating for the current container. -Mod1+t:: -Select the first tiling window if the current window is floating and vice-versa. +Mod1+Space:: +Select the first tiling container if the current container is floating and +vice-versa. Mod1+Shift+q:: -Kills the current window. This is equivalent to "clicking on the close button", meaning a polite -request to the application to close this window. For example, Firefox will save its session -upon such a request. If the application does not support that, the window will be killed and -it depends on the application what happens. +Kills the current window. This is equivalent to "clicking on the close button", +meaning a polite request to the application to close this window. For example, +Firefox will save its session upon such a request. If the application does not +support that, the window will be killed and it depends on the application what +happens. Mod1+Shift+r:: -Restarts i3 in place (without losing any windows, but the layout). +Restarts i3 in place. Your layout will be preserved. Mod1+Shift+e:: Exits i3. == FILES -=== ~/.i3/config +=== \~/.i3/config (or ~/.config/i3/config) -When starting, i3 looks for ~/.i3/config and loads the configuration. If ~/.i3/config is not found, -i3 tries /etc/i3/config. You can specify a custom path using the -c option. +When starting, i3 looks for configuration files in the following order: -At the moment, you can specify only the path to your favorite terminal emulator, the font and keybindings. +1. ~/.config/i3/config (or $XDG_CONFIG_HOME/i3/config if set) +2. /etc/xdg/i3/config (or $XDG_CONFIG_DIRS/i3/config if set) +3. ~/.i3/config +4. /etc/i3/config -At the moment, you have to bind to keycodes (find them out via xev(1)). +You can specify a custom path using the -c option. .Sample configuration ------------------------------------------------------------- -terminal /usr/bin/urxvt -font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1 - -# Start terminal (Mod1+Enter) -bind Mod1+36 exec /usr/bin/urxvt - -# Start dmenu (Mod1+v) -bind Mod1+55 exec /usr/bin/dmenu_run - -# Kill current client (Mod1+Shift+q) -bind Mod1+Shift+24 kill - -# Beamer on/off -bind Mod1+73 exec /home/michael/toggle_beamer.sh +# i3 config file (v4) -# Screen locking -bind Mod1+68 exec /usr/bin/i3lock - -# Restart i3 inplace (Mod1+Shift+r) -bind Mod1+Shift+27 restart - -# Exit i3 (Mod1+Shift+e) -bind Mod1+Shift+26 exit - -# Brightness -bind Mod1+97 exec sudo sh -c "echo up > /proc/acpi/ibm/brightness" -bind Mod1+103 exec sudo sh -c "echo down > /proc/acpi/ibm/brightness" - -# Fullscreen (Mod1+f) -bind Mod1+41 f - -# Stacking (Mod1+h) -bind Mod1+43 s - -# Default (Mod1+e) -bind Mod1+26 d - -# Toggle tiling/floating of the current window (Mod1+Shift+Space) -bind Mod1+Shift+65 t - -# Go into the tiling layer / floating layer, depending on whether -# the current window is tiling / floating (Mod1+t) -bind Mod1+28 focus ft - -# Focus (Mod1+j/k/l/;) -bind Mod1+44 h -bind Mod1+45 j -bind Mod1+46 k -bind Mod1+47 l - -# Focus Container (Mod3+j/k/l/;) -bind Mod3+44 wch -bind Mod3+45 wcj -bind Mod3+46 wck -bind Mod3+47 wcl - -# Snap (Mod1+Control+j/k/l/;) -bind Mod1+Control+44 sh -bind Mod1+Control+45 sj -bind Mod1+Control+46 sk -bind Mod1+Control+47 sl - -# Move (Mod1+Shift+j/k/l/;) -bind Mod1+Shift+44 mh -bind Mod1+Shift+45 mj -bind Mod1+Shift+46 mk -bind Mod1+Shift+47 ml - -# Move Container (Mod3+Shift+j/k/l/;) -bind Mod3+Shift+44 wcmh -bind Mod3+Shift+45 wcmj -bind Mod3+Shift+46 wcmk -bind Mod3+Shift+47 wcml - -# Workspaces -bind Mod1+10 1 -bind Mod1+11 2 -... +# font for window titles. ISO 10646 = Unicode +font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1 -# Move to Workspace -bind Mod1+Shift+10 1 -bind Mod1+Shift+11 2 -... +# use Mouse+Mod1 to drag floating windows to their wanted position +floating_modifier Mod1 + +# start a terminal +bindsym Mod1+Return exec /usr/bin/urxvt + +# kill focused window +bindsym Mod1+Shift+q kill + +# start dmenu (a program launcher) +bindsym Mod1+d exec /usr/bin/dmenu_run + +# change focus +bindsym Mod1+j focus left +bindsym Mod1+k focus down +bindsym Mod1+l focus up +bindsym Mod1+semicolon focus right + +# alternatively, you can use the cursor keys: +bindsym Mod1+Left focus left +bindsym Mod1+Down focus down +bindsym Mod1+Up focus up +bindsym Mod1+Right focus right + +# move focused window +bindsym Mod1+Shift+j move left +bindsym Mod1+Shift+k move down +bindsym Mod1+Shift+l move up +bindsym Mod1+Shift+semicolon move right + +# alternatively, you can use the cursor keys: +bindsym Mod1+Shift+Left move left +bindsym Mod1+Shift+Down move down +bindsym Mod1+Shift+Up move up +bindsym Mod1+Shift+Right move right + +# split in horizontal orientation +bindsym Mod1+h split h + +# split in vertical orientation +bindsym Mod1+v split v + +# enter fullscreen mode for the focused container +bindsym Mod1+f fullscreen + +# change container layout (stacked, tabbed, default) +bindsym Mod1+s layout stacking +bindsym Mod1+w layout tabbed +bindsym Mod1+e layout default + +# toggle tiling / floating +bindsym Mod1+Shift+space floating toggle + +# change focus between tiling / floating windows +bindsym Mod1+space focus mode_toggle + +# focus the parent container +bindsym Mod1+a focus parent + +# focus the child container +#bindsym Mod1+d focus child + +# switch to workspace +bindsym Mod1+1 workspace 1 +bindsym Mod1+2 workspace 2 +# .. + +# move focused container to workspace +bindsym Mod1+Shift+1 move workspace 1 +bindsym Mod1+Shift+2 move workspace 2 +# ... + +# reload the configuration file +bindsym Mod1+Shift+c reload +# restart i3 inplace (preserves your layout/session, can be used to upgrade i3) +bindsym Mod1+Shift+r restart +# exit i3 (logs you out of your X session) +bindsym Mod1+Shift+e exit + +# display workspace buttons plus a statusline generated by i3status +bar { + status_command i3status +} ------------------------------------------------------------- === ~/.xsession @@ -230,11 +252,15 @@ your login manager (xdm, slim, gdm, …) as soon as you login. .Sample xsession ------------------------------------------------------------- # Disable DPMS turning off the screen -xset dpms force on +xset -dpms xset s off + # Disable bell xset -b +# Enable zapping (C-A- kills X) +setxkbmap -option terminate:ctrl_alt_bksp + # Enforce correct locales from the beginning unset LC_COLLATE export LC_CTYPE=de_DE.UTF-8 @@ -249,6 +275,9 @@ export LC_TELEPHONE=de_DE.UTF-8 export LC_MEASUREMENT=de_DE.UTF-8 export LC_IDENTIFICATION=de_DE.UTF-8 +# Use XToolkit in java applications +export AWT_TOOLKIT=XToolkit + # Set background color xsetroot -solid "#333333" @@ -257,21 +286,35 @@ ulimit -c unlimited # Start i3 and log to ~/.i3/logfile echo "Starting at $(date)" >> ~/.i3/logfile -exec /usr/bin/i3 >> ~/.i3/logfile +exec /usr/bin/i3 -V -d all >> ~/.i3/logfile ------------------------------------------------------------- +== ENVIRONMENT + +=== I3SOCK + +This variable overwrites the IPC socket path (placed in +/tmp/i3-%u.XXXXXX/ipc-socket.%p by default, where %u is replaced with your UNIX +username, %p is replaced with i3’s PID and XXXXXX is a string of random +characters from the portable filename character set (see mkdtemp(3))). The IPC +socket is used by external programs like i3-msg(1) or i3bar(1). + == TODO -There is still lot of work to do. Please check our bugtracker for up-to-date information -about tasks which are still not finished. +There is still lot of work to do. Please check our bugtracker for up-to-date +information about tasks which are still not finished. == SEE ALSO -You should have a copy of the userguide (featuring nice screenshots/graphics which is why this -is not integrated into this manpage), the debugging guide and the "how to hack" guide. If you -are building from source, run +make -C docs+. +You should have a copy of the userguide (featuring nice screenshots/graphics +which is why this is not integrated into this manpage), the debugging guide, +and the "how to hack" guide. If you are building from source, run: + +make -C docs+ + +You can also access these documents online at http://i3wm.org/ -You can also access these documents online at http://i3.zekjur.net/ +i3-input(1), i3-msg(1), i3-wsbar(1), i3-nagbar(1), i3-config-wizard(1), +i3-migrate-config-to-v4(1) == AUTHOR