Escape-Characters

cssh 攔截 F10

  • May 28, 2015

我正在使用cssh(cluster-ssh) 同時 ssh 到多台機器。一切都很好,除了cssh攔截F10鍵(在 cssh 中打開菜單。

這是非常不幸的,因為我使用F10了很多,例如關閉午夜指揮官。

有沒有辦法配置cssh讓它忽略F10並讓它通過?

我在 Debian Wheezy 上使用 LXDE/Openbox

更新:過去,我在使用terminator終端模擬器F10時遇到了類似的問題midnight commander。通過將以下內容添加到我的/usr/share/themes/Clearlooks/gtk-2.0/gtkrc

binding "NoKeyboardNavigation" {
   unbind "<shift>F10"
}

class "*" binding "NoKeyboardNavigation"

然而,這對 沒有影響cssh。因此我懷疑,這不是由視窗管理器引起的,而是由cssh它本身引起的。

這種行為實際上不是 cssh 的一部分,而是它使用的小元件工具包Tk,這就是為什麼它不會出現在可配置熱鍵列表中並且設置use_hotkeysno不會禁用它的原因。我找不到修復它的非程式方式,但如果您自己建構 cssh(不難),您可以對程式碼進行小幅更改以重新綁定F10,這樣它就什麼也不做。lib/App/ClusterSSH.pmcreate_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(

引用自:https://unix.stackexchange.com/questions/163157