Files
2026-01-24 16:37:07 +01:00

136 lines
52 KiB
Python

#!/usr/bin/env python3
import sys
import subprocess
import time
import shutil
import webbrowser
import base64
from PyQt6.QtWidgets import QApplication, QSystemTrayIcon, QMenu
from PyQt6.QtGui import QIcon, QAction, QPixmap
from PyQt6.QtCore import QTimer
# Find the full path to nextdns
NEXTDNS_PATH = shutil.which("nextdns") or "/usr/bin/nextdns"
# base64 -w 0 your_icon.png
NEXTDNS_ICON_DATA = """
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
"""
NEXTDNS_ICON_DISABLED_DATA = """
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
"""
class NextDNSTray:
def __init__(self):
self.app = QApplication(sys.argv)
self.app.setApplicationName("NextDNS Tray")
self.app.setQuitOnLastWindowClosed(False)
# Create QIcon from the bundled Base64 data
self.custom_icon = self.load_custom_icon(NEXTDNS_ICON_DATA)
self.custom_icon_disabled = self.load_custom_icon(NEXTDNS_ICON_DISABLED_DATA)
self.tray = QSystemTrayIcon()
self.menu = QMenu()
# Poll status every 5 seconds
self.timer = QTimer()
self.timer.timeout.connect(self.refresh_ui)
self.timer.start(5000)
self.refresh_ui()
self.tray.show()
def load_custom_icon(self, data):
"""Decodes base64 string into a QIcon."""
try:
pixmap = QPixmap()
pixmap.loadFromData(base64.b64decode(data))
return QIcon(pixmap)
except Exception:
# Fallback to a system icon if decoding fails
return QIcon.fromTheme("yast-security")
def is_running(self):
"""Check if nextdns service is active."""
try:
result = subprocess.run([NEXTDNS_PATH, "status"], capture_output=True, text=True)
return "running" in result.stdout.lower()
except Exception:
return False
def run_cmd(self, cmd):
"""Execute start/stop/restart via pkexec."""
try:
# Only prompts for password when an action is taken
subprocess.run(f"pkexec {NEXTDNS_PATH} {cmd}", shell=True, check=True)
time.sleep(1.5)
self.refresh_ui()
except subprocess.CalledProcessError:
# User cancelled the password prompt
pass
def refresh_ui(self):
"""Updates icons and menu with a status header."""
running = self.is_running()
# Main Tray Icon (The Shield)
if running:
self.tray.setIcon(self.custom_icon)
self.tray.setToolTip("NextDNS: Running")
else:
self.tray.setIcon(self.custom_icon_disabled)
self.tray.setToolTip("NextDNS: Stopped")
self.menu.clear()
# 1. THE HEADER
# Create an action for the title
title_act = QAction("⸻ NextDNS ⸻", self.menu)
# title_act.setEnabled(False)
self.menu.addAction(title_act)
status = " Enabled/Running" if running else " Disabled/Stopped"
status_icon = "emblem-checked" if running else "emblem-unmounted"
toggle_status = QAction(QIcon.fromTheme(status_icon), status, self.menu)
toggle_status.setEnabled(False)
self.menu.addAction(toggle_status)
self.menu.addSeparator()
# 2. TOGGLE ACTION
label = "Stop NextDNS" if running else "Start NextDNS"
icon = "media-playback-stop" if running else "media-playback-start"
cmd = "stop" if running else "start"
toggle_act = QAction(QIcon.fromTheme(icon), label, self.menu)
toggle_act.triggered.connect(lambda: self.run_cmd(cmd))
self.menu.addAction(toggle_act)
self.menu.addSeparator()
# 3. UTILITIES
restart_act = QAction(QIcon.fromTheme("chronometer-reset"), "Restart Service", self.menu)
restart_act.triggered.connect(lambda: self.run_cmd("restart"))
self.menu.addAction(restart_act)
dashboard_act = QAction(QIcon.fromTheme("open-link"), "Open Dashboard", self.menu)
dashboard_act.triggered.connect(lambda: webbrowser.open("https://my.nextdns.io"))
self.menu.addAction(dashboard_act)
self.menu.addSeparator()
exit_act = QAction(QIcon.fromTheme("window-close"), "Exit Tray", self.menu)
exit_act.triggered.connect(self.app.quit)
self.menu.addAction(exit_act)
self.tray.setContextMenu(self.menu)
def run(self):
sys.exit(self.app.exec())
if __name__ == "__main__":
tray = NextDNSTray()
tray.run()