OpenBox桌面配置指南
- 贡献者:HHJ
- 阅读:2422
- 类别:系统服务
- 更新时间:2017-10-21 12:24:30
OpenBox桌面的特点
- 速度非常快,资源占用极少。
- 可高度定制化,能够对应用程序加以灵活控制。
- 能够绑定键盘和鼠标。比如,你可以为程序设定启动快捷键,也可以为最小/大化窗口设置热键。对于鼠标,同样如此。
- 具有自动启动脚本,能够随机自动启动各种程序。
- 主题资源丰富,与 *box 类视觉样式兼容。Openbox 的外观是简约而不简单。
- 支持会话,可深入 GNOME、KDE、Xfce 等桌面环境使用。换句话说,Openbox 可替代这些桌面环境中默认的窗口管理器,而其他桌面组件仍旧保持原样。
软件名称 简介以下工具未测试,先列示出来
slim 轻量级图形登录管理器,替代gdm/kdm
tint2 轻量级面板
tint2conf tint2的图形化设置工具
wbar dock程序,本身自带设置项
wbarconf wbar的图形化设置工具,功能更全、更直观
feh 设置壁纸
obconf openbox的图形化配置工具
obmenu openbox的图形化菜单编辑工具
lxappearance lxde的外观设置工具,同样适用于openbox,可设置主题,窗口字体等
obmixer 托盘区音量图标
networkmgr 托盘区网络连接管理器
clipit 托盘区复制粘贴工具
xbattbar 屏底电量显示条
scrot 截屏工具
pcmanfm 文件管理工具
volti - System tray volume control application
xfce4-mixer - Volume control application
xfce4-power-manager - Power management utility
nitrogen - Wallpaper picker and renderer
gmrun - Lightweight application launcher with auto complete functions
gksu - gksudo because we're going to need it later
dmenu - 用来自定义keybinding
面板:BMPanel、Fbpanel、Fspanel、LXPanel、Xfce4-panel
文件管理器:
Thunar:轻量,支持插件和自动挂载功能。
ROX:轻量,提供一组文件/桌面图标。
pcmanFM:稍微有点不轻量.
ntfs-3g:允许pcmanFM 挂载 NTFS 设备.
安装窗口管理器Openbox
pkg install openbox启动配置(~/.xinitrc)
export LANG=zh_CN.UTF-8
export LC_ALL=zh_CN.UTF-8
export LC_CTYPE=zh.CN.UTF-8
export XMODIFIERS="@im=fcitx"
fcitx & exec openbox-session xset b off
配置Openbox
自启动脚本
OpenBox的自启动脚本分为系统级和用户级,分别为:/usr/local/etc/xdg/openbox/autostartautostart的本质是一个shell脚本,所以可以在其中自由发挥,但是推荐每行一个程序,如果运行程序需要占几行,最好另外写一个脚本,在autostart中调用,这样看起来更清晰。值得注意的是每行程序的最后应该用“&”表示后台运行,否则程序不结束就不会执行下一行。常把下列命令放在此文件中:
~/.config/openbox/autostart
nm-appletwbar, obmixer都要先等几秒再启动, 否则可能会有意想不到的错误。或将wbar放在背景设定之后,且feh后没有&。
&tint2
&ibus-daemon -rxd
&(sleep 2 && obmixer)
&feh --bg-scale ~/image/wallpaper.jpg #背景设定
wbar &
配置右键菜单
系统级菜单位于 /usr/local/etc/xdg/openbox/menu.xml默认 Openbox 菜单包括很多菜单项供使用,其中有些尚未安装,可以直接编辑菜单文件,也可以使用菜单配置工具obmenu。除此之外,还可以使用MenuMaker自动生成OpenBox菜单。MenuMaker 用来为各种窗口管理器创建基于XML的菜单。MenuMaker将搜寻您电脑中的可执行程序,并在搜索结果的基础上建立一个XML菜单。根据需要,它可以配置除特定程序类型(类如 GNOME,KDE 等)外的程序。
用户级菜单位于 ~/.config/openbox/menu.xml
pkg install menumaker安装后, 你可以通过运行以下命令来生成一个完整的菜单文件(menu.xml):
$ mmaker -v OpenBox3$ mmaker -vf OpenBox3MenuMaker创建了一个很全面的 menu.xml. 你可以手动编辑 menu.xml文件, 或者在安装新的软件时生成一个新的菜单.
配置文件
openbox的配置文件主要有二个,分别是~/.config/openbox/rc.xml和~/.config/openbox/menu.xml.前者可以由obconf更改, 后者可由obmenu更改。注意:- obconf:不能自定义rc.xml中的快捷键部分, 这里需要自行添加
- obconf: 虽然可改项很多, 但实际上并没有多少要改的,默认即可
- obmenu: 在桌面右键时, 会弹出一个菜单. obmenu就是自定义这个菜单的
- lxappearance: 相对来说, 这个可能更适合大多数用户, 选择窗口主题, 鼠标主题等等.
- tint2conf: 自定义tint2面板
- wbar-conf: 自定义wbar
快捷键设置
快捷键在~/.config/openbox/rx.xml中设置,一般格式如下:<keybind key="W-e"> - 说明快捷键的表示文字,例子中是Windows徽标键加e字母键。设置完之后可以用指令来刷新openbox,或者打开窗口管理器菜单选择“刷新”选项。
<action name="Execute"> - 说明所执行的动作,例子中是Execute,意为这是一个执行程序的动作。
<startupnotify> - 表示执行内容的起始标签。
<enabled>true</enabled> - 该标签作用暂时未知。
<name>PCManFM</name> - 名字,例子中是PCManFM。
</startupnotify>
<command>pcmanfm</command> - 执行的命令行。
</action>
</keybind>
# openbox --reconfigure显示桌面:windows+d
<keybind key=”W-d”>当前窗口截取:ctrl+Print Screen
<action name=”ToggleShowDesktop”/>
</keybind>
<keybind key=”C-Print”>全屏载取, Print Screen
<action name=”Execute”>
<command>scrot -s “~/pictures/scrot/cut-%m.%d-%H%M%S.png”</command>
</action>
</keybind>
<keybind key=”Print”>音量放大
<action name=”Execute”>
<command>scrot “~/pictures/scrot/screen-%m.%d-%H%M%S.png”</command>
</action>
</keybind>
<keybind key=”XF86AudioRaiseVolume”>静音
<action name=”Execute”>
<command>amixer set Master 5%+ unmute</command>
</action>
</keybind>
<keybind key=”XF86AudioMute”>打开主页
<action name=”Execute”>
<command>amixer set Master toggle</command>
</action>
</keybind>
<keybind key=”XF86HomePage”>多媒体快捷键配的难点主要在于确定该键位的表示名称, 大多数名称都是通用的.
<action name=”Execute”>
<command>firefox</command>
</action>
</keybind>
- XF86AudioPlay 多媒体播放
- XF86AudioPause 多媒体暂停
- XF86AudioMute 静音
- XF86AudioRaiseVolume 增大音量
- XF86AudioLowerVolume 降低音量
- XF86HomePage 浏览器打开主页
- XF86Mail 邮件
- XF86Sleep 休眠
- XF86Calculator 计算器
随机壁纸脚本
d. 一个随机壁纸脚本, 有bash和python二种写法. 可以任选一个放到crontab里, 实现壁纸定时更换bash写法
#!/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
python写法
#!/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 --z