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ライブラリを使用し、中央のボタンを押しても何も貼り付けられません。

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

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

おすすめ記事