私はトラックボールを購入することを考えており、私の選択肢はロジクールのトラックマン大理石です。しかし、その後、スクロールホイールがないことがわかりました。どのようにそれに取り組みますか?スクロールホイール付きのトラックボールを絶対に買いたいですか?私はfacebookを使用してたくさんスクロールします。
人差し指や中指でクリックしたくないので、トラックマンホイールなど、一部のトラックボールマウスは動作しません。
私はトラックボールを購入することを考えており、私の選択肢はロジクールのトラックマン大理石です。しかし、その後、スクロールホイールがないことがわかりました。どのようにそれに取り組みますか?スクロールホイール付きのトラックボールを絶対に買いたいですか?私はfacebookを使用してたくさんスクロールします。
人差し指や中指でクリックしたくないので、トラックマンホイールなど、一部のトラックボールマウスは動作しません。
回答:
Windowsを使用している場合は、AutoHotKeyを試してみることをお勧めします。他のユーザーは既にMarble Mouseでスクロールに取り組んでいます(スクリプトを一番下に使用しました)。
http://www.autohotkey.com/board/topic/4677-wheel-button-emulation-script/
ドライバーに付属するLogitechのソリューションは奇妙です。1回クリックして4方向のスクロールを有効にし、もう一度クリックして無効にします。押したままスクロールすることはできません。ソフトウェアをアンインストールすることにしました。
私は同じトラックボールを使用しており、ソリューションは非常にエレガントです。選択したボタンをクリックすると、ボール自体がスクロールホイールになります。小指で押す大きな右ボタンを選択しました。
これは非常に便利で、慣れるまで数日しかかかりません。
マウスまたはトラックボール上のスクロールホイールは使用できないものであるとすぐに考えられます。私を信じて、それだけの価値があります;-)
利点:
私はそれなしではもう生きられません。
Linux OSでそれを設定するのは難しくありません。/etc/X11/xorg.confファイルを作成するだけです(ここでの私の構成を参照してください:Xorg.confを編集せずにLinuxでトラックボールを構成します)。
詳細については、https://help.ubuntu.com/community/Logitech_Marblemouse_USBをご覧ください。
Windowsでは、経験はありませんが、トラックボールに構成ツールが付属していると思います。
そのマウス用に特別に開発されたMarble Mouse Scroll Wheelを試すことができます:
マーブルマウススクロールホイール、または単にマーブルスクロールは、トラックボールやマウスのないスクロールボールをシミュレートするために設計された小さなプログラムです。Logitech Marble Mouse用に特別に設計されましたが、標準のマウスまたはトラックボールで使用できます。Windows 2000以降向けに設計されています。
Marble Scrollは、LogitechのAutoscrollおよびUniversal Scroll機能の代替品です。どちらも実際のスクロールホイールを適切にエミュレートせず、どちらにも制限と欠陥があります。
Marble Scrollは任意のマウスまたはトラックボールで動作し、LogitechのSetPointまたはMouseWareドライバーをインストールする必要はありません。
特徴
- 3つ以上のボタンがあるマウスにスクロールホイールを追加する
- スクロールホイールをサポートするほとんどのアプリケーションとの互換性(あらゆるタイプの入力に対して)
- 調整可能な加速
- 調整可能なスクロール距離(「ステップ」ごと-以下を参照)
- 実際のマウスホイールをシミュレートするステップスクロール
- クイック左/右利きモードスイッチャー
- トレイのアイコンをクリックして、クイック有効化/無効化
- システムリソースの小型軽量
製品のウェブサイトは現在ダウンしているようですが、こちらは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
Logitech Marbleマウスを入手したばかりで、スクロールの問題もありました。このスクリプトをAutoHotKeyで作成しました。左のXボタンはスクロールを有効にします。つまり、下にある間はボールを使って垂直および水平にスクロールでき、左および右のボタンを使用してブラウザーを前後に移動できます。右のXbuttonには中央のボタンと同じアクションがあります。
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
ご使用の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
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
簡単な(そして人間工学に基づいたあえて)ソリューションは、スクロール機能を左手に置くことです。
これは、左手でマウスを使用するか、左端に内蔵スクロールホイールを備えたキーボードを使用するか、Mkey(http://のようなプログラムでプログラム可能なキーパッドのキーにスクロール機能を割り当てることで実現できます。 www.seriosoft.org/en/index.php)。
なぜこれがより人間工学的だと思いますか-このアプローチは両手に緊張をより均等に分散させるからです。(これに関する詳細:http : //capsoff.org/checklist)。
私はWindows7で、スクロールなしで Kensington Orbit Opticalトラックボールを使用しています。これは2ボタンのトラックボールで、他の人が指摘するほとんどのAHKスクリプトやアプリケーションで必要なXボタンはありません。
ただし、MouseImpはWindows7で動作します。ITは構成可能ですがright-click + roll
、スクロールの画面を表示するように設定されています。ドラッグに似ているため、ポインタが移動し、一度に1つの画面しか表示されません[更新:スクロールレートを設定できるため、「1ページ」以上になることがあります]。
同時に、KensingtonのTrackballWorksは、でページを下にスクロールするように設定されていますleft-click + right-click
。残念ながら、一度にページをスクロールバックすることはできません(どちらか一方)。
これは製品プラグではありません。このモデル/タイプのトラックボールで動作することがわかったのです。
警告:あなたは常に右クリックと左クリックをしているので、混乱を招く可能性があり、スクロールを停止したいだけでリンクがフォロー/ jsでアクティブ化される可能性があります。:::ため息:::
しばらく前にAutoHotkeyを使用して実際に何かを作成し、ここでも共有すると思いました:マウスホイールエミュレーター
これは、左右のマウスボタンを押しながらマウスを動かすことにより、マウスホイールのスクロールをエミュレートします。
左右のマウスボタンを同時にクリックして、中クリックをエミュレートすることもできます。
Internet Explorerを含むすべてのアプリケーションでスクロールできるWindows 7の別のソリューション:
scroll.ahk
デスクトップとして保存します。scroll.ahk
ます。これにより、トラックボールを移動するときに小さな右ボタンを垂直にスクロールできます。小さな左ボタンは戻るボタンです。
Erik Elmoreのコードへのリンクが消えた場合、ここにあります:
;;
;; 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%
で2行で#Persistent
、彼らが開始するので、セクションHotkey, *%esmb_TriggerKey%
。後者は修飾キーで完璧に機能するため、たとえばCtrl + Scrollが機能します。
ここに別のトラックマン大理石のユーザー。
スクロールエミュレーションにX-Mouse Button Controlを使用しています。この機能の実装は完璧ではありません(まだ?)が、独自のSetPoint™ソフトウェアのLogitech実装よりもはるかに使いやすくなっています。
AutoHotKeyをいじりたくない人にはXMBCをお勧めします。