FreeBSD下鼠标的滚轮、左手鼠标等问题的解决(ZT)

发表于:2007-06-09来源:作者:点击数: 标签:
大家反应FreeBSD下的鼠标问题好像不少,这篇文章应该很好的解决了,转过来,希望对大家有用。 原文链接:http://bao3.pdx.cn/blog/diary,334500.html FreeBSD下的鼠标有两个层次,一是控制台的鼠标。另一个是X下的鼠标。这两个层次有不相同又有一定的联系。

大家反应FreeBSD下的鼠标问题好像不少,这篇文章应该很好的解决了,转过来,希望对大家有用。
原文链接:http://bao3.pdx.cn/blog/diary,334500.html

FreeBSD下的鼠标有两个层次,一是控制台的鼠标。另一个是X下的鼠标。这两个层次有不相同 又有一定的联系。比如我可以只设置X下的鼠标,而不设置控制台的鼠标。甚至可以接两个鼠 标,比如在控制台使用unix的三键鼠标。而在X下用一个带滚轮的光电鼠标。下面用一个例子来说明。即:一台机器上接了一个ps/2鼠标,设备名为psm0。 

一、开始之前的工作 
先到/dev下看一看有没有psm0这个设备。如果有的话,说明系统已经探测到了这个设备,并且 已经知道了用什么驱动程序来驱动。这是一切设置的基础。 

二、设置控制台鼠标 
所谓的控制台鼠标,也就是在控制台下就可以用的鼠标。控制台鼠标是用moused来控制的。我 们设置控制台鼠标说白了,也就是设置这个守护进程。当然可以运行moused,加一些参数实现 一些特定的功能。但是更为普遍的是在系统的时候就运行moused。在我的rc.conf中有以下几行: 

[color=red:67d0c87030]moused_enable="YES" [/color:67d0c87030]
//启动时运行moused 
[color=red:67d0c87030]moused_flags="-3 -m 1=3 -m 3=1" [/color:67d0c87030]
//moused运行时的参数。这里的参数表示:[color=red:67d0c87030]-3 用同时按下左右两键来模拟按下中键。-m 1=3 把左键映射为右键,-m 3=1 同时把右键映射为左键,也就是左右键互换[/color:67d0c87030](因为我是左手用鼠标的)。 
[color=red:67d0c87030]moused_port="/dev/psm0" [/color:67d0c87030]
//指定实际应用的设备。如果接了两个鼠标,就可以在这里指定哪一个。 
[color=red:67d0c87030]moused_type="auto" [/color:67d0c87030]
//指定鼠标使用的协议,一般用auto就可以了。详细的情况请man moused 


关于设置的几个需要注意的地方: 

1、我看了moused的man,没有看到说moused有一个配置文件。所以好像只能使用命令行参数来 设置。 

2、moused_flags实际上指定的就是moused的命令行参数。在命令行可以用什么,这里也可以指定什么。详细情况可以看moused的man页。功能还是比较强大的,比如:左手鼠标、滚轮、 鼠标的速度等等都可以通过参数来设定。当然使用什么设备的参数-p就不要用了,因为moused_port就是用来干这个的。 
3、即使moused运行了,在控制台中用不用鼠标还可以通过vidcontrol -m on|off来控制。 

4、系统中鼠标的键是用数字来标识的。一般而言,二键鼠标左键是1右键是2;三键鼠标左1中2右3;普通带滚轮的左1中2右3向上4向下5。如果你有一个特别多键的鼠标不知道都怎么标识 
的,建议也设置最基本的。进入X后有一个叫xev的程序可以用来探测鼠标的值。方法是:把鼠标移到xev的小窗口中,然后一个键一个键地按,看每个键的编号是几。滚轮一般是两个键, 
即向上是一个键,向下是一个键。 

5、通过这样的设置后,对于系统而言它看到的鼠标不是psm0,而是一个经过moused配制后或者说鼠标的信号经过moused过滤后的虚拟设备sysmouse。这相当于在在真正的设备和系统中间 加一个中间层。不要小看这种方式。这种方式有非常多的好处,真是一项伟大的发明。通过抽 像出一个虚拟的设备,那么别的软件就可以通过软件设置方式改变设备的工作方式,比如要把 左右键互换,就不需要真的把鼠标折开,把线换一下。而只需要软件设置一下就可以了。这种 方式的好处绝不止这一点,这里只是举个例子而已。再比如说大名顶顶的java,本质上面言, java的框架是在系统和用户间增加了一个中间层,也就是所谓的java虚拟机。这样用户面对的 就是一个统一的虚拟机界面,从而实现所谓一处编写到处运行的特性。其实,java框架只是把 处理不同系统间差异的任务转移到了开发虚拟机的人员那儿去了。说了那么多,有点跑题了, 回到正题。所以,moused运行后应该在/dev/下看到sysmouse这个设备了。 

6、可以看见鼠标后用法是,左键是copy,中键是paste。右键表示copy从刚才左键按的地方一 直到右键按的地方的所有内容。 
[color=red:67d0c87030]7、设置滚轮可以在moused_flags中添加"-z 4"来实现。也就是说moused_flags变成: moused_flags="-3 -m 1-3 -m 3=1 -z 4" [/color:67d0c87030]
三、设置X下的鼠标 
如果你启动了moused,对于X来说它就至少有了两种选择。也就是说在它看来,这个系统至少 有两个鼠标了。一个是真实的鼠标/dev/psm0,另一个是moused虚拟出来的/dev/sysmouse。设 置使用哪一个鼠标在/etc/X11/xorg.conf文件中(假设使用的是xorg)的InputDevice这一节 中,来看看我的设置。 
Section "InputDevice" 
Identifier "Mouse1" 
Driver "mouse" 
Option "Protocol" "Auto" 
//使用什么协议 
Option "Device" "/dev/sysmouse" 
//使用什么设备 
#Option "Buttons" "5" 
//这行已经注释掉了。表示这个鼠标有5个键 
[color=red:67d0c87030]#Option "ZAxisMapping" "4 5" [/color:67d0c87030]
//这行也已经注释掉了。表示滚轮用的是4键(向上)和5键(向下) 
EndSection 

关于设置的说明: 

1、如果选择使用的是/dev/sysmouse,那么moused对于这个设备的设置在X下都是有用的。如果选择使用/dev/psm0,那么刚才设置的左手鼠标在X在是不启作用的。可以在.xinitrc文件中 使用xmodmap来设置。鼠标的速度可以通过xset m来设置。而滚轮可以通过在xorg.conf中添加以上这一行来设置: [color=red:67d0c87030]Option "ZAxisMapping" "4 5" [/color:67d0c87030]
上面的"4 5"要根据你的实际情况作更改。 

附:个人感想 

1、如果像我这样用左手鼠标的,不要买带滚轮的了。因为左手用鼠标,右手按pagedown,比滚轮方便多了。(今天下午花了65块大洋买了一个光电带大U轮的鼠标试用后才知道。后悔啊 
,谁要送给他好了。) 

2、在X中,最好使用/dev/sysmouse这个设备。因为这样的话不管是在控制台还是在X下,鼠标的设置都是一样的。 

3、不要买三键的鼠标,除非你已经非常习惯了。用同时按左右键的方法来模拟中键比直接按中键方便多了。因为,一般人用鼠标都是食指在左右键上,而中指在右键上。如果有个中键如 
果用食指来按,那么食指就会一会儿在左键上一会儿在中键上,把自己都弄晕。如果用三个手指的话,好像一般人的无名指都不是那么灵活。而用同时按左右键的方法,手指不用离开各自 
的地盘。 
4、firefox安装一个tab clicking options的插件后,实在是太好用了。同时按两键,在后台打开一个当前链接的tab,双击一个tab标签是关闭。中键击一个tab标签是,开一个新tab,打开相同的内容。 

5、用左手鼠标好处多多。锻练左手,可以在右肩疼的时候改成左手。比如在单位和右手,在家 用左手,这样两只手分担工作,不会得病。还可以锻练右脑,人家说左脑控制右手,而右脑 
控制左手。还有一个好处就是因为你用左手,与人不同,别人一般不会来跟你抢机器用。最后 是,关键的时候右手没了也不怕,还有左手嘛。

 linuxbao3 回复于:2005-08-12 08:42:36
啊??哈哈,从我的博客转过来的??嘿嘿

 剑心通明 回复于:2005-08-12 08:52:44
呵呵,不好意思http://bbs.chinaunix.net/forum/viewtopic.php?show_type=&p=3949937#3949937

 hugeboyth 回复于:2005-08-17 08:52:46
你在哪里啊?把鼠标拿来.我不会客气的.哈哈哈

 零二年的夏天 回复于:2005-08-17 15:07:15
[quote:d37328212e]
一、开始之前的工作
先到/dev下看一看有没有psm0这个设备。如果有的话,说明系统已经探测到了这个设备,并且 已经知道了用什么驱动程序来驱动。这是一切设置的基础。 [/quote:d37328212e]

如果没有这个设备怎么办?

 linuxbao3 回复于:2005-08-18 15:26:00
楼上的,请问你用是什么系统?版本?
你第一件要做的就是:
[code:1:eea616c86f] 
ee /etc/rc.conf
加入:
moused_enable="YES"
[/code:1:eea616c86f]
一般,5.0以后采用了devfs,不你有管的.
首先如果真的没有psm0,那就说明你的电脑没有识别,当然如果你用的是5.0以前的系统,你可以尝试下:
[code:1:eea616c86f]
cd /dev
sh MAKEDEV psm0
[/code:1:eea616c86f]
然后看你的鼠标能不能用。

原文转自:http://www.ltesting.net