The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Изменение настроек раскладки клавиатуры в Debian 6"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на рабочей станции (GNOME / Linux)
Изначальное сообщение [ Отслеживать ]

"Изменение настроек раскладки клавиатуры в Debian 6"  +/
Сообщение от vlad (??) on 28-Апр-12, 06:00 
Добрый день!

Подскажите, как скриптом можно добавить русскую раскладку клавиатуры и задать сочетание клавиш для ее смены? Но сделать это так, чтобы после перезагрузки настройка сохранялась. Система Debian 6, gnome.

Выполнение команды setxkbmap -layout us,ru -variant ,winkeys -option grp:switch,grp:alt_shift_toggle приводит к желаемому результату, но только до перезагрузки. Ставить эту команду в автозагрузку выглядит костылем.

Проверял файл /etc/default/keyboard, там стоят верные настройки:

XKBMODEL="pc105"
XKBLAYOUT="us,ru"
XKBVARIANT=","
XKBOPTIONS="grp:alt_shift_toggle,grp_led:scroll"

Тем не менее, раскладка только английская. Если добавить русскую раскладку через графическое меню гнома, то все работает нормально. Но нужно именно через скрипт.

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Изменение настроек раскладки клавиатуры в Debian 6"  +/
Сообщение от XAnder (ok) on 28-Апр-12, 09:29 
Проверьте, что у вас в "реестре":

gconftool-2 -a /desktop/gnome/peripherals/keyboard/kbd

Особенно посмотрите на layouts - должен быть пустым списком [], тогда, если не ошибаюсь, подхватываются общесистемные настройки. С помощью всё того же gconftool-2 можно устанавливать эти и другие значения в скриптах.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Изменение настроек раскладки клавиатуры в Debian 6"  +/
Сообщение от vlad (??) on 28-Апр-12, 09:36 
> Проверьте, что у вас в "реестре":
>
gconftool-2 -a /desktop/gnome/peripherals/keyboard/kbd

> Особенно посмотрите на layouts - должен быть пустым списком [], тогда, если
> не ошибаюсь, подхватываются общесистемные настройки. С помощью всё того же gconftool-2
> можно устанавливать эти и другие значения в скриптах.

Посмотрел, пусто во всех параметрах.

P.S.: спасибо за gconftool-2, прям Америку открыли для меня :)

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

5. "Изменение настроек раскладки клавиатуры в Debian 6"  +/
Сообщение от vlad (??) on 28-Апр-12, 12:18 
Пробую выполнять команду:

gconftool-2 --type List --set /desktop/gnome/peripherals/keyboard/kbd/layouts --list-type String [us,ru]

но в редакторе конфигураций все равно этот параметр остается пустым. Уже выполнял команду и от рута, и от обычного юзера. Систему тоже пробовал перегружать. Что не так? При этом заметил, что если добавить раскладку через графический интерфейс, то этот параметр в редакторе конфигураций заполняется нужным значением.

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

7. "Изменение настроек раскладки клавиатуры в Debian 6"  +/
Сообщение от XAnder (ok) on 28-Апр-12, 13:30 
> Пробую выполнять команду:
> gconftool-2 --type List --set /desktop/gnome/peripherals/keyboard/kbd/layouts --list-type String [us,ru]
> но в редакторе конфигураций все равно этот параметр остается пустым.

Порядок параметров перепутали, надо так:

gconftool-2 --type list --list-type string --set /desktop/gnome/peripherals/keyboard/kbd/layouts '[us,ru]'

Можно также сделать общесистемные настройки, которые пользователи смогут переопределить для себя, если что:

sudo gconftool-2 --direct --config-source xml:readwrite:/etc/gconf/gconf.xml.defaults ...дальше те же самые параметры...

Кстати, у меня (Debian 6) тут действительно пустой список, и действительно есть русская раскладка клавиатуры, как указано в /etc/default/keyboard. Ещё три машины рядом с аналогичной конфигурацией - тоже всё хорошо. Корни проблемы, очевидно, нужно искать не здесь.

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

8. "Изменение настроек раскладки клавиатуры в Debian 6"  +/
Сообщение от vlad (??) on 02-Май-12, 02:49 
В общем добился того, чтобы значения появлялись в конфигураторе. Но теперь проблема задать сочетание клавиш для переключения раскладки клавиатуры. Выполняю команду:

