Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Куда вписать setxkbmap для переключения раскладок по grp:lctrl_rctrl_switch?  (Прочитано 4539 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн osetroff

  • Автор темы
  • Новичок
  • *
  • Сообщений: 15
    • Просмотр профиля
Собственно, вопрос в шапке.
Ubuntu 16.04 lts.
Через параметры системы настроить такое переключение раскладок не сумел.
Благодарю.

alang

  • Гость
Например,

/etc/X11/xorg.conf.d/00-keyboard.conf


Оффлайн osetroff

  • Автор темы
  • Новичок
  • *
  • Сообщений: 15
    • Просмотр профиля
/etc/X11/xorg.conf.d/00-keyboard.conf

Нет такой папки
/etc/X11/xorg.conf.d/

toZen

  • Гость
ls -la /usr/share/X11/ ??

Оффлайн osetroff

  • Автор темы
  • Новичок
  • *
  • Сообщений: 15
    • Просмотр профиля
Такой нашел.

Создал в /usr/share/X11/xorg.conf.d
файл 00-keyboard.conf
Цитировать
Section "InputClass"
        Identifier "system-keyboard"
        MatchIsKeyboard "on"
        Option "XkbLayout" "en,ru"
        Option "XkbOptions" "grp:lctrl_rctrl_switch"
EndSection

Раскладки не переключаются.
Нужно в логе X11 посмотреть, что происходит?

toZen

  • Гость
osetroff, Вы какую комбинацию пытаетесь запустить?
Просто, одновременное нажатие по левому и правому Ctrl - как миниму не удобно и жутко странно.
Если всё-таки это так, то нужно ctrls_toggle
« Последнее редактирование: 05 Августа 2016, 23:55:42 от τοΖεη »

Оффлайн Azure

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
/etc/default/keyboard параметр XKBOPTIONS
τοΖεη, левый контрол на 1-ю раскладку, правый на последнюю
Цитата: man xkeyboard-config
grp:lctrl_rctrl_switch      Left Ctrl (to first layout), Right Ctrl (to last layout)
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

adawdp

  • Гость
2016 Aug 05; 09:52 PM; Oakville, ON, Canada.

— Я думаю, что LoLo Switcher (есть такой переключатель) можно настроить для этой цели. У меня великолепно работает, левый Shift одна раскладка, правый Shift другая… Это по умолчанию там Shift'ы…
https://forum.ubuntu.ru/index.php?topic=272390.msg2147958#msg2147958
https://forum.ubuntu.ru/index.php?topic=275127.msg2172081#msg2172081
— Думаю должен работать в последних Ubuntu…
http://webhamster.ru/site/page/index/articles/projectcode/180
http://webhamster.ru/site/page/index/articles/projectcode/181

Оффлайн osetroff

  • Автор темы
  • Новичок
  • *
  • Сообщений: 15
    • Просмотр профиля
Везде засада:
в /etc/default/keyboard прописал - не работает;
lolo собирается не через configure/make а через cmake - сейчас попробую собрать.

Собственно, вопрос прежний: куда вписать запуск setxkbmap?
Не думал, что это будет так сложно: пошел второй день поисков.
« Последнее редактирование: 06 Августа 2016, 14:15:25 от osetroff »

Оффлайн Azure

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Везде засада:
в /etc/default/keyboard прописал - не работает;
Может у Вас вообще переключение не через систему, а через iBus? Покажитеsetxkbmap -query
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн osetroff

  • Автор темы
  • Новичок
  • *
  • Сообщений: 15
    • Просмотр профиля
Цитировать
rules:      evdev
model:      pc105
layout:     us,ru
variant:    ,
options:    grp_led:scroll

setxkbmap с  lctrl_rctrl_switch, оказывается, еще и отключает ctrl+o и прочие комбинации в терминале.
Так что, откажусь от него.


Собрал lolo (споткнулся на установке cmake и prce).

Сделал настройки по wiki, заработало как нужно!

Вот настройки lolo для переключения раскладок по левому и правому ctrl.
config.ini:

# LoLo Switcher config file

# Config version (do not edit this parameter!)
ConfigVersion=1

# Input device
InputDevice=/dev/input/event4

# Type of device
# 0 - keyboard
# 1 - joystick
DeviceType=0

# Total number of language layout
# For example:
# if you use ENG and RUS, set 2
# if you use ENG, RUS and UKR, set 3
NumberOfLayout=2

# Language switch method
# 0 - cyclic switch
# 1 - direct switch
SwitchMethod=1

# RegExp for primary filtering device events
# For classic keyboard, set value to ^1,[0-9]+,[0-9]+;$
# and this filter enabled only KeyPress, KeyHold and KeyRelease event.
# Before research device codes (with option -t1), clear this value.
EventFilter=^1,[0-9]+,[0-9]+;$
# RegExp with codes for switch language layouts
# If you use cyclic switch method, set variable Sequence0 only.
# If you use direct switch method, set variable SequenceX
# for each layout (numeric from 0).
Sequence0=(?<!1,42,1;|1,42,2;|1,54,1;|1,54,2;|1,56,1;|1,56,2;|1,100,1;|1,100,2;)1,29,1;1,29,0;$
Sequence1=(?<!1,42,1;|1,42,2;|1,54,1;|1,54,2;|1,56,1;|1,56,2;|1,100,1;|1,100,2;)1,97,1;1,97,0;$

# Bash command if language layout switched (optional).
# Set CommandX for each layout (numeric from 0).
#Command0=beep -f 440 -l 25
#Command1=beep -f 520 -l 25

Скопировал lolo в /usr/sbin, установил в "настройки запуска приложений" (автозапуск).
« Последнее редактирование: 06 Августа 2016, 16:35:24 от osetroff »

adawdp

  • Гость
2016 Aug 06; 04:03 PM; Oakville, ON, Canada.

— Да Вы знаете, osetroff, я вообще ничего не собирал, там где-то готовое LoLo Switcher есть, собранное уже  с инструкцией установки…
— Вот у меня всё сохранилось где-то я скачивал, смотрите вложение…
— Там у меня единственное была проблема с индикацией в трее, я поставил ещё  gxkb и отключил стандартное переключение, это просто как бы от лени не стал разбираться… Вот так отключается.

Код: (bash) [Выделить]
gsettings set org.gnome.desktop.wm.keybindings switch-input-source "['disabled']"
gsettings set org.gnome.desktop.wm.keybindings switch-input-source-backward "['disabled']"
— По «кругу» gxkb теперь переключает; персонально для каждого языка Shift'ы

— Всё это как бы далеко от красоты и эстетики :), такая ерунда как переключение раскладки должно работать от «рождения» во всех вариациях, а у нас уже пол форума в темах про переключение раскладки, как будто более важных вопросов нет. :-\

