Skip to main content

Plasma Desktop Troubleshooting

This contains fixes for various issues you might encounter with the Plasma desktop environment.

Desktop no longer responds to clicks, cursor stuck in "move" mode (cross)

This is often caused by a Firefox bug. It can be triggered by various things, like moving Firefox windows.

Symptoms:

  • Can't click on anything on the desktop.
  • Bringing up windows with keyboard shortcuts (ex: Super for the app menu, F9 for a drop down terminal) works, but they don't get focused. You can't interact with them.
  • Mouse cursor is stuck in move mode, it looks like a cross.

You may not need to reboot to recover from this state. Killing all firefox processes may be all that's necessary. To do so:

  1. Open a virtual terminal by pressing Ctrl+Alt+F3.
  2. Run the following to kill all firefox windows:
killall firefox

This should close all Firefox windows.

  1. Return to the Plasma session by pressing Ctrl+Alt+F2. You should now be able to use Plasma normally.

Application windows look corrupt / incomplete

Symptoms

  • Application windows look corrupt. For example, NeoChat does not display room or user icons.
  • Menus in an application are blank.

You may be able to fix this by clearing KDE / Plasma cache files.

Important

You should not be logged into your Plasma session while deleting the cache files, booting from a live USB is necessary.

  1. While still logged into your Plasma session, go to your home directory:

    cd
  2. Run these commands to back up the following directories:

    cp -av ~/.kde{,.bak}
    cp -av ~/.config{,.bak}
    cp -av ~/.local{,.bak}
    cp -av ~/share{,.bak}

