Je pense acheter un trackball et mon option est le marbre Logitech trackman. Mais ensuite j'ai trouvé qu'il n'y avait pas de molette de défilement. Comment abordez-vous cela? Dois-je vraiment acheter une boule de commande avec molette de défilement? Je défile beaucoup en utilisant Facebook.
Je ne veux pas cliquer avec mon index et mon majeur, donc certaines souris à boule de commande ne fonctionneront pas pour moi, comme la Trackman Wheel.
Si vous utilisez Windows, je vous conseillerais d'essayer AutoHotKey, d'autres utilisateurs ont déjà abordé le défilement avec la souris Marble (j'ai utilisé le script ci-dessous):
http://www.autohotkey.com/board/topic/4677-wheel-button-emulation-script/
La solution de Logitech fournie avec leurs pilotes est étrange: vous cliquez une fois pour activer le défilement multidirectionnel et cliquez à nouveau pour le désactiver. Vous ne pouvez pas tenir et faire défiler qui est ce que j'étais après. J'ai fini par désinstaller leur logiciel.
J'ai le même trackball et la solution est très élégante: lorsque vous cliquez sur un bouton de votre choix, la balle elle-même devient une molette de défilement. J'ai choisi le gros bouton droit sur lequel j'appuie avec le petit doigt.
C'est très pratique et il ne faut que quelques jours pour s'habituer.
Vous constaterez rapidement que toute molette de défilement (sur une souris ou une boule de commande) est inutilisable. Croyez-moi, ça vaut le coup ;-)
Avantages:
Je ne peux plus vivre sans.
Configurer cela sous n'importe quel système d'exploitation Linux n'est pas difficile. Il vous suffit de créer un fichier /etc/X11/xorg.conf (voir ma configuration ici: Configurer un trackball sous Linux sans éditer Xorg.conf )
Plus de détails peuvent être trouvés ici: https://help.ubuntu.com/community/Logitech_Marblemouse_USB
Sous Windows, je n'ai aucune expérience mais je pense qu'un outil de configuration est fourni avec le trackball.
Vous pouvez essayer la molette de défilement de la souris Marble, développée spécialement pour cette souris:
La molette de défilement Marble Mouse, ou tout simplement Marble Scroll, est un petit programme conçu pour simuler une molette de défilement sur toute boule de commande ou souris sans souris. Il a été spécialement conçu pour la souris Logitech Marble Mouse mais peut fonctionner avec n'importe quelle souris ou trackball standard. Il est conçu pour Windows 2000 et supérieur.
Marble Scroll remplace les fonctions Autoscroll et Universal Scroll de Logitech; ni bien imiter une vraie molette de défilement et les deux ont des limites et des défauts.
Marble Scroll fonctionne avec n'importe quelle souris ou boule de commande et ne nécessite pas l'installation des pilotes SetPoint ou MouseWare de Logitech.
Caractéristiques
- Ajouter une molette de défilement à n'importe quelle souris avec plus de deux boutons
- Compatibilité avec la plupart des applications prenant en charge une molette de défilement (pour tout type d'entrée)
- Accélération réglable
- Distance de défilement réglable (par "pas" - voir ci-dessous)
- Défilement par paliers pour simuler une vraie molette de la souris
- Sélecteur rapide en mode gaucher/droitier
- Activer/désactiver rapidement en cliquant sur l'icône de la barre des tâches
- Petite et légère sur les ressources système
Le site Web du produit semble en panne, mais voici une copie du texte du site sur Archive.org .
Un lien de téléchargement est ici .
Il existe une alternative C++ simple à 100 lignes qui est assez similaire aux solutions AutoHotKey, c’est-à-dire
https://github.com/Seelge/TrackballScroll
Edit: Les versions plus récentes fournissent une icône systray, fonctionnent sous Windows 10 et sont basées sur C #.
Voici le script AutoHotKey que j'utilise. Vous faites défiler en maintenant le petit bouton de gauche enfoncé et en faisant rouler la balle de haut en bas. Cependant, le fait de cliquer sur le petit bouton de gauche entraîne toujours le retour Il peut également faire défiler l'écran vers la gauche ou la droite, mais c'était trop sensible pour moi, donc c'est commenté ici (le bloc qui commence par ;timesX := Abs(movedx) / 4
).
J'ai trouvé la version originale à http://www.autohotkey.com/board/topic/30816-simulate-scroll-wheel-using-right-mouse-button/ . J'ai posté ma version ici en tant qu'autreperson8923.
$*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
C'est vraiment dommage que Logitech n'ait pas implémenté de simulation de molette de défilement. Leur pilote promet une fonctionnalité pour le faire, mais cela ne fonctionne pas pour toutes les applications, ce qui le rend tout à fait inutile. Ils étaient si près de créer la souris parfaite! : s
La seule solution que j'ai trouvée consiste à utiliser un script AutoHotkey . Avec lui, vous pouvez faire défiler les minuscules boutons gauche/droite. Cela fonctionne parfaitement, mais il est très compliqué de le configurer: vous devez d’abord apprendre les bases de AutoHotkey. Si vous décidez de le faire, voici mon script AutoHotkey. C'est une adaptation du script original de de Jerbo . Un simple clic commencera à défiler à un rythme normal, mais un double ou triple clic commencera à défiler plus rapidement.
; 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
Je viens de recevoir une souris Logitech Marble et j'ai également eu le problème du défilement. J'ai donc fait ce script sur AutoHotKey. Le bouton X de gauche active le défilement, ce qui signifie que, tout en bas, vous pouvez faire défiler verticalement et horizontalement la balle et vous déplacer en avant et en arrière dans le navigateur à l'aide des boutons gauche et droit. Le bouton X de droite a la même action que le bouton du milieu.
Je suis sur 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
Je suis sous Windows7 et j'utilise le trackball optique Kensington Orbit sans scrollring . Il s'agit d'un trackball à deux boutons, sans les boutons X requis par la plupart des scripts et applications AHK indiqués. par d'autres.
Cependant, MouseImp fonctionne pour moi sous Windows7. L'informatique est configurable, mais je l'ai configuré pour right-click + roll
afin de me procurer un écran de défilement. Cela ressemble plus à un glissement, donc le pointeur se déplace, et vous n'avez qu'un seul écran à la fois [update: le taux de défilement est configurable, il peut donc être supérieur à "une page"].
Dans le même temps, TrackballWorks de Kensington a été configuré pour me permettre de faire défiler la page vers le bas sur left-click + right-click
. Malheureusement, il ne peut pas ensuite faire défiler une page à la fois (l'une ou l'autre).
Ce n'est pas un produit plug - c'est juste ce que j'ai trouvé pour fonctionner avec ce modèle/type de trackball .
Mise en garde: vous êtes constamment en train de cliquer à gauche et à droite, ce qui peut être source de confusion et de liens suivis/activés lorsque vous souhaitez simplement arrêter le défilement . :::soupir:::
Je viens de recevoir un trackball orbit sans fil de Kensington, c’est vraiment incroyable. Vous avez le ballon, vous avez les deux boutons de chaque côté et vous avez une sorte de cercle à l'extérieur du trackball qui permet de faire défiler la page vers le haut ou le bas. Cela fonctionne vraiment, et je l’utilise sous Windows et Mac OSX.
Selon votre système d'exploitation, vous pourrez peut-être configurer l'un des boutons pour activer le défilement en déplaçant le pointeur lorsqu'il est maintenu enfoncé. Par exemple. le script suivant active ceci sur le bouton 10 de ma souris (bouton "en haut au centre" de 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
Il existe de telles souris en marbre (souris) qui ont une molette de défilement incluse. Sinon, il semble qu'une application ou un script serait requis pour une souris sans molette avec l'utilisation de l'un des boutons pour activer une fonction de défilement (ce que vous avez noté dans un commentaire pour une autre réponse, comme une solution inacceptable).
Alors "Pourquoi réinventer la roue?" est un bon adage dans ce cas.
Dans ces exemples, l'élément est installé physiquement et vous pouvez choisir parmi de nombreux types. Vous trouverez ci-dessous deux exemples et styles.
Ou quelque chose comme ceci: Adesso
Une solution simple (et osée, si j'ose dire) est de mettre la fonction de défilement sur votre gauche.
Ceci peut être réalisé en utilisant une souris avec votre main gauche/en utilisant un clavier avec une molette de défilement intégrée sur son bord gauche/en affectant des fonctions de défilement aux touches d’un clavier programmable avec un programme comme Mkey ( http://www.seriosoft.org/en/index.php ).
Pourquoi est-ce que je pense que cela est plus ergonomique - parce que cette approche distribue la tension de manière plus uniforme sur les deux mains. (Plus à ce sujet: http://capsoff.org/checklist ).
Une autre solution pour Windows 7 qui permet le défilement dans toutes les applications, y compris Internet Explorer:
scroll.ahk
sur le bureau.scroll.ahk
.Cela fera défiler verticalement le petit bouton droit lorsque vous déplacerez la boule de commande. Le petit bouton de gauche est le bouton de retour.
Au cas où le lien vers le code d'Erik Elmore disparaîtrait, le voici:
;;
;; 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
En fait, j’ai créé quelque chose pour cela en utilisant AutoHotkey il ya quelque temps et j’ai pensé le partager ici aussi: émulateur de la molette de la souris
Ceci émule le défilement de la molette de la souris en déplaçant la souris tout en maintenant les boutons gauche et droit de la souris.
Vous pouvez également émuler un clic du milieu en cliquant simultanément sur les boutons gauche et droit de la souris.
Deux options non conventionnelles
Utilisez un trackpad Magic Apple en plus du trackball. (Ceci est ma solution actuelle) http://www.Apple.com/magictrackpad/
Achetez un contrôleur leapmotion et utilisez-le en plus du trackball. Agitez votre main devant l'appareil pour faire défiler de haut en bas. https://www.leapmotion.com/product
Crédit image http://www5.pcmag.com/media/images/393268-leap-motion-controller.jpg
Un autre utilisateur de Trackman Marble ici.
J'utilise le bouton de contrôle de la souris X pour l'émulation de défilement. Cette implémentation de fonctionnalité n’est pas parfaite (encore?), Mais elle est beaucoup plus utilisable que l’implémentation de Logitech dans leur propre logiciel SetPoint ™.
Je recommande XMBC à tous ceux qui ne veulent pas jouer avec AutoHotKey et qui recherchent quelque chose qui fonctionne.