|
1 | | -# biglinux-driver-manager |
2 | | -Show hardware informantion and install drivers |
| 1 | +<p align="center"> |
| 2 | + <img src="usr/share/icons/hicolor/scalable/apps/big-driver-manager.svg" alt="Big Driver Manager" width="128" height="128"> |
| 3 | +</p> |
3 | 4 |
|
4 | | -#EN |
5 | | -Interface to manage drivers and firmware, it has an automatic detection system and dozens of options for installation. |
| 5 | +<h1 align="center">Big Driver Manager</h1> |
6 | 6 |
|
7 | | -It also includes an interface to show complete system information. And we can export the information into a .html file that can be easily shared across support groups. |
| 7 | +<p align="center"> |
| 8 | + A modern graphical tool for managing Linux kernels and Mesa video drivers on Arch-based systems. |
| 9 | +</p> |
8 | 10 |
|
9 | | -#PT |
10 | | -Interface para gerenciar drivers e firmwares, possui sistema de detecção automática e dezenas de opções para instalação. |
| 11 | +<p align="center"> |
| 12 | + <a href="LICENSE"><img src="https://img.shields.io/badge/License-MIT-blue.svg" alt="License: MIT"></a> |
| 13 | + <img src="https://img.shields.io/badge/Python-3.10%2B-3776AB?logo=python&logoColor=white" alt="Python 3.10+"> |
| 14 | + <img src="https://img.shields.io/badge/GTK-4.0-4A86CF?logo=gtk&logoColor=white" alt="GTK 4.0"> |
| 15 | + <img src="https://img.shields.io/badge/Adwaita-1.0-4A86CF" alt="Adwaita"> |
| 16 | + <img src="https://img.shields.io/badge/Platform-Arch%20Linux-1793D1?logo=archlinux&logoColor=white" alt="Arch Linux"> |
| 17 | + <img src="https://img.shields.io/badge/Translations-29%20languages-green" alt="29 Languages"> |
| 18 | +</p> |
11 | 19 |
|
12 | | -Também inclui uma interface para mostrar informações completas do sistema. E podemos exportar as informações em um arquivo .html que pode ser compartilhado facilmente em grupos de suporte. |
| 20 | +--- |
13 | 21 |
|
14 | | - |
15 | | - |
16 | | - |
17 | | - |
| 22 | +## Overview |
| 23 | + |
| 24 | +**Big Driver Manager** is a GTK4/Adwaita desktop application designed for [BigLinux](https://www.biglinux.com.br/) and other Arch-based distributions. It provides an intuitive graphical interface for two critical system management tasks: |
| 25 | + |
| 26 | +- **Kernel Management** — Install, remove, and switch between available Linux kernels with full visibility into version, type (LTS, RT, Xanmod), and current usage status. |
| 27 | +- **Mesa Video Driver Management** — Switch between Mesa driver variants (Stable, Amber, TKG-Stable, TKG-Git) with automated conflict resolution and clear risk descriptions. |
| 28 | + |
| 29 | +## Screenshots |
| 30 | + |
| 31 | +> *Application uses system accent colors and follows GNOME/Adwaita design guidelines.* |
| 32 | +
|
| 33 | +## Features |
| 34 | + |
| 35 | +### Kernel Management |
| 36 | +- View all installed kernels with version details |
| 37 | +- Identify the currently running kernel at a glance |
| 38 | +- Browse and install available kernels from the repository |
| 39 | +- Safely remove unused kernels with confirmation dialogs |
| 40 | +- Badge indicators for **LTS**, **RT**, and **In Use** status |
| 41 | + |
| 42 | +### Mesa Video Driver Management |
| 43 | +- Switch between four Mesa driver variants: |
| 44 | + - **Stable** — Official Mesa release (Recommended) |
| 45 | + - **Amber** — Classic OpenGL for legacy hardware |
| 46 | + - **TKG-Stable** — Custom performance-patched build |
| 47 | + - **TKG-Git** — Bleeding-edge development version |
| 48 | +- Automatic conflict resolution during driver switching |
| 49 | +- Clear risk labels: *Recommended*, *Legacy*, *Performance*, *DEV* |
| 50 | + |
| 51 | +### User Experience |
| 52 | +- Modern GTK4/Adwaita interface with dark theme support |
| 53 | +- System accent color integration on tab buttons |
| 54 | +- Asynchronous data loading with spinner indicators |
| 55 | +- Real-time terminal output during operations |
| 56 | +- Progress tracking for install/remove operations |
| 57 | +- Toast notifications for user feedback |
| 58 | + |
| 59 | +### Internationalization |
| 60 | +- Full translation support via GNU gettext |
| 61 | +- **29 languages** included: Bulgarian, Czech, Danish, German, Greek, English, Spanish, Estonian, Finnish, French, Hebrew, Croatian, Hungarian, Icelandic, Italian, Japanese, Korean, Dutch, Norwegian, Polish, Portuguese, Brazilian Portuguese, Romanian, Russian, Slovak, Swedish, Turkish, Ukrainian, and Chinese |
| 62 | + |
| 63 | +## Architecture |
| 64 | + |
| 65 | +``` |
| 66 | +usr/share/big-driver-manager/ |
| 67 | +├── main.py # Application entry point |
| 68 | +├── core/ |
| 69 | +│ ├── constants.py # App metadata and configuration |
| 70 | +│ ├── base_manager.py # Base class for system managers |
| 71 | +│ ├── kernel_manager.py # Kernel detection and operations |
| 72 | +│ ├── mesa_manager.py # Mesa driver switching logic |
| 73 | +│ ├── package_manager.py # Pacman wrapper for package operations |
| 74 | +│ ├── exceptions.py # Custom exception classes |
| 75 | +│ └── logging_config.py # Logging setup |
| 76 | +├── ui/ |
| 77 | +│ ├── application.py # Adw.Application subclass |
| 78 | +│ ├── window.py # Main window with tab navigation |
| 79 | +│ ├── base_page.py # Base page with shared UI patterns |
| 80 | +│ ├── kernel_page.py # Kernel management interface |
| 81 | +│ ├── mesa_page.py # Mesa driver management interface |
| 82 | +│ └── progress_dialog.py # Operation progress dialog |
| 83 | +├── utils/ |
| 84 | +│ └── i18n.py # Internationalization setup |
| 85 | +└── assets/ |
| 86 | + └── css/ |
| 87 | + └── style.css # Application stylesheet |
| 88 | +``` |
| 89 | + |
| 90 | +## Requirements |
| 91 | + |
| 92 | +| Dependency | Version | Purpose | |
| 93 | +|---|---|---| |
| 94 | +| Python | ≥ 3.10 | Runtime | |
| 95 | +| GTK | 4.0 | UI toolkit | |
| 96 | +| libadwaita | ≥ 1.0 | Adwaita widgets and styling | |
| 97 | +| pacman | — | Package management (Arch Linux) | |
| 98 | +| pkexec | — | Privilege escalation for system operations | |
| 99 | + |
| 100 | +### Python Packages |
| 101 | + |
| 102 | +- `PyGObject` — GObject Introspection bindings for GTK4 and Adwaita |
| 103 | + |
| 104 | +## Installation |
| 105 | + |
| 106 | +### From BigLinux Repository |
| 107 | + |
| 108 | +```bash |
| 109 | +sudo pacman -S big-driver-manager |
| 110 | +``` |
| 111 | + |
| 112 | +### From Source |
| 113 | + |
| 114 | +```bash |
| 115 | +# Clone the repository |
| 116 | +git clone https://github.com/communitybig/big-driver-manager.git |
| 117 | +cd big-driver-manager |
| 118 | + |
| 119 | +# Run directly (requires dependencies installed) |
| 120 | +python usr/share/big-driver-manager/main.py |
| 121 | +``` |
| 122 | + |
| 123 | +### Building the Package |
| 124 | + |
| 125 | +```bash |
| 126 | +cd pkgbuild |
| 127 | +makepkg -si |
| 128 | +``` |
| 129 | + |
| 130 | +## Usage |
| 131 | + |
| 132 | +Launch from your application menu or via terminal: |
| 133 | + |
| 134 | +```bash |
| 135 | +big-driver-manager |
| 136 | +``` |
| 137 | + |
| 138 | +> **Note:** Kernel and driver operations require administrator privileges. The application uses `pkexec` to request elevated permissions when needed. |
| 139 | +
|
| 140 | +## Translation |
| 141 | + |
| 142 | +Translation files are located in the `locale/` directory. To contribute a new translation: |
| 143 | + |
| 144 | +1. Copy the template file: |
| 145 | + ```bash |
| 146 | + cp locale/big-driver-manager.pot locale/<lang_code>.po |
| 147 | + ``` |
| 148 | +2. Translate the `msgstr` entries in the new `.po` file |
| 149 | +3. Compile the translation: |
| 150 | + ```bash |
| 151 | + msgfmt locale/<lang_code>.po -o usr/share/locale/<lang_code>/LC_MESSAGES/big-driver-manager.mo |
| 152 | + ``` |
| 153 | + |
| 154 | +## Contributing |
| 155 | + |
| 156 | +Contributions are welcome! Please feel free to submit a Pull Request. |
| 157 | + |
| 158 | +1. Fork the repository |
| 159 | +2. Create your feature branch (`git checkout -b feature/my-feature`) |
| 160 | +3. Commit your changes (`git commit -m 'Add my feature'`) |
| 161 | +4. Push to the branch (`git push origin feature/my-feature`) |
| 162 | +5. Open a Pull Request |
| 163 | + |
| 164 | +## License |
| 165 | + |
| 166 | +This project is licensed under the **MIT License** — see the [LICENSE](LICENSE) file for details. |
| 167 | + |
| 168 | +## Credits |
| 169 | + |
| 170 | +Developed by the [BigLinux Team](https://www.biglinux.com.br/) and the [Community Big](https://github.com/communitybig) contributors. |
| 171 | + |
| 172 | +<p align="center"> |
| 173 | + <sub>Made with ❤️ for the BigLinux community</sub> |
| 174 | +</p> |
0 commit comments