Skip to content

dragon-Elec/z-manager

Repository files navigation

Z-Manager

A Modern GTK4 / Libadwaita GUI for Managing ZRAM on Linux.

License: GPL v2

⚠️ Alpha Software

This application is in early development. You may encounter bugs, incomplete features, or unexpected behavior. Please test on a non-critical system and report any issues you find.

πŸ“Š Main Dashboard

Status Dashboard

Monitor active ZRAM devices and system swap priority in real-time.


πŸš€ Performance & Memory

Hibernate Management System Tuning
Hibernate Tune
Manage persistent storage for kernel resumption. Real-time tuning of kernel parameters and PSI monitoring.

βš™οΈ Expert Configuration

Presets & Profiles Advanced Settings
Profiles Settings
Fast, one-click optimization for gaming or servers. Fine-grained control over the ZRAM generator parameters.

πŸ› οΈ Diagnostics & Logs

System Health Journal Insight
Health Logs
Deep-dive into your system's swap health status. Integrated viewer for ZRAM-specific systemd logs.

About The Project

Z-Manager is a user-friendly desktop application designed to simplify the configuration and monitoring of ZRAM on modern Linux systems. It acts as a graphical frontend for zram-generator and the underlying kernel subsystem, providing a clean interface for tasks that traditionally require the command line.

This tool is for desktop users and system tweakers who want to harness the performance benefits of ZRAM without the command-line hassle.

Features

  • Easy Configuration: Configure ZRAM size, compression algorithm, and swap priority through a simple interface.
  • Advanced Settings: Manage advanced zram-generator options like writeback devices, filesystem mode, and host memory limits.
  • Configuration Profiles: Use built-in profiles (e.g., "Desktop / Gaming") for quick and optimized setups.
  • Live Monitoring: View real-time statistics for active ZRAM devices, including usage, compression ratio, and memory statistics.
  • System Health: Get a clear overview of your entire system's swap configuration and diagnose potential conflicts (like an active ZSwap).
  • System Tuning: Adjust related kernel parameters like CPU governors and I/O schedulers to further optimize performance.
  • Log Viewer: Easily view ZRAM-related logs from the systemd journal to troubleshoot issues.

Requirements

  • Python 3.11+
  • GTK 4
  • libadwaita 1.x
  • systemd with zram-generator
  • psutil

Project Structure

z-manager/
β”œβ”€β”€ core/                    # Backend logic
β”‚   β”œβ”€β”€ device_management/   # Modular device orchestration
β”‚   β”‚   β”œβ”€β”€ prober.py        #   Device discovery & status queries
β”‚   β”‚   β”œβ”€β”€ configurator.py  #   Apply/remove device & global config
β”‚   β”‚   β”œβ”€β”€ provisioner.py   #   Device creation & sysfs management
β”‚   β”‚   └── types.py         #   Shared dataclasses (DeviceInfo, etc.)
β”‚   β”œβ”€β”€ boot_config.py       # GRUB / bootloader kernel param management
β”‚   β”œβ”€β”€ config.py            # zram-generator INI config reader
β”‚   β”œβ”€β”€ config_writer.py     # zram-generator INI config writer
β”‚   β”œβ”€β”€ health.py            # System health diagnostics
β”‚   β”œβ”€β”€ hibernate_ctl.py     # Hibernation / resume management
β”‚   └── os_utils.py          # Low-level sysfs & subprocess helpers
β”œβ”€β”€ modules/                 # Auxiliary services
β”‚   β”œβ”€β”€ monitoring.py        # Real-time polling engine
β”‚   └── journal.py           # Systemd journal log reader
β”œβ”€β”€ ui/                      # GTK4 / Libadwaita frontend
β”‚   β”œβ”€β”€ status_page.py       # Main dashboard
β”‚   β”œβ”€β”€ configure_page.py    # Configuration UI
β”‚   β”œβ”€β”€ configure_logic.py   # Configuration business logic
β”‚   β”œβ”€β”€ live_orchestrator.py # Live-apply orchestration
β”‚   β”œβ”€β”€ log_viewer.py        # Log viewer dialog
β”‚   └── custom_widgets/      # Reusable widgets (CircularWidget, etc.)
└── tests/                   # Test suite
    β”œβ”€β”€ test_base.py          # Shared base class & assertions
    β”œβ”€β”€ unit/                 # Unit tests
    └── integration/          # Integration tests

Installation

Installation instructions will be provided once the application reaches a more stable release.

Contributing

Contributions are welcome and greatly appreciated! This project is developed by an individual, and community involvement can help make it better.

If you are interested in contributing, please feel free to:

  • Open an Issue: Report bugs, suggest new features, or ask questions.
  • Submit a Pull Request: If you'd like to contribute code, please open an issue first to discuss the proposed changes.

You can find the issue tracker on the project's GitHub page: https://github.com/dragon-Elec/z-manager/issues

License

This project is licensed under the GNU General Public License v2.0. See the LICENSE file for the full license text.

Releases

No releases published

Packages

 
 
 

Contributors

Languages