パテがLinux上で右クリックして貼り付けを使用するように強制する

パテがLinux上で右クリックして貼り付けを使用するように強制する

puttyZorin OS(Ubuntuベース)で右クリックして強制的に貼り付けることを許可する方法はありますか?

右ボタンを押すと、選択項目が貼り付けられるWindowsの動作が気に入ります。

答え1

ユーザーとして @teijeloで言った彼らの答えまだ実装されていないため、Unixでは「Compromise(中央展開、右ペースト)」は使用できません。なぜできないのかわかりません。 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を再構築する必要があります。それは簡単なプロセスです。

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開発者によって正式に承認されていません。 クロス。ディストリビューションのパッケージマネージャとしてインストールされたPuttyバイナリをこれに置き換えると、ディストリビューションのパッケージマネージャを使用してPuttyが更新されるたびに置き換えられます(時には、大規模システムを実行するときと同じようにPuttyが更新されていることに気付かない場合があります)。 。あるいは、~/binPuttyの前などの他の場所~/binにPuttyフォークを配置して、$PATHフォークがシステム全体のPuttyバイナリよりも前に選択されるようにすることもできます。そして、この小さな変化がどのような副作用をもたらすのかわかりません。

私も使用を検討していますが、xdotoolXを使うのかWaylandを使うのかはよくわかりませんが、ただソースコードで一行だけ修正する方が楽だと思います。

答え2

Ctrlキーを押しながらPuttyウィンドウを右クリックすると、メニューからクリップボードから貼り付けまたはクリップボードにコピーを選択できます。十分近いですか?

答え3

MS-Windows/dos/cmd ターミナルには、最後の選択項目を右クリックでバインドする機能があります(有効になっている場合)。パテもおそらく同じことをしているでしょう。

多くのX11プログラムはそれを中間クリックにバインドします。ただし、オプションを選択するために追加のクリックは必要ありません。これはopensshで使用されます。

なぜ誰かがMicrosoft Windowsの外部でPuTTYを使用しているのかわかりませんが、(人々がエスケープするのに役立つMS-Windows用のsshであり、konsoleのopen-ssh-clientほど良くありません)。 Debian 10のPuTTY端末にマウスの中央ボタンをクリックすると貼り付けることが確認されました。

Putty Release 0.70
Build platform: 64-bit Unix (GTK + X11)
Compiler: gcc 8.3.0
Compiled against GTK version 3.24.5
Source commit: 3cd10509a51edf5a21cdc80aabf7e6a934522d47

答え4

パテがLinuxで右クリックするように強制する方法がわかりませんが、可能であればより良いプログラムを使用することをお勧めします(他の答えと同様)。

ここにいるすべての人がSSHにパテを使用しているとします。その場合は、標準端末とSSHプログラムを使用することをお勧めします。

ただし、シリアルインタフェースを使用している場合は、スクリーン端末エミュレータを使用することをお勧めします。たとえば、sudo --group dialout screen /dev/ttyUSB0 115200シリアルデバイスと対話するためにこのように実行します。この方法では、すぐに実行ウィンドウのみが表示されます。スクロールバックにアクセスする必要がある場合は、ショートカットCtrl + a、[を使用する必要があり、次に矢印キーを使用して履歴をナビゲートできます。コピーモードを終了して現在の行に戻るには、Escキーを押すだけです。

標準端末を使用すると、右クリックまたはショートカット(ターミナルでサポートされている場合)を介して他の端末プログラムと同様にコピーして貼り付けることができます。画面上で実行する必要があるタスクによっては、役に立つ場合もあればそうでない場合もあるさまざまな機能を入手することもできます。

TelnetとPuttyがサポートする他のコミュニケーションについては、Linuxに似た代替手段がたくさんあると確信しています。

これがあなたのユースケースに当てはまらない場合は、PuTTYを使用する用途が何であるかを実際に知ることができるように、質問を修正して最善のアドバイスを提供することを提案します。

関連情報