i3wm
i3 is a dynamic tiling window manager inspired by wmii that is primarily targeted at developers and advanced users. The stated goals for i3 include clear documentation, proper multi-monitor support, a tree structure for windows, and different modes like in vim.
The Ultimate i3wm Configuration With Modular Configs, Extra Functionality And Themes (25 Pre-Made + Infinite Auto Generated Themes With pywal
)
Get i3wm Premium From ko-fi
And Support Archcraft Development.
Installation
Once you finish installing Archcraft, i3wm can be installed on the top of it. It's pre-configured and ready to go.
- Regular
- Premium
Open a terminal and run the following command to install the regular version of i3wm :
$ sudo pacman -Sy archcraft-i3wm
Download the premium package from ko-fi, and save it in a directory. Open a terminal in same directory and run the following command to install i3wm premium :
$ sudo pacman -U archcraft-i3wm-premium-X.Y-Z-any.pkg.tar.zst
i3wm Premium comes pre-installed on Archcraft Prime ISO
Configuration
i3wm is pre-configured in Archcraft. In this section, We'll see how the i3wm window manager is configured, what tools and utilities are used to make it look and work like a complete desktop environment.
Config Structure
The configuration structure of i3wm in Archcraft looks something like this:
~/.config
└── i3 : i3wm config directory
├── alacritty : terminal config
├── config.d : modular i3wm config files
├── i3status : i3status config files
├── scripts : scripts used for i3wm
├── themes : all themes (polybar, rofi configs)
├── config : main i3wm config file
├── dunstrc : dunst config for notifications
├── picom.conf : compositor config
└── xsettingsd : gtk themes, icons and fonts config file
Terminal
Alacritty is the default terminal. In the i3wm window manager, alacritty is launched with an alternative config file. If you need to change anything, make sure you modify the config files in ~/.config/i3/alacritty
directory. These are the following config files you can modify to change the behaviour of your terminal:
~/.config/i3/alacritty/alacritty.toml
: Main configuration file
~/.config/i3/alacritty/colors.toml
: Colors configurations
~/.config/i3/alacritty/fonts.toml
: Fonts configurations
If you need any help with alacritty config, run :
man 5 alacritty
in terminal.
When you change the theme
, the colors.toml and fonts.toml file get overwritten by the theme script.
This is applicable only in i3wm Premium as themes are only available in it. On regular version, there's only one theme.
Notification
Dunst is used as a notification daemon for notifications in i3wm. In the i3wm window manager, dunst is launched with an alternative config file, which is ~/.config/i3/dunstrc
. So, If you need to modify anything, make sure you edit this file.
If you need any help with dunst config, run :
man 5 dunst
in terminal.
When you change the theme
, the fonts and colors in dunstrc file get overwritten by the theme script.
This is applicable only in i3wm Premium as themes are only available in it. On regular version, there's only one theme.
Wallpaper
hsetroot sets the wallpaper in the i3wm. If you want to change the wallpaper, Edit the following scripts :
- Regular
- Premium
Edit ~/.config/i3/scripts/i3_autostart
script and add the path to your wallpaper.
# Restore wallpaper
hsetroot -cover '/path/to/your/wallpaper'
Edit ~/.config/i3/themes/wallpaper.sh
script and add the path to your wallpaper.
WALLPAPER='/path/to/your/wallpaper'
When you change the theme
, the script wallpaper.sh
get overwritten by the theme script.
Statusbar
Polybar is used as the statusbar in Archcraft's i3wm window manager.
- Regular
- Premium
The configurations for polybar can be found inside the theme directory directory of i3wm ~/.config/i3/theme
If you want to modify the polybar settings, or perhaps want to add/remove modules, then you need to edit the following files :
~/.config/i3/theme/polybar/config.ini
: Main config file
~/.config/i3/theme/polybar/colors.ini
: Colors config file
~/.config/i3/theme/polybar/modules.ini
: Modules config file
If you need any help with polybar config, visit : polybar wiki
The configurations for polybar can be found inside the currently applied theme's directory, which is inside the themes directory of i3wm ~/.config/i3/themes
Let's say that the currently applied theme is default
and you want to modify the polybar settings, or perhaps want to add/remove modules, then you need to edit the following files :
~/.config/i3/themes/default/polybar/config.ini
: Main config file
~/.config/i3/themes/default/polybar/colors.ini
: Colors config file
~/.config/i3/themes/default/polybar/modules.ini
: Modules config file
If you need any help with polybar config, visit : polybar wiki
When you change the theme
, the fonts in config.ini file and colors.ini file of polybar get overwritten by the theme script.
Launchers and Applets
Rofi is used for application launchers, command runner and various applets. To modify the rofi config, edit ~/.config/rofi/config.rasi
file.
If you need any help with rofi config, run :
man rofi
in terminal.
The scripts for rofi that are used in i3wm can be found it ~/.config/i3/scripts
directory. These are the following scripts that uses rofi to provide the launchers and applets in i3wm :
rofi_askpass
: rofi based sudo
frontend to get root password
rofi_asroot
: applet to open apps as root
rofi_bluetooth
: bluetooth applet to quickly connect to BT devices
rofi_launcher
: an application launcher, cmd runner, file manager and task manager
rofi_music
: music applet, that controls MPD with mpc
rofi_powermenu
: power menu, with confirmation dialog
rofi_runner
: quickly lets you run a command
rofi_screenshot
: screenshot applet that works with maim
rofi_themes
: applet to change the themes only in premium
rofi_windows
: applet to manage opened windows
If you want to modify any applet or perhaps want to extend the functionality of the applet, just edit these scripts above.
- Regular
- Premium
The configuration of each script can be found inside the theme directory of i3wm ~/.config/i3/theme
Let's say you want to modify the looks of launcher, then you need to edit the ~/.config/i3/theme/rofi/launcher.rasi
file. Same goes for every other applet, Edit the respective file in the same directory.
If you need any help with rofi theming, run :
man rofi-theme
in terminal.
To change the colors and fonts of the launchers and applets, Edit the ~/.config/i3/theme/rofi/shared/colors.rasi
and ~/.config/i3/theme/rofi/shared/fonts.rasi
files.
The configuration of each script can be found inside the currenty applied theme's directory, which is inside the themes directory of i3wm ~/.config/i3/themes
Let's say that the currently applied theme is default
and you want to modify the looks of launcher, then you need to edit the ~/.config/i3/themes/default/rofi/launcher.rasi
file. Same goes for every other applet, Edit the respective file in the same directory.
If you need any help with rofi theming, run :
man rofi-theme
in terminal.
To change the colors and fonts of the launchers and applets, Edit the ~/.config/i3/themes/<THEME>/rofi/shared/colors.rasi
and ~/.config/i3/themes/<THEME>/rofi/shared/fonts.rasi
files.
When you change the theme
, the shared/colors.rasi and shared/fonts.rasi files get overwritten by the theme script.
Compositor
Picom is used for compositing. It's a lightweight compositor with shadowing, advanced blurring and fading. In i3wm, picom is launched with an alternative config file, which is ~/.config/i3/picom.conf
.
If you need to change anything related to picom, Edit this picom config file.
If you need any help with picom config, check the picom's default config file in
/etc/xdg/picom.conf
If you're having screen-tearing issues, using glx
backend can solve this issue.
If you're facing lagging, hangs and freezes, try switching between xrender
and glx
backend.
When you change the theme
, things like backend, shadows, blurring in picom.conf file gets overwritten by theme script.
This is applicable only in i3wm Premium as themes are only available in it. On regular version, there's only one theme.
Window Manager
The configuration of i3wm is available in ~/.config/i3
. To configure i3wm window manager, these are the files that are used :
~/.config/i3/config
: main i3wm config file with general settings
~/.config/i3/config.d/01_theme.conf
: theme config file, things like colors, border size, gaps
~/.config/i3/config.d/02_keybindings.conf
: all the key bindings
~/.config/i3/config.d/03_mousebindings.conf
: all the mouse bindings
~/.config/i3/config.d/04_modes.conf
: i3 mode key bindings
~/.config/i3/config.d/05_rules.conf
: all the window rules
~/.config/i3/i3status/config
: i3status modules
~/.config/i3/i3status/statusbar.conf
: config file for i3status
If you need any help with i3wm configuration, visit : i3wm docs
When you change the theme
, things like border colors, border width and gaps in 01_theme.conf file gets overwritten by the theme script.
This is applicable only in i3wm Premium as themes are only available in it. On regular version, there's only one theme.
Keybindings
Here's a list of some important keybinds you need to know for operating i3wm easily. If you want to view, modify or add new keybinds, Edit ~/.config/i3/config.d/02_keybindings.conf
and ~/.config/i3/config.d/04_modes.conf
files.
Applications
Keys | Action |
---|---|
super + Return | Open terminal (alacritty) |
super + shift + Return | Open floating terminal |
super + alt + Return | Open fullscreen terminal |
super + shift + F | Open file manager (thunar) |
super + shift + E | Open text editor (geany) |
super + shift + W | Open web browser (firefox) |
Menu and Applets
Keys | Action |
---|---|
super | Open application launcher |
alt + F1 | Open application launcher |
super + N | Open network manager applet |
super + M | Open music applet |
super + X | Open powermenu applet |
super + S | Open screenshots applet |
super + R | Open apps as root applet |
super + T | Open theme applet only in premium |
super + W | Open window applet |
Hardware Keys
Keys | Action |
---|---|
Take screenshot | |
ctrl + Print | Take screenshot in 5 seconds delay |
shift + Print | Take screenshot in 10 seconds delay |
ctrl + shift + Print | Take screenshot of currently focused window |
super + Print | Take screenshot of selected area |
XF86AudioRaiseVolume | Increase volume |
XF86AudioLowerVolume | Decrease volume |
XF86AudioMute | Toggle mute speakers |
XF86AudioMicMute | Toggle mute microphone |
XF86Audio + Next/Prev/Play/Stop | Media controls (MPD) |
XF86MonBrightnessUp | Increase display brightness |
XF86MonBrightnessDown | Decrease display brightness |
Workspaces
Keys | Action |
---|---|
super + 1..10 | Switch to respective workspace |
super + shift + 1..10 | Move focused container to respective workspace |
super + ctrl + Left/Right | Move a container to the next/previous workspace |
super + B | Switch workspaces back-and-forth |
super + shift + B | Move container to workspace back-and-forth |
Window Management
Keys | Action |
---|---|
super + C/Q | Close focued window |
super + H/V | Split in horizontal/vertical orientation |
super + shift + S | Set stacking layout |
super + shift + T | Set tabbed layout |
super + shift + D | Set default layout |
super + shift + L | Toggle between stacking/tabbed/split |
super + shift + V | Toggle between horizontal/vertical |
super + shift + O | Sticky floating windows |
super + F | Toggle fullscreen |
super + Space | Toggle floating/tiling |
super + shift + Space | Toggles focus between floating/tiling containers |
super + Left/Right/Up/Down | Sets focus to the nearest container in the given direction |
super + shift + Left/Right/Up/Down | Move focused window in the given direction |
super + Y | Changing border style |
super + A | Sets focus to the parent container |
super + D | Sets focus to the child container |
super + Tab | Automatically sets focus to the adjacent container |
super + alt + C | Move floating container to the center of all outputs |
super + alt + P | Move floating container to the current position of the cursor |
super + alt + Left/Right/Up/Down | Resizing containers/windows |
super + Minus | Make the currently focused window a scratchpad |
super + shift + Minus | Show the first scratchpad window |
super + shift + R | Toggle Resize mode |
super + shift + M | Toggle Resize mode |
super + shift + G | Toggle Gaps mode |
Window Manager
Keys | Action |
---|---|
ctrl + shift + R | Restart i3wm |
super + shift + C | Reload i3wm |
super + shift + Q | Quit i3wm |
Misc Keys
Keys | Action |
---|---|
ctrl + alt + V | Open vim in terminal |
ctrl + alt + R | Open ranger in terminal |
ctrl + alt + H | Open htop in terminal |
ctrl + alt + M | Open ncmpcpp with album art in terminal |
ctrl + alt + L | Trigger lockscreen |
super + P | Run colorpicker |
Screenshots
Desktop
Here's few screenshots of i3wm
desktop. These'll give you an idea of the experience of i3wm in Archcraft.
Desktop 1 | Desktop 2 | Desktop 3 | Desktop 4 |
---|---|---|---|
Desktop 5 | Desktop 6 | Desktop 7 | Desktop 8 |
---|---|---|---|
Desktop 9 | Desktop 10 | Desktop 11 | Desktop 12 |
---|---|---|---|
Desktop 13 | Desktop 14 | Desktop 15 | Desktop 16 |
---|---|---|---|
Themes
- Regular
- Premium
- Random
There's only one theme available on regular i3wm.
There are 25 styles (plus infinite auto-generated themes with pywal
) available for i3wm premium.
To Change the theme/style, Press SUPER + T
and select the theme/style from the applet.
Theme 1 | Theme 2 | Theme 3 | Theme 4 | Theme 5 |
---|---|---|---|---|
Theme 6 | Theme 7 | Theme 8 | Theme 9 | Theme 10 |
---|---|---|---|---|
Theme 11 | Theme 12 | Theme 13 | Theme 14 | Theme 15 |
---|---|---|---|---|
Theme 16 | Theme 17 | Theme 18 | Theme 19 | Theme 20 |
---|---|---|---|---|
Theme 21 | Theme 22 | Theme 23 | Theme 24 | Theme 25 |
---|---|---|---|---|
Auto Generated themes with pywal
. This feature is only available in i3wm premium.
Press SUPER + T
and select Random to apply a random theme.
FAQs
How to update my config to new configs?
When a new version of Archcraft i3wm get released, And you update the system by sudo pacman -Syu
or you update the i3wm package by sudo pacman -S archcraft-i3wm
, New config files get installed as i3_pacnew_YYYY-MM-DD in your ~/.config
directory.
To use new configs, backup your old ~/.config/i3
directory and move ~/.config/i3_pacnew_YYYY-MM-DD
to ~/.config/i3
and login again.
For
i3wm premium
, download the updated package from ko-fi (for free) and just install it to update to new configs.
How to change GTK theme, icons and cursor?
To change GTK theme, icons and cursor in i3wm session, Edit ~/.config/i3/xsettingsd
file and restart i3wm to apply the changes.
Net/ThemeName "Arc-Dark"
Net/IconThemeName "Zafiro"
Gtk/CursorThemeName "Qogirr"
How to manage multiple monitors and resolution in i3wm?
If you use multiple monitors with i3wm window manager, you can manage them by running Manager Monitors or archcraft-randr
app.
Why Alacritty is not working on my computer?
Since Alacritty is a OpenGL based terminal emulator, It may not work on some computer hardwares. You can make it work on such computers by following these methods :
- Open alacritty with LIBGL_ALWAYS_SOFTWARE=1 variable. Edit the keybindings/script launching alacritty and replace
alacritty
withLIBGL_ALWAYS_SOFTWARE=1 alacritty
- Edit /usr/share/applications/Alacritty.desktop desktop file and replace
Exec=alacritty
withExec=env LIBGL_ALWAYS_SOFTWARE=1 alacritty