Siduction Linux 2024.1.0 (Shine On) Review [KDE Plasma Edition] Supplement: Fixes and Enhancements

Feb. 28, 2025, 6 p.m.

The KDE Plasma Edition of Siduction Linux 2024.1.0 (code named Shine On ...) as reviewed in Siduction Linux 2024.1.0 (Shine On) Review [KDE Plasma Edition] is an excellent distribution. It features a rolling update model of current software and installation on a Btrfs filesystem by default, with Snapper integration for system snapshots and rollbacks, as well as custom scripts to refine the rollback process. In order to provide current software that is continuously updated, it is built from Debain's unstable repositories, code named Sid. As such, it is suited to those who are able and willing to deal with issues that may arise due to the use of the Sid repository.

I found it necessary to put some effort into making it usable for my needs, such as enabling sudo, enabling hibernation, manually installing Kvantum, installing Nvidia proprietary drivers and, manually installing the Nvidia Optimus management utility EnvyControl, among other actions. These fixes and enhancements are described in this article as a supplement to Siduction Linux 2024.1.0 (Shine On) Review [KDE Plasma Edition].

Fixes

Add User to sudo Supplementary Group

For reasons explained in The Siduction Manual and summarized in the article to which this is a supplement, Siduction Linux, unlike most Linux distributions does not enable sudo by default. However, a sudo group is pre-configured and the sudo configuration file has been set up to allow root privileges to any user in the sudo group. So, adding a user to the sudo group as the actual root user, with the Debian provided alternative to the standard Linux usermod command, adduser, as shown below, will give the user temporary root privileges, when it used to execute a command in a terminal.

  1. Switch to the root user.
    󰁹 100%  23:17:07  USER: brook HOST: Legion-Siduction  on  exp  [✘!?]
    DataEXT4-16ITH6  ❯$ su
    Password:
  2. Add the user, in this case brook, to the sudo group.
    
    root@Legion-Siduction:/home/brook/DataEXT4-16ITH6# adduser brook sudo
    info: Adding user `brook' to group `sudo' ...
    root@Legion-Siduction:/home/brook/DataEXT4-16ITH6#
    

Replace firewalld with ufw

As described in the main Siduction review article, the firewall management program, firewalld, preinstalled on release 2401.1.0 (Shine On ...) is broken. I decided to replace it with UFW which turned out to have not a single issue, with perfect integration with the Firewall component of Plasma's System Settings. The steps I took to remove firewalld and replace it are described below.

  1. Purge firewalld.
    sudo nala purge firewalld
  2. Install ufw (Image 1, rightmost window).
    sudo nala install ufw
  3. The systemd ufw service is enabled by default upon installation of the package. It can be started for the current session with:
    sudo systemctl start ufw.service
  4. At this point, event though the service has been started, ufw is not active (Image 1, leftmost window, first commadn). Enable UFW with its own enable command. This may be a redundant since the ufw.service is already enabled.
    sudo ufw enable
  5. Reload ufw with its own reload command to make it immediately active.
    sudo ufw reload

Enabling UFW and the System Settings Firewall Component
The ufwcommands enable and reload will activate UFW. Firewall will allow basic operations and show UFW activity.
Click on any of the thumbnails to view a slideshow of the images.

The first image in the following set of images shows the installation of UFW, the starting of its service, and enabling it with UFW's own commnds. The second through fourth images, show the Plasma System Settings Firewall component with controls to perform basic operations on its backend, in this case UFW and some information produced by UFW.

APT Fixes

Prevent Package Dependency Issues

As mentioned in the main article, new installations of Siduction may have package dependency issues immediately after installation. In my case it was not possible to install several packages or upgrade the system due to a package dependency issue involving the system Python version. This particular problem was fixed and could even have been prevented by -- as suggested by apt itself -- executing:

apt --fix-broken install

Modernize APT .list Format

Shortly after installing Siduction, Debian changed the format of the APT configuration files used to specify repository characteristics, the names (or extensions) of these files, and their location in the APT configuration directory. Filenames changed from having a .list extension to a .sources extension. The main file was moved into the /etc/apt/sources.list.d/ directory where secondary sources files had been and are still located, and the format changed to conform to the deb822 standard, which replaced single lines in the files to a set of key value pairs. It also added a new element to specify the GPG file to be used to verify packages, the "Signed-By key.

