本文详细介绍为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
作者:fluke 责编:豆豆技术应用
- Linux/Unix新闻
- Linux/Unix入门
- Linux/Unix命令
- Linux/Unix安装
- Linux/Unix编程
- Linux/Unix管理
- Linux/Unix桌面
- Linux/Unix内核
- Linux/Unix软件
- Linux/Unix发行版
- redhat/Fedora
- Ubuntu Linux
- IBM AIX
- FreeBSD
- Solaris
- NetBSD
- SCO Unix
- find基本用法
- ldd命令原理及用法例子
- su和sudo命令的区别与使用技巧
- Linux操作系统下的dd命令技巧
- 关于Top命令的参数详解
- 关于Tar命令的使用
- SSH实用技巧及常用命令使用
- Linux后台执行命令
- VI命令使用技巧集锦
- Vmstat命令列出的属性详解
- 如何查看及修改文件读写权限
- 最大可存储的单文件容量
- ext2/ext3文件系统介绍
- 常用压缩格式的压缩解压方法
- Linux系统的引导过程详细解析
- Configure参数解释说明
- Linux下硬盘和分区的命名方法
- 硬链接与软链接的区别
- 权限和所有权模型
- 存储设备的两种表示方法