Browse Source

refactor: git_id, add: sdl-config.py winfo:active

micha 1 year ago
parent
commit
f69b7db6ec
10 changed files with 655 additions and 96 deletions
  1. 28 26
      LibreLightDesk.py
  2. 80 33
      _LibreLightDesk.py
  3. 4 1
      _console.py
  4. 211 0
      nohup.out
  5. 11 1
      tkgui/draw.py
  6. 244 0
      tksdl/config.py
  7. 3 19
      tksdl/demo.py
  8. 6 5
      tksdl/fix.py
  9. 34 0
      tool/git.py
  10. 34 11
      tool/movewin.py

+ 28 - 26
LibreLightDesk.py

@@ -11,6 +11,24 @@ sys.path.insert(0,"/opt/LibreLight/Xdesk/")
 print(sys.path)
 print()
 
+
+import pathlib
+
+_file_path=pathlib.Path(__file__)
+print("file:",_file_path)
+
+import tool.movewin as movewin
+count = movewin.search_process(_file_path)
+
+CAPTION = 'LibreLight Start XX'
+if count >= 2:
+    search = CAPTION[:]
+    _ids = movewin.winfo(search)
+    for _id in _ids:
+        c3  = movewin.activate(_id)
+        os.system(c3)
+    sys.exit()
+
 from lib.xcolor import *
 
 
@@ -33,32 +51,16 @@ import tool.sdl_elm as sdl_elm
 
 CAPTION = 'LibreLight Start '
 CAPTION += ':{}'.format(random.randint(100,999))
-#try:
-try:
-    _gcmd=r'git log -1 --format=%ci'
-    r = os.popen(_gcmd)
-    txt=r.read()
-    print(txt)
-    CAPTION += " " + txt.strip().split()[0]
-except Exception as e:
-    print(e)
-    CAPTION += " no-date" 
-
-try:
-    _gcmd='git rev-parse --short HEAD'
-    r=os.popen(_gcmd)
-    txt=r.read()
-    CAPTION += " v:"+txt.strip()
-except Exception as e:
-    print(e)
-    CAPTION += " no git" 
-
-
-_id = movewin.winfo(CAPTION)
-c1 = movewin.movewin(_id,200,50)
-os.system(c1)
-c1 = movewin.activate(_id)
-os.system(c1)
+
+import tool.git as git
+CAPTION += git.get_all()
+
+if 0:
+    _id = movewin.winfo(CAPTION)
+    c1 = movewin.movewin(_id,200,50)
+    os.system(c1)
+    c1 = movewin.activate(_id)
+    os.system(c1)
 
 pg.display.set_caption(CAPTION)
 

+ 80 - 33
_LibreLightDesk.py

@@ -29,21 +29,10 @@ rnd_id += " beta"
 rnd_id2 = ""
 rnd_id3 = ""
 _ENCODER_WINDOW = None
-try:
-    _gcmd=['git','log','-1', '--format=%ci']
-    r = subprocess.check_output(_gcmd)
-    rnd_id3 += " " + r.decode('ascii').strip().split()[0]
-except:pass
-rnd_id += rnd_id3
 
-_gcmd=['git', 'rev-parse', '--short', 'HEAD']
-try:
-    r = subprocess.check_output(_gcmd)
-    rnd_id2 += " "+r.decode('ascii').strip()
-except Exception as e:
-    rnd_id2 += " no git" 
-    #rnd_id += " ".join(_gcmd) +str(e)
-rnd_id += rnd_id2
+
+import tool.git as git
+rnd_id += git.get_all()
 
 
 try:
@@ -81,6 +70,16 @@ _global_short_key = 1
 
 path = "/home/user/LibreLight/"
 #os.chdir(path)
+f = open(path+"init.txt","r")
+lines=f.readlines()
+f.close()
+out = []
+for line in lines:
+    if line != "EASY\n":
+        out.append(line)
+f = open(path+"init.txt","w")
+f.writelines(out)
+f.close()
 if "--easy" in sys.argv:
     f = open(path+"init.txt","a")
     f.write("EASY\n")
@@ -91,17 +90,6 @@ if "--easy" in sys.argv:
         #input()
         os.system(cmd)
     # check if EASY show exist !
-else:
-    f = open(path+"init.txt","r")
-    lines=f.readlines()
-    f.close()
-    out = []
-    for line in lines:
-        if line != "EASY\n":
-            out.append(line)
-    f = open(path+"init.txt","w")
-    f.writelines(out)
-    f.close()
 
 
 icolor = 1
@@ -4259,19 +4247,26 @@ class on_focus():
         self.mode = mode
     def cb(self,event=None):
         print("on_focus",event,self.name,self.mode)
-        e = master.commands.elem["."]
+        try:
+            e = master.commands.elem["."]
+        except:pass
+
         if self.mode == "Out":
             cmd="xset -display :0.0 r rate 240 20"
             print(cmd)
             os.system(cmd)
-            e["bg"] = "#aaa"
-            e["activebackground"] = "#aaa"
+            try:
+                e["bg"] = "#aaa"
+                e["activebackground"] = "#aaa"
+            except:pass
         if self.mode == "In":
             cmd = "xset -display :0.0 r off"
             print(cmd)
             os.system(cmd)
-            e["bg"] = "#fff"
-            e["activebackground"] = "#fff"
+            try:
+                e["bg"] = "#fff"
+                e["activebackground"] = "#fff"
+            except:pass
 
 class Window():
     def __init__(self,args): #title="title",master=0,width=100,height=100,left=None,top=None,exit=0,cb=None,resize=1):
@@ -4567,6 +4562,8 @@ class WindowManager():
 
         if name in self.window_init_buffer:
             c = self.window_init_buffer[name] 
+            print(c)
+            print(dir(c))
             w,obj,cb_ok = c.create()
             window_manager.update(w,name,obj)
 
@@ -4602,10 +4599,17 @@ class WindowManager():
 
         if not self._check(name):
             self.create(name)
+        
+        w = self.windows[name]
+        print(" 2.1-",w,str(type(w)))
+        if type(w) is type(window_create_buffer):
+            w.tk.attributes('-topmost',True)
+            w.tk.attributes('-topmost',False)
+            w.tk.update_idletasks()
 
-        self.windows[name].tk.attributes('-topmost',True)
-        self.windows[name].tk.attributes('-topmost',False)
-        self.windows[name].tk.update_idletasks()
+        if str(type(w)).startswith("<class 'function'>"): # is type(window_create_sdl_buffer):
+            print(" 2.2-",w)
+            w()
 
 
 class Console():
@@ -4748,6 +4752,18 @@ def loops(**args):
     thread.start_new_thread(refresher_fix.loop,())
     thread.start_new_thread(refresher_exec.loop,())
 
+class window_create_sdl_buffer():
+    def __init__(self,args,cls,data,cb_ok=None,scroll=0,gui=None):
+        self.args   = args.copy()
+        self.cls    = cls
+        self.cb_ok  = cb_ok
+        self.data   = data
+        self.scroll = scroll
+        self.gui    = gui
+
+    def create(self,hidde=0):
+        cprint()
+        return [self.cls,self.cls,None] #w,obj,cb_ok
 
 class window_create_buffer():
     def __init__(self,args,cls,data,cb_ok=None,scroll=0,gui=None):
@@ -4829,6 +4845,7 @@ if __run_main:
     data.append({"text":"---"})
     data.append({"text":"FIXTURE-EDITOR","name":"FIX-EDIT"})
     data.append({"text":"CONFIG"})
+    data.append({"text":"SDL-CONFIG"})
     data.append({"text":"CLOCK"})
     data.append({"text":"---"})
 
@@ -4868,6 +4885,36 @@ if __run_main:
     if split_window_show(pos_list,_filter=name):
         window_manager.top(name)
 
+    def sdl_config():
+        cmd="nohup /usr/bin/python3 /opt/LibreLight/Xdesk/tksdl/config.py &"
+        cmd="/usr/bin/python3 /opt/LibreLight/Xdesk/tksdl/config.py " #&"
+        print(cmd)
+        #os.popen(cmd)
+
+        def xyz123(cmd):
+            os.system(cmd)
+        thread.start_new_thread(xyz123,(cmd,))
+        return [None,None,None]
+
+    #print(dir(cls))
+    #print(cls)
+    #sys.exit()
+    name="SDL-CONFIG"
+    #class window_create_sdl_buffer():
+    args = {"title":name,"master":0,"width":W1,"height":H1,"left":L1,"top":TOP}
+    geo = split_window_position(pos_list,name)
+    if geo:
+        args.update(geo)
+
+    data = []
+    cls = sdl_config #: None #GUI_CONF
+    cb_ok = None
+
+    c = window_create_sdl_buffer(args=args,cls=cls,data=data,cb_ok=cb_ok,gui=master,scroll=1)
+    window_manager.new(None,name,wcb=c)
+    if split_window_show(pos_list,_filter=name):
+        window_manager.top(name)
+
 
     name="CONFIG"
     args = {"title":name,"master":0,"width":W1,"height":H1,"left":L1,"top":TOP}

+ 4 - 1
_console.py

@@ -26,7 +26,10 @@ import zlib
 rnd_id = ""
 rnd_id += " Beta 22.02 "
 import subprocess
-rnd_id += subprocess.check_output(['git', 'rev-parse', '--short', 'HEAD']).decode('ascii').strip()
+
+import tool.git as git
+rnd_id += git.get_all()
+
 
 if "__file__" in dir():
     sys.stdout.write("\x1b]2;"+str(__file__)+" "+rnd_id+"\x07") # terminal title

+ 211 - 0
nohup.out

@@ -0,0 +1,211 @@
+X Error of failed request:  BadWindow (invalid Window parameter)
+  Major opcode of failed request:  12 (X_ConfigureWindow)
+  Resource id in failed request:  0x0
+  Serial number of failed request:  18
+  Current serial number in output stream:  20
+X Error of failed request:  BadWindow (invalid Window parameter)
+  Major opcode of failed request:  20 (X_GetProperty)
+  Resource id in failed request:  0x0
+  Serial number of failed request:  26
+  Current serial number in output stream:  26
+X Error of failed request:  BadWindow (invalid Window parameter)
+  Major opcode of failed request:  12 (X_ConfigureWindow)
+  Resource id in failed request:  0x0
+  Serial number of failed request:  18
+  Current serial number in output stream:  20
+X Error of failed request:  BadWindow (invalid Window parameter)
+  Major opcode of failed request:  20 (X_GetProperty)
+  Resource id in failed request:  0x0
+  Serial number of failed request:  26
+  Current serial number in output stream:  26
+['/opt/LibreLight/Xdesk/', '/opt/LibreLight/Xdesk/tksdl', '/usr/lib/python39.zip', '/usr/lib/python3.9', '/usr/lib/python3.9/lib-dynload', '/home/user/.local/lib/python3.9/site-packages', '/usr/local/lib/python3.9/dist-packages', '/usr/lib/python3/dist-packages']
+
+pygame 1.9.6
+Hello from the pygame community. https://www.pygame.org/contribute.html
+2023-12-10 19:44:46 +0100
+
+xwininfo -root -children -all | grep 'LibreLight Start :979 2023-12-10 v:11e0943'
+ID: xxxx
+17 loop...
+event <Event(4-MouseMotion {'pos': (239, 55), 'rel': (3, -5), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (242, 50), 'rel': (3, -5), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (244, 47), 'rel': (2, -3), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (247, 42), 'rel': (3, -5), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (250, 39), 'rel': (3, -3), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (251, 36), 'rel': (1, -3), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (253, 31), 'rel': (2, -5), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (254, 28), 'rel': (1, -3), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (255, 25), 'rel': (1, -3), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (256, 23), 'rel': (1, -2), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (256, 22), 'rel': (0, -1), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (256, 21), 'rel': (0, -1), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (256, 20), 'rel': (0, -1), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (256, 19), 'rel': (0, -1), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (256, 18), 'rel': (0, -1), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (256, 16), 'rel': (0, -2), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (256, 15), 'rel': (0, -1), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (256, 14), 'rel': (0, -1), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (256, 13), 'rel': (0, -1), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (256, 12), 'rel': (0, -1), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (255, 10), 'rel': (-1, -2), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (254, 8), 'rel': (-1, -2), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (253, 6), 'rel': (-1, -2), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (252, 5), 'rel': (-1, -1), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (251, 4), 'rel': (-1, -1), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (251, 3), 'rel': (0, -1), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (250, 1), 'rel': (-1, -2), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (249, 0), 'rel': (-1, -1), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(1-ActiveEvent {'gain': 0, 'state': 1})>
+event <Event(1-ActiveEvent {'gain': 1, 'state': 1})>
+event <Event(4-MouseMotion {'pos': (248, 6), 'rel': (-1, 6), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(12-Quit {})>
+['/opt/LibreLight/Xdesk/', '/opt/LibreLight/Xdesk/tksdl', '/usr/lib/python39.zip', '/usr/lib/python3.9', '/usr/lib/python3.9/lib-dynload', '/home/user/.local/lib/python3.9/site-packages', '/usr/local/lib/python3.9/dist-packages', '/usr/lib/python3/dist-packages']
+
+pygame 1.9.6
+Hello from the pygame community. https://www.pygame.org/contribute.html
+2023-12-10 19:44:46 +0100
+
+xwininfo -root -children -all | grep 'LibreLight Start :531 2023-12-10 v:11e0943'
+ID: xxxx
+15 loop...
+event <Event(1-ActiveEvent {'gain': 1, 'state': 1})>
+event <Event(4-MouseMotion {'pos': (20, 368), 'rel': (20, 368), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (44, 368), 'rel': (24, 0), 'buttons': (0, 0, 0), 'window': None})>
+['MOUSE FOCUS', 'flash', 0]
+event <Event(4-MouseMotion {'pos': (64, 368), 'rel': (20, 0), 'buttons': (0, 0, 0), 'window': None})>
+['MOUSE FOCUS', 'flash', 0]
+event <Event(4-MouseMotion {'pos': (81, 368), 'rel': (17, 0), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (94, 368), 'rel': (13, 0), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (105, 368), 'rel': (11, 0), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (116, 368), 'rel': (11, 0), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (125, 368), 'rel': (9, 0), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (135, 370), 'rel': (10, 2), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (142, 371), 'rel': (7, 1), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (148, 371), 'rel': (6, 0), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (156, 373), 'rel': (8, 2), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (163, 374), 'rel': (7, 1), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (169, 375), 'rel': (6, 1), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (176, 377), 'rel': (7, 2), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (180, 378), 'rel': (4, 1), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (183, 379), 'rel': (3, 1), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (186, 380), 'rel': (3, 1), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (189, 381), 'rel': (3, 1), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (192, 382), 'rel': (3, 1), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (194, 383), 'rel': (2, 1), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (196, 385), 'rel': (2, 2), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (198, 387), 'rel': (2, 2), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (200, 388), 'rel': (2, 1), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (202, 390), 'rel': (2, 2), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (204, 392), 'rel': (2, 2), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (206, 393), 'rel': (2, 1), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (208, 395), 'rel': (2, 2), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (210, 397), 'rel': (2, 2), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (213, 399), 'rel': (3, 2), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (216, 400), 'rel': (3, 1), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (218, 401), 'rel': (2, 1), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (220, 402), 'rel': (2, 1), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (222, 403), 'rel': (2, 1), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (224, 404), 'rel': (2, 1), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (225, 405), 'rel': (1, 1), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (222, 404), 'rel': (-3, -1), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (220, 403), 'rel': (-2, -1), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (219, 402), 'rel': (-1, -1), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (217, 401), 'rel': (-2, -1), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (216, 399), 'rel': (-1, -2), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (214, 397), 'rel': (-2, -2), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (212, 395), 'rel': (-2, -2), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (210, 392), 'rel': (-2, -3), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (208, 386), 'rel': (-2, -6), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (202, 379), 'rel': (-6, -7), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (194, 370), 'rel': (-8, -9), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (184, 358), 'rel': (-10, -12), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (169, 347), 'rel': (-15, -11), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (147, 335), 'rel': (-22, -12), 'buttons': (0, 0, 0), 'window': None})>
+['MOUSE FOCUS', 'flash', 0]
+event <Event(4-MouseMotion {'pos': (119, 327), 'rel': (-28, -8), 'buttons': (0, 0, 0), 'window': None})>
+['MOUSE FOCUS', 'flash', 0]
+event <Event(4-MouseMotion {'pos': (87, 321), 'rel': (-32, -6), 'buttons': (0, 0, 0), 'window': None})>
+['MOUSE FOCUS', 'flash', 0]
+event <Event(4-MouseMotion {'pos': (51, 317), 'rel': (-36, -4), 'buttons': (0, 0, 0), 'window': None})>
+['MOUSE FOCUS', 'flash', 0]
+event <Event(4-MouseMotion {'pos': (11, 315), 'rel': (-40, -2), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(1-ActiveEvent {'gain': 0, 'state': 1})>
+event <Event(1-ActiveEvent {'gain': 0, 'state': 2})>
+event <Event(1-ActiveEvent {'gain': 1, 'state': 1})>
+event <Event(4-MouseMotion {'pos': (447, 120), 'rel': (436, -195), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (448, 121), 'rel': (1, 1), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (449, 123), 'rel': (1, 2), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (448, 124), 'rel': (-1, 1), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (447, 124), 'rel': (-1, 0), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(1-ActiveEvent {'gain': 0, 'state': 1})>
+event <Event(1-ActiveEvent {'gain': 1, 'state': 1})>
+event <Event(4-MouseMotion {'pos': (423, 120), 'rel': (-24, -4), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (423, 119), 'rel': (0, -1), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (427, 117), 'rel': (4, -2), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (433, 115), 'rel': (6, -2), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (440, 111), 'rel': (7, -4), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (448, 107), 'rel': (8, -4), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (457, 102), 'rel': (9, -5), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (466, 98), 'rel': (9, -4), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (477, 93), 'rel': (11, -5), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (486, 89), 'rel': (9, -4), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (493, 84), 'rel': (7, -5), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (498, 80), 'rel': (5, -4), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (502, 78), 'rel': (4, -2), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (506, 75), 'rel': (4, -3), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (510, 71), 'rel': (4, -4), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (515, 67), 'rel': (5, -4), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (520, 64), 'rel': (5, -3), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (525, 60), 'rel': (5, -4), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (530, 56), 'rel': (5, -4), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (536, 51), 'rel': (6, -5), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (542, 45), 'rel': (6, -6), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (547, 41), 'rel': (5, -4), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (552, 38), 'rel': (5, -3), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (556, 35), 'rel': (4, -3), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (558, 32), 'rel': (2, -3), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (560, 30), 'rel': (2, -2), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (561, 28), 'rel': (1, -2), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (562, 26), 'rel': (1, -2), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (563, 24), 'rel': (1, -2), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (564, 23), 'rel': (1, -1), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (565, 21), 'rel': (1, -2), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (565, 20), 'rel': (0, -1), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (565, 19), 'rel': (0, -1), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (566, 17), 'rel': (1, -2), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (567, 15), 'rel': (1, -2), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (568, 14), 'rel': (1, -1), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (569, 11), 'rel': (1, -3), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (570, 10), 'rel': (1, -1), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (571, 9), 'rel': (1, -1), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (572, 7), 'rel': (1, -2), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (573, 6), 'rel': (1, -1), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (574, 4), 'rel': (1, -2), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (575, 3), 'rel': (1, -1), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (577, 2), 'rel': (2, -1), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (578, 1), 'rel': (1, -1), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (579, 0), 'rel': (1, -1), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(1-ActiveEvent {'gain': 0, 'state': 1})>
+event <Event(1-ActiveEvent {'gain': 1, 'state': 1})>
+event <Event(4-MouseMotion {'pos': (560, 1), 'rel': (-19, 1), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (541, 7), 'rel': (-19, 6), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (519, 11), 'rel': (-22, 4), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (495, 17), 'rel': (-24, 6), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (467, 23), 'rel': (-28, 6), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (435, 29), 'rel': (-32, 6), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (399, 37), 'rel': (-36, 8), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (361, 45), 'rel': (-38, 8), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (319, 53), 'rel': (-42, 8), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (275, 61), 'rel': (-44, 8), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (231, 71), 'rel': (-44, 10), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (187, 81), 'rel': (-44, 10), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (147, 93), 'rel': (-40, 12), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (109, 103), 'rel': (-38, 10), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(4-MouseMotion {'pos': (75, 111), 'rel': (-34, 8), 'buttons': (0, 0, 0), 'window': None})>
+['MOUSE FOCUS', 'flash', 0]
+event <Event(4-MouseMotion {'pos': (41, 117), 'rel': (-34, 6), 'buttons': (0, 0, 0), 'window': None})>
+['MOUSE FOCUS', 'flash', 0]
+event <Event(4-MouseMotion {'pos': (9, 123), 'rel': (-32, 6), 'buttons': (0, 0, 0), 'window': None})>
+event <Event(1-ActiveEvent {'gain': 0, 'state': 1})>
+event <Event(1-ActiveEvent {'gain': 1, 'state': 2})>
+event <Event(12-Quit {})>

+ 11 - 1
tkgui/draw.py

@@ -587,20 +587,27 @@ def draw_setup(gui,xframe,data):
             r+=1
             continue
         v=0
+        ok = 0
         
         if comm == "SAVE\nSHOW":
             b = tk.Button(frame,bg="lightgrey", text=str(comm),width=4,height=2)
             myTip = Hovertip(b,'Strg + S ')
+            ok = 1
         elif comm == "LOAD\nSHOW" and pro_mode:
             b = tk.Button(frame,bg="lightgrey", text=str(comm),width=4,height=2)
+            ok = 1
         elif comm == "SAVE\nSHOW AS" and pro_mode:
             b = tk.Button(frame,bg="lightgrey", text=str(comm),width=6,height=2)
+            ok = 1
         elif comm == "SAVE &\nRESTART":
             b = tk.Button(frame,bg="lightgrey", text=str(comm),width=6,height=2)
+            ok = 1
         elif comm == "NEW\nSHOW" and pro_mode:
             b = tk.Button(frame,bg="lightgreen", text=str(comm),width=5,height=2)
+            ok = 1
         elif comm == "DRAW\nGUI" and pro_mode:
             b = tk.Button(frame,bg="lightgrey", text=str(comm),width=5,height=2)
+            ok = 1
         elif comm == "PRO\nMODE":
             bg="lightgrey"
             bg="yellow"
@@ -608,9 +615,11 @@ def draw_setup(gui,xframe,data):
                 bg="green"
                 comm = "EASY\nMODE"
             b = tk.Button(frame,bg=bg, text=str(comm),width=5,height=2)
+            ok = 1
 
         elif pro_mode:
             b = tk.Button(frame,bg="grey", text=str(comm),width=4,height=2)
+            ok = 1
         else: #empty
             b = tk.Button(frame,bg="grey", text="",width=4,height=2)
 
@@ -618,7 +627,8 @@ def draw_setup(gui,xframe,data):
             gui.setup_elem[comm] = b
             #gui.setup_elem.val[comm] = 0
 
-        b.bind("<Button>",Xevent(fix=0,elem=b,attr=comm,data=gui,mode="SETUP").cb)
+        if ok:
+            b.bind("<Button>",Xevent(fix=0,elem=b,attr=comm,data=gui,mode="SETUP").cb)
 
         if comm == "BASE:":
             b["text"] = "BASE:{}".format(prm["BASE"])

+ 244 - 0
tksdl/config.py

@@ -0,0 +1,244 @@
+#!/usr/bin/python3
+
+import time
+boot = time.time()
+
+import random
+import os
+import sys
+
+sys.path.insert(0,"/opt/LibreLight/Xdesk/")
+#print(sys.path)
+#print()
+
+import pathlib
+
+_file_path=pathlib.Path(__file__)
+print("file:",_file_path)
+
+import tool.movewin as movewin
+count = movewin.search_process(_file_path)
+
+CAPTION = 'LibreLight Start '
+
+if count >= 2:
+    search = CAPTION[:]
+    _ids = movewin.winfo(search)
+    for _id in _ids:
+        c3  = movewin.activate(_id)
+        os.system(c3)
+    sys.exit()
+
+# ===== GUI =========
+import pygame
+import pygame.gfxdraw
+import pygame.font
+
+pg = pygame
+main_size=(600,500)
+window = pygame.display.set_mode(main_size,pg.RESIZABLE,32)
+
+pg = pygame
+pygame.init()
+pygame.mixer.quit()
+clock = pygame.time.Clock()
+
+import tool.movewin as movewin
+import tool.sdl_elm as sdl_elm
+
+CAPTION += ':{}'.format(random.randint(100,999))
+
+import tool.git as git
+CAPTION += git.get_all()
+
+
+_id = movewin.winfo(CAPTION)
+c1 = movewin.movewin(_id,200,50)
+os.system(c1)
+c1 = movewin.activate(_id)
+os.system(c1)
+
+pg.display.set_caption(CAPTION)
+
+font0  = pygame.font.SysFont("freesans",10)
+font0b = pygame.font.SysFont("freesansbold",10)
+font   = pygame.font.SysFont("freemonobold",22)
+font10 = pygame.font.SysFont("freemonobold",10)
+font12 = pygame.font.SysFont("freemonobold",12)
+font15 = pygame.font.SysFont("freemonobold",15)
+font22 = pygame.font.SysFont("FreeSans",22)
+#font  = pygame.font.SysFont(None,30)
+
+fr = font.render("hallo" ,1, (200,0,255))
+
+start = time.time()
+table = []
+
+r = 80
+i = 1
+
+bx = sdl_elm.Button(window,pos=[20,r,80,40])
+bx.text = "FIX:{}\n<val>\nx".format(i+1)
+bx.bg_on = [255,0,255]
+bx.btn1.color_on = [255,0,155]
+bx.btn1.type = "flash"
+table.append(bx)
+r+=bx.get_rect()[3]
+
+i += 1
+bx = sdl_elm.Button(window,pos=[20,r,80,40])
+bx.text = "FIX:{}\n<val>\nx".format(i+1)
+table.append(bx)
+r+=bx.get_rect()[3]
+
+i += 1
+r+=bx.get_rect()[3]
+bx = sdl_elm.Button(window,pos=[20,r,80,40])
+bx.text = "FIX:{}\n<val>\nx".format(i+1)
+bx.font0 = pygame.font.SysFont("freesans",20)
+bx.btn4.val.set( 100)
+bx.fader = 0
+table.append(bx)
+r+=bx.get_rect()[3]
+
+i += 1
+bx = sdl_elm.Button(window,pos=[30,r,190,60])
+bx.text = "FIX:{}\n<val>\nx".format(i+1)
+bx.font0 = pygame.font.SysFont("freesans-bold",20)
+bx.btn1.type = "flash"
+table.append(bx)
+r+=bx.get_rect()[3]
+
+i += 1
+bx = sdl_elm.Button(window,pos=[20,r,60,20])
+bx.text = "FIX:{}\n<val>\nx".format(i+1)
+bx.font0 = pygame.font.SysFont("freesans",12)
+table.append(bx)
+
+mouse_down = 0
+mouse_pos1 = [0,0]
+mouse_pos2 = [0,0]
+mouse_grab = []
+print(int((time.time()-boot)*10),"loop...")
+fps_t = time.time()
+fps = 0
+fps_old = 0
+while 1:
+    fps +=1
+    t = time.time()
+    if t-fps_t >= 1:
+        #print("FPS:",fps)
+        fps_old = fps
+        fps=0
+        fps_t =t
+
+    pygame.display.flip()
+    pos = [160,10,70,60]
+    rgb = (0xdd,0xdd,0xdd,0)
+    rgb = (0xaa,0xaa,0xaa,0)
+    
+    window.fill((5,5,5))
+    pygame.draw.rect(window,(0,0,0),[0,0,main_size[0],main_size[1]])
+
+    fr = font22.render("FPS:"+str(fps_old)  ,1, (200,200,200))
+    window.blit(fr,(10,10 ))
+
+    fr = font22.render("DEMO / TEST - MODE ! "  ,1, (200,200,200))
+    window.blit(fr,(10,30 ))
+
+    pos = [160,110,70+80,20]
+    pygame.draw.rect(window,rgb,pos)
+
+    t=(time.time()-start)
+    if t > 15:
+        start = time.time()
+    b= 80-int(t*10)
+    pos = [160,110,70+(b),20]
+    rgb = (0x00,0xff,0xff,0)
+    pygame.draw.rect(window,rgb,pos)
+    rgb = (0x00,0x00,0x00,0)
+    fr = font22.render(str(round(t,1)) ,1, rgb) #(200,200,200))
+    window.blit(fr,pos[:2])
+    
+    pos = [160,200,80,20]
+    #fd = sdl_elm.Fader(window,pos)
+    #fd.draw()
+    
+    pos = [160,90,70+80,20]
+    pygame.draw.rect(window,rgb,pos)
+    b= int(t*10)
+    pos = [160,90,0+(b),20]
+    rgb = (0x00,0xff,0xff,0)
+    pygame.draw.rect(window,rgb,pos)
+    rgb = (0x00,0x00,0x00,0)
+    fr = font22.render(str(round(t,1)) ,1, rgb) #(200,200,200))
+    window.blit(fr,pos[:2])
+
+
+    rgb = (0xaa,0xaa,0xaa,0)
+    fr = font22.render(str(round(t,1)) ,1, rgb) #(200,200,200))
+    window.blit(fr,(500,500))
+
+    for t in table:
+        t.draw()
+
+
+    resize_changed = 0
+    for event in pygame.event.get(): 
+         
+        if "scancode" in event.dict:
+            if event.scancode == 9:
+                for t in table:
+                    t.btn2.clean()
+
+        print("event",event)
+        if event.type == pygame.QUIT:
+            pygame.quit()
+            sys.exit(0)
+        elif event.type == pygame.VIDEORESIZE:
+            scrsize = event.size
+            width   = event.w
+            hight   = event.h
+            resize_changed = True
+
+        for t in table:
+            t.event(event)
+
+        if "pos" in event.dict:
+            if "button" in event.dict:
+                if event.type == 5:#press
+                    mouse_down = 1
+                    mouse_pos1 = [event.pos[0],event.pos[1]]
+                if event.type == 6:#release
+                    mouse_down = 0
+
+                for btn in mouse_grab:
+                    btn.btn2.val.set(1)
+                mouse_grab = []
+            mouse_pos2 = [event.pos[0],event.pos[1]]
+
+    
+    if mouse_down:
+        d1 = mouse_pos1[0]-mouse_pos2[0]
+        d2 = mouse_pos1[1]-mouse_pos2[1] 
+        pix = 23
+        #print(d1,d2)
+        if ( d1 > pix or d1 < -pix)  or  ( d2 >pix or d2 < -pix):
+
+            sdl_elm.draw_mouse_box(window,mouse_pos1,mouse_pos2)
+            for t in table:
+                pos = t.get_rect()
+
+                mpos = [mouse_pos1[0],mouse_pos1[1],mouse_pos2[0],mouse_pos2[1]]
+
+                if sdl_elm.check_area2(pos,mpos):
+                    t._set_mouse_focus(1)
+                    mouse_grab.append(t)
+                else:
+                    t._set_mouse_focus(0)
+
+    if resize_changed:# = True
+        screen = pygame.display.set_mode(scrsize,pg.RESIZABLE)
+
+    clock.tick(30)
+

+ 3 - 19
tksdl/demo.py

@@ -32,25 +32,9 @@ import tool.sdl_elm as sdl_elm
 
 CAPTION = 'LibreLight Start '
 CAPTION += ':{}'.format(random.randint(100,999))
-#try:
-try:
-    _gcmd=r'git log -1 --format=%ci'
-    r = os.popen(_gcmd)
-    txt=r.read()
-    print(txt)
-    CAPTION += " " + txt.strip().split()[0]
-except Exception as e:
-    print(e)
-    CAPTION += " no-date" 
-
-try:
-    _gcmd='git rev-parse --short HEAD'
-    r=os.popen(_gcmd)
-    txt=r.read()
-    CAPTION += " v:"+txt.strip()
-except Exception as e:
-    print(e)
-    CAPTION += " no git" 
+
+import tool.git as git
+CAPTION += git.get_all()
 
 
 _id = movewin.winfo(CAPTION)

+ 6 - 5
tksdl/fix.py

@@ -359,11 +359,12 @@ import sys
 sys.path.insert(0,"tool")
 #import tool.movewin
 import movewin
-_id = movewin.winfo(CAPTION)
-c1 = movewin.movewin(_id,200,50)
-os.system(c1)
-c1 = movewin.activate(_id)
-os.system(c1)
+_ids = movewin.winfo(CAPTION)
+for _id in _ids:
+    c1 = movewin.movewin(_id,200,50)
+    os.system(c1)
+    c1 = movewin.activate(_id)
+    os.system(c1)
 #exit()
 
 def main():

+ 34 - 0
tool/git.py

@@ -0,0 +1,34 @@
+#/usr/bin/python3
+import os
+
+def get_date():
+    CAPTION =""
+    try:
+        _gcmd=r'git log -1 --format=%ci'
+        r = os.popen(_gcmd)
+        txt=r.read()
+        print(txt)
+        CAPTION += " " + txt.strip().split()[0]
+    except Exception as e:
+        print(e)
+        CAPTION += " no-date" 
+    return CAPTION
+
+def get_commit_id():
+    CAPTION = ""
+    try:
+        _gcmd='git rev-parse --short HEAD'
+        r=os.popen(_gcmd)
+        txt=r.read()
+        CAPTION += " v:"+txt.strip()
+    except Exception as e:
+        print(e)
+        CAPTION += " no git" 
+    return CAPTION
+
+
+def get_all():
+    out = ""
+    out += get_commit_id()
+    out += get_date()
+    return out

+ 34 - 11
tool/movewin.py

@@ -2,6 +2,7 @@
 import os
 import sys
 import time
+import psutil
 
 # python3 movewin.py window-title x y
 # python3 movewin.py COMMA 723 943
@@ -14,9 +15,9 @@ def winfo(name="WinfoWinName"):
 
     r = os.popen(cmd)
     lines = r.readlines()
-    _id = "xxxx"
+    _id = [] #"xxxx"
     if lines and lines[0]:
-        _id = lines[0].split()[0]
+        _id.append( lines[0].split()[0] )
     print("ID:",_id)
     for line in lines:
         line = line.strip()
@@ -39,6 +40,26 @@ def system(cmd):
     print(cmd)
     os.system(cmd)
 
+def search_process(_file_path):
+    print("search_process",_file_path)
+    pids = psutil.pids()
+    count = 0
+    for pid in pids:
+        p = psutil.Process(pid)
+        ps = p.cmdline()
+
+        if len(ps) < 2:
+            continue
+
+        if "python" not in ps[0]:
+            continue
+
+        #print(" ",[ps[1]])
+        if str(_file_path) == str(ps[1]):
+            print(ps)
+            count += 1
+    print("search_process",count)
+    return count
 
 if __name__ == "__main__":
     print("# python3 movewin.py window-title x y")
@@ -61,13 +82,15 @@ if __name__ == "__main__":
     try:
         b = sys.argv[3]
     except:pass
-    _id = winfo(search)
-    c1 = sizewin(_id,a,b)
-    c2 = movewin(_id,a,b)
-    c3 = activate(_id)
-    system(c1)
-    time.sleep(0.1)
-    system(c2)
-    time.sleep(0.1)
-    system(c3)
+
+    _ids = winfo(search)
+    for _id in _ids:
+        c1 = sizewin(_id,a,b)
+        c2 = movewin(_id,a,b)
+        c3 = activate(_id)
+        system(c1)
+        time.sleep(0.1)
+        system(c2)
+        time.sleep(0.1)
+        system(c3)