diff --git a/face_rec.py b/face_rec.py index 8d5cf19..7879a6b 100644 --- a/face_rec.py +++ b/face_rec.py @@ -18,19 +18,33 @@ import queue from compreface import CompreFace from compreface.service import RecognitionService, DetectionService -# 隐藏鼠标光标(Linux/GDK) +# 隐藏鼠标光标(纯 X11) def hide_cursor(): """隐藏鼠标光标""" try: - from gi.repository import Gdk + import os + if not os.environ.get('DISPLAY'): + return + + import ctypes + from ctypes import cdll, c_char_p, c_int, c_ulong - display = Gdk.Display.get_default() - cursor = Gdk.Cursor.new_from_name(display, "none") - screen = display.get_default_screen() - window = screen.get_root_window() - window.set_cursor(cursor) + libX11 = cdll.LoadLibrary('libX11.so.6') + libXfixes = cdll.LoadLibrary('libXfixes.so.3') - print("Cursor hidden via GDK") + # 打开显示 + display = libX11.XOpenDisplay(None) + if not display: + return + + root = libX11.XDefaultRootWindow(display) + + # 使用 XFixesHideCursor 隐藏光标 + libXfixes.XFixesHideCursor(display, root) + libX11.XFlush(display) + libX11.XCloseDisplay(display) + + print("Cursor hidden via XFixes") except Exception as e: print(f"Hide cursor error: {e}")