ปิดใช้งานการเร่งความเร็วเมาส์ใน X.Org (Linux)


11

นี่เป็นรุ่น Linux ของการปิดใช้งานการเร่งความเร็วเมาส์ในคำถามMac OS X หวังว่าฉันจะได้รับคำตอบในครั้งนี้

ฉันเหนื่อยกับการเร่งความเร็วของเมาส์และต้องการได้รับการตอบสนองของเมาส์เชิงเส้นอย่างสมบูรณ์ นี้สามารถทำได้อย่างง่ายดายผ่านทางใด ๆ ของ 5 หรือดังนั้นวิธีการ (บางนัยอย่างละเอียด) บนหน้า X.Org วิกิพีเดียในการเร่งตัวชี้ อย่างไรก็ตามพวกเขายังปิดการใช้งานการปรับขนาดความเร็วด้วย

ฉันไม่ต้องการการแมป 1: 1 ระหว่างอุปกรณ์และพิกัดหน้าจอ ฉันต้องการที่ 1: การทำแผนที่ยังไม่มีข้อความที่ N เป็นค่าคงที่ ความคิดใด ๆ

คำตอบ:


15

วิธีเดียวที่ฉันพบว่าใช้งานได้(และฉันลองบน Ubuntu เท่านั้น)ก็คือxinputคำสั่ง

ก่อนอื่นคุณต้องระบุหมายเลขอุปกรณ์ของเมาส์ที่คุณต้องการเปลี่ยน:

# xinput list
â¡ Virtual core pointer                         id=2    [master pointer  (3)]
â   â³ Virtual core XTEST pointer               id=4    [slave  pointer  (2)]
â   â³ Microsoft Microsoft 5-Button Mouse with IntelliEye(TM)   id=10   [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)]
    â³ Power Button                             id=7    [slave  keyboard (3)]
    â³ CHICONY USB Keyboard                     id=8    [slave  keyboard (3)]
    â³ CHICONY USB Keyboard                     id=9    [slave  keyboard (3)]
    â³ IR-receiver inside an USB DVB receiver   id=11   [slave  keyboard (3)]

ตอนนี้ในตัวอย่างนี้ฉันจะเล่นด้วยเมาส์ Microsoft ของฉัน id = 10

ตอนนี้เรามาดูคุณสมบัติของอุปกรณ์ที่อุปกรณ์นี้รองรับ:

# xinput list-props 10
Device 'Microsoft Microsoft 5-Button Mouse with IntelliEye(TM)':
    ... cruft cut ...
    Device Accel Profile (259):     3
    ... cruft cut ...

ค่านี้เป็นวิธีที่ผู้ขับขี่จัดการกับการเร่งความเร็ว:

-1: ไม่มีไม่มีการเร่งความเร็วตัวชี้ขึ้นอยู่กับหรือการชะลอตัว หากไม่ได้ใช้การลดความเร็วคงที่การประมวลผลการเคลื่อนไหวจะถูกระงับช่วยประหยัดบางรอบ

0: คลาสสิค (ค่าเริ่มต้น) คล้ายกับพฤติกรรมเก่า แต่คาดเดาได้มากกว่า เลือกระหว่าง 'พหุนาม' และ 'ง่าย' ตาม threshold = /! = 0

1: อุปกรณ์ขึ้นอยู่กับว่ามีไดรเวอร์ฮาร์ดแวร์ติดตั้งหรือไม่ อาจจะมาเพื่อ synaptics

2: polynomialตาชั่ง polynomial: velocity ทำหน้าที่เป็นสัมประสิทธิ์การเร่งกำลังเป็นเลขชี้กำลัง มีประโยชน์มากโปรไฟล์แนะนำ

3:เครื่องชั่งเชิงเส้นเรียบส่วนใหญ่เป็นเส้นตรง แต่เริ่มต้นอย่างราบรื่น (ไม่เป็นเชิงเส้น)

4:ช่วงการเปลี่ยนภาพอย่างง่ายระหว่างการเร่ง / ไม่เร่งความเร็ว แต่ด้วยช่วงการเปลี่ยนภาพที่ราบรื่น นี่เป็นปัญหาพื้นฐานของการเร่งในสอง niveaus ซึ่งการเร่งความเร็วนั้นไม่ขึ้นอยู่กับความเร็ว ตามเนื้อผ้าเริ่มต้นอย่างไรก็ตาม

5: พลังงานเร่งโดยฟังก์ชั่นพลังงาน ความเร็วคือเลขชี้กำลังที่นี่ ปฏิบัติตามเกณฑ์ จะควบคุมได้ยากอย่างง่ายดายดังนั้นจึงเป็นเรื่องสำคัญที่คุณจะต้องปรับการประมาณค่าความเร็วอย่างเหมาะสม

6: เชิงเส้นเป็นแบบเชิงเส้นถึงความเร็วและอัตราเร่ง เรียบง่ายและสะอาด

7: จำกัดอย่างราบรื่นขึ้นสู่ความเร่งสูงสุดที่ขีด จำกัด ซึ่งมันจะแบน (มี จำกัด )

จากนั้นเราจะเห็นว่าถ้าเราตั้งค่าคุณสมบัตินี้เป็น -1 มันจะปิดใช้งานการเร่งความเร็วอย่างสมบูรณ์

$ xinput set-prop 10 259 -1

ดังนั้นตอนนี้เราไม่มีการเร่งความเร็ว แต่สิ่งที่เราต้องการคืออะไร? เมาส์ช้าไปหน่อย น่าเศร้าที่มันเป็นอย่างนั้น เมื่อปิดใช้งานการเร่งความเร็วคุณจะได้รับความสัมพันธ์ระหว่างเมาส์และจอแสดงผล 1: 1 คุณเลื่อนเมาส์ไปทางซ้ายหนึ่งจุดและตัวชี้เมาส์เลื่อนไปทางซ้ายหนึ่งพิกเซล หากมีวิธีการคูณการเคลื่อนที่ของอินพุต (พูดด้วย 2) พิกเซลอื่น ๆ ในแต่ละแกนจะไม่สามารถใช้กับเมาส์ได้ นั่นจะทำให้การวางตำแหน่งเมาส์แม่นยำอย่างยากลำบาก การตั้งค่า 'ความไว' ในแผงควบคุมเมาส์ GUI นั้นจริง ๆ แล้วตรงข้ามกับที่คุณคาดไว้ - ความละเอียดอ่อนที่สุดคืออัตราส่วน 1: 1 - เป็นการเร่งความเร็วซึ่งทำให้ดูเหมือนเร็วขึ้นมาก

ดังนั้นคุณต้องการการเคลื่อนไหวที่เร็วขึ้น แต่คุณไม่ต้องการความเร่ง วิธีเดียวที่คุณสามารถทำได้คือในฮาร์ดแวร์ โดยทั่วไปคุณจะต้องซื้อเม้าส์ที่ไวกว่า มองหาเครื่องพิมพ์ที่มี DPI ที่สูงขึ้น (Dots Per Inch - ใช่เหมือนเครื่องพิมพ์) ฉันพบว่า Microsoft IntelliEye รุ่นเก่าของฉันนั้นไวพอที่จะปิดใช้งานการเร่งความเร็วเพื่อให้ใช้งานได้

หรือบางทีเมาส์ของคุณไวเกินไป? แม้ว่าการเร่งความเร็วจะปิดใช้งานอยู่ แต่มันเร็วเกินไปสำหรับความชอบของคุณ? นั่นคือสิ่งที่

Device Accel Constant Deceleration (260):      1.0000

การตั้งค่าเข้ามานี่คืออัตราส่วนการลดความเร็วคงที่ (หรือ desinsitizing) โดยค่าเริ่มต้นคือ 1: 1 แต่จะใช้จำนวนใด ๆ ในการรับเมาส์ช้าลงเล็กน้อย:

