Posted on 2021/08/04  
tagged i3  

i3 window manager

I have switched from enlightenment to i3wm and wanted to talk about my experiences. At the time I was compiling enlightenment from source using a terrible set of bash scripts I wrote myself and maintained over the years. This was because I started running the latest version of e from git.

If memory serves, I switched from fluxbox to enlightenment when enlightenment 0.17 came out, which was somewhere near the year 2012. Needless to say it takes a lot to shift someone who has been using e for so long.

The primary reasons I used enlightenment were

  1. fast - configurable to be fast. I could disable the fancy animations
  2. "independent" multi-monitor-workspaces - This is a real big one for me. It means that in a dual screen setup, you can switch a workspace on only a single monitor
  3. scriptable - enlightenment_remoet allowed some scripting, this allowed automating desktop setup

enter i3

i3 has been a bit of a learning curve being keyboard driven but I solved that by making a printable cheat sheet see here

its controllable via i3-msg which are basically the same commands used in ~/.i3/config, so it is much more scriptable than enlightenment

being keyboard driven it allows me to switch workspaces and windows without ever leaving the home keys. This has huge implications on development workflows which i'll get into later.

Contents _

Additional tools _

Since i3 is just a window manager, you need additional tools for a complete environment

pulseaudio _

I chose pipewire sound system for i3

It supports alsa and pulseaudio as well so I enabled those

This is the core config line for nixos

  services.pipewire = {
    enable = true;
    alsa.enable = true;
    pulse.enable = true;
  };

polybar _

polybar provides a small bar at the top of the screen for workspaces, system metrics and volume controls.

The left column

The middle column

The right column

xsecurelock _

xsecurelock and xautolock implement my screen lock solution

rofi _

The main use cases for fori are to run programs, switch windows, ssh to hosts and copy emoji's

I want to spend more time on rofi plugins but I have not gotten around to it

xscreensaver _

I LOVE xscreensaver, i'm going to be sad when I can't use it anymore.

x11 tools _

There is a whole slew of random x11 tools i've acquired over the years

xrandr _

I wrote a little script named xrandr.sh to run at startup in i3 to control the configuration of my dual 4k screens.

left=DP-2
right=DP-4
res=3840x2160
pos=3840
xrandr  \
 --output $left --auto --primary --mode $res --pos 0x0 --rotate normal \
 --output $right --auto --mode $res --pos ${pos}x0 --rotate normal --right-of $left

thunar _

GUI file browser

gtk things _

I enabled dconf for gnome programs and GTK theming