IBus 1.5.25
Summary
IBus 1.5.25 will use transfiletriggerin script to generate the cache file instead of posttrans script in each engine package, support the include directive in the user compose file, IBus compose feature will follow the GTK4 compose pre-edit style, the emoji shortcut key will be changed to Ctrl-period, IBus GTK4 module will proceed the key events synchronistically to follow GTK4 specification.
Owner
- Name: Takao Fujiwara
- Email: fujiwara [at] redhat [dot] com
Current status
- Targeted release: Fedora 35
- Last updated: 2021-09-08
- FESCo issue: #2640
- Tracker bug: #1982747
- Release notes tracker: #719
Detailed Description
- Each IBus language engine has run
posttransscript to runibus write-cacheto cache their component files in /usr/share/ibus/component whenever the package is installed butibus write-cachewill moved totransfiletriggerinscript in IBus core package and the script will be executed only one time per the Fedora installation. - IBus compose file will support the include directive in the user compose file ($XDG_CONFIG_HOME/ibus/Compose, $XDG_CONFIG_HOME/gtk-3.0/Compose or $HOME/.XCompose)
- IBus compose feature will follow the GTK4 compose pre-edit style.
- IBus emoji shortcut key is
Ctrl-Shift-eand it will be changed toCtrl-periodto follow the latest GTK while it's customizable withibus-setuputility. - IBus GTK3 module proceeds the key events asynchronistically because some langauge engines spend much time to compose key events and D-Bus process could causes a timeout but now GTK4 does not allow the async events and IBus GTK4 module will proceed the key events synchronistically.
Feedback
Benefit to Fedora
Users can use the include directive in their compose files. IBus GTK4 module can send the application specific keys of Backspace, Enter to the target application to follow GTK4 specification.
Only one transfiletriggerin script is much simpler than many posttrans scripts.
Scope
- Proposal owners: Update SPEC file to add
transfiletriggerinscript. Update libibus.so to enhance compose feature. Update org.freedesktop.ibus.gschema.xml for emoji shortcut key. Update libim-ibus.so to fix IBus sync process.
- Other developers: Update SPEC files to delete
posttransscript.
- Release engineering: #10184
- Policies and guidelines: N/A
- Trademark approval: N/A
- Alignment with Objectives:
Upgrade/compatibility impact
We should avoid regressions with transfiletriggerin script in the Fedora installation.
How To Test
Installation
- Install ibus and the language engine packages
ibus read-cache --systemshows the installed engines.rpm -q --scriptsdoes not showibus write-cachein engine packagesrpm -q --filetriggersshowsibus write-cachein ibus package
Compose
- Write the line of 'include "%H/foo.compose"' in your $HOME/.XCompose and some compose sequences in $HOME/foo.compose
- Run
gnome-control-center keyboardand configure some IBus language engines besides XKB engines, likes ibus-hangul, ibus-typing-booster - Enable an XKB engine with Super-space or clicking of the keyboard idicator in GNOME
- Launch gedit
- Confirm your compose sequences in $HOME/foo.compose is reflected
- Confirm compose preedit is short
Emoji
- Run
gnome-control-center keyboardand configure some IBus language engines besides XKB engines, likes ibus-hangul, ibus-typing-booster - Enable an XKB engine with Super-space or clicking of the keyboard idicator in GNOME
- Launch gedit
- Type Ctrl-period
- Confirm emoji pre-edit and lookup table is available
Gtk4
- Install gtk4-devel-tools (gtk4-devel for older releases)
- Run
env GTK_IM_MODULE=ibus gtk4-demo - Backspace, Enter keys works
User Experience
The emoji shortcut key is changed if users do not customize it but they can customize it with ibus-setup utility.
Dependencies
ibus-anthy, ibus-chewing, ibus-hangul, ibus-input-pad, ibus-kkc, ibus-libpinyin, ibus-rawcode, ibus-sayura, ibus-skk, ibus-table, ibus-typing-booster, mozc (posttrans script has already been deleted in each engine package in Fedora rawhide.)
Contingency Plan
- Contingency mechanism: Revert the change to IBus.
- Contingency deadline: Beta release
- Blocks release? No
Documentation
TBD