The source files, as written by the 2024.1.0 installation ISO, can be converted to the new format and directory structure by simply executing:

apt modernize-sources

Enable Hibernation

The Siduction installations were on computers with existing swap partitions which were detected by the installer. Unfortunately, it was not possible in Calamares to specify that they should be enabled in the installed systems, nor did Calamares enable it automatically. As either a swap partition or a swap file is necessary to save the system state for hibernation, in order to enable hibernation on the systems with exisitng swap partitions, the swap partitions must be added to /etc/fstab, which will cause them to be available when block devices are mounted at boot. In addition, the swap partition must be specified as a resume device in the kernel command line, which can be done by including it in the /etc/default/grub file and updating the grub configuration.

  1. Edit /etc/fstab to include a line to mount the swap partition, as shown in the following listing:
    UUID=980ddbbf-9b79-4390-be21-850e62b7ebb2       none            swap            defaults        0       0
    
  2. Edit /etc/default/grub to include the resume device parameter in the default kernel command line. In the following listing showing the GRUB_CMDLINE_LINUX_DEFAULT parameter in the file, the resume GRUB parameter and its value is added.
    GRUB_CMDLINE_LINUX_DEFAULT='quiet resume=UUID=980ddbbf-9b79-4390-be21-850e62b7ebb2 systemd.show_status=1'
  3. Update the GRUB configuration with
    grub-mkconfig -o /boot/grub/grub.cfg
  4. It is also necessary for the initramfs image to contain a module to handle resume. This is already included in the Siduction configuration for building the initramfs, so it is not necessary to modify the configuration and rebuild the initramfs.

Fixes Necessary For Kmail

KMail is the preinstalled email client in Siduction 2024.1.0 KDE Plasma Edition. However, it is not entirely usable out-of-the box because the KDE Wallet System is required to store encryption protected email account passwords, however it is not enabled by default. The KDE Wallet System itself requires a GPG key-pair to store passwords with encryption protection. That the KDE Wallet System is not enabled is an understandable trade-off made by the distribution because many Plasma users on various distributions complain of being bugged by the KWallet system to select an encryption method if it is enabled.

Preventing the repeated prompts, and also making Kmail usable is simply a matter of generating a key-pair for use not only by KWallet but for any other purpose for which GPG keys can be used. After the key-pair has been generated, KWallet can be enabled for use by KMail to encrypt passwords, and other uses such as storing WiFi passwords, encrypting local files, etc.

Generate a GPG Key Pair

A GPG key-pair for use by the KDE Wallet System or KWallet, or for any other purpose can be created by the

gpg --generate-key
command. Executing the above command without additional options will produce a 3072-bit RSA key-pair with a three year validity period. The command and its output is shown in the following listing.


󰁹 100%  11:05:36  USER: brook HOST: Legion-Siduction   
~  ❯$ gpg --generate-key
gpg (GnuPG) 2.2.46; Copyright (C) 2024 g10 Code GmbH
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Note: Use "gpg --full-generate-key" for a full featured key generation dialog.

GnuPG needs to construct a user ID to identify your key.

Real name: Brook Kidane
Email address: brook@Legion-Siduction.localdomain
You selected this USER-ID:
    "Brook Kidane "

Change (N)ame, (E)mail, or (O)kay/(Q)uit? o
We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.
We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.
gpg: directory '/home/brook/.gnupg/openpgp-revocs.d' created
gpg: revocation certificate stored as '/home/brook/.gnupg/openpgp-revocs.d/1B94EED0F2790FC442EA528FA385E3879B013985.rev'
public and secret key created and signed.

pub   rsa3072 2025-03-01 [SC] [expires: 2028-02-29]
    1B94EED0F2790FC442EA528FA385E3879B013985
uid                      Brook Kidane 
sub   rsa3072 2025-03-01 [E] [expires: 2028-02-29]


󰁹 100%  11:07:25  USER: brook HOST: Legion-Siduction   
PCD: 1m29s ~  ❯$

Enable KDE Wallet System

The KDE Wallet System can be enabled through the KWallet Manager application, the KDE Wallet component of Plasma System Settings, or by responding appropriately to the prompt produced by an application attempting to access the wallet (this type of prompt was shown in the main article).

The following image shows the Wallet Manager application and the Plasma System Settings application open to the KDE Wallet screen. In both of these applications, if the KDE Wallet System is not already enabled, there would be a button to enable the system.

Enable GTK Menus in Plasma Gloabl Menu Widget

As described in the main review article, Siduction 2024.1.0 KDE Plasma Edition had an issue in which not all GTK applications' menus were not displayed in the Global Menu widget. Of the three GTK applications I use, GIMP, Visual Studio Code, and Inkscape, this only affected GIMP. Correcting the issue only required the installation of appmenu-gtk3-module as in:

apt install appmenu-gtk3-module

As noted in the main article, it was not possible to install this package until

apt --fix-broken install

was executed to resolve package dependency issues.

Install Kvantum

Kvantum is a Qt widget theme engine that can be used as an alternative to the Breeze Application Style used by default in Plasma. It comes bundled with its own themes, but can use third-party themes available from the Kvantum Category of the Pling KDE Store.

Unfortunately, despite Debian's reputation as a distribution with the most packages in its repositories, it does not package Kvantum or Kvantum Manager in its repositories for the unstable (Sid) branch. So Debian Sid users or Siduction Linux users who run KDE's Plasma Desktop, will have to install it manually. The procedure is described in Installing Kvantum from Source on Siduction (Debian Sid).

Install Nvidia Proprietary Drivers

Installing the proprietary Nvidia drivers for modern Nvidia GPUs is a simple matter of installing the nvidia-drivers package. The nvidia packages are only available if the non-free components of the Debian repositories have been enabled during installation, otherwise the /etc/apt/sources.list.d/debian.list (in pre deb822 installations) or /etc/apt/sources.list.d/debian.sources must be modified to include the non-free sections, as in:

deb https://deb.debian.org/debian/ unstable main contrib non-free non-free-firmware

for pre deb822, and as in:

Types: deb
URIs: https://deb.debian.org/debian/
Suites: unstable
Components: main  contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg

for post deb822 formatted source files.

Then the proprietary Nvidia driver can be installed with:

󰂄 100%  19:15:04  USER: brook HOST: Legion-Siduction
PCD: 12s ~  ❯$ sudo apt install nvidia-driver

... truncated ...

The following image shows the installation command, as well as the pages in the Siduction manual covering the topic of Nvidia driver installation. The manual instructs also installing firmware-linux-nonfree, which was already installed.

Installing the Proprietary Nvidia Driver on Siduction
If the Debian repository non-free component, the Nvidia driver for modern Nvidia GPUs can be installed with the package nvidia-drivers.

Install EnvyControl

For laptops with Nvidia Optimus technology, Debian -- as far as I know -- or Siduction do not have any utilities to manage switching GPUs. However, the distribution agnostic EnvyControl utility can be used to manage switching between integrated and discrete modes on Optimus laptops with pre-Turing generation Nvidia GPUs, and switching between discrete and hybrid modes on Optimus laptops with post-Turing generation Optimus laptops, which are capable of runtime power management, i,e, changing the ACPI power state of the GPU.

EnvyControl is not packaged in Debian or Siduction repositories, but a deb package can be downloaded from the project's Github and installed manually as described below.

  1. Download the python3-envycontrol package from the Github releases page. The link to the latest release, as of this writing, is https://github.com/bayasdev/envycontrol/releases.
  2. Change directory to the directory in which the download was saved, or use the full path to the downloaded file as the argument to the apt command in the next step.
  3. Install the package.
    󰂄 100%  19:24:22  USER: brook HOST: Legion-Siduction
    PCD: 12s ~/Downloads  ❯$ sudo apt install ./python3-envycontrol_3.5.1-1_all.deb
    
    ... truncated ...
    

Installing the EnvyControl Package Downloaded from the Project's Github Releases Page

The above image shows installation of the downloaded package with apt.


Enhancements

Besides the fixes above -- with varying degrees of necessity -- I took some other actions to enhance the Siduction installation to suit my needs. These included installing VS Code. The setup instructions using Microsoft's instructions

Install Microsoft VS Code

VS Code is an extensible, feature rich IDE supporting many languages. One of its extensions is a very good LaTeX editor. I alternate between it, NeoVim, and KDevelop and other tools for various editing tasks. Installation packages are available for various platforms at its download page. The setup page includes installation instructions and commands for creating an apt sources file -- in the new deb822format -- which defines the remote Microsoft repository and for installing a GPG key for verification of packages from the repository.

Install Firefox Beta and Firefox Nightly from Mozilla's deb Repository

Installing Firefox Beta and Firefox Developer Edition is useful for separating browsing activities. Normally I manually install these but, recently Mozilla made .deb repository available which includes packages for these applications, as well as Firefix Nightly, Firefox ESR and Mozilla VPN.

  1. Download the Mozilla repository signing key and install it into /etc/apt/keyrings.
    root@Legion-Siduction:/home/brook# wget -q https://packages.mozilla.org/apt/repo-signing-key.gpg -O- | tee /etc/apt/keyrings/packages.mozilla.org.asc > /dev/null
  2. Add the repository to APT by creating a sources configuration file for it.
    root@Legion-Siduction:/home/brook# echo "deb [signed-by=/etc/apt/keyrings/packages.mozilla.org.asc] https://packages.mozilla.org/apt mozilla main" | sudo tee -a /etc/apt/sources.list.d/mozilla.list > /dev/null
  3. This repository was added using the previous APT source format, so it will be necessary to convert to the deb822 format by executing
    apt modernize-sources
  4. Install Firefox Beta and Firefox Nightly.
    root@Legion-Siduction:/home/brook# apt update && apt install firefox-beta firefox-nightly
    Hit:1 https://deb.debian.org/debian unstable InRelease
    Hit:2 https://packages.microsoft.com/repos/code stable InRelease
    Hit:3 https://ftp.snt.utwente.nl/pub/linux/siduction/extra unstable InRelease
    Hit:4 https://ftp.snt.utwente.nl/pub/linux/siduction/fixes unstable InRelease
    Hit:5 https://packages.mozilla.org/apt mozilla InRelease
    995 packages can be upgraded. Run 'apt list --upgradable' to see them.
    Installing:
    firefox-beta firefox-nightly
    
    Summary:
    Upgrading: 0, Installing: 2, Removing: 0, Not Upgrading: 995
    Download size: 151 MB
    Space needed: 551 MB / 83.0 GB available
    
    Get:1 https://packages.mozilla.org/apt mozilla/main amd64 firefox-beta amd64 135.0b8~build1 [74.5 MB]
    Get:2 https://packages.mozilla.org/apt mozilla/main amd64 firefox-nightly amd64 136.0a1~20250122165122 [76.3 MB]
    Fetched 151 MB in 10s (14.8 MB/s)
    Selecting previously unselected package firefox-beta.
    (Reading database ... 287869 files and directories currently installed.)
    Preparing to unpack .../firefox-beta_135.0b8~build1_amd64.deb ...
    Unpacking firefox-beta (135.0b8~build1) ...
    Selecting previously unselected package firefox-nightly.
    Preparing to unpack .../firefox-nightly_136.0a1~20250122165122_amd64.deb ...
    Unpacking firefox-nightly (136.0a1~20250122165122) ...
    Setting up firefox-beta (135.0b8~build1) ...
    update-alternatives: using /usr/bin/firefox-beta to provide /usr/bin/gnome-www-browser (gnome-www-browser) in auto mode
    update-alternatives: using /usr/bin/firefox-beta to provide /usr/bin/x-www-browser (x-www-browser) in auto mode
    Setting up firefox-nightly (136.0a1~20250122165122) ...
    Processing triggers for hicolor-icon-theme (0.18-1) ...
    Processing triggers for man-db (2.13.0-1) ...
    Processing triggers for mailcap (3.74) ...
    Processing triggers for desktop-file-utils (0.28-1) ...
    Scanning processes...
    Scanning processor microcode...
    Scanning linux images...
    
    Running kernel seems to be up-to-date.
    
    The processor microcode seems to be up-to-date.
    
    No services need to be restarted.
    
    No containers need to be restarted.
    
    No user sessions are running outdated binaries.
    
    No VM guests are running outdated hypervisor (qemu) binaries on this host.
    root@Legion-Siduction:/home/brook#

    Install and Enable Fish as the Interactive Shell