Skip to content

Linux (All Distributions)

Nikhil Prabhu edited this page Mar 27, 2026 · 10 revisions

Force Wayland for Electron Apps (KDE Plasma)

  • Right-click on the Application Launcher > Edit Applications > <APPLICATION_NAME> > Add the following to Command-Line Arguments:
    --enable-features=UseOzonePlatform,WaylandWindowDecorations --ozone-platform-hint=auto

Force an application to use the KDE Plasma file-picker

  • Right-click on the Application Launcher > Edit Applications > <APPLICATION_NAME> > Add the following environment variable
    GTK_USE_PORTAL=1

Fix Discord (Flatpak) not working with SELinux in enforcing mode ("installation is corrupted")

  • Open a Terminal and run:
    sudo ausearch -c 'Discord' --raw | audit2allow -M discord
    sudo semodule -i discord.pp

Setting up a storage device as a Steam drive

  • Create a mount point for the drive (Eg: /mnt/Games-SSD1). Ensure the ownership of this directory is $USER:$USER
  • Use the blkid command to get the device's UUID (Eg: sudo blkid /dev/sda1)
  • Add the following entry to /etc/fstab:
    UUID=<UUID>  /mnt/<MOUNT_POINT>  <FILESYSTEM>  user, data=writeback,defaults,exec,noatime,nofail,barrier=0  0  2
    
  • After saving the file, the drive can be mounted and selected as an additional storage drive in Steam.

Fix broken rendering in Chromium-based browsers and Electron apps (Wayland)

  • This issue usually occurs when the application's GPU cache is broken. To fix this issue, we can simply clear the GPUCache directory for the application.
  • For example:
    • Google Chrome: rm -rf ~/.config/google-chrome/Default/GPUCache
    • VS Code: rm -rf ~/.config/Code/GPUCache
    • Brave Browser: rm -rf ~/.config/BraveSoftware/Brave-Browser/Default/GPUCache
  • Restarting the application(s) after this should rebuild the GPU cache, and ideally, the issue should be resolved.

Enable automatic codec switching for Bluetooth headphones/microphones (helps with meetings/calls)

NOTE: This only works with PipeWire.

  • Ensure that wireplumber is running using the command systemctl --user status wireplumber
  • Create or edit the file /usr/share/wireplumber/wireplumber.conf.d/50-bluez.conf, and add the following content:
    monitor.bluez.properties = {
      bluez5.enable-sbc-xq = true,
      bluez5.enable-msbc = true,
      bluez5.enable-hw-codec = true,
      bluez5.autoswitch-profile = true,
    
      # Explicitly prefer LC3 first, then fallback if needed
      bluez5.codecs = [ "lc3", "mSBC", "SBC" ]
    }
  • Restart relevant services: systemctl --user restart wireplumber pipewire pipewire-pulse

Fix broken Emojis in the KDE Plasma UI

  • Open the file /etc/fonts/local.conf and add the following content:
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
 <alias>
  <family>serif</family>
  <prefer>
   <family>Noto Sans</family>
   <family>Noto Color Emoji</family>
  </prefer>
 </alias>
 <alias>
  <family>sans-serif</family>
  <prefer>
   <family>Noto Sans</family>
   <family>Noto Color Emoji</family>
  </prefer>
 </alias>
 <alias>
  <family>monospace</family>
  <prefer>
   <family>Noto Sans</family>
   <family>Noto Color Emoji</family>
  </prefer>
 </alias>
 <dir>~/.fonts</dir>
</fontconfig>
  • Save the file, and run the following command: fc-cache -f -v

Allow adding printers from KDE System Settings (rather than only from within YaST)

  • Open the file /etc/cups/cups-files.conf and find the line that starts with SystemGroup. By default, its value is set to just root.
  • Modify this line to add the wheel group to it.
    SystemGroup wheel root
  • Save the file and restart the CUPS service: sudo systemctl restart cups
  • Add your user to the wheel group: sudo usermod -a -G wheel $USER
  • Log out and log in again for the group changes to take effect.

Display battery percentage for Bluetooth devices using proprietary protocols

  • Run sudo systemctl edit bluetooth.service
  • Add the following content to the file:
    [Service]
    ExecStart=
    ExecStart=/usr/lib/bluetooth/bluetoothd --experimental
    NOTE: The first blank ExecStart= line is required to tell systemd to ignore the default ExecStart.
  • Save and exit, and run:
    sudo systemctl daemon-reload
    sudo systemctl restart bluetooth.service

Clone this wiki locally