← Back to team overview

desktop-packages team mailing list archive

[Bug 1408333] [NEW] ibus doesn't restore last keyboard layout selected after reboot

 

Public bug reported:

Hello,

ibus isn't restoring the last keyboard layout selected when is used in a
stripped down combination of xfce and gnome-settings-daemon. I could isolate
the issue to a minimal Ubuntu installation and detect how ibus behaves
different depending if /org/gnome/desktop/input-source/sources is modified by
the user or not.

Steps to Reproduce:

- Install a fresh Ubuntu Server 14.04, in the software selection step just
  select "OpenSSH server"
- Log in and run the following script to prepare the environment:

#!/bin/bash
apt-get update
apt-get -y dist-upgrade
apt-get -y install opensc libpcsclite1 libccid libpam-pkcs11 \
  pcscd libpkcs11-helper1 rdate usb-modeswitch libnotify-bin \
  apparmor apparmor-utils apparmor-profiles lvm2 cryptsetup acpid \
  virt-what lshw ethtool alsa-utils python-netifaces \
  python-simplejson python-netaddr python-m2crypto lsof \
  linux-firmware-nonfree linux-firmware linux-image-generic \
  python-libtorrent libnspr4-0d libnss3-1d libnss3-tools liblzo2-2 \
  openssl-blacklist libqdbm14 pkg-config parted psmisc hal-info \
  xserver-xorg x11-xserver-utils xinit xfonts-75dpi xfonts-100dpi \
  xterm fbpanel xfwm4 xfdesktop4 xfce4-session xfce4-settings \
  gnome-control-center plymouth-theme-ubuntu-logo ubuntu-artwork \
  lightdm xscreensaver zenity stress curl numlockx \
  gnome-settings-daemon firefox gtk2-engines-pixbuf rng-tools \
  network-manager-gnome wireless-tools wireless-crda debconf-utils \
  python-pexpect python-glade2 python-ldap libglib2.0-bin dconf-tools

FIRST_USER=$(awk -F: ' {if ($3 == "1000") {print $1}} ' /etc/passwd)

cat >/usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf<<EOF!
[SeatDefaults]
user-session=xfce
EOF!

cat >/etc/lightdm/lightdm.conf<<EOF!
[SeatDefaults]
autologin-user=${FIRST_USER}
EOF!
  
sed -i '/start xfce4-session normally/a . ~/.autostart.sh' /etc/xdg/xfce4/xinitrc
  
cat >/home/${FIRST_USER}/.autostart.sh <<EOF!
fbpanel &
/usr/bin/ibus-daemon --daemonize --xim
gnome-settings-daemon &
nm-applet &
gnome-sound-applet &
EOF!

chown ${FIRST_USER} /home/${FIRST_USER}/.autostart.sh

sed -i 's/volume/space/' /usr/share/fbpanel/default

rm -rf /etc/xdg/xfce4/xfconf/xfce-perchannel-xml
tar xf xfce-perchannel-xml.tar.gz -C /etc/xdg/xfce4/xfconf/

reboot

- When you are already in XFCE, add a new keyboard layout (for example Spanish)
  - Run ibus-setup
  - Go to 'Input Method' tab, check 'Customize active input methods'
  - From the menu 'Select an input method' select 'Spanish'
- Switch the layout added
  Click in the ibus systray icon and select 'Spanish' from the menu
- Check the change was applied running 'setxkbmap -query', example output:

    rules:      evdev
    model:      pc105
    layout:     es

- Reboot the machine

Expected results:

- The Spanish keyboard layout is set

Actual results:

- The system's default keyboard layout is set.
    $ setxkbmap -query
    rules:      evdev
    model:      pc105
    layout:     us

Workaround:

- This problem goes away if the following command is run:

  gsettings set org.gnome.desktop.input-sources sources "[('ibus',
'us:intl:eng')]"

- Even if the layout selected before reboot is a non US the layout is
restored properly.


This problem is present in Trusty and Vivid. Details of the environments where this was tested:

Description:	Ubuntu 14.04.1 LTS
Release:	14.04

ibus:
  Installed: 1.5.5-1ubuntu3
  Candidate: 1.5.5-1ubuntu3
  Version table:
 *** 1.5.5-1ubuntu3 0
        500 http://cl.archive.ubuntu.com/ubuntu/ trusty/main amd64 Packages
        100 /var/lib/dpkg/status


Description:	Ubuntu Vivid Vervet (development branch)
Release:	15.04

ibus:
  Installed: 1.5.9-1ubuntu1
  Candidate: 1.5.9-1ubuntu1
  Version table:
 *** 1.5.9-1ubuntu1 0
        500 http://us.archive.ubuntu.com/ubuntu/ vivid/main amd64 Packages
        100 /var/lib/dpkg/status

** Affects: ibus (Ubuntu)
     Importance: Undecided
         Status: New


** Tags: cts

** Attachment added: "xfce-perchannel-xml.tar.gz"
   https://bugs.launchpad.net/bugs/1408333/+attachment/4293587/+files/xfce-perchannel-xml.tar.gz

-- 
You received this bug notification because you are a member of Desktop
Packages, which is subscribed to ibus in Ubuntu.
https://bugs.launchpad.net/bugs/1408333

Title:
  ibus doesn't restore last keyboard layout selected after reboot

Status in ibus package in Ubuntu:
  New

Bug description:
  Hello,

  ibus isn't restoring the last keyboard layout selected when is used in a
  stripped down combination of xfce and gnome-settings-daemon. I could isolate
  the issue to a minimal Ubuntu installation and detect how ibus behaves
  different depending if /org/gnome/desktop/input-source/sources is modified by
  the user or not.

  Steps to Reproduce:

  - Install a fresh Ubuntu Server 14.04, in the software selection step just
    select "OpenSSH server"
  - Log in and run the following script to prepare the environment:

  #!/bin/bash
  apt-get update
  apt-get -y dist-upgrade
  apt-get -y install opensc libpcsclite1 libccid libpam-pkcs11 \
    pcscd libpkcs11-helper1 rdate usb-modeswitch libnotify-bin \
    apparmor apparmor-utils apparmor-profiles lvm2 cryptsetup acpid \
    virt-what lshw ethtool alsa-utils python-netifaces \
    python-simplejson python-netaddr python-m2crypto lsof \
    linux-firmware-nonfree linux-firmware linux-image-generic \
    python-libtorrent libnspr4-0d libnss3-1d libnss3-tools liblzo2-2 \
    openssl-blacklist libqdbm14 pkg-config parted psmisc hal-info \
    xserver-xorg x11-xserver-utils xinit xfonts-75dpi xfonts-100dpi \
    xterm fbpanel xfwm4 xfdesktop4 xfce4-session xfce4-settings \
    gnome-control-center plymouth-theme-ubuntu-logo ubuntu-artwork \
    lightdm xscreensaver zenity stress curl numlockx \
    gnome-settings-daemon firefox gtk2-engines-pixbuf rng-tools \
    network-manager-gnome wireless-tools wireless-crda debconf-utils \
    python-pexpect python-glade2 python-ldap libglib2.0-bin dconf-tools

  FIRST_USER=$(awk -F: ' {if ($3 == "1000") {print $1}} ' /etc/passwd)

  cat >/usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf<<EOF!
  [SeatDefaults]
  user-session=xfce
  EOF!

  cat >/etc/lightdm/lightdm.conf<<EOF!
  [SeatDefaults]
  autologin-user=${FIRST_USER}
  EOF!
    
  sed -i '/start xfce4-session normally/a . ~/.autostart.sh' /etc/xdg/xfce4/xinitrc
    
  cat >/home/${FIRST_USER}/.autostart.sh <<EOF!
  fbpanel &
  /usr/bin/ibus-daemon --daemonize --xim
  gnome-settings-daemon &
  nm-applet &
  gnome-sound-applet &
  EOF!

  chown ${FIRST_USER} /home/${FIRST_USER}/.autostart.sh

  sed -i 's/volume/space/' /usr/share/fbpanel/default

  rm -rf /etc/xdg/xfce4/xfconf/xfce-perchannel-xml
  tar xf xfce-perchannel-xml.tar.gz -C /etc/xdg/xfce4/xfconf/

  reboot

  - When you are already in XFCE, add a new keyboard layout (for example Spanish)
    - Run ibus-setup
    - Go to 'Input Method' tab, check 'Customize active input methods'
    - From the menu 'Select an input method' select 'Spanish'
  - Switch the layout added
    Click in the ibus systray icon and select 'Spanish' from the menu
  - Check the change was applied running 'setxkbmap -query', example output:

      rules:      evdev
      model:      pc105
      layout:     es

  - Reboot the machine

  Expected results:

  - The Spanish keyboard layout is set

  Actual results:

  - The system's default keyboard layout is set.
      $ setxkbmap -query
      rules:      evdev
      model:      pc105
      layout:     us

  Workaround:

  - This problem goes away if the following command is run:

    gsettings set org.gnome.desktop.input-sources sources "[('ibus',
  'us:intl:eng')]"

  - Even if the layout selected before reboot is a non US the layout is
  restored properly.

  
  This problem is present in Trusty and Vivid. Details of the environments where this was tested:

  Description:	Ubuntu 14.04.1 LTS
  Release:	14.04

  ibus:
    Installed: 1.5.5-1ubuntu3
    Candidate: 1.5.5-1ubuntu3
    Version table:
   *** 1.5.5-1ubuntu3 0
          500 http://cl.archive.ubuntu.com/ubuntu/ trusty/main amd64 Packages
          100 /var/lib/dpkg/status

  
  Description:	Ubuntu Vivid Vervet (development branch)
  Release:	15.04

  ibus:
    Installed: 1.5.9-1ubuntu1
    Candidate: 1.5.9-1ubuntu1
    Version table:
   *** 1.5.9-1ubuntu1 0
          500 http://us.archive.ubuntu.com/ubuntu/ vivid/main amd64 Packages
          100 /var/lib/dpkg/status

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/ibus/+bug/1408333/+subscriptions


Follow ups

References