歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> 5分鐘OpenBox配置指南

5分鐘OpenBox配置指南

日期:2017/2/28 16:11:38   编辑:Linux教程

如果你厭倦了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為例

pacman -S openbox slim tint2 wbar feh obconf obmenu tint2conf 
lxappearance pcmanfm scrot

#以下需要從aur安裝, 可以用yaourt

wbarconf obmixer

2. 修改/etc/inittab
在最下方的引導工具中, 注釋掉gdm/kdm語句, 並取消slim語句注釋
改完如下所示

#x:5:respawn:/usr/sbin/gdm -nodaemon
#x:5:respawn:/usr/bin/kdm -nodaemon
x:5:respawn:/usr/bin/slim >/dev/null 2>&1

3. 修改~/.xinitrc, 加入這一句

exec openbox-session

復制代碼
以便開機啟動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啟動時, 默認會執行這個腳本, 所以可以把要啟動的程序都寫在這裡
注意, 安裝時不會自動創建這個文件, 需要自己手動創建
內容如下

nm-applet&
tint2&
(sleep 2 && wbar)&
ibus-daemon -rxd&
(sleep 2 && obmixer)&
feh --bg-scale picture.jpg

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

  1. <keybind key=”W-d”>
  2. <action name=”ToggleShowDesktop”/>
  3. </keybind>

b. rc.xml中的”截屏”快捷鍵, 截取當前窗口, ctrl+Print Screen

  1. <keybind key=”C-Print”>
  2. <action name=”Execute”>
  3. <command>scrot -s “/home/allblue/pictures/scrot/cut-%m.%d-%H%M%S.png”</command>
  4. </action>
  5. </keybind>

全屏載取, Print Screen

  1. <keybind key=”Print”>
  2. <action name=”Execute”>
  3. <command>scrot “/home/allblue/pictures/scrot/screen-%m.%d-%H%M%S.png”</command>
  4. </action>
  5. </keybind>

c. rc.xml多媒體快捷鍵設置
音量放大

  1. <keybind key=”XF86AudioRaiseVolume”>
  2. <action name=”Execute”>
  3. <command>amixer set Master 5%+ unmute</command>
  4. </action>
  5. </keybind>

靜音

  1. <keybind key=”XF86AudioMute”>
  2. <action name=”Execute”>
  3. <command>amixer set Master toggle</command>
  4. </action>
  5. </keybind>

打開主頁

  1. <keybind key=”XF86HomePage”>
  2. <action name=”Execute”>
  3. <command>firefox</command>
  4. </action>
  5. </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" &amp;
        killall wbar
#wbar默認會以英文環境啟動, 需指定LANG變量
     env LANG=zh_CN.UTF-8 DISPLAY=:0 wbar  --pos top-left --isize 35 --zoomf 1.8 --jumpf 1 --bpress &amp;··
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+" &amp;"
            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 &amp; ")

Copyright © Linux教程網 All Rights Reserved