Fixes startup on Wayland because Keybinder seems to be X11 only
This commit is contained in:
parent
7fac78f24d
commit
85c0518643
|
@ -337,3 +337,10 @@ def spawn_new_terminator(cwd, args):
|
||||||
|
|
||||||
dbg("Spawning: %s" % cmd)
|
dbg("Spawning: %s" % cmd)
|
||||||
subprocess.Popen([cmd]+args)
|
subprocess.Popen([cmd]+args)
|
||||||
|
|
||||||
|
def display_manager():
|
||||||
|
"""Try to detect which display manager we run under"""
|
||||||
|
if os.environ.get('WAYLAND_DISPLAY'):
|
||||||
|
return 'WAYLAND'
|
||||||
|
# Fallback assumption of X11
|
||||||
|
return 'X11'
|
||||||
|
|
|
@ -9,9 +9,8 @@ import uuid
|
||||||
import gi
|
import gi
|
||||||
from gi.repository import GObject
|
from gi.repository import GObject
|
||||||
from gi.repository import Gtk, Gdk
|
from gi.repository import Gtk, Gdk
|
||||||
from gi.repository import Keybinder
|
|
||||||
|
|
||||||
from util import dbg, err, make_uuid
|
from util import dbg, err, make_uuid, display_manager
|
||||||
import util
|
import util
|
||||||
from translation import _
|
from translation import _
|
||||||
from version import APP_NAME
|
from version import APP_NAME
|
||||||
|
@ -19,8 +18,11 @@ from container import Container
|
||||||
from factory import Factory
|
from factory import Factory
|
||||||
from terminator import Terminator
|
from terminator import Terminator
|
||||||
|
|
||||||
|
if display_manager() == 'X11':
|
||||||
try:
|
try:
|
||||||
|
gi.require_version('Keybinder', '3.0')
|
||||||
from gi.repository import Keybinder
|
from gi.repository import Keybinder
|
||||||
|
Keybinder.init()
|
||||||
except ImportError:
|
except ImportError:
|
||||||
err('Warning: python-keybinder is not installed. This means the \
|
err('Warning: python-keybinder is not installed. This means the \
|
||||||
hide_window shortcut will be unavailable')
|
hide_window shortcut will be unavailable')
|
||||||
|
@ -120,6 +122,7 @@ class Window(Container, Gtk.Window):
|
||||||
# Attempt to grab a global hotkey for hiding the window.
|
# Attempt to grab a global hotkey for hiding the window.
|
||||||
# If we fail, we'll never hide the window, iconifying instead.
|
# If we fail, we'll never hide the window, iconifying instead.
|
||||||
if self.config['keybindings']['hide_window'] != None:
|
if self.config['keybindings']['hide_window'] != None:
|
||||||
|
if display_manager() == 'X11':
|
||||||
try:
|
try:
|
||||||
self.hidebound = Keybinder.bind(
|
self.hidebound = Keybinder.bind(
|
||||||
self.config['keybindings']['hide_window'],
|
self.config['keybindings']['hide_window'],
|
||||||
|
|
Loading…
Reference in New Issue