Fare hızını yapılandırın (işaretçi ivmelenmesini değil!)


30

KDE4'te fare hızını arttırmanın bir yolu var mı? Herhangi bir işaretçi ivmesi istemiyorum, sadece değiştirmek istediğim fare hızı.

Düzenleme : Ne yazık ki, xorg.conf dosyasını düzenlemek benim için bir seçenek değildir, çünkü kullanıcıların fare hızını kendileri yapılandırabilmelerini istiyorum ve şirket politikası, kullanıcıların xorg.conf dosyasını değiştirme iznini reddetmelerini sağlamaktır.


2
bu ikisi arasındaki fark nedir?
Web-E

3
@ Web-E Hızlandırma, hızın zamanla değiştiği hızdır
Oleh Prypin

@ Web-E bunlar 2 farklı şey.
Bruno Pereira,

Yanıtlar:


35

KDE bunu henüz kontrol merkezine yerleştirmedi, ancak xinput komutunu komut satırından kullanabilirsiniz. İlk önce, xinput listfarenizin cihaz numarasını bulmak için çalıştırın :

$ xinput list
⎡ Virtual core pointer                          id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ SynPS/2 Synaptics TouchPad                id=10   [slave  pointer  (2)]
⎣ Virtual core keyboard                         id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=9    [slave  keyboard (3)]

Dizüstü bilgisayarımda istediğim cihaz kimliği 10 (SynPS / 2 Synaptics TouchPad). Sisteminizde, hangi cihazın doğru olduğuna karar vermeniz gerekir. Ardından, xinput list-props <your device id>o cihazın geçerli ayarlarını görmek için çalıştırın :

$ xinput list-props 10
Device 'SynPS/2 Synaptics TouchPad':
    Device Enabled (144):   1
    Device Accel Profile (266):     1
    Device Accel Constant Deceleration (267):       2.500000
    Device Accel Adaptive Deceleration (268):       1.000000
    Device Accel Velocity Scaling (269):    12.500000
  [ many more settings omitted ]

İlgilendiğiniz emlak "Device Accel Constant Deceleration (267)" dir. Farenizi yavaşlatmak için, çalıştırılarak değerin artırılması gerekir xinput set-prop <your device id> <property id> <value>:

$ xinput set-prop 10 267 5.0

Bu örnekte, değer 2,5'ten 5,0'a yükseltilir ve fare yarı hızda hareket eder.


5
Bunu 1.0'ın altına ayarlayamazsınız, ki bu durum benim durumumda hala çok yavaş.
pong

2
Liste-aksesuarı ile ilgili bir sorun yok, fakat set-propsonuç: X Başarısız istek hatası: BadAccess (özel kaynağa erişim girişimi reddedildi) X.Org X Server 1.16.0, Unity masaüstünü çalıştırarak. X.Org X Server 1.9.3.90 için farenin kimliği 6 ve özellik numarası
233'tür.

2
Daha da iyisi: xinput set-prop 'SynPS / 2 Synaptics Dokunmatik Yüzey' 'Aygıt Hızlanma Sabit Yavaşlama' 2.5
Simon Thum

2
yeniden başlatma sonrasında bu ayar yapışıyor mu? değilse, yapışmasını sağlayabilir miyiz?
Ciprian Tomoiagă

3
"Aygıt Hızlanma Sabit Yavaşlama" bile uygun bir seçenek değilse ne yapmalı?
DaVince

14

Linux'taki (Xorg) fare ayarlarının terminolojisi, Windows dünyasından biraz farklıdır.

Üç önemli ayar vardır:

  • threshold - Hızlanma için tetikleyici
  • acceleration - Eşikten sonraki hıza ulaşıldı
  • resolution - Hız"

Bu ayarlar Masaüstü Ortamından bağımsızdır. Bunlar saf X ayarlarıdır. Yani bu her zaman işe yarıyor. Bu ayarları değiştirmenin gerçekten bağımsız bir yolu için ayrıca fare bölümünexset de bakın .

Birlik ayarları yöneticisi thresholdduyarlılığı yeniden adlandırıyor gibi görünüyor . Ancak KDE hakkında konuşurken, bunun önemi olmamalıdır.

