Toolbox
This section covers the miscellaneous tools that any technically-oriented Kubuntu desktop accumulates: a text editor worth using, system monitoring tools, terminal utilities, KDE configuration tools, and a handful of command line utilities that make daily work more efficient. None of these are strictly necessary to follow the rest of this series, but all of them are worth knowing about.
Text editor: Visual Studio Code
The source material covers Sublime Text, which remains a capable editor. VS Code has largely replaced it as the default choice for most developers and system administrators, with better terminal integration, remote development support, and an extension ecosystem that covers everything from shell script linting to Terraform formatting.
Install from the Microsoft repository:
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | \
gpg --dearmor | \
sudo tee /usr/share/keyrings/microsoft-archive-keyring.gpg > /dev/null
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/microsoft-archive-keyring.gpg] \
https://packages.microsoft.com/repos/vscode stable main" | \
sudo tee /etc/apt/sources.list.d/vscode.list
sudo apt update
sudo apt install code
Or if you prefer the fully open source version without Microsoft telemetry:
sudo apt install codium
VSCodium is available from the Ubuntu repositories and is functionally identical to VS Code without the telemetry and Microsoft branding.
Useful extensions for this setup
- shellcheck (
timonwong.shellcheck): shell script linting. Catches errors in bash scripts before running them. - Remote - SSH (
ms-vscode-remote.remote-ssh): edit files on remote servers directly within VS Code via SSH. Particularly useful for the server configuration work in this series. - YAML (
redhat.vscode-yaml): YAML validation and schema support. Useful for borgmatic and Ansible configurations. - Ansible (
redhat.ansible): syntax highlighting and linting for Ansible playbooks. - HashiCorp Terraform (
hashicorp.terraform): for the Terraform orchestration work in the February server project.
KDE System Settings
The equivalent of GNOME Tweaks on Kubuntu is not a separate application. KDE Plasma’s System Settings covers everything GNOME Tweaks does and considerably more, accessible directly from the application launcher.
System Settings > Appearance
System Settings > Workspace Behaviour
System Settings > Window Management
System Settings > Shortcuts
System Settings > Startup and Shutdown
Key settings worth configuring early:
Fonts: System Settings > Appearance > Fonts. Set font rendering to use sub-pixel rendering and slight hinting for crisp text on LCD displays.
Virtual desktops: System Settings > Workspace Behaviour > Virtual Desktops. Four virtual desktops arranged in a 2x2 grid is a reasonable starting point.
Window tiling: System Settings > Window Management > KWin Scripts. Enable the Quarter Tiling script for automatic window management.
Night Colour: System Settings > Display and Monitor > Night Color. Reduces blue light after sunset, useful for evening work sessions.
KDE Tweaks: systemsettings and kwriteconfig
For settings not exposed in the GUI, kwriteconfig5 modifies KDE configuration files directly:
# Example: disable the compositing animation when minimising windows
kwriteconfig5 --file kwinrc --group Compositing --key AnimationSpeed 3
# Apply the change without restarting
qdbus org.kde.KWin /KWin reconfigure
Settings modified via kwriteconfig5 persist across sessions and survive upgrades.
Terminal: Konsole
Konsole is the KDE terminal emulator. It is already installed. A few configuration points worth knowing:
Profiles: Konsole supports multiple profiles with different fonts, colours, and shell configurations. Create a profile for local work and a separate one for SSH sessions to servers, with a distinctive colour scheme so you always know which environment you are in.
Split view: Konsole supports horizontal and vertical splits within a single window. View > Split View.
Scrollback: Increase the scrollback buffer in Profile > Scrolling. The default 1000 lines is too small for log output. 10,000 is more practical.
Terminal multiplexer: tmux
tmux allows a single terminal session to be split into multiple panes, detached and reattached, and shared between multiple connections. Essential for server work where a long-running process should survive a disconnected SSH session.
sudo apt install tmux
Create ~/.tmux.conf for a sensible default configuration:
# Change prefix from Ctrl-b to Ctrl-a (easier to reach)
unbind C-b
set-option -g prefix C-a
bind-key C-a send-prefix
# Split panes with | and -
bind | split-window -h
bind - split-window -v
# Mouse support
set -g mouse on
# Increase scrollback buffer
set -g history-limit 10000
# Status bar
set -g status-right '%Y-%m-%d %H:%M'
# Start window numbering at 1
set -g base-index 1
System monitoring: btop
btop is a modern, resource-efficient system monitor with a well-designed terminal interface. It replaces the older top and htop for interactive monitoring.
sudo apt install btop
Run it with btop. Navigate with the mouse or keyboard. Press ? for help.
Disk usage: ncdu
ncdu is an interactive disk usage analyser for the terminal. Far faster than du -sh for finding what is consuming space.
sudo apt install ncdu
Run ncdu / for a full system scan or ncdu ~ for the home directory. Navigate with arrow keys, press d to delete selected items.
Network tools
A small collection of network diagnostics worth having installed:
sudo apt install \
nmap \
netcat-openbsd \
tcpdump \
traceroute \
mtr-tiny \
dnsutils \
whois \
httpie
mtr combines ping and traceroute into a single live view. httpie is a human-friendly HTTP client for testing APIs and web services from the command line.
JSON and YAML tools
sudo apt install jq yq
jq is the standard tool for filtering and transforming JSON from the command line. Used throughout this series for parsing MQTT payloads, API responses, and configuration files.
yq does the same for YAML. Useful for editing borgmatic configuration, Ansible inventory files, and Kubernetes manifests without opening an editor.
File manager: Dolphin extensions
Dolphin is already installed as the KDE file manager. A few extensions worth adding:
sudo apt install \
dolphin-plugins \
kdegraphics-thumbnailers \
ffmpegthumbs \
kio-gdrive
dolphin-plugins adds right-click context menu actions for Git operations, checksums, and more. kdegraphics-thumbnailers and ffmpegthumbs add thumbnail previews for RAW images and video files. kio-gdrive allows Dolphin to browse Google Drive directly if needed.
KDE Plasma Widgets
A few useful widgets for the KDE panel and desktop:
System Load Viewer: shows CPU, memory, and network activity in the panel. Right-click the panel > Add Widgets > search for System Load Viewer.
Weather Widget: shows local weather in the panel. Add the Weather Widget and configure it with your location.
Clipboard (Klipper): already in the system tray by default. Configure the clipboard history size in System Settings > General Behaviour > Clipboard.
Spectacle: screenshot tool
Spectacle is the KDE screenshot tool. It is installed by default on Kubuntu and handles region selection, window capture, and timed screenshots.
sudo apt install spectacle
The default shortcut is Print Screen. Configure Spectacle’s behaviour in System Settings > Shortcuts > Screenshots.
KDE Connect
KDE Connect integrates your Android phone with the Kubuntu desktop: shared clipboard, file transfer, remote input, and notification mirroring.
sudo apt install kdeconnect
Install the KDE Connect app on your phone from F-Droid or the Play Store. Pair via the KDE Connect application on the desktop.
Development tools
A baseline set of development tools useful for the scripting and configuration work throughout this series:
sudo apt install \
git \
git-extras \
build-essential \
python3-pip \
python3-venv \
pipx \
ansible \
shellcheck \
gh
gh is the GitHub CLI for managing repositories, pull requests, and issues from the terminal. shellcheck lints shell scripts. ansible is covered in more depth in the February server project series.
Fonts
A few additional font families worth installing for development work and document creation:
sudo apt install \
fonts-jetbrains-mono \
fonts-noto \
fonts-liberation
JetBrains Mono is an excellent monospace font designed specifically for code, with clear distinction between similar characters. Noto covers Unicode comprehensively. Liberation provides metrically-compatible alternatives to common Microsoft fonts.
Configure JetBrains Mono as the default monospace font in System Settings > Appearance > Fonts.
The KDE desktop rewards configuration time. The defaults are reasonable but the system is highly customisable, and the settings built up over time become genuinely personal rather than generic. Worth investing in early rather than living with defaults indefinitely.