Emulieren Sie das horizontale Scrollen mit der Umschalttaste

13

Ich möchte horizontales Scrollen emulieren, wenn ich mein (vertikales) Scrollrad benutze und drücke Shift.

In einigen Anwendungen (Chrom {e, ium}) funktioniert dies bereits, aber ich suche nach einer generischen Lösung für X-Anwendungen.

Der nächste, den ich bisher erreicht habe, ist xbindkeys+ xdotool.

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

"xdotool click 7"
  shift + b:5

Das Problem ist, dass xbindkeysscheinbar einige Ereignisse fehlen und gelegentlich eine vertikale Schriftrolle "durchkommt". Das ist sehr ärgerlich. Sieht xbindkeyses so aus, als würde eine Art Umfrage durchgeführt?

Außerdem mag ich es nicht, Hunderte von Shell-Befehlen pro Sekunde zu erzeugen.

Ich habe einen kleinen Bildschirm und muss viel horizontal scrollen.

Wie kann ich ein allgemeines horizontales Scrollen erzielen?

AKTUALISIEREN:

Es gibt einen anderen Weg, der meistens das macht, was ich mit xbindkeysund will xmodmap.

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

Wenn Shiftgedrückt gehalten, werden die Zeigertasten 4 und 5 den Tasten 6 und 7 zugeordnet. (Tasten 4/5 dienen zum vertikalen und 6/7 zum horizontalen Scrollen). c:50ist der linke ShiftSchlüssel. Beim Loslassen der Taste wird die Standard-Zeigerzuordnung wiederhergestellt.

Dies löst das Problem "zu viele Ereignisse" gut. Die Umschalttaste funktioniert jedoch nicht mehr als normaler Modifikator. Ich habe versucht, die ShiftPresseveranstaltungen xdotoolwie folgt erneut zu veröffentlichen:

"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

Entsprechend kommen xevdie ShiftEreignisse durch, aber ich denke es wird nicht mehr als Modifikator erkannt. Wenn Sie beispielsweise Shift+ drücken A, wird kein Großbuchstabe erzeugt A.

Paul Schyska
quelle
1
Bei vielen Programmen können Sie auch mit Strg + Pfeiltasten horizontal scrollen.
Terdon
1
Danke, aber das funktioniert bei mir in Firefox nicht. Ich suche nach einer "generischen" Lösung, die überall funktioniert.
Paul Schyska
Wäre es ein Problem, etwas als root auszuführen, z. B. mit sudo?
1.
Es ist nicht optimal, sudo zu müssen. Ich nehme an, du meinst, jedes Mal, wenn die Umschalttaste gedrückt wird, sudo-machen? Könnten Sie näher erläutern, was Sie vorhaben?
Paul Schyska
Das mag sinnlos sein, aber es war einmal, als es für mich funktionierte ~/.xbindkeysrc.scm. Irgendwann schlug es fehl, aber es könnte auf Ihrem System funktionieren.
Sparhawk

Antworten:

2

Ich habe eine akzeptable Lösung für mich gefunden.

Ich habe keinen Weg gefunden, ihn zu benutzen Shift eine andere Taste als Modifikator zu verwenden, um die Radachse so lange zu drehen, wie sie gedrückt wird.

Ich benutze jetzt ein einfaches .xbindkeysrcmit einem Umschaltknopf:

"~/toggle.sh"
  alt + x

Das toggle.sh-Skript sieht folgendermaßen aus:

#!/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

Dadurch kann ich das Verhalten umschalten. Wenn ich Alt+ drücke X, wird meine Mausradachse gedreht, und wenn ich erneut drücke, wird sie auf die Standardeinstellung gesetzt.

Das sollte jetzt klappen.

Wenn jemand einen Weg findet, dies Shiftals "Modifikator" (Mausachse drehen, solange sie gedrückt ist) zu tun , lassen Sie es mich bitte wissen.

EDIT: Da Alt+ xein häufig benutzter Hotkey ist, habe ich ihn geändert zu:

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

(Ich habe zur Konfiguration von guile gewechselt, daher sollte das Obige in einer Datei namens sein. .xbindkeysrc.scm)

Dadurch wird die Richtung des Scrollrads mit der Ctrlrechten Maustaste umgeschaltet.

Paul Schyska
quelle
0

Sie könnten BTNX und das GUI - Konfigurations-Tool verwenden .

Neueres Ubuntu-Paket und hier

Nachdem Sie die Tastenerkennung mit btnx-config auf Ihrer Maus durchgeführt haben, ordnen Sie "Bildlauf nach oben" zusammen mit einem Umschalttastenmodifikator der gewünschten x-Taste zu.

RedMage
quelle
Danke, ich habe ein Problem damit, Fedora zu nutzen.
Paul Schyska
1
Ich habe jetzt ein RPM-Paket für BTNX gefunden. Ich finde keine Möglichkeit, einen Modifikator als Quellereignis zuzuordnen (z. B. Umschalt + WheelUp). Ich kann nur von WheelUp auf Shift + eine andere Taste abbilden . Vermisse ich etwas? Ich habe auch versucht, Shift + WheelUp zu "erkennen", aber es stand "Button bereits zugeordnet". Der Rawcode war in beiden Fällen 0x02010008 (Shift gedrückt und nicht gedrückt). Ich glaube nicht, dass BTNX mehrere Eingabegeräte (Maus + Tastatur) verarbeiten kann
Paul Schyska
0

Wie hier angedeutet , habe ich imwheel installiert und dann ~/.imwheelrcmit dem folgenden Inhalt erstellt.

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

Ich bin dann imwheel -b 45ins Terminal gelaufen . Ich habe getestet und habe die diagonalen Probleme, die mit hohem Bildlauf und xbindkeys verbunden sind, nicht bemerkt.

NB -b 45beschränkt sich imwheeldarauf, nur das Scrollen nach oben und unten zu erfassen, um zu verhindern, dass die xbindkeysVerknüpfungen für die Daumentasten blockiert werden.

Probleme

Damit sind jedoch mehrere Probleme verbunden.

  • Es ist inkonsistent. Ich könnte es mit Firefox und Gwenview sofort zum Laufen bringen, aber Inkscape und GIMP haben nicht funktioniert. Ich könnte Windows Matching verwenden, um Inkscape / GIMP nicht zuzuordnen, aber es sollte eine Möglichkeit geben, es universell funktionieren zu lassen.
  • Schlimmer noch, es werden einige andere Standardereignisse wie Ctrl+ verhindert Scroll wheel, die normalerweise zum Zoomen verwendet werden. Ich habe versucht, Dinge wie hinein Control_L, Up, Control_L|Upzu setzen ~/.imwheelrc, aber das hat nicht funktioniert.
  • imwheelSendet horizontale Scrollrad-Ereignisse an das aktive Fenster und nicht an das Fenster unter dem Mauszeiger. Dies widerspricht dem Standardverhalten des Scrollrads. Dies legt auch nahe, dass die CtrlProblemumgehung in dem obigen Punkt ebenfalls nicht optimal wäre.
  • imwheelscheint nicht mehr in der Entwicklung zu sein. Es steckt seit 10 Jahren (seit 2004) in der Vorabversion fest.
Sparhawk
quelle