红联Linux门户
Linux帮助

[原创]5分钟openbox指南

发布时间:2011-07-07 22:11:55来源:红联作者:age
[i=s] 本帖最后由 age 于 2011-7-20 21:01 编辑 [/i]

如果你厌倦了gnome,kde这样的复杂桌面环境, 可以尝试下openbox这个轻量级的DE.
最大的优点就是占用资源少, 运行效率高.

安装所需软件
openbox: 最基本桌面环境, 必须的
slim : 轻量级图形登录管理器, 可以替代gdm/kdm
tint2 : 提供下面板
wbar : 提供一个dock
feh : 设置壁纸
obconf : openbox的图形化设置工具
obmenu : openbox的图形化菜单编辑工具
tint2conf: tint2的图形化设置工具
wbarconf: wbar的图形化设置工具
lxappearance: lxde的外观设置工具, 可同样用于openbox, 设置主题, 窗口字体等.
pcmanfm: 文件管理工具
obmixer: 托盘区音量图标
nm-applet: 网络连接管理器
scrot : 截屏工具

除openbox是必须的外, 其它软件均有替代品. 可以在熟悉之后自由更换.

1. 安装openbox相关软件
各大发行版源中应该都有, 这里以archlinux为例[code]pacman -S openbox slim tint2 wbar feh obconf obmenu lxappearance pcmanfm scrot
#以下需要从aur安装, 可以用yaourt
wbarconf obmixer
[/code]2. 修改/etc/inittab
在最下方的引导工具中, 注释掉gdm/kdm语句, 并取消slim语句注释
改完如下所示[code]#x:5:respawn:/usr/sbin/gdm -nodaemon
#x:5:respawn:/usr/bin/kdm -nodaemon
x:5:respawn:/usr/bin/slim >/dev/null 2>&1[/code]3. 修改~/.xinitrc, 加入这一句[code]exec openbox-session[/code]以便开机启动openbox进程

注: 在同一台机上, gdm/kdm/openbox环境是可以并存的. 由引导器决定到底启动哪个DE.
2,3二步的目的就是在保留gnome/kde环境的前提下, 引导openbox.
同理, 如果你又想切回gnome/kde环境又该怎么做呢?
很简单, 只要把2,3二步反向操作下就可以了, 即注释掉slim和openbox-session二句,
并取消gdm/kdm的注释即可. 这也是为什么推荐用slim的原因, 和原有的环境保持分离.

4. 创建~/.config/openbox/autostart.sh
openbox启动时, 默认会执行这个脚本, 所以可以把要启动的程序都写在这里
注意, 安装时不会自动创建这个文件, 需要自己手动创建
内容如下[code]nm-applet&
tint2&
(sleep 2 && wbar)&
ibus-daemon -rxd&
(sleep 2 && obmixer)&
feh --bg-scale picture.jpg[/code]wbar, obmixer都要先等几秒再启动, 否则可能会有意想不到的错误. 个人经验,
也许你不用等待也会一切正常, 自行选择吧.

4. 重启电脑, 以便加载openbox环境

5. 输入帐号密码后, 你就可以看到openbox环境了, 是不是太简洁了?
没关系, 现在可以使用各个图形化设置工具了
openbox的配置文件主要有二个,
分别是~/.config/openbox/rc.xml和~/.config/openbox/menu.xml
前者可以由obconf更改, 后者可由obmenu更改
注意: obconf不能自定义rc.xml中的快捷键部分, 这里需要自行添加
obconf: 虽然可改项很多, 但实际上并没有多少要改的,默认即可
obmenu: 在桌面右键时, 会弹出一个菜单. obmenu就是自定义这个菜单的
lxappearance: 相对来说, 这个可能更适合大多数用户, 选择窗口主题, 鼠标主题等等.
tint2conf: 自定义tint2面板
wbar-conf: 自定义wbar

6. 附几个配置
a. rc.xml中的"显示桌面"快捷键设置, 这里用的windows+d[code]

[/code]b. rc.xml中的"截屏"快捷键,
截取当前窗口, ctrl+Print Screen[code]

scrot -s "/home/allblue/pictures/scrot/cut-%m.%d-%H%M%S.png"

[/code]截取鼠标选定区域, ctrl+alt+Print Screen[code]

scrot -bs "/home/allblue/pictures/scrot/app-%m.%d-%H%M%S.png"

[/code]全屏载取, Print Screen[code]

scrot "/home/allblue/pictures/scrot/screen-%m.%d-%H%M%S.png"

[/code]c. rc.xml多媒体快捷键设置
音量放大[code]

amixer set Master 5%+ unmute

[/code]音量缩小[code]

amixer set Master 5%- unmute

[/code]静音[code]

amixer set Master toggle

[/code]打开主页[code]

firefox

[/code]打开邮件客户端[code]

thunderbird

[/code]多媒体快捷键配的难点主要在于确定该键位的表示名称, 大多数名称都是通用的.
XF86AudioPlay 多媒体播放
XF86AudioPause 多媒体暂停
XF86AudioMute 静音
XF86AudioRaiseVolume 增大音量
XF86AudioLowerVolume 降低音量
XF86HomePage 浏览器打开主页
XF86Mail 邮件
XF86Sleep 休眠
XF86Calculator 计算器

d. 一个随机壁纸脚本, 有bash和python二种写法. 可以任选一个放到crontab里, 实现壁纸定时更换
bash写法[code]#!/bin/bash
#set -x
dir_wallpaper="/home/allblue/pictures/wallpapers"
cd "$dir_wallpaper"

