Постоянно устанавливать параметры раскладки клавиатуры с помощью setxkbmap в gnome / unity

Ubuntu 13.10 1 (и, возможно, вышестоящий гном) представил очень досадную ошибку : нажатие сочетания клавиш на клавиатуре приводит к тому, что фокус перемещается в какое-то системное окно, а затем обратно в окно, где ярлык был нажат. У некоторых приложений есть некоторые действия, связанные с изменением фокуса, например, твиттер (в браузере) закрывает поле ввода текста ответа при потере фокуса и т. Д. Поэтому встроенный переключатель клавиатуры в Ubuntu мне не подходит, пока не будет исправлено.

X имеет встроенный механизм переключения, и он намного лучше, кроме того, что он не включает переключение фокуса, он переключается немедленно (переключатель gnome также иногда отстает).

Как настроить параметры xkbmap, чтобы параметры сохранялись после перезагрузки и не были сброшены Gnome?

Что я пробовал:

Во-первых, просто выполните setxkbmap:

setxkbmap -layout "us,ru"
setxkbmap -option "grp:caps_toggle,grp_led:scroll,compose:ralt"

Но это работает только:

  1. Для текущего сеанса
  2. До тех пор, пока Gnome не перезапишет его (например, прикосновение к чему-либо в сбросе триггеров gconf org.gnome.desktop.input-sources).

Во-вторых, добавление параметров xkb в конфигурацию Xorg:

Другой вариант - добавить следующее в конфигурацию xorg:

Section "InputClass"
        Identifier "system-keyboard"
        MatchIsKeyboard "on"
        Option "XkbLayout" "us,ru"
        Option "XkbModel" "pc105"
        Option "XkbVariant" "pc105"
        Option "XkbOptions" "grp:rctrl_toggle,grp_led:scroll"
EndSection

Xorg понимает, что во время запуска:

[    33.791] (**) Option "xkb_rules" "evdev"
[    33.791] (**) Option "xkb_model" "pc105"
[    33.791] (**) Option "xkb_layout" "us,ru"
[    33.791] (**) Option "xkb_variant" "pc105"
[    33.791] (**) Option "xkb_options" "grp:rctrl_toggle,grp_led:scroll"

Но конфигурация переключения все еще сбрасывается позже, вероятно, с помощью gnome.

В-третьих, gconf

enter image description here

У меня есть xkb-options и sources, установленные в org.gnome.desktop.input-sources, но Gnome по-прежнему устанавливает xkb для одной английской раскладки:

$ setxkbmap -print -verbose 10
Setting verbose level to 10
locale is C
Trying to load rules file ./rules/evdev...
Trying to load rules file /usr/share/X11/xkb/rules/evdev...
Success.
Applied rules from evdev:
rules:      evdev
model:      pc105
layout:     us
options:    grp_led:scroll
Trying to build keymap using the following components:
keycodes:   evdev+aliases(qwerty)
types:      complete
compat:     complete+ledscroll(group_lock)
symbols:    pc+us+inet(evdev)
geometry:   pc(pc105)
xkb_keymap {
    xkb_keycodes  { include "evdev+aliases(qwerty)" };
    xkb_types     { include "complete"  };
    xkb_compat    { include "complete+ledscroll(group_lock)"    };
    xkb_symbols   { include "pc+us+inet(evdev)" };
    xkb_geometry  { include "pc(pc105)" };
};

В-четвертых, другая опция в gconf

enter image description here

Настройка org.gnome.settings-daemon.peripherals.keyboard также не работает для меня. Ничего не меняется.

Upd 1 : Существует обсуждение , рекомендующее удалить /usr/lib/gnome-settings-daemon-3.0/libkeyboard.so. По крайней мере, это исправляет некоторые сбросы xkbmap (т.е. после блокировки экрана).

1 Я использую 14.04, но проблема с потерей фокуса все еще не устранена. ( Неподтвержденный отчет в вышестоящем Гноме )

28
задан 25 April 2014 в 12:57

5 ответов

Для предотвращения гнома, сбрасывающего установку клавиатуры в X, я использую эту команду:

gsettings set org.gnome.settings-daemon.plugins.keyboard active false

Это работает на меня.

0
ответ дан 25 April 2014 в 12:57