Sadece thresholdve accelerationkullanıcı tarafından değiştirilebilir. Bu resolution, yapılacak bir ayardır xorg.conf. Ancak genellikle ilk iki ayar çoğu kullanıcı için yeterlidir.

Linuxreviews bu değerlerin bir açıklaması vardır .

Temel olarak: Fare, temel bir hızda hareket eder (kullanılarak değiştirilebilir resolution). Fare kısa sürede n pikseli (n = threshold) hareket ettirirse , temel hız ile çarpılır acceleration. Örnek olarak, hızlanmayı tamamen devre dışı bırakmak istiyorsanız, eşiği ayarlayabilirsiniz 0. Kelime: Fare 0kısa sürede pikselleri hareket ettirirse, kullanacağım base-speed * acceleration. Böylece bir eşik 0size sabit bir fare hızı verir.

Bu nedenle, bu iki değer size hız üzerinde çok hassas bir kontrol sağlar.


1
Özellikle söz konusu olan parametre, xset kullanılarak değiştirilemeyen çözünürlüktür.
Luke

Açıklığa kavuşturmak için, eşik = 0 size X'deki polinom ivmesini verir ve bu da sabit hızda değildir. Yukarıdaki çözümü kullanın.
Simon Thum

@SimonThum bu gerçekten böyle mi? Ayrıca ivmenin lineer olması gerektiğini de düşündüm (baz hız arasında nihai hıza geçiş olmasına rağmen = baz hız * hızlanma). Bunu yorum bölümlerinde defalarca okudum. Talebinizi destekleyen kaynaklarınız var mı?
daniel451


Bugünlerde neden herkesin fare hızlandırmayı kullanmayı umduğunu anlamadım ve çözünürlüğe kolay erişilemiyor Yüksek hassasiyetli bir fareye sahip olmak istediğinizde tek makul ayar hızlanmadır ve (düz) hızı düşürür, çünkü modern lazer fareler çılgın yüksek DPI'ya sahiptir, bu da sistem tarafından çılgın yüksek hıza eşlenir. Fakat tohum istemiyorum, hassasiyet istiyorum - tercihen alt piksel.
Prokop Hapala

13

Fare duyarlılığını arttırma adımları:

Öncelikle tüm cihazları listele:

$ xinput list                                                               
⎡ Virtual core pointer                          id=2    [master pointer  (3)]                                 
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]                                 
⎜   ↳ PixArt USB Optical Mouse                  id=10   [slave  pointer  (2)]                                 
⎜   ↳ ETPS/2 Elantech Touchpad                  id=15   [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)]                                 
    ↳ Sleep Button                              id=8    [slave  keyboard (3)]                                 
    ↳ USB2.0 UVC 2M WebCam                      id=9    [slave  keyboard (3)]                                 
    ↳ Asus Laptop extra buttons                 id=13   [slave  keyboard (3)]                                 
    ↳ AT Translated Set 2 keyboard              id=14   [slave  keyboard (3)]                                 
    ↳   USB Keyboard                            id=11   [slave  keyboard (3)]                                 
    ↳   USB Keyboard                            id=12   [slave  keyboard (3)]   

Örnekte, fare kimliğinin 10 olduğunu görüyoruz. Sonraki özelliklerini listele:

