Skip to content

zocker-160/keyboard-center

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

keyboard-center Keyboard Center

DEB builder

Keyboard Center is an application attempting to create an easy way for users to map their macro keys of their >100$ keyboard to useful actions, because Logitech does not give a fuck.

Unlike some other solutions, this application works alongside with RGB software like OpenRGB!

showcase

NOTE: This application is written for Linux only, on Windows use whatever bloatware the vendor wants you to use.

Features

  • Mapping of keys, combos and macros
  • Ability to map commands to keys
  • Ablity to add delays to macros
  • libhidraw backend and libusb as backup if needed (libusb only < 0.2.0)
  • Support for switching LEDs of profile keys
  • Import and export of the configuration (added ability to open configuration folder instead)
  • openRGB integration - linking of macro profiles with openRGB profiles
  • Application specific profiles (on hold until there is a common way to do this on Wayland1)

Supported Keyboards

  • Logitech G910 Orion Spectrum (046d:c335)
  • Logitech G910 Orion Spark (046d:c32b) (thanks to @microdou)
  • Logitech G710+ (046d:c24d) (big thanks to @nirenjan)
  • Logitech G815 (046d:c33f) (thanks to @nickbuss)
  • Logitech G510 (046d:c22d) (thanks to @Flying--Dutchman)
  • Logitech G510 (046d:c22e) (thanks to @JoZ3)
  • Logitech G935 (046d:0a87) (partial support) (thanks to @coxaka)

Install

Arch / Manjaro

available in the AUR: [AUR] keyboard-center

Debian / Ubuntu

  • Download .deb from release page
  • Install using package manager of your choice or in terminal: apt install ./<packagename>.deb

Setup OpenRGB Integration

Step 1: Create Profile(s) in OpenRGB

OpenRGBprofiles

Step 2: Specify Profile in Keyboard Center

OpenRGBkeyboardcenter

note: if you install OpenRGB after Keyboard Center, you will need to restart it.

Manage Background Service

Keyboard Center places itself into the system tray (unless disabled see CLI options).

If you try to open a secondary instance, it will should reactivate the primary one if minimized or hidden.

Settings

Settings are stored in a settings.yml file, which is located at

  • $XDG_CONFIG_HOME/keyboard-center or if not defined
  • $HOME/.config/keyboard-center

CLI options

  • -v --version: prints version (duh)
  • --background-mode: hides tray icon
  • --dev: meant for development purposes only

Current default settings

settings: {usbTimeout: 1000, retryCount: 5}

Known issues

Icons on buttons and in the menu not visible

Keyboard-center relies on icons provided by the desktop environment. Some DEs (like i3) don't seem to provide those, so in that case you can manually overwrite the used icon them by setting XDG_SESSION_DESKTOP and XDG_CURRENT_DESKTOP ENV variables.

Two known good values are KDE (recommended) and GNOME.

Thanks to @scott-carrion for this info.

Dependencies

Debian / Ubuntu

  • python3 >= 3.9
  • python3-pyqt5 >= 5.15
  • python3-usb
  • python3-uinput
  • python3-ruamel.yaml
  • libhidapi-hidraw0
  • libnotify-bin

Arch / Manjaro

  • python >= 3.9
  • python-pyqt5 >= 5.15
  • python-uinput >= 0.11.2
  • python-ruamel-yaml >= 0.15
  • python-pyusb >= 1.0.2
  • hidapi >= 0.10
  • libnotify >= 0.7.9

Contribute New Keyboard

  • make sure all required dependencies are installed + git
  • git clone https://github.com/zocker-160/keyboard-center
  • cd keyboard-center
  • make sure that usbVendor and usbProduct in src/newDeviceDebugger.py is set properly
    (you can check with lsusb)
  • you might need to run the following commands with sudo if you get permission errors
  • python3 src/newDeviceDebugger.py and press all memory keys, macro keys and multimedia keys one after each other
  • python3 src/newDeviceDebugger.py --info
  • exit with CTRL + C (can take a second or two)
  • open a new issue and provide output of the last two commands and the USB ID of your keyboard

overall it should look something like this:

addKeyAnim

ko-fi

Footnotes

  1. For more information see this and this and this