$ xinput set-prop 10 260 1.2

หรือการชะลอตัวครั้งใหญ่สำหรับงานที่ละเอียดอ่อนมาก:

$ xinput set-prop 10 260 10

หรือคืนค่าเป็นปกติ:

$ xinput set-prop 10 260 1

สามารถใช้งานได้แม้ว่าโปรไฟล์การเร่งจะถูกตั้งค่าเป็น -1 (ปิดใช้งาน)


จะเกิดอะไรขึ้นถ้าฉันต้องการความไวของเม้าส์น้อยกว่าด้วยเมาส์ที่มี DPI สูง ไม่ขออภัยการแมป 1: 1 ไม่ได้ผล และค่าถัดไปไม่ใช่ 1: 2 คุณสามารถทำได้พูด 1: 1.2 ในความเป็นจริงฉันค่อนข้างแน่ใจว่ารหัสการเร่งความเร็วในปัจจุบันมีวิธีที่แตกต่างกันหลายล้านวิธีในการปรับความเร็วและบรรลุความละเอียดพิกเซลย่อย หากมีเพียงโปรไฟล์ "ไม่มีการเร่งความเร็ว" ซึ่งต่างจาก "ปิดใช้งานรูทีนย่อยการเร่งความเร็วอย่างสมบูรณ์"
aib

@aib ตรวจสอบการแก้ไขของฉัน
Majenko

ฉันขอโทษมันไม่ใช่การชะลอตัวชี้ที่ฉันต้องการ (ดีบางทีมันอาจจะเป็น แต่หลังจากที่ผมได้ปรับสัดส่วนการเคลื่อนไหวของเมาส์ของฉันขึ้นและโดยไม่ต้องซื้อเมาส์ใหม่, thank you.)
aib

สิ่งนี้ควรได้รับการยอมรับ ฉันไม่ทราบว่าการชะลอตัวสามารถลอยได้และไม่ใช่แค่จำนวนเต็ม ขอบคุณ! ไม่มีโปรไฟล์ใดปิดการเร่งความเร็ว (เหมือนใน windows)
inf3rno

ใน Debian Stretch สิ่งเหล่านี้ดูเหมือนจะไม่ทำงานอีกต่อไป: หลังจากอัปเกรดแล้วคุณสมบัติการเร่งความเร็วคงที่ของ Device Accel คงหายไปและสิ่งที่ฉันมีสำหรับเมาส์นี้ (xinput --list-props) ดูเหมือนจะไม่ส่งผลกระทบต่อมันอีกแล้ว คืนหนูที่ไร้ประโยชน์)
Jubatian

2

เมื่อมองผ่านแหล่งที่มาของ X.org เล่นกับเซิร์ฟเวอร์ที่กำหนดเองและทำการทดสอบแบบครอบงำด้วยเมาส์ฉันสามารถพูดได้อย่างปลอดภัยว่าโปรไฟล์จำกัดปัจจุบัน(7) ได้รับสิ่งนี้เมื่อตั้งthresholdค่าเป็น 0 accelerationจากนั้นค่าจะกลายเป็นความเร็ว scaler (เซนต์คิตส์และเนวิส?)

ดังนั้น:

xinput set-prop <device> "Device Accel Profile" 7
xset m <velocity> 0

ส่วนที่สองสามารถตั้งค่าได้โดยใช้แผงการตั้งค่าเมาส์ของสภาพแวดล้อมเดสก์ทอปของคุณ อย่าลืมว่าต้องอยู่ในx/yรูปของค่าที่ไม่ใช่จำนวนเต็มเช่น16/10สำหรับ 1.6

นอกจากนี้ยังมีการตั้งค่าอื่น ๆ (การลดความคมชัด ฯลฯ ) เพื่อปรับ แต่สิ่งนี้จะดูแลส่วนที่แย่ที่สุดของปัญหา ไฟล์การกำหนดค่าบางไฟล์ควรได้รับการแก้ไขเพื่อความคงทน แต่สิ่งที่สำคัญคือมันเป็นไปได้