#du比ls更适合列出子文件路径, 只要删出行首的大小与空格, 就可得到子文件的完整相对路径.
pic=$(du -a . | sed -r 's/^[0-9]+//' | sed -r 's/^[ \t]+//g' | sed -n -r '/png|jpg|jpeg/Ip' | shuf | head -1)
echo ""
date
echo "$pic"
if [ -f "$pic" ]; then
#crontab运行时,需指定DISPLAY变量
DISPLAY=:0 feh --bg-center "$pic" &
killall wbar
#wbar默认会以英文环境启动, 需指定LANG变量
env LANG=zh_CN.UTF-8 DISPLAY=:0 wbar --pos top-left --isize 35 --zoomf 1.8 --jumpf 1 --bpress &??
fi[/code]python写法[code]#!/usr/bin/python
#encoding=utf-8
import os
import random

def filepath(v,fdir):
h=os.path.abspath(fdir)
if os.path.isdir(h):
for subdir in os.listdir(h):
filepath(v,os.path.join(h,subdir))
else:
v.append(h)
#print(h)
????????
if __name__ == "__main__":
sdir="/home/allblue/pictures/wallpapers"
u=[]
filepath(u,sdir)
item=""
item=random.choice(u)
#print(item)
if item.split(".")[-1].lower() == "jpeg" or item.split(".")[-1].lower() == "jpg" or item.split(".")[-1].lower() == "png" :
item = '"'+item+'"'
cmd="DISPLAY=:0 feh --bg-center "+item+" &"
os.system(cmd)
os.system("killall wbar")
os.system("env LANG=zh_CN.UTF-8 DISPLAY=:0 wbar --pos top-left --isize 35 --zoomf 1.8 --jumpf 1 --bpress & ")[/code]最后附一张截图吧
[attach]35170[/attach]
文章评论

共有 24 条评论

  1. lixiaodong0302 于 2014-03-09 21:42:22发表:

    支持

  2. nwgatx 于 2014-03-07 17:33:55发表:

    mark
    thanks for sharing

  3. gky2009514 于 2012-12-07 13:15:29发表:

    新手完成任务,求下书籍~

  4. linux郝鑫 于 2012-10-11 17:15:06发表:

    为什么,想下载没有现金啊!!!

  5. wendyyue 于 2012-09-20 22:52:27发表:

    新手学习中

  6. hlaker 于 2011-11-12 01:10:06发表:

    这个真不会 只有顶了。

  7. shu2597758 于 2011-09-22 14:16:14发表:

    辛苦了~谢谢分享

  8. vip_moma 于 2011-09-13 10:40:57发表:

    顶

  9. a415282201 于 2011-08-11 10:12:02发表:

    新手,过路学习

  10. gogo11 于 2011-07-31 08:42:21发表:

    我下次试试这个管理器!

  11. dj15621 于 2011-07-30 23:00:45发表:

    顶顶顶顶顶顶顶

  12. luhainabian@163 于 2011-07-30 16:32:51发表:

    感谢啊

  13. luhainabian@163 于 2011-07-30 16:32:46发表:

    很强大

  14. luhainabian@163 于 2011-07-30 16:32:42发表:

    很好

  15. luhainabian@163 于 2011-07-30 16:32:39发表:

    感谢感谢

  16. luhainabian@163 于 2011-07-30 16:32:33发表:

    ganxie

  17. luhainabian@163 于 2011-07-30 16:20:52发表:

    我是新手啊,弱弱地顶起

  18. luhainabian@163 于 2011-07-30 16:20:47发表:

    我是新手啊,弱弱地顶起

  19. age 于 2011-07-20 19:00:25发表:

    [i=s] 本帖最后由 age 于 2011-7-20 19:08 编辑 [/i]

    锟斤拷锟斤拷:
    openbox本身仅是一个wm
    再有,能发个slim的图吗?我已经知道xfce自己的登陆界面不仅很难看,还没啥功能,好像仅能登陆xfce(这是当时我用opensuse时的情况,不知道是否有配置上的问题)
    最后的那张图是从网上搜的?
    pl_014 发表于 2011-7-20 18:39

    slim登录背景图片可以自己设的, 我用的archlinux背景
    [attach]35350[/attach]
    最后那张桌面是我自己的;), 当然壁纸是从网上搜的. 再补一张吧
    [attach]35351[/attach]
    不使用gdm的原因主要在于gdm和gnome纠缠太深, 同时为了更好的区分gnome和openbox, 便于切换

  20. pl_014 于 2011-07-20 18:39:29发表:

    [i=s] 本帖最后由 pl_014 于 2011-7-20 19:04 编辑 [/i]

    openbox本身仅是一个wm
    再有,能发个slim的图吗?我已经知道xfce自己的登陆界面不仅很难看,还没啥功能,好像仅能登陆xfce(这是当时我用opensuse时的情况,不知道是否有配置上的问题)
    最后的那张图是从网上搜的?
    我觉得可以不必修改默认的登陆界面,gdm的可以引导多个桌面系统
    现在感觉debian确实比别的发行版简单些,用一个源装几个软件就OK了,然后要做的就是调整,因为仅仅一个openbox,空空如也,啥都没有,都得通过右键

  21. cliier 于 2011-07-20 17:53:41发表:

    简洁的可怜, 但 这样才实现 节省嘛! 嘿嘿

  22. name_110 于 2011-07-08 16:33:04发表:

    桌面不错

  23. Growth兆 于 2011-07-08 09:43:44发表:

    感谢age的分享,本贴加入到论坛顶置的Linux应用索引贴中

  24. wangyu 于 2011-07-07 22:35:23发表:

    张含韵,我的小爱