Logitech G13 Linux driver with macro support, RGB control, and LCD display management
Project description
G13 Linux
Python userspace driver for the Logitech G13 Gaming Keyboard on Linux.
Features
- 22 Programmable G-Keys with macro support
- RGB Backlight Control with full color range
- 160x43 LCD Display with custom text and graphics
- Thumbstick Support with configurable zones
- Profile Management for different applications
- PyQt6 GUI for visual configuration
Installation
# From PyPI
pip install g13-linux
# Or with pipx (recommended for CLI tools)
pipx install g13-linux
System Dependencies
# Ubuntu/Debian
sudo apt install libhidapi-hidraw0
# Fedora
sudo dnf install hidapi
udev Rules (Required)
# Allow non-root access to G13
sudo cp udev/99-logitech-g13.rules /etc/udev/rules.d/
sudo udevadm control --reload-rules
sudo udevadm trigger
Usage
CLI
g13-linux --help # Show help
g13-linux --version # Show version
g13-linux # Run the input daemon
g13-linux run # Run the input daemon (explicit)
# LCD control
g13-linux lcd "Hello World" # Display text on LCD
g13-linux lcd --clear # Clear the LCD
# Backlight control
g13-linux color red # Set backlight to red
g13-linux color "#FF6600" # Set backlight to hex color
g13-linux color 255,128,0 # Set backlight to RGB
# Profile management
g13-linux profile list # List available profiles
g13-linux profile show eve # Show profile details
g13-linux profile load eve # Load and apply a profile
g13-linux profile create new # Create a new profile
g13-linux profile delete old # Delete a profile
GUI
g13-linux-gui # Launch the configuration GUI
Python API
from g13_linux import open_g13, G13Mapper
# Open device and start mapping
device = open_g13()
mapper = G13Mapper()
# Read events
while True:
data = read_event(device)
if data:
mapper.handle_raw_report(data)
Hardware
| Component | Status |
|---|---|
| G1-G22 Keys | ✅ Working |
| M1-M3 Mode Keys | ✅ Working |
| MR Key | ✅ Working |
| Thumbstick | ✅ Working |
| LCD Display | ✅ Working |
| RGB Backlight | ✅ Working |
Note: Button input requires either:
- udev rules for hidraw access, or
sudowith libusb mode (g13-linux-gui --libusb)
Linux kernel 6.19+ will include native hid-lg-g15 support for G13.
Development
# Clone and setup
git clone https://github.com/AreteDriver/G13_Linux.git
cd G13_Linux
python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
# Run tests
pytest
# Lint
ruff check src/ tests/
License
MIT License - see LICENSE for details.
Links
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file g13_linux-1.3.2.tar.gz.
File metadata
- Download URL: g13_linux-1.3.2.tar.gz
- Upload date:
- Size: 68.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
af01b61dbeae64157b0112aaa555745e3cde8c31a9b42bb118fa4a39c874da51
|
|
| MD5 |
77bf4f610629a0ef7602148a7535cdcc
|
|
| BLAKE2b-256 |
db07398d1ad2c68b81fa226a0ca353fd6025abe3de32b460d7faf96463de3b56
|
Provenance
The following attestation bundles were made for g13_linux-1.3.2.tar.gz:
Publisher:
release.yml on AreteDriver/G13_Linux
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
g13_linux-1.3.2.tar.gz -
Subject digest:
af01b61dbeae64157b0112aaa555745e3cde8c31a9b42bb118fa4a39c874da51 - Sigstore transparency entry: 790883468
- Sigstore integration time:
-
Permalink:
AreteDriver/G13_Linux@de9f6418d933fa1b9f24c59e8c4fc7a6994f445d -
Branch / Tag:
refs/tags/v1.3.2 - Owner: https://github.com/AreteDriver
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@de9f6418d933fa1b9f24c59e8c4fc7a6994f445d -
Trigger Event:
push
-
Statement type:
File details
Details for the file g13_linux-1.3.2-py3-none-any.whl.
File metadata
- Download URL: g13_linux-1.3.2-py3-none-any.whl
- Upload date:
- Size: 62.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fce9e6f36531cbd56bf8151e62921e21311bf2a7defbe30f7e78fa62e2325216
|
|
| MD5 |
a00d5a7bcc62566ffb1ff136bf9edb3d
|
|
| BLAKE2b-256 |
5e9123c1d372541784a16fe33044cd5f2ca13a395f621438097e19104d9a0051
|
Provenance
The following attestation bundles were made for g13_linux-1.3.2-py3-none-any.whl:
Publisher:
release.yml on AreteDriver/G13_Linux
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
g13_linux-1.3.2-py3-none-any.whl -
Subject digest:
fce9e6f36531cbd56bf8151e62921e21311bf2a7defbe30f7e78fa62e2325216 - Sigstore transparency entry: 790883475
- Sigstore integration time:
-
Permalink:
AreteDriver/G13_Linux@de9f6418d933fa1b9f24c59e8c4fc7a6994f445d -
Branch / Tag:
refs/tags/v1.3.2 - Owner: https://github.com/AreteDriver
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@de9f6418d933fa1b9f24c59e8c4fc7a6994f445d -
Trigger Event:
push
-
Statement type: