27

Я думаю купить трекбол, и мой выбор - мрамор Trackite Logitech. Но потом я обнаружил, что колеса прокрутки нет. Как вы справляетесь с этим? Я определенно хочу купить трекбол с колесом прокрутки? Я много пользуюсь фейсбуком.

Я не хочу нажимать указательным и средним пальцами, поэтому некоторые трекбольные мыши мне не подойдут, например, Trackman Wheel.

15 ответов15

13

Если вы работаете в Windows, я бы предложил попробовать AutoHotKey, другие пользователи уже использовали прокрутку с помощью Marble Mouse (я использовал скрипт внизу):

http://www.autohotkey.com/board/topic/4677-wheel-button-emulation-script/

Решение Logitech, которое поставляется с их драйверами, странно: вы нажимаете один раз, чтобы включить 4-стороннюю прокрутку, и еще раз, чтобы отключить ее. Вы не можете держать и прокручивать то, что я был после. Я завел удаление их программного обеспечения.

9

У меня тот же трекбол, и решение очень элегантное: когда вы нажимаете на выбранную кнопку, сам шар становится колесом прокрутки. Я выбрал большую правую кнопку, которую нажимаю мизинцем.

Это очень удобно, и это займет всего несколько дней, чтобы привыкнуть.

Вы быстро поймете, что любое колесо прокрутки (на мышке или трекболе) является чем-то непригодным. Поверь мне, оно того стоит ;-)

Преимущества:

  • 2D прокрутка вместо 1D
  • более быстрая и точная прокрутка, чем у колеса
  • удобнее для длинной прокрутки (благодаря инерции мяча). Идеально подходит для вашего примера Facebook.

Я не могу жить без этого больше.

Настроить это под любой ОС Linux не сложно. Требуется только создать файл /etc/X11/xorg.conf (см. Мою конфигурацию здесь: настройка трекбола под Linux без редактирования Xorg.conf )

Более подробную информацию можно найти здесь: https://help.ubuntu.com/community/Logitech_Marblemouse_USB

В Windows у меня нет опыта, но я думаю, что инструмент настройки поставляется с трекболом.

8

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

Колесо прокрутки Marble Mouse, или просто Marble Scroll, представляет собой небольшую программу, разработанную для имитации колеса прокрутки на любом трекболе или мыши без такового. Он был специально разработан для мыши Logitech Marble, но может работать с любой стандартной мышью или трекболом. Он предназначен для Windows 2000 и выше.

Мраморная прокрутка является заменой функций Logitech Autoscroll и Universal Scroll; ни должным образом не имитировать настоящее колесо прокрутки, и оба имеют ограничения и недостатки.

Marble Scroll работает с любой мышью или трекболом и не требует установки драйверов Logitech SetPoint или MouseWare.

Характеристики

  • Добавьте колесо прокрутки к любой мыши с более чем двумя кнопками
  • Совместимость с большинством приложений, которые поддерживают колесо прокрутки (для любого типа ввода)
  • Регулируемое ускорение
  • Регулируемое расстояние прокрутки (за "шаг" - см. Ниже)
  • Ступенчатая прокрутка для симуляции реального колеса мыши
  • Быстрое переключение режимов влево / вправо
  • Быстрое включение / отключение, нажав на иконку в трее
  • Маленький и легкий на системных ресурсах

Сайт продукта в настоящее время не работает, но здесь есть копия текста сайта на Archive.org.

Ссылка для скачивания здесь.

5

Существует простая 100-строчная альтернатива C++, которая очень похожа на решения AutoHotKey, то есть

  • отправка событий вертикального / горизонтального колеса прокрутки путем перемещения трекбола, удерживая одну из кнопок X и
  • средний щелчок при нажатии и отпускании кнопки X без перемещения трекбола.

https://github.com/Seelge/TrackballScroll

Изменить: более новые версии предоставляют значок systray, работают в Windows 10 и основаны на C #.

4

Вот скрипт AutoHotKey, который я использую. Вы прокручиваете, удерживая левую маленькую кнопку и катая шар вверх / вниз. Однако нажатие левой маленькой кнопки по-прежнему делает НАЗАД. Он также может прокручивать влево / вправо, но это было слишком чувствительно для меня, поэтому он закомментирован здесь (блок, начинающийся с ;timesX := Abs(movedx) / 4).

Я нашел оригинальную версию на http://www.autohotkey.com/board/topic/30816-simulate-scroll-wheel-using-right-mouse-button/. Я разместил свою версию там как anotherperson8923.

$*XButton1::
Hotkey, $*XButton1 Up, XButton1up, off
;KeyWait, XButton1, T0.4
;If ErrorLevel = 1
;{
   Hotkey, $*XButton1 Up, XButton1up, on
   MouseGetPos, ox, oy
   SetTimer, WatchTheMouse, 5
   movedx := 0
   movedy := 0
   pixelsMoved := 0
;   TrayTip, Scrolling started, Emulating scroll wheel
;}
;Else
;   Send {XButton1}
return

