How fablevi/hd_sentinel_ui_linux works
HD Sentinel UI Linux is a native GTK4/libadwaita desktop monitor for disk health and RAM. Its principal workflow is to locate or accept the HDSentinel executable, start privileged sensor collection, parse live disk XML and RAM output, and render selectable disk, partition, and memory details. Settings and measurement history persist in the local cache. The graph follows the README and sampled source; subsystem paths identify existing tree locations where implementation excerpts were unavailable.
Main entry points: Runner.tsx Monitor runner · DriveContentView.tsx Drive detail view · app.tsx Setup window · hdsentinel-wrapper.sh Privileged helper
Components 22
Setup and Shell
- Setup window
src/components/DndConent/app.tsx - Application entry
src/index.tsx
Sensor Collection
- Monitor runner
src/components/ScriptRunnerComponents/Runner.tsx - Privileged helper
exec/hdsentinel-wrapper.sh - XML parser
src/helper/XMLtoJSON.ts - RAM parser
src/helper/parseDmidecode.ts - Disk data model
src/models/hdsentinel.model.ts - RAM data model
src/models/ram.model.ts
Monitoring UI
- Monitoring shell
src/components/MainComponent.tsx - Device navigation
src/components/SideBar/ScrollSideBar.tsx - Drive detail view
src/components/DriveContent/DriveContentView.tsx - Disk overview
src/components/DriveContent/Disc/Disks/DiskView.tsx - SMART details
src/components/DriveContent/Disc/NotRemovable/SMARTView.tsx - Partition details
src/components/DriveContent/Disc/NotRemovable/TabulatedView.tsx - RAM details
src/components/DriveContent/Disc/Ram/RamDriveView.tsx
Configuration and History
- Settings dialog
src/components/Dialogs/SettingsDialog.tsx - Local config store
src/hooks/useLocalConfig.tsx - UI translations
src/components/Languages/useTranslation.ts
Other components
- Desktop user
- HDSentinel binary
- pkexec
- dmidecode
Connections 28
- Desktop user → Application entry: launches
- Application entry → Setup window: renders
- Desktop user → Setup window: drops binary
- Setup window → HDSentinel binary: installs
- Setup window → Monitor runner: opens monitor
- Monitor runner → pkexec: starts helper
- pkexec → Privileged helper: runs privileged
- Privileged helper → HDSentinel binary: samples disks
- Privileged helper → dmidecode: reads RAM
- Privileged helper → Monitor runner: streams output
- Monitor runner → XML parser: parses XML
- Monitor runner → RAM parser: parses RAM output
- Monitor runner → Monitoring shell: passes live data
- XML parser → Disk data model: produces disk data
- RAM parser → RAM data model: produces RAM data
- Monitoring shell → Device navigation: renders navigation
- Monitoring shell → Drive detail view: renders selection
- Device navigation → Monitoring shell: selects device
- Drive detail view → Disk overview: shows disk summary
- Drive detail view → SMART details: shows SMART data
- Drive detail view → Partition details: shows partitions
- Drive detail view → RAM details: shows RAM details
- Settings dialog → Local config store: reads and saves
- Application entry → Local config store: loads settings
- UI translations → Local config store: reads language
- Setup window → UI translations: localizes UI
- Monitor runner → UI translations: localizes UI
- Desktop user → Settings dialog: changes preferences