免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3603 | 回复: 3
打印 上一主题 下一主题

[桌面系统] Advanced Tips of Fluxbox Keys [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-12-10 10:04 |只看该作者 |倒序浏览
默认各位看官已知Fluxbox下基本的keys配置。



1、备份keys文件:
        
代码:
$cp ~/.fluxbox/keys ~/.fluxbox/keys.bak

2、keys文件书写格式
        
代码:
<mod> [<mod> <mod>] key [key key] :command <command_options>

注:冒号前至少留一格,后不留格;shell命令大小写敏感,但窗口管理命令并不敏感。
mod可以是Mod1(alt)、Control(ctrl)、Mod4(Super)等;key即为普通键(e,d,F1,F3等)。
其中,mod键自身是可选的,没有时用None替代,不用也可。但只用普通字母键,输入文字时会有麻烦。

先看一些例子:
        
代码:
Mod1 r :ExecCommand urxvt   # alt+r启动rxvt-unicode;ExecCommand同Exec,执行命令或脚本
Mod4 4 :Workspace 4    # Super+4切换到工作区4;工作区命令
Menu :RootMenu   # Menu键位于右ctrl左边;Fluxbox内建命令
Mod1 F4 :KillWindow   # Alt+F4关闭当前进程;窗口管理命令
Mod1 70 :KillWindow   # 同上,70是F4的keycode,由xev程序获得,见第3小节
Control m :MacroCmd {Exec firefox} {ResizeTo 800 600}   # ctrl+m启动firefox,并调整大小到800x600;复合命令

窗口管理命令详见这部分
Fluxbox内建命令详见这部分
工作区命令详见这部分
复合命令详见这部分

3、获得keycode,并适当定义xmodmap
i)xev命令
注意两点:
1)终端运行xev时,鼠标的运行也会被捕获,所以尽量少动鼠标,除非想获得鼠标键的keycode
2)关闭启动时的窗口即关闭了xev进程
3)keycode与keyname在Fluxbox keys文件中同样有效;例如运行xev,按tab键,信息中有一段"keycode 23 (keysym 0xff09, Tab)",23与Tab等价

推荐使用xmodmap获得keycode。例如要获得Tab的keycode,执行:
        
代码:
$xmodmap -pke | grep -i tab


ii)定义xmodmap
这个通常在需要分清左右非字符键时用到。
        
代码:
$touch ~/.Xmodmap

简单的示例:
        
代码:
keycode 115 = Super_L
keycode 116 = Super_R
clear mod3
add Mod3 = Super_L
clear mod4
add Mod4 = Super_R

要让配置在启动Fluxbox时生效,加入命令到startup脚本:xmodmap ~/.Xmodmap &,须在Fluxbox启动命令之前。
这样,在keys文件中,Mod3和Mod4就分别自定义到左Super和右Super键了;本人一般用Super_L+d执行ShowDesktop,用Super_R+l执行xlock(安装xlockmore)锁定桌面。

4、一些复杂点的应用
i)键盘控制音量
很多键盘上(e.g.笔记本,但本人没有笔记本,不好测试,keycode/keyname获得见第3小节)有音量加减及静音的键,如果Fluxbox(无gnome/kde daemon)默认未定义,可于keys文件中仿照下面语句加入:
        
代码:
Mod3 KP_Add :ExecCommand amixer sset PCM 10%+
Mod3 KP_Subtract :ExecCommand amixer sset PCM 10%-

Mod3已定义为Super_L,KP_*可由"$xmodmap -pke | grep -i kp"查到;sset或改为set,PCM或改为Master,0,10%+或改为8db+,视硬件和个人要求而定;更复杂的请查看amixer命令(在alsa-utils包中)的帮助文档。

ii)小程序开关
有时只是查看一下信息,运行一个小程序(例如conky),但又不想让它一直运行,就可使用复合命令ToggleCmd,写入keys文件:
        
代码:
Mod3 v :ToggleCmd {Exec conky} {Exec pkill conky}

ToggleCmd的作用和Toggle的意思一样,按键一次,切换一次定义的命令。
ToggleCmd的另一个应用就是桌面聚焦和窗口恢复,语句:
        
代码:
Mod3 d :ToggleCmd {ShowDesktop} {DeIconify all originquiet}


iii)发送窗口到指定工作区,并最小化
这个有时会用到,MacroCmd可以实现;例如发送到工作区3,语句:
        
代码:
Mod4 F3 :MacroCmd {SendToWorkspace 3} {Iconify}


iv)设定窗口装饰alpha值
设定当前窗口的透明度(窗体透明实现,本文不涉及),记得compiz中用alt+鼠标滚轮(?),Fluxbox也可实现。语句:
        
代码:
Mod1 Mouse4 :SetAlpha +5 +5
Mod1 Mouse5 :SetAlpha -5 -5
Mod1 KP_Multiply :ToggleDecor

其中,Mouse4/5由xev程序查看到,分别是鼠标上/下滚;alt+*(小键盘)用于开关窗口标题栏。

v)截图/窗口截图
并不复杂,scrot(import也行,个人决定)语句(~/incoming自己建,或者改成别的目录):
        
代码:
Print :Exec scrot ~/incoming/scrot@$(date +%F_%T).png

选择/窗口截图:
        
代码:
Mod1Print :Exec zenity --info --title="Scrot Message" --text="select a window/rectangle to snapshot" && scrot -s~/incoming/scrot@$(date +%F_%T).png


vi)自定义菜单
Fluxbox1.0rc3之后的版本中提供了自定义菜单的功能($mkdir ~/.fluxbox/customMenus),最合适不过的就是使用键绑定来调用菜单了吧。例如mpd的菜单组合键:
        
代码:
Mod3 b :CustomMenu ~/.fluxbox/customMenus/mpd

使用mpd的,可以自己写个menu,简单示例如下:
        
代码:
[begin] (MPD)
   [exec] (Reload Config File) {killall mpd; mpd ~/.mpdconf} <>
   [exec] (Update Database) {mpd --creat-db; mpc update && mpc ls | mpc add -} <>
   [exec] (Play/Pause) {mpc toggle} <>
   [exec] (Next) {mpc next} <>
   [exec] (Stop) {mpc stop} <>
   [submenu] (Repeat)
      [exec] (On) {mpc repeat on} <>
      [exec] (Off) {mpc repeat off} <>
   [end]
   [exec] (Quit) {mpc stop && killall mpd} <>
[end]

最后再强调一句,有了MacroCmd/ToggleCmd以及customMenus,Fluxbox的强大可见一斑。

[ 本帖最后由 helo_aBiNg 于 2007-12-18 21:10 编辑 ]

conky.png (207.6 KB, 下载次数: 28)

conky.png

论坛徽章:
0
2 [报告]
发表于 2007-12-10 10:19 |只看该作者
原创?

论坛徽章:
0
3 [报告]
发表于 2007-12-10 10:46 |只看该作者

回复 #2 sakulagi 的帖子

是的。

论坛徽章:
0
4 [报告]
发表于 2008-05-20 10:17 |只看该作者

你好

http://www.bjjfh.cn
自动门-北京自动门-自动门优质服务商。
设备安装http://www.atboss.com
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP