diff --git a/debian/changelog b/debian/changelog index c56dee9..d4bde11 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +hidpi-daemon (18.04.7~~alpha) bionic; urgency=low + + * Daily WIP for 18.04.7 + * Fixed running in hybrid graphics mode + + -- Tim Crawford Fri, 02 Sep 2022 10:26:20 -0600 + hidpi-daemon (18.04.6) bionic; urgency=low * Update hidpidaemon2.py file to set gi require version diff --git a/hidpidaemon/__init__.py b/hidpidaemon/__init__.py index 8089275..b10008e 100644 --- a/hidpidaemon/__init__.py +++ b/hidpidaemon/__init__.py @@ -25,7 +25,7 @@ import logging -__version__ = '18.04.6' +__version__ = '18.04.7' datadir = path.join(path.dirname(path.abspath(__file__)), 'data') log = logging.getLogger(__name__) diff --git a/hidpidaemon/hidpidaemon2.py b/hidpidaemon/hidpidaemon2.py index 87c482c..2c38dbe 100644 --- a/hidpidaemon/hidpidaemon2.py +++ b/hidpidaemon/hidpidaemon2.py @@ -191,14 +191,24 @@ def init_xlib(self): self.displays_xml = self.get_displays_xml() - #Test for nvidia proprietary driver and nvidia-settings + # Check which GPU is used for rendering the desktop def get_gpu_vendor(self): if self.model in INTEL: return 'intel' - modules = open('/proc/modules', 'r') - if 'nvidia ' in modules.read() and which('nvidia-settings') is not None: - return 'nvidia' - else: + + # Check for system76-power/gpu-manager written file first + try: + with open('/etc/prime-discrete') as mode: + if mode.read().strip() == 'on': + return 'nvidia' + return 'intel' + except: + pass + + # Fall back to checking loaded modules + with open('/proc/modules', 'r') as modules: + if 'nvidia ' in modules.read() and which('nvidia-settings') is not None: + return 'nvidia' return 'intel' def add_output_mode(self): @@ -1046,10 +1056,9 @@ def get_internal_lid_state(self): return True # No lids found: System may not be a laptop. else: lid_file_path = os.path.join('/', 'proc', 'acpi', 'button', 'lid', lid_dirs[0], 'state') - lid_file = open(lid_file_path, 'r') - if 'open' in lid_file.read(): - return True - else: + with open(lid_file_path, 'r') as lid_file: + if 'open' in lid_file.read(): + return True return False except: return True