ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 为x-windows自定义一种session管理方案(转)

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

原创 Linux操作系统 作者:ilg 时间:2019-05-01 21:00:07 0 删除 编辑
为x-windows自定义一种session管理方案(转)

  摘要:本文提供了一种用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/14102/viewspace-116467/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2002-06-18

  • 博文量
    1715
  • 访问量
    1300098