Зробіть прокручування миші, коли середня кнопка утримується


29

У Windows я звик натискати центральну кнопку, і вона пропонує опцію «швидкої прокрутки» вгору або вниз. Як я можу отримати таку поведінку в Linux? В даний час, здається, використовується кнопка "Назад" при натисканні на центр.

Я використовую Gnome під CentOS.


Що конкретно не працює? У мишей Unix від першого дня були три кнопки, тому середня кнопка миші зазвичай працює поза коробкою.
Жил "ТАК - перестань бути злим"

Я звик натискати центральну кнопку, і вона пропонує опцію "швидкої прокрутки" вгору або вниз. В даний час, здається, використовується кнопка "Назад" при натисканні на центр.
близько1

2
Так, ви хочете, щоб поведінка Windows середньої кнопки (а точніше натискання колеса), а не поведінки Unix (де середня кнопка зазвичай вставляє вміст буфера обміну). Вам справді потрібно сказати це у своєму питанні, ми не можемо прочитати вашу думку! Для цього потрібна підтримка програм; які програми ви використовуєте? Яке середовище робочого столу (наприклад, Gnome, KDE, XFCE,…)?
Жил "ТАК - перестань бути злим"

Ну, я вважав, що десь я можу встановити панель конфігурації, але навіть не могла так далеко дістатися. Я вважаю, на робочому столі Gnome, це за замовчуванням? І питання в firefox.
близько1

Відповіді:


26

Ця функція Windows ніколи не пробивалась у світ Unix. У світі Unix головна мета середньої кнопки миші - це вставлення вмісту буфера обміну (а точніше, тексту, вибраного мишею, який автоматично копіюється). Кілька крос-платформних додатків, таких як Firefox та Chrome, які підтримують середню клавішу миші в стилі Linux під Windows та навпаки, окрім більшості програм не підтримують такого роду дрібнозернисті прокрутки.

Тим не менш, ви можете досить близько наблизитися на системному рівні. Можна встановити кнопку миші таким чином, щоб при її натисканні рухи миші перетворювалися на події колеса. Це та сама функція, до якої ви звикли, але ви, швидше за все, вважаєте рух порушеним, оскільки програми отримують події на колесі, які, як правило, інтерпретуються як прокрутка одним цілим рядком або стовпцем.

Щоб грати з цією конфігурацією, використовуйте програму xinput (я не знаю, чи є для неї інтерфейс GUI). Спочатку запустіть таку команду, щоб побачити назву вказівного пристрою:

$ 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'

Набір властивостей, які ви шукаєте, - це «емуляція колеса Евдева». З наступними налаштуваннями при натисканні середньої кнопки миші (кнопка 2) переміщення миші надсилає події колеса (4 = вгору, 5 = вниз, 6 = ліворуч, 7 = праворуч).

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

Ви хочете бути обережними під час налаштування інших параметрів. Якщо ви Evdev Wheel Emulation Timeoutзанадто сильно зменшите параметр, ви можете повністю втратити функціональність середньої кнопки миші (клацання). Наприклад, якщо ви зменшите Evdev Wheel Emulation Timeoutдо значення нижче, Evdev Middle Button Timeoutви більше не будете генерувати події клацання середньої кнопки. З особистого досвіду, здається, працює досить добре:
agnussmcferguss

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

Жиле, я думаю, що у вашому запропонованому конфігураційному файлі xorg.conf.d щось не так. Коли я користувався ним, мій X.Org завантажився на чорний екран. Я вивів версію, яка працює, додаючи Device "evdev"і розміщуючи подвійні лапки навколо "EmulateWheelButton"значення "2". (Вибачте, я не встиг дослідити, чи вирішує проблему одна чи обидві ці зміни.)
Арканон

@Arkanon Відсутні подвійні лапки, безумовно, є синтаксичною помилкою. Я не думаю, що це Device "evdev"може мати сенс, ти мав на увазі Driver "evdev"? Я думаю, це було б альтернативою MatchProductдирективі, яка встановлює параметри для всіх пристроїв введення, а не просто загальні USB-миші.
Жиль "ТАК - перестань бути злим"

1
@Wallacoloo Я не знаю, чи зможете ви досягти такого точного ефекту, але ви можете змусити цифрову клавіатуру перемістити мишу, ввівши Pointer_EnableKeys(гугл її або задайте тут нове запитання), і ви можете налаштувати більш захоплюючу поведінку за допомогою XKB (пошук клавіатури пошуку .
Жил "ТАК - перестань бути злим"

25

Виявляється, це можна зробити за допомогою налаштувань Firefox.

  1. У спадному меню: Редагувати -> Налаштування
  2. Потім виберіть вкладки: Додатково -> загальне
  3. Потім встановіть прапорець "Використовувати автоматичне прокручування"

Знімок екрана

   сс


0

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

AutoScroll

не забудьте перезапустити chrome після встановлення розширення

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.