Gentoo Archives: gentoo-user-ru

From: Alex Efros <powerman@××××××××.name>
To: gentoo-user-ru@l.g.o
Subject: [gentoo-user-ru] linux hotkeys suxx
Date: Sat, 02 Jun 2012 05:57:08
Message-Id: 20120602055619.GC25247@home.power
1 Hi!
2
3 Походу, с горячими кнопками в линухе творится какая-то фигня. В принципе,
4 это не новость, все давно в курсе. Но я тут на днях снова погулял по этим
5 граблям, поэтому решил описать всё на что наткнулся - может всё не так
6 плохо и кто-нить знает как решить/обойти хоть некоторые из этих проблем.
7
8 - Многие комбинации кнопок передаются через Esc-последовательности.
9 Из-за этого в терминале не работает одиночное нажатие Esc - он ждёт, не
10 пойдёт ли следом Esc-последовательность. Решается в некоторых
11 приложениях (пока видел только в mc) заданием таймаута на ожидание
12 Esc-последовательности после одиночного Esc. Что криво уже хотя бы
13 потому, что это требуется поддерживать индивидуально в приложениях -
14 если бы этот таймаут настраивался в xterm, было бы немного адекватнее.
15
16 - Из-за Esc-последовательностей возникают некоторые проблемы. Например,
17 комбинация Alt+1 в Vim видна как "<Esc>1". Соответственно, возникает
18 конфликт с отдельными нажатиями Esc и 1. Типичный пример: для выхода из
19 режима вставки и перехода в начало файла требуется нажать Esc и 1G.
20 Но при наличии обработчика Alt+1 нажатие Esc и 1 вызывает этот
21 обработчик. Решение - после нажатия Esc подождать секунду, а уже потом
22 нажимать 1G - дико раздражает.
23
24 - Если Esc-последовательности отключить (включить XTerm*eightBitInput и
25 выключить XTerm*metaSendsEscape), то в Vim всё становится хорошо:
26 Alt+1 посылает "<A-1>", и больше не конфликтует с "<Esc>1".
27 Но на самом деле Alt+что-то теперь посылает разные юникодные символы,
28 поэтому ввод этих символов (даже через compose key) обрабатывается в Vim
29 как нажатие Alt+что-то. И приходится конкретно эти символы вводить через
30 Ctrl-V. Но всё это терпимо, и больше чем на пол беды не тянет.
31 Настоящая беда в том, что в mc напрочь отрубаются все Alt-комбинации,
32 и я не смог через mc.keymap вообще никак уговорить его реагировать на
33 юникодные символы, посылаемые xterm-ом. Пришлось возвращать настройки
34 xterm обратно и отказываться от использования Alt+1 в Vim.
35
36 - У меня не работают никакие комбинации начинающиеся на Ctrl+Shift, нигде -
37 даже xkbwatch не видит Ctrl+Shift. Насколько я понимаю, это связано с
38 тем, что у меня по Ctrl+Shift переключается язык ru/en, и Xkb просто
39 "съедает" Ctrl+Shift лишая другие приложения возможности увидеть любые
40 комбинации содержащие Ctrl+Shift.
41
42 - Более того, схожая проблема "съедания" кнопок наблюдается и в других
43 случаях. Например, у меня в fluxbox настроено переключение на предыдущий
44 рабочий стол по кнопке Win (a.k.a. Super_L a.k.a. Mod4). В результате,
45 никакие комбинации Win+что-то ни в одном приложении больше не работают.
46 Точнее, они работают, но уже после того, как сменится рабочий стол. :(
47 Как я догадываюсь, это вызвано тем, что комбинация кнопок обрабатывается
48 не в момент отпускания кнопки (как, вероятно, в винде), а в момент её
49 нажатия. Если бы был способ переключить Xorg в режим обработки кнопок в
50 момент отпускания, возможно удалось бы более точно определять нажатую
51 комбинацию и исключить эти ложные срабатывания по первым кнопкам
52 комбинации вроде Ctrl+Shift или Win.
53
54 Одним словом, всё это полная лажа. :( Линух 21 год назад родился как
55 эмулятор терминала, но до сих пор делает это паршиво.
56
57 --
58 WBR, Alex.

Replies

Subject Author
Re: [gentoo-user-ru] linux hotkeys suxx Sergey Kobzar <sergey.kobzar@××××.ru>
Re: [gentoo-user-ru] linux hotkeys suxx "Голубев Александр" <GGG12@××××××.ru>