Удобное переключение трех языков.

Как правильно задавать вопросы Правильно сформулированный вопрос и его грамотное оформление способствует высокой вероятности получения достаточно содержательного и по существу ответа. Общая рекомендация по составлению тем: 1. Для начала воспользуйтесь поиском форума. 2. Укажите версию ОС вместе с разрядностью. Пример: LM 19.3 x64, LM Sarah x32 3. DE. Если вопрос касается двух, то через запятую. (xfce, KDE, cinnamon, mate) 4. Какое железо. (достаточно вывод inxi -Fxz в спойлере (как пользоваться спойлером смотрим здесь)) или же дать ссылку на hw-probe 5. Суть. Желательно с выводом консоли, логами. 6. Скрин. Просьба указывать 2, 3 и 4 независимо от того, имеет ли это отношение к вопросу или нет. Так же не забываем об общих правилах Как пример вот
Аватара пользователя

Автор темы
slant
Сообщения: 4469
Зарегистрирован: 21 июн 2017, 18:09
Решено: 95
Благодарил (а): 51 раз
Поблагодарили: 1966 раз
Контактная информация:

Удобное переключение трех языков.

#1

12 ноя 2022, 22:27

Небольшое вступление. Я уже давно использую в качестве основного метода переключения раскладок такой вариант:

1. Постоянное переключение - Caps Lock. (Обычная функция клавиши доступна по "Shift + Caps Lock" - хоть лично мне она не нужна. :) )
2. Временное переключение - правый Alt. (Работает как Shift для заглавных букв.) Позволяет крайне легко и быстро набирать небольшие вставки на противоположной раскладке т.к. нажимается большим пальцем и не мешает достать практически куда угодно остальными. Скажем вот такую стрелку: -> я могу набрать не переключаясь и не теряя скорость и ритм. Или такой вот смайлик: {^:^}

В общем, все хорошо, и просто замечательно... пока у вас лишь два языка. Но если в системе активно используется больше - начинаются проблемы, т.к. правый Alt начинает себя вести гораздо менее предсказуемо. Наконец (лень - двигатель прогресса!) мне надоело править настройки языков в зависимости от того, какой мне нужен чаще сегодня, и я таки нашел глобальное решение. Итак, теперь у меня в дополнение к вышеописанному есть две комбинации, переключающие ПАРЫ языков: Win+R включает пару английский-русский, а Win+U - английский-украинский. Т.к. переходить между русским и украинским нужно достаточно редко, это скорее глобальное переключение, раз на задачу. А вот внутри пары - по вышеописанной удобной схеме.

Как достичь - через ручные манипуляции с xkb. Зато метод универсален, и не требует ковыряния в системных файлах конфигурации (пишем свои собственные), и не цепляет других пользователей (личная настройка), и использует только штатные средства - никакого дополнительного софта, т.е. не зависим от внешних программ, и можем повторить на любом линуксе. Что очень важно, когда речь касается долговременных привычек влияющих на удобство повседневной работы. (Кто менял привычную клавиатуру на другую, с другой формой части клавиш - тот меня понимает :) )

0) Если нету - создаем каталог где будут лежать личные исполняемые скрипты. У меня это ~/bin

1) Заводим вот такие два файла:

layout-ru.xkb

Код: Выделить всё

xkb_keymap {
        xkb_keycodes  { include "evdev+aliases(qwerty)" };
        xkb_types     { include "complete"      };
        xkb_compat    { include "complete+ledcaps(group_lock)"  };
        xkb_symbols   { include "pc+us+ru:2+inet(evdev)+group(switch)+group(caps_toggle)+terminate(ctrl_alt_bksp)"      };
        xkb_geometry  { include "pc(pc105)"     };
};
layout-ua.xkb

Код: Выделить всё

