Chcę emulować przewijanie w poziomie, gdy używam (pionowego) kółka do przewijania i naciskania Shift.
W niektórych aplikacjach (Chrom {e, ium}) to już działa, ale szukam ogólnego rozwiązania dla aplikacji X.
Jak dotąd mam najbliższe xbindkeys
+ xdotool
.
# ~/.xbindkeysrc
"xdotool click 6"
shift + b:4
"xdotool click 7"
shift + b:5
Problem polega na tym, że xbindkeys
wydaje się , że brakuje niektórych wydarzeń, a czasami przewija się pionowy zwój. To bardzo denerwujące. Wygląda na xbindkeys
to, że używasz jakiegoś odpytywania?
Nie lubię też odradzania setek poleceń powłoki na sekundę.
Mam mały ekran i muszę dużo przewijać w poziomie.
Jak mogę uzyskać ogólne przewijanie w poziomie?
AKTUALIZACJA:
Jest inny sposób, który robi głównie to, czego chcę z xbindkeys
i xmodmap
.
"xmodmap -e 'pointer = 1 2 3 6 7 4 5 8 9 10'"
c:50
"xmodmap -e 'pointer = default'"
release + shift + c:50
Po Shiftprzytrzymaniu przyciski 4 i 5 wskaźnika są odwzorowane na 6 i 7. (Przyciski 4/5 służą do przewijania w pionie, a 6/7 do przewijania w poziomie). c:50
jest lewym Shiftklawiszem. Po zwolnieniu klucza przywracane jest domyślne mapowanie wskaźnika.
To ładnie rozwiązuje problem „zbyt wielu zdarzeń”. Jednak klawisz Shift nie działa już jako zwykły modyfikator. Próbowałem ponownie wydać informacje Shiftprasowe / prasowe w xdotool
następujący sposób:
"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
Zgodnie xev
z Shiftwydarzeniami, ale myślę, że nie jest już rozpoznawany jako modyfikator. Na przykład naciśnięcie Shift+ Anie spowoduje wygenerowania wielkiej litery A
.
~/.xbindkeysrc.scm
. W pewnym momencie zawiodło, ale może działać w twoim systemie.Odpowiedzi:
Znalazłem dla siebie akceptowalne rozwiązanie.
Nie znalazłem sposobu użycia Shiftani żadnego innego klawisza jako mojego modyfikatora do obracania osi koła, dopóki jest on wciśnięty.
Teraz używam prostego
.xbindkeysrc
z przyciskiem przełączającym:Skrypt toggle.sh wygląda następująco:
To pozwala mi zmienić zachowanie. Kiedy naciskam Alt+ X, moja oś kółka myszy jest obracana, a kiedy naciskam ją ponownie, zostaje ustawiona na wartość domyślną.
To na razie powinno działać.
Jeśli ktoś znajdzie sposób, aby to zrobić Shiftjako „modyfikator” (oś myszy obraca się tak długo, jak jest wciśnięta), daj mi znać.
EDYCJA: Ponieważ Alt+ xjest często używanym skrótem, zmieniłem go na:
(Przełączyłem się na konfigurację Guile, więc powyższe powinno znajdować się w pliku o nazwie
.xbindkeysrc.scm
)Spowoduje to przełączenie kierunku kółka przewijania za pomocą Ctrl+ prawego przycisku myszy.
źródło
Możesz użyć btnx i jego narzędzia do konfiguracji GUI .
Nowsza pakiet Ubuntu i tutaj
Po wykryciu przycisku myszy za pomocą btnx-config wystarczy zmapować „Przewiń w górę” wraz z modyfikatorem przycisku Shift do dowolnego naciśnięcia przycisku x, który chcesz.
źródło
Jak tu wskazano , zainstalowałem koło zębate , a następnie utworzyłem
~/.imwheelrc
z następującą zawartością.Potem pobiegłem
imwheel -b 45
w terminalu. Testowałem i nie zauważyłem problemów po przekątnej związanych z wysokim przewijaniem i klawiszami xbindkeys.NB
-b 45
ograniczaimwheel
przechwytywanie tylko przewijania w górę i w dół, zapobiegając blokowaniu (np.)xbindkeys
Powiązań przycisków kciuka.Problemy
Istnieje jednak kilka problemów z tym związanych.
Control_L, Up, Control_L|Up
w~/.imwheelrc
, ale to nie działa.imwheel
wysyła zdarzenia poziomego kółka przewijania do aktywnego okna, a nie do okna pod kursorem myszy. Jest to sprzeczne z domyślnym zachowaniem kółka przewijania. Sugeruje to również, że Ctrlobejście w powyższym punkcie byłoby również nieoptymalne.imwheel
wydaje się, że nie jest już w fazie rozwoju. Utknął w wersji przedpremierowej przez ostatnie 10 lat (od 2004).źródło