ліки від трекболу без колеса прокрутки?


30

Я думаю придбати трекбол, і мій варіант - мармуровий мармур Logitech. Але потім я виявив, що немає колеса прокрутки. Як ти вирішуєш це? Чи я точно хочу придбати трекбол зі колесом прокрутки? Я багато прокручую, використовуючи facebook.

Я не хочу натискати вказівним і середнім пальцями, тому деякі миші трекбола не працюватимуть для мене, як колесо Trackman.


Спробуйте колесо Trackman від Logitech. Пропозиція провідна або бездротова модель.
Моаб

Я не хочу клацати вказівним і середнім пальцями, тому я хочу трекбол з м'ячем в центрі. Спасибі.
lamwaiman1988

Зазвичай ви можете налаштувати такі речі за допомогою програмного забезпечення миші. Звідти ви можете робити найрізноманітніші речі (утримуючи кнопку правого клацання під час переміщення трекбола тощо). Я припускаю, що ви, ймовірно, вже вирішили свою проблему, оскільки ви опублікували це рік тому . Якщо ні, удачі вам.
HelpingHand

@HelpingHand Nope Я все ще не зміг знайти життєздатне рішення. Тепер я використовую PageUp та PageDown для прокрутки.
lamwaiman1988

Відповіді:


13

Якщо ви перебуваєте в Windows, я б запропонував спробувати AutoHotKey, інші користувачі вже вирішили прокручувати Мармурову мишу (я використав сценарій внизу):

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

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


Це рішення працює, але підтримує лише маленьку ліву кнопку на трекболі, щоб вимкнути функцію 'назад' за замовчуванням для веб-сторінки. У будь-якому випадку, я можу прийняти цю відповідь, випробувавши її на кілька днів.
lamwaiman1988

ПРИМІТКА. Сценарій AHK працює лише для трекболів з X-кнопками або трекбольних кнопок 4+.
Майкл Паулуконіс

Дуже просто оновити сценарій, щоб використовувати іншу кнопку. Над коментарем над призначенням змінної вгорі є коментар - змініть "XButton1" на інше значення, щоб використовувати цю кнопку замість цього. У довідковому файлі AHK є перелік спеціальних клавіш (просто запустіть AHK у меню "Пуск") у розділі "Список клавіш, кнопок миші та управління джойстиком", де ви можете вибрати будь-яку клавішу / кнопку, щоб діяти як модифікатор.
Джеймс Б

9

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

Це дуже зручно, а для звикання потрібно лише кілька днів.

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

Переваги:

  • 2D прокрутка замість 1D
  • швидше і точніше прокручування, ніж колесо
  • зручніше для тривалого прокручування (завдяки інерції кулі). Ідеально підходить для вашого прикладу у Facebook.

Я вже не можу жити без цього.

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

Детальніше можна ознайомитись тут: https://help.ubuntu.com/community/Logitech_Marblemouse_USB

У Windows у мене немає досвіду, але я думаю, що інструмент налаштування постачається разом із трекболом.


2
Моє робоче середовище - це переважно вікна, тому це не є життєздатним варіантом для мене, і я не маю уявлення, як перенести це в Windows.
lamwaiman1988

8

Ви можете спробувати колесо прокрутки з мармуровою мишкою, розроблене спеціально для цієї миші:

Marble Mouse Wheel Wheel, або просто Marble Scroll, це невелика програма, призначена для імітації колеса прокрутки на будь-якому трекболі чи миші без жодного. Він був спеціально розроблений для мармурової миші Logitech, але може працювати з будь-якою стандартною мишею або трекболом. Він розроблений для Windows 2000 і новіших версій.

Мармурова прокрутка - це заміна функцій автоматичного прокрутки Logitech та універсальної прокрутки; ні належним чином не імітуйте справжнє колесо прокрутки, і обидва мають обмеження та недоліки.

Marble Scroll працює з будь-якою мишею або трекболом і не вимагає встановлення драйверів SetPoint або MouseWare Logitech.

