I use the i3 Window Manager in Arch Linux. This tiling window manager is fairly minimalistic yet still offers tons of great features. It is highly customizable, which is great, but this also means there are lots of little gotchas and tricks.
I use a triple monitor set up, which complicates things a little bit. Getting the desktop to extend and orient correctly (and consistently) is a little bit of a challenge in X/i3. I also have a organizational system that works well for me while I'm working.
This repo is a collection of scripts and hotkeys I have developed over the course of a few years. Shout out to Aaron Ball for sharing his configs with me when I started using i3. Not only did that make my transition from GNOME so much easier, but I learned a lot about the framework by reading and iterating on his code.
Hopefully others who are using or looking to switch to i3 can get some help and inspiration from my set up too.
This repo requires several packages:
- i3, which should include:
- i3-dmenu-desktop
- i3lock
- i3status
- MAIM (for taking screen shots)
- Terminator terminal emulator
- speedtest-cli for periodically checking the internet speeds
- feh for desktop image-related functions
- ImageMagick for desktop image-related functions
- scrot for taking screen shots
- Other system tools:
curl
,iproute2
,xrandr
,systemctl
,amixer
, etc.
Arch Linux users can add these through an AUR helper like yay or aurman (or yaourt, if you're behind the curve).
These scripts are somewhat tailored to my set up, but I've tried to make them clean and adaptable for other users. Some notes on this:
- I have 3 monitors connected to my computer. I used XRandR and some trial and error to figure out which monitor is given which label by X. You'll need to edit
./scripts/xrandr.sh
accordingly. - In the config file, the monitors are assigned to variables which are used later. If you don't have multiple monitors or your monitors have different labels, make sure to update this.
- This configuration launches a handful of programs at startup. You'll want to review/edit
./scripts/startup-programs.sh
accordingly - The status bar shows information about local/public IP addresses, and uses a system device as the basis. For me, that's wlp3s0, but your system may be different.
This configuration defines some useful hotkeys:
- Lock the screen: Ctrl + Alt + L
- Suspend the system: Shift + Alt + S
- Take a screen shot, OSX-style (provides a cursor to select an area):
- Save the image to the Desktop: Shift + Alt + 4
- Copy the image to the clipboard: Ctrl + Shift + Alt + 4
- Launch a terminal (Terminator): Windows + Return
- Kill a focused window: Windows + Shift + Q
- Open the program launcher: Windows + D
- Reload i3 Configuration: Windows + Shift + C
- Restart i3: Windows + Shift + R
- Exit i3: Windows + Shift + E
- Move focus: Windows +
<arrow key>
- Move a focused window: Windows + Shift +
<arrow key>
- Jump to a numbered workspace: Windows +
<0-8>
- Move a focused window to a numbered workspace: Windows + Shift +
<0-8>
See the config file for more hotkeys.