我正在使用cssh
(cluster-ssh) 同时 ssh 到多台机器。一切都很好,除了cssh
拦截F10键(在 csssh 中打开 menu.txt )。
这是非常不幸的,因为我使用了F10很多,例如关闭午夜指挥官。
有没有办法进行配置cssh
,使其忽略F10并允许它通过?
我在 Debian Wheezy 上使用 LXDE/Openbox
更新:过去,我在使用时也遇到过类似的terminator
终端模拟器吃东西的问题。通过将以下内容添加到我的中解决了这个问题F10midnight commander
/usr/share/themes/Clearlooks/gtk-2.0/gtkrc
binding "NoKeyboardNavigation" {
unbind "<shift>F10"
}
class "*" binding "NoKeyboardNavigation"
然而这对 没有影响cssh
。因此我怀疑,这不是由窗口管理器引起的,而是由其cssh
本身引起的。
答案1
这种行为实际上并不是 cssh 的一部分,而是它使用的小部件工具包的一部分,陣容,这就是为什么它不会出现在可配置热键列表中并且设置use_hotkeys
为no
不会禁用它。我找不到非编程的方法来修复它,但如果你自己构建 cssh (不难)您可以对代码进行一些小的更改以重新绑定,F10这样它就不会执行任何操作。lib/App/ClusterSSH.pm
在函数中添加以下行create_menubar()
:
$windows{main_window}->bind("all", "<Key-F10>" => sub {});
修补:
diff --git a/lib/App/ClusterSSH.pm b/lib/App/ClusterSSH.pm
index cc71507..de4706e 100644
--- a/lib/App/ClusterSSH.pm
+++ b/lib/App/ClusterSSH.pm
@@ -1737,6 +1737,7 @@ sub create_menubar() {
my ($self) = @_;
$self->debug( 2, "create_menubar: started" );
$menus{bar} = $windows{main_window}->Menu();
+ $windows{main_window}->bind("all", "<Key-F10>" => sub {});
$windows{main_window}->configure( -menu => $menus{bar}, );
$menus{file} = $menus{bar}->cascade(