$ xinput list-props 10
Device 'PixArt USB Optical Mouse':
        Device Enabled (140):   1
        Coordinate Transformation Matrix (142): 10.400000, 0.000000, 0.000000, 0.000000, 10.400000, 0.000000, 0.000000, 0.000000, 10.400000
        Device Accel Profile (265):     0
        Device Accel Constant Deceleration (266):       1.000000
        Device Accel Adaptive Deceleration (267):       1.000000
        Device Accel Velocity Scaling (268):    10.000000
        Device Product ID (260):        2362, 9488
        Device Node (261):      "/dev/input/event5"
        Evdev Axis Inversion (269):     0, 0
        Evdev Axes Swap (271):  0
        Axis Labels (272):      "Rel X" (150), "Rel Y" (151), "Rel Vert Wheel" (264)
        Button Labels (273):    "Button Left" (143), "Button Middle" (144), "Button Right" (145), "Button Wheel Up" (146), "Button Wheel Down" (147), "Button Horiz Wheel Left" (148), "Button Horiz Wheel Right" (149)
        Evdev Middle Button Emulation (274):    0
        Evdev Middle Button Timeout (275):      50
        Evdev Third Button Emulation (276):     0
        Evdev Third Button Emulation Timeout (277):     1000
        Evdev Third Button Emulation Button (278):      3
        Evdev Third Button Emulation Threshold (279):   20
        Evdev Wheel Emulation (280):    0
        Evdev Wheel Emulation Axes (281):       0, 0, 4, 5
        Evdev Wheel Emulation Inertia (282):    10
        Evdev Wheel Emulation Timeout (283):    200
        Evdev Wheel Emulation Button (284):     4
        Evdev Drag Lock Buttons (285):  0

“Koordinat Dönüşüm Matrisi” tam olarak istediğimiz şey. Unutma №142.

Bu özelliği değiştirerek işaretçi hızını artırabiliriz. Bu değerler aslında bir işaretçi hareketini hesaplamak için kullanılan bir dönüşüm matrisidir . Bağlantıdan:

Varsayılan olarak, X'teki her giriş cihazı için CTM kimlik matrisidir. Örnek olarak, ekrandaki bir noktada (400, 197) bir dokunmatik ekrana dokunduğunuzu varsayalım:

⎡ 1 0 0 ⎤   ⎡ 400 ⎤   ⎡ 400 ⎤
⎜ 0 1 0 ⎥ · ⎜ 197 ⎥ = ⎜ 197 ⎥
⎣ 0 0 1 ⎦   ⎣  1  ⎦   ⎣  1  ⎦

Cihaz olayının X ve Y koordinatları, hesaplamanın ikinci matrisine girilir. Hesaplamanın sonucu, olayın X ve Y koordinatlarının ekrana eşlendiği yerdir. Gösterildiği gibi, kimlik matrisi cihaz koordinatlarını herhangi bir değişiklik yapmadan ekran koordinatlarına eşler.

Yani, matrisle yapmak istediğimiz şey - x ve y'ye göre olan değerleri diğer belirli bir değere ayarlamaktır ve bu, işaretçi hızını değiştirir. Bilgisayarımdan bir örnek:

$ xinput set-prop 10 142 2.400000, 0.000000, 0.000000, 0.000000, 2.400000, 0.000000, 0.000000, 0.000000, 1.000000

Öyle xinput set-prop <device-id> <property-number> <property-values>. Uygun olanları bulana kadar biraz oynayın. Not: Matrisin son değerini değiştirmeyin. İşe almaya çalıştığımda hatam buydu - bu durumda hiçbir fark görmeyeceksiniz.

En azından son sürümleri, xinputaygıtları ve seçenekleri ada göre belirtmeye izin veriyor, bu nedenle bu örnek de işe yarayabilir:

xinput set-prop 'PixArt USB Optical Mouse' 'Coordinate Transformation Matrix' 1.2 0 0 0 1.2 0 0 0 1

Bu değişiklikler yalnızca geçerli oturum için etkindir, bu nedenle iyi bir duyarlılık seçtikten sonra ekleyerek xorg.conf(veya gibi bir dosya oluşturarak) kalıcı olarak uygulamanız gerekir /etc/X11/xorg.conf.d/40-mouse-sensitivity.conf:

Section "InputClass"
    Identifier "PixArt USB Optical Mouse"
    MatchIsPointer "Yes"
    Option "TransformationMatrix" "1.2 0 0 0 1.2 0 0 0 1"
EndSection

Bunun işe yarayıp yaramadığından emin değilseniz 5.0, dosyayı kaydedin ve yeniden başlatın gibi büyük bir değere değiştirin .

Teşekkürler: Xorg posta listesinden Simon Thum'a minnettarım, o matris hakkında ipucu veren oydu.


Koordinat Dönüşüm Matrisini orijinal amacına bırakmak, örneğin ekran yönlendirmesi veya dokunmatik ekranlarla çalışmak gibi durumlarda "koordinatları dönüştürmek" için en iyisidir.
Kari Kääriäinen

