Penguin
Blame: XFree86KeyboardMouseNotes
EditPageHistoryDiffInfoLikePages
Annotated edit history of XFree86KeyboardMouseNotes version 13, including all changes. View license author blame.
Rev Author # Line
11 CraigBox 1 !!! Mouse hardware support under [XFree86]/[XOrg]
3 DanielLawson 2
3 !! Side buttons on 7-button mice
4
12 IanMcDonald 5 Mice like the [Microsoft] Intellimouse Explorer have 5 buttons, besides the wheel, which means a total of 7 buttons as far as [XFree86] is concerned. Here's a summary of how to get the extra buttons working, as outlined in the [official XFree developer documentation|http://www.xfree86.org/4.2.0/mouse.html].
3 DanielLawson 6
12 IanMcDonald 7 Under [XFree86] 4.2.x and later, add/change settings in your mouse !InputDevice section of /etc/X11/XF86Config(-4):
3 DanielLawson 8
9 Protocol "ExplorerPS/2" # instead of plain "IMPS/2"
10 Options "Buttons" "7"
11 "ZAxisMapping" "6 7"
12
13 Verify that it works by using xev(1) and clicking on the various buttons after restarting your display manager (xdm(8)/gdm(8)/kdm(8)/wdm(8)/...).
14
15 You'll probably notice that your mouse wheel doesn't work any more, but the two side buttons act as wheel up/down now. The reason for this is that the application widget sets (eg [Qt] and [GTK]) assume buttons 4 and 5 are generated by a wheel, in the same way that they assume a button 3 message was generated by the 3rd mouse button. For some reason the Explorer driver and/or hardware assigns 4 and 5 to the side buttons, and 6 and 7 to the wheel.
16
17 To fix this, change the button order:
18 xmodmap -e "pointer = 1 2 3 6 7 4 5"
19
20 To have this happen automatically, you could
21 # add it to your __.xsession__ or __.xinitrc__, which only works per user
22 # assuming you're using gdm(8), add it to /etc/gdm/!PreSession/Default which affects everyone using gdm(8)
13 MarkStumme 23 # assuming you're using kdm(8), add it to /usr/kde/3.x/share/config/kdm which affects everyone using kdm(8)
3 DanielLawson 24
9 JohnMcPherson 25 Some applications already have support for these buttons, otherwise you can use xmodmap(1) or another program to map these button events to arbitrary key bindings/commands.
12 IanMcDonald 26 Recent versions of [Mozilla] (for example 1.6 on [Debian]) uses these for horizontal scrolling of a wide page, or see MozillaNotes for examples on how to use these extra buttons for things like going forward/backwards in a browser. Many games also support them.
10 OmegaTron 27
28 Note that if you have multiple mice (touchpad and external mouse, for instance), xmodmap only affects the one which is registered as CorePointer.
3 DanielLawson 29
30 !! Using your Keyboard as a mouse
31
32 Should you happen to find yourself without a mouse for one reason or another you can use the numpad on your keyboard as a substitute. To enable this feature simply press __Shift-!NumLock__ (various people report their keyboards' !NumLock keys even have mouse icons on them - check yours!), which gives you two beeps to signify it's active.
33
34 Use 2/4/6/8 as down/left/up/right, respectively. 5 clicks a mouse button, + toggles whether it's the left or right one. * produces a middle-click.
8 SamuelFalvo 35
12 IanMcDonald 36 On my system, a Slackware 9.0 stock install, the + key does not toggle between left and right buttons. Instead, it emulates a double-click of the button. The / key changes 5 to be the left mouse button, * to the middle mouse button, and - to the right mouse button. -- Samuel Falvo
8 SamuelFalvo 37
3 DanielLawson 38
39 !! Changing the mouse cursor speed
40
41 [GNOME] and [KDE] have applets/config settings to change the mouse speed settings. If you prefer to do it manually, or you are running a different window manager/environment, you can use the xset(1) command.
42 $ xset m 2 4
43 sets the acceleration to 2 and the threshold to 4. This means that the mouse cursor will be accelerated to double speed when the cursor passes over 4 pixels in a "short time". This means that if you are moving the mouse slow enough (under the threshold), the mouse moves at normal speed, but over the threshold and the cursor is moved faster than normal. The acceleration can be a fraction, eg
44 $ xset m 5/2 8
45 will make the cursor go 2.5 times normal speed if the cursor moves over 8 pixels in a short time.
46
47 !!! Mouse cursor
48
12 IanMcDonald 49 Some games on [Linux] (such as Quake2 or [BzFlag]) don't change the mouse pointer, meaning you get the mouse arrow in the middle of your game.
3 DanielLawson 50
51 You can change the shape of the cursor using standard programs that come with [XFree86]. X also comes with lots of bitmaps for this purpose. The xsetroot(1) program does this. If you give it the __-cursor__ option, the first argument is an xbm to use for the cursor and the second argument is a transparency mask.
52
53 A good, minimalist pointer is:
54
55 $ BMPATH=/usr/X11R6/include/X11/bitmaps
56 $ xsetroot -cursor $BMPATH/opendot $BMPATH/opendot
57
58 To restore the cursor back to the original pointer:
59
60 $ BMPATH=/usr/X11R6/include/X11/bitmaps
61 $ xsetroot -cursor $BMPATH/left_ptr $BMPATH/left_ptrmsk
62
63
4 DanielLawson 64 !!! Keyboards under [XFree86]
12 IanMcDonald 65 If you have a keyboard with 'extra' buttons, you'll probably want to get them to work under [X].
5 JohnMcPherson 66
67 You could try installing the "acme" package if you use [GNOME]2. This provides support for the multimedia keys found on some keyboards such as Hewlett-Packard's - even the volume knob worked!
1 DanielLawson 68
12 IanMcDonald 69 !! [Microsoft] Natural Pro
6 AristotlePagaltzis 70
12 IanMcDonald 71 If you have a [Microsoft] Natural Pro keyboard with the blue 'multimedia' buttons across the top and can change your __/etc/X11/XF86Config__, put __Option "!XkbModel" "microsoft"__ in the !InputDevice section for the keyboard and you'll be able to use them. If you can't, put one of the following in __.Xmodmap__ in your home directory (make sure your [X] login runs xmodmap over this file; this is a common default), depending on whether the keyboard is connected via [USB] or [PS/2].
1 DanielLawson 72
12 IanMcDonald 73 ! [Microsoft] Natural Pro ([USB]) .Xmodmap snippet
1 DanielLawson 74
6 AristotlePagaltzis 75 keycode 234 = XF86Back
76 keycode 233 = XF86Forward
77 keycode 232 = XF86Stop
78 keycode 121 = XF86Refresh
79 keycode 229 = XF86Search
80 keycode 230 = XF86Favorites
81 keycode 130 = XF86HomePage
82 keycode 236 = XF86Mail
83 keycode 166 = XF86AudioMute
84 keycode 165 = XF86AudioLowerVolume
85 keycode 158 = XF86AudioRaiseVolume
86 keycode 159 = XF86AudioPlay
87 keycode 151 = XF86AudioStop
88 keycode 164 = XF86AudioPrev
89 keycode 162 = XF86AudioNext
90 keycode 129 = XF86AudioMedia
91 keycode 111 = XF86MyComputer
92 keycode 161 = XF86Calculator
93 keycode 227 = XF86Standby
1 DanielLawson 94
12 IanMcDonald 95 ! [Microsoft] Natural Pro ([PS/2]) .Xmodmap snippet
1 DanielLawson 96
6 AristotlePagaltzis 97 keycode 234 = XF86Back
98 keycode 233 = XF86Forward
99 keycode 232 = XF86Stop
100 keycode 231 = XF86Refresh
101 keycode 229 = XF86Search
102 keycode 230 = XF86Favorites
103 keycode 178 = XF86HomePage
104 keycode 236 = XF86Mail
105 keycode 160 = XF86AudioMute
106 keycode 174 = XF86AudioLowerVolume
107 keycode 176 = XF86AudioRaiseVolume
108 keycode 162 = XF86AudioPlay
109 keycode 164 = XF86AudioStop
110 keycode 144 = XF86AudioPrev
111 keycode 153 = XF86AudioNext
112 keycode 237 = XF86AudioMedia
113 keycode 235 = XF86MyComputer
114 keycode 161 = XF86Calculator
115 keycode 223 = XF86Standby
11 CraigBox 116
117 !!Dvorak keyboard layout
118
119 Courtesy of David !McNab on [NZLUG].
120
121 After much frustration and trial/error, I've finally perfected my Dvorak/XWindows setup.
122
123 I tried two different ways of setting up dvorak:
124
125 1) the ~/.xinitrc command:
126
127 setxkbmap dvorak
128
129 2) the XWindows config line:
130
131 Option "!XkbLayout" "dvorak"
132
133 Both these approaches had the same problems:
134
135 * right-side Alt and Logo keys not being recognised
136 * Ctrl-Alt sequences such as Ctrl-Alt-Delete and Ctrl-Alt-Backspace not working
137 * keyboard shortcuts not working in my window manager (Openbox)
138
139 I tried adding some 'xmodmap keysym' commands to my .xinitrc, but these just got ignored.
140
141 The only solution that has worked for me has been a full xmodmap config file with a couple of nonintuitive tweaks. I've put mine (for standard
142 104-key keyboard) up at http://www.freenet.org.nz/dvorak.xmodmap.
143
12 IanMcDonald 144 I activate this in my [X] config by putting into my .xinitrc the command:
11 CraigBox 145
146 xmodmap /path/to/dvorak.xmodmap
147
148 This is the only scheme I've found that sets up my dvorak keyboard exactly as one would expect.
7 JohnMcPherson 149
150 ----
151 [CategoryXFree86Notes]
The following authors of this page have not agreed to the WlugWikiLicense. As such copyright to all content on this page is retained by the original authors.
  • SamuelFalvo
The following authors of this page have agreed to the WlugWikiLicense.

lib/blame.php:177: Warning: Invalid argument supplied for foreach() (...repeated 2 times)

lib/plugin/WlugLicense.php (In template 'html'):99: Warning: Invalid argument supplied for foreach()

lib/plugin/WlugLicense.php (In template 'html'):111: Notice: Undefined variable: ignore_authors

lib/plugin/WlugLicense.php (In template 'html'):111: Notice: Undefined variable: ignore_authors

lib/plugin/WlugLicense.php (In template 'html'):111: Warning: in_array() [<a href='function.in-array'>function.in-array</a>]: Wrong datatype for second argument

lib/plugin/WlugLicense.php (In template 'html'):111: Notice: Undefined variable: ignore_authors