Сделайте прокрутку движений мыши, когда средняя кнопка будет удерживаться

Они полностью отличаются. Параметры командной строки передаются программе в массиве, и она может сделать то, что она хочет с ними; stdin является входным потоком, от которого программа должна запросить данные. Программы, которые обрабатывают файлы часто, принимают решение поддерживать обоих, но они должны сделать так вручную - они проверяют, было ли имя файла передано как параметр командной строки, и если не они читают из stdin вместо этого

Вы, кажется, ожидаете man для чтения stdin для нахождения страницы справочника, это должно отобразиться, который был бы действительно странным поведением; когда Вы когда-либо использовали бы это? Факт это cat отображается его stdin является артефактом того, что он не делает ничего иного; я не думаю, что любой другой инструмент прокладывает себе путь. Например, grep может взять имя файла или читать из stdin, но это обрабатывает данные на stdin, это не читает имя файла из stdin и затем откройте его

При реальной необходимости в этом поведении Вы могли бы использовать xargs, который преобразовывает файл в параметры командной строки:

$ xargs man < file_name

Или просто встройте a cat звоните в man вызов:

$ man $(cat file_name)
31
21.11.2013, 00:42
4 ответа

Эта функция Windows действительно никогда не превращала свой путь в мир Unix. В мире Unix основная цель средней кнопки мыши состоит в том, чтобы вставить содержание буфера обмена (или более точно, текст, выбранный с мышью, которая автокопируется). Несколько межплатформенных приложений, таких как Firefox и Chrome, которые поддерживают среднюю кнопку мыши стиля Linux в соответствии с Windows и наоборот, но кроме этого большинство приложений не поддерживает этот вид мелкомодульной прокрутки.

Тем не менее, можно стать довольно близкими на системном уровне. Возможно настроить кнопку мыши, таким образом, что, когда это нажимается, движения мыши преобразовываются в события колеса. Это - та же функция, к которой Вы привыкли, но Вы, вероятно, найдете движение изменчивым, потому что приложения получают события колеса, которые обычно интерпретируются как прокрутка одной целой строкой или столбцом.

Для проигрывания с этой конфигурацией используйте xinput программу (я не знаю, существует ли GUI frontend для нее). Во-первых, выполните следующую команду для наблюдения названия манипулятора:

$ xinput --list       
⎡ Virtual core pointer                          id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ Generic USB Mouse                         id=8    [slave  pointer  (2)]
⎜   ↳ Macintosh mouse button emulation          id=12   [slave  pointer  (2)]
⎣ Virtual core keyboard                         id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ Power Button                              id=7    [slave  keyboard (3)]
    ↳   USB Keyboard                            id=9    [slave  keyboard (3)]

Например, в выводе выше, указывающее устройство Generic USB mouse. Можно выполнить следующую команду для списка свойств, которые могут быть настроены:

xinput --list-props 'Generic USB Mouse'

Набор свойств, которые Вы ищете, является “” Эмуляции Колеса Evdev. Со следующими настройками, когда средняя кнопка мыши (кнопка 2) нажимается, перемещая мышь, отправляет события колеса (4=up, 5=down, 6=left, 7=right).

xinput --set-prop 'Generic USB Mouse' 'Evdev Wheel Emulation' 1
xinput --set-prop 'Generic USB Mouse' 'Evdev Wheel Emulation Button' 2
xinput --set-prop 'Generic USB Mouse' 'Evdev Wheel Emulation Axes' 6 7 4 5

Можно хотеть настроить другие параметры (инерция, тайм-аут).

Можно поместить эти команды в сценарий. Добавить #!/bin/sh как самая первая строка, и делают исполняемый файл файла сценария (например. chmod +x ~/bin/activate-wheel-emulation.sh). Затем добавьте, что сценарий к списку команд для выполнения, когда сессия запустится (gnome-session-properties позволяет Вам настроить это).

Если у Вас есть корневой доступ, и Вы хотите внести изменение для всех пользователей (приемлемый на домашней машине), более просто сделать это через конфигурационный файл сервера X.org. Как корень, создайте названный файл /etc/X11/xorg.conf.d/wheel-emulation.conf содержа настройки для драйвера мыши. Настройки являются тем же, но они организованы немного по-другому.

