public inbox for gentoo-user-ru@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-user-ru] linux hotkeys suxx
@ 2012-06-02  5:56 Alex Efros
  2012-06-02 20:53 ` Sergey Kobzar
  2012-06-02 23:22 ` Голубев Александр
  0 siblings, 2 replies; 7+ messages in thread
From: Alex Efros @ 2012-06-02  5:56 UTC (permalink / raw
  To: gentoo-user-ru

Hi!

Походу, с горячими кнопками в линухе творится какая-то фигня. В принципе,
это не новость, все давно в курсе. Но я тут на днях снова погулял по этим
граблям, поэтому решил описать всё на что наткнулся - может всё не так
плохо и кто-нить знает как решить/обойти хоть некоторые из этих проблем.

- Многие комбинации кнопок передаются через Esc-последовательности.
  Из-за этого в терминале не работает одиночное нажатие Esc - он ждёт, не
  пойдёт ли следом Esc-последовательность. Решается в некоторых
  приложениях (пока видел только в mc) заданием таймаута на ожидание
  Esc-последовательности после одиночного Esc. Что криво уже хотя бы
  потому, что это требуется поддерживать индивидуально в приложениях -
  если бы этот таймаут настраивался в xterm, было бы немного адекватнее.

- Из-за Esc-последовательностей возникают некоторые проблемы. Например,
  комбинация Alt+1 в Vim видна как "<Esc>1". Соответственно, возникает
  конфликт с отдельными нажатиями Esc и 1. Типичный пример: для выхода из
  режима вставки и перехода в начало файла требуется нажать Esc и 1G.
  Но при наличии обработчика Alt+1 нажатие Esc и 1 вызывает этот
  обработчик. Решение - после нажатия Esc подождать секунду, а уже потом
  нажимать 1G - дико раздражает.

- Если Esc-последовательности отключить (включить XTerm*eightBitInput и
  выключить XTerm*metaSendsEscape), то в Vim всё становится хорошо:
  Alt+1 посылает "<A-1>", и больше не конфликтует с "<Esc>1".
  Но на самом деле Alt+что-то теперь посылает разные юникодные символы,
  поэтому ввод этих символов (даже через compose key) обрабатывается в Vim
  как нажатие Alt+что-то. И приходится конкретно эти символы вводить через
  Ctrl-V. Но всё это терпимо, и больше чем на пол беды не тянет.
  Настоящая беда в том, что в mc напрочь отрубаются все Alt-комбинации,
  и я не смог через mc.keymap вообще никак уговорить его реагировать на
  юникодные символы, посылаемые xterm-ом. Пришлось возвращать настройки
  xterm обратно и отказываться от использования Alt+1 в Vim.

- У меня не работают никакие комбинации начинающиеся на Ctrl+Shift, нигде -
  даже xkbwatch не видит Ctrl+Shift. Насколько я понимаю, это связано с
  тем, что у меня по Ctrl+Shift переключается язык ru/en, и Xkb просто
  "съедает" Ctrl+Shift лишая другие приложения возможности увидеть любые
  комбинации содержащие Ctrl+Shift.

- Более того, схожая проблема "съедания" кнопок наблюдается и в других
  случаях. Например, у меня в fluxbox настроено переключение на предыдущий
  рабочий стол по кнопке Win (a.k.a. Super_L a.k.a. Mod4). В результате,
  никакие комбинации Win+что-то ни в одном приложении больше не работают.
  Точнее, они работают, но уже после того, как сменится рабочий стол. :(
  Как я догадываюсь, это вызвано тем, что комбинация кнопок обрабатывается
  не в момент отпускания кнопки (как, вероятно, в винде), а в момент её
  нажатия. Если бы был способ переключить Xorg в режим обработки кнопок в
  момент отпускания, возможно удалось бы более точно определять нажатую
  комбинацию и исключить эти ложные срабатывания по первым кнопкам
  комбинации вроде Ctrl+Shift или Win.

Одним словом, всё это полная лажа. :( Линух 21 год назад родился как
эмулятор терминала, но до сих пор делает это паршиво.

-- 
			WBR, Alex.



^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2012-06-03 10:25 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-06-02  5:56 [gentoo-user-ru] linux hotkeys suxx Alex Efros
2012-06-02 20:53 ` Sergey Kobzar
2012-06-03  8:59   ` Alex Efros
2012-06-02 23:22 ` Голубев Александр
2012-06-02 23:28   ` Голубев Александр
2012-06-03 10:24     ` Alex Efros
2012-06-03  9:19   ` Alex Efros

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox