A simple razer-keyboard theme built on openrazer and openrazer_command
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

59 lines
1.5 KiB

#! /bin/python3
import sys
import time
import signal
from openrazer_command import Keyboard, Color
from evdev import InputDevice, ecodes
class GracefulKiller:
kill_now = False
def __init__(self):
signal.signal(signal.SIGINT, self.exit_gracefully)
signal.signal(signal.SIGTERM, self.exit_gracefully)
def exit_gracefully(self,signum, frame):
self.kill_now = True
keyboard = Keyboard()
if not keyboard.found_keyboard():
print("No keyboard was found")
exit()
def redraw(capslock_enabled, numlock_enabled):
keyboard.set_static(Color(0,100,0))
if capslock_enabled:
keyboard.set_keys(Color(255,255,255), 'caps_lock')
if numlock_enabled:
keyboard.set_keys(Color(255,255,255), 'num_lock')
keyboard.draw()
def daemon():
device = InputDevice('/dev/input/by-id/usb-Razer_Razer_BlackWidow_Chroma_V2-event-kbd')
capslock_enabled = False
numlock_enabled = False
killer = GracefulKiller()
while not killer.kill_now:
update = False
capslock_previous = capslock_enabled
numlock_previous = numlock_enabled
leds = device.leds()
capslock_enabled = 1 in leds
numlock_enabled = 0 in leds
if capslock_previous != capslock_enabled or numlock_previous != numlock_enabled:
update = True
if update:
redraw(capslock_enabled, numlock_enabled)
time.sleep(.1)
sys.exit(0)
if __name__=='__main__':
daemon()