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