Shift tuşuyla yatay kaydırmayı taklit etme


13

(Dikey) kaydırma tekerleğimi kullandığımda ve düğmesine bastığımda yatay kaydırmayı taklit etmek istiyorum Shift.

Bazı uygulamalarda (Chrom {e, ium}) bu zaten çalışıyor, ancak X uygulamaları için genel bir çözüm arıyorum.

Şimdiye kadar olan en yakın xbindkeys+ xdotool.

# ~/.xbindkeysrc
"xdotool click 6"
  shift + b:4

"xdotool click 7"
  shift + b:5

Sorun şu ki xbindkeys, bazı olayları kaçırıyor gibi görünüyor ve bazen dikey bir kaydırma "geçiyor". Bu çok can sıkıcı. Bir xbindkeysçeşit yoklama gibi mi görünüyor ?

Ayrıca saniyede yüzlerce kabuk komutu üretmekten de hoşlanmıyorum.

Küçük bir ekranım var ve yatay olarak çok fazla kaydırmam gerekiyor.

Genel yatay kaydırmayı nasıl başarabilirim?

GÜNCELLEME:

Çoğunlukla istediğim şeyi yapan başka bir yol var xbindkeysve xmodmap.

"xmodmap -e 'pointer = 1 2 3 6 7 4 5 8 9 10'"
  c:50
"xmodmap -e 'pointer = default'"
  release + shift + c:50

Basılı Shifttutulduğunda, işaretçi düğmeleri 4 ve 5 6 ve 7 ile eşleştirilir. (4/5 düğmeleri dikey kaydırma için ön ve yatay kaydırma için 6/7'dir). c:50sol Shifttuştur. Tuş serbest bırakıldığında varsayılan işaretçi eşlemesi geri yüklenir.

Bu, "çok fazla olay" sorununu güzelce çözer. Ancak, Shift tuşu artık normal değiştirici olarak çalışmıyor. ShiftBasın / yayın etkinliklerini şu şekilde yeniden yayınlamaya çalıştım xdotool:

"xmodmap -e 'pointer = 1 2 3 6 7 4 5 8 9 10';  xdotool keydown Shift_L"
  c:50
"xmodmap -e 'pointer = default';  xdotool keyup Shift_L"
  release + shift + c:50

Göre olaylar geçmek, ama artık bir değiştirici olarak tanınmadı düşünüyorum. Örneğin, + tuşuna basmak büyük harf üretmez .xevShiftShiftAA


1
Birçok program için Ctrl + Ok tuşlarıyla yatay kaydırma da yapabilirsiniz.
terdon

1
Teşekkürler, ancak bu Firefox'ta benim için çalışmıyor. Her yerde çalışan "genel" bir çözüm arıyorum.
Paul Schyska

Kök olarak bir şey çalıştırmak, örneğin sudo kullanmak sorun olur mu?
brm

Sudo yapmak zorunda değilsiniz. Shift'e her basıldığında sudo-ing demek istediğini sanıyorum? Aklınızdakileri ayrıntılandırabilir misiniz?
Paul Schyska

Bu anlamsız olabilir, ama bir zamanlar bu benim için işe yaradı ~/.xbindkeysrc.scm. Bir noktada başarısız oldu, ancak sisteminizde işe yarayabilir.
Sparhawk

Yanıtlar:


2

Benim için kabul edilebilir bir çözüm buldum.

ShiftBasıldığı sürece tekerlek eksenini döndürmek için değiştiricim olarak kullanmanın bir yolunu veya başka bir anahtarı bulamadım .

Şimdi .xbindkeysrcbir açma / kapatma düğmesi ile basit bir kullanıyorum :

"~/toggle.sh"
  alt + x

Toggle.sh betiği şöyle görünür:

#!/bin/sh
on()
{
  xmodmap -e 'pointer = 1 2 3 6 7 4 5 8 9 10'
}

off()
{
  xmodmap -e 'pointer = default'
}

if xmodmap -pp | grep -q '4.*6'; then
  off
else
  on
fi

Bu, davranışı değiştirmeme izin veriyor. Ben bastığınızda Alt+ Xbenim fare tekerleği aks döndürülmüş olduğunu ve bunu tekrar bastığınızda varsayılan şekilde ayarlanır.

Şimdilik işe yaramalı.

Birisi bunu Shiftbir "değiştirici" olarak yapmanın bir yolunu bulursa (fare ekseni basılı olduğu sürece dönebilir), lütfen bana bildirin.

EDIT: Alt+ xyaygın olarak kullanılan bir kısayol tuşu olduğu için, bunu şu şekilde değiştirdim:

(xbindkey '(control "b:3") "toggle-wheel.sh")

(Guile konfigürasyonuna geçtim, böylece yukarıdaki adın bir dosyada olması gerekir .xbindkeysrc.scm)

Bu, Ctrl+ sağ fare tuşu ile kaydırma tekerleğinin yönünü değiştirir .


0

Btnx kullanabilirsiniz ve bu gui yapılandırma aracıdır .

Daha yeni Ubuntu paketi ve burada

Btnx-config kullanarak farenizdeki düğme algılamasını yaptıktan sonra, sadece "Scroll Up" ile birlikte bir shift düğmesi değiştiricisini istediğiniz x düğmesine basarak eşleyin.


Teşekkürler, ama fedora üzerine inşa etmekte sorun yaşıyorum.
Paul Schyska

1
Şimdi btnx için bir rpm paketi buldum. Bir değiştirici kaynak olay (yani Shift + WheelUp) olarak eşlemek için bir yol bulamıyorum. Sadece WheelUp dan eşleyebilir için Shift + bazı diğer önemli. Bir şey mi kaçırıyorum? Ben de ilk etapta "Shift + WheelUp" tespit etmeye çalıştım, ama "Düğme zaten eşlenmiş" dedi. Ham kod her iki durumda da 0x02010008 idi (Shift basıldı ve basılmadı). Btnx'in birden fazla giriş cihazını işleyebileceğini sanmıyorum (Fare + Klavye)
Paul Schyska

0

İma gibi burada , ben yüklü imwheel sonra oluşturulan, ~/.imwheelrcşu içeriğe sahip.

".*"
Shift_L, Up, Left
Shift_L, Down, Right

Sonra imwheel -b 45terminalde koştum . Test ettim ve yüksek kaydırma ve xbindkey'lerle ilgili çapraz sorunları fark etmedim.

NB , yalnızca yukarı ve aşağı kaydırmayı yakalamayı -b 45kısıtlar imwheelve xbindkeysbaşparmak düğmelerinin bağlanmasını engeller (örn.) .

sorunlar

Bununla birlikte, bununla ilgili birkaç sorun vardır.

  • Tutarsız. Firefox ve Gwenview ile birlikte çalışabilirdim, ancak Inkscape ve GIMP çalışmadı. Inkscape / GIMP ile eşleşmemek için pencere eşleşmesini kullanabilirim, ancak evrensel olarak çalışmasının bir yolu olmalı.
  • Daha da kötüsü, normalde yakınlaştırmak için kullanılan Ctrl+ gibi bazı varsayılan olayları önler Scroll wheel. Gibi şeyler koyarak çalıştı Control_L, Up, Control_L|Upyılında ~/.imwheelrc, ancak bu işi yoktu.
  • imwheelfare imlecinin altındaki pencereye değil, etkin pencereye yatay kaydırma tekerleği olayları gönderir. Bu, kaydırma tekerleğinin varsayılan davranışının tersidir. Bu aynı zamanda Ctrlyukarıdaki noktadaki geçici çözümün de en uygun düzeyde olmayabileceğini göstermektedir.
  • imwheelartık geliştirme aşamasında değil. Son 10 yıldır (2004'ten beri) yayın öncesi sürümde kaldı.
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.