Section "InputClass"
    Identifier "Wheel Emulation"
    MatchProduct "Generic USB Mouse"
    Option "EmulateWheel" "on"
    Option "EmulateWheelButton" "2"
    Option "XAxisMapping" "6 7"
    Option "YAxisMapping" "4 5"
EndSection
28
27.01.2020, 19:37
  • 1
    Вы захотите проявить осторожность при тонкой настройке других параметров. Если Вы уменьшаете Evdev Wheel Emulation Timeout параметр слишком много можно потерять среднюю кнопку мыши (щелчок) функциональность в целом. Например, если Вы уменьшаете Evdev Wheel Emulation Timeout к ниже значения для Evdev Middle Button Timeout затем Вы больше не будете генерировать события Middle Button Click. От личного опыта следующее, кажется, работает обоснованно хорошо: –  agnussmcferguss 12.05.2015, 06:55
  • 2
    xinput --set-prop 'Generic USB Mouse' 'Evdev Middle Button Emulation' 1. xinput --set-prop 'Generic USB Mouse' 'Evdev Middle Button Timeout' 50. xinput --set-prop 'Generic USB Mouse' 'Evdev Wheel Emulation Timeout' 100. Это обеспечивает довольно мгновенный щелчок и функциональность прокрутки, хотя, если Вы находите, это инициировало слишком быстро, затем попытайтесь увеличиться Evdev Wheel Emulation Timeout (Я думаю 200, значение по умолчанию), –  agnussmcferguss 12.05.2015, 06:55
  • 3
    Gilles, я думаю, что в Вашем предложенном xorg.conf.d конфигурационном файле существует что-то не так. Когда я использовал его мой X.Org, загруженный на черный экран. Я получил версию, которая работает путем добавления Device "evdev" и размещение двойных кавычек вокруг "EmulateWheelButton" значение "2". (Извинения, у меня нет времени для исследования или один, или оба из этих изменений решает проблему.) –  Arkanon 30.05.2015, 22:27
  • 4
    @Arkanon недостающие двойные кавычки является определенно синтаксической ошибкой. Я не думаю Device "evdev" может иметь смысл, сделал Вы имеете в виду Driver "evdev"? Я думаю, что это было бы альтернативой MatchProduct директива, которая устанавливает опции для всех устройств ввода данных, а не просто универсальных мышей USB. –  Gilles 'SO- stop being evil' 31.05.2015, 01:01
  • 5
    @Wallacoloo, который я не знаю, можно ли получить этот точный эффект, но у Вас может быть перемещение цифровой клавиатуры мышь путем ввода Pointer_EnableKeys (погуглите его или задайте новый вопрос здесь), и можно настроить более необычное поведение с XKB (ищите keybord: mousekeys, или задают новый вопрос, здесь описывающий точно, что Вы хотите и что Вы уладите с тем, если у Вас не может быть его точно). –  Gilles 'SO- stop being evil' 15.12.2015, 11:14

Оказывается, что это может быть сделано через предпочтения Firefox.

  1. Из опускающегося меню: Редактирование-> Предпочтения
  2. Затем выберите вкладки: Усовершенствованный-> общий
  3. Затем проверьте "Автопрокрутку использования"

Снимок экрана

   ss

25
27.01.2020, 19:37

для chromeвы можете использовать это расширение для автопрокрутки

Автопрокрутка

не забудьте перезапустить хром после установки расширения

1
20.08.2021, 13:02

это работает для меня, Ubuntu 20.04/20.10 :Обратите внимание, это работает везде, в каждом приложении. Как это сделать в Wayland, я не знаю, хотя он манипулирует libinput, так что это должно быть возможно.

Этот ответ является просто примером принятого ответа.

#/usr/share/X11/xorg.conf.d/41-libinput.conf
Section "InputClass"
        Identifier "Logitech USB Receiver Mouse"
        MatchIsPointer "on"
        MatchDevicePath "/dev/input/event*"
        Driver "libinput"
        Option "ScrollButton" "2"
        Option "ScrollMethod" "button"
        Option "NaturalScrolling" "true"
EndSection
4
20.08.2021, 13:02

Теги

Похожие вопросы