-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathKeyboardControllerWidget.py
More file actions
112 lines (87 loc) · 3.45 KB
/
KeyboardControllerWidget.py
File metadata and controls
112 lines (87 loc) · 3.45 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
#!/usr/bin/env python3
import math
import os
import sys
from PySide6.QtCore import Qt, Slot
from PySide6.QtGui import QIcon, QAction
from PySide6.QtWidgets import (QApplication, QLabel, QPushButton,
QVBoxLayout, QWidget, QSlider, QAbstractSlider,
QSystemTrayIcon, QMenu)
from __feature__ import true_property
PATH = "/sys/devices/platform/tuxedo_keyboard"
class KeyboardControllerWidget(QWidget):
def __init__(self):
QWidget.__init__(self)
self.red = 255
self.green = 255
self.blue = 255
self.bright = 255
self.redslider = QSlider(Qt.Horizontal)
self.greenslider = QSlider(Qt.Horizontal)
self.blueslider = QSlider(Qt.Horizontal)
self.brightslider = QSlider(Qt.Horizontal)
self.redlabel = QLabel("Red")
self.greenlabel = QLabel("Green")
self.bluelabel = QLabel("Blue")
self.brightlabel = QLabel("Brightness")
file = open("{}/brightness".format(PATH), "r")
self.brightslider.value = self.descaleValue(int(file.read().strip()))
file.close()
file = open("{}/color_left".format(PATH), "r")
filetxt = file.read().strip()
file.close()
self.redslider.value = self.descaleValue(int("0x{}".format(filetxt[0:2]), 16))
self.greenslider.value = self.descaleValue(int("0x{}".format(filetxt[2:4]), 16))
self.blueslider.value = self.descaleValue(int("0x{}".format(filetxt[4:6]), 16))
self.redslider.valueChanged.connect(self.adjustRed)
self.greenslider.valueChanged.connect(self.adjustGreen)
self.blueslider.valueChanged.connect(self.adjustBlue)
self.brightslider.valueChanged.connect(self.adjustBright)
self.layout = QVBoxLayout(self)
self.layout.addWidget(self.redslider)
self.layout.addWidget(self.redlabel)
self.layout.addWidget(self.greenslider)
self.layout.addWidget(self.greenlabel)
self.layout.addWidget(self.blueslider)
self.layout.addWidget(self.bluelabel)
self.layout.addWidget(self.brightslider)
self.layout.addWidget(self.brightlabel)
def scaleValue(self, val):
return math.floor(val*255/99)
def descaleValue(self, val):
return math.floor(val*99/255)
def updateColor(self):
os.system("echo \"0x{:02x}{:02x}{:02x}\" > {}/color_left".format(self.red, self.green, self.blue, PATH))
def adjustRed(self, i):
self.red = self.scaleValue(i)
self.updateColor()
def adjustGreen(self, i):
self.green = self.scaleValue(i)
self.updateColor()
def adjustBlue(self, i):
self.blue = self.scaleValue(i)
self.updateColor()
def adjustBright(self, i):
self.bright = self.scaleValue(i)
os.system("echo \"0x{:02x}\" > {}/brightness".format(self.bright, PATH))
def test():
print("test")
if __name__ == "__main__":
app = QApplication([])
app.quitOnLastWindowClosed = False
widget = KeyboardControllerWidget()
icon = QIcon("./input-keyboard-symbolic.svg")
tray = QSystemTrayIcon()
tray.icon = icon
tray.isVisible = True
tray.activated.connect(widget.show)
menu = QMenu()
action = QAction("Adjust Keyboard")
action.triggered.connect(widget.show)
menu.addAction(action)
quit = QAction("Quit")
quit.triggered.connect(app.quit)
menu.addAction(quit)
tray.setContextMenu(menu)
tray.show()
app.exec()