summaryrefslogtreecommitdiff
path: root/monitor_menu
diff options
context:
space:
mode:
authorOlivier Gayot <olivier.gayot@sigexec.com>2023-12-23 12:27:07 +0100
committerOlivier Gayot <olivier.gayot@sigexec.com>2023-12-23 12:27:07 +0100
commit54f5d1ab635718d8fc3f8d05f921ede7924dbc22 (patch)
treefdacfd20e44c90c076839b561cb20d180a649a64 /monitor_menu
parent6980b2732971f7c12df7f65ba3692f6a49418562 (diff)
Use a different mechanism to check if wayland is supportedHEADmain
Signed-off-by: Olivier Gayot <olivier.gayot@sigexec.com>
Diffstat (limited to 'monitor_menu')
-rw-r--r--monitor_menu/__main__.py18
1 files changed, 12 insertions, 6 deletions
diff --git a/monitor_menu/__main__.py b/monitor_menu/__main__.py
index 5670954..b1811f6 100644
--- a/monitor_menu/__main__.py
+++ b/monitor_menu/__main__.py
@@ -5,6 +5,7 @@ import dataclasses
import enum
import json
import logging
+import os
import pathlib
import subprocess
from typing import Any
@@ -71,18 +72,23 @@ class Profile:
return cls(**kwargs)
def apply(self, graphical_server: GraphicalServer | None):
+ if graphical_server is None:
+ try:
+ graphical_server = GraphicalServer(os.environ["XDG_SESSION_TYPE"])
+ except KeyError:
+ if "WAYLAND_DISPLAY" in os.environ:
+ graphical_server = GraphicalServer.WAYLAND
+ elif "DISPLAY" in os.environ:
+ graphical_server = GraphicalServer.XORG
+
match graphical_server:
case GraphicalServer.XORG:
self.apply_xorg()
case GraphicalServer.WAYLAND:
self.apply_wayland()
case None:
- try:
- subprocess.run(["xrandr"], check=True, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
- except (subprocess.CalledProcessError, FileNotFoundError):
- self.apply_wayland()
- else:
- self.apply_xorg()
+ log.debug("Cannot determine graphical server type")
+ raise Exception
def apply_xorg(self):
# We build the command line starting from just "xrandr" and adding