A lightweight alternative to GNOME Tweaks, built with GTK4 and libadwaita. This project aims to provide essential GNOME customization options while maintaining minimal dependencies and optimal Flatpak compatibility.
- π¨ Appearance customization
- π€ Font settings
- π Sound tweaks
- π±οΈ Mouse and touchpad configuration
- β¨οΈ Keyboard settings
- πͺ Window management options
- π Startup applications management
- 𧩠GNOME Shell extensions management
GNOME Tweaks is a powerful tool, but it comes with a large number of dependencies that can be challenging to manage, especially in containerized environments like Flatpak. Tweaks Lite addresses this by:
- Using modern GTK4 and libadwaita instead of GTK3
- Minimizing dependencies to essential components
- Optimizing for Flatpak deployment
- Providing a clean, modern interface
- Following GNOME Human Interface Guidelines (HIG)
- Python 3.x
- GTK 4.0 (gtk4)
- libadwaita 1.0
- GLib 2.0
- python3-gobject >= 3.42.0
- dbus-python
- meson
- ninja
- python3-devel
- gtk4-devel
- libadwaita-devel
- desktop-file-utils
- gettext
- glib2-devel
flatpak install dev.jaydoubleu.tweaks.lite
# Clone the repository
git clone https://github.com/JayDoubleu/tweaks-lite.git
cd tweaks-lite
# Build using Meson
meson setup builddir
cd builddir
meson compile
sudo meson install
- Common requirements for all build methods:
- meson
- ninja
- python3-devel
- gtk4-devel
- libadwaita-devel
- desktop-file-utils
- gettext
- glib2-devel
# Clone the repository
git clone https://github.com/JayDoubleu/tweaks-lite.git
cd tweaks-lite
# Build using Meson
meson setup builddir
cd builddir
meson compile
sudo meson install
You can build and install the Flatpak using either:
# Simple build
flatpak-builder --user --install --force-clean build dev.jaydoubleu.tweaks.lite.json
# Or use the build script (recommended)
chmod x scripts/build-flatpak.sh
./scripts/build-flatpak.sh
To build an RPM package, you'll need the following additional requirements:
- rpm-build
- rpmdevtools
Then you can build the RPM using the provided script:
chmod x scripts/build-rpm.sh
./scripts/build-rpm.sh
The built RPMs will be available in ~/rpmbuild/RPMS/
and the source RPM in ~/rpmbuild/SRPMS/
.
Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
This project is licensed under the GPL-3.0 License - see the COPYING file for details.
- Inspired by GNOME Tweaks
- Built with GTK4 and libadwaita
- Development assisted by Claude 3.5 Sonnet model by Anthropic
- Developed using Cursor IDE
This project uses UV for Python package management. UV is a fast, reliable Python package installer and resolver.
# Install the package with development dependencies
uv pip install ".[dev]"
# Activate the virtual environment (if you prefer working in an activated environment)
source .venv/bin/activate
You can run commands in two ways:
- With activated virtual environment (after running
source .venv/bin/activate
):
# Run tests (with DBus session)
dbus-run-session -- pytest
# Run tests with coverage
dbus-run-session -- pytest --cov=tweakslite --cov-report=xml
# Run linter
ruff check .
# Format code
ruff format .
# Type checking
mypy .
- Without activating (recommended):
# Run tests (with DBus session)
dbus-run-session -- uv run pytest
# Run tests with coverage
dbus-run-session -- uv run pytest --cov=tweakslite --cov-report=xml
# Run linter
uv run ruff check .
# Format code
uv run ruff format .
# Type checking
uv run mypy .
Note: The dbus-run-session
wrapper is required for tests that interact with DBus services (like GNOME Shell extensions management). This ensures tests have access to a clean DBus session.