LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: conwood

fvwm: 从入门到提高

[复制链接]
 楼主| 发表于 2005-9-2 08:37:24 | 显示全部楼层
这个问题我也没有解决,我使用的是折中的方案:让 torsmo 认为我用的是英文环境,用英文显示一切,在合适的地方写:
exec env LC_ALL=C torsmo
Post by nifi
我在torsmo中试了好几种字体,都无法正确显示中文,全是方块
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-9-2 08:57:22 | 显示全部楼层
多媒体键盘的使用

如果键盘是多媒体键盘,有音量控制、打开浏览器等功能键,在 fvwm 里面(其他的 wm 应该也可以用类似的方法)也可以使用他们。

有两套方案可以选择:
1. 用 xmodmap 定义这些按键
2. 使用 hotkeys 之类的程序

第一个方案需要的程序有:

  1. xev
  2. xmodmap
复制代码


打开一个 rxvt/xterm/konsole/gnome-terminal ,或者你喜欢的 X 下的终端,在里面运行 xev ,然后会打开一个窗口,把鼠标移进去,停住鼠标后,按 a 键(按下后立即松开),会发现类似的信息:

  1. KeyPress event, serial 32, synthetic NO, window 0xa00001,
  2. root 0x8e, subw 0x0, time 1418934, (77,117), root:(674,531),
  3. state 0x0, keycode 38 (keysym 0x61, a), same_screen YES,
  4. XLookupString gives 1 bytes: (61) "a"
  5. XmbLookupString gives 1 bytes: (61) "a"
  6. XFilterEvent returns: False

  7. KeyRelease event, serial 32, synthetic NO, window 0xa00001,
  8. root 0x8e, subw 0x0, time 1419038, (77,117), root:(674,531),
  9. state 0x0, keycode 38 (keysym 0x61, a), same_screen YES,
  10. XLookupString gives 1 bytes: (61) "a"
复制代码


从这里可以看出 a 的 keycode 是 38 ,键盘告诉电脑的事情是 38 号键被按下了,电脑里的程序把它转化成 a 。通过类似的方式,就可以获得多媒体键盘中那些特殊键的 keycode 。

在 X 启动脚本(如 ~/.xsession 或者 /etc/X11/Xsession.d/ 下的某个脚本里面)加入类似这样的语句:

  1. xmodmap -e 'keycode 174 = Svolumedown'
  2. xmodmap -e 'keycode 176 = Svolumeup'
复制代码


在 /usr/X11R6/lib/X11/XKeysymDB 让 X 知道这些键的作用:

  1. Svolumedown         :1100000D
  2. Svolumeup         :1100000E
复制代码


在 .fvwm2rc 里把按键映射到程序动作上:

  1. Key Svolumedown         A         A         Exec exec amixer set PCM 2%-
  2. Key Svolumeup         A         A         Exec exec amixer set PCM 2%+
复制代码


两篇参考文章:

http://linux.oneandoneis2.org/keys.htm
http://learn.tsinghua.edu.cn/hom ... /GNU/fvwm.html#sec9

我机器上的多媒体键盘退休了,当时我用的是 hotkeys ,因此没办法尝试上述方法,欢迎大家试过之后指出其中错误。
回复 支持 反对

使用道具 举报

发表于 2005-9-2 10:00:12 | 显示全部楼层
回复12楼:
关于多媒体键的映射的键名称,用户不一定要自己设定键名,然后再修改/usr/lib/X11/XKeysymDB文件
大多数多媒体按键名称在/usr/lib/X11/XKeysymDB文件中已经定义过了
例如,其中有

  1. XF86AudioLowerVolume        :1008FF11
  2. XF86AudioMute                :1008FF12
  3. XF86AudioRaiseVolume        :1008FF13
  4. XF86AudioPlay                :1008FF14
  5. XF86AudioStop                :1008FF15
  6. XF86AudioPrev                :1008FF16
  7. XF86AudioNext                :1008FF17
复制代码

所以
xmodmap -e 'keycode 174 = Svolumedown'
xmodmap -e 'keycode 176 = Svolumeup'
应该为
xmodmap -e 'keycode 174 = XF86AudioLowerVolume'
xmodmap -e 'keycode 176 = XF86AudioRaiseVolume'
回复 支持 反对

使用道具 举报

发表于 2005-9-3 19:54:40 | 显示全部楼层
我启动xev后按左Ctrl旁边的蓝色Fn键却没有反应,其他的都可以。
在/usr/lib/X11/XKeysymDB中怎么知道这个蓝色键是哪个呀?
回复 支持 反对

使用道具 举报

发表于 2005-9-4 01:30:25 | 显示全部楼层
thanks a lot
回复 支持 反对

使用道具 举报

发表于 2005-9-4 13:58:34 | 显示全部楼层
不错不错,我把我的窗口样式换成crystal中的了。;)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-9-4 23:02:12 | 显示全部楼层
Fn 是笔记本上的按键吧,没用过笔记本,我也不知道该怎么处理它
在 Google 上搜索了一下,貌似需要安装驱动的样子
Post by nifi
我启动xev后按左Ctrl旁边的蓝色Fn键却没有反应,其他的都可以。
在/usr/lib/X11/XKeysymDB中怎么知道这个蓝色键是哪个呀?
回复 支持 反对

使用道具 举报

发表于 2005-9-5 09:40:04 | 显示全部楼层
好!!!!
这下我们这些FVWM的fans就有福了,努力学习中…………
回复 支持 反对

使用道具 举报

发表于 2005-9-5 10:06:20 | 显示全部楼层
推荐一个好贴: FVWM相关参考资料
http://www.linuxsir.cn/forum.php?mod=viewthread&tid=141751
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-9-9 10:24:07 | 显示全部楼层
介绍一些零散技巧

运行对话框:
可以用 grun 实现,选择你喜欢的方式安装。
把 grun 帮定到 win+r 上:
  1. Key R A 4 Exec exec grun
复制代码


win+z呼出 LumaQQ
  1. Key Z A 4 All ("______*", !Focused) showqq
  2. #下划线处添你的 QQ 号码
  3. AddtoFunc showqq
  4. + I MoveToPage
  5. + I Iconify off
  6. + I Raise
  7. + I Focus
  8. + I WarpToWindow 50 2
复制代码


方便的创建菜单
可以用 menu 包来实现,下次再说 menu 吧
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表