Nie lubię wklejać środkowego przycisku myszy, ponieważ często kończę na niekompilowalnym kodzie w Eclipse. Jak mogę to wyłączyć (we wszystkich programach)? Używam Fedory.
Nie lubię wklejać środkowego przycisku myszy, ponieważ często kończę na niekompilowalnym kodzie w Eclipse. Jak mogę to wyłączyć (we wszystkich programach)? Używam Fedory.
Odpowiedzi:
To rozwiązanie będzie działać globalnie i pozwoli zachować funkcjonalność środkowej myszy.
zainstalować xbindkeys xsel xdotool
Umieść to w ~/.xbindkeysrc
"echo -n | xsel -n -i; pkill xbindkeys; xdotool click 2; xbindkeys"
b:2 + Release
Przeładować xbindkeys -p
Uruchom xbindkeys
przy starcie, pkill xbindkeys
aby zatrzymać.
W Fedorze 24 możesz zainstalować, gnome-tweak-tool
używając następującego polecenia:
$ sudo dnf install gnome-tweak-tool
Otwórz gnome-tweak-tool
i przejdź do karty „Klawiatura i mysz” i wyłącz „Wklej i kliknij środkowym przyciskiem myszy”.
Wklejanie środkowego przycisku jest standardem interfejsu użytkownika unix, na przykład wybieranie lub aktywowanie lewego przycisku, a prawy przycisk wykonuje inne czynności (takie jak rozszerzanie, przełączanie, uruchamianie menu,…). W większości aplikacji uniksowych będzie to konieczne.
Jeśli Twoim problemem jest to, że twoja mysz jest zbyt wrażliwa, gdy kładziesz palec na kierownicy, sugeruję uzyskanie lepszej myszy. Istnieje wiele tanich przyzwoitych myszy.
Możesz ponownie przypisać przycisk myszy 2 do innego numeru. Aplikacje identyfikują lewy, środkowy i prawy przycisk myszy odpowiednio jako przycisk 1, 2 i 3. Umieść ten kod w skrypcie, który jest wykonywany, gdy rozpoczyna się sesja X (jak to zrobić, zależy od środowiska pulpitu).
echo 'pointer = 1 6 3 4 5' | xmodmap -
Myszy z kółkiem przewijania obsługują zdarzenie kliknięcia środkowym przyciskiem podczas naciskania kółka do przewijania. Jest to świetna funkcja, ale może być irytująca. Na szczęście można to wyłączyć.
Najpierw musisz znać identyfikator myszy:
$ xinput list | grep 'id='
który drukuje coś podobnego
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ PixArt Dell MS116 USB Optical Mouse id=12 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
Virtual core XTEST keyboard id=5 [slave keyboard (3)]
Power Button id=6 [slave keyboard (3)]
Video Bus id=7 [slave keyboard (3)]
Power Button id=8 [slave keyboard (3)]
Sleep Button id=9 [slave keyboard (3)]
Dell KB216 Wired Keyboard id=10 [slave keyboard (3)]
Dell KB216 Wired Keyboard id=11 [slave keyboard (3)]
Eee PC WMI hotkeys id=13 [slave keyboard (3)]
Wydrukowano tutaj moją mysz Dell Usb, dla której id = 12
więc mogę wyświetlić mapowanie przycisków myszy:
$ xinput get-button-map 12
który drukuje
1 2 3 4 5 6 7 8 9 10 11 12
tutaj tylko trzy pierwsze liczby mają dla mnie znaczenie. Reprezentują lewy, środkowy i prawy przycisk myszy.
Mogę wyłączyć środkowy przycisk myszy, ustawiając go na 0:
$ xinput set-button-map 12 1 0 3
Lub mogę zmienić środkowy przycisk myszy w lewy przycisk myszy, ustawiając go na 1:
$ xinput set-button-map 12 1 1 3
ref. link https://wiki.ubuntu.com/X/Config/Input
to działa dla mnie (kubuntu 18.04 LTS)
xinput set-button-map 12 1 0 3
ciebie ustaw wszystkie przyciski (1 - 12 dla w tym przykładzie xinput set-button-map 12 1 0 3 4 5 6 7 8 9 10 11 12
)
Oto, co możesz zrobić, jeśli chcesz zachować funkcjonalność środkowego kliknięcia (na przykład klikanie, aby otworzyć łącza w nowych kartach) bez wklejania.
Najpierw zainstaluj sxhkd i xsel .
Następnie skonfiguruj ./.config/.sxhkd/sxhkdrc w ten sposób
~button2
echo -n | xsel -n -i
~control + c
echo -n | xsel -n -i
~control + shift + c
echo -n | xsel -n -i
~control + x
echo -n | xsel -n -i
I w zasadzie to wszystko.
Teraz uruchom sxhkd (lub skonfiguruj, aby uruchamiał się przy starcie). Teraz środkowa mysz nie będzie już niczego wklejać, ale w przeciwnym razie będzie działać normalnie.
~/.config/sxhkd/sxhkdrc
Jest to powszechna konwencja, której przestrzega wiele programów. Nie ma globalnego sposobu, aby to wyłączyć, musisz to zrobić dla poszczególnych programów.
EDYCJA: (krótko, jak mówi Gilles, wyłączenie przycisku myszy 2. Ale niektóre programy mają inne zastosowania dla przycisku myszy 2, więc nie poleciłbym tego.)
EDYCJA: Właśnie znalazłem problem z opublikowanym przeze mnie rozwiązaniem: w niektórych programach ( gitk
przynajmniej nie jestem pewien, jak często jest to powszechne) uniemożliwi to działanie zaznaczania tekstu. Spróbuj więc, ale jeśli masz problemy z zaznaczaniem tekstu w programie, z którego regularnie korzystasz, rozwiązaniem jest zaprzestanie korzystania z niego.
Zainstaluj xsel
, a następnie uruchom następujący skrypt powłoki:
#!/bin/sh
while true; do
xsel -fin </dev/null
done
Tak długo, jak ten skrypt jest uruchomiony (możesz ustawić, aby był uruchamiany podczas logowania) środkowy przycisk myszy nie wkleja się w żadnej aplikacji. Więc technicznie nadal będzie wklejać, ale zawsze nie będzie nic do wklejenia.
Sposób działania polega na tym, że działa xsel
i kopiuje ( -i
) zawartość /dev/null
, bez przechodzenia do tła ( -n
), i faktycznie przechowuje ten pusty ciąg w buforze zamiast go po prostu wyczyścić i wyjść ( -f
). Za każdym razem, gdy wyjdzie, będzie wywoływał xsel
ponownie z tymi samymi opcjami. Ponieważ xsel
będzie działał do momentu, aż inny program „zwolni go z obowiązku” poprzez skopiowanie czegoś innego, nie będzie stale tworzyć nowych procesów, zamiast tego utrzyma działanie jednego procesu dokładnie, dopóki nie będzie ponownie potrzebny. (Chyba że masz wiele wystąpień skryptu, ale nie musisz tego robić).
Również nie, nie będzie to zakłócać zwykłego kopiowania / wklejania, ponieważ wklejanie środkowym kliknięciem używa osobnego schowka.
To jest mój skrypt. Twoje może wymagać ulepszenia
#!/bin/bash
clear
echo
echo
echo
echo -----Now fixing your scroll button --- -hold onto pants
echo
xinput --list|grep "Virtual core XTEST pointer"
echo ---------------------------------------------------------------------------------
echo
id=$(
xinput --list|grep "Virtual core XTEST pointer" |awk '{
for(i=1; i<=NF; i++) {
tmp=match($i, /id=[0-9]+/)
if(tmp) {
print $i
}
}
}' $1 | tr -d '[:alpha:]='
)
echo fixing $id:
xinput set-button-map $id 1 10 2 4 5 6 7 8 9 3
echo
echo
xinput get-button-map $id
echo ---------------------------------------------------------------------------------