archlinux下配置fluxbox

Tag: linux下的fluxbox桌面配置笔记,老文,不知道现在是否有变动。原始发布于:archlinux下配置fluxbox 初次安装archlinux,并在其上配置了fluxbox环境,这里做一点总结,希望对大家有用,同时发在这里和百度linux、archlinux吧,未经许可,请勿转载。 ——by realasking fluxbox是一个小巧、便捷的窗口管理器,很适合archlinux这种轻量级的linux发行版,配合kde桌面环境提供的高质量程序,可以在最少资源占用的情况下获得最好的运行效果,可谓珠连璧合,这里,结合前几天安装配置archlinux的过程,做一个小结。 对于fluxbox的配置,可以分为三个部分:fluxbox和辅助工具的安装,fluxbox的配置,fluxbox周边辅助程序和运行环境的配置,其中第一部分包括fluxbox、fluxbox的主题、必备工具的安装,第二部分包括壁纸、菜单、主题、热键、启动程序等的设置,第三部分包括桌面效果、图标、音量控制、开关机控制、文件关联等,下面即分这三部分来进行叙述。

fluxbox和辅助工具的安装

这里假定已经将pacmanyaourt工具配置好,实现本文操作,至少需要安装以下资源: 主要桌面工具:kdefluxboxopenboxideskmenumakerfehxbindkeys 重要扩展:xcompmgr-danaconkyguakealsa-utilsrootactions-servicemenu-kde4hddtemp等 其它:一些字体 安装过程:
#yaourt -S kde fluxbox openbox idesk idesk-extras menumaker feh xcompmgr-dana guake alsa-utils rootactions-servicemenu-kde4 hddtemp
注意: 所有配置文件和安装文件都不用修改,conky待安装完成后自己到sourceforge下载源码编译,需要打开一些编译选项,archlinux提供的编译版本编译的质量太差了,大量选项不可用。 安装xcompmgr-dana而非原版xcompmgr的原因是原版存在很多bug,比如渲染osdlyrics的时候,不能将桌面歌词始终显示在最前面,渲染fcitx输入窗口时也会启动阴影,而且是错误的等。 rootactions-servicemenu-kde4是一个可以在dolphin中以root身份执行一些程序(包括root的dolphin)的dolphin菜单扩展。 刚才写掉了几个:
#yaourt -S xbindkeys archlinux-xdg-menu xscreensaver 
xbindkeys用来设置笔记本功能键,也可以不用,xscreensaver用来配置锁屏幕

fluxbox的配置

现在,编辑/etc/inittab,修改默认运行级为5,并修改登录管理器为kdm,重启计算机后,以普通用户登录,并选择fluxbox,然后注销,以普通用户登录进入failsafe模式进行配置工作。 先生成fluxbox菜单,这里有好几种程序都能完成工作,其中menumakerarchlinux-xdg-menu是我比较喜欢的,以前在Fedora下也用它们,前者可以生成分类很好的菜单,只是都是英文的,后者可以生成中文菜单,不过只是应用程序的菜单,可以将两者的菜单进行结合,或编辑第二个的菜单来扩展一些内容。另外还有一个fluxbox自带的工具fluxbox-generate_menu可以生成有图标的菜单,不过在我从来没成功用过,报一些函数过时之类的错误。

menumaker生成菜单

$mmaker -v Fluxbox
即可在~/.fluxbox下生成menus文件,是fluxbox的菜单,还包括设置、退出等操作.

archlinux-xdg-menu生成菜单

$xdg_menu --fullmenu --format fluxbox --language zh_CN.UTF-8>~/.fluxbox/menu
如果加了--root-menu选项并指明位置,也可以生成完整的fluxbox菜单。

设置壁纸

进入一次fluxbox之后,在终端执行
$fbsetbg 文件名
编辑~/.fluxbox/startup文件,加入fbsetbg -f 文件名 该项应该存在在conky启动语句之后,xcompmgr启动语句之前,且要注意第一次配置时,同文件夹里的lastwallpaer里应该为空或为只包括正确的壁纸文件的那一句,不然就应将多余的内容删除。然后进入fluxbox,从菜单中选择一种style,并修改/usr/share/fluxbox/styles下对应主题中的字体设置,务必设置为系统中可用的一种中文字体,所有字体选项都要修改。

再设置热键

先用xev识别键名
在fluxbox的终端(如konsole)中执行xev,然后按键,查看键名,比如我按Fn+F3就显示:
KeyRelease event, serial 34, synthetic NO, window 0x3a00001, root 0x15d, subw 0x0, time 8900953, (303,-203), 
root:(304,358), state 0x0, keycode 223 (keysym 0x1008ff19, XF86Mail), same_screen YES, XKeysymToKeycode 
returns keycode: 163 XLookupString gives 0 bytes: XFilterEvent returns: False
其中XF86Mail就是键名,如果按空格,则键名是space
再设置Fn+功能键
这个大部分由内核直接接管,但是有部分能够识别键名,却没有功能的,比如我这里的电邮键和媒体键,以媒体键为例,编辑~/.xbindkeysrc,输入:
"/usr/bin/osdlyrics"
XF86Launch1
再在~/.fluxbox/startup文件的fluxbox执行语句(exec fluxboxexec ck-launch-sessionfluxbox,推荐后一种写法)之前输入:
xbindkeys&
加&是因为要让这些程序后台运行,不然在这些程序结束之前,fluxbox就不会自动启动,用xbindkeys设置这些键的原因是也可以用在其它窗口管理环境中而不必修改,不用xbindkeys设置所有快捷键的原因是发现有的快捷键设置在archlinux中会失效,而又确实没有定义过。 然后再在~/.fluxbox/keys中定义热键,按照已有的格式写就是了,只要注意不要再在这里面定义xbindkeys已经定义过的热键,以及用Mod1表示alt和用Mod4表示meta就行了,比如:
Mod4 M :exec konsole -e mutt
表示Meta+M就调用konsole来执行mutt邮件管理程序。

fluxbox桌面图标设置

最好使用idesk,先在~/下建立.ideskrc文件和.idesktop文件夹,.ideskrc文件的内容和格式可以参考/usr/share/idesk/dot.ideskrc文件,快捷方式文件以.lnk结尾,放在.idesktop文件夹里,格式可以参考/usr/share/idesk/default.lnk,在/usr/share/idesk/icons下有一些常用程序的图标可供使用。 将需要的lnk文件都建立后,建议执行:
$chmod 400 ~/.idesktop/*
然后修改~/.ideskrc文件,修改Background.File: ,其后添加为桌面壁纸的路径和文件名,以及Locked: true。 如果后面将使用xcompmgr-dana设置阴影效果,可以将文件中的Shadow:设置为false。 fluxbox的开机启动程序的设置在~/.fluxbox/startup中进行,大多数守护进程程序都需要后台执行,因此其后需要加&符,另外各启动程序间往往有先后顺序,因此可以在一行中这样用:
sleep 秒数;程序&
这样就先等待这么多秒,然后再执行程序。 另外,也可以执行export 环境变量=变量值;程序&来设定以某环境变量执行程序。

桌面相关设置

实现开关机和休眠

以root用户执行:
#visudo 
添加以下内容:
你的用户名 ALL(root) = ALL
%wheel ALL(ALL) = ALL
你的用户名 ALL(root) = /sbin/poweroff, /sbin/reboot, /usr/sbin/pm-suspend, /usr/sbin/pm-hibernate
然后保存,再以普通用户修改菜单文件menu,加上:
[submenu] (关机)
[exec] (重启计算机) {sudo /sbin/reboot}
[exec] (关机) {sudo /sbin/poweroff}
[exec] (挂起) {sudo /usr/sbin/pm-suspend}
[exec] (休眠) {sudo /usr/sbin/pm-hibernate}
[end]
这里也可以在启动过程中加载kde的守护进程,然后用kshutdown来管理开关机,不过我不知道kde4.7中应该加载的进程名和参数,没去查。 关于休眠,如果发生休眠后不能唤醒,应该根据archlinux的wiki去实现用户态的休眠,因为用户态的休眠不涉及Acpi,如果自己机器的acpi功能不能被内核完美支持,或者主板或显卡Bios中本身对acpi支持就存在缺陷,选择用户态的实现,也不会因此影响休眠。另外,如果要实现休眠和挂起,最好将acpid进程加入到rc.conf的开机启动进程中。

修改文件关联

以root用户编辑/usr/bin/xdg-open,将以下内容:
if [ x"$DE" = x"" ]; then
DE=generic
fi
中的generic改为kde,然后保存

桌面监控

conky,记得在桌面壁纸设置前加载,并且要如下设置:
own_window_type desktop
own_window_transparent yes 
argb不要打开。

桌面效果

xcompmgr-dana,在~/.fluxbox/startup中加入:
sleep 5;xcompmgr -Ss -n -Cc &
这一项要在桌面壁纸设置之后、fcitx启动之前完成加载,意思是启动服务器和客户端的透明和模糊特效,但不对dock属性等的窗口加阴影,但是这样设置之后仍然不能让终端等窗口实现真透明的,要实现真透明,还需要加-f参数,实现fading(但我这里没开,因为xcompmgr无法实现blur特效,开终端真透明会影响操作)。

音量控制

kmix,需要在startup中的xmodmap语句的下一句就加上pkill -9 kmix&,然后再加上amixer cset语句和kmix语句启动它,例如:
pkill -9 kmix&
amixer cset numid=1,iface=MIXER 60&
amixer cset numid=14,iface=MIXER 59& 
sleep 6;kmix&
amixer用来设置对应通道的音量,用来临时解决archlinux没有一个完善的声卡启动脚本导致部分机器有的通道音量默认为0的问题(比如外响不响,但是声卡的model的识别却是正确的),numidiface和最大可设音量也可用amixer查询,具体用法可查询alsa的手册或我在linux-ren上的博客内容(该内容好像我没有发在百度的空间中)。

锁屏幕

xscreensaver,在startup文件中加入:
/usr/bin/xscreensaver -no-splash &
在菜单或热键中加入对命令xscreensaver-command --lock的调用就行了, 对于xscreensaver程序具体行为的设置, 执行/usr/bin/xscreensaver-demo来完成。 这样设置之后,fluxbox应该基本就可以用了,需要网络指示的,可以再启动一个nm-applet,这篇文章也就应该结束了,今后一两年内,除必要软件外,也不想再折腾软件应用方面的东西了,还是应该做些更有意义的事儿,谨以此文作为纪念。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

÷ four = one