X11/Xorgで中間クリック貼り付けを無効に/修正

X11/Xorgで中間クリック貼り付けを無効に/修正

私はSlackware 13.1(カーネル2.6)とFVWMをデスクトップマネージャとして使用しています。

コーディング中に過度に敏感なマウスがマウスホイールにスクロールするときに、中央ボタン(マウスホイール)クリックを登録する問題が頻繁に発生します。

マウスの中央ボタンをクリックしたときに貼り付けるためにX11 / Xorg / Xfree86の内蔵クリップボードを使用しないようにショートカットを変更する方法はありますか?むしろ+MiddleClickまたはそれに似たものに再マッピングしたいと思います。

フォーラムを検索し、XMODMAPの使用に関するいくつかの提案を見つけましたが、これまでのところ何もうまくいきませんでした。

時間をかけて助けてくださった皆さん、よろしくお願いします。

答え1

X 構成で ButtonMapping オプションを変更できます。http://www.linuxquestions.org/questions/linux-newbie-8/disable-xorgs-highlight-to-copy-middle-click-to-paste-clipboard-647810/

オプション「ボタンマッピング」「1 1 3 4 5」

アップデート:スレッドから:https://askubuntu.com/questions/4507/how-do-i-disable-middle-mouse-button-click-paste

貼り付けるときに中央ボタンを無効にするgtk用のパッチがリンクされています。 http://subversion.assembla.com/svn/slipstream/patches/gtk_disable_middle_mouse_button_paste.patch

さまざまなグラフィックライブラリ/アプリケーションの中央ボタン操作の概要:http://os.livejournal.com/811721.html - したがって、XA_PRIMARY PasteなどのmiddleButton操作がXorg / Xserver自体にハードコードされていないと仮定できます(ソースから1時間検索した後)。

これはQTで中央ボタンを処理する方法かもしれません。

qt/src/gui/text/qtextcontrol.cpp

void QTextControlPrivate::mouseReleaseEvent (...
...
} else if (button == Qt::MidButton
           && (interactionFlags & Qt::TextEditable)
           && QApplication::clipboard()->supportsSelection()) {
    setCursorPosition(pos);
    const QMimeData *md = QApplication::clipboard()->mimeData(QClipboard::Selection);
    if (md)
        q->insertFromMimeData(md);

行の編集はここでも行うことができます:qt/src/gui/widgets/qlineedit.cpp

void QLineEdit::mouseReleaseEvent(QMouseEvent* e)
...
    } else if (!d->readOnly && e->button() == Qt::MidButton) {
        d->deselect();
        insert(QApplication::clipboard()->text(QClipboard::Selection));

qt3の場合、互換性レイヤは次の場所にあります。qt/src/qt3support/text/q3textedit.cpp

void Q3TextEdit::contentsMouseReleaseEvent(QMouseEvent * e)
...
else if (e->button() == Qt::MidButton && !isReadOnly()) {
    // only do middle-click pasting on systems that have selections (ie. X11)
    if (QApplication::clipboard()->supportsSelection()) {

したがって、QTソースコードをダウンロードし、ifブランチにコメントを貼り付ける中間クリック操作を無効にすることができます。

QTとGTKをパッチしたら、それをコンパイルしてシステムのgtkとQTをインストールする必要があります。これにより、動的にリンクされたすべてのアプリケーションはパッチ付きgtk / QTライブラリを使用し、中央のボタンを押しても何も貼り付けられません。

アプリケーションが静的にリンクされている場合は、パッチ付き静的ライブラリに再コンパイルするか、動的にリンクするように再コンパイルする必要があります。

より多くのグラフィックキットをパッチする必要がある場合は、キット名だけを教えてください。

答え2

コンテンツを貼り付けずに中央クリック機能(新しいタブでリンクを開くためにクリックなど)を維持するには、次の操作を行います。

初めてインストールsxhkdそしてシェル

その後、構成./.config/.sxhkd/sxhkdrcこのように

~button2
    echo -n | xsel -n -i
~control + c
    echo -n | xsel -n -i
~control + x
    echo -n | xsel -n -i

基本的にそれはすべてです。

次に、sxhkdを起動します(または起動時に起動するように設定します)。マウスの中央ボタンはもう何も貼り付けることができませんが、他の機能は正常に機能します。 (コピー時にctrl+cとctrl+xのみを使用する限り、つまりマウスでコピーした内容は一度だけ貼り付けることができます。)

関連情報