Особливості

  • Додайте колесо прокрутки до будь-якої миші з більш ніж двома кнопками
  • Сумісність із більшістю програм, які підтримують колесо прокрутки (для будь-якого типу введення)
  • Регульоване прискорення
  • Регульована відстань прокрутки (за "крок" - див. Нижче)
  • Покрокове прокручування, щоб імітувати справжнє колесо миші
  • Швидкий перемикач режиму вліво / вправо
  • Швидке включення / відключення натисканням на піктограму лотка
  • Невеликий і легкий на ресурсах системи

Веб-сайт продукту, здається, наразі не працює, але ось копія тексту сайту на Archive.org .

Посилання для завантаження тут .


У Windows 8 він працює добре.
Justinas Dūdėnas

Це все ще чудово працює на Win7 та 8. Утримуючи кнопку "назад" на миші, можна мені прокручувати за допомогою трекболу. Але я все ще можу використовувати кнопку "назад" як кнопку "назад". В основному це додало функціональності, не забираючи нічого. Найкращий вид рішення.
japzone

1
Здається, не працює надійно в Windows 10 :(
askvictor

1
Пов'язане дзеркало для завантаження відображається як зловмисне програмне забезпечення - не впевнений, що це помилковий позитив, але поки що це не змінюється.
Джеймс Б

1
Я ним користувався роками, і він чудово працює до Windows 8, в якому він став ненадійним. Я не пробував цього у програмі Win 10. Я надіслав електронною поштою оригінального автора, який відповів (!), І хоча він втратив вихідний код, розповів мені основну суть того, як це зробити. Суть, яку він мені дав, - це те, що зробила інша відповідь: superuser.com/a/782571/127024
Йоган

8

Існує проста альтернатива 100 + C ++, яка досить схожа на рішення AutoHotKey, тобто

  • надсилання вертикальних / горизонтальних коліс прокрутки, переміщуючи трекбол, утримуючи одну з кнопок X і
  • середнім клацанням при натисканні та відпусканні кнопки X без переміщення трекболу.

https://github.com/Seelge/TrackballScroll

Редагувати: новіші версії надають піктограму systray, працюють у Windows 10 та базуються на C #.


Це рішення перевершує будь-який із сценаріїв AutoHotKey, який я пробував, і всі вони страждають від дратівливого "переміщення курсору", через керовану часом подію, яка "переміщує мишу назад у вихідне положення" кожні стільки мілісекунд, поки прокручування. Цей простий виконуваний TrackballScroll не має таких обмежень і працює дуже добре. Єдине застереження - це те, що воно не працює надійно в оновленнях для Windows 10 Creator, як це писалося
Бен Джонсон

Я використовував це протягом багатьох років і сподобався (я навіть поставив +1 цій відповіді понад рік тому), але після переходу на Windows 10 минулого тижня я хотів би зазначити, що помилка, згадана в іншому коментарі, все ще не є ' t виправлено, і ненадійність зробила це абсолютно непридатним для мене на практиці.
mtraceur

4

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

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

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

Якщо ви бажаєте скористатися правою кнопкою миші, замініть "XButton1" на "RButton".
Метт Вельк

Для мене це працює ідеально, але чи є спосіб прокрутити плавніше? Я спробував і методи SendMessage, і WheelUp / Down для вертикальної прокрутки, і вони обидва роблять «стрибок»
askvictor

3

Це така ганьба Logitech не реалізував моделювання колеса прокрутки. Їх драйвер обіцяє зробити цю функцію, але вона працює не для всіх додатків, що робить її марною. Вони були такі близькі до створення ідеальної миші! : с

Єдине рішення, яке я знайшов, - це використовувати для нього скрипт 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

Я можу також безпосередньо натиснути клавішу PageUp / PageUp ....
lamwaiman1988

2

У мене щойно з'явилася миша з мармуру Logitech, і у мене також була проблема прокрутки. Тому я зробив цей сценарій на AutoHotKey. Ліва кнопка Xbutton дозволяє прокручувати, тобто під час руху вниз ви можете прокручувати вертикально і горизонтально м'яч, а також рухатись вперед та назад у браузері лівою та правою кнопками. Правий Xbutton виконує ті ж дії, що і середня кнопка.

Я на 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

Я здавався і використовував клавіші вгору і вниз на клавіатурах. Також я б натиснути на порожнє місце на смузі прокрутки, щоб переміщувати сторінку вгору і вниз.
lamwaiman1988

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

Або щось подібне: Адессо

wh2


1

Два нестандартні варіанти

  • Використовуйте Apple Magic Trackpad на додаток до трекболу. (Це моє поточне рішення) http://www.apple.com/magictrackpad/

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

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

Кредит зображення http://www5.pcmag.com/media/images/393268-leap-motion-controller.jpg


1

Просте рішення (і ергономічне, наважусь сказати) рішення - поставити функцію прокрутки на ліву руку.

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

Чому я вважаю, що це більш ергономічно - адже такий підхід розподіляє напругу рівномірно на обидві руки. (Детальніше про це: http://capsoff.org/checklist ).


1

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

Однак MouseImp працює для мене на Windows7. ІТ-конфігурується, але у мене це налаштовано для right-click + rollотримання екрана прокрутки. Це більше схоже на перетягування, тому вказівник рухається, і у вас є одночасно один екран [оновлення: частота прокрутки налаштовується, тому вона може бути більше, ніж "одна сторінка"].

У той же час, Кенсінгтона TrackballWorks був налаштований , щоб дати мені сторінку вниз сувій на left-click + right-click. На жаль, він не може одночасно прокручувати сторінку назад (одну чи іншу).

Це не модуль продукту - це якраз те, що я знайшов працювати з цією моделлю / типом трекболу .

Caveat: ви постійно клацаєте правою та лівою кнопкою миші, і це може призвести до плутанини, а посилання переслідуються / активуються js, коли ви просто хочете зупинити прокрутку . ::: зітхнути :::


1

Щойно я отримав орбіту бездротового трекболу з Кенсінгтона, це досить дивовижно. У вас є м'яч, у вас обидві кнопки на кожній стороні і у вас є своєрідне коло поза трекболом, що дозволяє прокручувати сторінку вгору або вниз. Це дійсно працює, і я використовую в Windows і Mac OSX.


1

Насправді я щось зробив для цього, використовуючи AutoHotkey, і подумав, що поділюсь і цим: Емулятор колеса миші

Це імітує прокручування колеса миші, переміщуючи мишу, утримуючи ліву та праву кнопки миші.

Можна також імітувати середній клік, натискаючи одночасно ліву та праву кнопки миші.


1

Ще одне рішення для Windows 7, яке дозволяє прокручувати всі програми, включаючи Internet Explorer:

  1. Встановіть AutoHotKey .
  2. Збережіть цей сценарій як scroll.ahkна робочому столі.
  3. Клацніть правою кнопкою миші на scroll.ahk.
  4. Виберіть Запустити сценарій .
  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

Дякую за це! Я зробив два невеликих зміни в цьому сценарії: змінені , XButton2щоб , XButton1як я вважаю за краще ліву кнопку, і додав , *перш ніж %esmb_TriggerKey%на два рядки в #Persistentсекції, так що вони починають Hotkey, *%esmb_TriggerKey%. Остання дозволяє бездоганно працювати з клавішами-модифікаторами, тому, наприклад, Ctrl + Scroll працює.
cincodenada

0

Ще один користувач Trackman Marble тут.

Я використовую X-Mouse Button Control для емуляції прокрутки. Ця реалізація функцій там не досконала (поки що?), Але вона набагато корисніша, ніж реалізація Logitech у власному програмному забезпеченні SetPoint ™.

Я рекомендую XMBC всім, хто не хоче возитися з AutoHotKey і шукає те, що просто працює.

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