為x-windows自定義一種session管理方案(轉)

worldblog發表於2007-08-10
為x-windows自定義一種session管理方案(轉)[@more@]

  摘要:本文提供了一種用shell來實現手工儲存要開啟的檔案列表的方法和思路,並不是像kde那樣死板地開啟上次儲存的session,作者本人覺得這種方法更靈活更使用。

  前言

  本文提供了一種用shell來實現手工儲存要開啟的檔案列表的方法和思路,並不是像kde那樣死板地開啟上次儲存的session,作者本人覺得這種方法更靈活更使用。

  本文適用於任何方式啟動x,但是為了具體操作,本文選種了預設不帶session儲存功能,但是可擴充套件性極強又不失易用性的fluxbox來作為wm。使用startx來啟動x。

  本文直接引導讀者怎麼做,也許深入的內容,要自己去思考。另外,本文用到的軟體,都是開源,並且,都假設您已經安裝好了,如果沒有,請自行解決。

  我們開始

  ~/.xinitrc的內容:exec ~/.fluxbox/startup

  我的設定編碼等等工作是在.profile裡面做的,如果你喜歡在.xinitrc裡面放也行。

  下面就看~/.fluxbox/startup的內容:

  # 螢幕保護

xscreensaver &

# 這個也是要另外安裝的fluxbox的pager

fbpager &

# 下面這個是自定義的startup檔案,本文的重點

shelltools/./xstartup &

# 下面正式啟動fluxbox

exec /usr/bin/fluxbox

# 如果需要記錄,開啟下面的註釋

# exec /usr/bin/fluxbox -log “~/.fluxbox/log”

  開始自定義session的載入,我把這個存在一個shell檔案裡面。

  下面是這個指令碼~/shelltools/xstartup的內容:

  #!/bin/sh

# file: ~/shelltools/xstartup

# function: starts applications when startx

# Items below for gedit startup

# 靜態的開啟常用的軟體

# input method

fcitx &

# applications

gaim &

gkrellm &

# opera9 能自動儲存session,很方便

opera &

rhythmbox &

stardict &

# 下面紅色部分,已經有更好的方案來實現,見本文末尾增改部分

# Open editing files with gedit

# 下面開始用gedit開啟正在編輯的檔案

gedit &

# 從~/shelltools/xstartup-editing-files.list讀取檔案列表,並且用gedit開啟,“#”開頭的是註釋,不過我的grep寫的不好,讀者可以自己改善

for openfile in `cat ~/shelltools/xstartup-editing-files.list | grep -v “#”`

do

eval gedit “$openfile”

done

# 上面用gedit開啟檔案的方法,當然也適用於開啟其他session

# Popup a dialog

# 這裡的警告是我個人留待其他用途的

zenity –info –text=”Startup finished.”

  下面是我的~/shelltools/xstartup-editing-files.list:

  # editing-file list

# acm

~/acm/pku1010.cpp

~/acm/pku1010.in

# comment

~/clipboard.txt

~/.fluxbox/startup

# shell tools

# 開啟這兩個檔案,是為了方便動態維護session列表

~/shelltools/xstartup

~/shelltools/xstartup-editing-files.list

  後記

  希望本文對一些人有用,作者本人並沒有很深的經驗,如果有寫錯的地方,請包涵,歡迎指點。

  Fluke — http://blog.ospattern.net

  Mon Aug 16 23:xx:xx CST 2006

  增改部分

  對於用gedit開啟檔案列表部分,原來的處理有些漏洞,如果,gedit開啟的速度不夠快,會造成後面的程式先開啟,這樣的話,一次只能編輯一個檔案,因為開啟檔案列表的時候,gedit並沒有被設定在後臺執行,而是獨佔了父程式,解決的方法可以是在執行了gedit &之後,sleep一下。

  不過這裡有更好的辦法,gedit支援從命令列引數開啟所有參數列示的檔案。所以,我們只需把檔案列表join到一個變數上,呼叫gedit開啟就好了,具體程式碼如下:

  # Open editing files with gedit

filelist=”"

for onefile in `cat ~/shelltools/xstartup-editing-files.list | grep -v “#”`

do

filelist=$filelist” “$onefile

done

eval gedit $filelist

  以上修改於Thu Aug 17 14:44:36 CST 2006 on Archlinux

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-940416/,如需轉載,請註明出處,否則將追究法律責任。

相關文章