Только начинать нужно не с пустого стека, иначе "aabb" тоже палиндромом станет. Чтобы заработало, придется сначала половину строки в этот стек сложить без удалений.
Можно попробовать не FOUR_LEVEL, а PC_ALT_LEVEL2. Тогда должно будет на втором месте задаваться значение с ALT. Так, например, написано в переключении раскладок по ALT+что-то, возможно и другие значения задать получится.
У меня работало, но при этом ISO_First_Group было назначено и на другую комбинацию. Может с этими связано.
Если имеется ввиду комбинация Alt_L+Alt_R — латиница, Shift_L+Shift_R — кириллица, то без xcape получится. Мы можем задать значение шифтов в модификатором Shift (просто второй параметр) и значение альтов с модификатором Alt (тип -> PC_ALT_LEVEL2, и теперь второй параметр). Это похоже на то, что было выше.
Есть плагин vim-xkbswitch, который сохраняет раскладку в insert и при переходе в normal автоматически переключается на латинскую и умеет реагировать на горячие клавиши в русской раскладке.
Можно, но с некоторым побочным эффектом. Для этого нужно вернуть AltGr значение Alt_R (или другое, но нужно, чтобы оно не использовалось на других клавишах) и задать значение с шифтом ISO_Last_Group, дальше задать такое же значение на шифтах при нажатом Alt_R:
И чтобы переключение на английскую раскладку было при нажатии AltGr, используем $ xcape -t <xxx> -e "Alt_R=ISO_First_Group.
Здесь нужно либо подобрать время, через которое будет срабатывать переключение, либо убрать его вообще, но тогда, если сначала нажимается шифт, а потом альт, нужно отпускать вместе (иначе сработает переключение на английский).
Как сделать по другому пока не представляю, потому что комбинацию AltGr+Shift просто не задать.
С другой стороны, по этой же схеме, но без xcape можно сделать, чтобы в одном порядке переключало в одну сторону, а в обратном — в другую.
Information
Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Только начинать нужно не с пустого стека, иначе "aabb" тоже палиндромом станет. Чтобы заработало, придется сначала половину строки в этот стек сложить без удалений.
Использую i3, просто в конфиге прописал команду
xkbcomp ...
В гноме вроде можно через настройки добавить в автозапуск эту команду
Можно попробовать не FOUR_LEVEL, а PC_ALT_LEVEL2. Тогда должно будет на втором месте задаваться значение с ALT. Так, например, написано в переключении раскладок по ALT+что-то, возможно и другие значения задать получится.
Чтобы
AltGr + [ = [
как значение на третьем уровне, надо модификатор этого уровня определитьА еще для самой клавиши код указать нужно (скорее всего
key <AD12> { ...
)У меня работало, но при этом ISO_First_Group было назначено и на другую комбинацию. Может с этими связано.
Если имеется ввиду комбинация Alt_L+Alt_R — латиница, Shift_L+Shift_R — кириллица, то без xcape получится. Мы можем задать значение шифтов в модификатором Shift (просто второй параметр) и значение альтов с модификатором Alt (тип -> PC_ALT_LEVEL2, и теперь второй параметр). Это похоже на то, что было выше.
Есть плагин vim-xkbswitch, который сохраняет раскладку в insert и при переходе в normal автоматически переключается на латинскую и умеет реагировать на горячие клавиши в русской раскладке.
https://github.com/lyokha/vim-xkbswitch
Можно, но с некоторым побочным эффектом. Для этого нужно вернуть
AltGr
значениеAlt_R
(или другое, но нужно, чтобы оно не использовалось на других клавишах) и задать значение с шифтомISO_Last_Group
, дальше задать такое же значение на шифтах при нажатомAlt_R
:И чтобы переключение на английскую раскладку было при нажатии
AltGr
, используем$ xcape -t <xxx> -e "Alt_R=ISO_First_Group
.Здесь нужно либо подобрать время, через которое будет срабатывать переключение, либо убрать его вообще, но тогда, если сначала нажимается шифт, а потом альт, нужно отпускать вместе (иначе сработает переключение на английский).
Как сделать по другому пока не представляю, потому что комбинацию
AltGr+Shift
просто не задать.С другой стороны, по этой же схеме, но без
xcape
можно сделать, чтобы в одном порядке переключало в одну сторону, а в обратном — в другую.