A modern C++ implementation of the classic GKrellM system monitor, providing real-time system information through both graphical and text-based interfaces. Built as part of the EPITECH Rush 3 project, this system monitoring tool offers comprehensive insights into your system's performance and status.
MyGKrellm is a cross-platform system monitor that displays real-time information about various system components including CPU usage, memory consumption, disk space, network activity, running processes, and system services. The application supports dual display modes: a modern SFML-based graphical interface and a terminal-based ncurses interface.
- ๐ผ๏ธ Dual Interface Support: Choose between graphical (SFML) and text-based (ncurses) displays
- ๐ CPU Monitoring: Real-time CPU usage statistics for all cores
- ๐พ Memory Tracking: Monitor RAM and swap memory usage
- ๐ฟ Disk Management: Track disk space usage across all mounted filesystems
- ๐ Network Activity: Monitor network upload/download statistics
- โก Process Management: View running processes with PID information
- ๐ง Service Monitoring: Track system service status
- ๐ Battery Status: Monitor battery levels on supported systems
- ๐ค User Information: Display current user and hostname
- ๐ Time Display: Real-time clock with date information
- ๐ฅ๏ธ OS Information: System and kernel version details
- C++20 compatible compiler (GCC 10+ recommended)
- Make build system
- SFML 2.5+ (Simple and Fast Multimedia Library)
- libsfml-graphics
- libsfml-window
- libsfml-system
- ncurses library for terminal interface
- Linux-based operating system
- Access to
/procfilesystem for system information
# Install dependencies
sudo apt update
sudo apt install build-essential libsfml-dev libncurses5-dev
# Clone the repository
git clone <repository-url>
cd gkrellm
# Build the project
make# Install dependencies
sudo pacman -S base-devel sfml ncurses
# Clone and build
git clone <repository-url>
cd gkrellm
make# Ensure you have g++, SFML, and ncurses installed
make all# Run in graphical mode
./MyGKrellm --graphical
./MyGKrellm -g
# Run in text mode
./MyGKrellm --text
./MyGKrellm -t
# Display help
./MyGKrellm --help
./MyGKrellm -h--graphical/-g: Launch the SFML-based graphical interface--text/-t: Launch the ncurses-based text interface--help/-h: Display usage information and available options
# Clean build
make clean
make all
# Full rebuild
make remake all: Build the main executablemake clean: Remove object files and temporary build artifactsmake fclean: Remove all generated files including the executablemake re: Full clean rebuild
The project uses strict compilation settings:
-std=c++20: C++20 standard compliance-Wall -Wextra -Werror: Enhanced warning detection with warnings as errors
The application is built using a modular architecture with the following components:
IMonitorModule: Base interface for all monitoring modulesIMonitorDisplay: Abstract display interface for UI implementations
UserModule: User and hostname informationTimeModule: Current date and timeOsModule: Operating system and kernel informationCpuModule: CPU usage and core statisticsMemoryModule: RAM and swap memory monitoringDiskModule: Filesystem usage statisticsNetworkModule: Network interface statisticsProcessModule: Running processes informationServiceModule: System services statusBatteryModule: Battery level monitoring
GraphicalMonitor: SFML-based graphical interfaceTextMonitor: ncurses-based terminal interface
This project is licensed under the MIT License. See LICENSE.md for the full license text.
MIT License
Copyright (c) 2025 TekyoDrift
We welcome contributions to MyGKrellm! Please read our Contributing Guidelines and Code of Conduct before submitting pull requests.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Mallory SCOTTON - Lead Developer
- Hugo CATHELAIN - Core Developer
- Ossan Msoili - System Modules Developer
- Nathan Fievet - UI Developer
๐ Coded with โค๏ธ by the TekyoDrift team
Built during EPITECH Rush 3 โข Making system monitoring beautiful and accessible

