ฉันไม่ชอบที่จะวางปุ่มกลางของเมาส์เพราะฉันมักจะจบด้วยโค้ดที่ไม่สามารถทำงานได้ใน Eclipse ฉันจะปิดตัวเลือกนี้ได้อย่างไร (ในโปรแกรมทั้งหมด) ฉันกำลังใช้งาน Fedora
ฉันไม่ชอบที่จะวางปุ่มกลางของเมาส์เพราะฉันมักจะจบด้วยโค้ดที่ไม่สามารถทำงานได้ใน Eclipse ฉันจะปิดตัวเลือกนี้ได้อย่างไร (ในโปรแกรมทั้งหมด) ฉันกำลังใช้งาน Fedora
คำตอบ:
โซลูชันนี้จะทำงานได้ทั่วโลกและคงไว้ซึ่งฟังก์ชันการทำงานของเมาส์กลาง
ติดตั้ง xbindkeys xsel xdotool
วางสิ่งนี้ใน ~/.xbindkeysrc
"echo -n | xsel -n -i; pkill xbindkeys; xdotool click 2; xbindkeys"
b:2 + Release
โหลด xbindkeys -p
เรียกใช้xbindkeys
เมื่อเริ่มต้นpkill xbindkeys
เพื่อหยุด
ใน Fedora 24 คุณสามารถติดตั้งgnome-tweak-tool
โดยใช้คำสั่งต่อไปนี้:
$ sudo dnf install gnome-tweak-tool
เปิดgnome-tweak-tool
และไปที่แท็บ "Keyboard and Mouse" แล้วปิดการใช้งาน "Middle-click-Paste"
การวางปุ่มกลางเป็นมาตรฐานส่วนติดต่อผู้ใช้ของยูนิกซ์เช่นมีปุ่มซ้ายเลือกหรือเปิดใช้งานและปุ่มขวาทำอย่างอื่น (เช่นการขยายการสลับสลับการเปิดเมนู) ... คุณจะพบว่ามันถูกผูกไว้กับการวางในแอปพลิเคชั่นยูนิกซ์ส่วนใหญ่
หากปัญหาของคุณคือเมาส์ของคุณมีความไวมากเกินไปเมื่อคุณวางนิ้วบนพวงมาลัยฉันขอแนะนำให้ใช้เมาส์ที่ดีกว่า มีหนูดี ๆ ราคาถูกมากมาย
คุณสามารถกำหนดปุ่มเมาส์ 2 ใหม่ให้กับหมายเลขอื่น แอปพลิเคชันระบุปุ่มซ้ายของเมาส์กลางและขวาของปุ่มเป็น 1, 2 และ 3 ตามลำดับ ใส่รหัสนี้ในสคริปต์ที่เรียกใช้งานเมื่อเซสชัน X ของคุณเริ่มต้น (วิธีการทำขึ้นอยู่กับสภาพแวดล้อมเดสก์ทอปของคุณ)
echo 'pointer = 1 6 3 4 5' | xmodmap -
หนูตัวเลื่อนสนับสนุนเหตุการณ์คลิกกลางเมื่อกดล้อเลื่อน นี่เป็นคุณสมบัติที่ยอดเยี่ยม แต่คุณอาจพบว่ามันน่ารำคาญ โชคดีที่มันสามารถปิดได้
ก่อนอื่นคุณต้องรู้รหัสของเมาส์ดังนี้:
$ xinput list | grep 'id='
ซึ่งพิมพ์บางอย่างเช่น
⎡ 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)]
เมาส์ USB Dell ของฉันพิมพ์ที่นี่ซึ่ง id = 12
ดังนั้นฉันสามารถดูการแมปปุ่มเมาส์ของฉันเช่น:
$ xinput get-button-map 12
ซึ่งพิมพ์
1 2 3 4 5 6 7 8 9 10 11 12
นี่แค่สามตัวเลขแรกเท่านั้นที่มีความหมายสำหรับฉัน ปุ่มเหล่านี้ใช้แทนปุ่มซ้ายกลางและขวา
ฉันสามารถปิดปุ่มกลางของเมาส์โดยตั้งเป็น 0:
$ xinput set-button-map 12 1 0 3
หรือฉันสามารถเปลี่ยนปุ่มกลางของเมาส์เป็นปุ่มซ้ายของเมาส์โดยตั้งค่าเป็น 1:
$ xinput set-button-map 12 1 1 3
อ้าง ลิงค์https://wiki.ubuntu.com/X/Config/Input
มันเหมาะกับฉัน (kubuntu 18.04 LTS)
xinput set-button-map 12 1 0 3
คุณตั้งปุ่มทั้งหมด (1 - 12 สำหรับในตัวอย่างนี้ xinput set-button-map 12 1 0 3 4 5 6 7 8 9 10 11 12
)
นี่คือสิ่งที่คุณสามารถทำได้หากคุณต้องการรักษาการทำงานของคลิกกลาง (เพื่อคลิกเพื่อเปิดลิงก์ในแท็บใหม่) โดยไม่ต้องวางสิ่งต่าง ๆ
ก่อนติดตั้งsxhkdและxsel
จากนั้นกำหนดค่า. /.config/.sxhkd/sxhkdrcอย่างนั้น
~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
และนั่นเป็นพื้น
ตอนนี้เริ่ม sxhkd (หรือกำหนดค่าให้เปิดเมื่อเริ่มต้น) ตอนนี้เมาส์กลางจะไม่วางอะไรอีกต่อไป แต่จะทำงานได้ตามปกติ
~/.config/sxhkd/sxhkdrc
เป็นเรื่องธรรมดาที่หลาย ๆ โปรแกรมปฏิบัติตาม ไม่มีวิธีสากลในการปิดคุณต้องทำในโปรแกรมตามพื้นฐานของโปรแกรม
แก้ไข: (สั้น ๆ ตามที่ Gilles บอกว่าปิดการใช้งานปุ่มเมาส์ 2 แต่บางโปรแกรมมีประโยชน์อื่นสำหรับปุ่มเมาส์ 2 ดังนั้นฉันจะไม่แนะนำสิ่งนี้)
แก้ไข:ฉันเพิ่งพบปัญหาเกี่ยวกับวิธีแก้ไขปัญหาที่ฉันโพสต์: ในบางโปรแกรม ( gitk
อย่างน้อยไม่แน่ใจว่ามันธรรมดาแค่ไหน) สิ่งนี้จะป้องกันการเลือกข้อความจากการทำงาน ดังนั้นลองใช้ แต่ถ้าคุณมีปัญหากับการเลือกข้อความในโปรแกรมที่คุณใช้เป็นประจำโซลูชันจะหยุดใช้สิ่งนี้
ติดตั้งxsel
และเรียกใช้เชลล์สคริปต์ต่อไปนี้:
#!/bin/sh
while true; do
xsel -fin </dev/null
done
ตราบใดที่สคริปต์นี้ยังทำงานอยู่ (คุณสามารถตั้งค่าให้ทำงานในการเข้าสู่ระบบ) ปุ่มกลางของเมาส์จะไม่วางในแอปพลิเคชันใด ๆ ดังนั้นทางเทคนิคมันจะยังคงวาง แต่จะไม่มีอะไรจะวาง
วิธีการทำงานคือมันทำงานxsel
และมีการคัดลอก ( -i
) เนื้อหาของ/dev/null
โดยไม่ฟอร์กไปที่พื้นหลัง ( -n
) และเพื่อเก็บสตริงว่างนั้นในบัฟเฟอร์แทนการล้างและออกจาก ( -f
) ทุกครั้งที่ออกมันจะเรียกใช้xsel
อีกครั้งด้วยตัวเลือกเดียวกัน เนื่องจากxsel
จะยังคงทำงานต่อไปจนกว่าโปรแกรมอื่นจะ "ช่วยลดหน้าที่" โดยการคัดลอกสิ่งอื่นมันจะไม่สร้างกระบวนการใหม่ตลอดเวลาแทนที่จะทำให้กระบวนการเดียวทำงานได้อย่างแม่นยำจนกว่าจะต้องการอีกครั้ง (เว้นแต่คุณจะมีสคริปต์ทำงานหลายอินสแตนซ์ แต่ไม่จำเป็นต้องทำเช่นนั้น)
ไม่เลยสิ่งนี้จะไม่รบกวนการคัดลอก / วางปกติเนื่องจากการวางคลิกกลางใช้คลิปบอร์ดแยก
นี่คือสคริปต์ของฉัน คุณอาจต้องปรับแต่ง
#!/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 ---------------------------------------------------------------------------------