XButton1up:
Hotkey, $*XButton1 Up, XButton1up, off
SetTimer, WatchTheMouse, off
;TrayTip
If (pixelsMoved = 0)
{
    ;The mouse was not moved, send the click event
    ; (May want to make it PGUP or something)
    Send {XButton1}
    Send {XButton1Up}
}
return

WatchTheMouse:
MouseGetPos, nx, ny
movedx := movedx+nx-ox
movedy := movedy+ny-oy

pixelsMoved := pixelsMoved + Abs(nx-ox) + Abs(ny-oy)

;timesX := Abs(movedx) / 4
;ControlGetFocus, control, A
;Loop, %timesX%
;{
;    If (movedx > 0)
;    {
;        SendMessage, 0x114, 1, 0, %control%, A ; 0x114 is WM_HSCROLL
;        movedx := movedx - 4
;    }
;    Else
;    {
;        SendMessage, 0x114, 0, 0, %control%, A ; 0x114 is WM_HSCROLL
;        movedx := movedx + 4
;    }
;}

timesY := Abs(movedy) / 4
Loop, %timesY%
{
    If (movedy > 0)
    {
        Click WheelDown
        movedy := movedy - 4
    }
    Else
    {
        Click WheelUp
        movedy := movedy + 4
    }
}   

MouseMove ox, oy
return
3

Жаль, что Logitech не реализовал симуляцию колеса прокрутки. Их драйвер обещает особую функцию, но она работает не для всех приложений, что делает его совершенно бесполезным. Они были так близки к созданию идеальной мыши! :s

Единственный обходной путь, который я нашел, - это использовать скрипт AutoHotkey для него. С его помощью вы можете сделать крошечные кнопки влево / вправо прокручивать вверх и вниз. Он отлично работает, но его сложно настроить: вам нужно сначала изучить основы AutoHotkey. Если вы решите сделать это, вот мой скрипт AutoHotkey. Это адаптация оригинального сценария Джербо. Один щелчок начнет прокрутку в нормальном темпе, но двойной или тройной щелчок начнет прокрутку быстрее.

; This script remaps the two small buttons on a Logitech Trackman® Marble® Mouse
; to act as scroll up and scroll down

global lastXButton1ClickTime := 0
global nrSubsequentXButton1Clicks := 0

ScrollTheWheel(direction, scrollKey)
{
    now := A_TickCount
    timeSinceLastClick := now - lastXButton1ClickTime 
    lastXButton1ClickTime := now
    if (timeSinceLastClick < 300)
    {
        nrSubsequentXButton1Clicks := nrSubsequentXButton1Clicks + 1
    }
    else
    {
        nrSubsequentXButton1Clicks := 1
    }        

    sleepingFraction := 5

    if (nrSubsequentXButton1Clicks <= 1)
        scrollSpeed := 30
    if (nrSubsequentXButton1Clicks == 2)
        scrollSpeed := 15
    if (nrSubsequentXButton1Clicks >= 3)
        scrollSpeed := 5

    timeSlept := scrollSpeed

    loop 
    {
        if (direction == 1) ; Scroll down
        {
            static downKeyState
            if (scrollKey == 0) 
                GetKeyState, downKeyState, XButton1, P
            else
                GetKeyState, downKeyState, PgDn, P

            if downKeyState = U ; The key has been released, so break out of the loop
               break

            if (timeSlept >= scrollSpeed)
            {
                Send {WheelDown}
                timeSlept = 0                
            }
        }
        else ; Scroll up
        {
            static upKeyState
            if (scrollKey == 0)
                GetKeyState, upKeyState, XButton2, P
            else
                GetKeyState, upKeyState, PgUp, P

            if upKeyState = U ; The key has been released, so break out of the loop
               break            

            if (timeSlept >= scrollSpeed)
            {
                Send {WheelUp}
                timeSlept = 0                
            }
        }   

        Sleep, sleepingFraction
        timeSlept := timeSlept + sleepingFraction
    }    
}

XButton2::
    ScrollTheWheel(0, 0)
    return
XButton1::
    ScrollTheWheel(1, 0)
    return
!PgUp::
    ScrollTheWheel(0, 1)
    return
!PgDn::
    ScrollTheWheel(1, 1)
    return
2

Я только что получил мышь Logitech Marble, а также возникла проблема с прокруткой. Поэтому я сделал этот скрипт на AutoHotKey. Левая кнопка X позволяет выполнять прокрутку, а это означает, что, нажимая вниз, вы можете прокручивать мяч вертикально и горизонтально, а также перемещаться вперед и назад в браузере с помощью левой и правой кнопок. Правая кнопка X имеет то же действие, что и средняя кнопка.

