Tag: linux下的fluxbox桌面配置笔记,老文,不知道现在是否有变动。原始发布于:archlinux下配置fluxbox
初次安装archlinux,并在其上配置了fluxbox环境,这里做一点总结,希望对大家有用,同时发在这里和百度linux、archlinux吧,未经许可,请勿转载。
——by realasking
fluxbox是一个小巧、便捷的窗口管理器,很适合archlinux这种轻量级的linux发行版,配合kde桌面环境提供的高质量程序,可以在最少资源占用的情况下获得最好的运行效果,可谓珠连璧合,这里,结合前几天安装配置archlinux的过程,做一个小结。
对于fluxbox的配置,可以分为三个部分:fluxbox和辅助工具的安装,fluxbox的配置,fluxbox周边辅助程序和运行环境的配置,其中第一部分包括fluxbox、fluxbox的主题、必备工具的安装,第二部分包括壁纸、菜单、主题、热键、启动程序等的设置,第三部分包括桌面效果、图标、音量控制、开关机控制、文件关联等,下面即分这三部分来进行叙述。
fluxbox和辅助工具的安装
这里假定已经将pacman
和yaourt
工具配置好,实现本文操作,至少需要安装以下资源:
主要桌面工具:kde
、fluxbox
、openbox
、idesk
、menumaker
、feh
、xbindkeys
重要扩展:xcompmgr-dana
、conky
、guake
、alsa-utils
、rootactions-servicemenu-kde4
、hddtemp
等
其它:一些字体
安装过程:
#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菜单,这里有好几种程序都能完成工作,其中menumaker
和archlinux-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 fluxbox
或exec 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的识别却是正确的),numid
、iface
和最大可设音量也可用amixer查询,具体用法可查询alsa的手册或我在linux-ren上的博客内容(该内容好像我没有发在百度的空间中)。
锁屏幕
用xscreensaver
,在startup
文件中加入:
/usr/bin/xscreensaver -no-splash &
在菜单或热键中加入对命令xscreensaver-command --lock
的调用就行了,
对于xscreensaver程序具体行为的设置,
执行/usr/bin/xscreensaver-demo
来完成。
这样设置之后,fluxbox应该基本就可以用了,需要网络指示的,可以再启动一个nm-applet
,这篇文章也就应该结束了,今后一两年内,除必要软件外,也不想再折腾软件应用方面的东西了,还是应该做些更有意义的事儿,谨以此文作为纪念。