LiquidGUI [1.2.0.0]

- Linux Support
This commit is contained in:
2024-12-26 00:43:39 +00:00
parent ca036a5576
commit 040fff0677
4 changed files with 56 additions and 11 deletions
+32
View File
@@ -0,0 +1,32 @@
import subprocess
import re
class LiquidCTL_Helper():
device_name = None
device_temp = 0
device_fanSpeed = 0
device_pumpSpeed = 0
device_fwVers = None
devices = None
def ForceInit(self):
NotImplemented
def TestConnectionState(self):
output = subprocess.run(["liquidctl", "status"], stdout=subprocess.PIPE, universal_newlines=True)
if len(output.stdout) > 0:
return False
else:
return True
def Update(self):
output = subprocess.run(["liquidctl", "status"], stdout=subprocess.PIPE, universal_newlines=True)
self.device_name = str(re.search(r'^[^\n]*', output.stdout).group(0))
self.device_temp = float(re.search(r'Liquid temperature\s+(\d+\.?\d*)', output.stdout).group(1))
self.device_fanSpeed = int(re.search(r'Fan speed\s+(\d+)', output.stdout).group(1))
self.device_pumpSpeed = int(re.search(r'Pump speed\s+(\d+)', output.stdout).group(1))
def SetFanSpeed(self, speed):
NotImplemented
+8
View File
@@ -0,0 +1,8 @@
import platform
os = None
_platform = platform.platform()
if _platform.startswith("Linux"):
os = "Linux"
elif _platform.startswith("Windows"):
os = "Windows"
+16 -11
View File
@@ -1,24 +1,27 @@
# External Dependencies # External Dependencies
import sys import sys
import win32mica
from PySide6.QtWidgets import QApplication, QMainWindow, QWidget, QVBoxLayout, QLabel, QProgressBar, QPushButton from PySide6.QtWidgets import QApplication, QMainWindow, QWidget, QVBoxLayout, QLabel, QProgressBar, QPushButton
from PySide6.QtCore import Qt, QTimer, QThreadPool from PySide6.QtCore import Qt, QTimer, QThreadPool
from PySide6.QtGui import QFont, QIcon from PySide6.QtGui import QFont, QIcon
import darkdetect import darkdetect
# Internal Imports # Internal Imports
from LiquidCTL_Helper import LiquidCTL_Helper import common
import globals
from MessageHandler import MessageHandler from MessageHandler import MessageHandler
from styles import Labels from styles import Labels
import common import resources
import resources, pkg_resources.extern if globals.os == "Windows":
from LiquidCTL_Helper_Windows import LiquidCTL_Helper
import win32mica
elif globals.os == "Linux":
from LiquidCTL_Helper_Linux import LiquidCTL_Helper
class MainWindow(QMainWindow): class MainWindow(QMainWindow):
""" Main application window. """ """ Main application window. """
def __init__(self, lctl): def __init__(self, lctl):
super(MainWindow, self).__init__() super(MainWindow, self).__init__()
self.setWindowTitle("LiquidGUI (v.1.1.3.0)") self.setWindowTitle("LiquidGUI (v.1.2.0.0) DEV")
self.setFixedSize(450, 500) self.setFixedSize(450, 500)
self.lctl = lctl self.lctl = lctl
@@ -117,17 +120,19 @@ def main():
window = MainWindow(LiquidCTL_Helper()) window = MainWindow(LiquidCTL_Helper())
window.setWindowIcon(icon) window.setWindowIcon(icon)
window.setAttribute(Qt.WidgetAttribute.WA_TranslucentBackground) if globals.platform == "Windows":
window.setAttribute(Qt.WidgetAttribute.WA_TranslucentBackground)
# Show error and quit app if no devices are found # Show error and quit app if no devices are found
if window.lctl.TestConnectionState(): if window.lctl.TestConnectionState():
MessageHandler().ShowNoDevicesFoundError() MessageHandler().ShowNoDevicesFoundError()
sys.exit(1) sys.exit(1)
else: else:
if darkdetect.isDark(): if globals.platform == "Windows":
win32mica.ApplyMica(window.winId(), win32mica.MICAMODE.DARK) if darkdetect.isDark():
elif darkdetect.isLight(): win32mica.ApplyMica(window.winId(), win32mica.MICAMODE.DARK)
win32mica.ApplyMica(window.winId(), win32mica.MICAMODE.LIGHT) elif darkdetect.isLight():
win32mica.ApplyMica(window.winId(), win32mica.MICAMODE.LIGHT)
window.show() window.show()
app.exec() app.exec()