Я на Windows 7.

#SINGLEINSTANCE FORCE  
GLOBAL status := "basic"
GLOBAL cnt_x
GLOBAL cnt_y

XButton2::MButton

$*XButton1::
    status := "scroll"
    cnt_x := 0
    cnt_y := 0
    MOUSEGETPOS, st_x, st_y
    SETTIMER, _scroll, 30
RETURN

$*XButton1 UP::
    status := "basic"
    SETTIMER, _scroll, OFF
RETURN

_scroll:
    MOUSEGETPOS, cur_x, cur_y
    MOUSEMOVE, st_x, st_y

IF(abs(cur_x-st_x) > abs(cur_y-st_y)) {
    cnt_x := cnt_x + (cur_x-st_x)
    ControlGetFocus, control, A 
    IF (cnt_x > 7) {
        cnt := floor(cnt_x / 8)
        LOOP, %cnt% {
            SendMessage, 0x114, 0, 0, %control%, A
        }
        cnt_x := cnt_x - 8*floor(cnt_x / 8)
    } ELSE IF (cnt_x < -7) {
        cnt := -ceil(cnt_x / 8)
        LOOP, %cnt% {
            SendMessage, 0x114, 1, 0, %control%, A
        }
        cnt_x := cnt_x - 8*ceil(cnt_x / 8)
    }
} ELSE {
    IF (cur_y >= st_y) {
        cnt_y := cnt_y + (cur_y-st_y)**1.2
    } ELSE {
        cnt_y := cnt_y -(st_y-cur_y)**1.2
    }   
    IF (cnt_y > 7) {
        cnt := floor(cnt_y / 8)
        LOOP, %cnt% {
            CLICK WheelUp
        }
        cnt_y := cnt_y - 8*floor(cnt_y / 8)
    } ELSE IF (cnt_y < -7) {
        cnt := -ceil(cnt_y / 8)
        LOOP, %cnt% {
            CLICK WheelDown
        }
        cnt_y := cnt_y - 8*ceil(cnt_y / 8)
    }
}   
RETURN

$*LButton::
    IF (status = "basic") {
        CLICK DOWN Left
    } ELSE IF (status = "scroll") {
        SEND {Browser_Back}
    }
RETURN

$*LButton UP::
    IF (status = "basic") {
        CLICK UP Left
    }
RETURN

$*RButton::
    IF (status = "basic") {
        CLICK DOWN Right
    } ELSE IF (status = "scroll") {
        SEND {Browser_Forward}
    }
RETURN

$*RButton UP::
    IF (status = "basic") {
        CLICK UP Right
    }
RETURN
1

Я работаю на Windows7 и использую оптический трекбол Kensington Orbit без прокрутки - это трекбол с двумя кнопками, без кнопок X, которые требуются большинству сценариев AHK и приложений, указанных другими.

Тем не менее, MouseImp работает для меня на Windows7. Это настраивается, но я настроил его для right-click + roll чтобы получить экран прокрутки. Это больше похоже на перетаскивание, поэтому указатель перемещается, и вы получаете только один экран за раз [обновление: скорость прокрутки настраивается, поэтому она может быть больше, чем "одна страница"].

В то же время, TrackballWorks Кенсингтона был настроен так, чтобы дать мне прокрутку вниз страницы при left-click + right-click . К сожалению, он не может затем прокрутить страницу вверх за раз (одну или другую).

Это не плагин продукта - это то, что я нашел для работы с этой моделью / типом трекбола.

Предостережение: вы постоянно щелкаете правой и левой кнопками, и это может привести к путанице и переходу по ссылкам /js, когда вы просто хотите прекратить прокрутку. :::вздох:::

1

Я только что получил беспроводной трекбол на орбите от Кенсингтона, это довольно удивительно. У вас есть шар, у вас есть обе кнопки с каждой стороны, и у вас есть своего рода круг вне трекбола, который позволяет прокручивать страницу вверх или вниз. Это действительно работает, и я использую на Windows и Mac OSX.

1

В зависимости от вашей ОС, вы можете настроить одну из кнопок для включения прокрутки, перемещая указатель при удерживании. Например, следующий скрипт включает это на кнопке 10 моей мыши (кнопка "вверху посередине" на Logitech MX310):

#!/bin/sh
xinput set-prop "Logitech USB-PS/2 Optical Mouse" 290 10
xinput set-prop "Logitech USB-PS/2 Optical Mouse" 286 1
xinput set-prop "Logitech USB-PS/2 Optical Mouse" 287 6 7 4 5
1

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

Итак, «Зачем изобретать велосипед?"хорошая пословица в этом случае.

В этих примерах элемент физически установлен, и есть много типов на выбор. Ниже приведены два примера и стили.

