refactor(ui): nama aplikasi jadi 'IceBurg LCD' (tanpa merek vendor di UI)
- judul jendela, tooltip tray, notifikasi, nama aplikasi Qt, dan deskripsi unit systemd - entri menu di install.sh + petunjuk di jendela - README: catatan bahwa UI tidak memakai merek; repo tetap menyebut merek hanya untuk menjelaskan hardware yang didukung - versi 1.3.1
This commit is contained in:
1 parent
c384df7cac
commit
4711ef5532
4 files changed
+19
-17
No files matched your search
@@ -109,7 +109,8 @@ temperature source (Tctl vs Tccd).
|
|||||||
- **Donate / GitHub buttons** in the app (window and tray menu)
|
- **Donate / GitHub buttons** in the app (window and tray menu)
|
||||||
- **AppImage build** script (`packaging/build_appimage.sh`, PySide6 bundled)
|
- **AppImage build** script (`packaging/build_appimage.sh`, PySide6 bundled)
|
||||||
|
|
||||||
The GUI labels are in Indonesian.
|
The GUI labels are in Indonesian. The app itself is named **IceBurg LCD** (no vendor brand in
|
||||||
|
the UI); the repository keeps the hardware and brand name only to describe what it supports.
|
||||||
|
|
||||||
## Requirements
|
## Requirements
|
||||||
|
|
||||||
|
|||||||
+3
-3
@@ -114,7 +114,7 @@ rm -rf "$TMP"
|
|||||||
say "4/6 memasang layanan systemd (autostart + plug and play) …"
|
say "4/6 memasang layanan systemd (autostart + plug and play) …"
|
||||||
cat > "$UNIT" <<EOF
|
cat > "$UNIT" <<EOF
|
||||||
[Unit]
|
[Unit]
|
||||||
Description=GAMEMAX HID sensor display bridge (PcInfoMonitorPro replacement)
|
Description=IceBurg LCD — HID sensor display bridge (Linux)
|
||||||
After=graphical-session.target
|
After=graphical-session.target
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
@@ -139,9 +139,9 @@ say "5/6 memasang entri menu + ikon …"
|
|||||||
cat > "$DESKTOP_DIR/gamemax-lcd.desktop" <<EOF
|
cat > "$DESKTOP_DIR/gamemax-lcd.desktop" <<EOF
|
||||||
[Desktop Entry]
|
[Desktop Entry]
|
||||||
Type=Application
|
Type=Application
|
||||||
Name=GAMEMAX IceBurg LCD
|
Name=IceBurg LCD
|
||||||
GenericName=Kontrol LCD AIO
|
GenericName=Kontrol LCD AIO
|
||||||
Comment=Status, nyala/mati, pemantauan, dan pengaturan LCD AIO GAMEMAX IceBurg
|
Comment=Status, nyala/mati, pemantauan, dan pengaturan LCD AIO IceBurg Digital
|
||||||
Exec="$APP"
|
Exec="$APP"
|
||||||
Icon=gamemax-lcd
|
Icon=gamemax-lcd
|
||||||
Terminal=false
|
Terminal=false
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
[Unit]
|
[Unit]
|
||||||
Description=GAMEMAX HID sensor display bridge (PcInfoMonitorPro replacement)
|
Description=IceBurg LCD — HID sensor display bridge (Linux)
|
||||||
Documentation=file:///mnt/SSD/Work/REVERSE-EGENERING/analysis/01-recon.md
|
Documentation=file:///mnt/SSD/Work/REVERSE-EGENERING/analysis/01-recon.md
|
||||||
After=graphical-session.target
|
After=graphical-session.target
|
||||||
|
|
||||||
|
|||||||
+13
-12
@@ -1,5 +1,5 @@
|
|||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
"""GAMEMAX IceBurg LCD — GUI tray: status, nyala/mati, pemantauan beranimasi, pengaturan.
|
"""IceBurg LCD — GUI tray: status, nyala/mati, pemantauan beranimasi, pengaturan.
|
||||||
|
|
||||||
Streaming tetap dijalankan oleh layanan systemd (gamemax-report.service); GUI ini
|
Streaming tetap dijalankan oleh layanan systemd (gamemax-report.service); GUI ini
|
||||||
mengendalikannya dan memakai gamemax_report.py sebagai pengirim.
|
mengendalikannya dan memakai gamemax_report.py sebagai pengirim.
|
||||||
@@ -32,7 +32,8 @@ from PySide6.QtWidgets import (
|
|||||||
)
|
)
|
||||||
from PySide6.QtNetwork import QLocalServer, QLocalSocket
|
from PySide6.QtNetwork import QLocalServer, QLocalSocket
|
||||||
|
|
||||||
APP_VERSION = "1.3.0"
|
APP_VERSION = "1.3.1"
|
||||||
|
APP_NAME = "IceBurg LCD"
|
||||||
REPO = "oxpoe/Gamemax-linux-apps"
|
REPO = "oxpoe/Gamemax-linux-apps"
|
||||||
RELEASES_API = f"https://api.github.com/repos/{REPO}/releases/latest"
|
RELEASES_API = f"https://api.github.com/repos/{REPO}/releases/latest"
|
||||||
UPDATE_ASSET = "GAMEMAX-LCD-x86_64.AppImage"
|
UPDATE_ASSET = "GAMEMAX-LCD-x86_64.AppImage"
|
||||||
@@ -50,7 +51,7 @@ UNIT_PATH = os.path.expanduser(f"~/.config/systemd/user/{SERVICE}")
|
|||||||
RULE_PATH = "/etc/udev/rules.d/70-gamemax.rules"
|
RULE_PATH = "/etc/udev/rules.d/70-gamemax.rules"
|
||||||
|
|
||||||
UNIT_TEMPLATE = """[Unit]
|
UNIT_TEMPLATE = """[Unit]
|
||||||
Description=GAMEMAX HID sensor display bridge (PcInfoMonitorPro replacement)
|
Description=IceBurg LCD — HID sensor display bridge (Linux)
|
||||||
After=graphical-session.target
|
After=graphical-session.target
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
@@ -331,7 +332,7 @@ class Window(QWidget):
|
|||||||
super().__init__()
|
super().__init__()
|
||||||
self.tray = tray
|
self.tray = tray
|
||||||
self.prev_stat = gr.stat_snapshot()
|
self.prev_stat = gr.stat_snapshot()
|
||||||
self.setWindowTitle(f"GAMEMAX IceBurg LCD v{APP_VERSION}")
|
self.setWindowTitle(f"{APP_NAME} v{APP_VERSION}")
|
||||||
self.setWindowIcon(QIcon(icon_path()))
|
self.setWindowIcon(QIcon(icon_path()))
|
||||||
self.setMinimumWidth(640)
|
self.setMinimumWidth(640)
|
||||||
root = QVBoxLayout(self)
|
root = QVBoxLayout(self)
|
||||||
@@ -341,7 +342,7 @@ class Window(QWidget):
|
|||||||
if isinstance(geom, list) and len(geom) == 4:
|
if isinstance(geom, list) and len(geom) == 4:
|
||||||
self.setGeometry(*[int(g) for g in geom])
|
self.setGeometry(*[int(g) for g in geom])
|
||||||
|
|
||||||
hint = QLabel("Kontrol layar LCD AIO GAMEMAX. Pilih slot kipas/sumber suhu di "
|
hint = QLabel("Kontrol layar LCD AIO IceBurg Digital. Pilih slot kipas/sumber suhu di "
|
||||||
"<b>Pengaturan</b> lalu klik <b>Simpan & terapkan</b>.")
|
"<b>Pengaturan</b> lalu klik <b>Simpan & terapkan</b>.")
|
||||||
hint.setObjectName("hint")
|
hint.setObjectName("hint")
|
||||||
hint.setWordWrap(True)
|
hint.setWordWrap(True)
|
||||||
@@ -563,7 +564,7 @@ class Window(QWidget):
|
|||||||
return
|
return
|
||||||
|
|
||||||
box = QMessageBox(self)
|
box = QMessageBox(self)
|
||||||
box.setWindowTitle("Tutup GAMEMAX LCD")
|
box.setWindowTitle(f"Tutup {APP_NAME}")
|
||||||
box.setText("Sembunyikan ke tray atau keluar sepenuhnya?")
|
box.setText("Sembunyikan ke tray atau keluar sepenuhnya?")
|
||||||
box.setInformativeText("Selama tersembunyi di tray, data sensor tetap dikirim ke layar.")
|
box.setInformativeText("Selama tersembunyi di tray, data sensor tetap dikirim ke layar.")
|
||||||
remember = QCheckBox("Ingat pilihan ini")
|
remember = QCheckBox("Ingat pilihan ini")
|
||||||
@@ -846,7 +847,7 @@ class Window(QWidget):
|
|||||||
"kosong": "Layar dikosongkan (nilai nol)",
|
"kosong": "Layar dikosongkan (nilai nol)",
|
||||||
"berhenti": "Pengiriman data dihentikan"}
|
"berhenti": "Pengiriman data dihentikan"}
|
||||||
if mode != "normal" or getattr(self, "_mode_seen", False):
|
if mode != "normal" or getattr(self, "_mode_seen", False):
|
||||||
subprocess.run(["notify-send", "-a", "GAMEMAX LCD", "Status layar",
|
subprocess.run(["notify-send", "-a", APP_NAME, "Status layar",
|
||||||
labels[mode]], capture_output=True)
|
labels[mode]], capture_output=True)
|
||||||
self._mode_seen = True
|
self._mode_seen = True
|
||||||
dot = "🟢" if active else "⚪"
|
dot = "🟢" if active else "⚪"
|
||||||
@@ -945,7 +946,7 @@ class Tray:
|
|||||||
blank = bool(gr.load_config(CONFIG_PATH).get("blank"))
|
blank = bool(gr.load_config(CONFIG_PATH).get("blank"))
|
||||||
state = ("layar kosong (nilai nol)" if blank and active
|
state = ("layar kosong (nilai nol)" if blank and active
|
||||||
else ("pengiriman dihentikan" if not active else "normal"))
|
else ("pengiriman dihentikan" if not active else "normal"))
|
||||||
self.icon.setToolTip(f"GAMEMAX LCD: {state}")
|
self.icon.setToolTip(f"{APP_NAME}: {state}")
|
||||||
base = icon_path()
|
base = icon_path()
|
||||||
self.icon.setIcon(dimmed_icon(base) if state != "normal" else QIcon(base))
|
self.icon.setIcon(dimmed_icon(base) if state != "normal" else QIcon(base))
|
||||||
window = getattr(self, "window", None)
|
window = getattr(self, "window", None)
|
||||||
@@ -959,7 +960,7 @@ class Tray:
|
|||||||
self.window.raise_()
|
self.window.raise_()
|
||||||
self.window.activateWindow()
|
self.window.activateWindow()
|
||||||
if QSystemTrayIcon.isSystemTrayAvailable():
|
if QSystemTrayIcon.isSystemTrayAvailable():
|
||||||
self.icon.showMessage("GAMEMAX LCD", "Jendela dibuka dari permintaan kedua.",
|
self.icon.showMessage(APP_NAME, "Jendela dibuka dari permintaan kedua.",
|
||||||
QSystemTrayIcon.Information, 3000)
|
QSystemTrayIcon.Information, 3000)
|
||||||
|
|
||||||
|
|
||||||
@@ -976,7 +977,7 @@ def main():
|
|||||||
|
|
||||||
def _main():
|
def _main():
|
||||||
app = QApplication(sys.argv)
|
app = QApplication(sys.argv)
|
||||||
app.setApplicationName("GAMEMAX LCD")
|
app.setApplicationName(APP_NAME)
|
||||||
app.setStyleSheet(APP_QSS)
|
app.setStyleSheet(APP_QSS)
|
||||||
app.setQuitOnLastWindowClosed(False)
|
app.setQuitOnLastWindowClosed(False)
|
||||||
|
|
||||||
@@ -986,10 +987,10 @@ def _main():
|
|||||||
if probe.waitForConnected(400):
|
if probe.waitForConnected(400):
|
||||||
probe.write(b"raise")
|
probe.write(b"raise")
|
||||||
probe.waitForBytesWritten(400)
|
probe.waitForBytesWritten(400)
|
||||||
print("GAMEMAX LCD sudah berjalan — instance pertama diminta membuka jendelanya.")
|
print(f"{APP_NAME} sudah berjalan — instance pertama diminta membuka jendelanya.")
|
||||||
# Beri tahu lewat notifikasi desktop juga, karena keluarnya proses kedua bisa
|
# Beri tahu lewat notifikasi desktop juga, karena keluarnya proses kedua bisa
|
||||||
# terlihat seperti crash saat diluncurkan dari menu.
|
# terlihat seperti crash saat diluncurkan dari menu.
|
||||||
subprocess.run(["notify-send", "-a", "GAMEMAX LCD", "Sudah berjalan",
|
subprocess.run(["notify-send", "-a", APP_NAME, "Sudah berjalan",
|
||||||
"Aplikasi sudah aktif — jendelanya dibuka, cek taskbar/tray."],
|
"Aplikasi sudah aktif — jendelanya dibuka, cek taskbar/tray."],
|
||||||
capture_output=True)
|
capture_output=True)
|
||||||
return 0
|
return 0
|
||||||
|
|||||||
Reference in new issue
Block a user