Getting Started with i3wm

When you load Fedora Workstation, the installer configures Gnome 3 as your default desktop environment. The various spins of Fedora Linux perform similar operations for the various alternatives to Gnome 3. In order to switch from this to i3wm, you need to open your preferred terminal emulator and install and configure it to run. This section covers the basic procedure for getting i3wm up and running on your system. For a deep dive on on i3wm configuration


Fedora Linux includes i3wm in its official package repositories. This means that the installation and update process is relatively straightfoward through the DNF package manager.

# dnf install i3

This install i3wm and all of its dependencies on your system. From here on out, whenever you run the upgrade command, DNF checks the repositories for any updates to i3wm and installs them for you by default.

In addition to installing through the package manager, you can also build it from source, if that’s your preference. Information on the source code, official documentation, screencasts and frequently asked questions are all available at i3wm.

Configuration Wizard

Similar to many user applications in Linux, when i3wm starts it looks for a configuration file to tell it how you want the environment laid out. For i3wm, the path to this file is ~/.config/i3/config. Unlike the common deployment on desktop environments or larger applications, this is a plain text file. You can open it up in your preferred text editor and modify what’s there or write it all from scratch.

While you can write the config from scratch, you may find it useful to use the i3 Configuration Wizard to initialize the configuration file with common defaults. This can help you get a base configuration up quickly, so that you switch from your current environment to i3wm.

To use the Configuration Wizard, run the following command:

$ i3-config-wizard

In graphical environments, this command opens a window that asks you to select your preferred mod key: Alt or Super. For most users, either is fine, though if you use Emacs it’s recommended that you go with Super, given that Alt would run into conflict with any M commands in that editor.

If you already have a config file written to that path, i3-config-wizard fails. You’ll need to delete the old file or change its name. When it runs, it takes your mod key choice and uses it in setting up basic configuration defaults.

Starting i3wm

Whether you have Fedora Workstation with Gnome 3 or one of the spins with some other desktop environment, you probably have LightDM or something similar as the display manager. This basically means when you turn on your computer, it boots to a graphical login interface, rather than the standard unix terminal login that would load without that.

When this is the case, switching to i3wm is fairly simple. Log out of Gnome 3 or whatever desktop environment you currently use. When you reach the LightDM login screen, select i3wm from the menu, then enter your user password to log in. The display manager then manages X and starts i3wm for you.

Xinit Configuration

Some users prefer to work without a display manager, booting to the terminal instead and launching X through the older startx command. The display manager is started by systemd. If you would like to boot to the terminal, disable it. For instance,

# systemctl disable lightdm

Running this command does not have any immediate effect. Disabling the display manager ensures that it won’t start during boot. You also need to install xinit, which enables the startx command. You can do so through DNF:

# dnf install xorg-x11-xinit

Once DNF completes the installation, you also need to write the ~/.xinitrc configuration file:

# Source Defaults
if [ -d /etc/X11/xinit/xinitrc.d ]; then
  for f in /etc/X11/xinit/xinitrc.d/?*.sh ; do
    [ -x "$f" ] && . "$f"
  unset f

# Start i3wm
exec i3

When you next reboot your system, Fedora starts at the terminal login rather than the display manager. Log into the shell and then start X:

$ startx

The shell then launches X and starts i3wm, using its default configuration file.

< Prev Next >