私はトラックボールを購入しようと考えており、私の選択肢はロジクールトラックマンマーブルです。しかし、その後、スクロールホイールがないことがわかりました。あなたはそれにどのように取り組みますか?間違いなくスクロールホイール付きのトラックボールを購入しますか? Facebookを使ってたくさんスクロールします。
人差し指と中指でクリックしたくないので、トラックマンホイールのように、一部のトラックボールマウスが機能しません。
Windowsを使用している場合は、AutoHotKeyを試してみることをお勧めします。他のユーザーは既にマーブルマウスでのスクロールに取り組んでいます(下のスクリプトを使用しました)。
http://www.autohotkey.com/board/topic/4677-wheel-button-emulation-script/
ドライバーに付属するLogitechのソリューションは奇妙です。一度クリックすると4方向スクロールが有効になり、もう一度クリックすると無効になります。押したままスクロールすることはできません。私は彼らのソフトウェアをアンインストールしてしまいました。
私は同じトラックボールを持っていて、解決策は非常にエレガントです。選択したボタンをクリックすると、ボール自体がスクロールホイールになります。小指で押す右の大きなボタンを選びました。
これはvery便利で、慣れるまで数日しかかかりません。
(マウスまたはトラックボール上の)スクロールホイールは使用できないものであるとすぐに考えるでしょう。私を信じて、それだけの価値があります;-)
利点:
それなしではもう生きられない。
Linux OSでの設定は難しくありません。 /etc/X11/xorg.confファイルを作成する必要があるだけです(ここの私の設定を参照してください: Xorg.confを編集せずにLinuxでトラックボールを設定してください )
詳細はこちら: https://help.ubuntu.com/community/Logitech_Marblemouse_USB
Windowsでは経験はありませんが、設定ツールはトラックボールに付属していると思います。
そのマウス用に特別に開発された大理石のマウススクロールホイールを試すことができます。
マーブルマウスのスクロールホイール、または単にマーブルスクロールは、トラックボールやマウスを使わずにスクロールホイールをシミュレートするように設計された小さなプログラムです。ロジクールマーブルマウス専用に設計されていますが、標準のマウスやトラックボールで動作します。 Windows 2000以降用に設計されています。
マーブルスクロールは、Logicoolのオートスクロール機能とユニバーサルスクロール機能の代替品です。どちらも実際のスクロールホイールを適切にエミュレートせず、どちらにも制限と欠陥があります。
Marble Scrollは、任意のマウスまたはトラックボールで動作し、LogitechのSetPointまたはMouseWareドライバーをインストールする必要はありません。
特徴
- 3つ以上のボタンを持つマウスにスクロールホイールを追加する
- スクロールホイールをサポートするほとんどのアプリケーションとの互換性(あらゆるタイプの入力用)
- 調整可能な加速
- 調整可能なスクロール距離(「ステップ」ごと-下記参照)
- 実際のマウスホイールをシミュレートするための段階的スクロール
- クイック左/右手モード切り替え
- トレイアイコンをクリックすることで簡単に有効化/無効化
- システムリソースが小さくて軽い
製品のWebサイトは現在ダウンしているようですが、これは Archive.org にあるサイトのテキストのコピーです。
ダウンロードリンク ここにあります 。
AutoHotKeyソリューションと非常によく似た単純な100行のC++代替があります。
https://github.com/Seelge/TrackballScroll
編集:新しいバージョンはsystray-iconを提供し、Windows 10で動作し、C#に基づいています。
これが私が使用する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
Logitechがスクロールホイールシミュレーションを実装しなかったのは、とても残念なことです。彼らのドライバーはそうする機能を約束しますが、それはすべてのアプリケーションで機能するわけではなく、それをまったく役に立たなくします。彼らは完璧なマウスを作るのにとても近かったです! :s
私が見つけた唯一の回避策は AutoHotkey スクリプトを使用することです。それを使用すると、小さな左/右ボタンを上下にスクロールさせることができます。完全に機能しますが、設定するのは本当に面倒です。最初にAutoHotkeyの基本を学ぶ必要があります。そうすることに決めたなら、これが私のAutoHotkeyスクリプトです。 Jerboのオリジナルスクリプト を変更したものです。シングルクリックは通常のペースでスクロールを開始しますが、ダブルクリックまたはトリプルクリックはより速くスクロールを開始します。
; 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
ロジクールマーブルマウスを入手したばかりで、スクロールの問題もありました。このスクリプトをAutoHotKeyで作成しました。左のXボタンはスクロールを有効にします。つまり、下にいる間、ボールで垂直および水平にスクロールでき、左および右のボタンでブラウザー内を前後に移動できます。右のXボタンには、中央のボタンと同じアクションがあります。
Windows 7のIM。
#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
私はWindows7を使用していて、Kensington Orbitオプティカルトラックボールを使用していますScrollringなし-これは2ボタントラックボールで、ほとんどのAHKスクリプトや他の人が指摘するアプリケーションで必要なXボタンがありません。
ただし、Windows7では MouseImp が機能しています。 ITは構成可能ですが、right-click + roll
スクロールの画面を表示します。これはドラッグのようなものなので、ポインタが移動し、一度に1つの画面しか表示されません[更新:スクロールレートは構成可能であるため、「1ページ」以上になる場合があります]。
同時に、ケンジントンの TrackballWorks は、left-click + right-click
。残念ながら、一度に1ページずつスクロールして戻ることはできません(どちらか一方)。
これは製品プラグではありません-私が動作することがわかったものだけですこのモデル/トラックボールのタイプ。
警告:常に右クリックと左クリックを行っているため、混乱を招く可能性があり、リンクをたどる/ js-アクティブ化したいときにスクロールを停止する必要があります。 :::はぁ:::
私はケンジントンから軌道ワイヤレストラックボールを手に入れました、それはかなり素晴らしいです。ボールがあり、両側に両方のボタンがあり、ページを上下にスクロールできるようにするトラックボールの外側に一種の円があります。それは本当に機能し、私はWindowsとMac OSXで使用しています。
お使いのOSによっては、ボタンの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つを使用するために、アプリまたはスクリプトが必要になるようです(別の回答へのコメントで、受け入れ可能な解決策ではないことに注意してください)。
それで、「なぜ車輪を再発明するのか?」この場合は格言です。
これらの例では、要素は物理的にインストールされており、多くのタイプから選択できます。以下は2つの例とスタイルです。
または、次のようなもの: Adesso
簡単な(そして人間工学に基づいた、あえて言う)ソリューションは、スクロール機能を左手に置くことです。
これは、左手でマウスを使用するか、左端にスクロールホイールが組み込まれたキーボードを使用するか、Mkey( http://www.seriosoft.org/en/index.php )。
なぜ私はこれがより人間工学的であると思いますか-このアプローチは両手でより均等に緊張を分散させるからです。 (これについての詳細: http://capsoff.org/checklist )。
Internet Explorerを含むすべてのアプリケーションでスクロールできるWindows 7の別のソリューション:
scroll.ahk
としてデスクトップに保存します。scroll.ahk
を右クリックします。これにより、トラックボールを移動するときに小さな右ボタンを押したままにすると垂直方向にスクロールします。左の小さなボタンが戻るボタンです。
Erik Elmoreのコードへのリンクが消えた場合は、次のようになります。
;;
;; Emulate_Scrolling_Middle_Button.ahk
;; Author: Erik Elmore <[email protected]>
;; 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
私は実際にしばらく前にAutoHotkeyを使用してこれのために何かを作成し、ここでも共有することを考えました: Mouse Wheel Emulator
これは、マウスの左ボタンと右ボタンを押したままマウスを動かして、マウスホイールのスクロールをエミュレートします。
マウスの左ボタンと右ボタンを同時にクリックして、中クリックをエミュレートすることもできます。
2つの非従来型オプション
トラックボールに加えてApple Magic Trackpadを使用します(これが私の現在の解決策です) http://www.Apple.com/magictrackpad/
Leapmotionコントローラーを購入して、トラックボールに加えて使用します。デバイスの前で手を振って上下にスクロールします。 https://www.leapmotion.com/product
画像クレジット http://www5.pcmag.com/media/images/393268-leap-motion-controller.jpg
別のTrackman Marbleユーザーがここにいます。
スクロールエミュレーションに X-Mouse Button Control を使用しています。この機能の実装は(まだ?)完璧ではありませんが、独自のSetPoint™ソフトウェアでのLogitechの実装よりもはるかに使いやすいです。
AutoHotKeyをいじったり、うまく機能するものを探したりしたくない人には、XMBCをお勧めします。