Я просто читал эта статья о screenlocking, который может быть связан. В соответствии со статьей, screenlocking имеет намеченное последствие блокирования устройств ввода данных и управления локалями. Кажется, что у Вас есть несколько опций:

  1. Остановка, блокирующая экран, вероятно, это включает экран приветствия также, который выполняет подобную функцию
  2. Использование различные инструменты управления питанием
  3. Остановка с помощью ibus для im-переключения (Возможно, FCITX?)
  4. Создают рычаг для экрана, разблокировали события, как описано здесь .

существует интересное обсуждение этого и связанных мероприятий, которые могут быть учреждены в списке рассылки человечности-dev: https://lists.ubuntu.com/archives/ubuntu-devel/2013-November/037768.html

0
ответ дан 25 April 2014 в 12:57

Обходное решение пользователем wof в средстве отслеживания ошибки Ubuntu, для Ubuntu 14.10 с помощью gxkb:

https://bugs.launchpad.net/gnome-settings-daemon / + bug/1244090/comments/39

это обходное решение работало на человечность 14.10:

  • в Настройках-> Ввод текста удаляет все входные источники, оставляет только английский язык
  • установка gxkb (переключатель расположения): склонные sudo - добираются, gxkb
  • установки добавляют gxkb для запущения приложений через инструмент тонкой настройки гнома
  • установка gxkb горячие клавиши в ~/.config/gxkb (значение по умолчанию является alt_shift, но в 14,10 это не работает. работы ctrl_shift хорошо)

p.s. новая версия gxkb имеет appindicator для человечности. может быть установлен через ppa:zen-root/gxkb-stable

0
ответ дан 25 April 2014 в 12:57

Первый, просто выполнившись setxkbmap:

setxkbmap - расположение "нас, рутений" setxkbmap - опция "grp:caps_toggle, grp_led:scroll, compose:ralt"

, Но это работает только:

For current session
Until Gnome will overwrite it (for example touching something in gconf's org.gnome.desktop.input-sources triggers reset).

Хорошо до Gnome, "сбрасывающего" его, я не знаю. Я действительно знаю, как можно добраться для пребывания каждой перезагрузки, хотя, поскольку я должен был сделать тот же самый тип вещи для моей мыши Logitech. Это имеет несколько кнопок, которые я хотел, повторно отобразил определенный путь, и у меня должен был быть тот набор при перезапуске.

Поэтому то, что Вы делаете для этого, создают текстовый файл. Тогда в том типе текстового файла:

#!/bin/bash

и прямо ниже этого вставил Ваши команды. Как пример моя мышь похожа на это:

#!/bin/bash
xinput set-button-map "Logitech USB-PS/2 Optical Mouse" 1 2 3 4 5 8 9 6 7 10 11 12 13 14 15 16

следующий Вы сохранили бы это как безотносительно имени, Вы хотите и перемещаете его в некоторое место как Ваш корневой каталог. это должно остаться там "навсегда".

тогда просто открывают Ваши Приложения Запуска и Добавляют файл к Вашему запуску, и затем Вы не должны волноваться об этом длящийся только сессию. будет нормально перезагружать Ваш компьютер, потому что Ваши настройки возвратятся через файл, который Вы просто добавили.

0
ответ дан 25 April 2014 в 12:57

Я сходил с ума по этому точно так же, как Вы, но с Ubuntu 14.04 (LTS), Xubuntu, xfce 4.12 и xkbd (от xfce положительных героев). Ctrl+Space для изменения раскладки клавиатуры работал, но Alt+Shift не сделал (ключи только для модификатора).

Наконец сумел заставить вещи работать -

1. Run ibus-setup (Keyboard Input Methods application).
2. Goto Advanced tab.
3. Check 'Use system keyboard layout'.
4. Click 'Close'

5. Run xfce4-keyboard-settings (Keyboard application).
6. Goto Layout tab.
7. Uncheck 'Use system defaults'
8. Select 'Keyboard model' (typically 'Generic 105-key (Intl) PC' will do)
9. Set 'Change layout option' to your required switching keys combination (typically Alt+Shift will do).
10. Add languages to 'Keyboard layout'.
11. Click 'Close'.
12. Restart the computer

Вы сделаны! Используйте Alt+Shift для изменения раскладки клавиатуры.

5
ответ дан 25 April 2014 в 12:57

Другие вопросы по тегам:

Похожие вопросы: