Answers:
Super_L
是X键符。Tmux在终端中运行。由终端仿真器将keyym转换为字符序列由您决定。因此,您必须同时配置终端仿真器和tmux。
查看tmux文档,该前缀只能是带有可选修饰符的已知键名。所以,你可以设置TMUX前缀组合键,你不使用,也就是说M-F12
,并得到您的终端发送的字符序列M-F12
当你按下Super_L
。随着一点点更多的工作,你可以使用一键,你的键盘可能没有(TMUX接受F13
通过F20
为重点的名字,但他们必须在terminfo中被宣布)。
在终端仿真器端,您必须安排Super_L
生成键序列\e\e[24~
(for M-F12
)或\e[34~
(for F20
)(其中\e
转义字符)。如何执行此操作取决于终端仿真器(有些配置不足以完成此操作)。使用xterm,它是通过X资源完成的:
! 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配置工具来完成。
Super_L
是一个X键符号,因此您大概在某个地方有一个X服务器(如果您是从Windows登录的,我想您将键称为左Windows键)。Tmux在终端中运行,并以字节为单位读取其输入,并将功能键转换为转义序列。远程登录是透明的,ssh只是传输构成转义序列的字节。
你不能 绑定键将调用该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
从表面上看,虽然,它不看太硬修改; 也许是一个周末(著名的遗言;))项目?
我无法为自定义修饰键设置前缀,但是我确实结合了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等)的窗口管理器,这些内容都适用。