Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Procwatch

An accessible GTK 4 system monitor for Linux, designed from the ground up for screen reader users and keyboard-centric navigation. Provides feature parity with MATE System Monitor.

Features

System Info

  • Hostname, OS name/version, kernel version
  • CPU model with core count
  • Total RAM, GPU info, disk space summary

Process Management

  • 27 columns: Process Name, PID, User, %CPU, Resident Memory, Virtual Memory, Shared Memory, Writable Memory, CPU Time, Status, Nice, Priority, Command Line, Waiting Channel, Control Group, Unit, Session, Seat, Owner, Security Context, Disk Read/Write Totals, Disk Read/Write Rates, Started, PPID, Memory
  • View modes: Active Processes, All Processes, My Processes
  • Tree view with expand/collapse (Ctrl+D)
  • Case-insensitive search/filter across name, command line, PID, and user
  • Multi-select with bulk actions
  • Process signals: Stop (SIGSTOP), Continue (SIGCONT), End (SIGTERM), Kill (SIGKILL)
  • Change process priority (nice value)
  • Process dialogs: Memory Maps, Open Files, Properties, Search Open Files (regex)
  • Right-click context menu

Resource Graphs

  • Per-core CPU usage with configurable colors
  • Memory usage (RAM + Swap)
  • Network throughput (RX/TX) with bits/bytes toggle
  • All graphs provide textual summaries for screen readers

File Systems

  • Device, directory, type, subvolume, total/free/available/used
  • Visual usage bars
  • Show/hide pseudo-filesystems
  • Btrfs subvolume detection
  • Open mount points in file manager

Preferences

  • Update intervals for processes, resources, and filesystems
  • Column visibility (all 27 columns toggleable)
  • Graph colors
  • Network bits/bytes toggle
  • Confirmation dialog toggles for End/Kill actions

Accessibility

  • Every widget has an accessible label and appropriate role
  • All actions reachable via keyboard
  • Dynamic changes (sort, filter, threshold alerts) announced to screen readers
  • Process table uses TreeGrid role with cell-by-cell navigation
  • Graphs provide textual value summaries (e.g., "CPU Total: 34%. Core 0: 23%.")
  • Mnemonics on toolbar controls

Keyboard Shortcuts

Key Action
Alt+1-4 Switch tabs (System, Processes, Resources, File Systems)
Ctrl+S Stop process (SIGSTOP)
Ctrl+G Continue process (SIGCONT)
Ctrl+E End process (SIGTERM)
Ctrl+K Kill process (SIGKILL)
Ctrl+D Toggle tree view
Ctrl+M Memory maps
Ctrl+O Open files
Ctrl+F Search open files
Ctrl+R Refresh
Ctrl+/ Search processes
Ctrl+, Preferences
Ctrl+Q Quit
F1 About

Dependencies

Build dependencies

  • Rust (2021 edition)
  • Cargo
  • pkg-config
  • glib-compile-schemas (part of GLib development tools)

Runtime dependencies

  • GTK 4 (>= 4.14)
  • libadwaita (>= 1.5)
  • GLib/GIO

Distro packages

Gentoo:

emerge gui-libs/gtk gui-libs/libadwaita dev-libs/glib

Fedora:

dnf install gtk4-devel libadwaita-devel glib2-devel

Ubuntu/Debian:

apt install libgtk-4-dev libadwaita-1-dev libglib2.0-dev

Arch:

pacman -S gtk4 libadwaita glib2

Building

cargo build --release

The build script automatically compiles the GSettings schema for development use, so cargo run works without system-wide installation.

Installing

sudo make install

This installs the binary to /usr/local/bin, the desktop file, icon, and GSettings schema. To change the prefix:

sudo make install PREFIX=/usr

Uninstalling

sudo make uninstall

Usage

procwatch              # Opens on the System tab
procwatch -p           # Opens on the Processes tab
procwatch -r           # Opens on the Resources tab
procwatch -f           # Opens on the File Systems tab

License

MIT

About

Accessible GTK 4 system monitor for Linux

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages