-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathx11_config.py
62 lines (49 loc) · 2.12 KB
/
x11_config.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
import os
import sys
import logging
logger = logging.getLogger('X11Config')
def configure_x11_environment():
"""Konfiguriert die X11-Umgebung für optimale Kompatibilität."""
if not sys.platform.startswith('linux'):
return
try:
# X11-spezifische Umgebungsvariablen
x11_config = {
'NO_AT_BRIDGE': '1', # Deaktiviert Accessibility Bridge
'XDG_SESSION_TYPE': 'x11',
'GDK_BACKEND': 'x11',
'QT_QPA_PLATFORM': 'xcb', # Für Qt-Kompatibilität
'DISPLAY': os.environ.get('DISPLAY', ':0'), # Sicherstellen dass DISPLAY gesetzt ist
}
# Setze Umgebungsvariablen
for key, value in x11_config.items():
os.environ[key] = value
# Überprüfe X11-Verbindung
import subprocess
try:
subprocess.run(['xset', 'q'], capture_output=True, check=True)
except subprocess.CalledProcessError:
logger.warning("X11-Server möglicherweise nicht verfügbar")
logger.info("X11-Umgebung erfolgreich konfiguriert")
except Exception as e:
logger.error(f"Fehler bei X11-Konfiguration: {e}")
def check_display_server():
"""Überprüft und gibt Informationen über den Display-Server zurück."""
display_server = "unbekannt"
try:
if os.environ.get('WAYLAND_DISPLAY'):
display_server = "Wayland"
elif os.environ.get('DISPLAY'):
display_server = "X11"
logger.info(f"Erkannter Display-Server: {display_server}")
# Überprüfe verfügbare Bildschirmauflösungen
if sys.platform.startswith('linux'):
try:
import subprocess
xrandr = subprocess.check_output(['xrandr']).decode()
logger.info(f"Verfügbare Auflösungen: {xrandr.split('n')[0]}")
except Exception as e:
logger.warning(f"Konnte Bildschirmauflösungen nicht abrufen: {e}")
except Exception as e:
logger.error(f"Fehler bei Display-Server-Erkennung: {e}")
return display_server