Build a minimal workstation with essential components, no ricing.
Prerequisite
For basic system installation, refer to my prev post: Arch Linux Install: LUKS + Btrfs + Systemd-boot
Upgrade system first before installing any packages.
Ref: System maintenance#Avoid certain pacman commands
$ sudo pacman -Syu
Wayland Compositor
I prefer wayland GUI environment since its ecosystem is mature enough.
I prefer wayland compositors since I’m an experienced user who thinks desktop environments are bloat.
I use sway on my host machine, and use labwc
for virtual machine.
Packages for sway, labwc and other essential components:
$ sudo pacman -S \
sway swaylock swayidle swaybg labwc \
xorg-xwayland wl-clipboard \
xdg-desktop-portal-gtk xdg-desktop-portal-wlr xdg-user-dirs \
wmenu alacritty mako wob grim sway-contrib kanshi wev
xdg-desktop-portal-gtk : necessary component for e.g. file chooser.
xdg-desktop-portal-wlr : necessary component for e.g. screenshot.
XDG user directories :
manage well known user directories e.g. Desktop, Documents, Downloads etc.
wl-clipboard : wayland clipboard utilities.
wmenu : menu for running commands, launching apps.
alacritty : terminal emulator.
mako : desktop notification.
wob : indicator bar for volume or brightness.
grim screenshot tool for wayland.
sway-contrib : grim helper for partial screenshot.
kanshi: dynamic output configuration.
wev : detect key name, for configuring keybindings.
Ref: Sway , Labwc , XDG Desktop Portal
Here is my configurations for sway and labwc: wlrc , feel free to download and test.
Appearance
Not ricing, but fixing some missing configurations.
CJK Fonts
$ sudo pacman -S noto-fonts noto-fonts-cjk noto-fonts-emoji
The default lookup order for CJK fonts has a little problem, picking wrong characters in some cases, such as “复” in chinese word “复制”.
Adjust fallback fonts order to fix the problem,
create /etc/fonts/local.conf
with:
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
<fontconfig>
<alias>
<family>sans-serif</family>
<prefer>
<family>Noto Sans</family>
<family>Noto Sans CJK SC</family>
<family>Noto Sans CJK TC</family>
<family>Noto Sans CJK HK</family>
<family>Noto Sans CJK JP</family>
<family>Noto Sans CJK KR</family>
</prefer>
</alias>
<alias>
<family>serif</family>
<prefer>
<family>Noto Serif</family>
<family>Noto Serif CJK SC</family>
<family>Noto Serif CJK TC</family>
<family>Noto Serif CJK HK</family>
<family>Noto Serif CJK JP</family>
<family>Noto Serif CJK KR</family>
</prefer>
</alias>
<alias>
<family>monospace</family>
<prefer>
<family>Noto Sans Mono</family>
<family>Noto Sans Mono CJK SC</family>
<family>Noto Sans Mono CJK TC</family>
<family>Noto Sans Mono CJK HK</family>
<family>Noto Sans Mono CJK JP</family>
<family>Noto Sans Mono CJK KR</family>
</prefer>
</alias>
</fontconfig>
Later you could create ~/.config/fontconfig/fonts.conf
with same format to
overwrite this configuration, replace with custom fonts under ~/.local/share/fonts
for example.
Ref: Font configuration#Fontconfig configuration , Font configuration#Alias
Icon Theme
Icon theme is an essential component, Papirus is a good one.
“It is recommended to install the hicolor-icon-theme
package as many programs
will deposit their icons in /usr/share/icons/hicolor/
and most other icon themes
will inherit icons from the Hicolor icon theme”
$ sudo pacman -S papirus-icon-theme hicolor-icon-theme
Ref: Icons
GTK Theme
Set GTK icon theme
$ ls /usr/share/icons
$ gsettings set org.gnome.desktop.interface icon-theme Papirus
Set GTK dark theme
$ sudo pacman -S gnome-themes-extra
$ ls /usr/share/themes
$ gsettings set org.gnome.desktop.interface gtk-theme Adwaita-dark
Ref: GTK#Basic theme configuration , GTK 3 settings on Wayland
For Qt settings check following section Qt Theme.
Qt Theme
Without proper settings, Qt apps is not looking good, also may not showing icons correctly.
Install qt6ct
and set environment variables, then restart wayland compositor:
$ sudo pacman -S qt6ct
$ echo "export QT_QPA_PLATFORMTHEME=qt6ct" >> ~/.bashrc
Not recommending the breeze
theme, the package is highly dependent on the KDE framework,
would install lots of irrelevant KDE components, which is annoying,
this is the most reason I don’t like KDE stuff.
Ref: Configuration of Qt 5/6 applications under environments other than KDE Plasma , Not showing functional icons
Sound System
PipeWire
$ sudo pacman -S alsa-utils \
pipewire pipewire-alsa pipewire-pulse pipewire-jack wireplumber lib32-pipewire
Ref: Advanced Linux Sound Architecture , PipeWire
Volume Control
$ sudo pacman -S pavucontrol
Ref: No sound in mpv vlc but works in web browser
File Manager, Reader
$ sudo pacman -S \
pcmanfm-qt lxqt-archiver p7zip libarchive \
gvfs gvfs-mtp gvfs-afc \
zathura zathura-pdf-mupdf tesseract-data-eng \
imv mpv chromium
PCManFM : file manager.
GVFS :
provides mounting and trash functionality.
Zathura : pdf/epub viewer.
Tesseract : zathura dependency, OCR engine.
imv : image viewer.
mpv : video/audio player.
Chromium : web browser.
Polkit
Tools like Ventoy need polkit to evaluate privilege.\
$ sudo pacman -S polkit lxqt-policykit
Autostart with sway, edit ~/.config/sway/config
with:
exec lxqt-policykit-agent
Ref: polkit
Input Method
I use Fcitx5 and RIME to input chinese characters. Here is my RIME config for Wubi86 : rimerc.
$ sudo pacman -S fcitx5 fcitx5-qt fcitx5-configtool fcitx5-rime
Edit .bashrc
with:
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx
Autostart with sway, edit ~/.config/sway/config
with:
exec fcitx5 -d -r
Fix fcitx5 not working for Chromium on wayland,
enter chrome://flags
from Chromium address bar, search for wayland
, edit:
Preferred Ozone platform: Auto
Wayland text-input-v3: Enabled
Ref: Fcitx5 , Using Fcitx 5 on Wayland
GPU Drivers
$ sudo pacman -S vulkan-radeon lib32-vulkan-radeon lib32-mesa
For Intel graphics#Installation
$ sudo pacman -S vulkan-intel lib32-vulkan-intel lib32-mesa
For Hardware video acceleration
Intel Alder Lake:
$ sudo pacman -S intel-media-driver
Peripheral Device
Bluetooth
$ sudo pacman -S bluez bluez-utils
$ sudo systemctl enable --now bluetooth
Pairing
$ bluetoothctl
[bluetoothctl]# scan on
[bluetoothctl]# pair <MAC_ADDRESS> (tab completion works)
Troubleshooting: Reboot computer when this error occurred: bluetoothctl: No default controller available
Ref: Bluetooth
Printer
$ sudo pacman -S cups cups-pdf
$ sudo systemctl enable --now cups
The CUPS server can be fully administered through the web interface, and there’s documentation for adding printer http://localhost:631/help/admin.html.
Ref: CUPS
Install printer driver if needed, in my case is brlaser
package from AUR:
$ sudo pacman -S base-devel
$ git clone https://aur.archlinux.org/brlaser.git ~/
$ cd ~/brlaser
$ makepkg -sic
Ref: Arch User Repository