This repository has been archived on 2023-11-22. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
pyStScreen/pyStScreen.py
2023-08-04 18:58:49 +02:00

107 lines
2.7 KiB
Python

from PyQt6.QtGui import QIcon, QAction
from PyQt6.QtWidgets import QApplication, QMenu, QSystemTrayIcon
import os
import signal
import subprocess
path = os.path.dirname(os.path.abspath(__file__))
app = QApplication([])
app.setQuitOnLastWindowClosed(False)
# PID procesos
pidx = os.popen('pidof xscreensaver').read()
pid4 = os.popen('pidof xfce4-screensaver').read()
# Creating the options
menu = QMenu()
# Menú activar
optionActivo = QAction("Activar salvapantallas")
optionActivo.triggered.connect(lambda: activar())
# Menú desactivar
optionDesactivo = QAction("Desactivar salvapantallas")
optionDesactivo.triggered.connect(lambda: desactivar())
# Saber si está funcionando y cambiar el icono
if pidx == "" and pid4 == "":
icon = QIcon(path+"/cinema.png")
menu.addAction(optionActivo)
os.popen('xset -dpms').read()
result = subprocess.run(
["/usr/bin/bash", "-c", "xfce4-power-manager -q"])
print(result)
else:
icon = QIcon(path+"/work.png")
menu.addAction(optionDesactivo)
os.popen('xset +dpms').read()
result = subprocess.run(
["/usr/bin/bash", "-c", "nohup xfce4-power-manager & 2>&1 >/dev/null"])
print(result)
# opción desactivar
def desactivar():
global icon
os.popen('xset +dpms').read()
result = subprocess.run(
["/usr/bin/bash", "-c", "xfce4-power-manager -q"])
print(result)
icon = QIcon(path+"/cinema.png")
tray.setIcon(icon)
menu.removeAction(optionDesactivo)
menu.removeAction(quit)
menu.addAction(optionActivo)
menu.addAction(quit)
pidx = os.popen('pidof xscreensaver').read()
pid4 = os.popen('pidof xfce4-screensaver').read()
if pidx != "":
os.kill(int(pidx), signal.SIGKILL)
if pid4 != "":
os.kill(int(pid4), signal.SIGKILL)
# opción activar
def activar():
global icon
os.popen('xset -dpms').read()
result = subprocess.run(
["/usr/bin/bash", "-c", "nohup xfce4-power-manager & 2>&1 >/dev/null"])
print(result)
icon = QIcon(path+"/work.png")
tray.setIcon(icon)
menu.removeAction(optionActivo)
menu.removeAction(quit)
menu.addAction(optionDesactivo)
menu.addAction(quit)
if os.path.isfile('/usr/bin/xfce4-screensaver'):
result = subprocess.run(
["/usr/bin/bash", "-c", "xfce4-screensaver &"])
print(result)
elif os.path.isfile('/usr/bin/xscreensaver'):
result = subprocess.run(
["/usr/bin/bash", "-c", "xscreensaver --nosplash &"])
print(result)
# Adding item on the menu bar
tray = QSystemTrayIcon()
tray.setIcon(icon)
tray.setVisible(True)
# To quit the app
quit = QAction("Quit")
quit.triggered.connect(app.quit)
menu.addAction(quit)
# Adding options to the System Tray
tray.setContextMenu(menu)
app.exec()