system_tray_extensions icon indicating copy to clipboard operation
system_tray_extensions copied to clipboard

Unofficial RGB keyboard effects package for TUXEDO laptops (ITE8291r3)

[STE] System Tray Extensions

Table of Contents

  • Introduction
  • Supported Systems
  • Installation
  • Running
  • Contributing
  • FAQ
  • Known Issues and Solutions
  • Credits
  • References

Introduction

STE is a RGB keyboard visualizer package for Tuxedo laptops. This package also provides a playground for playing with keyboard lights for tinkerers.

Screenshot of the system tray application:

screenshot

GIF: RGB Keyboard running rgb_kb_custom/sin_wave.py:

custom_py_script_ani

GIF: RGB Keyboard running rgb_kb_custom/cpu_usage.py While Compiling a Project

custom_py_script.ani2

YOUTUBE: RGB Keyboard running rgb_kb_custom/reflect_screen.py:

YOUTUBE: RGB Keyboard running various effects:

Also here are some other videos for RGB keyboard good for demonstration. Enable rgb_kb_custom/reflect_screen.py effect and watch the video in full-screen: [1] [2] [3]

Supported Systems

Supported Distributions:

  • build-checks-debian
  • build-checks-arch
  • build-checks-debian

Tested Systems:

  • Tuxedo Stellaris 15 Gen 3 - Ubuntu 20.04
  • Tuxedo Stellaris 15 Gen 3 - Manjaro 21.1.6
  • XMG Fusion 15 / Eluktronics MAG-15 - PopOS! 20.04, ElementaryOS 6, Nobara 37

Installation

Start a new terminal session and use it for all commands above. If you want to run these in multiple terminals don't forget to define INSTALL_DIR.

# Specify installation directory
$ INSTALL_DIR="$HOME/.system_tray_extensions"

# Download the project
$ git clone https://github.com/salihmarangoz/system_tray_extensions.git "$INSTALL_DIR"
$ cd $INSTALL_DIR

# ONLY RUN ONE OF THESE ACCORDING TO YOUR LINUX DISTRIBUTION:
$ bash install_debian.sh # For Debian based distributions; Ubuntu, Pop OS, etc.
$ bash install_arch.sh # For Arch based distributions; Manjaro, etc. 
$ bash install_fedora.sh # For Fedora based distributions
  • Create a file /etc/udev/rules.d/99-ste.rules for device permissions and copy/paste the following:
# RGB Keyboard
SUBSYSTEMS=="usb", ATTRS{idVendor}=="048d", ATTRS{idProduct}=="6004", MODE:="0666"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="048d", ATTRS{idProduct}=="ce00", MODE:="0666"

# Optional: Lightbar (Tuxedo Keyboard)
# Controlling lightbar using the interface provided by tuxedo-keyboard.
# Install the required package and uncomment TuxedoKeyboard line in modules/loading_order.list
SUBSYSTEM=="leds", ACTION=="add", RUN+="/bin/chgrp -R leds /sys%p", RUN+="/bin/chmod -R g=u /sys%p"
SUBSYSTEM=="leds", ACTION=="change", ENV{TRIGGER}!="none", RUN+="/bin/chgrp -R leds /sys%p", RUN+="/bin/chmod -R g=u /sys%p"
$ sed -i '3 s/^#//' modules/loading_order.list
  • After creating the file run:
# Optional: For controlling the Lightbar (Tuxedo Keyboard)
# Create `leds` group and add current user to it. 
$ sudo groupadd leds
$ sudo usermod -a -G leds $USER
  • And lastly reboot the system. If you don't want to reboot; logout and login, then run sudo udevadm control --reload, then run sudo udevadm trigger.

Running

You can start the app via launcher. Also, the app will start on boot by default.

If you want to start via terminal (maybe for debugging) then run this command:

$ bash start.sh

Contributing

Contributions of any kind are welcome. See ToDo List for current problems/ideas.

Contributors:

ToDo List:

  • [ ] Core: Check hibernate/wakeup if it works.
  • [ ] RgbKeyboard: Keyboard shortcuts for effects? "Save this state to shortcut: xyz"?
  • [ ] TogglePulseaudioSuspend
  • [ ] App: Logging has some problems. Not working?!
  • [ ] Add a check if battery path exists!
  • [ ] Add a check if lightbar path exists!

FAQ

  • There are tons of dependencies, GTK, system tray thing but I don't want them.
    • Solution: Check this lightweight fork: https://gitlab.com/Ranguna/tuxedo-rgb-keyboard-daemon
  • What happened to ite8291r3-gui ?
    • It was only for ite8291r3 so I refactored the whole project. If you want then get it here: https://github.com/salihmarangoz/ite8291r3-gui/tree/ite8291r3-gui

Known Issues and Solutions

  • tdp package is causing rgb keyboard animations to stop.
    • Solution: Uninstall tdp. If you know how to prevent tdp from modifying USB power I welcome pull requests.
  • Other icons are not shown properly in XFCE. (If someone knows how please send a pull request)
  • Pacman fails with 404:
    • Solution: https://github.com/salihmarangoz/system_tray_extensions/pull/39#pullrequestreview-803832786
  • Can't install on Arch:
    • Solution pacman -Sy and then pacman -S sudo . Didn't work? Open an issue please.
  • System tray submenus don't work on elementaryOS 6: (Solution by augustoicaro):
    • https://elementaryos.stackexchange.com/questions/17452/how-to-display-system-tray-icons-in-elementary-os-juno#comment28965_17453

Credits

Credit goes to Ambiefix for preset videos used in the RGB Keyboard module:

Credit goes to MrPacMan36 for the video used in the RGB Keyboard demo video:

References

  • https://approxeng.github.io/approxeng.input/sys.html