为x-windows自定义一种session管理方案(转)

为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/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/10752043/viewspace-940416/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值