/usr/bin/gconftool-2 --type list --list-type string --set /desktop/gnome/peripherals/keyboard/kbd/options "[grp grp:alt_shift_toggle]"

Значение появляется, но раскладка не переключается, даже после перезагрузки. Попробовал задать это сочетание через GUI и вот что увидел. [grp grp:alt_shift_toggle] - между двумя grp стоит табуляция, а не пробел. Но как я не пытался, со скрипта табуляцию вставить не получается. Пробую так: "[grp\tgrp:alt_shift_toggle]", но вставляется буква t. Пробовал копировать символ табуляции из конфигуратора, но он не вставляется.

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

9. "Изменение настроек раскладки клавиатуры в Debian 6"  +/
Сообщение от XAnder (ok) on 02-Май-12, 17:38 
Да, я когда-то тоже с таким столкнулся. Что характерно, разные шеллы на это по-разному смотрят. В dash (который используется в Debian в качестве sh) работает так:

$ echo '\t'

Выводится табуляция. А вот в bash и во многих других шеллах нужно так:

$ echo -e '\t'

Но это касается только команды echo. Для bash ещё можно использовать что-то вроде:

$'\t'

Тут уж man bash читайте. Для скрипта, вероятно, лучше всего будет тем или иным способом определить переменную, содержащую один символ табуляции, и вставлять её, где нужно.

Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

19. "Изменение настроек раскладки клавиатуры в Debian 6"  +/
Сообщение от Александр Фирсов on 05-Мрт-13, 18:57 
Объединяя вышенаписанное (FreeBSD 9.1)

$gconftool-2 --direct --config-source xml:readwrite:/usr/local/etc/gconf/gconf.xml.defaults
$gconftool-2 --type list --list-type string --set /desktop/gnome/peripherals/keyboard/kbd/layouts '[us,ru]'

Далее через костыль:
$ echo -e gconftool-2 --type list --list-type string --set /desktop/gnome/peripherals/keyboard/kbd/options "[grp'\t'grp:alt_shift_toggle]" > ./grp
$sh<grpмм
$rm ./grp

Наверняка можно одной строкой.

На всякий случай проверяю:
$gconftool-2 --get /desktop/gnome/peripherals/keyboard/kbd/options

Через несколько секунд заработало.

Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

3. "Изменение настроек раскладки клавиатуры в Debian 6"  +/
Сообщение от Andrey Mitrofanov on 28-Апр-12, 09:40 
> Добрый день!
> Подскажите, как скриптом можно добавить русскую раскладку клавиатуры и задать сочетание
> клавиш для ее смены? Но сделать это так, чтобы после перезагрузки
> настройка сохранялась. Система Debian 6, gnome.

В /etc/X11/xorg.conf :

Section "InputDevice"
        Identifier      "Generic Keyboard"
        Driver          "kbd"
        Option          "CoreKeyboard"
        Option          "XkbRules"      "xorg"
        Option          "XkbModel"      "pc105"
        Option          "XkbLayout"     "en_US,ru"
        Option          "XkbOptions"    "grp:menu_toggle,grp_led:scroll"
EndSection

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

4. "Изменение настроек раскладки клавиатуры в Debian 6"  +/
Сообщение от vlad (??) on 28-Апр-12, 11:56 
> В /etc/X11/xorg.conf :

Так а разве в новом Debian /etc/X11/xorg.conf не упразднили??

http://debian-user.blogspot.com/2010/06/etcdefaultkeyboard-r...

Я находил в интернете как настраивать раскладки через xorg.conf, но также многие говорили, что от этого файла уже отказались. И в моей системе его нет.

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

6. "Изменение настроек раскладки клавиатуры в Debian 6"  +/
Сообщение от Andrey Mitrofanov on 28-Апр-12, 12:38 
> Так а разве в новом Debian /etc/X11/xorg.conf не упразднили??

У меня так работает в 6.0, проапгрейженное с позапрошлого (или типа того) релиза. Я и не заморачиваюсь.

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

10. "Изменение настроек раскладки клавиатуры в Debian 6"  +/
Сообщение от mr brightside (ok) on 07-Май-12, 04:10 
Добрый день!

Та же самая проблема, что описана в первом посте:

> Выполнение команды setxkbmap -layout us,ru -variant ,winkeys -option grp:switch,grp:alt_shift_toggle
> приводит к желаемому результату, но только до перезагрузки. Ставить эту команду
> в автозагрузку выглядит костылем.
> Проверял файл /etc/default/keyboard, там стоят верные настройки:
> XKBMODEL="pc105"
> XKBLAYOUT="us,ru"
> XKBVARIANT=","
> XKBOPTIONS="grp:alt_shift_toggle,grp_led:scroll"
> Тем не менее, раскладка только английская. Если добавить русскую раскладку через графическое
> меню гнома, то все работает нормально.

Но, надо настроить это через терминал.

Однако, при выполнении команд с gconftool-2, получаю:

++++++++++++++++++++++
Сбой при перечислении записей в «/desktop/gnome/peripherals/keyboard/kbd»: Failed to contact configuration server; the most common cause is a missing or misconfigured D-Bus session bus daemon. See http://projects.gnome.org/gconf/ for information. (Details -  1: Не удалось подсоединиться к сеансу: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.)
++++++++++++++++++++++

Папки /desktop/gnome/peripherals/keyboard/kbd не существует. По правде говоря, в корне / даже desktop'a нету

Дебиан в виртуалке установлен, в инет выход есть.

В чем может быть проблема?

> Так а разве в новом Debian /etc/X11/xorg.conf не упразднили??

Аналогично, xorg.conf у меня нету.

#uname -a
Linux debian 2.6.32.5.686 #1 SMP Mon Mar 26 05:20:33...

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

11. "Изменение настроек раскладки клавиатуры в Debian 6"  +/
Сообщение от XAnder (ok) on 08-Май-12, 10:45 
> Но, надо настроить это через терминал.
> Однако, при выполнении команд с gconftool-2, получаю...

GConf запущен? (ps ax | grep gconf — в выводе должен быть gconfd-2) GNOME вообще запущен?

> Папки /desktop/gnome/peripherals/keyboard/kbd не существует. По правде говоря, в корне
> / даже desktop'a нету

Это не файлы и не папки, а ключи этого самого GConf'а. Можно тут привести приблизительную аналогию с реестром оффтопика. Хранятся в виде файлов XML в каталогах ~/.gconf и /etc/gconf. При выключенном GConf вручную править можно, но осторожно :-) Лучше пользовать gconftool.

Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

12. "Изменение настроек раскладки клавиатуры в Debian 6"  +/
Сообщение от mr brightside (ok) on 10-Май-12, 00:13 
>> Но, надо настроить это через терминал.
>> Однако, при выполнении команд с gconftool-2, получаю...
> GConf запущен? (ps ax | grep gconf — в выводе должен быть
> gconfd-2) GNOME вообще запущен?

Да, запущен:

root@debian:~# ps ax | grep gconf
2056 ?        S      0:00 /usr/lib/libgconf2-4/gconfd-2
2682 pts/0    S+     0:00 grep gconf


Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

13. "Изменение настроек раскладки клавиатуры в Debian 6"  +/
Сообщение от mr brightside (ok) on 10-Май-12, 00:24 
>>> Но, надо настроить это через терминал.
>>> Однако, при выполнении команд с gconftool-2, получаю...
>> GConf запущен? (ps ax | grep gconf — в выводе должен быть
>> gconfd-2) GNOME вообще запущен?
> Да, запущен:
> root@debian:~# ps ax | grep gconf
>  2056 ?        S  
>     0:00 /usr/lib/libgconf2-4/gconfd-2
>  2682 pts/0    S+     0:00
> grep gconf

gconf походу вообще ни на что не реагирует:

++++++++++++++++
root@debian:~# gconftool-2 -R /desktop/gnome
Сбой при перечислении записей в «/desktop/gnome»: Failed to contact configuration server; the most common cause is a missing or misconfigured D-Bus session bus daemon.
++++++++++++++++

Но, при добавлении поддержки раскладки через оболочку gnome, повтоюсь, все работает

Ответить | Правка | ^ к родителю #12 | Наверх | Cообщить модератору

14. "Изменение настроек раскладки клавиатуры в Debian 6"  +/
Сообщение от mr brightside (ok) on 10-Май-12, 01:36 
>[оверквотинг удален]
>>  2682 pts/0    S+     0:00
>> grep gconf
> gconf походу вообще ни на что не реагирует:
> ++++++++++++++++
> root@debian:~# gconftool-2 -R /desktop/gnome
> Сбой при перечислении записей в «/desktop/gnome»: Failed to contact configuration
> server; the most common cause is a missing or misconfigured D-Bus
> session bus daemon.
> ++++++++++++++++
> Но, при добавлении поддержки раскладки через оболочку gnome, повтоюсь, все работает

