From b36e59bb1b53fdaf25b44e3b799eaec44e8b69df Mon Sep 17 00:00:00 2001 From: "N0\\A" Date: Wed, 22 Oct 2025 11:06:29 +0200 Subject: [PATCH] . --- {ui => assets}/2ktan.png | Bin main.py | 96 ++++++++++++++++++++++++++++++++++++++- ui/gui.py | 91 ------------------------------------- ui/pet.png | Bin 30973 -> 0 bytes 4 files changed, 94 insertions(+), 93 deletions(-) rename {ui => assets}/2ktan.png (100%) delete mode 100755 ui/gui.py delete mode 100644 ui/pet.png diff --git a/ui/2ktan.png b/assets/2ktan.png similarity index 100% rename from ui/2ktan.png rename to assets/2ktan.png diff --git a/main.py b/main.py index 9f5e065..3b5d278 100644 --- a/main.py +++ b/main.py @@ -1,2 +1,94 @@ -from ui import gui -gui.main() \ No newline at end of file +#!/usr/bin/python3 +import sys +from pathlib import Path +from PySide6 import QtCore, QtGui, QtWidgets + +ASSET = Path(__file__).parent / "assets" / "2ktan.png" + +class MainWindow(QtWidgets.QMainWindow): + def __init__(self): + super().__init__() + + flags = ( + QtCore.Qt.FramelessWindowHint #type: ignore + | QtCore.Qt.WindowStaysOnTopHint #type: ignore + | QtCore.Qt.Tool #type: ignore + ) + + self.setWindowFlags(flags) + self.setAttribute(QtCore.Qt.WA_TranslucentBackground) #type: ignore + pix = QtGui.QPixmap(str(ASSET)) + + self.label = QtWidgets.QLabel(self) + self.label.setPixmap(pix) + self.label.resize(pix.size()) + self.resize(pix.size()) + + img = pix.toImage() + mask_img = img.createAlphaMask() + mask = QtGui.QBitmap.fromImage(mask_img) + self.setMask(mask) + + self.tray = QtWidgets.QSystemTrayIcon(self) + self.tray.setIcon(QtGui.QIcon(str(ASSET))) + menu = QtWidgets.QMenu() + menu.addAction("Hide/Show", self.toggle_visible) + menu.addSeparator() + menu.addAction("Quit", QtWidgets.QApplication.quit) + self.tray.setContextMenu(menu) + self.tray.show() + + self._drag_pos = None + + # Timer to ensure window stays on top + self.stay_on_top_timer = QtCore.QTimer(self) + self.stay_on_top_timer.timeout.connect(self.ensure_on_top) + self.stay_on_top_timer.start(1000) + + def ensure_on_top(self): + if self.isVisible(): + self.raise_() + self.activateWindow() + + def showEvent(self, event): + super().showEvent(event) + self.raise_() + self.activateWindow() + + def mousePressEvent(self, event: QtGui.QMouseEvent): + if event.button() == QtCore.Qt.LeftButton: #type: ignore + self._drag_pos = event.globalPosition().toPoint() - self.frameGeometry().topLeft() + event.accept() + elif event.button() == QtCore.Qt.RightButton: #type: ignore + self.tray.contextMenu().popup(event.globalPosition().toPoint()) + + def mouseMoveEvent(self, event: QtGui.QMouseEvent): + if self._drag_pos and (event.buttons() & QtCore.Qt.LeftButton): #type: ignore + self.move(event.globalPosition().toPoint() - self._drag_pos) + + def mouseReleaseEvent(self, event: QtGui.QMouseEvent): + self._drag_pos = None + self.raise_() + + def toggle_visible(self): + self.setVisible(not self.isVisible()) + +def main(): + app = QtWidgets.QApplication(sys.argv) + app.setApplicationName("CLARA") + + pet = MainWindow() + + # bottom right corner + screen_geometry = app.primaryScreen().availableGeometry() + pet_geometry = pet.frameGeometry() + x = screen_geometry.width() - pet_geometry.width() + y = screen_geometry.height() - pet_geometry.height() + pet.move(x, y) + + pet.show() + + sys.exit(app.exec()) + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/ui/gui.py b/ui/gui.py deleted file mode 100755 index 9026d1d..0000000 --- a/ui/gui.py +++ /dev/null @@ -1,91 +0,0 @@ -#!/usr/bin/python3 -import sys -from pathlib import Path -from PySide6 import QtCore, QtGui, QtWidgets - -ASSET = Path(__file__).with_name("2ktan.png") - -class MainWindow(QtWidgets.QMainWindow): - def __init__(self): - super().__init__() - - flags = ( - QtCore.Qt.FramelessWindowHint #type: ignore - | QtCore.Qt.WindowStaysOnTopHint #type: ignore - | QtCore.Qt.Tool #type: ignore - ) - - self.setWindowFlags(flags) - self.setAttribute(QtCore.Qt.WA_TranslucentBackground) #type: ignore - pix = QtGui.QPixmap(str(ASSET)) - - self.label = QtWidgets.QLabel(self) - self.label.setPixmap(pix) - self.label.resize(pix.size()) - self.resize(pix.size()) - - img = pix.toImage() - mask_img = img.createAlphaMask() - mask = QtGui.QBitmap.fromImage(mask_img) - self.setMask(mask) - - self.tray = QtWidgets.QSystemTrayIcon(self) - self.tray.setIcon(QtGui.QIcon(str(ASSET))) - menu = QtWidgets.QMenu() - menu.addAction("Hide/Show", self.toggle_visible) - menu.addSeparator() - menu.addAction("Quit", QtWidgets.QApplication.quit) - self.tray.setContextMenu(menu) - self.tray.show() - - self._drag_pos = None - - # Timer to ensure window stays on top - self.stay_on_top_timer = QtCore.QTimer(self) - self.stay_on_top_timer.timeout.connect(self.ensure_on_top) - self.stay_on_top_timer.start(1000) - - def ensure_on_top(self): - if self.isVisible(): - self.raise_() - self.activateWindow() - - def showEvent(self, event): - super().showEvent(event) - self.raise_() - self.activateWindow() - - def mousePressEvent(self, event: QtGui.QMouseEvent): - if event.button() == QtCore.Qt.LeftButton: #type: ignore - self._drag_pos = event.globalPosition().toPoint() - self.frameGeometry().topLeft() - event.accept() - elif event.button() == QtCore.Qt.RightButton: #type: ignore - self.tray.contextMenu().popup(event.globalPosition().toPoint()) - - def mouseMoveEvent(self, event: QtGui.QMouseEvent): - if self._drag_pos and (event.buttons() & QtCore.Qt.LeftButton): #type: ignore - self.move(event.globalPosition().toPoint() - self._drag_pos) - - def mouseReleaseEvent(self, event: QtGui.QMouseEvent): - self._drag_pos = None - self.raise_() - - def toggle_visible(self): - self.setVisible(not self.isVisible()) - -def main(): - app = QtWidgets.QApplication(sys.argv) - app.setApplicationName("CLARA") - - pet = MainWindow() - - # bottom right corner - screen_geometry = app.primaryScreen().availableGeometry() - pet_geometry = pet.frameGeometry() - x = screen_geometry.width() - pet_geometry.width() - y = screen_geometry.height() - pet_geometry.height() - pet.move(x, y) - - pet.show() - - sys.exit(app.exec()) \ No newline at end of file diff --git a/ui/pet.png b/ui/pet.png deleted file mode 100644 index 629268ed614d649f0840ddbfb9d71c36054dae2a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30973 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