1

Тема: KDE-приложения и русская раскладка Slackware14.1

На Slackware14.1 и KDE4.10.5 у меня не работают хоткеи Ctrl+C, Ctrl+V и т.п. если в системе включена русская раскладка. При английской раскладке всё работает. Баг проявляется только в приложениях KDE (например Kile, Kwrite). В Libreoffice, например, всё нормально. Как это исправить?

2

Re: KDE-приложения и русская раскладка Slackware14.1

Когда-то такой баг был в QT, но это было давно.

3

Re: KDE-приложения и русская раскладка Slackware14.1

vvk,
можно пару слов про способ добавления русской раскладки?

4

Re: KDE-приложения и русская раскладка Slackware14.1

bormant пишет

vvk,
можно пару слов про способ добавления русской раскладки?

А что - есть варианты? Это уже лет 20, как нативно поддерживает xfree86/xorg и даже в базовом режиме, без расширения XKEYBOARD

5

Re: KDE-приложения и русская раскладка Slackware14.1

s.xbatob,
по теме сказать что хотели?

У вас в Slackware 14.1 и KDE 4.10.5 в русской раскладке горячие клавиши Ctrl+C/Ctrl+V и т.п.
1) работают
2) не работают
3) частично работают (с описанием где работают/не работают)

?

6 (17.01.2015 21:51:37 отредактировано bormant)

Re: KDE-приложения и русская раскладка Slackware14.1

Обнаружилась тут такая картина.

Slackware64 14.1, KDE 4.10.5, qt-4.8.5, русский через /etc/X11/xorg.conf.d//90-keyboard-layout.conf,
Option "XkbLayout" "us","ru"

В русской раскладке вместо Ctrl+Key срабатывают сочетания Ctrl+Shift+Key.
В английской раскладке вместо Ctrl+Key сочетания Ctrl+Shift+Key не срабатывают.

Похоже, речь про
https://bugs.kde.org/show_bug.cgi?id=320423
https://bugreports.qt.io/browse/QTBUG-15319

Может иметь (или не иметь) отношение к
https://bugs.kde.org/show_bug.cgi?id=309193,
https://bugreports.qt.io/browse/QTBUG-32908,
https://codereview.qt-project.org/#/c/96993/

7

Re: KDE-приложения и русская раскладка Slackware14.1

Русскую раскладку добавлял по этой инструкции http://www.slackware.ru/wiki/%D0%A0%D1% … 0%B8%D1%8F

Вот мой /etc/X11/xorg.conf.d/90-keyboard-layout.conf

Section "InputClass"
    Identifier "keyboard-all"
    MatchIsKeyboard "on"
    MatchDevicePath "/dev/input/event*"
    Driver "evdev"
    Option "XkbLayout" "us,ru"
    #Option "XkbVariant" ""
    Option "XkbOptions" "grp:caps_toggle,grp:switch,terminate:ctrl_alt_bksp"
EndSection

Да, действительно вместо Ctrl+C и т.п. при включённой русской раскладке срабатывают Ctrl+Shift+C и т.п.

8

Re: KDE-приложения и русская раскладка Slackware14.1

vvk,
причём в строке поиска К-меню Ctrl+C/Ctrl+V работают правильно вне зависимости от раскладки.

9

Re: KDE-приложения и русская раскладка Slackware14.1

Запустите xev и посмотрите, какие события приходят на нажатия клавиш и правильно ли они мапируются в символы/коды
И - я так понял в приложениях Qt/KDE всё работает правильно. А где нет - Gnome? OpenOffice?..

10

Re: KDE-приложения и русская раскладка Slackware14.1

s.xbatob пишет

И - я так понял в приложениях Qt/KDE всё работает правильно

vvk пишет

При английской раскладке всё работает. Баг проявляется только в приложениях KDE (например Kile, Kwrite). В Libreoffice, например, всё нормально

LO использует GTK+. Вывод, мягко говоря, странный.

11 (18.01.2015 13:47:21 отредактировано vvk)

Re: KDE-приложения и русская раскладка Slackware14.1

s.xbatob пишет

Запустите xev и посмотрите, какие события приходят на нажатия клавиш и правильно ли они мапируются в символы/коды
И - я так понял в приложениях Qt/KDE всё работает правильно. А где нет - Gnome? OpenOffice?..

1. xev показывает, что всё обрабатывается нормально. Нажатия определяются правильно. Вот лог xev, для русской и английской раскладки он одинаковый.

+ открыть спойлер
KeyPress event, serial 40, synthetic NO, window 0x3800001,
    root 0x9f, subw 0x0, time 389924, (737,577), root:(741,602),
    state 0x10, keycode 37 (keysym 0xffe3, Control_L), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyPress event, serial 40, synthetic NO, window 0x3800001,
    root 0x9f, subw 0x0, time 390596, (737,577), root:(741,602),
    state 0x14, keycode 55 (keysym 0x76, v), same_screen YES,
    XLookupString gives 1 bytes: (16) ""
    XmbLookupString gives 1 bytes: (16) ""
    XFilterEvent returns: False

KeyRelease event, serial 40, synthetic NO, window 0x3800001,
    root 0x9f, subw 0x0, time 390731, (737,577), root:(741,602),
    state 0x14, keycode 55 (keysym 0x76, v), same_screen YES,
    XLookupString gives 1 bytes: (16) ""
    XFilterEvent returns: False

KeyRelease event, serial 40, synthetic NO, window 0x3800001,
    root 0x9f, subw 0x0, time 390829, (737,577), root:(741,602),
    state 0x14, keycode 37 (keysym 0xffe3, Control_L), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

2. Qt/KDE как раз не работает, а Libreoffice работает


bormant пишет

vvk,
причём в строке поиска К-меню Ctrl+C/Ctrl+V работают правильно вне зависимости от раскладки.

Да, в строке поиска KMenu всё работает

12

Re: KDE-приложения и русская раскладка Slackware14.1

s.xbatob пишет

И - я так понял в приложениях Qt/KDE всё работает правильно

1) В KWrite, Dolphin, ... при активной русской раскладке наблюдается баг, при котором Ctrl+Key не срабатывают, вместо этого срабатывают Ctrl+Shift+Key.
2) В строке поиска К-меню все работает правильно, независимо от активной раскладки.
3) В не-KDE приложениях (Firefox, LibreOffice) описанного бага нет.

Надо глянуть какое-нибудь QT, но не-KDE приложение на предмет наличия/отсутствия.

Кстати, отдельно надо глянуть, не может ли тут быть виноват caps_toggle в качестве переключателя, повторяется ли баг с другим переключателем раскладки. Хотя, с учётом (2) -- вряд ли.

13

Re: KDE-приложения и русская раскладка Slackware14.1

1. В Qt, но не KDE приложениях всё работает как надо (QtCreator, LibreCAD)
2. Поменял caps_toggle на ctrl_shift_toggle --- результата нет. Он здесь ни при чём.

14

Re: KDE-приложения и русская раскладка Slackware14.1

vvk,
описанное поведение полностью соответствует ранее упомянутому:
https://bugs.kde.org/show_bug.cgi?id=320423

Там же есть упоминание https://bugs.kde.org/show_bug.cgi?id=320423#c76 , что откат QTBUG-15319 ситуацию исправляет.
В Slackware-вских исходниках qt в каталоге /source/qt откатываемый фрагмент присутствует.
Осталось проверить, пересобрав qt с патчем из упомянутого выше комментария и переустановив собранный пакет.

15

Re: KDE-приложения и русская раскладка Slackware14.1

Точно, была такая бага! Только она исправлена больше года назад. Я про неё уже забыл. Неужели она в Slackware до сих пор не в upstream?

16

Re: KDE-приложения и русская раскладка Slackware14.1

s.xbatob,
Slackware 14.1 вышла

+--------------------------+
Mon Nov  4 17:08:47 UTC 2013
Slackware 14.1 x86 stable is released!

имея в составе стоковый qt-4.8.5.

Согласно https://bugreports.qt.io/browse/QTBUG-15319 первый (явившийся причиной ошибки) фикс вошел в 4.8.5. Исправление QTBUG-15319 вышло давно, но только в qt5.

Поэтому в том, что в релизе qt-4.8.5 имеет место баг релиза qt-4.8.5, ничего удивительного не вижу.

17

Re: KDE-приложения и русская раскладка Slackware14.1

bormant, Ну, замечательно! Только в других дистрибутивах это исправлено. В Fedora этой проблемы точно давным-давно нет.

18

Re: KDE-приложения и русская раскладка Slackware14.1

s.xbatob,
в Slackware тоже давно исправлено:
http://slackware.osuosl.org/slackware64 … ngeLog.txt

+--------------------------+
Tue Apr 29 23:35:59 UTC 2014
l/qt-4.8.6-x86_64-1.txz:  Upgraded.

http://slackware.osuosl.org/slackware64 … urce/l/qt/

В Fedora было исправлено в Fedora-19:
* Thu Sep 12 2013 Rex Dieter <rdieter@fedoraproject.org> 4.8.5-8
- Keyboard shortcuts doesn't work for russian keyboard layout (#968367, QTBUG-32908)

Кстати как? Затыканием головы в песок (откатом QTBUG-15319 и неработой шоткатов при первой не-US раскладке, вроде ru,us)?

И тут же:
Dmitry Veltishev 2014-06-02 09:49:14 UTC
Still having this issue with Qt 4.8.6 on FC20.
https://bugs.kde.org/show_bug.cgi?id=320423#c58

Someone 2014-08-24 18:44:47 UTC
This is present in Plasma 5 (Plasmashell) though..
https://bugs.kde.org/show_bug.cgi?id=320423#c72

+ vvk

19

Re: KDE-приложения и русская раскладка Slackware14.1

Спасибо за помощь! Пересобирать я ничего не стал, а вместо этого я взял пакет qt-4.8.6 от slackware-current и, пользуясь тем, что в Slackware отсутствуют зависимости, заменил им системную qt. Теперь всё работает как надо.

20

Re: KDE-приложения и русская раскладка Slackware14.1

vvk пишет

пользуясь тем, что в Slackware отсутствуют зависимости

Это утверждение неверное.
Пакетный менеджер Slackware не поддерживает автоматическое отслеживание зависимостей пакетов. Однако, это вовсе не означает, что файлы пакетов не имеют зависимостей времени исполнения.

Другое дело, что эти зависимости до определенной меры гибки, ровно до той степени, пока сохраняется интерфейс между
1) использующими библиотеку и самой библиотекой
2) самой библиотекой и используемыми ей библиотеками

Когда изменения слишком велики (как правило по тем или иным причинам выброшено что-либо), принято изменять номер библиотеки таким образом, чтобы исключить динамическое связывание с ней прежних версий. Изменения минорных версий, как правило, подобных изменений лишены.

Тем не менее, нужно быть готовым к тому, что взяв пакет из -current после того, как в -current уже были внесены существенные изменения (как правило основа основ -- glibc, и т.п.), есть риск получить глюки. Тем выше риск, чем дальше -current убежал по базовым компонентам от используемого релиза.

21

Re: KDE-приложения и русская раскладка Slackware14.1

Под зависимостями я имел в виду зависимости в том виде, в котором они существуют в Debian-образных дистрибутивах. То, что зависимости даже если они не отслеживаются пакетным менеджером всё равно  присутствуют в системе, это очевидно.

22

Re: KDE-приложения и русская раскладка Slackware14.1

vvk пишет

Под зависимостями я имел в виду зависимости в том виде, в котором они существуют в Debian-образных дистрибутивах.

там это лечится(калечится) ключиком --force, ЕМНИП.

23

Re: KDE-приложения и русская раскладка Slackware14.1

vvk пишет

имел в виду

вот и отлично, и мы друг друга поняли, и если кто ещё почитает, тоже поймет недвусмысленно.

PS. Исходное сообщение на самом деле больше акцентировало внимание на "тем выше риск, чем дальше -current убежал от".