แก้ไข: เพื่อความคงทนคุณสามารถเพิ่มสิ่งนี้ในxorg.xconf:

Section "InputClass"
        Identifier "Mouse with No Acceleration"
        MatchIsPointer "yes"
        MatchProduct "Mouse"
        Option "AccelerationProfile" "7"
EndSection

คุณสามารถใช้การตั้งค่าเมาส์ของสภาพแวดล้อมเดสก์ท็อปได้ดังที่ฉันได้กล่าวไว้ อย่างไรก็ตามหากคุณต้องการxorg.confโซลูชันที่สมบูรณ์:

Section "InputClass"
        Identifier "Mouse With No Acceleration"
        MatchIsPointer "yes"
        MatchProduct "Mouse"
        Option "AccelerationProfile"     "7" # "limited" profile
        Option "AccelerationNumerator"   "2" # these adjust the sensitivity
        Option "AccelerationDenominator" "1" # these adjust the sensitivity
        Option "AccelerationThreshold"   "0" # this disables acceleration
                                             # in the "limited" profile
EndSection

<3 ขอบคุณ แม้ใช้งานได้กับโหมดสลีป
Simon A. Eugster

0

ฉันรู้ว่ามันเก่า แต่ฉันคิดว่ามันเป็นการดีที่จะเพิ่มคำตอบให้กับคำถามที่ถามไปแล้ว XSETจะทำงานให้คุณมากที่สุด คำสั่งที่ฉันวิ่งคือxset m 1 1...

เนื้อหา man page สำหรับ xset ฉันมี curated ที่นี่จากxset (1)สำหรับคุณสำหรับตัวเลือกเมาส์:

เม้าส์

ตัวเลือก m ควบคุมพารามิเตอร์ของเมาส์ มันอาจจะยากที่จะ 'm' พารามิเตอร์สำหรับเมาส์คือacceleration' andthreshold ' ความเร่งสามารถระบุเป็นจำนวนเต็มหรือเป็นเศษส่วนแบบง่าย เมาส์หรือตัวชี้ใด ๆ ที่เครื่องเชื่อมต่ออยู่จะไปถึงacceleration' times as fast when it travels more thanขีด จำกัด 'พิกเซลในเวลาอันสั้น ด้วยวิธีนี้คุณสามารถใช้เมาส์เพื่อการจัดตำแหน่งที่แม่นยำเมื่อมันเคลื่อนที่อย่างช้า ๆ แต่ก็สามารถตั้งค่าให้เคลื่อนที่ข้ามหน้าจอได้ในสะบัดข้อมือเมื่อต้องการ พารามิเตอร์หนึ่งหรือทั้งสองอย่างสำหรับตัวเลือก m สามารถละเว้นได้ แต่หากกำหนดเพียงพารามิเตอร์เดียวจะถูกตีความเป็นการเร่งความเร็ว หากไม่มีการใช้พารามิเตอร์หรือตั้งค่าสถานะ 'default' ระบบจะตั้งค่าเริ่มต้น

หากใช้threshold' parameter is provided and 0, theพารามิเตอร์การเร่ง '> ในเลขชี้กำลังของสูตรที่เป็นธรรมชาติและต่อเนื่อง> ยิ่งขึ้นให้การควบคุมที่แม่นยำสำหรับการเคลื่อนไหวช้า แต่การเข้าถึงที่ยิ่งใหญ่สำหรับการเคลื่อนไหวที่รวดเร็ว> และการเปลี่ยนแปลงแบบก้าวหน้าสำหรับการเคลื่อนไหวในระหว่าง ค่า 'ความเร่ง' ที่แนะนำในกรณีนี้คือ 3/2 ถึง 2 แต่ไม่ จำกัด เฉพาะช่วงนั้น

คำเตือน: สิ่งนี้จะไม่รอดจากการ relogin / reboot โดยไม่ต้องใช้เล่ห์อุบายพิเศษ ...

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.