2
@ KariKääriäinen diğerleri gibi kafası karışmış. "İşaretçi ivmesi" adı verilen fare duyarlılığıyla hiçbir ilgisi yoktur, sadece işaretçiyi hareket ettirdiğiniz kadar hızlı hareket ettirmenizi sağlar. Diğer bir deyişle, fareyi aynı mesafeye ancak farklı hızlarda hareket ettirirseniz, işaretçi farklı bir mesafeye taşınır. Bu oldukça rahatsız edici, bir noktaya gelmek için her zaman yavaşlamanız gerekiyor. Ancak, dönüşüm matrisini değiştirmek, bir anlamda, artan bir fare duyarlılığını taklit etmenize izin verir. Ve btw, özellikle hızı deceleration yavaşlatıyor .
Hi-Angel,

1
İlginç, ancak bu yöntemin bir dezavantajı var: bunu kullanırken, bazı piksellere erişilemiyor. Bunu daha açık hale getirmek xinput set-prop 11 138 40, 0, 0, 0, 40, 0, 0, 0, 1için farenin sadece 40 piksel aralıklı koordinatlara ulaştığını denedim ve onayladım. Gerçek dünya kullanımı muhtemelen 40 yerine 2 veya 4 kullanır, ancak yine de pikselleri özler. Diğer dezavantajı çözdüm (hızlanma özelliğini sabit hız kazancı olarak kullanın) çünkü bu dezavantajı yok.
Stéphane Gourichon

4
Tek doğru cevap.
MichalH,

1
2019 itibariyle, en azından benim durumumda, 'Aygıt Hızlanma Sabit Yavaşlama' özelliği yoktur. Dönüşüm matrisi hala orada ve istenen etkiye sahip olabilir, ancak StéphaneGourichon yukarıda işaret ettiği şey mükemmel bir anlam ifade etse de. Ah iyi, linux ve tuhaflıklar ...
Kellogs

4

Buradaki soruya çok açık değinmeme rağmen önerim.

KDE için

Hızlı bir arama, eşik değer altında fare hızını artırmak için böyle bir seçenek olmadığını ortaya koymaktadır.

Bazı kullanıcılar, /etc/X11/xorg.confdosyadaki ( mouse InputDevice section) gibi farenin çözünürlüğünü değiştirmeyi öneriyor

Option "Resolution" "400"

Ancak çoğu kullanıcı işe yaramadığını söyledi.

Eşik değerini, eşik değer ulaşana kadar hızlanmaya başlamaması için artırabilirsiniz. (Ayar içeride Mouse> Advanced Settings)

İlgili bir yazı burada bulunabilir .

Birlik için

  • Tuşuna basın Super(windows tuşu).
  • Ara mouse.
  • seçmek Mouse And Touchpad
  • Şimdi hassasiyeti daha yüksek bir değere değiştirin. Muhtemelen istediğin budur.

    fare ayarları


2
Tamam, bu tam olarak aradığım ayar ama ekran görüntüsünüz Gnome'dan alınmış ve sorum KDE4 ile ilgili.
André,

Sorunuzu doğru kontrol etmediğim için üzgünüm. Güncellenmiş.
Web-E

Vay, teşekkürler! Görünüşe göre bu konuda çok çaba sarfettiniz. Ne yazık ki, xorg.conf dosyasını düzenlemek bir seçenek değildir, çünkü kullanıcıların "Çözünürlük" ayarını kendileri belirleyebilmelerini istiyorum ve şirket politikası, kullanıcıların xorg.conf dosyasını değiştirme iznini reddetmelerini sağlamaktır. Bu kısıtlamayı orijinal yoruma ekleyeceğim, ancak yine de yorumunuzu geçersiz kılacağım.
André,

3
Aman Tanrım. «İşaretçi çözünürlüğünü» sadece bir yapılandırma dosyası (yani etkileşimli değil) aracılığıyla ayarlama kabiliyeti bir hata olarak kabul edilmelidir. Bir kullanıcı uygun bir çözünürlük bulmak için XServer'ı kaç kez yeniden başlatmalıdır? Beş? On? Bu üzücü kadar komik…
Hi-Angel

Yeni kurdum, unity-control-centerfarenin hassasiyetini yüksek seviyeye ayarladım ve işe yaramadı.
Merhaba,

2

Yukarıdaki yazının söylediklerini göz önüne alındığında, bu çalışma çevresinde bulundu.

Gerçek şu ki, fare, çoklu hızın "acceleration" parametresi tarafından ayarlandığı, baz hızın sabit bir katında hareket ediyor.

Ancak, bu çarpan yalnızca fareniz "hassasiyet" parametresiyle belirtilen "eşik" hızından daha hızlı hareket ettikten sonra uygulanır.

Bu, farenizi hızlı hareket ettirmeye başlarsanız, eşik hızdan geçerken kontrolsüz bir şekilde zıplamaya başladığı “hızlanma” hissini yaratır.

Yani yapabileceğiniz şey "duyarlılığı" 0 olarak ayarlamak ve böylece eşiği 0 yapmaktır. Bu, hızlandırma işleminiz her zaman fare hızınıza uygulanır.

O zaman fare hızınız "acceleration" parametrenizin yalnızca bir katıdır ve doğrusal bir çarpma olduğundan, ivme parametresiyle orantılı sabit bir hıza sahip olmanız gerekir. İvme ve atlama hissi olmadan.

Kısacası: Hassasiyeti 0 olarak ayarlayın. "İvme" parametresini "hız" gibi ayarlayın


Bu cevap, lolmaus'un KDE-yönelimli cevabın genel versiyonudur. Ben sadece bunu yaptım, ilk önce eşik 1 piksel ile denememe rağmen, 0'dan "devre dışı" olarak belirtilen diğer cevaplar. Neyse, bunu çalıştırarak hemen test edebildim: xset mouse 4 0ve benzerleri ve sonunda karar kıldılar xset mouse 2 0. Bu bir tür hack (düz hız için hızlanma özelliğini kullanarak), ancak hala bazı eşiklerin uygulanmış olduğunu hissediyorum.
Stéphane Gourichon

1

Şahsen kesin işaretçi hareketinin genel masaüstü deneyimi için daha iyi olduğunu düşünüyorum, bu yüzden bu ayar benim için de önemli. OS UXP tasarımcılarının neden sadece hızlandırmayı varsayılan hale getirmediğini, aynı zamanda kontrolü kullanıcı arayüzünden kaldırma eğiliminde olduklarını her zaman merak ediyordum.

Sizi daha konforlu hale getirmek için beklenen ivmenin, bazı durumlarda fare üzerinde hızlı hareket ederken ekrandaki doğru UI öğelerini kaçırabileceğiniz veya bazı CAD uygulamaları için hassaslığa ihtiyaç duyabileceğiniz için aslında istenmediğini görebilirsiniz. Özellikle, kaydırıcı ve döndürücü UI öğelerinin kontrolünü elinize almak veya bir tasarımcının kullanıcı arayüzünde bir şekil taşımak zor. Ayrıca, hızlanma ile, fare imlecini bir metin bölgesini kopyalayıp yapıştırırken tam olarak bir metin düzenleyicisine yerleştirmek zordur. Bazıları, hassasiyete ihtiyaç duyduğunuzda sadece yavaşladığınızı iddia edebilir, ama ya yavaşlamak ve hala hassasiyet almak istemezseniz?

Hızlanma olup olmadığını kontrol edebilirsiniz:

(1). Fare işaretçinizi ekranın sağına getirin, cihazın masanın üzerindeki fiziksel konumuna dikkat edin.

(2). Fareyi biraz sola doğru biraz hareket ettirin, böylece imleç ekranın ortasından dolaşır ve fiziksel cihazı çok yavaşça orijinal konumuna getirir.

(3). (1) ve (2) adımlarını birkaç kez tekrarlayın.

İvme yoksa, imleç her zaman ekranın sağına gelmelidir. Eğer ivme varsa, imleç sola doğru daha fazla hareket eder, bu yüzden 3 veya 4 kez sonra ekranın soluna vuracaktır, bu yüzden düzeltmeniz gerekir.

Hızlanma olmaması, Device Accel Velocity Scalingparametreyi ayarlamanız gerektiği anlamına gelir .

Genel olarak fare hareketini yavaşlatır, bu nedenle sabit hız ayarıyla bunu dengelemeniz gerekir. Bu Device Accel Constant Decelerationparametre düşürülerek yapılabilir .

İşte benim için çalıştı ne:

  1. Fare aygıtı kimliğini bulun:

$ xinput list ... ⎜ ↳ PixArt USB Optical Mouse id=10 [slave pointer (2)] ...

Cihaz kimliği = 10

  1. Cihazın özelliklerini listele

$ xinput list-props 10 ... Device Accel Constant Deceleration (276): 1.000000 ... Device Accel Velocity Scaling (278): 10.000000 ...

  1. Ölçekleme parametresini en aza indirin, bu gerçek fiziksel harekete göre bire bir fare hareketi yapmalıdır. Onu 0,1, 0,001 veya 1e-30 gibi bir şeye ayarlayıp ayarlamamanızın önemi yoktur, çünkü 10,0 değerinden daha düşük bir hızlanmadır. Bir hata olarak kabul edildiğinden sıfıra ayarlayamazsınız.

$ xinput set-prop 10 278 1e-10

  1. (isteğe bağlı) Artık kesin olmasına rağmen, hızın genel olarak düştüğünü farkedebilirsiniz, bu nedenle Constant Decelerationkonforlu hızı geri yüklemek için parametre ile oynamanız gerekebilir . Benim durumumda, işaretçiyi yarıya indiren rahat bir ayar 0.7 idi, fare hareketini daha önce olduğu gibi ama hızlanmadan hissettirdi:

$ xinput set-prop 10 276 0.7

Daha hızlı istiyorsanız, burada 0,5, 0,4 vb. Gibi daha düşük bir değer belirleyin. Daha yavaş istiyorsanız, 1,0, 1,2 ve hatta 1,5 gibi bir değere ayarlayın.


1

Yukarıdaki cevaplar artık eski. Benim için en doğru olanı bu wiki girişinin son bölümü :

libinput ile

Alternatif olarak, libinput-1.1.0-1 ve xf86-input-libinput-0.15.0-1'den beri düz bir hızlanma profili kullanabilirsiniz. Etkinleştirmek için aşağıdaki dosyayı oluşturun:

/etc/X11/xorg.conf.d/50-mouse-acceleration.conf

Bölüm "InputClass" Tanımlayıcı "Fare" Sürücü "libinput" MatchIsPointer "evet" Seçenek "AccelProfile" "düz" Seçenek "AccelSpeed" "0" EndSection

ve X'i yeniden başlatın.

Başka bir seçenek bu komut:

$ xinput --set-prop 'libinput Hızlanma Profili Etkinleştirildi' 0, 1

X yeniden başlatılması gerekmez, ancak kalıcı değildir. Otomatik başlatma ile otomatik olarak çalışacak şekilde ayarlanabilmesine rağmen.


0

KDE'de fare hızı nasıl ayarlanır
  • fare ivmesini etkinleştirmeden
  • ve yalnızca yerleşimler iletişim kutusunu kullanarak (konsol yok, yapılandırma dosyası yok)

Bu exhuma'nın cevabının konuşma özetidir, onu affetmeyi unutma.

KDE'de, fare ivmesi logaritmik değildir. Yani, iki sabit fare hızına sahip: hızlandırılmamış ve hızlandırılmış. Fareyi yeterince hızlı bir şekilde sardığınızda, birinden diğerine geçer.

İlk hız yapılandırılamaz (en azından GUI'den). İkinci hız yapılandırılabilir.

Çözüm şudur:

  1. "İşaretçi eşiği" ni 0 olarak ayarlayın. Sonuç olarak, ikinci hız her zaman uygulanacaktır.
  2. Bu hızı daha büyük veya daha küçük yapmak için "İşaretçi ivmesini" ayarlayın.

İsteğinize göre ayarlanmış sabit, dinamik olmayan bir imleç hızı elde edersiniz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.