Clients (windows) are organized in a tree data structure within containers. The tree branches via horizontal or vertical splits, and containers can also be set to tabbed or stacked layouts. Floating windows are available for corner cases that don't mix well with tiling, and remain on a separate layer above the tiled windows.

Quickly jumping to open window

i3-wm-scripts – search for and jump to windows with particular names matching regexp

winmenupy launches dmenu with a list of clients, sorted after workspaces. Selecting a client jumps to that window.

i3statusbar

First we need to copy over the default configuration files that we will be working with to our home directory.

cp /etc/i3/config ~/.i3/config
cp /etc/i3status.conf ~/.i3status.conf

Network Interface Status

Now we can fix the status bar (i3status) at the bottom of the screen. If you recently installed Arch Linux then you will be using the new systemd/udev Predictable Network Interface Naming scheme. As a result we need to change the references for eth0 (ethernet) and wlan0 (wireless) to match your system. To view your available network interfaces use the command ip link

If the temperature column complains that it cannot get the temperature value then change the path line to:

path = "/sys/class/thermal/thermal_zone0/temp"

Volume Manager

To enable easy management of your system volume, you can install a volume manager applet such as pa-applet-gitAUR from the AUR. This should also allow you to use your keyboards volume up, volume down, and mute keys as well as using the applet directly to manage your volume. Once it is installed add the following line to your ~/.i3/config to auto start the applet:

Network Manager

Then add the the following line to your ~/.i3/config to automatically start the Network Manager applet in your system tray

exec /usr/bin/nm-applet

Workspace Names

Although it is not required, many people prefer naming frequently used workspaces. First you need to determine which monitor you want the workspace to open to. Simply type xrandr into a terminal and it will show you the available display ports. Some common ones are LVDS1 for laptops or VGA1, HDMI1, HDMI2, etc for external monitors. If you are using Xinerama instead use the outputs xinerama-0, xinerama-1, etc. Add your workspace names to ~/.i3/config You also need to modify the corresponding lines to switch to your workspaces as well as moving focused containers to those workspaces.

Launching programs on specific workspaces

To maximize efficiency you can setup certain programs to automatically launch to a specific workspace. This can be accomplished one of two ways. You could use the assign command so when you manually launch a program it is directed to a the workspace you assigned. An example would be:

# Assign URxvt terminals to workspace 2
assign [class="URxvt"] 2

Or if you have renamed the workspaces like the above examples then you must set the new workspace name instead of the number:

Desktop Wallpaper

To be able to manage the desktop wallpaper, you need a lightweight image viewer like Feh or Nitrogen. Install feh with the command # pacman -S feh. Then you can set your wallpaper with the following command:

$ feh --bg-scale /path/to/image.file

To have feh set your image to the Desktop Wallpaper add the following line to your ~/.i3/config

exec --no-startup-id sh ~/.fehbg

Terminal Emulator

By default when you press $mod+Return it launches the i3-sensible-terminal which is a script that invokes a terminal. It attempts to start one of these terminals in the following order: $TERMINAL urxvt rxvt terminator Eterm aterm xterm gnome-terminal roxterm xfce4-terminal. You can force it to launch your terminal of choice by modifying the line bindsym $mod+Return exec i3-sensible-terminal

Scratchpad

Having a scratchpad to jot down or paste notes quickly is very handy! i3 has a feature that allows you to move a window to a scratchpad workspace. Basically it will be hidden from view until you recall it with the scratchpad show command. To send a focused window to the scratchpad with $mod+Shift+minus or to recall it with $mod+minus enter these lines into your ~/.i3/config

# Make the currently focused window a scratchpad
bindsym $mod+Shift+minus move scratchpad
# Show the first scratchpad window
bindsym $mod+minus scratchpad show

You can start your favorite editor (ie Gedit, vim, nano, etc) on startup and have it automatically moved to the scratchpad workspace to quickly recall it when needed. The following example when placed in ~/.i3/config shows how you can start the urxvt terminal, have it launch the nano editor, and then move it to the scratchpad:

Shutdown, Reboot, Lock Screen

As there are no Shutdown, Reboot, or Lock Screen buttons, we can add some hotkey combinations to help us out. First we need to create this script and save it as i3exit. Remember to make it executable with chmod +x and to place it somewhere in your $PATH.

Screensaver and Power Management

You can use DPMS to blank your screen or to suspend/poweroff your monitor. Adding the following line to your ~/.i3/config will suspend your monitor after 10 minutes.

exec --no-startup-id xset dpms 600

Suspending with i3lock

xss-lock (has also autolock)

xss-lockAUR manages a screen locker for the current x-session. It reacts to suspend, hibernate, lock-session events and the X screensaver. You need to run it in your desktop autostart like this:

xss-lock -- i3lock -i /path/to/background.image &

Systemd unit file

If you don't care about automatic locking and only want to lock your screen on suspend, then you can create a systemd unit file instead of running an additional piece of software. You need to add unit file below and enable it with # systemctl enable suspend@<user>.service. See systemd#Basic systemctl usage for details.

Usage

Application launcher

i3 currently uses dmenu as a application launcher, which is bound by default to Mod1+d.

By default i3-dmenu-desktop is used as a wrapper for dmenu. i3-dmenu-desktop creates a list of all installed applications via their .desktop files. There is a rewrite of this perl script called j4-dmenu-desktop-gitAUR, which is a near-drop-in replacement for the script shipped with i3, but much faster.

Clipboard (copy & paste issues)

By default, when you close a window, the buffer with the clipboard info will disappear. You have to use a clipboard manager like clipit to avoid that.