#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import sys

from PySide6.QtWidgets import QApplication, QSystemTrayIcon, QMenu
from PySide6.QtGui import QAction, QIcon, QCursor


class TrayIcon(QSystemTrayIcon):
  def __init__(self, icon, parent=None):
    super().__init__(icon, parent)
    self.activated.connect(self.handle_activation)

  def handle_activation(self, reason):
    if reason == QSystemTrayIcon.ActivationReason.Trigger:
      menu = self.contextMenu()
      menu.popup(QCursor.pos())


if __name__ == "__main__":
  app = QApplication(sys.argv)
  app.setQuitOnLastWindowClosed(False)

  tray = TrayIcon(QIcon("path_to_your_icon.png"))
  menu = QMenu()
  menu.addAction(QAction("Do 1", menu))
  exit_action = QAction("Exit", menu)
  exit_action.triggered.connect(app.quit)
  menu.addAction(exit_action)
  tray.setContextMenu(menu)
  tray.show()

  sys.exit(app.exec())
