Blob Blame History Raw
diff --git a/data/imsettings-functions.in b/data/imsettings-functions.in
index fead468..601e2d0 100644
--- a/data/imsettings-functions.in
+++ b/data/imsettings-functions.in
@@ -289,5 +289,7 @@ function print_info() {
     log "XMODIFIERS: $XMODIFIERS"
     log "IMSETTINGS_MODULE: $IMSETTINGS_MODULE"
     log "IMSETTINGS_INTEGRATE_DESKTOP: $IMSETTINGS_INTEGRATE_DESKTOP"
+    log "IMSETTINGS_DISABLE_SYS_XINPUTRC: $IMSETTINGS_DISABLE_SYS_XINPUTRC"
+    log "IMSETTINGS_DISABLE_USER_XINPUTRC: $IMSETTINGS_DISABLE_USER_XINPUTRC"
     log ""
 }
diff --git a/data/imsettings-target-checker.sh.in b/data/imsettings-target-checker.sh.in
index 9f734f6..6441c1f 100755
--- a/data/imsettings-target-checker.sh.in
+++ b/data/imsettings-target-checker.sh.in
@@ -77,20 +77,9 @@ gsettings_get_bool() {
 
 case $(get_desktop|tr '[A-Z]' '[a-z]') in
     *gnome|gnome*)
-	dbus_send 'org.gnome.Shell' '/' 'org.freedesktop.DBus.Peer.Ping'
-	if [ $? = 0 ]; then
-	    if gsettings_get_bool org.gnome.settings-daemon.plugins.keyboard active; then
-		log "org.gnome.settings-daemon.plugins.keyboard.active is true. imsettings is going to be disabled."
-		exit 0
-	    elif [ -f /etc/xdg/autostart/org.gnome.SettingsDaemon.Keyboard.desktop ]; then
-		log "org.gnome.SettingsDaemon.Keyboard.desktop exists. imsettings is going to be disabled."
-		exit 0
-	    else
-		exit 1
-	    fi
-	else
-	    exit 1
-	fi
+        # stop supporting GNOME anyway
+        log "** GNOME isn't supported at all"
+        exit 0
 	;;
     cinnamon*)
 	dbus_send 'org.Cinnamon' '/' 'org.freedesktop.DBus.Peer.Ping'
diff --git a/data/xinput.sh.in.in b/data/xinput.sh.in.in
index 397fc15..da781c7 100755
--- a/data/xinput.sh.in.in
+++ b/data/xinput.sh.in.in
@@ -13,7 +13,8 @@
 
 . @libexecdir[@]/imsettings-functions
 
-CONFIGDIR="${XDG_CONFIG_HOME:-$HOME/.config}/imsettings"
+XCONFIGDIR="${XDG_CONFIG_HOME:-$HOME/.config}"
+CONFIGDIR="$XCONFIGDIR/imsettings"
 USER_XINPUTRC="$CONFIGDIR/xinputrc"
 SYS_XINPUTRC="@XINPUTRC_PATH@/xinputrc"
 READ_XINPUTRC="N/A"
@@ -43,6 +44,11 @@ unset AUXILIARY_PROGRAM AUXILIARY_ARGS GTK_IM_MODULE ICON IMSETTINGS_IGNORE_ME L
 
 if ! is_desktop_supported; then
     IMSETTINGS_DISABLE_SYS_XINPUTRC=yes
+    if [ "x$(get_desktop)" = "xGNOME" ]; then
+        # We don't support GNOME but GNOME Xorg seems still needing QT_IM_MODULE and XMODIFIERS
+        GNOME_IMSETTINGS_DISABLE_SYS_XINPUTRC=yes
+        IMSETTINGS_DISABLE_SYS_XINPUTRC=no
+    fi
 fi
 
 # migrate old configuration file
@@ -50,6 +56,9 @@ fi
 [ -f "$HOME/.xinputrc" ] && mv $HOME/.xinputrc $CONFIGDIR/xinputrc
 [ -f "$HOME/.xinputrc.bak" ] && mv $HOME/.xinputrc.bak $CONFIGDIR/xinputrc.bak
 
+# remove systemd environment files
+rm -f $XCONFIGDIR/environment.d/imsettings*.conf || :
+
 if [ -r "$USER_XINPUTRC" -a "x$IMSETTINGS_DISABLE_USER_XINPUTRC" = "xno" ]; then
     source "$USER_XINPUTRC"
     READ_XINPUTRC=$USER_XINPUTRC
@@ -71,6 +80,11 @@ IMSETTINGS_MODULE=${SHORT_DESC:-${XIM}}
 [ -z "$IMSETTINGS_MODULE" ] && IMSETTINGS_MODULE="none"
 export IMSETTINGS_MODULE
 
+if [ "x$GNOME_IMSETTINGS_DISABLE_SYS_XINPUTRC" = "xyes" ]; then
+    unset GTK_IM_MODULE
+    IMSETTINGS_DISABLE_SYS_XINPUTRC=yes
+fi
+
 ##
 log_init
 setup_gtk_immodule