Using i3wm with Fedora


#1

Hey Guys,

Though i3wm is not part of the official spins, the latest version of i3wm is part of the repos, which makes Fedora great for using i3wm. I switched a few months ago from gnome to i3wm and the experience so far was great. For install, I followed these steps:

  1. get the minimal install iso for fedora
  2. install minimal version
  3. manually install Xorg and i3wm (with what extra packages you want)
  4. try to start Xorg, let it fail, see what drivers are missing, install missing drivers
  5. finally make Xorg work and enjoy

This helps me keep installed packages at a minimum, so that my system only has the software that I require and nothing else. It also provides the experience of a tiling window manager. Another way of installing i3wm is by choosing the tiling window managers package during install, but this will install a lot of stuff (not only i3wm).

Are there other users using Fedora with i3wm? What was your experience so far?

Have a nice day,
gun1x


#2

While I don’t use i3wm, I strongly encourage you to document your process at http://pagure.io/fedora-docs/quick-docs so it can appear in our docs at https://docs.fedoraproject.org/en-US/quick-docs/ and help others. This may help you build a community around this window manager.


#3

I can’t see any search buttons on any of the two pages you linked. Before documenting the process, I need to see if somebody else already did.

Is there a search button that I missed?


#4

I took a look in the quick-docs repo and did a quick grep of the source for the site and there is no mention of i3wm. Unforutnately site search is currently not available. If you’d like to help fix that, let us know :slight_smile:


#5

You probably heard this before. I would gladly help but i don’t have any time atm. :smiley:


#6

Nice, I’m really curious to know how you did this. I’ve used the traditional boot ISOs, but I keep GNOME for gdm. I’d like to swap it for something else and drop gnome-shell, but I haven’t looked at lightweight alternates to gdm yet.

I’ve used i3wm since Fedora 25 or 26. I posted recently on r/Fedora about my Ansible-automated workstation setup. It includes my i3wm config but also all other apps I use on my workstation.

Is quick-docs the place for spin/desktop-specific documentation? I might be able to contribute something later on, but I’m curious where the right place for this is, thinking of @pbokoc’s comment here.


#7

I have a vagrant setup for i3wm that installs it on top of fedora cloud: https://gitlab.com/gun1x/vagrant-files/blob/master/testingVMs/Vagrantfile#L42-71. This will allow you to test it fast, if you are a Vagrant/libvirt user. If not, you can just use the script on any fedora VM:

       dnf upgrade -y
       dnf install xorg-x11-font-utils xorg-x11-xauth i3lock i3status xorg-x11-xbitmaps xorg-x11-server-utils xorg-x11-apps xorg-x11-server-common dmenu xorg-x11-xinit xorg-x11-drv-intel xorg-x11-server-Xorg xorg-x11-fonts-misc xorg-x11-drv-libinput i3 xorg-x11-xkb-utils xorg-x11-utils powerline zsh chromium xfce4-terminal emoji-picker vim spice-vdagent xorg-x11-drv-qxl bash-completion sqlite -y
       adduser gunix
       usermod -s /usr/bin/zsh gunix
       echo "gunix ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/gunix-nopasswd 
       mkdir -p /home/gunix/.config/i3/
       curl --silent -o /home/gunix/.config/i3/config "https://gitlab.com/gun1x/scripts/raw/master/.config/i3/config"
       curl --silent -o /home/gunix/.config/i3/getBarInfo.sh "https://gitlab.com/gun1x/scripts/raw/master/.config/i3/getBarInfo.sh"
       chmod +x /home/gunix/.config/i3/getBarInfo.sh 
       curl --silent -o /home/gunix/.zshrc "https://gitlab.com/gun1x/scripts/raw/master/.zshrc"
       curl --silent -o /home/gunix/.xinitrc "https://gitlab.com/gun1x/scripts/raw/master/.xinitrc"
       curl --silent -o /home/gunix/.Xresources "https://gitlab.com/gun1x/scripts/raw/master/.Xresources"
       mkdir /home/gunix/.ssh/
       curl --silent -o /home/gunix/.ssh/authorized_keys "https://gitlab.com/gun1x.keys"
       chown -R gunix:gunix /home/gunix/
       chmod 400 /home/gunix/.ssh/authorized_keys

You can authenticate with gunix:parola. It grabs config files from my main gitlab repo. You can look through them to understand everything it does. The main thing is to add exec /usr/bin/i3 to .xinitrc and after that just start it with startx. You can automate this to get automatic login and startx on boot, but I woudln’t do that on work laptop since I usually start the boot and go get some coffee/tee :smiley: . I have other stuff there, since this is my working setup.

Note: Be sure you remove my key from the script and add your key.


#8

I do something similar with my Vagrant/libvirt VM, but I use Ansible as a provisioning tool for the VM. You can see my Vagrantfile here. I also wrote this blog post about an annoying issue with the Fedora 28 Cloud image and Ansible:

So you have automatic login and skip a display manager altogether? Interesting. I think I’d still like to adopt a login screen on boot since I want to keep my desktop and laptop in sync with each other.


#9

My desktop at home has automatic login, but at work after boot i get cli prompt… so i just log in and startx.

I don’t feel like GDM is required. I use X anyway since a lot of stuff doesn’t have compatibility with wayland yet … I will switch to wayland at some point, but I will still try to do so without GDM :smiley:


#10

Ah, okay. This makes sense, but probably not what I’m looking to do. I would still like some way to automatically start the X server on boot and not have to do it manually. My view is that the operating system should do these things for me.

You may be familiar with the Sway window manager. It is a Wayland-compatible fork of i3wm. I am told it is reverse-compatible with i3wm configurations and generally hear positive things about it from Fedora user support communities, but I don’t have any direct experience with it.


#11

Yea, sway is part of the plan. Only problem is that atm I have a lot of work and I didn’t have time to test it out.


#12

Just figured you also need dunst or you don’t get any notifications.


#13

I’m going to try layering i3 on top of GNOME 3 when I bring up Silverblue again. Sway’s not necessary; I have quite a few things that don’t work on Wayland so I disable it in /etc/gdm/custom.conf.


#14

If you layer i3 on top of gnome, the number of packages you will need will be huge. I would rather try to layer this on top of atomic host. This is the number of packages I have on my system:

$ sudo rpm -qa | wc -l
1240

Please consider this is the number of packages with SELinux, Vagrant, KVM, Docker, Firefox, Chromium, powerline and some other stuff too. If I do sudo dnf groupinstall 'Fedora Workstation', I get the following summary:

Install  648 Packages

Total download size: 780 M
Installed size: 2.1 G

That is how many packages from gnome and from the default setup I am missing.

I consider it is best to keep the number of packages on the system to a minimum, for faster upgrades and better security. I also like to have everything “clean” and know everything that exists on my system.


#15

Yeah - in any event, I did try it and wasn’t able to get the gdm greeter to put me into i3wm - the options are still GNOME, GNOME Classic and GNOME on Xorg. So there’s at least one config file somewhere I need to hack just to get i3wm up and running. Given the whole GNOME that probably can’t be removed without breaking stuff, I may go ahead and try layering i3wm on Atomic Host.


#16

Let me know if you get a chance to try it out. I also haven’t had time to test it, and I am curious to know what your findings are. :smile:

Yeah. Sadly, I wish it was a default part of i3wm. I also use dunst.


#17

You might also need this: https://gitlab.com/snippets/1766082