Bug 1771836 - ibus not responsive on wayland with sway as windowmanager
Summary: ibus not responsive on wayland with sway as windowmanager
Keywords:
Status: NEW
Alias: None
Product: Fedora
Classification: Fedora
Component: ibus
Version: 35
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: fujiwara
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2019-11-13 06:10 UTC by Christian Horn
Modified: 2021-11-09 10:05 UTC (History)
4 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed:
Type: Bug


Attachments (Terms of Use)
strace when running ibus-wayland from a terminal in sway (69.16 KB, text/plain)
2019-11-13 06:10 UTC, Christian Horn
no flags Details

Description Christian Horn 2019-11-13 06:10:41 UTC
Created attachment 1635626 [details]
strace when running ibus-wayland from a terminal in sway

Description of problem:
ibus not responsive on wayland with sway as windowmanager

Version-Release number of selected component (if applicable):
ibus-wayland-1.5.21-3.fc31.x86_64
ibus-1.5.21-3.fc31.x86_64
ibus-mozc-2.23.2815.102-8.fc31.x86_64

How reproducible:
always

Steps to Reproduce:
1. install Fedora31, select lxde-desktop-environment to get wayland installed
2. dnf -y install sway ibus-wayland ibus-mozc
3. useradd -m chris; passwd chris
4. Use this in the users .bashrc :
   [[ $(pgrep ibus-daemon) ]] || ibus-daemon --xim --daemonize -r
   export IMSETTINGS_INTEGRATE_DESKTOP=yes
   export IMSETTINGS_MODULE=ibus
   export QT_IM_MODULE=ibus
   export XMODIFIERS=@im=ibus
   export GTK_IM_MODULE=ibus
5. Boot system into multi-usermode, for example in setting it as default target
   and rebooting
6. login as user chris
7. run sway in executing 'sway'
8. get a terminal in pressing $mod + return (by default, $mod is the windows-key)
9. verify ibus-daemon is running: 'ps ax|grep ibus'
10. try to run ibuswayland: '/usr/libexec/ibus-wayland'

Actual results:
No input_method global

Expected results:
ibus-wayland should run, and I should be able to switch input method to mozc as configured with 'ibus-setup'.

Additional info:

- Might very well be an issue on my side.. but after trying this now for a week, taking that to bugzilla.

- fcitx4 from Fedora works under sway.

- When setting up ibus as above, I was never able to run ibus-wayland, and ibus did never react to attempts to switch the input method with shift+space or ctrl+space, I tried these combinations after setting them up with ibus-setup

- Instead of running ibus-daemon from user .bashrc, I did run it from sway directly.  Steps:
mkdir ~/.config/sway
cp /etc/sway/config ~/.config/sway/config
echo 'exec /usr/bin/ibus-daemon --xim --daemonize' >>~/.config/sway/config
The result is the same though.

- When running ibus-daemon non-daemonizing from a terminal, I get this:
[chris@космос ~]$ ibus-daemon -r -v

(ibus-ui-gtk3:75725): IBUS-WARNING **: 15:00:43.303: panel.vala:255: If you launch KDE5 on xterm, export XDG_CURRENT_DESKTOP=KDE before launch KDE5.

(ibus-ui-gtk3:75725): IBUS-WARNING **: 15:00:43.335: ibus_bus_call_sync: org.freedesktop.DBus.Properties.Get: GDBus.Error:org.freedesktop.DBus.Error.Failed: No global engine.

(and ibus-daemon stays running)

- I tried various terminals, for example xterm and terminator

Comment 1 fujiwara 2019-11-13 08:15:11 UTC
> echo 'exec /usr/bin/ibus-daemon --xim --daemonize' >>~/.config/sway/config

Did you run ibus-wayland too in the config?

Comment 2 Christian Horn 2019-11-13 08:57:39 UTC
(In reply to fujiwara from comment #1)
> > echo 'exec /usr/bin/ibus-daemon --xim --daemonize' >>~/.config/sway/config
> 
> Did you run ibus-wayland too in the config?

I tried 3 things, without success:

a) running both from sway, the config has this then:

 exec /usr/bin/ibus-daemon --xim --daemonize
 exec /usr/libexec/ibus-wayland

b) Without above 2 lines, and having this in the users .bashrc:
[[ $(pgrep ibus-daemon) ]] || ibus-daemon --xim --daemonize -r
/usr/libexec/ibus-wayland
export IMSETTINGS_INTEGRATE_DESKTOP=yes
export IMSETTINGS_MODULE=ibus
export QT_IM_MODULE=ibus
export XMODIFIERS=@im=ibus
export GTK_IM_MODULE=ibus

c) When sway runs, killing ibus-daemon and trying to run both manually:

[chris@космос ~]$ ibus-daemon --xim -r -v &
[1] 99796
[chris@космос ~]$ 
(ibus-ui-gtk3:99807): IBUS-WARNING **: 17:55:01.529: panel.vala:255: If you launch KDE5 on xterm, export XDG_CURRENT_DESKTOP=KDE before launch KDE5.

(ibus-ui-gtk3:99807): IBUS-WARNING **: 17:55:01.567: ibus_bus_call_sync: org.freedesktop.DBus.Properties.Get: GDBus.Error:org.freedesktop.DBus.Error.Failed: No global engine.

[chris@космос ~]$ 
[chris@космос ~]$ /usr/libexec/ibus-wayland
No input_method global
[chris@космос ~]$ 

Result seemed same for all of these, ibus-wayland did not get to run,
ctrl+space never switched to other methods (these are configured with
ibus-setup).

Comment 3 Christian Horn 2021-11-01 06:48:41 UTC
Still seeing this.

Interestingly, on sway in Firefox or Google chrome, I can use ibus to input Japanese.
Just not on xterm or the terminal emulator "terminator".

Comment 4 Christian Horn 2021-11-09 10:05:38 UTC
Also seeing this on 35.

Seems like the actual switching with hotkey is the problem, as I can switch
input method manually using for example
  ibus engine anthy

The hack from 
https://github.com/mpsq/arewewaylandyet/issues/41#issuecomment-842678375
is a possible workaround, it maps a key combination from Sway to do the
switching.  With the hack in place, switching is possible as it should,
just interestingly for me on xterm no hiragana-preview window appears.
GTK apps, firefox, terminator for example work fine with the hack.


Note You need to log in before you can comment on or make changes to this bug.