又要开始折腾了(第4轮折腾):设法同时启动起来两套WM,和平共存与一个桌面。
- ljj_jjl2008
- 论坛版主
- 帖子: 14255
- 注册时间: 2007-09-16 8:29
Re: 又要开始折腾了(第4轮折腾):设法同时启动起来两套WM,和平共存与一个桌面。
刚才把awesome折腾的更好用了一些,现在开始再折腾这一套了:先把剪切板同步程序做个图形界面出来,让他出现在托盘中,并且可以随时暂停和重新开始。
linux下的编程,我还没有做过呢。我在windows下只会用delphi,linux下不知道用什么好呢。
我看见好多人用python编程,就学他了,看看是不是能学会。
linux下的编程,我还没有做过呢。我在windows下只会用delphi,linux下不知道用什么好呢。
我看见好多人用python编程,就学他了,看看是不是能学会。
闻到死太贵, 麦克价更高。 有了笨笨兔, 二者皆可抛。
+ 我的六轮折腾
+ 折腾6轮的结果(对40余种WM的测试和分析,多种DE和WM并存的方案)
+ 折腾的中间成果:可以独立运行的一个Wharf(图标化的启动菜单)
+ 强烈推荐----折腾的终极成果:一个自己开发的DE环境
+ 签名空闲链接位置招租
+ 我的六轮折腾
+ 折腾6轮的结果(对40余种WM的测试和分析,多种DE和WM并存的方案)
+ 折腾的中间成果:可以独立运行的一个Wharf(图标化的启动菜单)
+ 强烈推荐----折腾的终极成果:一个自己开发的DE环境
+ 签名空闲链接位置招租
- photor
- 论坛版主
- 帖子: 11004
- 注册时间: 2008-04-26 12:41
Re: 又要开始折腾了(第4轮折腾):设法同时启动起来两套WM,和平共存与一个桌面。
当然用lazarus,这就是delphi的跨平台开源版ljj_jjl2008 写了:刚才把awesome折腾的更好用了一些,现在开始再折腾这一套了:先把剪切板同步程序做个图形界面出来,让他出现在托盘中,并且可以随时暂停和重新开始。
linux下的编程,我还没有做过呢。我在windows下只会用delphi,linux下不知道用什么好呢。
我看见好多人用python编程,就学他了,看看是不是能学会。

