annotate daemon.py @ 3:eb2aa09653bd default tip

beginnings of CPU colors, daemon
author Brad Greco <brad@bgreco.net>
date Mon, 29 Mar 2021 20:27:09 -0400
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
3
eb2aa09653bd beginnings of CPU colors, daemon
Brad Greco <brad@bgreco.net>
parents:
diff changeset
1 from keyboard_colors.color_profile import ProfileManager, Color
eb2aa09653bd beginnings of CPU colors, daemon
Brad Greco <brad@bgreco.net>
parents:
diff changeset
2 from threading import Event
eb2aa09653bd beginnings of CPU colors, daemon
Brad Greco <brad@bgreco.net>
parents:
diff changeset
3 import keyboard_colors
eb2aa09653bd beginnings of CPU colors, daemon
Brad Greco <brad@bgreco.net>
parents:
diff changeset
4 import keyboard_colors.psutilx.psutilx
eb2aa09653bd beginnings of CPU colors, daemon
Brad Greco <brad@bgreco.net>
parents:
diff changeset
5 import signal
eb2aa09653bd beginnings of CPU colors, daemon
Brad Greco <brad@bgreco.net>
parents:
diff changeset
6
eb2aa09653bd beginnings of CPU colors, daemon
Brad Greco <brad@bgreco.net>
parents:
diff changeset
7
eb2aa09653bd beginnings of CPU colors, daemon
Brad Greco <brad@bgreco.net>
parents:
diff changeset
8 class KeyboardColorDaemon:
eb2aa09653bd beginnings of CPU colors, daemon
Brad Greco <brad@bgreco.net>
parents:
diff changeset
9
eb2aa09653bd beginnings of CPU colors, daemon
Brad Greco <brad@bgreco.net>
parents:
diff changeset
10 transition_wait_time = 100
eb2aa09653bd beginnings of CPU colors, daemon
Brad Greco <brad@bgreco.net>
parents:
diff changeset
11
eb2aa09653bd beginnings of CPU colors, daemon
Brad Greco <brad@bgreco.net>
parents:
diff changeset
12 def __init__(self):
eb2aa09653bd beginnings of CPU colors, daemon
Brad Greco <brad@bgreco.net>
parents:
diff changeset
13 signal.signal(signal.SIGINT, self.signal_handler)
eb2aa09653bd beginnings of CPU colors, daemon
Brad Greco <brad@bgreco.net>
parents:
diff changeset
14 self.profile_manager = ProfileManager()
eb2aa09653bd beginnings of CPU colors, daemon
Brad Greco <brad@bgreco.net>
parents:
diff changeset
15 # self.run(keyboard_colors.custom.custom.ColorProfile())
eb2aa09653bd beginnings of CPU colors, daemon
Brad Greco <brad@bgreco.net>
parents:
diff changeset
16 self.run(keyboard_colors.psutilx.psutilx.ColorProfile())
eb2aa09653bd beginnings of CPU colors, daemon
Brad Greco <brad@bgreco.net>
parents:
diff changeset
17
eb2aa09653bd beginnings of CPU colors, daemon
Brad Greco <brad@bgreco.net>
parents:
diff changeset
18 def run(self, profile):
eb2aa09653bd beginnings of CPU colors, daemon
Brad Greco <brad@bgreco.net>
parents:
diff changeset
19 # color = profile.color
eb2aa09653bd beginnings of CPU colors, daemon
Brad Greco <brad@bgreco.net>
parents:
diff changeset
20 color = Color.from_hex('#FF3300')
eb2aa09653bd beginnings of CPU colors, daemon
Brad Greco <brad@bgreco.net>
parents:
diff changeset
21 wait_time = profile.frequency_time - profile.transition_time
eb2aa09653bd beginnings of CPU colors, daemon
Brad Greco <brad@bgreco.net>
parents:
diff changeset
22 transition_steps = int(profile.transition_time / self.transition_wait_time)
eb2aa09653bd beginnings of CPU colors, daemon
Brad Greco <brad@bgreco.net>
parents:
diff changeset
23
eb2aa09653bd beginnings of CPU colors, daemon
Brad Greco <brad@bgreco.net>
parents:
diff changeset
24 # print(Color.get_step_color(color, profile.next_color(), .3))
eb2aa09653bd beginnings of CPU colors, daemon
Brad Greco <brad@bgreco.net>
parents:
diff changeset
25 # return
eb2aa09653bd beginnings of CPU colors, daemon
Brad Greco <brad@bgreco.net>
parents:
diff changeset
26
eb2aa09653bd beginnings of CPU colors, daemon
Brad Greco <brad@bgreco.net>
parents:
diff changeset
27 self.break_event = Event()
eb2aa09653bd beginnings of CPU colors, daemon
Brad Greco <brad@bgreco.net>
parents:
diff changeset
28 while not self.break_event.is_set():
eb2aa09653bd beginnings of CPU colors, daemon
Brad Greco <brad@bgreco.net>
parents:
diff changeset
29 next_color = profile.next_color()
eb2aa09653bd beginnings of CPU colors, daemon
Brad Greco <brad@bgreco.net>
parents:
diff changeset
30 step_colors = Color.get_steps(color, next_color, transition_steps)
eb2aa09653bd beginnings of CPU colors, daemon
Brad Greco <brad@bgreco.net>
parents:
diff changeset
31
eb2aa09653bd beginnings of CPU colors, daemon
Brad Greco <brad@bgreco.net>
parents:
diff changeset
32 for step_color in step_colors:
eb2aa09653bd beginnings of CPU colors, daemon
Brad Greco <brad@bgreco.net>
parents:
diff changeset
33 print(step_color)
eb2aa09653bd beginnings of CPU colors, daemon
Brad Greco <brad@bgreco.net>
parents:
diff changeset
34 with open('/sys/devices/platform/system76/leds/system76::kbd_backlight/color_left', 'w') as f:
eb2aa09653bd beginnings of CPU colors, daemon
Brad Greco <brad@bgreco.net>
parents:
diff changeset
35 f.write(step_color.to_hex())
eb2aa09653bd beginnings of CPU colors, daemon
Brad Greco <brad@bgreco.net>
parents:
diff changeset
36 self.break_event.wait(self.transition_wait_time / 1000)
eb2aa09653bd beginnings of CPU colors, daemon
Brad Greco <brad@bgreco.net>
parents:
diff changeset
37
eb2aa09653bd beginnings of CPU colors, daemon
Brad Greco <brad@bgreco.net>
parents:
diff changeset
38 color = next_color
eb2aa09653bd beginnings of CPU colors, daemon
Brad Greco <brad@bgreco.net>
parents:
diff changeset
39 self.break_event.wait(wait_time / 1000)
eb2aa09653bd beginnings of CPU colors, daemon
Brad Greco <brad@bgreco.net>
parents:
diff changeset
40
eb2aa09653bd beginnings of CPU colors, daemon
Brad Greco <brad@bgreco.net>
parents:
diff changeset
41 def signal_handler(self, signal, frame):
eb2aa09653bd beginnings of CPU colors, daemon
Brad Greco <brad@bgreco.net>
parents:
diff changeset
42 self.break_event.set()
eb2aa09653bd beginnings of CPU colors, daemon
Brad Greco <brad@bgreco.net>
parents:
diff changeset
43
eb2aa09653bd beginnings of CPU colors, daemon
Brad Greco <brad@bgreco.net>
parents:
diff changeset
44
eb2aa09653bd beginnings of CPU colors, daemon
Brad Greco <brad@bgreco.net>
parents:
diff changeset
45 if __name__ == "__main__":
eb2aa09653bd beginnings of CPU colors, daemon
Brad Greco <brad@bgreco.net>
parents:
diff changeset
46 KeyboardColorDaemon()