A user-space driver and GUI configurator for the Logitech G13
Go to file
2024-03-28 20:37:39 -05:00
.github Update python.yml 2024-03-24 10:42:12 -05:00
assets Update README with a screenshot and fixed URL. 2023-10-31 10:28:43 -05:00
bin bin: Add simple scripts to start our gui and apps 2021-05-23 13:13:05 -05:00
debian Adjust build rules to be self-contained 2024-03-26 08:54:11 -05:00
docs docs: Add some information about the applet model 2021-05-09 09:02:31 -05:00
etc Update the appindicator icon to match others 2021-05-30 15:40:16 -05:00
g13gui Remove X11 tests from the unittests. 2024-03-28 18:11:12 -05:00
tools Add in python environment generation 2024-03-28 19:36:56 -05:00
.drone.yml debian: Swap to "latest" 2024-03-28 20:37:39 -05:00
.gitignore Ignore the python env 2024-03-28 19:36:11 -05:00
AUTHORS Add an AUTHORS file so we can be more like upstream python apps 2021-05-23 13:14:15 -05:00
g13gui.doap Rip out my google address. 2021-07-13 14:05:16 -05:00
LICENSE setup: Add in manifest files 2021-05-23 13:12:57 -05:00
Makefile Swap back to a normal requirements.txt. 2024-03-28 19:49:28 -05:00
MANIFEST.in setup: Add in manifest files 2021-05-23 13:12:57 -05:00
meson.build Move udev rules to lib/udev/rules.d 2024-03-26 08:53:10 -05:00
PKGBUILD arch: Add in glib2 deps 2024-03-28 20:25:09 -05:00
README.md Dont cache build tag 2024-03-26 10:06:16 -05:00
requirements.txt Swap back to a normal requirements.txt. 2024-03-28 19:49:28 -05:00
setup.py Remove locking from setup.py as per recommendations. 2023-10-31 10:35:04 -05:00

The G13 Configurator

GUI Screenshot

What is this?

This is a stand-alone companion application and user space driver for configuring a Logitech G13 game board. The original code was based upon another driver originally written by ecraven, and available at https://github.com/ecraven/g13, but this codebase was modernized, cleaned up and totally rewritten in Python.

Using this tool allows you to:

  • Graphically plan out a keymapping profile
  • Save multiple profiles and switch between them at will
  • Use the LCD with pluggable dbus-based applets to display useful information
  • Switch profiles using the LCD

All wrapped up in a glorious Gtk 3.0 + libappindicator interface.

Please note: this is an early version of the application and as such it is still in heavy development, but the author uses it almost on a daily basis already to play most of her game library.

Building

Build Status

We have a continuous build running to make packaging, and periodically those artifacts are brought over as releases on the Github site. The CI is run on June's personal infrastructure via a gitea mirror, so releases may lag behind a slight bit. June promises to redouble her efforts. :D

In general, though, g13gui is a python program, so no actual compilation takes place. All the Makefile and associated infrastructure do is assemble distro specific packages. If you want to skip the packaging (not recommended), it's entirely possible to run the program out of the source tree by doing the following:

[user@host g13gui]$ export PYTHONPATH=$PWD
[user@host g13gui]$ bin/g13gui &
[user@host g13gui]$ bin/g13-clock &
[user@host g13gui]$ bin/g13-profiles &

Note that you will have to manually install the udev rules file in etc/ to your appropriate distro-specific location.

Building a package

In the major distributions, it should just be possible to run make to build a package for your specific distro. As of this writing, there is support to build for Debian, Ubuntu, Arch, and Manjaro. Patches are welcome to help improve availability on other platforms.

Debian and Debian derivatives

First, setup your system with build tooling:

lupin:~$ sudo apt-get install devscripts python3 build-essential git-buildpackage appstream dh-sequence-python3 meson

Now you can build the package:

lupin:~/src/g13gui$ make