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.
- Screen sharing in Wayland. I am surprised this wasn’t included by default.
- Fixing java applications in Wayland.
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:
- bjarosze/gnome-bluetooth-quick-connect.
- home-sweet-gnome/dash-to-panel.
- maoschanz/emoji-selector-for-gnome.
- raujonas/executor.
- GSConnect/gnome-shell-extension-gsconnect.
- gTile.
- gnome-shell-impatience.
- MartinPL/Tray-Icons-Reloaded.
- gnome-shell-extensions/user-themes.
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 outputsswaymsg -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.
- Some distros need
- 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:
- Screen sharing in Wayland.
- Fixing java applications in Wayland.
- Might use
obs qt5-wayland
for advanced screen recording.
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
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
andxinput --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