在linux上強制putty使用右鍵粘貼
有沒有辦法
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,我認為修改原始碼中的一行更容易。