WH1

Или как то так:Adesso

WH2

1

Простое (и, скажем, эргономичное решение) решение состоит в том, чтобы поместить функцию прокрутки на левую руку.

Этого можно достичь, используя мышь левой рукой / используя клавиатуру со встроенным колесом прокрутки на левом краю / назначая функции прокрутки клавишам программируемой клавиатуры с помощью программы, такой как Mkey (http:// www.seriosoft.org/en/index.php).

Почему я считаю, что это более эргономично - потому что этот подход распределяет напряжение более равномерно на обе руки. (Подробнее об этом: http://capsoff.org/checklist).

1

Еще одно решение для Windows 7, позволяющее прокручивать все приложения, включая Internet Explorer:

  1. Установите AutoHotKey.
  2. Сохраните этот скрипт как scroll.ahk на рабочий стол.
  3. Щелкните правой кнопкой мыши на scroll.ahk .
  4. Выберите Run Script .
  5. Подтвердите, если будет предложено.

Это позволит удерживать небольшую правую кнопку прокрутки вертикально при перемещении трекбола. Маленькая левая кнопка - это кнопка назад.


В случае, если ссылка на код Эрика Элмора исчезнет, вот она:

;;
;; Emulate_Scrolling_Middle_Button.ahk
;; Author: Erik Elmore <erik@ironsavior.net>
;; Version: 1.1 (Aug 16, 2005)
;;
;; Enables you to use any key with cursor movement
;; to emulate a scrolling middle button.  While
;; the TriggerKey is held down, you may move the
;; mouse cursor up and down to send scroll wheel
;; events.  If the cursor does not move by the
;; time the TriggerKey is released, then a middle
;; button click is generated.  I wrote this for my
;; 4-button Logitech Marble Mouse (trackball),  
;; which has no middle button or scroll wheel.
;;

;; Configuration

;#NoTrayIcon

;; Higher numbers mean less sensitivity
esmb_Threshold = 7

;; This key/Button activates scrolling
esmb_TriggerKey = XButton2

;; End of configuration

#Persistent
CoordMode, Mouse, Screen
Hotkey, %esmb_TriggerKey%, esmb_TriggerKeyDown
HotKey, %esmb_TriggerKey% Up, esmb_TriggerKeyUp
esmb_KeyDown = n
SetTimer, esmb_CheckForScrollEventAndExecute, 10
return

esmb_TriggerKeyDown:
  esmb_Moved = n
  esmb_FirstIteration = y
  esmb_KeyDown = y
  MouseGetPos, esmb_OrigX, esmb_OrigY
  esmb_AccumulatedDistance = 0
return

esmb_TriggerKeyUp:
  esmb_KeyDown = n
  ;; Send a middle-click if we did not scroll
  if esmb_Moved = n
    MouseClick, Middle
return

esmb_CheckForScrollEventAndExecute:
  if esmb_KeyDown = n
    return

  MouseGetPos,, esmb_NewY
  esmb_Distance := esmb_NewY - esmb_OrigY
  if esmb_Distance
    esmb_Moved = y

  esmb_AccumulatedDistance := (esmb_AccumulatedDistance + esmb_Distance)
  esmb_Ticks := (esmb_AccumulatedDistance // esmb_Threshold) ; floor divide
  esmb_AccumulatedDistance := (esmb_AccumulatedDistance - (esmb_Ticks * esmb_Threshold))
  esmb_WheelDirection := "WheelDown"
  if (esmb_Ticks < 0) {
    esmb_WheelDirection := "WheelUp"
    esmb_Ticks := (-1 * esmb_Ticks)
  }

  ;; Do not send clicks on the first iteration
  if esmb_FirstIteration = y
    esmb_FirstIteration = n
  else {
    Loop % esmb_Ticks {
      MouseClick, %esmb_WheelDirection%
    }
  }

  MouseMove,esmb_OrigX,esmb_OrigY,0
return
1

Я действительно сделал что-то для этого с помощью AutoHotkey некоторое время назад и решил, что поделюсь этим и здесь: Mouse Wheel Emulator

Это эмулирует прокрутку колесика мыши, перемещая мышь, удерживая левую и правую кнопки мыши.

Вы также можете эмулировать средний щелчок, одновременно нажимая левую и правую кнопки мыши.

1

Два нетрадиционных варианта

  • Используйте трекпад Apple Magic в дополнение к трекболу. (Это мое текущее решение)http://www.apple.com/magictrackpad/

  • Купите контроллер leapmotion и используйте его в дополнение к трекболу. Помашите рукой перед устройством, чтобы прокрутить вверх и вниз. https://www.leapmotion.com/product

Изображение предоставлено http://www5.pcmag.com/media/images/393268-leap-motion-controller.jpg

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .