it-swarm-tr.com

Orta fare düğmesini tıklatarak yapıştırmayı nasıl devre dışı bırakırım?

Gnome'da varsayılan olarak ortadaki fare tuşu yapıştırma davranışını devre dışı bırakmanın bir yolu var mı?

Hassas bir fare tekerleğim var ve ne zaman metinleri kaydırsam, bazen metni rastgele bir şekilde yapıştırabilirim. Her tarafına rastgele metin parçaları yapıştırılmış bir başkasına bir dosya gönderdiğimde çok fazla güvenilirlik kaybediyorum.

Farenin orta düğmesini olmayan bir fare düğmesine eşleyerek devam eden bir özümü gördüm, ancak orta fare düğmesinden tamamen kurtulmak anlamına gelir (yani sekme kapama, bağlantıların açılması otomatik olarak yeni sekme vs.) Orta fare düğmemi etkin tutmak istiyorum, yalnızca yapıştırma davranışını devre dışı bırakın.

Bu, dokunmatik ekranımla metin kaydırdığımda da oluyor (yanlışlıkla iki parmağa hareket etmeden basmak, bam.)

Bu yüzden sorun sadece yeni bir fareyi değiştirerek çözülmeyecektir (aslında touchpad ile fareme göre daha sık meydana geldiğine inanıyorum).

129
levesque

Sorunun çözümü için lütfen yazdığım bu rehber

Veya, daha doğrudan, işte yama GTK’daki middle orta fare düğmesi yapıştırma ’işlevini devre dışı bırakmak için.

15
Jelle Geerts

Ubuntu 16.04’te orta düğme yapıştırmasını devre dışı bırakmak için gnome-Tweak-tool kullanıyorum.

  1. Yükle

    Sudo apt install gnome-Tweak-tool
    
  2. Yüklü uygulamalarda "Tweak aracı" nı arayarak çalıştırın veya sadece bir terminale gnome-Tweak-tool yazın.

  3. Git "Klavye ve fare" -> "Orta tıkla yapıştır"
  4. Kapat.

    screenshot

Bu kadar.

Veya yalnızca CLI kullanarak

gsettings set org.gnome.desktop.interface gtk-enable-primary-paste false

16.04 tarihinde test edilmiştir.

41
Sunny127

Jared Robinson basit bir çözüm verdi bu benim makinemde işe yarıyor:

Aşağıdaki komutu çalıştırın:

xmodmap -e "pointer = 1 25 3 4 5 6 7 8 9"

Bu davranışı sürdürmek için, ~/.Xmodmap dosyasını düzenleyin ve ekleyin.

pointer = 1 25 3 4 5 6 7 8 9
32
Jay Goldfarb

Bunun tam olarak istediğiniz cevap olmadığını biliyorum, ancak bunu Firefox'ta kapatabilirsiniz (örneğin, özelliği başka bir yerde sakıncası yoksa, ancak Firefox'ta bağlantıları yeni sekmelerde açmak için orta tıklamayı hala isteyebilirsiniz)

Hakkında: config, set

middlemouse.contentLoadURL false
middlemouse.paste false

İstediğin gibi değil, ama bu soru birkaç yerden bağlantılı olduğundan, birinin bu cevabı yararlı bulmasını umuyorum.

28
Ben

Bu şu anda mümkün değil - yine de belirttiğiniz gibi, MOUSE 3 düğmesini devre dışı bırakmanın - ya da yeniden ayarlamanın - konunun kaynağına ulaşanların hiçbiri yok. X11 Birincil Seçimi.

Bu bir çözüm olmasa da, umarım bu açıklama NEDEN açıklığa kavuşturur. Ubuntu'da işte iki pano var. Herkesin aşina olduğu, freedesktop.org panoya bir tane (yakalar) Ctrl+C komut) İkincisi, Ubuntu'nun varlığından beri çalınan bir pano yöneticisidir - X11. X Sunucusu (X11) diğer üç panoyu yönetir: Birincil Seçim , İkincil Seçim ve Pano . İşaretçinizle metin seçtiğinizde, XServer, Birincil Seçim içindeki bir ara belleğe kopyalanır ve Fare 3 düğmesi ile yapıştırmayı bekler. Diğer ikisi, uygulamalar arasında ortak bir panoyu paylaşmak için başka uygulamalar tarafından kullanılmak üzere tasarlanmıştır. Bu durumda, Ubuntu'daki freedesktop.org pano yöneticisi zaten bizim için bunu yapıyor.

Araştırmamın kapsamı ile X11 seçim yöneticisini devre dışı bırakmanın bir yolunu bulamıyorum. Bunu devre dışı bırakabilecek derleme bayrakları, uygulamaları veya yapılandırma değerleri yoktur. Uygulama bazında bunun etrafında çeşitli yollar vardır (bu uygulamaların çoğu komut satırı olanlarıdır) - ama küresel ölçekte bir şey yoktur.

Bunun ideal bir çözüm olmadığını biliyorum - fakat konunun gerçeği gibi görünüyor. Toplayabileceğim tek ilgili çözüm aslında bir hack, sonsuz yürüten bir senaryo oluştururken döngü sadece Birincil Seçimi boş bir değerle değiştiriyor.

İlk önce xsel (X seçimini değiştirme aracı) Sudo apt-get install xsel

Kod aşağıdaki gibidir:

while(true)
do
    echo -n | xsel -n -i
    sleep 0.5
done

Bunu bir komut dosyasına yerleştirir ve başlangıç ​​komut dosyalarınıza eklerseniz, bu bir sorun olmamalıdır.

21
Marco Ceppi

Her nasılsa, Ubuntu kurulumumda herhangi bir xmodmap dosyası olmadan bittim, bu yüzden bu soruna farklı bir yaklaşım bulmak zorunda kaldım.

xinput komutuna bir göz atın.

xinput list | grep -i mouse

hangi fare hakkında bilgi listeler. Faremin "Dell Premium USB Optik Fare" olduğunu ve ayrıca "Macintosh fare düğmesi öykünmesine" sahip olduğumu gösteriyor. Bu bilgi ile silahlı yapabilirim.

xinput get-button-map "Dell Premium USB Optical Mouse"

bu bana benzeyen bir liste verir

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18

İşte yararlı, gerekli bilgi. Faremin teorik olarak 18 düğmesi var. Her düğmenin varsayılan eylemi, düğme numarasıyla aynı ada sahiptir. Başka bir deyişle, düğme 1 eylem 1'i, düğme 4 eylem 4'ü vs. yapar. Eylem 0 "kapalı" anlamına gelir.

Listedeki position, bu düğmeye atanan işlevi gösterir. Eğer düğme haritam okursa

1 3 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 

bu, düğme 1'in (konum 1) işlem 1'i (normal sol düğme), düğme 2'nin (konum 2) işlem 3'ü (orta düğme) ve düğme 3'ün (konum 3) işlem 2'yi (sağ düğme) yaptığı anlamına gelir.

Sol elli bir fare yapmak için ihtiyacınız olan her şey başlayan bir düğme haritası olacaktır.

3 2 1 4 5 .....

Veya, sizin durumunuzda, orta düğmenin düğme 1 (sol düğme) ile aynı şeyi yapmasını istersiniz, böylece haritanızın başlaması gerekir.

1 1 3 ....

Böylece fare düğme haritamı sıfırlardım:

xinput set-button-map "Dell Premium USB Optical Mouse" 1 1 3 5 6 6 7 8 9 10 11 12 13 14 15 16 17 18

Sizin durumunuzda, farklı sayıda haritalanmış butonunuz ve önceden tanımlanmış bazı özel buton haritalarınız olabilir. Aynı şekilde, farenizin de farklı bir adı vardır. İlk önce, farenizin "adını" alın. Ardından, temel düğme haritanızı bulmak için get-button-map işlemini kullanın. Son olarak, eylem 1'i yapmak için 2 düğmesini değiştirerek set-button-map seçeneğini kullanın.

Bu kalıcı bir değişim değil. Gerekli kodu benim . Bashrc 'a ekledim, böylece her giriş yaptığımda veya bir terminal açtığımda çalışır.

Bu yardımcı olur umarım.

19
Wes Miller

Benim için çoğunlukla işe yarayan bunlardan birini kullanmanızı öneririm:

xbindkeys kullanarak: orta düğmeye her basıldığında, birincil panoyu temizleyin. En azından sistemimde yapıştırma gerçekleşmeden önce temizlendi. Ayrıntılar: xbindkeys-config oluştur:

xbindkeys --defaults > $HOME/.xbindkeysrc

Aşağıdaki yeni kısayol tuşunu yapıştırın:

"xclip -i /dev/null"    
    b:2``

Xbindkeys'i yeniden yükleyin (örneğin, killall xbindkeys; xbindkeys). Bitti.

xdotool kullanarak: Pencere odağı değişiminde panoyu temizleyin (çoğu pencere yöneticisinde çalışmalıdır). Ayrıntılar: Aşağıdaki komutu yürütün:

xdotool search --onlyvisible . behave %@ focus exec xclip -i /dev/null

Bu komutla, birincil panoyu aynı pencerede kullanabileceğinizi veya odaklanmadan ÖNCE ("fareyi takip etmeden odaklanmıyorsa" veya etkin bir şey yoksa) orta pencereye basmaya devam edebileceğinizi unutmayın.

5
spawn

Şimdiye kadar bulduğum en iyi yol, genel olarak orta düğmeli tıklamayı engelleyebilen ve yalnızca belirli uygulamalarda orta düğme olarak davranmasına izin verebilen EasyStroke kullanmaktır.

Bu kesişmeyi bir kerede birden fazla uygulamaya uygulamak için EasyStroke uygulamasına "grup" ekleyebilirsiniz. Bazı metin düzenleyicilerimdeki orta tıklamayı devre dışı bırakmayı ayarlıyorum, yalnızca IDE ve MATLAB.

Referans: http://ubuntuforums.org/showpost.php?p=11811126&postcount=25

Komple EasyStroke Nasıl Yapılır: http://sourceforge.net/apps/trac/easystroke/wiki/Documentation

3
dbdq

İşte orta tıklamayı bir şeyleri yapıştırmadan işlevsel tutmak için bulduğum en basit çözüm.

İlk kurulum sxhkd ve xsel .

Sonra yapılandırın ./. Config/.sxhkd/sxhkdrc bunun gibi

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

Ve bu temelde bu.

Şimdi sxhkd'yi başlatın (veya başlangıçta başlatılacak şekilde yapılandırın). Şimdi, orta fare artık hiçbir şey yapıştırmayacak, ancak normal gibi çalışacaktır. (Olanları kopyalamak için yalnızca ctrl + c ve ctrl + x kullandığınız sürece, fareyle bir şeyler kopyalarsanız, normale dönmeden önce bir kez yapıştırabilir.)

2
Cestarian

Bu orta fare düğmesi yapıştırma davranışı, X sunucusunun (ve metin konsolundaki gpm) bir özelliğidir ve bildiğim kadarıyla en azından X.org devre dışı bırakılmak üzere yapılandırılamıyor - yapabileceğiniz tek şey eşleştirmeyi değiştirmek. Diğerlerinin önerdiği gibi fiziksel fare düğmeleri.

İstenmeyen orta tıklamaları önlemek için dokunmatik yüzeyinizi yapılandırabilmeniz, düzenleyici aygıt ayarlarınızı (varsayılan olarak yüklenmez) ya da düzenleyicinizi yapılandırma için kullanmayı tercih ediyorsanız synaptics manpage'ine göz atabilirsiniz.

2
Florian Diesch

aşağıdaki link benim için problemi çözdü.

https://wiki.ubuntu.com/X/Config/Input#Example:_Disabling_middle-mouse_button_paste_on_a_scrollwheel_mouse

yukarıdaki linke atıfta bulunulan sayfa, kaydırma tekerleğinde orta fare macununun nasıl devre dışı bırakılacağı ile ilgili bir bölüme sahiptir, birkaç komut uygulayarak kullanıcı fare butonları eşleştirmesini getirebilir ve ayrıca eşlemeyi değiştirebilir. Sayfada açıklandığı gibi, komutu çalıştırarak orta düğmeyi devre dışı bıraktım:

$ xinput set-button-map 4 1 0 3
2
Ahmad Bawaneh

Temas noktası/touchpad ile lenovo X kullanıyorsanız, sizin için kısmi bir cevabım olabilir. Synaptics fare düğmeleri ile "bilinen" bir hata var. Bir USB fareyi denerseniz ve hiç sorun yaşamadığınızda, ancak dokunmatik yüzey/dokunma noktası faresiyle (klavyenin içine yerleştirilmiş), yazarken metnin alanlarını silebilecek rastgele yanıtlarınız olur, o zaman bu konuştuğum hata olabilir. .

https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1506817

Bu durumunuza uyuyorsa, adınızı bu hatayı tanımlayan kişilerin listesine, bu hata raporunda ekleyin. Belki bunu bildiren daha fazla kişi varsa, düzeltilecektir.

1
Jont Allen

Ben xinput-yeniden yönlendirme hilesini denedim, farenin orta düğmesini "button" (aslında bir tekerlek) değiştirerek, farenin sol tuşu gibi davranmasını sağladım. Hala bir tekerlek olarak çalışıyor ve geçmişe kaydırırken kaynak kodumun ortasındaki şeyleri rastgele yerlere yapıştırmayı (görünüşe göre) durdurdu.

Benim durumumda emir

xinput set-button-map "PixArt USB Optical Mouse" 1 1 3 4 5 6 7 8 9 10 11 12 13 14 15 16

ancak fare modeline göre YMMV.

1
Stephen Bloch

Birkaç ay önce aynı problemi yaşadım ve fareyi değiştirerek çözdüm! Ancak, sizin gibi, basit düğme haritalama probleminin bir yazılım düzeltmesiyle zarif bir şekilde çözülememesi beni hayal kırıklığına uğrattı. Neyse ki, iş bilgisayarımda bir sorun vardı ve işverenim çeşitli yedek fare kontrolörlerine sahipti. Hiçbir maliyet düzeltmesi yapıldı!

Ben uygun bir fare donanım uygulaması kaydırma yaparken rastgele orta tıklama göndermemesi gerektiğini düşünüyorum. Son zamanlarda Windows kullanırken bile can sıkıcı bu davranışı buldum!

Şimdi donanım hatasını uygun donanım çözümüyle düzelttiğimden (fareyi değiştirdim) bile "orta tıklamayla yapıştır" davranışına bağımlılık yapmaya başladım !!

Mutlu linuxing!

Sincerly,

1
Jonathan

SW: Ubuntu 14.04, Gnome geri çekildi. HW: Bir dizüstü bilgisayarım var ve ortadaki düğme aslında dizüstü bilgisayarın üzerindeki/faresi. Çözüm: Ubuntu SW merkezine gidin ve Unity Tweak Aracını indirin. Tweak Aracı'nı başlatın. Fare ayarları altında, orta tıklama ara parçasını açmak/kapatmak için geçişi vardır. İyi günler.

1
user2712329

Bir cüce özelliğinden daha fazlası, sanırım hemen hemen her yerde çalışıyor, konsolda da çalışıyor ve benim "Sıfırdan Linux'umda" bile çalıştığını düşünüyorum.

Bu yüzden belki de çekirdekte bir yerlerde bile temel bir özellik.

BTW: Gerçekten kullanışlı ve Ctrl + V gibi normal macunlar değil, imleçle işaretli olan her şey ikinci bir depoya giriyor ve ara çubuğa son yapıştırdığınız şeyi yapıştırabilir.

0
phiphi

Gnome uygulamaları için, "Klavye ve Fare" sekmesi altındaki gnome-tweaks (yeni [gnome-Tweak-tool paketinin adı]) kullanabilirsiniz. gtk-enable-Primary-paste Gnome seçeneği.

KDE uygulamaları için bir eşdeğer çözüm olduğu görülüyor.

Tüm X için (Gnome olmayan uygulamalar dahil), XMousePasteBlock 'ı yükleyebilirsiniz, daha sonra çalışması için çalışması gerekir (kullanıcı tarafından yeterli, root gerektirmez). Bu, diğer orta tıklama işlevlerini devre dışı bırakmadan ortadaki tıklama macununu tamamen devre dışı bırakır.

0
Ilario Gelmetti

İki düğmeli bir fare taklit etmeyi denemek isteyebilirsiniz. İki düğmeli bir fareyle, her iki fare düğmesini de aynı anda (yerine kaydırma tekerleğine) tıklayarak yapıştırabilirsiniz.

İşaretleme aygıtı ayarlarını yükle:

Sudo aptitude install gpointing-device-settings

http://live.gnome.org/GPointingDeviceSettings

Alternatif olarak, gpointing-device-settings kurmak istemezseniz ve komut satırı seçenekleriyle uğraşmazsanız, bakınız https://wiki.ubuntu.com/X/Config/Input wiki sayfasında çeşitli komut satırı/konfigürasyon seçenekleri var, tercihinizi seçin.

0
Panther

İşe yarayan tek cevap https://unix.stackexchange.com/a/277488/288916 Radivarig (Bütün krediler ona veriliyor). Çalışmasını sağlamak için bir değişiklik yapmam gerektiğine dikkat edin:

Xbindkeys dosyasını kurun:

Sudo apt-get install xbindkeys xsel xdotool

Metin ile xbindkeys ~/.xbindkeysrc için bir yapılandırma dosyası oluşturun:

"echo -n | xsel -n -i; pkill xbindkeys; xdotool click 2; xbindkeys"
b:2

Kullanarak yapılandırma dosyasını yükleyin

xbindkeys -p

Bu satırı ~./Bashrc dizinine ekleyin, böylece xbindkeys her zaman başlangıçta yüklenir.

Bu benim için işe yarıyor ama Radivarig'in önerdiği şey çizgiyi kullanmak.

"echo -n | xsel -n -i; pkill xbindkeys; xdotool click 2; xbindkeys"
    b:2 + Release

Bu sonuncusu benim için çalışmıyor ama sürüm işe yaramazsa, diğerini denemenizi öneririm.

Uzun süre baktıktan sonra bu, orta fare düğmesini tamamen devre dışı bırakmak zorunda kalmadan, genel olarak orta fare yapıştırma düğmesini kapatan benim için çalıştığım tek çözüm.


Mevcut yükseltilmiş cevaplar için, ya ortadaki fare düğmesini nasıl tamamen devre dışı bırakacağınızı söyleyerek ya da sadece birkaç programda çalışan bir çözüm sunduğunu ya da sadece birkaç programda çalışan bir çözüm sunduğunu unutmayın. ve birkaç diğerleri) ya da sadece imkansız olduğunu söylüyorlar.


spawn'ın cevabı benzer bir ruhu ve aynı zamanda işe yarayabilir, ben bu çözümü bulmadan önce görmedim.

0
Kvothe

Yukarıdaki yazılarda öğrendiklerimi kullanarak, bu bash one-liner benim için mükemmel çalışıyor ...

mouse_id=$(xinput list | grep 'Mouse' | awk '{print $9}' | sed 's/[^0-9]//g') && xinput set-button-map "$mouse_id" 1 0 3
0
Scott