mirror of
https://github.com/lutris/lutris
synced 2024-10-04 14:59:37 +00:00
Optimize code and enable desktop effects by default
This commit is contained in:
parent
2f24a87a89
commit
6dc34a53d7
|
@ -1009,7 +1009,7 @@ Sysoptions
|
|||
|
||||
``disable_monitoring`` (example: ``true``)
|
||||
|
||||
``disable_compositor`` (example: ``false``)
|
||||
``disable_compositor`` (example: ``true``)
|
||||
|
||||
``reset_pulse`` (example: ``true``)
|
||||
|
||||
|
|
|
@ -112,6 +112,24 @@ class Game(object):
|
|||
else:
|
||||
self.runner = runner_class(self.config)
|
||||
|
||||
def desktop_effects(self, enable):
|
||||
if enable:
|
||||
system.execute(self.start_compositor, shell=True)
|
||||
else:
|
||||
if os.environ.get('DESKTOP_SESSION') == "plasma":
|
||||
stop_compositor = "qdbus org.kde.KWin /Compositor org.kde.kwin.Compositing.suspend"
|
||||
self.start_compositor = "qdbus org.kde.KWin /Compositor org.kde.kwin.Compositing.resume"
|
||||
elif os.environ.get('DESKTOP_SESSION') == "mate" and system.execute("gsettings get org.mate.Marco.general compositing-manager", shell=True) == 'true':
|
||||
stop_compositor = "gsettings set org.mate.Marco.general compositing-manager false"
|
||||
self.start_compositor = "gsettings set org.mate.Marco.general compositing-manager true"
|
||||
elif os.environ.get('DESKTOP_SESSION') == "xfce" and system.execute("xfconf-query --channel=xfwm4 --property=/general/use_compositing", shell=True) == 'true':
|
||||
stop_compositor = "xfconf-query --channel=xfwm4 --property=/general/use_compositing --set=false"
|
||||
self.start_compositor = "xfconf-query --channel=xfwm4 --property=/general/use_compositing --set=true"
|
||||
else:
|
||||
self.compositor_disabled = False;
|
||||
if self.compositor_disabled:
|
||||
system.execute(stop_compositor, shell=True)
|
||||
|
||||
def remove(self, from_library=False, from_disk=False):
|
||||
if from_disk and self.runner:
|
||||
logger.debug("Removing game %s from disk" % self.id)
|
||||
|
@ -323,19 +341,7 @@ class Game(object):
|
|||
process_watch = not monitoring_disabled
|
||||
|
||||
if self.runner.system_config.get('disable_compositor'):
|
||||
if os.environ.get('DESKTOP_SESSION') == "plasma":
|
||||
stop_compositor = "qdbus org.kde.KWin /Compositor org.kde.kwin.Compositing.suspend"
|
||||
self.start_compositor = "qdbus org.kde.KWin /Compositor org.kde.kwin.Compositing.resume"
|
||||
elif os.environ.get('DESKTOP_SESSION') == "mate" and subprocess.Popen("gsettings get org.mate.Marco.general compositing-manager", shell=True, stdout=subprocess.PIPE,).communicate()[0] == b'true\n':
|
||||
stop_compositor = "gsettings set org.mate.Marco.general compositing-manager false"
|
||||
self.start_compositor = "gsettings set org.mate.Marco.general compositing-manager true"
|
||||
elif os.environ.get('DESKTOP_SESSION') == "xfce" and subprocess.Popen("xfconf-query --channel=xfwm4 --property=/general/use_compositing", shell=True, stdout=subprocess.PIPE,).communicate()[0] == b'true\n':
|
||||
stop_compositor = "xfconf-query --channel=xfwm4 --property=/general/use_compositing --set=false"
|
||||
self.start_compositor = "xfconf-query --channel=xfwm4 --property=/general/use_compositing --set=true"
|
||||
else:
|
||||
self.compositor_disabled = False;
|
||||
if self.compositor_disabled:
|
||||
subprocess.Popen(stop_compositor, shell=True)
|
||||
self.desktop_effects(False)
|
||||
|
||||
self.game_thread = LutrisThread(launch_arguments,
|
||||
runner=self.runner,
|
||||
|
@ -421,7 +427,7 @@ class Game(object):
|
|||
display.change_resolution(self.original_outputs)
|
||||
|
||||
if self.compositor_disabled:
|
||||
subprocess.Popen(self.start_compositor, shell=True)
|
||||
self.desktop_effects(True)
|
||||
|
||||
if self.runner.system_config.get('use_us_layout'):
|
||||
subprocess.Popen(['setxkbmap'], env=os.environ).communicate()
|
||||
|
|
|
@ -209,7 +209,7 @@ system_options = [
|
|||
'option': 'disable_compositor',
|
||||
'label': "Disable desktop effects",
|
||||
'type': 'bool',
|
||||
'default': True,
|
||||
'default': False,
|
||||
'advanced': True,
|
||||
'help': "Disable desktop effects while game is running, reducing stuttering and increasing performance"
|
||||
},
|
||||
|
|
|
@ -46,7 +46,7 @@ INSTALLED_TERMINALS = []
|
|||
IS_64BIT = sys.maxsize > 2**32
|
||||
|
||||
|
||||
def execute(command, env=None, cwd=None, log_errors=False, quiet=False):
|
||||
def execute(command, env=None, cwd=None, log_errors=False, quiet=False, shell=False):
|
||||
"""
|
||||
Execute a system command and return its results.
|
||||
|
||||
|
@ -91,7 +91,7 @@ def execute(command, env=None, cwd=None, log_errors=False, quiet=False):
|
|||
try:
|
||||
stdout, stderr = subprocess.Popen(
|
||||
command,
|
||||
shell=False,
|
||||
shell=shell,
|
||||
stdout=subprocess.PIPE,
|
||||
stderr=stderr_handler,
|
||||
env=existing_env, cwd=cwd
|
||||
|
|
Loading…
Reference in a new issue