Skip to content

MX-Linux/mx-tools

 
 

Repository files navigation

MX Tools

latest packaged version(s) build result

A Qt6-based dashboard application providing centralized access to configuration tools in MX Linux. MX Tools offers an intuitive graphical interface for launching various system utilities, organized by categories for easy navigation.

image

Features

  • Categorized Tool Organization: Tools are grouped into logical categories (System, Hardware, etc.)
  • Environment-Aware Filtering: Automatically filters tools based on desktop environment and system state
  • Multi-Language Support: Comprehensive internationalization with 50+ language translations
  • Modern Qt6 Interface: Clean, responsive UI built with Qt6 widgets
  • Live/Installed Detection: Adapts tool availability based on live vs installed system state

Architecture

MX Tools is built with modern C++20 standards using Qt6 framework:

  • MainWindow: Core application logic and UI management
  • FlatButton: Custom button widgets for the dashboard interface
  • Category-based filtering: Uses QMultiMap for efficient tool organization
  • Resource management: Integrated icon and translation systems

Build Requirements

Dependencies

  • Qt6 Core, Widgets, and LinguistTools
  • CMake 3.16 or higher
  • Ninja build system
  • C++20 compatible compiler (GCC/Clang)

Debian/Ubuntu

sudo apt install cmake ninja-build qt6-base-dev qt6-base-dev-tools qt6-tools-dev qt6-tools-dev-tools

Building

Quick Build

# Clone the repository
git clone https://github.com/MX-Linux/mx-tools.git
cd mx-tools

# Build using the provided script
./build.sh

Build Options

# Debug build
./build.sh --debug

# Use Clang compiler
./build.sh --clang

# Clean build
./build.sh --clean

# Build Debian package
./build.sh --debian

Manual CMake Build

mkdir build
cd build
cmake -G Ninja -DCMAKE_BUILD_TYPE=Release ..
ninja

Development

Project Structure

mx-tools/
├── main.cpp              # Application entry point
├── mainwindow.{cpp,h,ui}  # Main window implementation
├── flatbutton.{cpp,h}     # Custom button widget
├── about.{cpp,h}          # About dialog
├── images.qrc             # Resource file for icons
├── translations/          # Translation files (.ts)
├── icons/                 # Application icons
├── help/                  # Documentation files
└── debian/               # Debian packaging files

Code Style

  • C++20 standard with strict compiler warnings
  • Qt6 naming conventions
  • Environment-specific code paths for different desktop environments
  • Resource-based asset management

Installation

From Package

MX Tools is available in MX Linux repositories:

sudo apt install mx-tools

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Follow existing code style and patterns
  4. Test on different desktop environments
  5. Submit a pull request

Translation Contributions

Please join Translation Forum: https://forum.mxlinux.org/viewforum.php?f=96 Please register on Transifex: https://forum.mxlinux.org/viewtopic.php?t=38671 Choose your language and start translating: https://app.transifex.com/anticapitalista/antix-development

License

MX Tools is licensed under the GNU General Public License v3.0. See LICENSE for details.

Links

About

Configuration tools for MX Linux

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 72.8%
  • Shell 18.0%
  • CMake 9.2%