My Gnome configuration and its extensions

I’ve been using a slightly tweaked Gnome 3 for a while now. Before that, I was using the Awesome Window Manager and I was pretty fan of the key binding. In order to facilitate the transition, I tried to recreate them. The result is pretty good. I can navigate between my 9 different virtual desktops using the Windows(a.k.a SUPER) key+a number. Windows+f also works, it will turn on the Fullscreen mode for a given window. Years after the migration to Gnome, I still use the bindings intensively. The following script configures Gnome for with my configuration:

It creates 9 virtual desktops on one single monitor that I can reach using the Super+$number key binding, e.g: Windows+6. In addition, it also turns off the animations and the annoying alert sound.

I also use a couple of extensions:

  • Application volume mixer to be able to adjust my mic volume level during meeting link
  • Network stats to get some visibility on the network traffic link
  • Sound Output Device Chooser to be able to switch the sound output between my Bluetooth speaker and my headset. I use it several times every days, it’s super handy. link

Elixir: xmerl/include/xmerl.hrl could not be found

I recently faced this error when trying to build an Elixir project.

== Compilation error in file lib/swoosh/adapters/xml/helpers.ex ==
** (ArgumentError) lib file xmerl/include/xmerl.hrl could not be found
(elixir 1.13.4) lib/record/extractor.ex:41: Record.Extractor.from_lib_file/1
(elixir 1.13.4) lib/record/extractor.ex:18: Record.Extractor.from_or_from_lib_file/1
(elixir 1.13.4) lib/record/extractor.ex:5: Record.Extractor.extract/2
lib/swoosh/adapters/xml/helpers.ex:5: (module)
(elixir 1.13.4) lib/kernel/parallel_compiler.ex:346: anonymous fn/5 in Kernel.ParallelCompiler.spawn_workers/7
could not compile dependency :swoosh, "mix compile" failed. Errors may have been logged above. You can recompile this dependency with "mix deps.compile swoosh", update it with "mix deps.update swoosh" or clean it with "mix deps.clean swoosh"

If you can the error above on Fedora, you probably need to install the erlang-xmerl package.

0ad, Firewall and Fedora33

By default, the firewall will prevent connection to your 0ad server. To adjust that, you need to open up the port 20595 (UDP). This three lines create a Firewalld service called 0ad, attach it to the default zone and reload the firewall:

$ sudo firewall-cmd --permanent --new-service=0ad --set-description="0ad, A free, open-source game of ancient warfare" --add-port=20595/udp
$ sudo firewall-cmd --zone=FedoraWorkstation --add-service=0ad --permanent
$ sudo firewall-cmd --reload

eGPU, Wayland, Gnome3 and Fedora

I’ve just got a Razor Core X that I use with a Radeon graphic card. By default Wayland, well Mutter actually, continue to use the Intel card of my T580.

To force it to use the second card, I had to add a udev rules and reboot. And that’s all!

$ cat /etc/udev/rules.d/61-mutter-primary-gpu.rules
ENV{DEVNAME}=="/dev/dri/card1", TAG+="mutter-device-preferred-primary"

note: You need Gnome 3.38.2 for this to work properly. See:

update: the post was initially written for Fedora 33, but the fix also work great with Fedora 34.