The commands create a copy of the folders. Each copy has the .bak extension (Example: ~/.config.bak). These can be used to recover configuration files, if necessary.

  1. Shut down the system.

  2. Boot from a live USB, which you can create from one of the Solus installers.

  3. Mount the partitions of your Solus system.

    Details

    To recover your system, you need to mount the Solus root (/) partition and all other partitions your system uses.

    1. Open a terminal.

    2. Mount the Solus root partition:

      1. Access as the root user by using the following command:

        sudo su
      2. Create a directory to serve as the mount point for your Solus system:

        mkdir /target
      3. Find the drive and partition of your Solus system using the lsblk command.

        After running the command, the system displays a list of all the drives in your computer:

        NAME                  MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
        sda 8:0 0 238.5G 0 disk
        ├─sda1 8:1 0 512M 0 part
        ├─sda2 8:2 0 234G 0 part
        └─sda3 8:3 0 4G 0 part [SWAP]
        sdb 8:16 0 465.8G 0 disk
        ├─sdb1 8:17 0 1G 0 part
        └─sdb2 8:18 0 464.8G 0 part
        ├─SolusSystem-root 253:0 0 234.3G 0 lvm
        ├─SolusSystem-swap 253:1 0 3.7G 0 lvm [SWAP]
        sdc 8:32 1 14.9G 0 disk
        ├─sdc1 8:33 1 4.2G 0 part /cdrom
        └─sdc2 8:34 1 4.1M 0 part
        nvme0n1 259:0 0 476.9G 0 disk
        ├─nvme0n1p1 259:1 0 500M 0 part
        ├─nvme0n1p2 259:2 0 16M 0 part
        ├─nvme0n1p3 259:3 0 475G 0 part
        └─nvme0n1p4 259:4 0 1.4G 0 part

        You can use drive size or the number of partitions in each drive to determine which one is your Solus drive.

        tip

        If you installed Solus on a SATA drive, the name of the drive might be sdX (For example, sda). If you installed Solus on an NVMe drive, the name of the drive might be nvme#n# (For example nvme0n1).

        Write down the name of the drive and the type.

      4. If the type of your drive is lvm or if your drive is encrypted:

        1. Check if the drive is encrypted.

          Encrypted drives do not have the label decrypted after the drive name:

          sdb                     8:16   0 465.8G  0 disk
          ├─sdb1 8:17 0 1G 0 part
          └─sdb2 8:18 0 464.8G 0 part
          ├─SolusSystem-root 253:0 0 100G 0 lvm
          └─SolusSystem-swap 253:1 0 8G 0 lvm [SWAP]

          Decrypted drives have the label decrypted after the drive name:

          sdb                     8:16     0 465.8G  0 disk
          ├─sdb1 8:17 0 1G 0 part
          └─sdb2 8:18 0 464.8G 0 part
          └─decrypted 253:1 0 238G 0 crypt
          ├─SolusSystem-root 253:0 0 234.3G 0 lvm
          └─SolusSystem-swap 253:1 0 3.7G 0 lvm [SWAP]
        2. If your drive is encrypted, use cryptsetup to decrypt it.

          cryptsetup luksOpen /dev/partitionName decrypted

          For example

          cryptsetup luksOpen /dev/sdb2 decrypted
      5. Mount the Solus root partition:

        • If your drive's type is lvm
          mount /dev/mapper/SolusSystem-Root /target
        • Otherwise:
          mount /dev/sdX# /target
    3. If your computer uses UEFI, mount the EFI system partition:

      In new installations, the EFI system partition (also known as ESP) is usually 1 GB in size. For older installations, the partition is usually 512 MB in size.

      1. Use fdisk to check the partitions of your drive:

        • If you have a SATA drive:

          fdisk -o Device,Size,Type -l /dev/sdX
        • If you have an NVMe drive:

          fdisk -o Device,Size,Type -l /dev/nvme0nX

          The system displays something similar to this:

          Device       Size Type
          /dev/sda1 512M EFI System
          /dev/sda2 111.3G Linux filesystem

          In this case, the EFI system partition is /dev/sda1

    4. Mount the EFI system partition:

      mount /dev/sdX# /target/boot

      For example:

      mount /dev/sda1 /target/boot
    5. Mount other partitions your system might have (for example, /home):

      mount /dev/sdX# /target/home
    6. Chroot to your Solus system:

      Chroot allows you to execute commands and use utilities from your main system directly. This is necessary to do specific repairs like fixing the bootloader.

      1. Run the following commands:
        mount --types proc /proc /target/proc
        mount --rbind /dev /target/dev
        mount --rbind /sys /target/sys
        mount --make-rslave /target/dev
        mount --make-rslave /target/sys
      2. Chroot into your system:
        chroot /target
  4. Change to your user's directory in the chrooted environment:

    cd /target/home/your-user-name

    For example:

    cd /target/home/JohnDoe

    You can make sure the directory is correct by listing the files:

    ls -laH
    Important

    Avoid deleting the following directories: ~/.kde, ~/.kde4, ~/.local, and ~/.config

  5. Remove the various caches that Plasma uses.

    Execute the following commands:

    rm -rf .cache/plasmashell*
    rm -rf .cache/org.kde.dirmodel-qml.kcache
    rm -rf .cache/kioexec/ .cache/krunner/ .cache/ksycoca5*
    rm -rf .cache/krunnerbookmarkrunnerfirefoxdbfile.sqlite

    cd ../.local/
    rm -rf kate/ kded5/ klipper/ knewstuff3/ kscreen/ konsole/ kwalletd/ ksysguard/ kmail2/ kcookiejar/ kactivitymanagerd/

    cd ../share/
    rm -rf dolphin kate kcookiejar kded5 keyrings klipper kmail2 knewstuff3 konsole kscreen ksysguard kwalletd kxmlgui5 plasma_engine_comic plasma plasma_notes org.kde.gwenview

    cd ../.config/
    rm -f plasma*
    rm -rf kde* akonadi* KDE kconf_updaterc baloo* dolphinrc drkonqirc gwenviewrc kmail2rc k*rc katemetainfos
  6. Shut down the live environment and remove the live USB drive.

  7. Reboot back into your regular Plasma session. Verify the issue is fixed.

  8. If you experience system instability, restore the previously backed up folders.

    To restore an entire directory:

    cp -rav .kde.bak/share/config/ .kde/share/config

    After restoring the files or directories, restart your system.