css拦截F10

css拦截F10

我正在使用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_hotkeysno不会禁用它。我找不到非编程的方法来修复它,但如果你自己构建 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(

相关内容