From 124aeb870d8cae04038192f76acec85f9582ec7b Mon Sep 17 00:00:00 2001 From: Tian jianyong <11429339@qq.com> Date: Sun, 28 Dec 2025 19:11:29 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=85=89=E6=A0=87=E9=9A=90?= =?UTF-8?q?=E8=97=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- face_rec.py | 30 ++++++++++++++++++++++-------- 1 file changed, 22 insertions(+), 8 deletions(-) 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}")