Так, разобрался вроде

перед командой gconf... Надо было sudo дописать... хотя, я выполнял эту команду под рутом... обнаружил, когда попробовал запускать от пользователя

Теперь имею следующее:

++++++++++++++++
root@debian:~# sudo gconftool-2 -a /desktop/gnome/peripherals/keyboard/kbd
model =
options = [grp grp:alt_shift_toggle]
layouts = [us,ru]
++++++++++++++++

в options вставил значение при помощи скрипта:

++++++++++++++++
#! /bin/bash

gconftool-2 --type list --list-type string --set /desktop/gnome/peripherals/keyboard/kbd/options "[grp grp:alt_shift_toggle]"
++++++++++++++++

Пробем между двумя grp прямо в скрипте забил табуляцией

Но, увы, переключение между языками так и не работает...

Ответить | Правка | ^ к родителю #13 | Наверх | Cообщить модератору

15. "Изменение настроек раскладки клавиатуры в Debian 6"  +/
Сообщение от XAnder (ok) on 10-Май-12, 08:23 
> root@debian:~# sudo gconftool-2 -a /desktop/gnome/peripherals/keyboard/kbd

gconftool надо запускать от имени простого пользователя, не от рута, — вы же меняете пользовательские настройки. От рута нужно запускать только в случае, когда нужно поменять общесистемные умолчания, и только с ключами «--direct --config-source...», как я уже писал выше.

Ответить | Правка | ^ к родителю #14 | Наверх | Cообщить модератору

16. "Изменение настроек раскладки клавиатуры в Debian 6"  +/
Сообщение от mr brightside (ok) on 10-Май-12, 13:35 
>> root@debian:~# sudo gconftool-2 -a /desktop/gnome/peripherals/keyboard/kbd
> gconftool надо запускать от имени простого пользователя, не от рута, — вы
> же меняете пользовательские настройки. От рута нужно запускать только в случае,
> когда нужно поменять общесистемные умолчания, и только с ключами «--direct
> --config-source...», как я уже писал выше.

Да, это я уже понял в "живом режиме" =)

Добавил раскладку и переключение между раскладками не из скрипта, а из консоли

вопросы:

теперь, когда я хочу вставить символ табуляции в консоли (CTRL+V+TAB) у меня вставляется русская буква "м", хотя язык включен английский

После ребута системы имею только английскую раскладку

В чем может быть дело?

Ответить | Правка | ^ к родителю #15 | Наверх | Cообщить модератору

17. "Изменение настроек раскладки клавиатуры в Debian 6"  +/
Сообщение от XAnder (ok) on 11-Май-12, 08:57 
> теперь, когда я хочу вставить символ табуляции в консоли (CTRL+V+TAB) у меня
> вставляется русская буква "м", хотя язык включен английский

Известная проблема, хотя у меня, например, никогда почему-то она не возникала. Гуглите на тему «не работает ctrl+c в gnome-terminal» — решения есть.

> После ребута системы имею только английскую раскладку

Показали бы, что теперь в GConf'e там, а то мне не видно ;-)

Ответить | Правка | ^ к родителю #16 | Наверх | Cообщить модератору

18. "Изменение настроек раскладки клавиатуры в Debian 6"  +/
Сообщение от mr brightside (ok) on 14-Май-12, 16:51 
>> теперь, когда я хочу вставить символ табуляции в консоли (CTRL+V+TAB) у меня
>> вставляется русская буква "м", хотя язык включен английский
> Известная проблема, хотя у меня, например, никогда почему-то она не возникала. Гуглите
> на тему «не работает ctrl+c в gnome-terminal» — решения есть.

Определил, что когда раскладкой по-умолчанию является русская, то описанная проблема возникает; если раскладкой по умолчанию сделать английскую, то управляющие клавиши и их комбинации работают, как надо... Это для себя и определил, как решение

>> После ребута системы имею только английскую раскладку
> Показали бы, что теперь в GConf'e там, а то мне не видно
> ;-)

А вот и не понятно... Теперь с языком и раскладкой все ок =) Специально несколько дней поработал, чтобы посмотреть - авось вылетит =) Но нет...

Всё, спасибо!

Ответить | Правка | ^ к родителю #17 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Спонсоры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2022 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру