Wie scrolle ich eine halbe Seite unter Linux?

2711
joelostblom

Ich suche nach einer Möglichkeit, um eine halbe Seite scrollen zu können, am besten mit einer Tastenkombination wie zum Beispiel Seite nach oben / unten verschieben. Unter Windows ist dies über Autohotkey möglich, für OS scheint es keine so einfache Lösung zu geben, wie ich es nur gefunden habe .

Ich wechsle einfach zu Ubuntu 14.04 (von win7). Beim Googeln scheint es mir am einfachsten zu sein, ein paar xdotool / xbindkeys-Skripte zu erstellen, die eine halbe Seite für das Scrollen mit der Maus oder einen Pfeil nach oben bzw. unten emulieren. Dann würde ich diese an benutzerdefinierte Hotkeys binden.

Da ich jedoch gerade auf Ubuntu umgestiegen bin, stelle ich fest, dass mir etwas fehlt. Daher frage ich mich, auf welche Weise Sie unter Linux das Half-Scrolling bevorzugen.

Update: Ich habe ein Skript erstellt, das ein paar Mal das Scrollen des Mausrads emuliert:

#!/bin/bash xdotool click 4 xdotool click 4 xdotool click 4 xdotool click 4 

Es funktioniert anständig, aber es bleiben zwei Probleme:

  1. Es blättert immer in dem Fenster, in dem sich die Maus befindet. Ich habe versucht, das aktive Fenster zu scrollen, aber kein Glück.

  2. Da es Mausrad-Scrolls sendet, werden diese von anderen Programmen so interpretiert, dass ich keine Kontrolle als Hotkey haben kann, da es dann zoomt. Dies ist ein Problem in Programmen, bei denen alle Tastenkombinationen so ideal übernommen werden, dass ich die Bildlaufentfernung angeben möchte, ohne das Mausrad zu emulieren.

3

1 Antwort auf die Frage

5
joelostblom

Ich fand schließlich eine Lösung, die für die meisten meiner Anwendungsfälle sehr gut funktioniert. Mit xdotoolserstellte ich zwei Skripte, eines zum Scrollen in jede Richtung. Dies ist das Skript, um nach unten zu scrollen (um nach oben zu scrollen, ersetzen Sie '4' durch '5').

#!/bin/bash  #Get active window id win=`xdotool getactivewindow`  #Move the mouse to the active window xdotool mousemove --window $win 45 110   #Scroll active window several times xdotool click --clearmodifiers 5 xdotool click --clearmodifiers 5 xdotool click --clearmodifiers 5 xdotool click --clearmodifiers 5 xdotool click --clearmodifiers 5 xdotool click --clearmodifiers 5 xdotool click --clearmodifiers 5 xdotool click --clearmodifiers 5 xdotool click --clearmodifiers 5 xdotool click --clearmodifiers 5 xdotool click --clearmodifiers 5  #Send click to specific window. Finicky. #xdotool click --window $win 5 

Grundsätzlich erhalten xdotools die Aktivierungsfenster-ID und bewegt die Bewegungen dorthin, bevor das Maus-Scroll-Signal mehrmals gesendet wird. Ich konnte es nicht zum Laufen bringen, indem ich direkt spezifizierte, an welches Fenster die Klicks gesendet werden sollen. Daher löste ich es, indem ich den Mauszeiger bewegte. Da Linux automatisch das Fenster unter der Maus durchläuft, wird das in meiner Frage aufgeführte Problem 1 gelöst. Der --clearmodifiersParameter gibt die in der Hotkey-Kombination verwendete Zusatztaste frei, sodass der einzige gesendete Schlüssel der von xdotool ist. Dies löst das Problem Nr. 2 für mich.

Der einzige kleine Ärger ist, dass es in einigen Fenstern mehrere Fenster gibt. Mit diesem Skript kann ich nur das obere linke Fenster scrollen. Dies ist beim Surfen kein Problem, aber für IDEs wie Spyder. Also, wenn jemand einen besseren Ansatz hat, bitte teilen!

Danke dafür. Ich werde Sie ansprechen, wenn ich eine bessere Herangehensweise finde, aber bisher nehme ich das an Rojo vor 9 Jahren 0