Metetch v0.5.4 is a beautifully designed, fast system information tool with a minimal aesthetic inspired by KDE Plasma and Wayland. Written in C++17, it displays comprehensive system metrics with elegant tree-based formatting. Made with β€οΈ
GitHub: https://github.com/techoraye/metetch
- β¨ Advanced GPU monitoring (NVIDIA, AMD, Intel)
- β¨ Comprehensive disk storage monitoring (multiple disks with detailed stats)
- β¨ Advanced CPU information (frequency, cores, threads)
- β¨ Modern minimal design with thin geometric borders
- β¨ Color-coded status indicators (OK, CAUTION, WARNING, CRITICAL)
- β¨ Real-time progress bars for hardware metrics
- β¨ Cross-distro compatibility (auto-detection and auto-installation)
- Real-Time Monitoring: Live CPU load, memory, GPU, disk, and system metrics
- Beautiful Terminal UI: Modern minimal design with box drawing characters
- System Information: Complete OS, kernel, uptime, and hardware details
- GPU Monitoring: Advanced GPU tracking (usage, temperature, memory, power draw)
- Disk Storage: Dedicated disk section showing all mounted filesystems with detailed per-disk stats
- Hardware Info: CPU load, temperature, frequency, cores, and threads
- Network Info: IP addresses, hostname, network interface, VPN status
- Process Monitoring: Thread and process counts
- Shell & Desktop Detection: Automatic shell and desktop environment identification
- Weather Integration: Real-time weather display via wttr.in API
- Package Manager Detection: Works with pacman, apt, rpm, apk, and more
- Audio System Detection: ALSA and PulseAudio support
metetch output shows:
ββ System Information
β ββ OS & Kernel Details
β ββ Uptime & User
β ββ Shell & Terminal
β ββ Window Manager & Desktop
ββ Hardware Status
β ββ CPU Load & Temperature
β ββ Memory Usage
β ββ GPU Monitoring (optional)
β ββ Disk Storage
β ββ Audio System
β ββ Battery Status
β ββ Display Resolution
ββ Network Information
β ββ Hostname
β ββ IP Address (IPv4/IPv6)
β ββ Network Interface
β ββ VPN Status
ββ Security & Resources
β ββ CPU Frequency & Cores
β ββ Processes & Threads
β ββ Package Manager
β ββ Resource Monitoring
ββ Date, Time & Weather
ββ Current Time
ββ Current Date
ββ Weather Information
- Interactive Config Menu:
metetch --configfor easy customization - Persistent Settings: Configuration saved in
~/.config/metetch/config.ini - Selective Display: Toggle GPU, disk, and real-time display options
- Theme Support: Extensible theme system (default, dark, light)
- System-Wide Installation: Available globally as
metetchcommand - Automatic Updates: Check for and install updates automatically
- Multiple Output Modes: Full display, configuration, update checking
- Cross-Distro Support: Works on Debian, Ubuntu, Arch, Fedora, openSUSE, Alpine, Void, Gentoo, and more
- Auto-Dependency Installation:
install.shautomatically detects and installs required dependencies
- C++17 or later compiler (g++, clang++)
- CMake 3.10 or later
- libcurl-dev - for HTTP requests and weather API
- libncurses-dev - for terminal UI rendering
- libtinfo-dev - for terminal info (ncurses dependency)
- Build tools - gcc/g++ and make
- Linux kernel 4.0+
- glibc 2.27+
- libcurl 7.50+
- ncurses 6.0+
cd metetch
make
./build/metetch⨠That's it! See the design in action.
sudo ./install.shThe script will:
- β Auto-detect your Linux distribution
- β Install all required dependencies (build tools, cmake, libcurl-dev, libncurses-dev)
- β Build the project
- β
Install to
/usr/local/bin/metetch - β
Create config directory at
~/.config/metetch/
Supported Distros:
- Debian/Ubuntu (apt)
- Arch/Manjaro (pacman)
- Fedora/RHEL/CentOS (dnf/yum)
- openSUSE/SLES (zypper)
- Alpine Linux (apk)
- Void Linux (xbps)
- Gentoo (emerge)
See BUILD.md for:
- β Detailed build instructions for all distros
- β System-wide installation steps
- β Troubleshooting guide
Or QUICKSTART.md for:
- β‘ Super quick 2-minute guide
- π Common build issues
- π― First run instructions
metetchDisplays the minimal/compact information by default. For the full detailed view use --full.
metetch --minimum
# or
metetch -mShows only essential information in a compact format - perfect for quick checks or scripts. Displays OS, uptime, CPU, memory, disk, hostname, and IP in minimal lines.
metetch --configOpens an interactive menu where you can:
- Toggle GPU information display
- Toggle disk usage display
- Enable/disable real-time clock
- Select color theme
- Save preferences to
~/.config/metetch/config.ini
metetch --update # Check for updates
metetch --install # Install available update
metetch --help # Show help messagemetetch/
βββ include/ # Header files
β βββ colors.h # Color palette definition
β βββ data_types.h # Core data structures
β βββ utils.h # Function declarations
β βββ modules/
β βββ hardware.h # Hardware module interface
β βββ network.h # Network module interface
β βββ system.h # System module interface
β βββ hardware/
β β βββ gpu.h # GPU monitoring header
β β βββ cpu_advanced.h # Advanced CPU info header
β β βββ disk_advanced.h # Advanced disk monitoring header
β β βββ audio.h # Audio system header
β β βββ battery.h # Battery info header
β β βββ cpu.h # Basic CPU header
β β βββ disk.h # Basic disk header
β β βββ display.h # Display resolution header
β β βββ memory.h # Memory info header
β βββ network/
β β βββ interface.h # Network interface header
β β βββ ip.h # IP address header
β β βββ vpn.h # VPN detection header
β β βββ advanced.h # Advanced network features header
β βββ flags/
β β βββ config.h # Configuration management header
β β βββ help.h # Help display header
β β βββ install.h # Install display header
β β βββ minimal.h # Minimal display header
β β βββ update.h # Update management header
β βββ system/
β βββ desktop.h # Desktop environment header
β βββ hostname.h # Hostname header
β βββ kernel.h # Kernel info header
β βββ os.h # OS detection header
β βββ resources.h # Resource monitoring header
β βββ security.h # Security features header
β βββ shell.h # Shell detection header
β βββ terminal.h # Terminal detection header
β βββ uptime.h # System uptime header
β βββ user.h # User info header
β βββ wm.h # Window manager header
βββ src/ # Source files
β βββ main.cpp # Entry point
β βββ render.cpp # Display rendering engine
β βββ collect.cpp # System information collection
β βββ config_display.cpp # Config display UI
β βββ update_display.cpp # Update display UI
β βββ install_display.cpp # Install display UI
β βββ update_handler.cpp # Update installation
β βββ uninstall.cpp # Uninstall handler
β βββ utils.cpp # Utility functions
β βββ modules/
β βββ hardware.cpp # Hardware module implementation
β βββ network.cpp # Network module implementation
β βββ system.cpp # System module implementation
β βββ hardware/
β β βββ gpu.cpp # GPU monitoring (NVIDIA/AMD/Intel)
β β βββ cpu_advanced/ # Advanced CPU metrics (modular)
β β β βββ frequency_current.cpp
β β β βββ frequency_max.cpp
β β β βββ frequency_base.cpp
β β β βββ cores.cpp
β β β βββ threads.cpp
β β β βββ tdp.cpp
β β β βββ power_draw.cpp
β β β βββ helper.cpp
β β β βββ aggregator.cpp
β β βββ disk_advanced/ # Multi-disk monitoring (modular)
β β β βββ disk_info.cpp
β β β βββ disks_info.cpp
β β β βββ all_disks_stats.cpp
β β β βββ total_space.cpp
β β β βββ used_space.cpp
β β β βββ free_space.cpp
β β β βββ usage_percent.cpp
β β β βββ helper.cpp
β β βββ audio.cpp
β β βββ battery.cpp
β β βββ cpu.cpp
β β βββ disk.cpp
β β βββ display.cpp
β β βββ memory.cpp
β βββ network/
β β βββ advanced/ # Advanced network features (modular)
β β β βββ ipv4.cpp
β β β βββ ipv6.cpp
β β β βββ gateway.cpp
β β β βββ dns.cpp
β β β βββ mac.cpp
β β β βββ bytes_received.cpp
β β β βββ bytes_sent.cpp
β β β βββ packet_loss.cpp
β β β βββ latency.cpp
β β β βββ helper.cpp
β β β βββ aggregator.cpp
β β βββ interface.cpp
β β βββ ip.cpp
β β βββ vpn.cpp
β β βββ cpu_advanced.cpp # CPU frequency and cores
β β βββ disk_advanced.cpp # Multi-disk monitoring
β β βββ audio.cpp
β β βββ battery.cpp
β β βββ cpu.cpp
β β βββ disk.cpp
β β βββ display.cpp
β β βββ memory.cpp
β βββ network/
β β βββ interface.cpp
β β βββ ip.cpp
β β βββ vpn.cpp
β β βββ advanced/ # Advanced network features (modular)
β β βββ ipv4.cpp
β β βββ ipv6.cpp
β β βββ gateway.cpp
β β βββ dns.cpp
β β βββ mac.cpp
β β βββ bytes_received.cpp
β β βββ bytes_sent.cpp
β β βββ packet_loss.cpp
β β βββ latency.cpp
β β βββ helper.cpp
β β βββ aggregator.cpp
β βββ system/
β βββ desktop.cpp
β βββ hostname.cpp
β βββ kernel.cpp
β βββ os.cpp
β βββ shell.cpp
β βββ terminal.cpp
β βββ uptime.cpp
β βββ user.cpp
β βββ wm.cpp
β βββ security.cpp
β βββ resources.cpp
β βββ flags/ # Command-line flags (modular)
β βββ config/
β β βββ path.cpp
β β βββ loader.cpp
β β βββ saver.cpp
β β βββ menu.cpp
β βββ help/
β β βββ basic.cpp
β β βββ extended.cpp
β βββ install/
β β βββ starting.cpp
β β βββ progress.cpp
β β βββ success.cpp
β β βββ failed.cpp
β β βββ post_instructions.cpp
β βββ update/
β β βββ checker.cpp
β β βββ display.cpp
β β βββ handler.cpp
β β βββ install_executor.cpp
β βββ minimal/
β βββ display.cpp
βββ docs/ # Documentation
β βββ BUILD.md # Detailed build guide
β βββ QUICKSTART.md # Quick start (2 minutes)
β βββ DESIGN.md # Design philosophy
β βββ COLOR_PALETTE.md # Color reference
β βββ DOCUMENTATION_INDEX.md # Documentation index
β βββ DEV-GUIDE/ # Developer documentation
βββ CMakeLists.txt # CMake build configuration
βββ Makefile # Simple build shortcuts
βββ install.sh # Cross-distro installer
βββ VERIFY.sh # File verification script
βββ CHECKSUMS.sha256 # File integrity checksums
βββ LICENSE # MIT license
βββ SETUP.md # Setup instructions
βββ README.md # This file
Data Structures (data_types.h)
Info: Main system information container with GPU, disk, and advanced metricsLive: Real-time update control and flagsConfig: User configuration settingsLayout: Terminal layout parametersDiskInfo: Per-disk information structureAllDisksInfo: Aggregate disk statisticsGPUInfo: GPU monitoring data
Modular Subsystem
The project is organized into modular namespaces for clean separation of concerns:
-
gpu.cpp - Advanced GPU Monitoring
- NVIDIA GPU support (via nvidia-smi)
- AMD GPU support (via rocm-smi)
- Intel iGPU support (via i915 driver)
- Metrics: Usage %, temperature, memory used/total, power draw
- Automatic driver detection
-
cpu_advanced/ - Advanced CPU Metrics (Modular Sub-Components)
frequency_current.cpp- Current CPU frequency monitoringfrequency_max.cpp- Maximum CPU frequency detectionfrequency_base.cpp- Base frequency detectioncores.cpp- Physical core countthreads.cpp- Logical thread counttdp.cpp- Thermal Design Power calculationpower_draw.cpp- Current power consumptionhelper.cpp- Command execution utilitiesaggregator.cpp- Information aggregation
-
disk_advanced/ - Multi-Disk Storage Monitoring (Modular Sub-Components)
disk_info.cpp- Single disk information retrievaldisks_info.cpp- All mounted disks detectionall_disks_stats.cpp- Aggregate statistics calculationtotal_space.cpp- Total capacity analysisused_space.cpp- Used space calculationfree_space.cpp- Free space analysisusage_percent.cpp- Percentage utilizationhelper.cpp- Command execution utilities
-
audio.cpp, battery.cpp, cpu.cpp, disk.cpp, display.cpp, memory.cpp
- Basic hardware information gathering
- Legacy compatibility layer
-
advanced/ - Advanced Network Features (Modular Sub-Components)
ipv4.cpp- IPv4 address retrievalipv6.cpp- IPv6 address detectiongateway.cpp- Default gateway informationdns.cpp- DNS server detectionmac.cpp- MAC address retrievalbytes_received.cpp- Network traffic statisticsbytes_sent.cpp- Outbound traffic trackingpacket_loss.cpp- Packet loss measurementlatency.cpp- Network latency monitoringhelper.cpp- Command execution utilitiesaggregator.cpp- Information aggregation
-
interface.cpp, ip.cpp, vpn.cpp
- Basic network information
- IP address resolution
- VPN status detection
-
security.cpp - Security Features
- SELinux status detection
- AppArmor status detection
- Firewall status checking
- Failed login attempts tracking
- Sudo access detection
-
resources.cpp - System Resource Monitoring
- I/O statistics (read/write bytes)
- Process statistics
- Thread counting
- System load information
-
desktop.cpp, hostname.cpp, kernel.cpp, os.cpp, shell.cpp, terminal.cpp, uptime.cpp, user.cpp, wm.cpp
- System information detection
- Environment identification
- User and hostname information
render.cpp - Display Rendering
- Geometric blueprint-style logo
- Minimal thin borders (not chunky)
- Color palette: see docs/COLOR_PALETTE.md. Defaults β Box borders/icons/labels: Cyan; Values: White; Version line: Magenta
- Flat progress bars with visual indicators
- Status color coding (π’ OK, π‘ CAUTION, π WARNING, π΄ CRITICAL)
- Optimized terminal layout
- Thread-safe display updates with
std::mutex - Real-time GPU metrics display
- Multi-disk storage section with per-disk details
- Precise timing with
chrono::steady_clock
collect.cpp - Data Aggregation
- Reads
/proc,/sys,/etcfilesystems - Calls modular functions for system probing
- Aggregates GPU information (device, driver, usage, temperature, memory, power)
- Gathers disk statistics for all mounted filesystems
- Collects advanced CPU, network, and security metrics
- Integrates with weather API (wttr.in)
- Package manager detection
config.cpp - Settings Management
- INI-format configuration file (
~/.config/metetch/config.ini) - Interactive configuration menu
- Persistent settings storage
- Live reload of configuration changes
update.cpp & update_handler.cpp - Automatic Updates
- Version checking via HTTPS
- Binary download and verification
- Automatic installation with prompts
- Update rollback capability
Metetch runs display rendering once (no refresh loop by default) for:
- Easy scrolling through all information
- Clean, distraction-free output
- Full control over refresh timing
When enabled, real-time updates work with background threads:
- Memory updates: Every 2.5 seconds
- CPU load updates: Every 4 seconds
- Display refresh: Every 1-3 seconds (throttled)
- Update check: Every 5 seconds in background
All updates are thread-safe using std::mutex and std::lock_guard.
~/.config/metetch/config.ini
# Show real-time clock in OS section (0=false, 1=true)
show_realtime_in_os=0
# Display GPU information (0=false, 1=true)
show_gpu=1
# Show disk usage (0=false, 1=true)
show_disk=1
# Color theme: default, dark, light
theme=default-
Using Interactive Menu:
metetch --config
-
Direct File Edit:
nano ~/.config/metetch/config.ini
Metetch displays information in comprehensive organized sections with modern minimal design:
- Blueprint-style design (thin, elegant)
- Layered, outlined appearance
- Metetch branding integrated
- User: Current logged-in user (green for status)
- Hostname: System hostname (cyan accent)
- OS: Detected operating system
- Kernel: Kernel version
- Uptime: System uptime (purple accent)
- Memory: RAM usage with flat progress bar (purple)
- CPU Model: Processor information (blue)
- CPU Load: Real-time load with progress bar (orange warning color)
- CPU Status: Temperature with smart color coding (π’ COOL, π‘ WARM, π΄ CRITICAL)
- Processes: Active process and thread counts
- GPU Device: GPU name and brand (NVIDIA, AMD, Intel)
- GPU Driver: Driver version and type
- GPU Usage: GPU utilization percentage with progress bar (π’ LIGHT, π MODERATE, π΄ HEAVY)
- GPU Temperature: GPU temp with status indicator
- GPU Memory: Used/Total VRAM with visual progress bar
- GPU Power Draw: Power consumption in watts (when available)
- Disk Usage: Overall disk usage across all disks
- Packages: Package count
- Processes/Threads: Process and thread counts
- Shell: Currently active shell (green accent)
- Desktop Environment: Desktop environment name
- Window Manager: WM or compositor
- Audio System: Audio server type (ALSA, PulseAudio)
- Local IP: Internal network IP (cyan)
- Public IP: External IP (when available)
- Interface: Network interface status
- VPN Status: Smart color (π’ green if active, π΄ red if inactive)
- Dedicated Disk Section with detailed per-disk information:
- Disk Device: Device name and mount point
- Filesystem Type: ext4, btrfs, tmpfs, etc.
- Total Capacity: Total disk size in MB
- Used Space: Used disk space in MB
- Free Space: Available disk space in MB
- Usage Percentage: Visual progress bar with status color
- π’ OK: 0-70% used
- π‘ CAUTION: 70-85% used
- π WARNING: 85-95% used
- π΄ CRITICAL: 95%+ used
- Multiple disk support (automatically detects all mounted filesystems)
- Aggregate statistics across all disks
- Current Time: System time (cyan)
- Current Date: Formatted date (cyan)
- Weather: Temperature (if available via wttr.in)
- Battery: Status and percentage (if applicable)
- Packages: Package count
- Processes: Process/thread counts
- Shell: Currently active shell (green)
- Desktop: Desktop environment
- Local IP: Internal network IP (cyan)
- Public IP: External IP
- Interface: Network interface status
- VPN Status: Smart color (green if active)
- Current Time: System time (cyan)
- Current Date: Formatted date (cyan)
- Weather: Temperature (if available)
- Battery: Status and percentage
- Resolution: Display resolution
The project uses the following compiler flags:
-O3 # Optimization level 3 (max performance)
-flto # Link-time optimization
-Wall -Wextra # Strict warnings
-Wformat-security # Format string security
-std=c++17 # C++17 standardSolution:
# Check installation
which metetch
# If not found, reinstall
sudo ./install.sh
# Or verify binary exists
ls -la /usr/local/bin/metetchSolution:
# Update package manager
sudo apt-get update # Debian/Ubuntu
sudo pacman -Syu # Arch/Manjaro
sudo dnf update # Fedora/RHEL
# Install all dependencies
# See Requirements section aboveGPU detection requires:
lspciinstalled (apt-get install pciutils)- Proper display driver installed
- Config setting
show_gpu=1
Solution:
# Reset terminal
reset
# Try different terminal
# metetch works best in: gnome-terminal, konsole, xterm, alacritty
# Set terminal type
export TERM=xterm-256color
metetch- Memory Footprint: ~15-25 MB (unchanged from v0.3)
- CPU Usage: <1% idle, <5% during updates (unchanged)
- Startup Time: <500ms (slightly faster)
- Update Frequency: CPU every 4s, Memory every 2.5s
- Display Refresh: 1 second (smooth, no flicker)
- Rendering: Optimized for v0.5.4 design
β¨ Zero performance loss with complete visual redesign
- No elevated privileges required (except for
make install) - No data collection or telemetry
- Open source - full code transparency
- Uses HTTPS for update checking and API requests
- No external dependencies beyond system libraries
| Document | Purpose | Time |
|---|---|---|
| QUICKSTART.md | Get started in 2 minutes | 2 min |
| BUILD.md | Detailed build guide | 10 min |
| DESIGN.md | Design philosophy and specs | 15 min |
| COLOR_PALETTE.md | Colors and visual reference | 10 min |
| DOCUMENTATION_INDEX.md | Complete doc map | 5 min |
metetch is free and open-source software licensed under the MIT License.
Copyright Β© 2025 techoraye
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND.
See LICENSE file for complete legal terms.
Since metetch is released under the MIT License, external contributions are welcome.
If you find bugs or have suggestions, please contact the author directly.
cd metetch && make && ./build/metetchβ‘ Made with β€οΈ for the Linux community β‘
Metetch v0.5.4 β’ C++17 β’ Fast β’ Lightweight β’ Beautiful Design
BUILD.md β’ QUICKSTART.md β’ DESIGN.md