Оффлайн osetroff

  • Автор темы
  • Новичок
  • *
  • Сообщений: 15
    • Просмотр профиля
2016 Aug 06; 04:03 PM; Oakville, ON, Canada.
— Всё это как бы далеко от красоты и эстетики :), такая ерунда как переключение раскладки должно работать от «рождения» во всех вариациях, а у нас уже пол форума в темах про переключение раскладки, как будто более важных вопросов нет. :-\

А ведь, действительно, это важно - удобство при наборе текстов.
Поэтому, удивлен, что про удобство мало кто думает.
Да, практически, никто.
Приспосабливаются.
Но в linux под себя настроить, наверное, все можно.

Благодарю вас за lolo, прекрасно работает.

Единственная проблема: для клавы в ноуте - event4, а для внешней - event9.
Поэтому, без плясок с бубном не обойтись, если ноут то с внешней, то со встроенной клавой пользовать, как я и делаю.
Не знаю, как эту проблему решить.

Оффлайн osetroff

  • Автор темы
  • Новичок
  • *
  • Сообщений: 15
    • Просмотр профиля
Благодаря подсказке adawdp про loloswitcher, изменил код, и все получилось!

Автоматически загружается loloswitcher,
работает раздельное переключение раскладки клавиатуры в ubuntu по left right ctrl:
ru русский всегда по правому ctrl,
us english всегда по левому ctrl.

Из недостатков - необходимость прописать в настройках устройство ввода, которое слушаем, и,
то, что делаем у loloswitcher установленным set user id on execution (иначе не можем прослушать устройство).

В файле main.cpp кроме закомментированых строк, изменил в функции readConfig
путь к файлу config.ini на "/usr/sbin/loloswitcher.ini".
Собраный loloswitcher c установленным set user id on execution и config.ini,
переименованный в loloswitcher.ini, поместил в /usr/bin.

# LoLo Switcher config file

# Config version (do not edit this parameter!)
ConfigVersion=1

# Input device for notebook - event4
InputDevice=/dev/input/by-path/pci-0000:00:14.0-usb-0:1.3:1.0-event-kbd

# Type of device
# 0 - keyboard
# 1 - joystick
DeviceType=0

# Total number of language layout
# For example:
# if you use ENG and RUS, set 2
# if you use ENG, RUS and UKR, set 3
NumberOfLayout=2

# Language switch method
# 0 - cyclic switch
# 1 - direct switch
SwitchMethod=1

# RegExp for primary filtering device events
# For classic keyboard, set value to ^1,[0-9]+,[0-9]+;$
# and this filter enabled only KeyPress, KeyHold and KeyRelease event.
# Before research device codes (with option -t1), clear this value.
EventFilter=^1,[0-9]+,[0-9]+;$
# RegExp with codes for switch language layouts
# If you use cyclic switch method, set variable Sequence0 only.
# If you use direct switch method, set variable SequenceX
# for each layout (numeric from 0).
Sequence0=(?<!1,42,1;|1,42,2;|1,54,1;|1,54,2;|1,56,1;|1,56,2;|1,100,1;|1,100,2;)1,29,1;1,29,0;$
Sequence1=(?<!1,42,1;|1,42,2;|1,54,1;|1,54,2;|1,56,1;|1,56,2;|1,100,1;|1,100,2;)1,97,1;1,97,0;$
# Bash command if language layout switched (optional).
# Set CommandX for each layout (numeric from 0).
Command0=setxkbmap -layout us,ru
Command1=setxkbmap -layout ru,us

« Последнее редактирование: 17 Августа 2016, 17:27:09 от osetroff »

adawdp

  • Гость
2016 Aug 17; 10:17 AM; Oakville, ON, Canada.

— Может снять нужно отметку «решено»? А то что-то народ не идёт…
— А по существу вопроса нужно ждать кого-то весьма сведущего :( .
— Я так глубоко как Вы не вникал, посмотрите ещё раз вариант, который в моём посте «07 Август 2016, 00:03:17», может эти “протезы” что-то Вам подправят?

 

Страница сгенерирована за 0.058 секунд. Запросов: 23.