Desabilita / modifica o clique do meio para colar no X11 / Xorg

4

Estou usando o Slackware 13.1 (kernel 2.6) com o FVWM como meu gerenciador de desktop.

Freqüentemente tive problemas ao codificar, onde meu mouse super sensível registra um clique do botão do meio (roda do mouse) ao rolar com a roda do mouse.

Existe alguma maneira de modificar o atalho para que o clique do meio não seja mais passado usando a área de transferência integrada com o X11 / Xorg / Xfree86? Eu preferiria que fosse re-mapeado para algo como + MiddleClick, ou algo similar.

Já procurei nos fóruns e encontrei algumas sugestões usando o XMODMAP, mas nenhum funcionou até agora.

Agradeço a todos antecipadamente pelo seu tempo e assistência.

    
por DevNull 16.11.2011 / 19:22

2 respostas

5

Você pode modificar a opção ButtonMapping na configuração X: link

Option "ButtonMapping" "1 1 3 4 5"

Atualização: no tópico: link

o patch para o gtk está vinculado, o que desabilitará o botão do meio como colar: link

Há uma visão geral da ação do botão do meio em diferentes bibliotecas / aplicativos gráficos: link - então posso supor que o middleButton ação como XA_PRIMARY Paste não é codificado no próprio Xorg / Xserver (depois de procurar em fontes por hora)

E aqui está provavelmente a manipulação do botão do meio no 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);

Também aqui para o lineedit: 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));

e pode estar aqui para a camada qt3 compat: 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()) {

Assim, você pode fazer o download de fontes QT e comentar isso se ramificar para desativar a ação MidButton como colar.

Depois de aplicar o patch QT & GTK você só deve compilá-los e instalar em vez do sistema gtk e QT (ou colocar em algum diretório, por exemplo / usr / local / lib e colocar este diretório em /etc/ld.so.conf) anteriormente. Então, cada aplicativo dinamicamente vinculado usará o gtk / QT lib corrigido e não colará nada para pressionar o botão do meio.

Se o aplicativo estiver vinculado estaticamente, você deverá recompilá-lo com biblioteca estática corrigida ou recompilá-lo em um link dinâmico.

Se você precisar de mais kits de ferramentas gráficos para corrigir, basta dizer o nome do kit de ferramentas e tentarei encontrar o ponto de origem do manuseio do botão do meio como colar.

    
por 16.11.2011 / 22:09
0

Veja o que você pode fazer se quiser manter o meio-clique funcional (por clicar para abrir links em novas guias, por exemplo) sem colar as coisas.

Primeiro, instale sxhkd e xsel .

Em seguida, configure ./. config / .sxhkd / sxhkdrc da mesma forma

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

E é basicamente isso.

Agora inicie o sxhkd (ou configure-o para iniciar na inicialização). Agora, o mouse do meio não vai colar mais nada, mas funcionará como normal. (Contanto que você use apenas ctrl + c e ctrl + x para copiar coisas, copie as coisas com o mouse e cole uma vez.)

    
por 30.09.2018 / 22:42

Tags