[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#799824: systemsettings: dead_greek characters not working with xmodmap since upgrading to kde5



Control: tag -1 + confirmed
Control: reassign -1 src:qtbase-opensource-src

¡Hola Stephen!

El 2015-09-22 a las 19:35 -0400, Stephen Crowley escribió:
Package: systemsettings Version: 4:5.4.1-1 Severity: important

Since dist-upgrading to testing, in kde, the dead_greek characters stopped working in all kde apps, kwrite, kate, konsole, etc. however, the dead_greek chracter works fine in xterm, etc

Sorry that the issue has went unattended till now.

To reproduce the issue you only need to issue:
xmodmap -e 'keycode 105 = dead_greek'

This modifies the Control R key for the current session. You can then restore the default behaviour with:
xmodmap -e 'keycode 105 = Control_R NoSymbol Control_R'

Note that KDE Plasma session doesn't honour the ~/.Xmodmap file, so you'll need to add an autostart script if you want to process it at session start.

Also the /usr/share/X11/locale/en_US.UTF-8/Compose file is loaded by default, so you don't need to generate a ~/.Xcompose file.

From the default Compose file, it seems that qt5 input ignores quite a number of the dead keys used there*:
+ dead_belowbreve
+ dead_belowcircumflex
+ dead_belowcomma
+ dead_belowdiaeresis
+ dead_belowmacron
+ dead_belowring
+ dead_belowtilde
+ dead_currency
+ dead_doublegrave
+ dead_greek
+ dead_invertedbreve
+ dead_psili
+ dead_stroke

This seems to be due to the missing definition of the corresponding qt constants (see: src/corelib/global/qnamespace.h:823-842 src/plugins/platforminputcontexts/compose/qcomposeplatforminputcontext.cpp:65-86
src/plugins/platforms/xcb/qxcbkeyboard.cpp:412-431)

As such I'm reassigning the issue to qtbase.

A simple workaround is to use a different input method handler, fcitx, for example handles this dead keys correctly (I've just installed fcitx-frontend-all in a vm and then it was the default input handler for the next session).

Happy hacking,

*: the generated list of dead keys to test was generated with:
awk '{print $1}' /usr/share/X11/locale/en_US.UTF-8/Compose | sort -u | grep dead

--
"Don't let what you cannot do interfere with what you can do."
-- Wooden's Rule
Saludos /\/\ /\ >< `/

Attachment: signature.asc
Description: PGP signature


Reply to: