|
keyboard shortcuts, как отключить лишнее? |
|
|
|
 |
Ответов
|
Dec 26 2014, 21:31
|
Гуру
     
Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881

|
Ну если гора не идет к Магомету, то.... В общем, это нельзя сконфигурировать. Только конкретным ломом. Проблема в коде libvte (пакет vte3). Исправил сочетания Ctrl/Shift+Home/End (не пропускались с модификаторами, это гуглем нарыл), и Ctrl/Shift+Insert (захардкодены на терминальский Copy/Paste - это сам отрезал), и еще заодно всякие там PgUp/PgDn с модификаторами, второе место с Shift+Home/End, ну и т.п. Лекарство: CODE diff -uNr a/src/keymap.c b/src/keymap.c --- a/src/keymap.c 2013-06-08 15:46:26.000000000 +0400 +++ b/src/keymap.c 2014-12-27 00:16:09.000000000 +0300 @@ -278,6 +278,8 @@ {cursor_all, keypad_all, fkey_vt220, 0, _VTE_CAP_CSI "1~", -1, X_NULL}, {cursor_all, keypad_all, fkey_hp, 0, _VTE_CAP_ESC "h", -1, X_NULL}, {cursor_all, keypad_all, fkey_nothpvt, 0, X_NULL, 0, "kh"}, + {cursor_default, keypad_all, fkey_default, 0, _VTE_CAP_CSI "H", -1, X_NULL}, + {cursor_app, keypad_all, fkey_default, 0, _VTE_CAP_SS3 "H", -1, X_NULL}, {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, X_NULL}, }; @@ -285,6 +287,8 @@ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, "@7"}, {cursor_all, keypad_all, fkey_vt220, 0, _VTE_CAP_CSI "4~", -1, X_NULL}, {cursor_all, keypad_all, fkey_notvt220, 0, X_NULL, 0, "@7"}, + {cursor_default, keypad_all, fkey_default, 0, _VTE_CAP_CSI "F", -1, X_NULL}, + {cursor_app, keypad_all, fkey_default, 0, _VTE_CAP_SS3 "F", -1, X_NULL}, {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, X_NULL}, }; @@ -1255,6 +1259,8 @@ gboolean fkey = FALSE; /* Determine if this key gets modifiers. */ switch (keyval) { + case GDK_KEY (Home): + case GDK_KEY (End): case GDK_KEY (Up): case GDK_KEY (Down): case GDK_KEY (Left): diff -uNr a/src/vte.c b/src/vte.c --- a/src/vte.c 2013-06-08 15:46:27.000000000 +0400 +++ b/src/vte.c 2014-12-27 00:52:06.000000000 +0300 @@ -5391,7 +5391,8 @@ break; case GDK_KEY (KP_Insert): case GDK_KEY (Insert): - if (modifiers & GDK_SHIFT_MASK) { + if (modifiers & GDK_SHIFT_MASK + && terminal->pvt->cursor_mode != VTE_KEYMODE_APPLICATION) { if (modifiers & GDK_CONTROL_MASK) { vte_terminal_paste_clipboard(terminal); handled = TRUE; @@ -5401,7 +5402,8 @@ handled = TRUE; suppress_meta_esc = TRUE; } - } else if (modifiers & GDK_CONTROL_MASK) { + } else if (modifiers & GDK_CONTROL_MASK + && terminal->pvt->cursor_mode != VTE_KEYMODE_APPLICATION) { vte_terminal_copy_clipboard(terminal); handled = TRUE; suppress_meta_esc = TRUE; @@ -5411,7 +5413,8 @@ case GDK_KEY (KP_Up): case GDK_KEY (Up): if (modifiers & GDK_CONTROL_MASK - && modifiers & GDK_SHIFT_MASK) { + && modifiers & GDK_SHIFT_MASK + && terminal->pvt->cursor_mode != VTE_KEYMODE_APPLICATION) { vte_terminal_scroll_lines(terminal, -1); scrolled = TRUE; handled = TRUE; @@ -5421,7 +5424,8 @@ case GDK_KEY (KP_Down): case GDK_KEY (Down): if (modifiers & GDK_CONTROL_MASK - && modifiers & GDK_SHIFT_MASK) { + && modifiers & GDK_SHIFT_MASK + && terminal->pvt->cursor_mode != VTE_KEYMODE_APPLICATION) { vte_terminal_scroll_lines(terminal, 1); scrolled = TRUE; handled = TRUE; @@ -5430,7 +5434,8 @@ break; case GDK_KEY (KP_Page_Up): case GDK_KEY (Page_Up): - if (modifiers & GDK_SHIFT_MASK) { + if (modifiers & GDK_SHIFT_MASK + && terminal->pvt->cursor_mode != VTE_KEYMODE_APPLICATION) { vte_terminal_scroll_pages(terminal, -1); scrolled = TRUE; handled = TRUE; @@ -5439,7 +5444,8 @@ break; case GDK_KEY (KP_Page_Down): case GDK_KEY (Page_Down): - if (modifiers & GDK_SHIFT_MASK) { + if (modifiers & GDK_SHIFT_MASK + && terminal->pvt->cursor_mode != VTE_KEYMODE_APPLICATION) { vte_terminal_scroll_pages(terminal, 1); scrolled = TRUE; handled = TRUE; @@ -5448,7 +5454,8 @@ break; case GDK_KEY (KP_Home): case GDK_KEY (Home): - if (modifiers & GDK_SHIFT_MASK) { + if (modifiers & GDK_SHIFT_MASK + && terminal->pvt->cursor_mode != VTE_KEYMODE_APPLICATION) { vte_terminal_maybe_scroll_to_top(terminal); scrolled = TRUE; handled = TRUE; @@ -5456,7 +5463,8 @@ break; case GDK_KEY (KP_End): case GDK_KEY (End): - if (modifiers & GDK_SHIFT_MASK) { + if (modifiers & GDK_SHIFT_MASK + && terminal->pvt->cursor_mode != VTE_KEYMODE_APPLICATION) { vte_terminal_maybe_scroll_to_bottom(terminal); scrolled = TRUE; handled = TRUE;
Теперь в gnome-terminal в mcedit заработали столь необходимые Ctrl-Ins, Shift-Ins, Ctrl-Home, Shift-Home, Ctrl-End, Shift-End, Shift-PgDn, Shift-PgUp. На всякий случай и .rpm исправленный (пришлось его еще и gzip-ом, а то форум не принимает):
|
|
|
|
|
Dec 27 2014, 13:39
|
Гуру
     
Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881

|
Цитата(AHTOXA @ Dec 27 2014, 09:05)  А для чего они могут быть ещё необходимы, кроме как для copy/paste? Для него самого, только для выделенного в mcedit текста (шифт+стрелки, или по F3), и между несколькими запущенными mcedit, а не для глобального гномовского клипборда - оттуда paste можно сделать через правую кнопку мыши, или через отдельный key binding, которые по умолчанию Ctrl-C/Ctrl-V (Ctrl-C приходится откручивать по любому, и какой гейтс придумал этот нужнейший сигнал на мгновенный выход из приложения, SIGINT, сделать "copy"), и надо это раз в году, из чего то гуёвого копировать в нормальное (т.е. консольное) приложение. То есть, чтобы ( http://linux.die.net/man/1/mcedit ) работало вот это (я к этому насмерть привык, а в mcedit пишу 90% всего кода, касаемого софта под линукс (как и Far manager, когда дело касается написания дров под windows)): In addition to that, Shift combined with arrows does text highlighting (if supported by the terminal): Ctrl-Ins copies to the file ~/.mc/cedit/cooledit.clip, Shift-Ins pastes from ~/.mc/cedit/cooledit.clip, Shift-Del cuts to ~/.mc/cedit/cooledit.clip, and Ctrl-Del deletes highlighted text. - заметьте, свой "clipboard", основанный на файле ~/.mc/cedit/cooledit.clip, а не гуёвый глобальный, на который жестко были привязки Ctrl/Shift-Ins/Del в libvte. В общем, все это многолетняя привычка писать код в Far Manager и в mcedit - и, когда, я выделяю текст, но он не копируется по Ctrl-Ins / Shift-Ins, или вставляется нечто неожиданное, это жестоко бесит.
|
|
|
|
Сообщений в этой теме
SM keyboard shortcuts Dec 25 2014, 09:49 AHTOXA Я отучал gnome-terminal отъедать F10 у Midnight co... Dec 25 2014, 13:08 andrew_b Цитата(AHTOXA @ Dec 25 2014, 17:08) Я оту... Dec 27 2014, 15:50  SM Цитата(andrew_b @ Dec 27 2014, 18:50) А ш... Dec 27 2014, 16:42 SM У меня это находится в .config/gtk-3.0/gtk.css :
К... Dec 25 2014, 14:36   AHTOXA Цитата(SM @ Dec 27 2014, 18:39) Для него ... Dec 27 2014, 20:00 SM с xterm (да и с Konsole) и у меня все без патчей р... Dec 27 2014, 20:05
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|