xkb_keymap {
        xkb_keycodes  { include "evdev+aliases(qwerty)" };
        xkb_types     { include "complete"      };
        xkb_compat    { include "complete+ledcaps(group_lock)"  };
        xkb_symbols   { include "pc+us+ua(winkeys):2+inet(evdev)+group(switch)+group(caps_toggle)+terminate(ctrl_alt_bksp)"      };
        xkb_geometry  { include "pc(pc105)"     };
};
Обратите внимание - во втором конфиге в качестве украинской раскладки используется ua(winkeys) - это критично. Если использовать просто ua переключение по правому Alt работать будет совсем не так, как задумывалось. Потому, что ua - трехуровневая раскладка, и правый Alt в ней получает другую функцию. Это не баг а фича. Просто используем раскладку ua(winkeys).

Далее делаем еще два файла:
set-xkb-ru.sh

Код: Выделить всё

xkbcomp $HOME/bin/layout-ru.xkb $DISPLAY
set-xkb-ua.sh

Код: Выделить всё

xkbcomp $HOME/bin/layout-ua.xkb $DISPLAY
Это будут исполняемые скрипты. Выдаем им право на исполнение.

Готово. Осталось лишь назначить запуск этих скриптов на удобные вам комбинации, средствами вашего DE или любым другим способом. В Mate это легко делается через "комбинации клавиш клавиатуры" в панели управления.

Разумеется можно настроить больше пар.
Откуда взят вышеприведенный конфиг? Его легко получить командой setxkbmap -print -verbose 10 - она покажет текущую настройку (вместе с кучей всего остального интересного). Т.е. делаете через GUI как вам удобно для пары языков, потом даете эту команду, и нижнюю часть ее вывода копируете в конфиг. Повторяете по мене надобности для других пар.

Маленький минус - в трее индикатор языков продолжает показывать ru вместо ua даже после перехода на другую пару. Но т.к. у меня для второго языка зажигается индикатор Caps Lock, то мне этот значок в трее не особо нужен в принципе. :)

no avatar

Sergei K.
Сообщения: 622
Зарегистрирован: 10 дек 2016, 00:59
Благодарил (а): 250 раз
Поблагодарили: 269 раз
Контактная информация:

Удобное переключение трех языков.

#2

13 ноя 2022, 22:49

slant писал(а):
12 ноя 2022, 22:27
Я уже давно использую в качестве основного метода переключения раскладок такой вариант:
Привет slant. Возможно я чего-то недопонял, поэтому извиняюсь, если отвечаю невпопад.
Кроме русского языка почти ежедневно использую испанский и английский и иногда немецкий в email'ах, при поиске в Интернете и в текстовых файлах в разделе Документы. При этом использую отдельно иностранный язык или сочетание русского с иностранным. Для этого в настройках LMDE 5 и Минт 20.3 выбрал переключение раскладок посредством одновременного нажатия левых клавиш Shift и Alt. Вроде быстро и удобно.
Изображение

no avatar

Сотрудник
Сообщения: 285
Зарегистрирован: 22 янв 2020, 09:04
Решено: 2
Благодарил (а): 5 раз
Поблагодарили: 79 раз
Контактная информация:

Удобное переключение трех языков.

#3

14 ноя 2022, 08:24

У меня в Mate переключение на другие кнопками [Shift+Ctrl] (кнопки находятся рядом, да и переключение простое и удобное, что может быть лучше). Сейчас в настройках клавиатуры на вкладке Раскладки добавил раскладки: Немецкая, Французская, всё поочерёдно переключается, на немецком печатаются даже буквы: öü, возможно надо добавить эти языки в систему, я на немецком и французском не печатаю.

Аватара пользователя

Автор темы
slant
Сообщения: 4469
Зарегистрирован: 21 июн 2017, 18:09
Решено: 95
Благодарил (а): 51 раз
Поблагодарили: 1966 раз
Контактная информация:

Удобное переключение трех языков.

#4

14 ноя 2022, 13:22

Sergei K. писал(а):
13 ноя 2022, 22:49
выбрал переключение раскладок посредством одновременного нажатия левых клавиш Shift и Alt. Вроде быстро и удобно.
Ни Ctrl+Shift ни Alt+Shift не решают задачу частичного переключения. Собственно мой Caps Lock для постоянного переключения тоже не решает. Вся соль во временном переключателе - имея такой переключатель (у меня правый Alt) вы экономите много времени и усилий. Вот представьте, что вам нужно было бы для набора каждой заглавной буквы вместо простого нажатия Shift: нажать Caps Lock - напечатать букву - отжать Caps Lock. Вот это и получается набор без временного переключателя. Возможно, но снижает скорость набора. И тем больше, чем вы быстрее печатаете.
Сотрудник писал(а):
14 ноя 2022, 08:24
(кнопки находятся рядом, да и переключение простое и удобное, что может быть лучше).
Выше написано, что может быть лучше. :) И тоже простое и удобное. :)

Хотя могу признать - чаще всего набор смешанного по схеме "английский+какой-то" языков нужен программистам, сисадминам и прочим IT-шникам. И переводчикам. Остальным - не столь активно.

Аватара пользователя

di_mok
Сообщения: 5469
Зарегистрирован: 27 авг 2016, 19:06
Решено: 32
Откуда: Арзамас
Благодарил (а): 1593 раза
Поблагодарили: 1276 раз
Контактная информация:

Удобное переключение трех языков.

#5

14 ноя 2022, 19:19

slant писал(а):
14 ноя 2022, 13:22
Вся соль во временном переключателе - имея такой переключатель (у меня правый Alt) вы экономите много времени и усилий
А вот, действительно... И почему я раньше о такой плюшке не задумывался? [Ушёл пилить]
Настоящая водка — это не пьянство, а ключ к своей совести, с нее-то и начинается настоящая мудрость. (c)
Изображение

Аватара пользователя

Белый Кролик
Сообщения: 642
Зарегистрирован: 24 май 2018, 14:35
Решено: 10
Благодарил (а): 354 раза
Поблагодарили: 180 раз
Контактная информация:

Удобное переключение трех языков.

#6

14 ноя 2022, 20:30

slant, Нравится как в гноме super+пробел+пробел переключает пары языков ( у меня тоже 3 языка, раньше мучился сильно при переключении), просто super+пробел переключает раскладку внутри пары.

Аватара пользователя

Автор темы
slant
Сообщения: 4469
Зарегистрирован: 21 июн 2017, 18:09
Решено: 95
Благодарил (а): 51 раз
Поблагодарили: 1966 раз
Контактная информация:

Удобное переключение трех языков.

#7

14 ноя 2022, 23:30

Белый Кролик писал(а):
14 ноя 2022, 20:30
просто super+пробел переключает раскладку внутри пары.
Это, кажется, умеют лишь GNOME да KDE, причем на счет последнего я уже не уверен... А Гнум это из винды спер. Не все же ей решения из линукса тягать. :) Но там, вроде бы, это только для близких языковых групп работает (русский-украинский и т.д.)
А у меня здесь - любые пары (или даже не пары - конфиг может содержать очень сложные настройки клавиатуры и раскладок).

Аватара пользователя

Белый Кролик
Сообщения: 642
Зарегистрирован: 24 май 2018, 14:35
Решено: 10
Благодарил (а): 354 раза
Поблагодарили: 180 раз
Контактная информация:

Удобное переключение трех языков.

#8

15 ноя 2022, 09:48

slant, Гнум из МакОс спёр (это стандартная комбинация клавиш для переключения раскладки), в виндовс позже добавили (где-то в версии 1809 если не ошибаюсь). Языковые группы могут быть любые, у меня например русский, финский и английский, это работает так:
допустим есть 3 языка, то
S + пробел = переключение между 1 и 2
S + пробел + пробел = переключение 1 и 3 (1 раз) и дальше S + пробел = переключение 1 и 3 как было между 1 и 2
если включен 3 и S + пробел + пробел = переключение 2 и 3 и дальше S + пробел = переключение 2 и 3, т.е. пары создаются на ходу (не знаю понятно объяснил или нет). :smile:

Ответить

Вернуться в «Mate»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя