import sys import os import platform import configparser from log import Log log = Log(3) log.debugOn() log.debug_level = 3 log.eventOff() from mouseevents import MouseEvents from pynput import mouse from sightfactory import SightFactory from PyQt6.QtWidgets import QApplication from pynput.mouse import Controller import subprocess def init(): global sights, mousectrl, app, data data = {} #init the basic values app = QApplication(sys.argv) mousectrl = Controller() sights = SightFactory() data["move"] = False data["active_sight"] = "main" data["platform"] = {} data["platform"]["system"] = platform.system() data["mouse_distance_x"] = 0 data["mouse_distance_y"] = 0 data["display_server"] = "" if data["platform"]["system"] == "Linux": args = ["echo -n $XDG_SESSION_TYPE"] result = subprocess.check_output(args, shell=True) data["display_server"] = result.decode('ascii') data["base_dir"]=os.path.abspath(os.getcwd())+os.path.sep data["template_dir"]=data["base_dir"]+"place"+os.path.sep+"templates"+os.path.sep data["admin_template"] = data["base_dir"] + "admin" +os.path.sep + "base"+os.path.sep #LOAD the template config.ini file's content loadConfigTemplate() #Events mouseevent = MouseEvents() start() def frameSupported(): if data["display_server"] == "wayland": return False return True def loadConfigTemplate(): config = configparser.ConfigParser() config.sections() config.read(data["template_dir"]+"config.ini") if "DEFAULT" in config: data["default_template"] = config["DEFAULT"]["default_template"] data["default_template_page"] = config["DEFAULT"]["default_template_page"] data["default_template_dir"] = data["template_dir"]+data["default_template"]+os.path.sep data["sight_mode"] = config["DEFAULT"]["sight_mode"] log.byCode("CFL1000S","CONFIG.INI file") else: log.byCode( "CFL1000F", "Missing 'DEFAULT' data from the templates config.ini folder. It can't start!") def start(): # Creating admin sight sights.create("sight-admin", "main") sights.show("sight-admin") # Creating the main Sight sights.create("main", data["default_template_page"]) sights.show("main") app.exec()