Set the correct keyboard for first SDDM start and LUKS decryption prompt
Many Fedora Silverblue images use the en_US
keyboard layout by default for the disk decryption prompt (LUKS) and the login screen (SDDM). This may not match your keyboard, so we’ll change it to another layout.
- Find your desired keymap:
localectl list-keymaps| grep CH
de_CH-latin1
fr_CH
fr_CH-latin1
mac-de_CH
mac-fr_CH-latin1
- Set your keymap (replace
fr_CH
with your desired keymap):
sudo localectl set-keymap fr_CH
- Verify the changes in
/etc/vconsole.conf
cat /etc/vconsole.conf ✔
# Written by systemd-localed(8) or systemd-firstboot(1), read by systemd-localed
# and systemd-vconsole-setup(8). Use localectl(1) to update this file.
KEYMAP=fr_CH
FONT=eurlatgr
XKBLAYOUT=ch
XKBMODEL=pc105
XKBVARIANT=fr
XKBOPTIONS=terminate:ctrl_alt_bksp
and /etc/X11/xorg.conf.d/00-keyboard.conf
.
cat /etc/X11/xorg.conf.d/00-keyboard.conf
# Written by systemd-localed(8), read by systemd-localed and Xorg. It's
# probably wise not to edit this file manually. Use localectl(1) to
# update this file.
Section "InputClass"
Identifier "system-keyboard"
MatchIsKeyboard "on"
Option "XkbLayout" "ch"
Option "XkbModel" "pc105"
Option "XkbVariant" "fr"
Option "XkbOptions" "terminate:ctrl_alt_bksp"
EndSection
This should do it for SDDM.
- Now to set the keyboard layout for the LUKS decryption prompt, run:
sudo rpm-ostree initramfs-etc --track=/etc/vconsole.conf
- Reboot for the changes to take effect.
Change the SDDM login screen wallpaper
I dislike the default login screen wallpaper, so I wrote an entire post here on how to create your own SDDM custom theme in order to change the wallpaper.
Fix Breeze cursor theme scale (Fedora 41)
There’s a GTK bug that’s causing the KDE cursor for some themes (Breeze..) to become huge and pixelated. This is notably visible in Bazzite’s terminal app, as shown in the right picture:
A MR fixing this bug has been merged, but it is planned for release in March 2025!
For those like me who can’t wait, here’s a workaround I found thanks to this blogpost. The solution isn’t perfect but is more acceptable than the status quo.
What we will do is simply rebuild the Breeze
cursor theme, fixing its nominal size to fit the real cursor images size.
- In a toolbox, install the required dependencies:
sudo dnf install inkscape xcursorgen mesa-libGL mesa-libEGL
and then the following pip package
pip install pyside6-essentials
- Clone the
breeze
repo:
git clone https://github.com/kde/breeze
Edit
breeze/cursors/src/build.sh
, changeNOMINAL_SIZE=24
toNOMINAL_SIZE=32
.Build the cursor theme:
cd breeze/cursors/Breeze && ../src/build.sh
...
Generating cursor theme... DONE
Generating shortcuts... DONE
Copying Theme Index... DONE
COMPLETE!
- Rename the created theme to avoid overwriting any existing theme:
sed -i 's/^Name=.*/Name=BreezeCustom/' Breeze/index.theme
- Package the theme:
tar -czvf BreezeCustom.tar.gz Breeze
- Finally, install the theme by going to KDE’s cursor settings,
Install from File...
and selecting the createdBreezeCustom.tar.gz
file. Then select it and hit apply.
And that’s it! Your cursor should now have a better scaling on GTK windows.
It’s possible that your cursor is now a bit smaller in these GTK apps. This may be related to fractional scaling not being applied on the cursor. I haven’t investigating further since this now looks acceptable to me until we get the GTK patch
Fix DNS lookup timeout slowing down apps and updates
An annoying issue I ran into was some commands and apps being excruciating slow:
- Firefox would take minutes to launch
dnf install
in toolbox containers would take minutes before outputting anything
After some investigation, I found out that this was related to DNS queries for localhost like names timing out. This could be due changing the default DNS to a private one (NextDNS in my case).
To address this, the simplest solution is to add these localhost names in /etc/hosts
for instant resolution:
# add the following at the end
127.0.0.1 <your_hostname> fedora bazzite toolbox toolbx
<your_hostname>
can be found with cat /etc/hostname
. fedora
and bazzite
are quite obvious. For toolbox container, I found out that the /etc/hostname
in the containers would always be toolbox
, which changed to toolbx
with some release. There might be a similar solution for distrobox, but I haven’t used it yet.