jdSystemMonitor

jdSystemMonitor is an advanced, desktop-independent system monitor for Linux. Its goal is to provide as much information about your system as possible, with a focus on process management.

Tabs

Systeminfo

This tab provides general information about your system. It takes it information from os-release.

The Systeminfo tab

Processes

This tab provides detailed information about all running processes.

The Processes tab

Performance

This tab provides some statistics about your system.

The Performance tab

Services

This tab allows you to manage SystemD services. It is only visible if SystemD is in use on your system.

The Services tab

Running flatpaks

This tab lists all currently running Flatpak applications. It is only visible if Flatpak is installed on your system.

The Running flatpaks tab

Autostart

This tab shows all programs configured to start automatically.

The Autostart tab

Mounts

This tab displays all mount points on your system.

The Mounts tab

Installed packages

This tab lists all installed packages. Native packages are displayed if PackageKit is installed, and Flatpaks are shown if Flatpak is installed.

The Installed packages tab

Users

This tab shows all users currently on the system.

The Users tab

System configuration

This tab displays all Sysctl values.

The System configuration tab

Architecture

jdSystemMonitor is made of 2 parts:

  • A Daemon written in Go (you can find the source in the daemon directory)
  • A Qt6 GUI written in C++ (you can find the source in the gui directory)

Dependencies

jdSystemMonitor requires the following to run:

  • Qt6 (Core, Gui, Widgets, DBus, Charts, Xml)
  • xdg-desktop-portal
  • A Icon theme (only needed if you want to have icons)
  • Polkit (pkexec must be in PATH)
  • xdg-dbus-proxy (must be in PATH)
  • sudo (must be in PATH)

The following dependencies are optional:

  • PackageKit for listing all installed native packages

For building jdSystemMonitor from source the following is required:

Building

Meson is used to build jdSystemMonitor

mkdir -p build
cd build
meson setup ..
meson compile

Now you can run ./gui/jdsystemmonitor

Additional targets

The following additional targets are available:

Target Description
meson compile lupdate Update all Qt translations
meson compile xgettext Update all Gettext translations

Translate

You can help translating jdSystemMonitor on Codeberg Translate

Translation status

Develop

Testing the Daemon

If you want to test the Daemon without the GUI, you should use jdDBusDebugger. Run the Daemon directly from the build directory with ./daemon/jdsystemmonitor-daemon --enable-debug-auth. The default D-Bus service name of the Daemon is page.codeberg.JakobDev.jdSystemMonitor.Daemon. Open the Service in jdDBusDebugger and execute the DebugAuthentication method. Now you should have access to all the functions of the Daemon.

Testing the GUI

You can directly run ./gui/jdsystemmonitor in the build directory. This will automatically connect to the Daemon from your build directory.

Custom URL Schema

jdSystemMonitor provides a custom jdsystemmonitor: URL scheme for integration into other Apps. The following options are currently available:

URL Description
jdsystemmonitor:Tab/<tab> Start jdSystemMonitor with the specified tab selected
jdsystemmonitor:ProcessDialog/ Open the properties dialog for the specified process