Fedora setup

Done with Fedora 39 KDE spin on my desktop. Kind of a build log. Since I don’t do much productive things nowadays, this is optimised around laziness and not-actually-a-nice tiling-fancy-thing. See my older Fedora setup build log thing for that.

Initial setup (Anaconda)

LVM, using Custom. / (root) with the default 70G, /home with the rest. EFI partitions left as is, /boot and /boot/efi.

Hostname is set, admin user for self is set up.

Post install

KDE settings

  • Display: Configured as per required refresh rate, with FreeSync off (unforunately my monitor brightness-flickers)
  • Mouse: Flat acceleration curve
  • Keyboard:
    • Hardware: Delay 200ms, Rate 45/s
    • Advanced: Configure keyboard options checked. Caps Lock behavior -> Make Caps Lock an additional Esc
  • Night Color: Sunset/sunrise at current location
  • SDDM: Apply Plasma Settings (do this at end to ensure settings applied for lock screen)

DNF config and update

Tune settings to be faster before update. sudo vi /etc/dnf/dnf.conf

max_parallel_downloads=10
fastestmirror=True
deltarpm=1
install_weak_deps=False

Then sudo dnf update to grab the latest updates.

Key packages

Install with dnf:

$ sudo dnf install \
    neovim \
    git \
    kitty

Usual packages

My COPR repo:

$ sudo dnf copr enable nicholastay/nexpkg

Good to have RPMFusion so can get extra multimedia things and more:

$ sudo dnf install https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm

Install with dnf:

# Multimedia, swap to use RPMFusion versions (freeworld/nonfree)
$ sudo dnf install @Multimedia --best --allowerasing

# General Tools
$ sudo dnf install \
    @'Development Tools' \
    zsh \
    zsh-syntax-highlighting \
    zsh-autosuggestions \
    mpv \
    ripgrep

# My COPR
$ sudo dnf install \
    belluzj-fantasque-sans-mono-fonts \
    passgen

Flatpak Flathub

I use this for annoying off-the-shelf type of apps:

$ flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo

# At time of writing, the main mirror (Fastly CDN) was being really bad on my internet.
# I only found a China alternative, which was funnily enough, faster. Here it is in case.
$ sudo flatpak remote-modify flathub --url=https://mirror.sjtu.edu.cn/flathub

Misc apps:

$ flatpak install \
    com.discordapp.Discord \
    org.signal.Signal

AppImage

Occasionally things will be distributed this way and it’s whatever. I use AppImageLauncher to integrate it into KDE launcher: https://github.com/TheAssassin/AppImageLauncher/releases - install RPM, then double clicking AppImage files will prompt to register.

Install dotfiles

Repo: https://github.com/nicholastay/dotcafe

$ git clone --bare https://github.com/nicholastay/dotcafe.git $HOME/.dotcafe.git
$ rm .bashrc .bash_profile
$ git --git-dir=$HOME/.dotcafe.git/ --work-tree=$HOME checkout

Set shell

The Zoomer Shell

$ chsh -s /bin/zsh $USER

Set up CJK input

I sometimes have a need to type all 3 of Chinese/Japanese/Korean. Under Wayland, IBus seems to suck (had issues such as key repeat breaking, bad UI/hotkey, etc). So I use Fcitx5, and haven’t had a problem!

(fcitx5 = input itself, kcm-fcitx5 = KDE integration, then Chinese / Korean (Hangul) / Japanese (Anthy))

$ sudo dnf install \
    fcitx5 \
    kcm-fcitx5 \
    fcitx5-chinese-addons \
    fcitx5-hangul \
    fcitx5-anthy

Then, in Settings:

  • Input Devices -> Virtual Keyboard: Fcitx 5
  • Regional Settings -> Input Method (Fcitx 5)
    • Add Input Method:
      • 简体中文 (中文) - Pinyin
      • 日本語 - Anthy
      • 한국어 - Hangul
    • Global Options:
      • Trigger Input Method: Switch to Super+Space
      • Temporarily switch between: Add Right Alt
      • Remove ‘Group’ hotkeys

Misc notes

Other useful tips/tricks/utilities, I guess.

Audio EQ/Effects

For my mic, I want compressor and EQ to help. sudo dnf install easyeffects

Installing fonts

Place fonts (OTF recommended) into ~/.local/share/fonts, then reload with fc-cache -fv.

For Microsoft Fonts (web compatibility, etc) there is mscorefonts2: https://mscorefonts2.sourceforge.net/ (requires copy of Windows system files).

Disabling GRUB boot menu

When another OS is detected via the prober, it will force showing boot menu every time. We can tell system to ignore this:

$ sudo grub2-editenv - set menu_auto_hide=2

# Verify
$ sudo grub2-editenv - list

Wake-on-LAN

I typically shut down my PC, but have a server to hop back into the network and sometimes want to wake my PC to do something. NetworkManager has a way to enable WoL for a connection:

$ nmcli connection modify 'Wired connection 1' 802-3-ethernet.wake-on-lan magic

Then, reboot twice (it starts working on the second shutdown – Arch’s wiki was, of course, right!).

Running SDDM (lock screen/greeter) on Wayland

As per Arch wiki, /etc/sddm.conf.d/10-wayland.conf:

[General]
DisplayServer=wayland
GreeterEnvironment=QT_WAYLAND_SHELL_INTEGRATION=layer-shell

[Wayland]
CompositorCommand=kwin_wayland --drm --no-lockscreen --no-global-shortcuts --locale1

External monitor brightness control in KDE

DDC/CI is actually supported in KDE via libddcutil. The default Fedora KDE spin doesn’t come with ddcutil itself though.

$ sudo dnf install ddcutil

This will also ship the correct udev rules and kernel module loading (i2c-dev) to get it to work. Reboot after install.

(Only one monitor seems to be working at the moment. Supposedly this could change with Plasma 6.)

Game notes

Various stuff to get game things working

WineASIO with PipeWire JACK

See post, Getting WineASIO to work

Connect PS5 (DualSense) controller ‘raw’ in WINE/Proton

See post, Wine + ‘proper’ DualSense (PS5) controller support via hidraw