Как прокрутить половину страницы в Linux?

Я ищу способ прокручивать половину страницы, предпочтительно используя комбинацию клавиш, например, сдвиг страницы вверх / вниз. В Windows это можно сделать с помощью autohotkey, для ОС, похоже, нет такого простого решения, как все, что я обнаружил, это.

Я просто переключаюсь на использование Ubuntu 14.04 (из win7). Из поисков в Интернете мне кажется, что самый простой способ достичь этого - создать пару сценариев xdotool/xbindkeys, которые эмулируют полстраницы прокрутки мышью или нажатия стрелок вверх и вниз соответственно. Тогда я бы связал их с пользовательскими горячими клавишами.

Однако, поскольку я только что перешел на Ubuntu, я понимаю, что, возможно, что-то упустил. Поэтому мне интересно, какой ваш предпочтительный способ включить полстраничную прокрутку в Linux?

Обновление: я создал скрипт, который эмулирует прокрутку колесика мыши несколько раз:

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

Работает прилично, но остаются две проблемы:

  1. Он всегда прокручивает окно, где находится мышь. Я попытался прокрутить активное окно, но не повезло.

  2. Поскольку он посылает прокрутки колесика мыши, они интерпретируются другими программами, так что я не могу управлять ими как "горячей клавишей", потому что тогда он масштабируется. Это проблема в программах, где все горячие клавиши используются так идеально, что я хотел бы указать расстояние прокрутки без эмуляции прокрутки колесика мыши.

1 ответ

Я наконец нашел решение, которое очень хорошо работает для большинства моих сценариев использования. С помощью xdotoolsЯ создал два сценария, по одному для прокрутки в каждом направлении. Это скрипт для прокрутки вниз (для прокрутки вверх замените "5" на "4").

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

По сути, xdotools получает идентификатор активного окна, а затем перемещает туда ходы, прежде чем отправлять сигнал прокрутки мыши несколько раз. Я не мог заставить его работать, непосредственно указав, в какое окно отправлять клики, поэтому я решил это, переместив вместо этого курсор мыши. Поскольку Linux автоматически прокручивает окно под мышью, это решает проблему 1, указанную в моем вопросе. --clearmodifiers Параметр освобождает любой ключ-модификатор, используемый в комбинации горячих клавиш, так что отправляется только один ключ от xdotool, это решает проблему номер 2 для меня.

Единственное небольшое раздражение, которое осталось, это то, что в некоторых окнах есть несколько панелей, и с помощью этого скрипта я могу прокручивать только верхнюю левую панель. Это не проблема при просмотре, но для IDE, таких как spyder. Так что, если у кого-то есть лучший подход, пожалуйста, поделитесь!

Другие вопросы по тегам