🐧 The Linux Adventure

Some documentation I have collected when exploring and configuring different linux environments.

While going through the Linux Adventure, ensure you configure chachi-shell as part of the process. It contains default configurations for many programs/scripts.

Distros

EndeavourOS

This distro is based on Archlinux, preconfigured with multiple desktop environments and with extra system management tools (similar to Manjaro). After using it for some months it looks quite stable: I chose GNOME, which is basically the default GNOME no extra tweaks.

Fedora

Simply the best default GNOME desktop environment. It is practically the default DE that just works. I have never needed any tweaks apart from installing some extensions.

KDE Neon

Although it is the default KDE experience (an Ubuntu distro with the latest Plasma release) it looks a bit unstable. The package management is a bit weird, depending on Snap as expected. I ended up moving to Manjaro.

Manjaro

Based on Archlinux, it's the best distro with a KDE environment that I have ever tried. Quite similar to EndeavourOS, it looks incredibly stable and the desktop environment configuration is very well polished.

Archlinux

For the first steps, I am going to follow the ArchLinux installation wiki. I have tried it some years ago, and it gives an usable installation with a minimum amount of packages installed. 🏔 Working with Archlinux.

Wiki FAQ:

  • Only supports x86_64 architecture.
  • Uses systemd as service manager.
  • /bin, /sbin and /usr/sbin are symbolic links to /usr/bin; /lib and /lib64 are symbolic links to /usr/lib; more info about filesystem hierarchy.
  • pacman -Qlq package_name gives information about an installed package.
  • systemd-boot is used to manage a UEFI motherboard.
  • xdg-user-dirs-update.service takes care of creating user directories like "downloads" or "music". This might be enabled by default by the window manager.
  • ACPI events (power buttons, laptop lid…) can be managed with systemd.
  • Firewall is not enabled by default, but iptables can be enabled and should work.
  • By default it only supports english "standard" keyboard layout.
  • tab-completion needs to be enabled.

Desktop environments and window managers

GNOME

Nice extensions:

KDE Plasma

  • Use Command Output widget to show terminal commands.
  • Install cpupower-gui to change intel CPU profile.

Sway

  • Sway is a compositor for wayland
  • swaymsg -t get_outputs list outputs
  • swaymsg -t get_tree list windows
  • Install sway swaybg swayidle swaylock alacritty rofi rofi-emoji mako grim brightnessctl slurp swappy wf-recorder
    • Some distros need pipewire-utils pulseaudio-utils too.
  • Install gifski, if it is not available in repo: cargo install gifski --features=video
  • ln -s some/path.jpg ~/.background.jpg

Some problems that might appear:

i3

  • Install i3 i3lock i3status alacritty rofi rofi-emoji mako grim pipewire-utils pulseaudio-utils brightnessctl slurp swappy ImageMagick xrandr feh
  • ln -s some/path.jpg ~/.background.jpg

Common issues

Java applications not being refreshed in Wayland

Original IntelliJ post.

Adding this to /etc/environment fixes some issues with Java Applications (like Jetbrains’ IDEs): _JAVA_AWT_WM_NONREPARENTING=1.

Screen sharing with Wayland

Depending on the application (ex. Slack vs Firefox) you might not be able to share fullscreen, and need to share individual applications instead.

Desktop environments:

  • GNOME: install xdg-desktop-portal-gnome xdg-desktop-portal-gtk xdg-desktop-portal
  • Sway: install xdg-desktop-portal-wlr xdg-desktop-portal-gtk xdg-desktop-portal

Applications:

  • Firefox: add MOZ_ENABLE_WAYLAND=1 environment variable.
  • Slack: update slack.desktop application file adding --enable-features=WebRTCPipeWireCapturer (this should work for any chrome-based application).

Failing touchpad

My touchpad is failing sometimes, it is detected as a regular mouse with no multitouch support and no disable while typing features. This last thing is specially annoying when I need to use the laptop keyboard, because I accidentally click on random places while writing.

At the moment, the only temporary “solutions” I have are:

  • Suspend and wake up system, which for some reason fixes the problem.
  • Using xinput and xinput --disable [ID] to disable touchpad.

Fn keys in custom keyboards

Although some keyboards have a shortcut to toggle Fn lock, and make Fn keys act as media keys or viceversa, not all of them have this feature. I own a Varmilo VA88M keyboard which does not have this feature, so I needed to update this at system level.

I found this solution in the Archlinux wiki. First, try this code to make a temporary in-memory change and check if it works:

echo 2 >> /sys/module/hid_apple/parameters/fnmode

If it works, update /etc/modprobe.d/hid_apple.conf adding the following line:

options hid_apple fnmode=2