Ctrl+b저도 비슷 하긴 emacs
한데 이해는 가네요. 사용하지 않는 키에 대해 단일 키 입력에 바인딩할 수 있는지 궁금합니다. 즉, Super_L(왼쪽 Windows 키라고도 합니다. 그래서 Super_L을 xev
터미널에서 시작하고 해당 키를 누르라고 했습니다.)
답변1
Super_L
X 키 기호입니다. Tmux는 터미널에서 실행됩니다. 터미널 에뮬레이터를 통해 키보드 기호를 문자 시퀀스로 변환합니다. 따라서 터미널 에뮬레이터와 tmux를 구성해야 합니다.
tmux 문서를 보면 접두사는 선택적 수정자가 있는 알려진 키 이름만 될 수 있습니다. 따라서 tmux 접두어를 사용하지 않는 키 조합(예: )으로 설정하고 이를 누를 때 M-F12
터미널이 일련의 문자를 보내도록 할 수 있습니다 . 더 많은 작업을 수행하면 키보드에 없는 키를 사용할 수 있습니다(tmux는 키 이름으로 허용 하지만 terminfo에 선언해야 함).M-F12
Super_L
F13
F20
터미널 에뮬레이터 측에서는 (for ) 또는 (for )(여기서 이스케이프 문자는) Super_L
키 시퀀스를 생성 하도록 배열해야 합니다. 이를 수행하는 방법은 터미널 에뮬레이터에 따라 다릅니다(일부 터미널 에뮬레이터는 이 작업을 수행할 만큼 충분히 구성되지 않았습니다). xterm을 사용하면 X 리소스를 통해 수행됩니다.\e\e[24~
M-F12
\e[34~
F20
\e
! Make Super_L act as Meta+F12
XTerm.VT100.translations: #override \
<Key>Super_L: string("\033\033[24~")
일반적으로 수정자인 장애물에 부딪힐 수 있으며 Super_L
, 수정자가 아닌 것이 필요한 경우 수정자 키가 항상 작동하지 않는 경우도 있습니다. 수정자가 되고 싶지 않다면 Super_L
해당 수정자를 제거하거나 (덜 혼란스럽게) 물리적 키에 대해 다른 키 기호를 사용할 수 있습니다. 이는 xmodmap(구식이며 이해하기 쉬움), xkb(현대적이고 문서화가 부족하며 강력하고 복잡함) 또는 데스크탑 환경의 GUI 구성 도구를 통해 수행할 수 있습니다.
답변2
당신은 할 수 없습니다. 키를 바인딩하면 이 cmd_bind_key_parse
함수가 호출됩니다.cmd-bind-key.c
차례로 (결국) key_string_get_modifiers
전화key-string.c
:
/* Find modifiers. */
105 int
106 key_string_get_modifiers(const char **string)
107 {
108 int modifiers;
109
110 modifiers = 0;
111 while (((*string)[0] != '\0') && (*string)[1] == '-') {
112 switch ((*string)[0]) {
113 case 'C':
114 case 'c':
115 modifiers |= KEYC_CTRL;
116 break;
117 case 'M':
118 case 'm':
119 modifiers |= KEYC_ESCAPE;
120 break;
121 case 'S':
122 case 's':
123 modifiers |= KEYC_SHIFT;
124 break;
125 }
126 *string += 2;
127 }
128 return (modifiers);
129 }
이것tmux.c
#define
이 파일에는 수정자 키 선언이 포함되어 있습니다.
106 /* Key modifier bits. */
107 #define KEYC_ESCAPE 0x2000
108 #define KEYC_CTRL 0x4000
109 #define KEYC_SHIFT 0x8000
110 #define KEYC_PREFIX 0x10000
하지만 표면적으로는 그렇지 않아 보여요또한수정하기 어렵습니다. 아마도 주말(유명한 마지막 말 ;)) 프로젝트일까요?
답변3
사용자 정의 수정자 키에 대한 접두사를 설정할 수 없었지만 Gnome 및 Metacity에서 사용자 정의 수정자 키 조합을 사용하여 tmux 바인딩을 정의할 수 있었습니다. 예를 들어, 현재 패널에서 각각 위아래로 이동하려면 Mod4
+ k및 Mod4
+를 매핑합니다.j
gconftool-2 --set /apps/metacity/keybinding_commands/command_1 --type string "tmux select-pane -D"
gconftool-2 --set /apps/metacity/keybinding_commands/command_2 --type string "tmux select-pane -U"
gconftool-2 --set /apps/metacity/global_keybindings/run_command_1 --type string "<Mod4>j"
gconftool-2 --set /apps/metacity/global_keybindings/run_command_2 --type string "<Mod4>k"
이를 통해 tmux 바인딩을 Windows 키 등과 결합할 수 있습니다. 이는 전역 키보드 단축키 정의를 허용하는 모든 창 관리자(Compiz, KWin 등)에 적용됩니다.
답변4
당신이 이것을 원하는 것 같습니다 : https://lists.gnu.org/archive/html/screen-users/2009-12/msg00144.html