- ljj_jjl2008
- 论坛版主
- 帖子: 14255
- 注册时间: 2007-09-16 8:29
Re: 又要开始折腾了(第4轮折腾):设法同时启动起来两套WM,和平共存与一个桌面。
不学编程了,因为windows下我也已经转行不做开发了,懒得学习了。
另外,那个同步剪切板的命令本身就有问题:同步小的数据还行,如果一次复制了成千上万的文字,就会出现乱码,而且好像会把全局剪切板历史记录弄得乱糟糟。
另外,那个同步剪切板的命令本身就有问题:同步小的数据还行,如果一次复制了成千上万的文字,就会出现乱码,而且好像会把全局剪切板历史记录弄得乱糟糟。
闻到死太贵, 麦克价更高。 有了笨笨兔, 二者皆可抛。
+ 我的六轮折腾
+ 折腾6轮的结果(对40余种WM的测试和分析,多种DE和WM并存的方案)
+ 折腾的中间成果:可以独立运行的一个Wharf(图标化的启动菜单)
+ 强烈推荐----折腾的终极成果:一个自己开发的DE环境
+ 签名空闲链接位置招租
+ 我的六轮折腾
+ 折腾6轮的结果(对40余种WM的测试和分析,多种DE和WM并存的方案)
+ 折腾的中间成果:可以独立运行的一个Wharf(图标化的启动菜单)
+ 强烈推荐----折腾的终极成果:一个自己开发的DE环境
+ 签名空闲链接位置招租
- leeaman
- 帖子: 30702
- 注册时间: 2007-02-02 18:14
- 系统: debian sid
Re: 又要开始折腾了(第4轮折腾):设法同时启动起来两套WM,和平共存与一个桌面。
学学python吧,delphi我也喜欢,不过跨平台还是python好
醉了星星,醉月亮●●●●●The Long Way To Go(*^_^*)
- ljj_jjl2008
- 论坛版主
- 帖子: 14255
- 注册时间: 2007-09-16 8:29
Re: 又要开始折腾了(第4轮折腾):设法同时启动起来两套WM,和平共存与一个桌面。
https://wiki.archlinux.org/index.php/Op ... %E6%96%87)
openbox推荐软件。
https://wiki.archlinux.org/index.php/Li ... %E6%96%87)
轻量级软件列表
openbox推荐软件。
https://wiki.archlinux.org/index.php/Li ... %E6%96%87)
轻量级软件列表
闻到死太贵, 麦克价更高。 有了笨笨兔, 二者皆可抛。
+ 我的六轮折腾
+ 折腾6轮的结果(对40余种WM的测试和分析,多种DE和WM并存的方案)
+ 折腾的中间成果:可以独立运行的一个Wharf(图标化的启动菜单)
+ 强烈推荐----折腾的终极成果:一个自己开发的DE环境
+ 签名空闲链接位置招租
+ 我的六轮折腾
+ 折腾6轮的结果(对40余种WM的测试和分析,多种DE和WM并存的方案)
+ 折腾的中间成果:可以独立运行的一个Wharf(图标化的启动菜单)
+ 强烈推荐----折腾的终极成果:一个自己开发的DE环境
+ 签名空闲链接位置招租
- ljj_jjl2008
- 论坛版主
- 帖子: 14255
- 注册时间: 2007-09-16 8:29
Re: 又要开始折腾了(第4轮折腾):设法同时启动起来两套WM,和平共存与一个桌面。
Using evilwm
After starting evilwm you will see nothing but a mouse cursor and a black background (or other background if you specified it as above). To open a terminal, use the key combination Ctrl+Alt+Return. Programs can then be run from the terminal using ProgramName&.
Keyboard controls
Using the keyboard combination of Ctrl+Alt plus a third key gives you these functions:
Return – spawns new terminal
Escape – Deletes current window
Insert – Lowers current window
H,J,K,L – Move window left, down, up, right 16 pixels
Y,U,B,N – Move window to top-left, top-right, bottom-left, bottom-right corner
I – Show information about current window
= – Maximize current window vertically (toggle)
X – Maximize current window full-screen (toggle)
Mouse controls
By holding down the Alt key, you can perform these functions with the mouse:
Button 1 – Move window
Button 2 – Resize window
Button 3 – Lower window
Virtual desktops
Using the keyboard combination of Ctrl+Alt plus a third key gives you these virtual desktop functions:
1-8 – Switch virtual desktop
left – Previous virtual desktop
right – Next virtual desktop
F – Fix or unfix current window
To move a window from one virtual desktop to another, fix it, switch desktop, then unfix it. Alt+Tab can also be used to cycle through windows on the current desktop.
Tips & Tricks
Horizontal window maximize
The key combination of Ctrl+Alt+= will maximize a window vertically. To maximize a window horizontally, use Ctrl+Alt+= to maximize it vertically, then Ctrl+Alt+X to maximize it horizontally (as opposed to just using Ctrl+Alt+X to maximize it full-screen).
Exit evilwm by ending a program
By default, evilwm has no quit option. To exit, simply kill X with Ctrl+Alt+Backspace. If you wish, you can exit evilwm by closing a specific program. Instead of using exec evilwm in your ~/.xinitrc file, you can transfer exec to another program. Killing this program will then exit evilwm. For example:
After starting evilwm you will see nothing but a mouse cursor and a black background (or other background if you specified it as above). To open a terminal, use the key combination Ctrl+Alt+Return. Programs can then be run from the terminal using ProgramName&.
Keyboard controls
Using the keyboard combination of Ctrl+Alt plus a third key gives you these functions:
Return – spawns new terminal
Escape – Deletes current window
Insert – Lowers current window
H,J,K,L – Move window left, down, up, right 16 pixels
Y,U,B,N – Move window to top-left, top-right, bottom-left, bottom-right corner
I – Show information about current window
= – Maximize current window vertically (toggle)
X – Maximize current window full-screen (toggle)
Mouse controls
By holding down the Alt key, you can perform these functions with the mouse:
Button 1 – Move window
Button 2 – Resize window
Button 3 – Lower window
Virtual desktops
Using the keyboard combination of Ctrl+Alt plus a third key gives you these virtual desktop functions:
1-8 – Switch virtual desktop
left – Previous virtual desktop
right – Next virtual desktop
F – Fix or unfix current window
To move a window from one virtual desktop to another, fix it, switch desktop, then unfix it. Alt+Tab can also be used to cycle through windows on the current desktop.
Tips & Tricks
Horizontal window maximize
The key combination of Ctrl+Alt+= will maximize a window vertically. To maximize a window horizontally, use Ctrl+Alt+= to maximize it vertically, then Ctrl+Alt+X to maximize it horizontally (as opposed to just using Ctrl+Alt+X to maximize it full-screen).
Exit evilwm by ending a program
By default, evilwm has no quit option. To exit, simply kill X with Ctrl+Alt+Backspace. If you wish, you can exit evilwm by closing a specific program. Instead of using exec evilwm in your ~/.xinitrc file, you can transfer exec to another program. Killing this program will then exit evilwm. For example:
闻到死太贵, 麦克价更高。 有了笨笨兔, 二者皆可抛。
+ 我的六轮折腾
+ 折腾6轮的结果(对40余种WM的测试和分析,多种DE和WM并存的方案)
+ 折腾的中间成果:可以独立运行的一个Wharf(图标化的启动菜单)
+ 强烈推荐----折腾的终极成果:一个自己开发的DE环境
+ 签名空闲链接位置招租
+ 我的六轮折腾
+ 折腾6轮的结果(对40余种WM的测试和分析,多种DE和WM并存的方案)
+ 折腾的中间成果:可以独立运行的一个Wharf(图标化的启动菜单)
+ 强烈推荐----折腾的终极成果:一个自己开发的DE环境
+ 签名空闲链接位置招租
- ljj_jjl2008
- 论坛版主
- 帖子: 14255
- 注册时间: 2007-09-16 8:29
Re: 又要开始折腾了(第4轮折腾):设法同时启动起来两套WM,和平共存与一个桌面。
这一层楼作废。内容已经移到其他楼层
闻到死太贵, 麦克价更高。 有了笨笨兔, 二者皆可抛。
+ 我的六轮折腾
+ 折腾6轮的结果(对40余种WM的测试和分析,多种DE和WM并存的方案)
+ 折腾的中间成果:可以独立运行的一个Wharf(图标化的启动菜单)
+ 强烈推荐----折腾的终极成果:一个自己开发的DE环境
+ 签名空闲链接位置招租
+ 我的六轮折腾
+ 折腾6轮的结果(对40余种WM的测试和分析,多种DE和WM并存的方案)
+ 折腾的中间成果:可以独立运行的一个Wharf(图标化的启动菜单)
+ 强烈推荐----折腾的终极成果:一个自己开发的DE环境
+ 签名空闲链接位置招租
- ljj_jjl2008
- 论坛版主
- 帖子: 14255
- 注册时间: 2007-09-16 8:29
Re: 又要开始折腾了(第4轮折腾):设法同时启动起来两套WM,和平共存与一个桌面。
http://my.oschina.net/xiangxw/blog/10946
在Windows下用键盘操作系统永远是一个梦,但是在Linux下就可以优美的解决这个问题,使用热键的好处不言而喻,它可以极大地提高工作效率。到了高潮,让你有种欲仙欲死的感觉,可以说酣畅淋漓、行云流水,操作也变成了拇指的舞蹈。
几乎每种桌面环境或窗口管理器都有一套自己的热键定义体系,如果需要在多个桌面环境或窗口管理器之间切换工作的话每个都要定义一套自己的热键,工作 繁琐且重复得毫无意义。xbindkeys是一个独立的热键管理定义工具,可以使多个环境共用一套热键,而且xbindkeys的语法简单明了,非常容易 上手。
下面是我定义的一套快捷键,定义热键的方法是编辑主目录下的“.xbindkeysrc”文件:
很显然,每个热键包括两行,第一行用双引号括起来的部分是要执行的程序的完整路径(正常情况下安装(没有自定义安装路径)的程序不需要输入路径),然后第二行是对应的快捷键。
xbindkeys对应的一些比较特殊的快捷键如下,括号外是可以直接写在配置文件里面的名称,括号内是对应的键盘上的键名:
Release(似乎是个事件吧,我不太清楚这是个什么东西,一般也用不到), control(Ctrl), shift(Shift), Mod1 (Alt), Mod2 (NumLock), Mod3 (CapsLock), Mod4(Windows徽标键), Mod5 (Scroll)。
默认状态下,xbindkeys对以下三个键不敏感,也就是使用它们作热键的话不论这些键会产生什么系统事件,该热键都会得到执行。如果设置成敏 感,则在这些键产生一些事件的时候,该热键不会得到执行。我试了一下,绑定Num_Lock键到stardict,设置成敏感的时候,该键对应的灯由暗变 亮的那次击键可以执行stardict,由亮变暗的那次击键就不会执行。如果设置成不敏感,则无论任何时候该键都是可以执行热键的。不过说实话,我没看出 来这有什么用。
这三个键是:NumLock, CapsLock and ScrollLock.
在上面的配置文件中去掉与这三个键对应的设置前面的#号时就表示设置为敏感,加上#号表示不敏感。
另外,在终端中键入命令:
xbindkeys -k
来调出一个窗口,在你按了键盘上的某一个或多个键后将这些键的名字打印到屏幕上,以方便不知道要设置的热键的真实名字的用户。它比系统自带的同样功能的工具“xev”好的地方在于后者的提示信息复杂且只能针对一个按键,而前者可以显示组合键。
由于热键经常需要进行修改,每次都键入这样的命令有些麻烦,故可以定义系统命令的别名,以缩短这些命令,这是Linux的一个很重要的技巧:
sudo vim /etc/bash.bashrc
在最下方,加上这样几句:
alias mhk=’vim ~/.xbindkeysrc’
alias thk=’xbindkeys -k’
alias rhk=’pkill xbindkeys && xbindkeys &’
alias shk=’xbindkeys_show’
mhk,thk,rhk,shk分别是“modify hotkeys”,“test hotkeys”,“restart hotkeys”,“show hotkeys”的简称,你也可以换成任何喜欢的名字,保存退出后,重新启动终端,你就可以使用这些别名来执行后面对应的命令了。
每次执行mhk之后,如果对热键进行了更改,这些更改并不会立即生效,所以需要重新启动xbindkeys,这时就要执行rhk了,如果窨的热键太多,忘了某些键设置了,可以执行shk来查看都是定义了哪些热键。
在Windows下用键盘操作系统永远是一个梦,但是在Linux下就可以优美的解决这个问题,使用热键的好处不言而喻,它可以极大地提高工作效率。到了高潮,让你有种欲仙欲死的感觉,可以说酣畅淋漓、行云流水,操作也变成了拇指的舞蹈。
几乎每种桌面环境或窗口管理器都有一套自己的热键定义体系,如果需要在多个桌面环境或窗口管理器之间切换工作的话每个都要定义一套自己的热键,工作 繁琐且重复得毫无意义。xbindkeys是一个独立的热键管理定义工具,可以使多个环境共用一套热键,而且xbindkeys的语法简单明了,非常容易 上手。
下面是我定义的一套快捷键,定义热键的方法是编辑主目录下的“.xbindkeysrc”文件:
代码: 全选
#—————————–【运行程序】————————————-
“gnome-terminal”
alt+grave
“grun”
F1
“opera”
alt+w
“nautilus –no-desktop”
Mod4+q
“stardict”
control+Mod4+s
“gaim”
control+Mod4+g
“rox”
Mod4+r
“banshee”
control+Mod4+b
“firefox”
control+Mod4+f
“liferea”
control+Mod4+l
“wxmaxima”
control+Mod4+c
“krusader”
control+Mod4+k
“/opt/MultiGet/MultiGet”
control+Mod4+m
“kfind”
control+Mod1+f
“gnome-terminal -e htop”
control+Mod4+Delete
“gnome-system-monitor”
control+Mod1+Delete
#—————————–【桌面操作】————————————-
#屏幕截图
“ksnapshot”
control+Mod2+Print
“ksnapshot -c”
alt+Mod2+Print#清空回收站
“rm -r ~/.Trash/*”
Mod4+e
#锁屏
“xscreensaver-command –lock”
Mod4+l
#打开光驱
“eject&”
Mod1 + F12
#音量 +5%
“amixer sset Master 1+ unmute”
control + Up
#音量 -5%
“amixer sset Master 1- unmute”
control + Down
#静音
“amixer sset Master mute”
control + Mod1 + q
#——————————————————————————
#keystate_numlock = enable
#keystate_capslock = enable
#keystate_scrolllock= enable
#——————————————————————————
xbindkeys对应的一些比较特殊的快捷键如下,括号外是可以直接写在配置文件里面的名称,括号内是对应的键盘上的键名:
Release(似乎是个事件吧,我不太清楚这是个什么东西,一般也用不到), control(Ctrl), shift(Shift), Mod1 (Alt), Mod2 (NumLock), Mod3 (CapsLock), Mod4(Windows徽标键), Mod5 (Scroll)。
默认状态下,xbindkeys对以下三个键不敏感,也就是使用它们作热键的话不论这些键会产生什么系统事件,该热键都会得到执行。如果设置成敏 感,则在这些键产生一些事件的时候,该热键不会得到执行。我试了一下,绑定Num_Lock键到stardict,设置成敏感的时候,该键对应的灯由暗变 亮的那次击键可以执行stardict,由亮变暗的那次击键就不会执行。如果设置成不敏感,则无论任何时候该键都是可以执行热键的。不过说实话,我没看出 来这有什么用。
这三个键是:NumLock, CapsLock and ScrollLock.
在上面的配置文件中去掉与这三个键对应的设置前面的#号时就表示设置为敏感,加上#号表示不敏感。
另外,在终端中键入命令:
xbindkeys -k
来调出一个窗口,在你按了键盘上的某一个或多个键后将这些键的名字打印到屏幕上,以方便不知道要设置的热键的真实名字的用户。它比系统自带的同样功能的工具“xev”好的地方在于后者的提示信息复杂且只能针对一个按键,而前者可以显示组合键。
由于热键经常需要进行修改,每次都键入这样的命令有些麻烦,故可以定义系统命令的别名,以缩短这些命令,这是Linux的一个很重要的技巧:
sudo vim /etc/bash.bashrc
在最下方,加上这样几句:
alias mhk=’vim ~/.xbindkeysrc’
alias thk=’xbindkeys -k’
alias rhk=’pkill xbindkeys && xbindkeys &’
alias shk=’xbindkeys_show’
mhk,thk,rhk,shk分别是“modify hotkeys”,“test hotkeys”,“restart hotkeys”,“show hotkeys”的简称,你也可以换成任何喜欢的名字,保存退出后,重新启动终端,你就可以使用这些别名来执行后面对应的命令了。
每次执行mhk之后,如果对热键进行了更改,这些更改并不会立即生效,所以需要重新启动xbindkeys,这时就要执行rhk了,如果窨的热键太多,忘了某些键设置了,可以执行shk来查看都是定义了哪些热键。
闻到死太贵, 麦克价更高。 有了笨笨兔, 二者皆可抛。
+ 我的六轮折腾
+ 折腾6轮的结果(对40余种WM的测试和分析,多种DE和WM并存的方案)
+ 折腾的中间成果:可以独立运行的一个Wharf(图标化的启动菜单)
+ 强烈推荐----折腾的终极成果:一个自己开发的DE环境
+ 签名空闲链接位置招租
+ 我的六轮折腾
+ 折腾6轮的结果(对40余种WM的测试和分析,多种DE和WM并存的方案)
+ 折腾的中间成果:可以独立运行的一个Wharf(图标化的启动菜单)
+ 强烈推荐----折腾的终极成果:一个自己开发的DE环境
+ 签名空闲链接位置招租
- ljj_jjl2008
- 论坛版主
- 帖子: 14255
- 注册时间: 2007-09-16 8:29
Re: 又要开始折腾了(第4轮折腾):设法同时启动起来两套WM,和平共存与一个桌面。
ubuntu下面安装fluxbox后,默认是不能显示汉字的
因为默认的字体dejavusans不支持汉字
修改步骤如下:
fc-list
查看可用的字体列表,选择能显示汉字的字体
到
/usr/share/fluxbox/style
下面
编辑风格文件
比如我fluxbox现在是使用BlueNight风格的
把里面的字体dejavusans替换成你要的字体
格式
字体-大小
闻到死太贵, 麦克价更高。 有了笨笨兔, 二者皆可抛。
+ 我的六轮折腾
+ 折腾6轮的结果(对40余种WM的测试和分析,多种DE和WM并存的方案)
+ 折腾的中间成果:可以独立运行的一个Wharf(图标化的启动菜单)
+ 强烈推荐----折腾的终极成果:一个自己开发的DE环境
+ 签名空闲链接位置招租
+ 我的六轮折腾
+ 折腾6轮的结果(对40余种WM的测试和分析,多种DE和WM并存的方案)
+ 折腾的中间成果:可以独立运行的一个Wharf(图标化的启动菜单)
+ 强烈推荐----折腾的终极成果:一个自己开发的DE环境
+ 签名空闲链接位置招租
- ljj_jjl2008
- 论坛版主
- 帖子: 14255
- 注册时间: 2007-09-16 8:29
Re: 又要开始折腾了(第4轮折腾):设法同时启动起来两套WM,和平共存与一个桌面。
window manager:(S:小型;T:平铺;A:全面,不建议搭积木的;V:虚拟大桌面的;其他:普通的)
9wm(S)
aewm(S)
aewm++(S)
amiwm(S)
AfterStepa(A)
awesome(T)
blackbox
ctwm(S)
dwm(ST)
e17(A)
evilwm
fluxbox
fvwm(A)
i3(T)
IceWm
Jwm
kde-window-manager
larswm(T?)
LWM(S)
Metacity
MIWM(S?)
metacity
olvwm(V)
olwm(S)
Openbox
Oroborus(S?)
Parti(T?)
pekwm(S?)
ratpoison(keyboard-only window manager)
Sapphire(S?)
Sawfish
Scrotwm(T)
StumpWM(S)
TinyWM(S)
tritium(T)
VTWM(V)
w9wm(S)
WindowLab(S)
wm2(S)
wmaker(A?)
wmii(S)
CD播放:
ascd(AfterStepa) (error)
wmrack(Window Maker) (error)
CD换盘:
ascdc(AfterStepa)
邮件监控:
asmail(AfterStepa)
bbmail(blackbox)
kmail
音量调节:
asmixer(AfterStepa) (error)
wmmixer(Window Maker) (error)
gpe-mixer (error)
KMix
换页器:
bbpager(blackbox)
fbpager(Fluxbox)
程序启动器
bbrun(blackbox)
gpe-appmgr(GPE)
grun(GPE)
Wmbutton(Window Maker)
时钟(日历):
bbtime(blackbox)
pclock(Window Maker)
TDC
wmCalClock(Window Maker)
wmdate(日历)(Window Maker)
菜单:
DeskMenu
ratmenu(SHELL)
托盘:
Docker
trayer
wmauda(Window Maker)
Stalonetray
面板:
fspanel
hpanel (error)
ltpanel
LXPanel
PerlPanel
Tint2
文件管理:
gentoo
pcmanfm(桌面)
TkDesk
rox-filer(桌面)
窗口最小化成图标:
Backstep
系统监视:
wmbubble(内存“)(Window Maker)
WMCPULoad(cpu?)(Window Maker)
Wmforkplop(进程?)(Window Maker)
wmifs(网络?)(Window Maker)
wmmemload(内存)(Window Maker)
wmmount(硬盘空间)(Window Maker)
gkrellm(全面监视)
gdesklets(桌面部件)
conky
天气预报:
wmweather(Window Maker)
wmweather+(Window Maker)
剪切板:
parcellite
klipper
闻到死太贵, 麦克价更高。 有了笨笨兔, 二者皆可抛。
+ 我的六轮折腾
+ 折腾6轮的结果(对40余种WM的测试和分析,多种DE和WM并存的方案)
+ 折腾的中间成果:可以独立运行的一个Wharf(图标化的启动菜单)
+ 强烈推荐----折腾的终极成果:一个自己开发的DE环境
+ 签名空闲链接位置招租
+ 我的六轮折腾
+ 折腾6轮的结果(对40余种WM的测试和分析,多种DE和WM并存的方案)
+ 折腾的中间成果:可以独立运行的一个Wharf(图标化的启动菜单)
+ 强烈推荐----折腾的终极成果:一个自己开发的DE环境
+ 签名空闲链接位置招租
- ljj_jjl2008
- 论坛版主
- 帖子: 14255
- 注册时间: 2007-09-16 8:29
Re: 又要开始折腾了(第4轮折腾):设法同时启动起来两套WM,和平共存与一个桌面。
花了2天时间写了一个shell,如果把楼上的软件装全了,再安装上xserver-Xephyr,可以用这个shell文件在来选择和启动这些WM。
注意:要在图形界面(主WM)的一个虚拟桌面上面打开一个终端,在里面调用这个文件。
(有改动:加上了自动KILL进程功能,增加了一些选择的智能化--2011.08.14)
(有改动:加上了Xmonad的支持,去掉了不能正常启动的tritium、larswm,将Stumpwm归类改变到“平铺”类---2011.08.15)
(有改动:WM分类改变了一下,加上了一个:Bluetile----2011.08.16)
(有改动:加上一个“随机抽取WM功能,可以随机搭配组合----2011.08.17”)
[bash]
#!/bin/bash
#xstarter.sh
#need to assign the $TERM comparison to a variable
#same goes for the console comparison
choice=0
choiced=0
choicewm=' '
#下面变量是记录哪些程序被启动,文件结束时,会KILLALL掉他们
Z9wm=0
Aewm=0
Aewmjj=0
Amiwm=0
Afterstep=0
Awesome=0
Blackbox=0
Bluetile=0
Ctwm=0
Dwm=0
E17=0
Evilwm=0
Fluxbox=0
Flwm=0
Fvwm=0
I3=0
Icewm=0
Jwm=0
Kde_window_manager=0
Lwm=0
Metacity=0
Miwm=0
Metacity=0
Olvwm=0
Olwm=0
Openbox=0
Oroborus=0
Parti=0
Pekwm=0
Ratpoison=0
Sapphire=0
Sawfish=0
Scrotwm=0
Stumpwm=0
Tinywm=0
Tritium=0
Vtwm=0
W9wm=0
WindowLab=0
Wm2=0
Wmaker=0
Wmii=0
Xmonad=0
Kmail=0
Kmix=0
Bbrun=0
Asclock=0
Gpe_clock=0
Deskmenu=0
Trayer=0
Lxpanel=0
Tint2=0
Pcmanfm=0
Rox_filer=0
Backstep=0
Wmbubble=0
Wmcpuload=0
Wmforkplop=0
Wmifs=0
Wmmemload=0
Wmmount=0
Gkrellm=0
Gdesklets=0
Conky=0
Parcellite=0
Klipper=0
echo '**********************************'
echo '** Linux WM 搭积木程序 **'
echo '** 通过选择来搭积木 **'
echo '** 请先选择一个WM **'
echo '** 然后逐步选择其他组件 **'
echo '** 最后搭建出来一个linux桌面 **'
echo '**********************************'
echo '**********************************'
echo '** 请先选择WM类型 **'
echo '**********************************'
WML_LIST=( '直接退出' '适合“搭积木”的' 'box类' 'fvwm、Wmaker、AfterStep类' '虚拟视窗类' '平铺类' '微型WM' '无使用价值和无法使用的' '搭配好的组合' '随机产生组合' )
TOTAL_WMS=9
for ((i=0; i<=$TOTAL_WMS; i++))
do
echo "** $i. ${WML_LIST[$i]} "
done
echo ' '
read -n 1 choice_wml
echo ' '
echo "你选择了:${WML_LIST[$choice_wml]}"
while [ $choice = 0 ] && [ $choice_wml != 0 ] && [ $choiced = 0 ]; do
case ${WML_LIST[$choice_wml]} in
直接退出)
;;
适合“搭积木”的)
echo '********************************************'
echo '** 现在开始选择我适合搭积木的WM **'
echo '** 请先选择一个WM **'
echo '** 选择后会全屏进入这个WM **'
echo '** 你可以尝试一下并记录需要补充什么 **'
echo '** 然后需要切换回这个窗口来继续选择 **'
echo '********************************************'
WM_LIST=( '返回上层' 'Sawfish' 'Flwm' 'metacity' 'Jwm' 'evilwm' 'Icewm' 'Oroborus' 'kde_window_manager')
TOTAL_WMS=8
for ((i=0; i<=$TOTAL_WMS; i++))
do
echo "** $i. ${WM_LIST[$i]}"
done
echo ' '
read -n 1 choice
echo ' '
echo "你选择了:${WM_LIST[$choice]}"
if [ $choice != 0 ];then
Xephyr :6 -fullscreen -keybd ephyr,,,xkbmodel=pc105,xkblayout=us,xkbrules=evdev,xkboption=euro -noreset -host-cursor -dpi 96 -ac -name wm -title wm &
sleep 3
fi
case ${WM_LIST[$choice]} in
Sawfish)
DISPLAY=:6 sawfish &
Sawfish=1
;;
Flwm)
DISPLAY=:6 flwm &
Flwm=1
;;
metacity)
DISPLAY=:6 exec metacity &
Metacity=1
;;
Jwm)
DISPLAY=:6 jwm &
Jwm=1
echo '** JWM自带面板、托盘和时钟, **'
;;
evilwm)
DISPLAY=:6 evilwm &
Evilwm=1
echo '** 请用CTRL+ALT+鼠标来控制调整窗口 **'
echo '** 请用CTRL+ALT+ESC 关闭窗口 **'
echo '** 请用CTRL+ALT+Return打开终端 **'
echo '** 其他快捷键请查询帮助 **'
;;
Icewm)
DISPLAY=:6 icewm &
Icewm=1
echo '** Icewm自带面板、托盘和时钟, **'
;;
kde_window_manager)
DISPLAY=:6 kwin &
Kwin=1
;;
Oroborus)
DISPLAY=:6 oroborus &
Oroborus=1
;;
*)
;;
esac
choicewm="${WM_LIST[$choice]}"
;;
box类)
echo '********************************************'
echo '** 此类可定义自启动程序 **'
echo '** 注意不要重复启动和冲突 **'
echo '** 请先选择一个WM **'
echo '** 选择后会全屏进入这个WM **'
echo '** 你可以尝试一下并记录需要补充什么 **'
echo '** 然后需要切换回这个窗口来继续选择 **'
echo '********************************************'
WM_LIST=( '返回上层' 'fluxbox' 'blackbox' 'Openbox' 'Sapphire')
TOTAL_WMS=4
for ((i=0; i<=$TOTAL_WMS; i++))
do
echo "** $i. ${WM_LIST[$i]}"
done
echo ' '
read -n 1 choice
echo " "
echo "你选择了:${WM_LIST[$choice]}"
if [ $choice != 0 ];then
Xephyr :6 -fullscreen -keybd ephyr,,,xkbmodel=pc105,xkblayout=us,xkbrules=evdev,xkboption=euro -noreset -host-cursor -dpi 96 -ac -name wm -title wm &
sleep 3
fi
case ${WM_LIST[$choice]} in
fluxbox)
DISPLAY=:6 fluxbox &
Fluxbox=1
;;
blackbox)
DISPLAY=:6 blackbox &
Blackbox=1
;;
Openbox)
DISPLAY=:6 openbox &
Openbox=1
;;
Sapphire)
DISPLAY=:6 sapphire &
Sapphire=1
;;
*)
;;
esac
choicewm="${WM_LIST[$choice]}"
;;
fvwm、Wmaker、AfterStep类)
echo '********************************************'
echo '** 注意 此类WM自带壁纸 **'
echo '** 请先选择一个WM **'
echo '** 选择后会全屏进入这个WM **'
echo '** 你可以尝试一下并记录需要补充什么 **'
echo '** 然后需要切换回这个窗口来继续选择 **'
echo '********************************************'
WM_LIST=( '返回上层' 'fvwm' 'Wmaker' 'AfterStep' 'e17')
TOTAL_WMS=4
for ((i=0; i<=$TOTAL_WMS; i++))
do
echo "** $i. ${WM_LIST[$i]}"
done
echo ' '
read -n 1 choice
echo " "
echo "你选择了:${WM_LIST[$choice]}"
if [ $choice != 0 ];then
Xephyr :6 -fullscreen -keybd ephyr,,,xkbmodel=pc105,xkblayout=us,xkbrules=evdev,xkboption=euro -noreset -host-cursor -dpi 96 -ac -name wm -title wm &
sleep 3
fi
case ${WM_LIST[$choice]} in
fvwm)
DISPLAY=:6 exec fvwm &
Fvwm=1
;;
Wmaker)
DISPLAY=:6 exec wmaker &
Wmaker=1
;;
AfterStep)
DISPLAY=:6 afterstep &
Afterstep=1
;;
e17)
DISPLAY=:6 enlightenment_start &
E17=1
;;
*)
;;
esac
choicewm="${WM_LIST[$choice]}"
;;
虚拟视窗类)
echo '********************************************'
echo '** 此类与面板、桌面无法配合 **'
echo '** 请先选择一个WM **'
echo '** 选择后会全屏进入这个WM **'
echo '** 你可以尝试一下并记录需要补充什么 **'
echo '** 然后需要切换回这个窗口来继续选择 **'
echo '********************************************'
WM_LIST=( '返回上层' 'olvwm' 'VTWM' )
TOTAL_WMS=2
for ((i=0; i<=$TOTAL_WMS; i++))
do
echo "** $i. ${WM_LIST[$i]}"
done
echo ' '
read -n 1 choice
echo " "
echo "你选择了:${WM_LIST[$choice]}"
if [ $choice != 0 ];then
Xephyr :6 -fullscreen -keybd ephyr,,,xkbmodel=pc105,xkblayout=us,xkbrules=evdev,xkboption=euro -noreset -host-cursor -dpi 96 -ac -name wm -title wm &
sleep 3
fi
case ${WM_LIST[$choice]} in
olvwm)
DISPLAY=:6 olvwm &
Olvwm=1
;;
VTWM)
DISPLAY=:6 vtwm &
Vtwm=1
;;
*)
;;
esac
choicewm="${WM_LIST[$choice]}"
;;
平铺类)
echo '********************************************'
echo '** 此类与面板、桌面可能无法配合 **'
echo '** 请先选择一个WM **'
echo '** 选择后会全屏进入这个WM **'
echo '** 你可以尝试一下并记录需要补充什么 **'
echo '** 然后需要切换回这个窗口来继续选择 **'
echo '********************************************'
WM_LIST=( '返回上层' 'ratpoison' 'StumpWM' 'awesome' 'dwm' 'i3' 'Xmonad' 'wmii' 'Bluetile')
TOTAL_WMS=8
for ((i=0; i<=$TOTAL_WMS; i++))
do
echo "** $i. ${WM_LIST[$i]}"
done
echo ' '
read -n 1 choice
echo " "
echo "你选择了:${WM_LIST[$choice]}"
if [ $choice != 0 ];then
Xephyr :6 -fullscreen -keybd ephyr,,,xkbmodel=pc105,xkblayout=us,xkbrules=evdev,xkboption=euro -noreset -host-cursor -dpi 96 -ac -name wm -title wm &
sleep 3
fi
case ${WM_LIST[$choice]} in
awesome)
DISPLAY=:6 awesome &
Awesome=1
;;
dwm)
DISPLAY=:6 dwm &
Dwm=1
;;
i3)
DISPLAY=:6 i3 &
I3=1
;;
ratpoison)
DISPLAY=:6 ratpoison &
Ratpoison=1
;;
StumpWM)
DISPLAY=:6 stumpwm &
Stumpwm=1
;;
Xmonad)
DISPLAY=:6 xmonad &
Xmonad=1
;;
wmii)
DISPLAY=:6 wmii &
Wmii=1
;;
Bluetile)
DISPLAY=:6 bluetile &
Bluetile=1
;;
*)
;;
esac
choicewm="${WM_LIST[$choice]}"
;;
微型WM)
echo '********************************************'
echo '** 此类与面板、桌面可能无法配合 **'
echo '** 请先选择一个WM **'
echo '** 选择后会全屏进入这个WM **'
echo '** 你可以尝试一下并记录需要补充什么 **'
echo '** 然后需要切换回这个窗口来继续选择 **'
echo '********************************************'
WM_LIST=( '返回上层' 'ctwm' 'LWM' 'MIWM' 'pekwm' 'TinyWM' 'WindowLab' 'wm2')
TOTAL_WMS=7
for ((i=0; i<=$TOTAL_WMS; i++))
do
echo "** $i. ${WM_LIST[$i]}"
done
echo ' '
read -n 1 choice
echo " "
echo "你选择了:${WM_LIST[$choice]}"
if [ $choice != 0 ];then
Xephyr :6 -fullscreen -keybd ephyr,,,xkbmodel=pc105,xkblayout=us,xkbrules=evdev,xkboption=euro -noreset -host-cursor -dpi 96 -ac -name wm -title wm &
sleep 3
fi
case ${WM_LIST[$choice]} in
ctwm)
DISPLAY=:6 ctwm &
Ctwm=1
;;
LWM)
DISPLAY=:6 lwm &
Lwm=1
;;
MIWM)
DISPLAY=:6 miwm &
Miwm=1
;;
pekwm)
DISPLAY=:6 pekwm &
Pekwm=1
;;
TinyWM)
DISPLAY=:6 tinywm &
Tinywm=1
;;
WindowLab)
DISPLAY=:6 windowlab &
Windowlab=1
;;
wm2)
DISPLAY=:6 wm2 &
Wm2=1
;;
*)
;;
esac
choicewm="${WM_LIST[$choice]}"
;;
无使用价值和无法使用的)
echo '********************************************'
echo '** 此类与面板、桌面可能无法配合 **'
echo '** 此类WM也许有BUG,慎用 **'
echo '** 请先选择一个WM **'
echo '** 选择后会全屏进入这个WM **'
echo '** 你可以尝试一下并记录需要补充什么 **'
echo '** 然后需要切换回这个窗口来继续选择 **'
echo '********************************************'
WM_LIST=( '返回上层' '9wm' 'aewm' 'aewm++' 'olwm' 'w9wm' 'Scrotwm' 'tritium' 'Parti' 'amiwm')
TOTAL_WMS=9
for ((i=0; i<=$TOTAL_WMS; i++))
do
echo "** $i. ${WM_LIST[$i]}"
done
echo ' '
read -n 1 choice
echo " "
echo "你选择了:${WM_LIST[$choice]}"
if [ $choice != 0 ];then
Xephyr :6 -fullscreen -keybd ephyr,,,xkbmodel=pc105,xkblayout=us,xkbrules=evdev,xkboption=euro -noreset -host-cursor -dpi 96 -ac -name wm -title wm &
sleep 3
fi
case ${WM_LIST[$choice]} in
9wm)
DISPLAY=:6 9wm &
Z9wm=1
;;
aewm)
DISPLAY=:6 aewm &
Aewm=1
;;
aewm++)
DISPLAY=:6 aewm++ &
Aewmjj=1
DISPLAY=:6 aewm++_appbar &
DISPLAY=:6 aewm++_fspanel &
;;
olwm)
DISPLAY=:6 olwm &
Olwm=1
;;
w9wm)
DISPLAY=:6 w9wm &
W9wm=1
;;
Scrotwm)
DISPLAY=:6 scrotwm &
Scrotwm=1
;;
tritium)
DISPLAY=:6 tritium &
Tritium=1
;;
Parti)
DISPLAY=:6 parti &
Parti=1
;;
amiwm)
DISPLAY=:6 amiwm &
Amiwm=1
;;
*)
;;
esac
choicewm="${WM_LIST[$choice]}"
;;
搭配好的组合)
echo '********************************************'
echo '** 此类与面板、桌面已经搭配 **'
echo '** 请先选择一个WM **'
echo '** 选择后会全屏进入这个WM **'
echo '** 你可以尝试一下并记录需要补充什么 **'
echo '** 然后需要切换回这个窗口来继续选择 **'
echo '********************************************'
WM_LIST=( '返回上层' 'awesome(定制)' 'openbox(定制)' 'jwm(定制)' )
TOTAL_WMS=3
for ((i=0; i<=$TOTAL_WMS; i++))
do
echo "** $i. ${WM_LIST[$i]}"
done
echo ' '
read -n 1 choice
echo " "
echo "你选择了:${WM_LIST[$choice]}"
if [ $choice != 0 ];then
Xephyr :6 -fullscreen -keybd ephyr,,,xkbmodel=pc105,xkblayout=us,xkbrules=evdev,xkboption=euro -noreset -host-cursor -dpi 96 -ac -name wm -title wm &
sleep 3
fi
case ${WM_LIST[$choice]} in
awesome(定制))
DISPLAY=:6 exec awesome &
DISPLAY=:6 geany &
DISPLAY=:6 dolphin &
DISPLAY=:6 sakura &
DISPLAY=:6 chromium-browser &
DISPLAY=:6 parcellite &
DISPLAY=:6 fcitx &
Awesome=1
Parcellite=1
;;
openbox(定制))
DISPLAY=:6 openbox &
DISPLAY=:6 parcellite &
DISPLAY=:6 fcitx &
Openbox=1
Parcellite=1
;;
jwm(定制))
DISPLAY=:6 jwm &
DISPLAY=:6 rox-filer -p default &
DISPLAY=:6 parcellite &
DISPLAY=:6 fcitx &
Rox_filer=1
Parcellite=1
Jwm=1
;;
*)
;;
esac
choicewm="${WM_LIST[$choice]}"
;;
随机产生组合)
# icewm/jwm(不能使用面板托盘)
# evilwm/oroborus/metacity/kwin(只能使用lxpanel)
# wmii/Bluetile/dwm/ratpoison/stumpwm/flwm/Sawfish/fluxbox/blackbox/Openbox/pekwm/fvwm/Wmaker/AfterStep(选择面板或者托盘)
# wmii/Bluetile/dwm/ratpoison/stumpwm/fvwm/afterstep(不能选择桌面,其他随机桌面)
SWM_LIST=( 'sawfish' 'flwm' 'metacity' 'jwm' 'evilwm' 'icewm' 'oroborus' 'kwin' 'fluxbox' 'blackbox' 'openbox' 'fvwm' 'wmaker' 'afterstep' 'enlightenment_start' 'ratpoison' 'stumpwm' 'awesome' 'dwm' 'i3' 'xmonad' 'wmii' 'bluetile' 'pekwm' 'wm2')
S_RUN=2
while [ $S_RUN = 2 ];
do
CMD1=' '
CMD2='无'
CMD2_2=' '
CMD3='无'
CMD4='无'
CMD4_2=' '
rand=40
top=25
while [ "$rand" -ge $top ];
do
rand=$RANDOM
done
CMD1="${SWM_LIST[$rand]}"
if [ $CMD1 != 'awesome' ] && [ $CMD1 != 'enlightenment_start' ] ;then
if [ $CMD1 != 'icewm' ] && [ $CMD1 != 'jwm' ] ; then
if [ $CMD1 == 'evilwm' ] || [ $CMD1 == 'oroborus' ] || [ $CMD1 == 'metacity' ] || [ $CMD1 == 'kwin' ] ;then
CMD2='lxpanel'
else
rand=200
top=99
while [ "$rand" -ge $top ]; do
rand=$RANDOM
done
if [ "$rand" -ge 49 ]; then
CMD2='lxpanel'
else
CMD2='trayer'
CMD2_2=' --expand true --transparent true --alpha 255 --edge bottom --align right --expand true --SetDockType true --widthtype request'
CMD3='gpe-clock'
fi
fi
fi
if [ $CMD1 != 'wmii' ] && [ $CMD1 != 'bluetile' ] && [ $CMD1 != 'dwm' ] && [ $CMD1 != 'ratpoison' ] && [ $CMD1 != 'stumpwm' ] && [ $CMD1 != 'pekwm' ] && [ $CMD1 != 'xmonad' ] && [ $CMD1 != 'fvwm' ] && [ $CMD1 != 'afterstep' ]; then
rand=200
top=99
while [ "$rand" -ge $top ]; do
rand=$RANDOM
done
if [ "$rand" -ge 49 ]; then
CMD4='rox-filer'
CMD4_2=' -p default'
else
CMD4='pcmanfm'
CMD4_2=' --desktop'
fi
fi
fi
echo "随机抽取到以下组件:"
echo "窗口管理器: $CMD1"
if [ $CMD3 != '无' ]; then
echo "面 板: $CMD2 $CMD3"
else
echo "面 板: $CMD2"
fi
echo "桌 面: $CMD4"
echo "请选择:"
choicewm='随机组合'
SF_LIST=( '回主菜单' '确认并启动' '重新随机' )
TOTAL_WMS=2
for ((i=0; i<=$TOTAL_WMS; i++))
do
echo "** $i. ${SF_LIST[$i]} "
done
echo ' '
read -n 1 S_RUN
if [ $S_RUN = 1 ]; then
Xephyr :6 -fullscreen -keybd ephyr,,,xkbmodel=pc105,xkblayout=us,xkbrules=evdev,xkboption=euro -noreset -host-cursor -dpi 96 -ac -name wm -title wm &
sleep 3
DISPLAY=:6 $CMD1 &
if [ $CMD2 != '无' ]; then
DISPLAY=:6 $CMD2 $CMD2_2 &
fi
if [ $CMD3 != '无' ]; then
DISPLAY=:6 $CMD3 &
fi
if [ $CMD4 != '无' ]; then
DISPLAY=:6 $CMD4 $CMD4_2 &
fi
DISPLAY=:6 fcitx &
DISPLAY=:6 parcellite &
fi
done
case ${SF_LIST[$S_RUN]} in
确认并启动)
choice=1
echo '** 选择 是否帮你关闭和退出 **'
IP_LIST=( '直接回到命令行' '关闭所有选择打开的程序' )
TOTAL_WMS=1
for ((i=0; i<=$TOTAL_WMS; i++))
do
echo "** $i. ${IP_LIST[$i]}"
done
echo ' '
read -n 1 choice
echo " "
echo "你选择了:${IP_LIST[$choice]}"
case ${IP_LIST[$choice]} in
关闭所有选择打开的程序)
if [ $CMD4 != '无' ]; then
killall $CMD4 &
fi
if [ $CMD2 != '无' ]; then
killall $CMD2 &
fi
if [ $CMD3 != '无' ]; then
killall $CMD3 &
fi
killall $CMD1
;;
*)
;;
esac
;;
回主菜单)
choice=0
;;
*)
;;
esac
;;
*)
;;
esac
if [ $choice = 0 ]; then
clear
echo '**********************************'
echo '** Linux WM 搭积木程序 **'
echo '** 通过选择来搭积木 **'
echo '** 请先选择一个WM **'
echo '** 然后逐步选择其他组件 **'
echo '** 最后搭建出来一个linux桌面 **'
echo '**********************************'
echo '**********************************'
echo '** 请先选择WM类型 **'
echo '**********************************'
WML_LIST=( '直接退出' '适合“搭积木”的' 'box类' 'fvwm、Wmaker、AfterStep类' '虚拟视窗类' '平铺类' '微型WM' '无使用价值和无法使用的' '搭配好的组合' '随机产生组合')
TOTAL_WMS=9
for ((i=0; i<=$TOTAL_WMS; i++))
do
echo "** $i. ${WML_LIST[$i]} "
done
echo ' '
read -n 1 choice_wml
echo " "
echo "你选择了:${WML_LIST[$choice_wml]}"
else
choiced=1
fi
done
if [ $choice_wml != 0 ] && [ $choice_wml != 9 ]; then
if [ $choicewm != "awesome(定制)" ] && [ $choicewm != "openbox(定制)" ] && [ $choicewm != "jwm(定制)" ] && [ $choicewm != "olvwm" ] && [ $choicewm != "VTWM" ] && [ $choicewm != "i3" ] && [ $choicewm != "TinyWM" ] && [ $choicewm != "WindowLab" ] && [ $choicewm != "ctwm" ]; then
if [ $choicewm != "dwm" ] && [ $choicewm != "awesome" ] && [ $choicewm != "wmii" ] && [ $choicewm != "ratpoison" ] && [ $choicewm != "Xmonad" ] && [ $choicewm != "StumpWM" ] && [ $choicewm != "pekwm" ] && [ $choicewm != "fvwm" ] && [ $choicewm != "AfterStep" ]; then
echo '** 选择 桌面和图标 **'
ZM_LIST=( '都不启动' 'Rox-filer' 'PcmanFM' )
TOTAL_WMS=2
for ((i=0; i<=$TOTAL_WMS; i++))
do
echo "** $i. ${ZM_LIST[$i]}"
done
echo ' '
read -n 1 choice
echo " "
echo "你选择了:${ZM_LIST[$choice]}"
case ${ZM_LIST[$choice]} in
Rox-filer)
DISPLAY=:6 rox-filer -p default &
Rox_filer=1
;;
PcmanFM)
DISPLAY=:6 pcmanfm --desktop &
Pcmanfm=1
;;
*)
;;
esac
else
echo '** 这个WM不能使用桌面和图标 **'
fi
if [ $choicewm != "Icewm" ] && [ $choicewm != "Jwm" ] && [ $choicewm != "Flwm" ] && [ $choicewm != "awesome" ] && [ $choicewm != "Xmonad" ]; then
if [ $choicewm == "evilwm" ] || [ $choicewm == "metacity" ] || [ $choicewm == "Oroborus" ] || [ $choicewm == "kde_window_manager" ];then
echo '** 你选择的WM本身没有任何菜单 **'
echo '** 强制选择”Lxpanel(带菜单面板)“ **'
DISPLAY=:6 lxpanel &
Lxpanel=1
else
echo ''
echo ''
echo '** 选择面板和托盘 **'
PA_LIST=( '都不启动' 'Trayer(托盘)' 'Tint2(面板)' 'Lxpanel(带菜单面板)' )
TOTAL_WMS=3
for ((i=0; i<=$TOTAL_WMS; i++))
do
echo "** $i. ${PA_LIST[$i]}"
done
echo ' '
read -n 1 choice
echo " "
echo "你选择了:${PA_LIST[$choice]}"
case ${PA_LIST[$choice]} in
Trayer(托盘))
DISPLAY=:6 trayer --expand true --transparent true --alpha 255 --edge bottom --align right --expand true --SetDockType true --widthtype request &
Trayer=1
echo ' '
echo ''
echo '** 选择 托盘时钟 **'
CK_LIST=( '不启动' 'gpe-clock(托盘时钟)' )
TOTAL_WMS=1
for ((i=0; i<=$TOTAL_WMS; i++))
do
echo "** $i. ${CK_LIST[$i]}"
done
echo ' '
read -n 1 choice
echo " "
echo "你选择了:${CK_LIST[$choice]}"
case ${CK_LIST[$choice]} in
gpe-clock(托盘时钟))
DISPLAY=:6 gpe-clock &
Gpe_clock=1
;;
不启动)
;;
*)
;;
esac
;;
Tint2(面板))
DISPLAY=:6 tint2 &
Tint2=1
;;
Lxpanel(带菜单面板))
DISPLAY=:6 lxpanel &
Lxpanel=1
;;
都不启动)
;;
*)
;;
esac
fi
else
if [ $choicewm == "Flwm" ] || [ $choicewm == "Xmonad" ]; then
echo '** 这个 WM 与面板配合效果不好 **'
echo '** 强制选择 Trayer(托盘)+ gpe-clock **'
DISPLAY=:6 trayer --expand true --transparent true --alpha 255 --edge bottom --align right --expand true --SetDockType true --widthtype request &
DISPLAY=:6 gpe-clock &
Gpe_clock=1
Trayer=1
else
echo '** 忽略对面板和时钟的选择 **'
fi
fi
if [ $choicewm != "dwm" ] && [ $choicewm != "awesome" ] && [ $choicewm != "Xmonad" ]; then
echo '** 选择 是否启动独立时钟 **'
CK_LIST=( '不启动' 'asclock(独立时钟)' )
TOTAL_WMS=1
for ((i=0; i<=$TOTAL_WMS; i++))
do
echo "** $i. ${CK_LIST[$i]}"
done
echo ' '
read -n 1 choice
echo " "
echo "你选择了:${CK_LIST[$choice]}"
case ${CK_LIST[$choice]} in
asclock(独立时钟))
echo '** 选择 时钟样式 **'
CF_LIST=( ' ' 'classic' 'Orb' 'Stone' 'Newstone' 'Freeamp' 'Freeamp-es' 'penguin' 'shaped' 'beats' )
TOTAL_WMS=9
for ((i=1; i<=$TOTAL_WMS; i++))
do
echo "** $i. ${CF_LIST[$i]}"
done
echo ' '
read -n 1 choice
echo " "
echo "你选择了:${CF_LIST[$choice]}"
case ${CF_LIST[$choice]} in
classic)
DISPLAY=:6 asclock -theme classic &
;;
Orb)
DISPLAY=:6 asclock -theme Orb &
;;
Stone)
DISPLAY=:6 asclock -theme Stone &
;;
Newston)
DISPLAY=:6 asclock -theme Newston &
;;
Freeamp)
DISPLAY=:6 asclock -theme Freeamp &
;;
Freeamp-es)
DISPLAY=:6 asclock -theme Freeamp-es &
;;
penguin)
DISPLAY=:6 asclock -theme penguin &
;;
shaped)
DISPLAY=:6 asclock -theme shaped &
;;
beats)
DISPLAY=:6 asclock -theme beats &
;;
*)
;;
esac
Asclock=1
;;
不启动)
;;
*)
;;
esac
else
echo '** 这个WM不能使用桌面部件 **'
fi
echo '** 选择 全局剪切板 **'
PT_LIST=( '不启用' 'Parcellite' 'Klipper' )
TOTAL_WMS=2
for ((i=0; i<=$TOTAL_WMS; i++))
do
echo "** $i. ${PT_LIST[$i]}"
done
echo ' '
read -n 1 choice
echo " "
echo "你选择了:${PT_LIST[$choice]}"
case ${PT_LIST[$choice]} in
Parcellite)
DISPLAY=:6 parcellite &
Parcellite=1
;;
Klipper)
DISPLAY=:6 klipper &
Klipper=1
;;
不启用)
;;
*)
;;
esac
clear
echo '** 选择 输入法 **'
IP_LIST=( '不启用' 'Fcitx' )
TOTAL_WMS=1
for ((i=0; i<=$TOTAL_WMS; i++))
do
echo "** $i. ${IP_LIST[$i]}"
done
echo ' '
read -n 1 choice
echo " "
echo "你选择了:${IP_LIST[$choice]}"
case ${IP_LIST[$choice]} in
Fcitx)
DISPLAY=:6 fcitx &
;;
不启用)
;;
*)
;;
esac
clear
echo '** 选择 音量控制 **'
IP_LIST=( '不启用' 'KMix' )
TOTAL_WMS=1
for ((i=0; i<=$TOTAL_WMS; i++))
do
echo "** $i. ${IP_LIST[$i]}"
done
echo ' '
read -n 1 choice
echo " "
echo "你选择了:${IP_LIST[$choice]}"
case ${IP_LIST[$choice]} in
KMix)
DISPLAY=:6 kmix &
Kmix=1
;;
不启用)
;;
*)
;;
esac
else
echo '** 由于WM不支持(或已定制) **'
echo '** 已经忽略对桌面、面板、输入法 **'
echo '** 音量控制、剪切板、时钟的选择 **'
echo '** 如果确有需要,请到WM中去启动 **'
fi
if [ $choicewm != "dwm" ] && [ $choicewm != "awesome" ] && [ $choicewm != "i3" ] && [ $choicewm != "Xmonad" ]; then
echo ' '
echo '** 选择 系统监控 **'
IP_LIST=( '不启用' 'conky' 'gkrellm' )
TOTAL_WMS=2
for ((i=0; i<=$TOTAL_WMS; i++))
do
echo "** $i. ${IP_LIST[$i]}"
done
echo ' '
read -n 1 choice
echo " "
echo "你选择了:${IP_LIST[$choice]}"
case ${IP_LIST[$choice]} in
conky)
DISPLAY=:6 conky -c ~/.conky/conky_right -quiet &
Conky=1
;;
gkrellm)
DISPLAY=:6 gkrellm &
Gkrellm=1
;;
不启用)
;;
*)
;;
esac
sleep 2
choice=1
clear
while [ $choice != 0 ]; do
clear
echo '** 选择 可选组件 **'
echo '** 本选项将反复出现,以便多选 **'
echo '** 按 0 退出 **'
IP_LIST=( '退出' 'bbrun(“运行”按钮)' 'wmmemload(内存状况)' 'wmmount(硬盘空间)' 'wmifs(网络)' 'Wmforkplop(进程)' 'WMCPULoad(cpu)' 'kmail(邮件监控)' 'Backstep(缩小窗口为图标)' 'DeskMenu(桌面菜单)' 'gdesklets(桌面部件)' )
TOTAL_WMS=9
for ((i=0; i<=$TOTAL_WMS; i++))
do
echo "** $i. ${IP_LIST[$i]}"
done
echo ' '
read -n 1 choice
echo " "
echo "你选择了:${IP_LIST[$choice]}"
case ${IP_LIST[$choice]} in
kmail(邮件监控))
DISPLAY=:6 kmail &
Kmail=1
;;
bbrun(“运行”按钮))
DISPLAY=:6 bbrun &
Bbrun=1
;;
Backstep(缩小窗口为图标))
DISPLAY=:6 backstep &
Backstep=1
;;
wmmemload(内存状况))
DISPLAY=:6 wmmemload &
Wmmemload=1
;;
wmmount(硬盘空间))
DISPLAY=:6 wmmount &
Wmmount=1
;;
WMCPULoad(cpu))
DISPLAY=:6 wmcpuload &
Wmcpuload=1
;;
wmifs(网络))
DISPLAY=:6 wmifs &
Wmifs=1
;;
Wmforkplop(进程))
DISPLAY=:6 wmforkplop &
Wmforkplop=1
;;
DeskMenu(桌面菜单))
DISPLAY=:6 deskmenu &
Deskmenu=1
;;
gdesklets(桌面部件))
DISPLAY=:6 gdesklets &
Gdesklets=1
;;
*)
;;
esac
done
else
echo '** 这个WM不能使用桌面部件 **'
fi
echo '**************************************'
echo '** 积木搭建成功,祝你愉快 **'
echo '**************************************'
#下面开始KILLALL掉进程
echo '** 选择 是否帮你关闭和退出 **'
IP_LIST=( '直接回到命令行' '关闭所有选择打开的程序' )
TOTAL_WMS=1
for ((i=0; i<=$TOTAL_WMS; i++))
do
echo "** $i. ${IP_LIST[$i]}"
done
echo ' '
read -n 1 choice
echo " "
echo "你选择了:${IP_LIST[$choice]}"
case ${IP_LIST[$choice]} in
关闭所有选择打开的程序)
if [ $Kmail == 1 ]; then
killall kmail &
fi
if [ $Kmix == 1 ]; then
killall kmix &
fi
if [ $Bbrun == 1 ]; then
killall bbrun &
fi
if [ $Asclock == 1 ]; then
killall asclock &
fi
if [ $Gpe_clock == 1 ]; then
killall gpe-clock &
fi
if [ $Deskmenu == 1 ]; then
killall deskmenu &
fi
if [ $Trayer == 1 ]; then
killall trayer &
fi
if [ $Lxpanel == 1 ]; then
killall lxpanel &
fi
if [ $Tint2 == 1 ]; then
killall tint2 &
fi
if [ $Pcmanfm == 1 ]; then
killall pcmanfm &
fi
if [ $Rox_filer == 1 ]; then
killall rox-filer &
fi
if [ $Backstep == 1 ]; then
killall backstep &
fi
if [ $Wmbubble == 1 ]; then
killall wmbubble &
fi
if [ $Wmcpuload == 1 ]; then
killall wmcpuload &
fi
if [ $Wmforkplop == 1 ]; then
killall wmforkplop &
fi
if [ $Wmifs == 1 ]; then
killall wmifs &
fi
if [ $Wmmemload == 1 ]; then
killall wmmemload &
fi
if [ $Wmmount == 1 ]; then
killall wmmount &
fi
if [ $Gkrellm == 1 ]; then
killall gkrellm &
fi
if [ $Gdesklets == 1 ]; then
killall gdesklets &
fi
if [ $Conky == 1 ]; then
killall conky &
fi
if [ $Parcellite == 1 ]; then
killall parcellite &
fi
if [ $Klipper == 1 ]; then
killall klipper &
fi
if [ $Z9wm == 1 ]; then
killall 9wm &
fi
if [ $Aewm == 1 ]; then
killall awm &
fi
if [ $Aewmjj == 1 ]; then
killall aewm* &
fi
if [ $Amiwm == 1 ]; then
killall amiwm &
fi
if [ $Afterstep == 1 ]; then
killall afterstep &
fi
if [ $Awesome == 1 ]; then
killall awesome &
fi
if [ $Blackbox == 1 ]; then
killall blackbox &
fi
if [ $Bluetile == 1 ]; then
killall bluetile &
fi
if [ $Ctwm == 1 ]; then
killall ctwm &
fi
if [ $Dwm == 1 ]; then
killall dwm &
fi
if [ $E17 == 1 ]; then
killall enlightenment &
fi
if [ $Evilwm == 1 ]; then
killall evilwm &
fi
if [ $Fluxbox == 1 ]; then
killall fluxbox &
fi
if [ $Flwm == 1 ]; then
killall flwm &
fi
if [ $Fvwm == 1 ]; then
killall fvwm &
fi
if [ $I3 == 1 ]; then
killall i3 &
fi
if [ $Icewm == 1 ]; then
killall icewm &
fi
if [ $Jwm == 1 ]; then
killall jwm &
fi
if [ $Kde_window_manager == 1 ]; then
killall kwin &
fi
if [ $Lwm == 1 ]; then
killall lwm &
fi
if [ $Metacity == 1 ]; then
killall metacity &
fi
if [ $Miwm == 1 ]; then
killall miwm &
fi
if [ $Olvwm == 1 ]; then
killall olvwm &
fi
if [ $Olwm == 1 ]; then
killall olwm &
fi
if [ $Openbox == 1 ]; then
killall openbox &
fi
if [ $Oroborus == 1 ]; then
killall oroborus &
fi
if [ $Parti == 1 ]; then
killall parti &
fi
if [ $Pekwm == 1 ]; then
killall pekwm &
fi
if [ $Ratpoison == 1 ]; then
killall ratpoison &
fi
if [ $Sapphire == 1 ]; then
killall sapphire &
fi
if [ $Sawfish == 1 ]; then
killall sawfish &
fi
if [ $Scrotwm == 1 ]; then
killall scrotwm &
fi
if [ $Stumpwm == 1 ]; then
killall stumpwm &
fi
if [ $Tinywm == 1 ]; then
killall tinywm &
fi
if [ $Vtwm == 1 ]; then
killall vtwm &
fi
if [ $W9wm == 1 ]; then
killall w9wm &
fi
if [ $WindowLab == 1 ]; then
killall windowLab &
fi
if [ $Wm2 == 1 ]; then
killall wm2 &
fi
if [ $Wmaker == 1 ]; then
killall wmaker &
fi
if [ $Wmii == 1 ]; then
killall wmii &
fi
if [ $Tritium == 1 ]; then
killall tritium &
fi
if [ $Xmonad == 1 ]; then
killall xmonad &
fi
;;
直接回到命令行)
;;
*)
;;
esac
fi
echo '**************************************'
echo '** 谢谢使用,祝你愉快 **'
echo '**************************************'
[/bash]
下面是本程序的执行效果:
初始选单 分别选择初始选单的1-9,出现以下效果: 如果从1-7中选择了一个WM后,需要进行后续的选择。
而8、9两项不需要后续的选择,直接启动进入。
有时本终端窗口会被新选择的WM窗口盖住,为了看到效果,需要用alt-tab之类切换窗口的快捷键来回切换。
有些选择是智能化的,即根据你所选的WM的特点,帮你直接选择一些选项,或者直接避免你选到不合适的选项。
选择过程中有时会受到所选的程序的终端提示的困扰,把选项冲的有点乱。 最终的效果(之一): 然后还有一个选项: 这是为了让你完成工作和测试后,能够比较干净的kill掉进程的,
注意:他会kill掉主WM中同名进程,所以请判断后再选择。
注意:要在图形界面(主WM)的一个虚拟桌面上面打开一个终端,在里面调用这个文件。
(有改动:加上了自动KILL进程功能,增加了一些选择的智能化--2011.08.14)
(有改动:加上了Xmonad的支持,去掉了不能正常启动的tritium、larswm,将Stumpwm归类改变到“平铺”类---2011.08.15)
(有改动:WM分类改变了一下,加上了一个:Bluetile----2011.08.16)
(有改动:加上一个“随机抽取WM功能,可以随机搭配组合----2011.08.17”)
[bash]
#!/bin/bash
#xstarter.sh
#need to assign the $TERM comparison to a variable
#same goes for the console comparison
choice=0
choiced=0
choicewm=' '
#下面变量是记录哪些程序被启动,文件结束时,会KILLALL掉他们
Z9wm=0
Aewm=0
Aewmjj=0
Amiwm=0
Afterstep=0
Awesome=0
Blackbox=0
Bluetile=0
Ctwm=0
Dwm=0
E17=0
Evilwm=0
Fluxbox=0
Flwm=0
Fvwm=0
I3=0
Icewm=0
Jwm=0
Kde_window_manager=0
Lwm=0
Metacity=0
Miwm=0
Metacity=0
Olvwm=0
Olwm=0
Openbox=0
Oroborus=0
Parti=0
Pekwm=0
Ratpoison=0
Sapphire=0
Sawfish=0
Scrotwm=0
Stumpwm=0
Tinywm=0
Tritium=0
Vtwm=0
W9wm=0
WindowLab=0
Wm2=0
Wmaker=0
Wmii=0
Xmonad=0
Kmail=0
Kmix=0
Bbrun=0
Asclock=0
Gpe_clock=0
Deskmenu=0
Trayer=0
Lxpanel=0
Tint2=0
Pcmanfm=0
Rox_filer=0
Backstep=0
Wmbubble=0
Wmcpuload=0
Wmforkplop=0
Wmifs=0
Wmmemload=0
Wmmount=0
Gkrellm=0
Gdesklets=0
Conky=0
Parcellite=0
Klipper=0
echo '**********************************'
echo '** Linux WM 搭积木程序 **'
echo '** 通过选择来搭积木 **'
echo '** 请先选择一个WM **'
echo '** 然后逐步选择其他组件 **'
echo '** 最后搭建出来一个linux桌面 **'
echo '**********************************'
echo '**********************************'
echo '** 请先选择WM类型 **'
echo '**********************************'
WML_LIST=( '直接退出' '适合“搭积木”的' 'box类' 'fvwm、Wmaker、AfterStep类' '虚拟视窗类' '平铺类' '微型WM' '无使用价值和无法使用的' '搭配好的组合' '随机产生组合' )
TOTAL_WMS=9
for ((i=0; i<=$TOTAL_WMS; i++))
do
echo "** $i. ${WML_LIST[$i]} "
done
echo ' '
read -n 1 choice_wml
echo ' '
echo "你选择了:${WML_LIST[$choice_wml]}"
while [ $choice = 0 ] && [ $choice_wml != 0 ] && [ $choiced = 0 ]; do
case ${WML_LIST[$choice_wml]} in
直接退出)
;;
适合“搭积木”的)
echo '********************************************'
echo '** 现在开始选择我适合搭积木的WM **'
echo '** 请先选择一个WM **'
echo '** 选择后会全屏进入这个WM **'
echo '** 你可以尝试一下并记录需要补充什么 **'
echo '** 然后需要切换回这个窗口来继续选择 **'
echo '********************************************'
WM_LIST=( '返回上层' 'Sawfish' 'Flwm' 'metacity' 'Jwm' 'evilwm' 'Icewm' 'Oroborus' 'kde_window_manager')
TOTAL_WMS=8
for ((i=0; i<=$TOTAL_WMS; i++))
do
echo "** $i. ${WM_LIST[$i]}"
done
echo ' '
read -n 1 choice
echo ' '
echo "你选择了:${WM_LIST[$choice]}"
if [ $choice != 0 ];then
Xephyr :6 -fullscreen -keybd ephyr,,,xkbmodel=pc105,xkblayout=us,xkbrules=evdev,xkboption=euro -noreset -host-cursor -dpi 96 -ac -name wm -title wm &
sleep 3
fi
case ${WM_LIST[$choice]} in
Sawfish)
DISPLAY=:6 sawfish &
Sawfish=1
;;
Flwm)
DISPLAY=:6 flwm &
Flwm=1
;;
metacity)
DISPLAY=:6 exec metacity &
Metacity=1
;;
Jwm)
DISPLAY=:6 jwm &
Jwm=1
echo '** JWM自带面板、托盘和时钟, **'
;;
evilwm)
DISPLAY=:6 evilwm &
Evilwm=1
echo '** 请用CTRL+ALT+鼠标来控制调整窗口 **'
echo '** 请用CTRL+ALT+ESC 关闭窗口 **'
echo '** 请用CTRL+ALT+Return打开终端 **'
echo '** 其他快捷键请查询帮助 **'
;;
Icewm)
DISPLAY=:6 icewm &
Icewm=1
echo '** Icewm自带面板、托盘和时钟, **'
;;
kde_window_manager)
DISPLAY=:6 kwin &
Kwin=1
;;
Oroborus)
DISPLAY=:6 oroborus &
Oroborus=1
;;
*)
;;
esac
choicewm="${WM_LIST[$choice]}"
;;
box类)
echo '********************************************'
echo '** 此类可定义自启动程序 **'
echo '** 注意不要重复启动和冲突 **'
echo '** 请先选择一个WM **'
echo '** 选择后会全屏进入这个WM **'
echo '** 你可以尝试一下并记录需要补充什么 **'
echo '** 然后需要切换回这个窗口来继续选择 **'
echo '********************************************'
WM_LIST=( '返回上层' 'fluxbox' 'blackbox' 'Openbox' 'Sapphire')
TOTAL_WMS=4
for ((i=0; i<=$TOTAL_WMS; i++))
do
echo "** $i. ${WM_LIST[$i]}"
done
echo ' '
read -n 1 choice
echo " "
echo "你选择了:${WM_LIST[$choice]}"
if [ $choice != 0 ];then
Xephyr :6 -fullscreen -keybd ephyr,,,xkbmodel=pc105,xkblayout=us,xkbrules=evdev,xkboption=euro -noreset -host-cursor -dpi 96 -ac -name wm -title wm &
sleep 3
fi
case ${WM_LIST[$choice]} in
fluxbox)
DISPLAY=:6 fluxbox &
Fluxbox=1
;;
blackbox)
DISPLAY=:6 blackbox &
Blackbox=1
;;
Openbox)
DISPLAY=:6 openbox &
Openbox=1
;;
Sapphire)
DISPLAY=:6 sapphire &
Sapphire=1
;;
*)
;;
esac
choicewm="${WM_LIST[$choice]}"
;;
fvwm、Wmaker、AfterStep类)
echo '********************************************'
echo '** 注意 此类WM自带壁纸 **'
echo '** 请先选择一个WM **'
echo '** 选择后会全屏进入这个WM **'
echo '** 你可以尝试一下并记录需要补充什么 **'
echo '** 然后需要切换回这个窗口来继续选择 **'
echo '********************************************'
WM_LIST=( '返回上层' 'fvwm' 'Wmaker' 'AfterStep' 'e17')
TOTAL_WMS=4
for ((i=0; i<=$TOTAL_WMS; i++))
do
echo "** $i. ${WM_LIST[$i]}"
done
echo ' '
read -n 1 choice
echo " "
echo "你选择了:${WM_LIST[$choice]}"
if [ $choice != 0 ];then
Xephyr :6 -fullscreen -keybd ephyr,,,xkbmodel=pc105,xkblayout=us,xkbrules=evdev,xkboption=euro -noreset -host-cursor -dpi 96 -ac -name wm -title wm &
sleep 3
fi
case ${WM_LIST[$choice]} in
fvwm)
DISPLAY=:6 exec fvwm &
Fvwm=1
;;
Wmaker)
DISPLAY=:6 exec wmaker &
Wmaker=1
;;
AfterStep)
DISPLAY=:6 afterstep &
Afterstep=1
;;
e17)
DISPLAY=:6 enlightenment_start &
E17=1
;;
*)
;;
esac
choicewm="${WM_LIST[$choice]}"
;;
虚拟视窗类)
echo '********************************************'
echo '** 此类与面板、桌面无法配合 **'
echo '** 请先选择一个WM **'
echo '** 选择后会全屏进入这个WM **'
echo '** 你可以尝试一下并记录需要补充什么 **'
echo '** 然后需要切换回这个窗口来继续选择 **'
echo '********************************************'
WM_LIST=( '返回上层' 'olvwm' 'VTWM' )
TOTAL_WMS=2
for ((i=0; i<=$TOTAL_WMS; i++))
do
echo "** $i. ${WM_LIST[$i]}"
done
echo ' '
read -n 1 choice
echo " "
echo "你选择了:${WM_LIST[$choice]}"
if [ $choice != 0 ];then
Xephyr :6 -fullscreen -keybd ephyr,,,xkbmodel=pc105,xkblayout=us,xkbrules=evdev,xkboption=euro -noreset -host-cursor -dpi 96 -ac -name wm -title wm &
sleep 3
fi
case ${WM_LIST[$choice]} in
olvwm)
DISPLAY=:6 olvwm &
Olvwm=1
;;
VTWM)
DISPLAY=:6 vtwm &
Vtwm=1
;;
*)
;;
esac
choicewm="${WM_LIST[$choice]}"
;;
平铺类)
echo '********************************************'
echo '** 此类与面板、桌面可能无法配合 **'
echo '** 请先选择一个WM **'
echo '** 选择后会全屏进入这个WM **'
echo '** 你可以尝试一下并记录需要补充什么 **'
echo '** 然后需要切换回这个窗口来继续选择 **'
echo '********************************************'
WM_LIST=( '返回上层' 'ratpoison' 'StumpWM' 'awesome' 'dwm' 'i3' 'Xmonad' 'wmii' 'Bluetile')
TOTAL_WMS=8
for ((i=0; i<=$TOTAL_WMS; i++))
do
echo "** $i. ${WM_LIST[$i]}"
done
echo ' '
read -n 1 choice
echo " "
echo "你选择了:${WM_LIST[$choice]}"
if [ $choice != 0 ];then
Xephyr :6 -fullscreen -keybd ephyr,,,xkbmodel=pc105,xkblayout=us,xkbrules=evdev,xkboption=euro -noreset -host-cursor -dpi 96 -ac -name wm -title wm &
sleep 3
fi
case ${WM_LIST[$choice]} in
awesome)
DISPLAY=:6 awesome &
Awesome=1
;;
dwm)
DISPLAY=:6 dwm &
Dwm=1
;;
i3)
DISPLAY=:6 i3 &
I3=1
;;
ratpoison)
DISPLAY=:6 ratpoison &
Ratpoison=1
;;
StumpWM)
DISPLAY=:6 stumpwm &
Stumpwm=1
;;
Xmonad)
DISPLAY=:6 xmonad &
Xmonad=1
;;
wmii)
DISPLAY=:6 wmii &
Wmii=1
;;
Bluetile)
DISPLAY=:6 bluetile &
Bluetile=1
;;
*)
;;
esac
choicewm="${WM_LIST[$choice]}"
;;
微型WM)
echo '********************************************'
echo '** 此类与面板、桌面可能无法配合 **'
echo '** 请先选择一个WM **'
echo '** 选择后会全屏进入这个WM **'
echo '** 你可以尝试一下并记录需要补充什么 **'
echo '** 然后需要切换回这个窗口来继续选择 **'
echo '********************************************'
WM_LIST=( '返回上层' 'ctwm' 'LWM' 'MIWM' 'pekwm' 'TinyWM' 'WindowLab' 'wm2')
TOTAL_WMS=7
for ((i=0; i<=$TOTAL_WMS; i++))
do
echo "** $i. ${WM_LIST[$i]}"
done
echo ' '
read -n 1 choice
echo " "
echo "你选择了:${WM_LIST[$choice]}"
if [ $choice != 0 ];then
Xephyr :6 -fullscreen -keybd ephyr,,,xkbmodel=pc105,xkblayout=us,xkbrules=evdev,xkboption=euro -noreset -host-cursor -dpi 96 -ac -name wm -title wm &
sleep 3
fi
case ${WM_LIST[$choice]} in
ctwm)
DISPLAY=:6 ctwm &
Ctwm=1
;;
LWM)
DISPLAY=:6 lwm &
Lwm=1
;;
MIWM)
DISPLAY=:6 miwm &
Miwm=1
;;
pekwm)
DISPLAY=:6 pekwm &
Pekwm=1
;;
TinyWM)
DISPLAY=:6 tinywm &
Tinywm=1
;;
WindowLab)
DISPLAY=:6 windowlab &
Windowlab=1
;;
wm2)
DISPLAY=:6 wm2 &
Wm2=1
;;
*)
;;
esac
choicewm="${WM_LIST[$choice]}"
;;
无使用价值和无法使用的)
echo '********************************************'
echo '** 此类与面板、桌面可能无法配合 **'
echo '** 此类WM也许有BUG,慎用 **'
echo '** 请先选择一个WM **'
echo '** 选择后会全屏进入这个WM **'
echo '** 你可以尝试一下并记录需要补充什么 **'
echo '** 然后需要切换回这个窗口来继续选择 **'
echo '********************************************'
WM_LIST=( '返回上层' '9wm' 'aewm' 'aewm++' 'olwm' 'w9wm' 'Scrotwm' 'tritium' 'Parti' 'amiwm')
TOTAL_WMS=9
for ((i=0; i<=$TOTAL_WMS; i++))
do
echo "** $i. ${WM_LIST[$i]}"
done
echo ' '
read -n 1 choice
echo " "
echo "你选择了:${WM_LIST[$choice]}"
if [ $choice != 0 ];then
Xephyr :6 -fullscreen -keybd ephyr,,,xkbmodel=pc105,xkblayout=us,xkbrules=evdev,xkboption=euro -noreset -host-cursor -dpi 96 -ac -name wm -title wm &
sleep 3
fi
case ${WM_LIST[$choice]} in
9wm)
DISPLAY=:6 9wm &
Z9wm=1
;;
aewm)
DISPLAY=:6 aewm &
Aewm=1
;;
aewm++)
DISPLAY=:6 aewm++ &
Aewmjj=1
DISPLAY=:6 aewm++_appbar &
DISPLAY=:6 aewm++_fspanel &
;;
olwm)
DISPLAY=:6 olwm &
Olwm=1
;;
w9wm)
DISPLAY=:6 w9wm &
W9wm=1
;;
Scrotwm)
DISPLAY=:6 scrotwm &
Scrotwm=1
;;
tritium)
DISPLAY=:6 tritium &
Tritium=1
;;
Parti)
DISPLAY=:6 parti &
Parti=1
;;
amiwm)
DISPLAY=:6 amiwm &
Amiwm=1
;;
*)
;;
esac
choicewm="${WM_LIST[$choice]}"
;;
搭配好的组合)
echo '********************************************'
echo '** 此类与面板、桌面已经搭配 **'
echo '** 请先选择一个WM **'
echo '** 选择后会全屏进入这个WM **'
echo '** 你可以尝试一下并记录需要补充什么 **'
echo '** 然后需要切换回这个窗口来继续选择 **'
echo '********************************************'
WM_LIST=( '返回上层' 'awesome(定制)' 'openbox(定制)' 'jwm(定制)' )
TOTAL_WMS=3
for ((i=0; i<=$TOTAL_WMS; i++))
do
echo "** $i. ${WM_LIST[$i]}"
done
echo ' '
read -n 1 choice
echo " "
echo "你选择了:${WM_LIST[$choice]}"
if [ $choice != 0 ];then
Xephyr :6 -fullscreen -keybd ephyr,,,xkbmodel=pc105,xkblayout=us,xkbrules=evdev,xkboption=euro -noreset -host-cursor -dpi 96 -ac -name wm -title wm &
sleep 3
fi
case ${WM_LIST[$choice]} in
awesome(定制))
DISPLAY=:6 exec awesome &
DISPLAY=:6 geany &
DISPLAY=:6 dolphin &
DISPLAY=:6 sakura &
DISPLAY=:6 chromium-browser &
DISPLAY=:6 parcellite &
DISPLAY=:6 fcitx &
Awesome=1
Parcellite=1
;;
openbox(定制))
DISPLAY=:6 openbox &
DISPLAY=:6 parcellite &
DISPLAY=:6 fcitx &
Openbox=1
Parcellite=1
;;
jwm(定制))
DISPLAY=:6 jwm &
DISPLAY=:6 rox-filer -p default &
DISPLAY=:6 parcellite &
DISPLAY=:6 fcitx &
Rox_filer=1
Parcellite=1
Jwm=1
;;
*)
;;
esac
choicewm="${WM_LIST[$choice]}"
;;
随机产生组合)
# icewm/jwm(不能使用面板托盘)
# evilwm/oroborus/metacity/kwin(只能使用lxpanel)
# wmii/Bluetile/dwm/ratpoison/stumpwm/flwm/Sawfish/fluxbox/blackbox/Openbox/pekwm/fvwm/Wmaker/AfterStep(选择面板或者托盘)
# wmii/Bluetile/dwm/ratpoison/stumpwm/fvwm/afterstep(不能选择桌面,其他随机桌面)
SWM_LIST=( 'sawfish' 'flwm' 'metacity' 'jwm' 'evilwm' 'icewm' 'oroborus' 'kwin' 'fluxbox' 'blackbox' 'openbox' 'fvwm' 'wmaker' 'afterstep' 'enlightenment_start' 'ratpoison' 'stumpwm' 'awesome' 'dwm' 'i3' 'xmonad' 'wmii' 'bluetile' 'pekwm' 'wm2')
S_RUN=2
while [ $S_RUN = 2 ];
do
CMD1=' '
CMD2='无'
CMD2_2=' '
CMD3='无'
CMD4='无'
CMD4_2=' '
rand=40
top=25
while [ "$rand" -ge $top ];
do
rand=$RANDOM
done
CMD1="${SWM_LIST[$rand]}"
if [ $CMD1 != 'awesome' ] && [ $CMD1 != 'enlightenment_start' ] ;then
if [ $CMD1 != 'icewm' ] && [ $CMD1 != 'jwm' ] ; then
if [ $CMD1 == 'evilwm' ] || [ $CMD1 == 'oroborus' ] || [ $CMD1 == 'metacity' ] || [ $CMD1 == 'kwin' ] ;then
CMD2='lxpanel'
else
rand=200
top=99
while [ "$rand" -ge $top ]; do
rand=$RANDOM
done
if [ "$rand" -ge 49 ]; then
CMD2='lxpanel'
else
CMD2='trayer'
CMD2_2=' --expand true --transparent true --alpha 255 --edge bottom --align right --expand true --SetDockType true --widthtype request'
CMD3='gpe-clock'
fi
fi
fi
if [ $CMD1 != 'wmii' ] && [ $CMD1 != 'bluetile' ] && [ $CMD1 != 'dwm' ] && [ $CMD1 != 'ratpoison' ] && [ $CMD1 != 'stumpwm' ] && [ $CMD1 != 'pekwm' ] && [ $CMD1 != 'xmonad' ] && [ $CMD1 != 'fvwm' ] && [ $CMD1 != 'afterstep' ]; then
rand=200
top=99
while [ "$rand" -ge $top ]; do
rand=$RANDOM
done
if [ "$rand" -ge 49 ]; then
CMD4='rox-filer'
CMD4_2=' -p default'
else
CMD4='pcmanfm'
CMD4_2=' --desktop'
fi
fi
fi
echo "随机抽取到以下组件:"
echo "窗口管理器: $CMD1"
if [ $CMD3 != '无' ]; then
echo "面 板: $CMD2 $CMD3"
else
echo "面 板: $CMD2"
fi
echo "桌 面: $CMD4"
echo "请选择:"
choicewm='随机组合'
SF_LIST=( '回主菜单' '确认并启动' '重新随机' )
TOTAL_WMS=2
for ((i=0; i<=$TOTAL_WMS; i++))
do
echo "** $i. ${SF_LIST[$i]} "
done
echo ' '
read -n 1 S_RUN
if [ $S_RUN = 1 ]; then
Xephyr :6 -fullscreen -keybd ephyr,,,xkbmodel=pc105,xkblayout=us,xkbrules=evdev,xkboption=euro -noreset -host-cursor -dpi 96 -ac -name wm -title wm &
sleep 3
DISPLAY=:6 $CMD1 &
if [ $CMD2 != '无' ]; then
DISPLAY=:6 $CMD2 $CMD2_2 &
fi
if [ $CMD3 != '无' ]; then
DISPLAY=:6 $CMD3 &
fi
if [ $CMD4 != '无' ]; then
DISPLAY=:6 $CMD4 $CMD4_2 &
fi
DISPLAY=:6 fcitx &
DISPLAY=:6 parcellite &
fi
done
case ${SF_LIST[$S_RUN]} in
确认并启动)
choice=1
echo '** 选择 是否帮你关闭和退出 **'
IP_LIST=( '直接回到命令行' '关闭所有选择打开的程序' )
TOTAL_WMS=1
for ((i=0; i<=$TOTAL_WMS; i++))
do
echo "** $i. ${IP_LIST[$i]}"
done
echo ' '
read -n 1 choice
echo " "
echo "你选择了:${IP_LIST[$choice]}"
case ${IP_LIST[$choice]} in
关闭所有选择打开的程序)
if [ $CMD4 != '无' ]; then
killall $CMD4 &
fi
if [ $CMD2 != '无' ]; then
killall $CMD2 &
fi
if [ $CMD3 != '无' ]; then
killall $CMD3 &
fi
killall $CMD1
;;
*)
;;
esac
;;
回主菜单)
choice=0
;;
*)
;;
esac
;;
*)
;;
esac
if [ $choice = 0 ]; then
clear
echo '**********************************'
echo '** Linux WM 搭积木程序 **'
echo '** 通过选择来搭积木 **'
echo '** 请先选择一个WM **'
echo '** 然后逐步选择其他组件 **'
echo '** 最后搭建出来一个linux桌面 **'
echo '**********************************'
echo '**********************************'
echo '** 请先选择WM类型 **'
echo '**********************************'
WML_LIST=( '直接退出' '适合“搭积木”的' 'box类' 'fvwm、Wmaker、AfterStep类' '虚拟视窗类' '平铺类' '微型WM' '无使用价值和无法使用的' '搭配好的组合' '随机产生组合')
TOTAL_WMS=9
for ((i=0; i<=$TOTAL_WMS; i++))
do
echo "** $i. ${WML_LIST[$i]} "
done
echo ' '
read -n 1 choice_wml
echo " "
echo "你选择了:${WML_LIST[$choice_wml]}"
else
choiced=1
fi
done
if [ $choice_wml != 0 ] && [ $choice_wml != 9 ]; then
if [ $choicewm != "awesome(定制)" ] && [ $choicewm != "openbox(定制)" ] && [ $choicewm != "jwm(定制)" ] && [ $choicewm != "olvwm" ] && [ $choicewm != "VTWM" ] && [ $choicewm != "i3" ] && [ $choicewm != "TinyWM" ] && [ $choicewm != "WindowLab" ] && [ $choicewm != "ctwm" ]; then
if [ $choicewm != "dwm" ] && [ $choicewm != "awesome" ] && [ $choicewm != "wmii" ] && [ $choicewm != "ratpoison" ] && [ $choicewm != "Xmonad" ] && [ $choicewm != "StumpWM" ] && [ $choicewm != "pekwm" ] && [ $choicewm != "fvwm" ] && [ $choicewm != "AfterStep" ]; then
echo '** 选择 桌面和图标 **'
ZM_LIST=( '都不启动' 'Rox-filer' 'PcmanFM' )
TOTAL_WMS=2
for ((i=0; i<=$TOTAL_WMS; i++))
do
echo "** $i. ${ZM_LIST[$i]}"
done
echo ' '
read -n 1 choice
echo " "
echo "你选择了:${ZM_LIST[$choice]}"
case ${ZM_LIST[$choice]} in
Rox-filer)
DISPLAY=:6 rox-filer -p default &
Rox_filer=1
;;
PcmanFM)
DISPLAY=:6 pcmanfm --desktop &
Pcmanfm=1
;;
*)
;;
esac
else
echo '** 这个WM不能使用桌面和图标 **'
fi
if [ $choicewm != "Icewm" ] && [ $choicewm != "Jwm" ] && [ $choicewm != "Flwm" ] && [ $choicewm != "awesome" ] && [ $choicewm != "Xmonad" ]; then
if [ $choicewm == "evilwm" ] || [ $choicewm == "metacity" ] || [ $choicewm == "Oroborus" ] || [ $choicewm == "kde_window_manager" ];then
echo '** 你选择的WM本身没有任何菜单 **'
echo '** 强制选择”Lxpanel(带菜单面板)“ **'
DISPLAY=:6 lxpanel &
Lxpanel=1
else
echo ''
echo ''
echo '** 选择面板和托盘 **'
PA_LIST=( '都不启动' 'Trayer(托盘)' 'Tint2(面板)' 'Lxpanel(带菜单面板)' )
TOTAL_WMS=3
for ((i=0; i<=$TOTAL_WMS; i++))
do
echo "** $i. ${PA_LIST[$i]}"
done
echo ' '
read -n 1 choice
echo " "
echo "你选择了:${PA_LIST[$choice]}"
case ${PA_LIST[$choice]} in
Trayer(托盘))
DISPLAY=:6 trayer --expand true --transparent true --alpha 255 --edge bottom --align right --expand true --SetDockType true --widthtype request &
Trayer=1
echo ' '
echo ''
echo '** 选择 托盘时钟 **'
CK_LIST=( '不启动' 'gpe-clock(托盘时钟)' )
TOTAL_WMS=1
for ((i=0; i<=$TOTAL_WMS; i++))
do
echo "** $i. ${CK_LIST[$i]}"
done
echo ' '
read -n 1 choice
echo " "
echo "你选择了:${CK_LIST[$choice]}"
case ${CK_LIST[$choice]} in
gpe-clock(托盘时钟))
DISPLAY=:6 gpe-clock &
Gpe_clock=1
;;
不启动)
;;
*)
;;
esac
;;
Tint2(面板))
DISPLAY=:6 tint2 &
Tint2=1
;;
Lxpanel(带菜单面板))
DISPLAY=:6 lxpanel &
Lxpanel=1
;;
都不启动)
;;
*)
;;
esac
fi
else
if [ $choicewm == "Flwm" ] || [ $choicewm == "Xmonad" ]; then
echo '** 这个 WM 与面板配合效果不好 **'
echo '** 强制选择 Trayer(托盘)+ gpe-clock **'
DISPLAY=:6 trayer --expand true --transparent true --alpha 255 --edge bottom --align right --expand true --SetDockType true --widthtype request &
DISPLAY=:6 gpe-clock &
Gpe_clock=1
Trayer=1
else
echo '** 忽略对面板和时钟的选择 **'
fi
fi
if [ $choicewm != "dwm" ] && [ $choicewm != "awesome" ] && [ $choicewm != "Xmonad" ]; then
echo '** 选择 是否启动独立时钟 **'
CK_LIST=( '不启动' 'asclock(独立时钟)' )
TOTAL_WMS=1
for ((i=0; i<=$TOTAL_WMS; i++))
do
echo "** $i. ${CK_LIST[$i]}"
done
echo ' '
read -n 1 choice
echo " "
echo "你选择了:${CK_LIST[$choice]}"
case ${CK_LIST[$choice]} in
asclock(独立时钟))
echo '** 选择 时钟样式 **'
CF_LIST=( ' ' 'classic' 'Orb' 'Stone' 'Newstone' 'Freeamp' 'Freeamp-es' 'penguin' 'shaped' 'beats' )
TOTAL_WMS=9
for ((i=1; i<=$TOTAL_WMS; i++))
do
echo "** $i. ${CF_LIST[$i]}"
done
echo ' '
read -n 1 choice
echo " "
echo "你选择了:${CF_LIST[$choice]}"
case ${CF_LIST[$choice]} in
classic)
DISPLAY=:6 asclock -theme classic &
;;
Orb)
DISPLAY=:6 asclock -theme Orb &
;;
Stone)
DISPLAY=:6 asclock -theme Stone &
;;
Newston)
DISPLAY=:6 asclock -theme Newston &
;;
Freeamp)
DISPLAY=:6 asclock -theme Freeamp &
;;
Freeamp-es)
DISPLAY=:6 asclock -theme Freeamp-es &
;;
penguin)
DISPLAY=:6 asclock -theme penguin &
;;
shaped)
DISPLAY=:6 asclock -theme shaped &
;;
beats)
DISPLAY=:6 asclock -theme beats &
;;
*)
;;
esac
Asclock=1
;;
不启动)
;;
*)
;;
esac
else
echo '** 这个WM不能使用桌面部件 **'
fi
echo '** 选择 全局剪切板 **'
PT_LIST=( '不启用' 'Parcellite' 'Klipper' )
TOTAL_WMS=2
for ((i=0; i<=$TOTAL_WMS; i++))
do
echo "** $i. ${PT_LIST[$i]}"
done
echo ' '
read -n 1 choice
echo " "
echo "你选择了:${PT_LIST[$choice]}"
case ${PT_LIST[$choice]} in
Parcellite)
DISPLAY=:6 parcellite &
Parcellite=1
;;
Klipper)
DISPLAY=:6 klipper &
Klipper=1
;;
不启用)
;;
*)
;;
esac
clear
echo '** 选择 输入法 **'
IP_LIST=( '不启用' 'Fcitx' )
TOTAL_WMS=1
for ((i=0; i<=$TOTAL_WMS; i++))
do
echo "** $i. ${IP_LIST[$i]}"
done
echo ' '
read -n 1 choice
echo " "
echo "你选择了:${IP_LIST[$choice]}"
case ${IP_LIST[$choice]} in
Fcitx)
DISPLAY=:6 fcitx &
;;
不启用)
;;
*)
;;
esac
clear
echo '** 选择 音量控制 **'
IP_LIST=( '不启用' 'KMix' )
TOTAL_WMS=1
for ((i=0; i<=$TOTAL_WMS; i++))
do
echo "** $i. ${IP_LIST[$i]}"
done
echo ' '
read -n 1 choice
echo " "
echo "你选择了:${IP_LIST[$choice]}"
case ${IP_LIST[$choice]} in
KMix)
DISPLAY=:6 kmix &
Kmix=1
;;
不启用)
;;
*)
;;
esac
else
echo '** 由于WM不支持(或已定制) **'
echo '** 已经忽略对桌面、面板、输入法 **'
echo '** 音量控制、剪切板、时钟的选择 **'
echo '** 如果确有需要,请到WM中去启动 **'
fi
if [ $choicewm != "dwm" ] && [ $choicewm != "awesome" ] && [ $choicewm != "i3" ] && [ $choicewm != "Xmonad" ]; then
echo ' '
echo '** 选择 系统监控 **'
IP_LIST=( '不启用' 'conky' 'gkrellm' )
TOTAL_WMS=2
for ((i=0; i<=$TOTAL_WMS; i++))
do
echo "** $i. ${IP_LIST[$i]}"
done
echo ' '
read -n 1 choice
echo " "
echo "你选择了:${IP_LIST[$choice]}"
case ${IP_LIST[$choice]} in
conky)
DISPLAY=:6 conky -c ~/.conky/conky_right -quiet &
Conky=1
;;
gkrellm)
DISPLAY=:6 gkrellm &
Gkrellm=1
;;
不启用)
;;
*)
;;
esac
sleep 2
choice=1
clear
while [ $choice != 0 ]; do
clear
echo '** 选择 可选组件 **'
echo '** 本选项将反复出现,以便多选 **'
echo '** 按 0 退出 **'
IP_LIST=( '退出' 'bbrun(“运行”按钮)' 'wmmemload(内存状况)' 'wmmount(硬盘空间)' 'wmifs(网络)' 'Wmforkplop(进程)' 'WMCPULoad(cpu)' 'kmail(邮件监控)' 'Backstep(缩小窗口为图标)' 'DeskMenu(桌面菜单)' 'gdesklets(桌面部件)' )
TOTAL_WMS=9
for ((i=0; i<=$TOTAL_WMS; i++))
do
echo "** $i. ${IP_LIST[$i]}"
done
echo ' '
read -n 1 choice
echo " "
echo "你选择了:${IP_LIST[$choice]}"
case ${IP_LIST[$choice]} in
kmail(邮件监控))
DISPLAY=:6 kmail &
Kmail=1
;;
bbrun(“运行”按钮))
DISPLAY=:6 bbrun &
Bbrun=1
;;
Backstep(缩小窗口为图标))
DISPLAY=:6 backstep &
Backstep=1
;;
wmmemload(内存状况))
DISPLAY=:6 wmmemload &
Wmmemload=1
;;
wmmount(硬盘空间))
DISPLAY=:6 wmmount &
Wmmount=1
;;
WMCPULoad(cpu))
DISPLAY=:6 wmcpuload &
Wmcpuload=1
;;
wmifs(网络))
DISPLAY=:6 wmifs &
Wmifs=1
;;
Wmforkplop(进程))
DISPLAY=:6 wmforkplop &
Wmforkplop=1
;;
DeskMenu(桌面菜单))
DISPLAY=:6 deskmenu &
Deskmenu=1
;;
gdesklets(桌面部件))
DISPLAY=:6 gdesklets &
Gdesklets=1
;;
*)
;;
esac
done
else
echo '** 这个WM不能使用桌面部件 **'
fi
echo '**************************************'
echo '** 积木搭建成功,祝你愉快 **'
echo '**************************************'
#下面开始KILLALL掉进程
echo '** 选择 是否帮你关闭和退出 **'
IP_LIST=( '直接回到命令行' '关闭所有选择打开的程序' )
TOTAL_WMS=1
for ((i=0; i<=$TOTAL_WMS; i++))
do
echo "** $i. ${IP_LIST[$i]}"
done
echo ' '
read -n 1 choice
echo " "
echo "你选择了:${IP_LIST[$choice]}"
case ${IP_LIST[$choice]} in
关闭所有选择打开的程序)
if [ $Kmail == 1 ]; then
killall kmail &
fi
if [ $Kmix == 1 ]; then
killall kmix &
fi
if [ $Bbrun == 1 ]; then
killall bbrun &
fi
if [ $Asclock == 1 ]; then
killall asclock &
fi
if [ $Gpe_clock == 1 ]; then
killall gpe-clock &
fi
if [ $Deskmenu == 1 ]; then
killall deskmenu &
fi
if [ $Trayer == 1 ]; then
killall trayer &
fi
if [ $Lxpanel == 1 ]; then
killall lxpanel &
fi
if [ $Tint2 == 1 ]; then
killall tint2 &
fi
if [ $Pcmanfm == 1 ]; then
killall pcmanfm &
fi
if [ $Rox_filer == 1 ]; then
killall rox-filer &
fi
if [ $Backstep == 1 ]; then
killall backstep &
fi
if [ $Wmbubble == 1 ]; then
killall wmbubble &
fi
if [ $Wmcpuload == 1 ]; then
killall wmcpuload &
fi
if [ $Wmforkplop == 1 ]; then
killall wmforkplop &
fi
if [ $Wmifs == 1 ]; then
killall wmifs &
fi
if [ $Wmmemload == 1 ]; then
killall wmmemload &
fi
if [ $Wmmount == 1 ]; then
killall wmmount &
fi
if [ $Gkrellm == 1 ]; then
killall gkrellm &
fi
if [ $Gdesklets == 1 ]; then
killall gdesklets &
fi
if [ $Conky == 1 ]; then
killall conky &
fi
if [ $Parcellite == 1 ]; then
killall parcellite &
fi
if [ $Klipper == 1 ]; then
killall klipper &
fi
if [ $Z9wm == 1 ]; then
killall 9wm &
fi
if [ $Aewm == 1 ]; then
killall awm &
fi
if [ $Aewmjj == 1 ]; then
killall aewm* &
fi
if [ $Amiwm == 1 ]; then
killall amiwm &
fi
if [ $Afterstep == 1 ]; then
killall afterstep &
fi
if [ $Awesome == 1 ]; then
killall awesome &
fi
if [ $Blackbox == 1 ]; then
killall blackbox &
fi
if [ $Bluetile == 1 ]; then
killall bluetile &
fi
if [ $Ctwm == 1 ]; then
killall ctwm &
fi
if [ $Dwm == 1 ]; then
killall dwm &
fi
if [ $E17 == 1 ]; then
killall enlightenment &
fi
if [ $Evilwm == 1 ]; then
killall evilwm &
fi
if [ $Fluxbox == 1 ]; then
killall fluxbox &
fi
if [ $Flwm == 1 ]; then
killall flwm &
fi
if [ $Fvwm == 1 ]; then
killall fvwm &
fi
if [ $I3 == 1 ]; then
killall i3 &
fi
if [ $Icewm == 1 ]; then
killall icewm &
fi
if [ $Jwm == 1 ]; then
killall jwm &
fi
if [ $Kde_window_manager == 1 ]; then
killall kwin &
fi
if [ $Lwm == 1 ]; then
killall lwm &
fi
if [ $Metacity == 1 ]; then
killall metacity &
fi
if [ $Miwm == 1 ]; then
killall miwm &
fi
if [ $Olvwm == 1 ]; then
killall olvwm &
fi
if [ $Olwm == 1 ]; then
killall olwm &
fi
if [ $Openbox == 1 ]; then
killall openbox &
fi
if [ $Oroborus == 1 ]; then
killall oroborus &
fi
if [ $Parti == 1 ]; then
killall parti &
fi
if [ $Pekwm == 1 ]; then
killall pekwm &
fi
if [ $Ratpoison == 1 ]; then
killall ratpoison &
fi
if [ $Sapphire == 1 ]; then
killall sapphire &
fi
if [ $Sawfish == 1 ]; then
killall sawfish &
fi
if [ $Scrotwm == 1 ]; then
killall scrotwm &
fi
if [ $Stumpwm == 1 ]; then
killall stumpwm &
fi
if [ $Tinywm == 1 ]; then
killall tinywm &
fi
if [ $Vtwm == 1 ]; then
killall vtwm &
fi
if [ $W9wm == 1 ]; then
killall w9wm &
fi
if [ $WindowLab == 1 ]; then
killall windowLab &
fi
if [ $Wm2 == 1 ]; then
killall wm2 &
fi
if [ $Wmaker == 1 ]; then
killall wmaker &
fi
if [ $Wmii == 1 ]; then
killall wmii &
fi
if [ $Tritium == 1 ]; then
killall tritium &
fi
if [ $Xmonad == 1 ]; then
killall xmonad &
fi
;;
直接回到命令行)
;;
*)
;;
esac
fi
echo '**************************************'
echo '** 谢谢使用,祝你愉快 **'
echo '**************************************'
[/bash]
下面是本程序的执行效果:
初始选单 分别选择初始选单的1-9,出现以下效果: 如果从1-7中选择了一个WM后,需要进行后续的选择。
而8、9两项不需要后续的选择,直接启动进入。
有时本终端窗口会被新选择的WM窗口盖住,为了看到效果,需要用alt-tab之类切换窗口的快捷键来回切换。
有些选择是智能化的,即根据你所选的WM的特点,帮你直接选择一些选项,或者直接避免你选到不合适的选项。
选择过程中有时会受到所选的程序的终端提示的困扰,把选项冲的有点乱。 最终的效果(之一): 然后还有一个选项: 这是为了让你完成工作和测试后,能够比较干净的kill掉进程的,
注意:他会kill掉主WM中同名进程,所以请判断后再选择。
闻到死太贵, 麦克价更高。 有了笨笨兔, 二者皆可抛。
+ 我的六轮折腾
+ 折腾6轮的结果(对40余种WM的测试和分析,多种DE和WM并存的方案)
+ 折腾的中间成果:可以独立运行的一个Wharf(图标化的启动菜单)
+ 强烈推荐----折腾的终极成果:一个自己开发的DE环境
+ 签名空闲链接位置招租
+ 我的六轮折腾
+ 折腾6轮的结果(对40余种WM的测试和分析,多种DE和WM并存的方案)
+ 折腾的中间成果:可以独立运行的一个Wharf(图标化的启动菜单)
+ 强烈推荐----折腾的终极成果:一个自己开发的DE环境
+ 签名空闲链接位置招租
- ljj_jjl2008
- 论坛版主
- 帖子: 14255
- 注册时间: 2007-09-16 8:29
- ljj_jjl2008
- 论坛版主
- 帖子: 14255
- 注册时间: 2007-09-16 8:29
Re: 又要开始折腾了(第4轮折腾):设法同时启动起来两套WM,和平共存与一个桌面。
~/GNUstep/Defaults/WMGLOBAL文件,是修改windowmaker程序字體的地方,沒有這個文件的話自己建一個。
其他字体用wmakeconf来调整。
代码: 全选
{
MultiByteText = YES;
SystemFont = "WenQuanYi Bitmap Song:slant=0:weight=80:width=100:pixelsize=12";
BoldSystemFont = "WenQuanYi Bitmap Song:slant=0:weight=80:width=100:pixelsize=12:bold";
DefaultFontSize = 12;
AntialiasedText = Yes;
}
闻到死太贵, 麦克价更高。 有了笨笨兔, 二者皆可抛。
+ 我的六轮折腾
+ 折腾6轮的结果(对40余种WM的测试和分析,多种DE和WM并存的方案)
+ 折腾的中间成果:可以独立运行的一个Wharf(图标化的启动菜单)
+ 强烈推荐----折腾的终极成果:一个自己开发的DE环境
+ 签名空闲链接位置招租
+ 我的六轮折腾
+ 折腾6轮的结果(对40余种WM的测试和分析,多种DE和WM并存的方案)
+ 折腾的中间成果:可以独立运行的一个Wharf(图标化的启动菜单)
+ 强烈推荐----折腾的终极成果:一个自己开发的DE环境
+ 签名空闲链接位置招租
- ljj_jjl2008
- 论坛版主
- 帖子: 14255
- 注册时间: 2007-09-16 8:29
Re: 又要开始折腾了(第4轮折腾):设法同时启动起来两套WM,和平共存与一个桌面。
fvwm解决中文乱码办法:借用下面帖子的配置文件,然后在.fvwm2rc里面加上几句(作用是防止面板、tray之类变成窗口状态。)
viewtopic.php?f=168&t=334247
viewtopic.php?f=168&t=334247
代码: 全选
Style dock !Title, !Borders, !Iconifiable, Sticky, StaysOnBottom
Style tint2 UseStyle dock
Style *panel UseStyle dock
Style *dock UseStyle dock
Style *tray UseStyle dock
Style *clock UseStyle dock
Style tray* UseStyle dock
Style wm* UseStyle dock
Style as* UseStyle dock
- 附件
-
- fvwm配置文件.tar.gz
- (369.3 KiB) 已下载 150 次
闻到死太贵, 麦克价更高。 有了笨笨兔, 二者皆可抛。
+ 我的六轮折腾
+ 折腾6轮的结果(对40余种WM的测试和分析,多种DE和WM并存的方案)
+ 折腾的中间成果:可以独立运行的一个Wharf(图标化的启动菜单)
+ 强烈推荐----折腾的终极成果:一个自己开发的DE环境
+ 签名空闲链接位置招租
+ 我的六轮折腾
+ 折腾6轮的结果(对40余种WM的测试和分析,多种DE和WM并存的方案)
+ 折腾的中间成果:可以独立运行的一个Wharf(图标化的启动菜单)
+ 强烈推荐----折腾的终极成果:一个自己开发的DE环境
+ 签名空闲链接位置招租
- ljj_jjl2008
- 论坛版主
- 帖子: 14255
- 注册时间: 2007-09-16 8:29
Re: 又要开始折腾了(第4轮折腾):设法同时启动起来两套WM,和平共存与一个桌面。
conky借用的下面帖子里面的
viewtopic.php?f=24&t=338585
不过有一个问题:选择启动这个conky的话,会出现一个要求输入sudo密码的提示,然后就把我的shell选单冲乱了。
还需要修改一下。我把配置文件里面sudo的一行给注释掉了。这一行好像是显示硬盘温度的。
viewtopic.php?f=24&t=338585
不过有一个问题:选择启动这个conky的话,会出现一个要求输入sudo密码的提示,然后就把我的shell选单冲乱了。
还需要修改一下。我把配置文件里面sudo的一行给注释掉了。这一行好像是显示硬盘温度的。
- 附件
-
- conky.tar.bz2
- (603.6 KiB) 已下载 134 次
闻到死太贵, 麦克价更高。 有了笨笨兔, 二者皆可抛。
+ 我的六轮折腾
+ 折腾6轮的结果(对40余种WM的测试和分析,多种DE和WM并存的方案)
+ 折腾的中间成果:可以独立运行的一个Wharf(图标化的启动菜单)
+ 强烈推荐----折腾的终极成果:一个自己开发的DE环境
+ 签名空闲链接位置招租
+ 我的六轮折腾
+ 折腾6轮的结果(对40余种WM的测试和分析,多种DE和WM并存的方案)
+ 折腾的中间成果:可以独立运行的一个Wharf(图标化的启动菜单)
+ 强烈推荐----折腾的终极成果:一个自己开发的DE环境
+ 签名空闲链接位置招租