Keyboard-Shortcuts

在linux上強制putty使用右鍵粘貼

  • February 28, 2020

有沒有辦法putty在 Zorin OS(基於 Ubuntu)上強制允許通過右鍵點擊粘貼。

我喜歡windows的行為,當按下右鍵時,粘貼選定的東西。

正如使用者 @ateijelo他們的回答中所說,在 Unix 上無法使用“妥協(中間擴展,右粘貼)”,因為它沒有實現。我不知道為什麼不是,您應該向 Putty 開發人員詢問,很可能甚至沒有人要求它。但是,由於開源的性質,您始終可以修改程序的原始碼以滿足您的需求並使用它。以下更新檔將修改右鍵點擊的預設行為並使其粘貼文本:

diff --git a/unix/gtkwin.c b/unix/gtkwin.c
index 5660ee9..4f2ec2b 100644
--- a/unix/gtkwin.c
+++ b/unix/gtkwin.c
@@ -447,7 +447,7 @@ static Mouse_Button translate_button(Mouse_Button button)
    if (button == MBT_MIDDLE)
        return MBT_PASTE;
    if (button == MBT_RIGHT)
-        return MBT_EXTEND;
+        return MBT_PASTE;
    return 0;                          /* shouldn't happen */
}

diff --git a/unix/uxsftpserver.c b/unix/uxsftpserver.c
index a90344e..6fab0ba 100644
--- a/unix/uxsftpserver.c
+++ b/unix/uxsftpserver.c
@@ -412,16 +412,6 @@ static void uss_fstat(SftpServer *srv, SftpReplyBuilder *reply,
    }
}

-#if !HAVE_FUTIMES
-static inline int futimes(int fd, const struct timeval tv[2])
-{
-    /* If the OS doesn't support futimes(3) then we have to pretend it
-     * always returns failure */
-    errno = EINVAL;
-    return -1;
-}
-#endif
-
/*
 * The guts of setstat and fsetstat, macroised so that they can call
 * fchown(fd,...) or chown(path,...) depending on parameters.

您必須獲取 Putty 原始碼、應用更新檔並重新建構 Putty。雖然這是一個簡單的過程。

複製膩子儲存庫:

git clone git://git.tartarus.org/simon/putty.git && cd putty

將上面粘貼的更新檔保存到 MBT_PASTE.patch 並應用它(如果直接從http://drabczyk.org/MTB_PASTE.patch下載更新檔失敗):

git apply MTB_PASTE.patch

建構膩子:

$ cd unix
$ ../mkfiles.pl  && ../mkauto.sh
$ make -j$(nproc) -f Makefile.gtk LDFLAGS="-Wl,--no-as-needed,-ldl"

在我的機器上建構只需 6 秒。啟動新建的 Putty 二進製文件:

./putty

您應該看到所有已保存的會話和設置,就像您使用發行版的包管理器盯著安裝在系統範圍內的 Putty 一樣。您現在應該能夠通過右鍵點擊粘貼選定的文本。如果您不想自己重新編譯 Putty 並且您 相信我,您可以從這裡 http://drabczyk.org/putty獲得預編譯的二進製文件。

這種方法當然有它的缺點。我介紹的更改尚未被 Putty 開發人員正式接受,這意味著您現在正在使用 fork。如果您使用發行版的包管理器替換安裝的 Putty 二進製文件,則每次使用發行版的包管理器更新 Putty 時都會替換它(有時您甚至可能沒有意識到 Putty 正在更新,例如在執行大規模系統升級時) . 或者,您可以將 Putty 的 fork 放在其他地方,例如放在並添加到您的~/bin前面,以便在系統範圍的 Putty 二進製文件之前選擇 fork。我也不知道這個小小的變化會導致哪些不想要的副作用(如果有的話)。~/bin``$PATH

我也在考慮使用xdotool,但我不確定你是執行 X 還是 Wayland,我認為修改原始碼中的一行更容易。

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