新立得里面过滤“window manager”找到的有趣的东西(对40余种WM的测试和分析)

各种窗口管理器和美化相关
回复
头像
YeLee
论坛版主
帖子: 26406
注册时间: 2008-08-13 8:48
系统: Fundu i64
来自: 东海硇州,一双管钥。
联系:

Re: 新立得里面过滤“window manager”找到的有趣的东西

#61

帖子 YeLee » 2011-08-19 18:18

强大的WM玩家 :em04 :em04 :em04
◎当我站在道德的高度上俯视别人的时候,发现自己是多么渺小。
♥执着但不偏激,反对而不排斥,坚决捍卫矛盾体的存在方式。
★★★天气预报★★★
fcitx-yatable一个可以使用的码表输入法
[教程]几个实例攻克软件编译难关
Gentoo Development Guide
字体相关
头像
ljj_jjl2008
论坛版主
帖子: 14255
注册时间: 2007-09-16 8:29

Re: 新立得里面过滤“window manager”找到的有趣的东西

#62

帖子 ljj_jjl2008 » 2011-08-22 16:08

用60楼的办法,由24种窗口管理器,7种桌面随机搭配,出现的部分效果
文本编辑器geany里面列出的是随机抽取到的软件。
抓图24.png
抓图23.png
抓图25.png
抓图26.png
抓图27.png
头像
nmsfan
帖子: 18958
注册时间: 2009-10-16 22:46
来自: finland

Re: 新立得里面过滤“window manager”找到的有趣的东西

#64

帖子 nmsfan » 2011-08-22 16:14

好热闹的帖子
晚上再仔细看看
>>>>推Ubuntu 桌面培训~~<<<<
>>>>想加入/了解gimp汉化吗,点我吧~<<<<
——————————————————————
不推荐wubi,也不推荐你给别人推荐wubi…………
随心而为的感觉真好……
强推mayhem!!
强推ensiferum
头像
月下叹逍遥
论坛版主
帖子: 33994
注册时间: 2010-10-07 14:23
系统: Archdows10
来自: 某系某星某洲某国某省某市
联系:

Re: 新立得里面过滤“window manager”找到的有趣的东西

#65

帖子 月下叹逍遥 » 2011-08-22 16:14

这么玩法要死人的……
浮生七十今三十,从此凄惶未可知
头像
ljj_jjl2008
论坛版主
帖子: 14255
注册时间: 2007-09-16 8:29

Re: 新立得里面过滤“window manager”找到的有趣的东西

#66

帖子 ljj_jjl2008 » 2011-08-22 16:18

每次注销都会换一种随机效果,不愿意继续注销了,所以只展示这些吧。
头像
zsneoks
帖子: 43
注册时间: 2010-04-21 19:08

Re: 新立得里面过滤“window manager”找到的有趣的东西

#67

帖子 zsneoks » 2011-08-28 0:35

楼主很明显是神嘛。
我了个去呀。
这深深沉沉的夜...
不正应做点什么。。。
头像
YeLee
论坛版主
帖子: 26406
注册时间: 2008-08-13 8:48
系统: Fundu i64
来自: 东海硇州,一双管钥。
联系:

Re: 新立得里面过滤“window manager”找到的有趣的东西

#68

帖子 YeLee » 2011-08-28 6:55

zsneoks 写了:楼主很明显是神嘛。
我了个去呀。
非也非也,神非此人,而是另有他人。
◎当我站在道德的高度上俯视别人的时候,发现自己是多么渺小。
♥执着但不偏激,反对而不排斥,坚决捍卫矛盾体的存在方式。
★★★天气预报★★★
fcitx-yatable一个可以使用的码表输入法
[教程]几个实例攻克软件编译难关
Gentoo Development Guide
字体相关
头像
liu滔
帖子: 7212
注册时间: 2010-10-09 23:01

Re: 新立得里面过滤“window manager”找到的有趣的东西

#69

帖子 liu滔 » 2011-08-28 9:51

YeLee 写了:
zsneoks 写了:楼主很明显是神嘛。
我了个去呀。
非也非也,神非此人,而是另有他人。
正解正解,论坛的神只能有一个,其它人最多向神的位置攀爬 :em05
头像
ljj_jjl2008
论坛版主
帖子: 14255
注册时间: 2007-09-16 8:29

Re: 新立得里面过滤“window manager”找到的有趣的东西

#70

帖子 ljj_jjl2008 » 2011-08-28 10:44

liu滔 写了:
YeLee 写了:
zsneoks 写了:楼主很明显是神嘛。
我了个去呀。
非也非也,神非此人,而是另有他人。
正解正解,论坛的神只能有一个,其它人最多向神的位置攀爬 :em05
好累,要爬不动了!
楼上好像也在向神的位置攀爬 :em05
头像
oudy
帖子: 13
注册时间: 2008-08-03 0:22

Re: 新立得里面过滤“window manager”找到的有趣的东西

#71

帖子 oudy » 2011-08-31 10:37

:em06 看完你的贴我估计我的好多脑细胞会被折腾死
头像
ljj_jjl2008
论坛版主
帖子: 14255
注册时间: 2007-09-16 8:29

Re: 新立得里面过滤“window manager”找到的有趣的东西

#72

帖子 ljj_jjl2008 » 2011-08-31 11:00

原来僵尸也有脑细胞呀!
头像
ljj_jjl2008
论坛版主
帖子: 14255
注册时间: 2007-09-16 8:29

Re: 新立得里面过滤“window manager”找到的有趣的东西

#73

帖子 ljj_jjl2008 » 2011-09-21 10:26

就加一个按钮或命令,能够在不用关闭已经打开的程序和文件,也不注销的前提下,快速切换wm和风格。
关于这一点,研究了很多天,经过反复尝试,已经很完美的实现了。现在将结果公布出来,供大家参考借鉴。

****先是知识培训****(高手跳过)

先简单说一下系统启动图形界面用到的文件和各自作用(我个人理解的,简单描述):

要启动图形界面,先要启动起来一个X,因为我们现在用的是X的第11个版本,所以又叫X11.

X11的配置文件在/etc/X11/目录里面,有以下几文件个最为重要:
(1)/etc/X11/xorg.conf 作用是配置键盘、鼠标、显卡、显示器、核心字体等。
(2)/etc/X11/init/initrc 启动系统的关键文件,是启动系统用的脚本。如果安装了kdm、gdm等登陆管理器,他会在执行完后自动启动起来默认的登陆管理器。
(3)/etc/X11/Xsession.d/* 这个目录下的文件都是启动时需要执行的文件,可能有多个文件。
(4)~/.xinitrc 和 ~/.bashrc 启动时,个人的脚本
(5)登陆管理器:有很多种,设置方式也有所不同,kdm、gdm之类为主。
如果想改变默认登陆管理器,现在的办法是终端执行指令:

代码: 全选

sudo dpkg-reconfigure kdm
然后会出现提示,根据提示来选择DM。
(6)sessions:登陆管理器调用的文件,可能存在于多个目录之下,比如:
/usr/share/xsessions/*
/usr/share/kde4/apps/kdm/sessions/*
/etc/X11/sessions/
/etc/dm/Sessions/
/usr/share/gdm/BuiltInSessions/

我们可以用文本编辑器打开一个sessions观看:
文件 /usr/share/kde4/apps/kdm/sessions/ratpoison.desktop
[Desktop Entry]
Type=XSession
Exec=ratpoison
TryExec=ratpoison
Name=Ratpoison
Comment=A simple keyboard-only window manager modeled after Screen
X-Ubuntu-Gettext-Domain=desktop_kde-workspace
注意以下两句:
Exec=ratpoison
TryExec=ratpoison
这两句里面要执行的命令,就是sessions调用的命令。只要这个命令的进程还在内存中,则sessions不会退出,否则sessions退出,X重启,重新登陆。
一般,sessions中调用的是一个窗口管理器(window manager),然后由窗口管理器负责打开程序、调整窗口布局等工作。也可以调用shell脚本文件,但最终都是启动起来一个窗口管理器以及对应的面板、桌面等部件。

(7)sessions调用的命令或者shell
他们一般在 /usr/bin/ 目录中。

****现在还是知识培训****(关于如何写sessions调用的shell,高手继续跳过)
就加一个按钮或命令,能够在不用关闭已经打开的程序和文件,也不注销的前提下,快速切换wm和风格。
知识介绍完毕,可见实现上面目标的关键是自己写个sessions和其调用的shell,关键在于shell怎么写。
& 后台工作
单一个& 符号,且放在完整指令列的最后端,即表示将该指令列放入后台中工作。
tar cvfz data.tar.gz data > /dev/null &
好吧,首先回顾一下您已经了解的知识。 在 shell 中敲入一条命令后,您就什么事都做不了了,除非等到该命令 执行完毕并退出。您的 session 调用的脚本也是如此。当脚本开始执行时, 凡遇到任何一个需要很长时间运行的程序(多数 X11 程序都是这样的), 它就停在那儿等到该程序执行完毕为止。

理想情况下,脚本里应该只有一处使得 X11 挂起。并且您多半都希望它位于脚本的末端。 所以,如果您希望 X11 下的程序在未到达此“挂起点”前先运行,您应该将它们置于后台。 即在行尾添上一个&。假设在运行其它程序的同时,您 还想执行 xclock,将下面这行放在“挂起点“之前:

代码: 全选

    xclock &
接下来就是您所看到的那个 exec 玩意儿, 很多参考资料在讲解如何将窗口管理器时添加到脚本中时都谈到了它。 但老实说,并不是非要它不可。如果您把窗口管理器放到脚本的最末端,即使不用 exec,X11 也会自动挂起。

那么要 exec 还有什么用呢?好吧,比方说您要在脚本里 放置多个窗口管理器的启动行,但只想使用一个。那么,您就可以利用 exec 将所选的启动行放到其它启动行前面。因为 exec 的意思就是:

"用这个程序代替我,换言之,启动这个程序,等它一结束马上就终止我自己。"

您要是把 exec wmaker 放到 exec enlightenment 的前面,那么当 wmaker 结束后,脚本也就执行完毕了,而不会继续执行下一行。

如果说不必要的话,您懂我的意思吗?用一组注释的窗口管理器启动行,也可以实现刚才的功能。

所以正常的思路是:把启动窗口管理器的语句放在shell的最后一句,其他语句末尾都加上 & ,只有最后一句不加 &。
另外的思路是:您可以先启动窗口管理器,然后将它的进程 ID 保存到某个环境变量中:

代码: 全选

        wmaker & wmpid=$!
上面这一句代码将 wmaker 置于后台(&)运行 并将其进程 ID($!)保存到变量(wmpid)中。 之后要构造“挂起点(一般是最后一句)”时,只需 wait:

代码: 全选

    wait $wmpid
这样比上面的好处是:假如有一些语句或命令依赖于WM,我们也可以在shell中把它启动起来。

以上的思路都是正常的做法,目的是关闭(退出、杀死)窗口管理器时,系统注销。

***这是解决问题的基本思路了****
我们现在的目的正好相反,是关闭(退出、杀死)窗口管理器时,系统不能注销,然后我们可以切换新的窗口管理器。
所以我们现在反其道而行之,可以用以下办法实现目标:

特别的思路(1)是:最后一句挂起其他的程序,如 gedit 之类的,置于前台(放到最后一句并且不加 & )来达到目的。 但要记住,当此程序一结束,X11 会话也就关闭了,所以gedit里面要同时打开一个文件,里面写上警告:“千万不要关闭我,否则X会被终止”。
特别的思路(2)是:最后几句写成这个样子:

代码: 全选

while true; do
   musca
   pekwm
   ...
   ...
done
即让最后几句形成一个死循环,分头挂起不同的窗口管理器,前一个退出后一个自动接替,后一个退出还有一个再接替,使shell永远不能终止。要切换时,只需使用当前wm所提供的方式(如musca的是quit)正常退出(千万别kill)当前的wm即可,应该绝大多数wm都支持以此方式切换。需要注销时,可以尝试kill进程,或者kill掉X。

好了,知识培训完毕,现在公布我的整体解决思路:
一、肯定是先安装大量的WM(窗口管理器)。
我安装了以下这些:
oroborus(19个WM)
icewm
blackbox
openbox
sawfish
pekwm
evilwm
flwm
wm2
miwm
lwm
fvwm
wmaker
afterstep
e17
stumpwm
awesome
aewm(这个不启动,但是使用他的aemenu菜单)
dwm(这个不启动,但是使用他的dmenu菜单)
kubuntu-desktop(5个桌面环境)
kubuntu-netbook
unity-2d
gnome-shell(可选,我安装了,但是因为我是intel集成显卡,没法使用)
XFCE4(这个没有独立启动,只是用他的面板和wmdock插件)
你们可以根据个人喜好来选择安装。
二、sessions和sessions调用的shell
依据上面的原理,我把和sessions调用的shell写成了以下语句:
先写了一个死循环的shell:~/xunhuan

代码: 全选

#!/bin/bash

while true; do
  sleep 600  #一个死循环,中间不停地sleep睡眠。没有任何意义,只是为了使这个进程驻守内存,并且尽量不占用系统资源。
done
主session的shell:/usr/bin/all_in_one,最后一句调用~/xunhuan,形成内存守候进程。
需要事先创建一个空文件 ~/kill_wm,加上可执行权限。以后的语句会修改和调用他。

代码: 全选

#!/bin/bash
# bubblefishymon &
# wmclock &
# wmcpu &
kwin &                                  #暂时用kwin来作为WM
cd ~/.iconmenu/bin                #这句暂时不要管他,后面有解释
exec ./start.sh START &         #这句暂时不要管他,后面有解释
cat /dev/null > ~/kill_wm        #需要事先创建一个空文件 ~/kill_wm,加上可执行权限。以后的语句会修改和调用他。
echo killall kwin >> ~/kill_wm  #修改 ~/kill_wm内容,为以后调用做准备。
xfce4-panel &                       #打开一个xfce4的面板,最为最主要的界面。面板内容请自己设置。
~/feh_auto &                        #这是切换壁纸的shell,这个shell的核心命令是:feh --bg-scale "<壁纸图片>"
sleep 5                                  #等待几秒
klipper &                               #启动全局剪切板。如果有其他tray程序,可以继续写。我只启动了这一个。
~/xunhuan                            #启动死循环的内存驻留进程。[color=#BF0000]这一句后面千万不要加 &[/color]
这是随机更换壁纸的shell:~/feh_auto

代码: 全选

#!/bin/bash

PIC_LIST=( 'Aghi' 'Evening' 'Korea' 'Air' 'Field' 'Ladybuggin' 'Atra_Dot' 'Fields_of_Peace' 'Leafs_Labyrinth' 'Autumn' 'Finally_Summer_in_Germany' 'Lightning' 'Beach_Reflecting_Clouds' 'Flower_drops' 'Media_Life' 'Blue_Curl' 'Fresh_Morning' 'Midnight_in_Karelia' 'Blue_Wood' 'Golden_Ripples' 'Plasmalicious' 'Chess' 'Grass' 'Quadros' 'City_at_Night' 'Green_Concentration'  'Red_Leaf' 'Code_Poets_Dream' 'Hanami' 'Skeeter_Hawk' 'Colorado_Farm' 'HighTide' 'Spring_Sunray' 'Curls_on_Green' 'Holiday_Cactus' 'There_is_Rain_on_the_Table' 'Damselfly' 'Horos' 'The_Rings_of_Saturn' 'Emotion' 'Icy_Tree' 'Vector_Sunset' 'EOS' 'JK_Bridge_at_Night' 'Winter_Track' 'Ethais' 'Yellow_Flowers' )
#我是利用的kde-wallpapers的包里面的壁纸,所以先创建个列表,把目录列举出来。
rand=200
top=47 #随机0-47的数
while [ "$rand" -ge $top ]; do
    rand=$RANDOM
done
#下面是根据随机结果来显示壁纸。
if [ -f "/mainos/usr/share/wallpapers/${PIC_LIST[$rand]}/contents/images/1280x1024.jpg" ];  then
    feh --bg-scale "/mainos/usr/share/wallpapers/${PIC_LIST[$rand]}/contents/images/1280x1024.jpg"
else
    feh --bg-scale "/mainos/usr/share/wallpapers/${PIC_LIST[$rand]}/contents/images/1280x1024.png"
fi
三、写一个shell,用于实现杀死上一个WM,同时打开新的WM
用于切换WM和桌面环境的shell(实现不注销切换WM的主shell):~/change_wm

代码: 全选

~/change_wm <WM_name>

代码: 全选

#!/bin/bash

~/kill_wm                             #先杀死上一个WM
sleep 2
cat /dev/null > ~/kill_wm       #把 ~/kill_wm清空
case $1 in                            #根据参数开始启动新的WM
sawfish)                                                  #这是参数,即WM名称
    sawfish &                                            #启动新的WM
    echo killall sawfish >> ~/kill_wm            #修改 ~/kill_wm里面的的语句
    sleep 5                                               #等待片刻
    killall iconrun1                                      #这个后面解释
    killall iconrun2                                       #后面解释
    cd ~/.iconmenu/bin                               #后面解释
    exec ./start.sh START &                        #后面解释
    ~/feh_auto                                           #更换壁纸。
    ;;
metacity)                                  #另一个WM的语句
    metacity &
    echo killall metacity >> ~/kill_wm
    sleep5
    killall iconrun1
    killall iconrun2
    cd ~/.iconmenu/bin
    exec ./start.sh START &
    ~/feh_auto
    ;;
flwm)
    flwm &
    echo killall flwm >> ~/kill_wm
    sleep 5
    killall iconrun1
    killall iconrun2
    cd ~/.iconmenu/bin
    exec ./start.sh START &
    ~/feh_auto
    ;;
miwm)
    miwm &
    echo pkill -9 miwm >> ~/kill_wm
    sleep 5
    killall iconrun1
    killall iconrun2
    cd ~/.iconmenu/bin
    exec ./start.sh START &
    ~/feh_auto
    ;;
icewm)
    icewm &
    echo killall icewm >> ~/kill_wm
    sleep 5
    killall iconrun1
    killall iconrun2
    cd ~/.iconmenu/bin
    exec ./start.sh START &
    ~/feh_auto
    ;;
oroborus)
    oroborus &
    echo killall oroborus >> ~/kill_wm
    sleep 5
    killall iconrun1
    killall iconrun2
    cd ~/.iconmenu/bin
    exec ./start.sh START &
    ~/feh_auto
    ;;
kwin)
    kwin &
    echo killall kwin >> ~/kill_wm
    sleep 5
    killall iconrun1
    killall iconrun2
    cd ~/.iconmenu/bin
    exec ./start.sh START &
    ~/feh_auto
    ;;
blackbox)
    blackbox &
    echo killall blackbox >> ~/kill_wm
    sleep 6                                             #这个WM启动时间稍长,多等待了几秒
    killall iconrun1
    killall iconrun2
    cd ~/.iconmenu/bin
    exec ./start.sh START &
    ~/feh_auto
    ;;
openbox)
    openbox &
    echo killall openbox >> ~/kill_wm
    sleep 5
    killall iconrun1
    killall iconrun2
    cd ~/.iconmenu/bin
    exec ./start.sh START &
    ~/feh_auto
    ;;
fvwm)
    fvwm &
    echo killall fvwm >> ~/kill_wm
    sleep 6                                            #这个WM启动时间稍长,多等待了几秒
    killall iconrun1
    killall iconrun2
    cd ~/.iconmenu/bin
    exec ./start.sh START &
    ~/feh_auto
    ;;
pekwm)
    pekwm &
    echo killall pekwm >> ~/kill_wm
    sleep 5
    killall iconrun1
    killall iconrun2
    cd ~/.iconmenu/bin
    exec ./start.sh START &
    ~/feh_auto
    ;;
lwm)
    lwm &
    echo killall lwm >> ~/kill_wm
    sleep 5
    killall iconrun1
    killall iconrun2
    cd ~/.iconmenu/bin
    exec ./start.sh START &
    ~/feh_auto
    ;;
wm2)
    wm2 &
    echo killall wm2 >> ~/kill_wm
    sleep 5
    killall iconrun1
    killall iconrun2
    cd ~/.iconmenu/bin
    exec ./start.sh START &
    ~/feh_auto
    ;;
ctwm)
    ctwm &
    echo killall ctwm >> ~/kill_wm
    sleep 6                                            #这个WM启动时间稍长,多等待了几秒
    killall iconrun1
    killall iconrun2
    cd ~/.iconmenu/bin
    exec ./start.sh START &
    ~/feh_auto
    ;;
evilwm)
    evilwm &
    echo pkill -9 evilwm >> ~/kill_wm   #杀死这个WM的指令是:“pkill -9 evilwm”,下面也有这种情况。
    sleep 5
    killall iconrun1
    killall iconrun2
    cd ~/.iconmenu/bin
    exec ./start.sh START &
    ~/feh_auto
    ;;
wmaker)
    wmaker &
    echo killall WindowMaker >> ~/kill_wm
    sleep 6                                            #这个WM启动时间稍长,多等待了几秒
    killall iconrun1
    killall iconrun2
    cd ~/.iconmenu/bin
    exec ./start.sh START &
    ~/feh_auto
    ;;
afterstep)
    afterstep &
    echo "killall afterstep" >> ~/kill_wm
    sleep 10                                            #这个WM启动时间稍长,多等待了几秒
    killall iconrun1
    killall iconrun2
    cd ~/.iconmenu/bin
    exec ./start.sh START &
    ~/feh_auto
    ;;
e17)
    enlightenment_start &
    echo "killall enlightenment" >> ~/kill_wm
    sleep 6                                            #这个WM启动时间稍长,多等待了几秒
    killall iconrun1
    killall iconrun2
    cd ~/.iconmenu/bin
    exec ./start.sh START &
    ~/feh_auto
    ;;
stumpwm)                   # 这个有点复杂,把~/kill_wm多写了几句,主要是因为他是平铺的,为了由他切换出去后界面不混乱。
    stumpwm &
    
    cat /dev/null > ~/kill_wm
    echo "pkill -9 stumpwm" >> ~/kill_wm
    echo "pkill -9 lisp.run" >> ~/kill_wm
    echo killall klipper >> ~/kill_wm
    echo killall ipmsg.exe >> ~/kill_wm
    echo sleep 5 >> ~/kill_wm
    echo "klipper &" >> ~/kill_wm
    sleep 5
    killall iconrun1
    killall iconrun2
    cd ~/.iconmenu/bin
    exec ./start.sh START &
    ~/feh_auto
    ;;
awesome)                   # 这个有点复杂,把~/kill_wm多写了几句,主要是因为他是平铺的,为了由他切换出去后界面不混乱。
    xfce4-panel -q         #这个WM需要关闭xfce4面板
    awesome &
    cat /dev/null > ~/kill_wm
    echo "pkill -9 awesome" >> ~/kill_wm
    echo killall klipper >> ~/kill_wm
    echo killall ipmsg.exe >> ~/kill_wm
    echo "kwin & ">> ~/kill_wm
    echo sleep 2 >> ~/kill_wm
    echo "xfce4-panel & " >> ~/kill_wm
    echo sleep 8 >> ~/kill_wm
    echo "klipper &" >> ~/kill_wm
    echo killall kwin >> ~/kill_wm
    sleep 5
    killall iconrun1
    killall iconrun2
    cd ~/.iconmenu/bin
    exec ./start.sh START &
    ~/feh_auto
    ;;
plasma_desktop)                   # 这个有点复杂,把~/kill_wm多写了几句,主要是因为他是平铺的,为了由他切换出去后界面不混乱。
    kwin &
    plasma-desktop &              #这里注意,这条命令会同时启动起来一个kde的面板,请将这个面板里面的tray(系统托盘)去掉,防止和xfce4面板里面的tray冲突。

    cat /dev/null > ~/kill_wm
    echo killall plasma-desktop >> ~/kill_wm
    echo killall kwin >> ~/kill_wm
    echo killall klipper >> ~/kill_wm
    echo killall ipmsg.exe >> ~/kill_wm
    echo sleep 5 >> ~/kill_wm
    echo "klipper &" >> ~/kill_wm
    sleep 5
    killall iconrun1
    killall iconrun2
    cd ~/.iconmenu/bin
    exec ./start.sh START &
    ;;
plasma_netbook)                   # 这个有点复杂,把~/kill_wm多写了几句,主要是因为他是平铺的,为了由他切换出去后界面不混乱。
    kwin &
    plasma-netbook &              #这里注意,这条命令会同时启动起来一个kde的面板,请将这个面板里面的tray(系统托盘)去掉,防止和xfce4面板里面的tray冲突。

    cat /dev/null > ~/kill_wm
    echo killall plasma-netbook >> ~/kill_wm
    echo killall kwin >> ~/kill_wm
    echo killall klipper >> ~/kill_wm
    echo killall ipmsg.exe >> ~/kill_wm
    echo sleep 5 >> ~/kill_wm
    echo "klipper &" >> ~/kill_wm
    echo "wine c:/ipmsg/ipmsg.exe &" >> ~/kill_wm
    sleep 5
    killall iconrun1
    killall iconrun2
    cd ~/.iconmenu/bin
    exec ./start.sh START &
    ;;
unity-2d)                   # 这个有点复杂,把~/kill_wm多写了几句,主要是因为他是平铺的,为了由他切换出去后界面不混乱。另外,这个没有启动unity-2d自己的面板,还是使用的xfce4的面板。
    unity-2d-launcher &
    unity-2d-places &
    unity-2d-spread &
    metacity &
    sleep 10
    killall nautilus           #不知道为什么,会自动启动起来nautilus ,我又把它杀死了。
    cat /dev/null > ~/kill_wm
    echo killall unity-2d-launcher >> ~/kill_wm
    echo killall unity-2d-places >> ~/kill_wm
    echo killall unity-2d-spread >> ~/kill_wm
    echo killall metacity >> ~/kill_wm
    echo killall klipper >> ~/kill_wm
    echo killall ipmsg.exe >> ~/kill_wm
    echo sleep 5 >> ~/kill_wm
    echo "klipper &" >> ~/kill_wm
    echo "wine c:/ipmsg/ipmsg.exe &" >> ~/kill_wm
    killall iconrun1
    killall iconrun2
    cd ~/.iconmenu/bin
    exec ./start.sh START &
    ;;
*)
   ;;
esac
四、选择一种“按钮”,用于承载以上shell中的命令
对于反复出现的指令:

代码: 全选

    killall iconrun1
    killall iconrun2
    cd ~/.iconmenu/bin
    exec ./start.sh START &
看上去他是杀死了几个程序,然后又重新启动起来,其实确实如此。他是我整理的wharf,就是用于承载以上shell的按钮。
viewtopic.php?f=168&t=344172
这是wharf主配置文件:~/.iconmenu/menu.rc

代码: 全选

#---------------------------------------------------------------------------------------------------
# Base-configuration:
#
# baseconfig:x y sizeOfMainIcons GapBetweenMainIcons sizeOfSubmenueIcons GapBetweenSubIcons  Lowered/Raised MainIconHidesAutomatically
#
baseconfig:100 80 64 0 64 0 1 0

#------------------------------------------------------------------
# Mainbutton
group0# /usr/share/icons/oxygen/48x48/emotes/face-smile.png

group1# /usr/share/icons/oxygen/48x48/places/folder-favorites.png "文件浏览/位置"
/usr/share/icons/oxygen/48x48/places/user-home.png "dolphin ~/" "个人目录"
/usr/share/icons/oxygen/48x48/places/folder-blue.png "dolphin /" "/ 根目录"
/usr/share/icons/oxygen/48x48/places/user-desktop.png "dolphin ~/Desktop/" "桌面"
/usr/share/icons/oxygen/48x48/places/folder-downloads.png "dolphin ~/下载/" "下载目录"
/usr/share/icons/oxygen/48x48/places/folder-documents.png "dolphin /dos/重要文件/" "文档目录"
/usr/share/icons/oxygen/48x48/places/folder-orange.png "kdesudo dolphin /" "root 权限打开"
group2# /usr/share/icons/oxygen/48x48/places/network-workgroup.png "互联网"
/usr/share/icons/hicolor/48x48/apps/chromium-browser.png  "chromium-browser" "chromium-browser"
/home/ljj_jjl2008/.iconmenu/iconcache/firefox.png  "firefox" "firefox browser"
/usr/share/icons/oxygen/48x48/apps/krdc.png "krdc" "krdc 远程链接"
group3# /usr/share/icons/oxygen/48x48/apps/kchart.png "办公"
/usr/share/yozofileicon/yozoicon.png "/usr/bin/yozo" "永中 office"
/usr/share/icons/hicolor/48x48/apps/libreoffice34-main.png "libreoffice" "libreoffice"
/usr/share/icons/hicolor/48x48/apps/okular.png "okular" "okular 工具"
group4# /usr/share/icons/oxygen/48x48/apps/preferences-desktop-color.png "图形"
/usr/share/icons/oxygen/48x48/apps/ksnapshot.png "ksnapshot"  "ksnapshot屏幕截图"
/usr/share/icons/hicolor/48x48/apps/kolourpaint.png "kolourpaint" "kde 绘图"
/usr/share/icons/hicolor/48x48/apps/gwenview.png "gwenview" "kde 看图"
/usr/share/pixmaps/gimp.xpm "gimp" "gimp"
group5# /usr/share/icons/oxygen/48x48/apps/qelectrotech.png "工具/开发"
/usr/share/icons/hicolor/48x48/apps/kate.png "kate" "kdte 文本编辑"
/usr/share/pixmaps/geany.xpm "geany" "geany 开发工具"
/usr/share/pixmaps/geany.xpm "kdesudo geany" "root 权限 geany"
/usr/share/pixmaps/utilities-file-archiver.xpm "ark" "ark 压缩/解压"
/usr/share/icons/oxygen/48x48/apps/wine.png "wine c:/ipmsg/ipmsg.exe" "wine 飞鸽"
/usr/share/icons/oxygen/48x48/apps/accessories-calculator.png "kcalc" "科学计算器"
/usr/share/icons/oxygen/48x48/actions/go-next.png "dmenu_run" "dmenu 起动器"
/usr/share/icons/oxygen/48x48/actions/system-run.png "krunner" "krunner 起动器"
/usr/share/icons/hicolor/48x48/apps/kmenuedit.png "aemenu" "aemenu 菜单"
group6# /usr/share/icons/oxygen/48x48/actions/configure.png "设置"
/usr/share/icons/oxygen/48x48/apps/utilities-terminal.png "konsole" "kde 终端"
/usr/share/icons/oxygen/48x48/apps/partitionmanager.png "partitionmanager" "kde 磁盘分区工具"
/usr/share/icons/oxygen/48x48/devices/drive-harddisk.png  "palimpsest" "gnome 磁盘工具"
/usr/share/icons/hicolor/48x48/apps/muon.png "kdesudo synaptic" "新立得软件包管理"
/usr/share/icons/oxygen/48x48/apps/plasma.png "systemsettings" "kde 系统设置"
group7# /usr/share/icons/oxygen/48x48/apps/kcmkwm.png "窗口管理器(推荐)"
/usr/share/icons/oxygen/48x48/apps/kde.png "/home/ljj_jjl2008/change_wm kwin" "kwin"
/usr/share/icons/wm-icons/48x48-aquafusion/gnome.png "/home/ljj_jjl2008/change_wm metacity" "metacity"
/home/ljj_jjl2008/.iconmenu/iconcache/snake-logo-small.png "/home/ljj_jjl2008/change_wm oroborus" "oroborus"
/home/ljj_jjl2008/.iconmenu/iconcache/icewm-logo.png "/home/ljj_jjl2008/change_wm icewm" "icewm"
/home/ljj_jjl2008/.iconmenu/iconcache/blackbox.png "/home/ljj_jjl2008/change_wm blackbox" "blackbox"
/usr/share/pixmaps/openbox.xpm "/home/ljj_jjl2008/change_wm openbox" "openbox"
/home/ljj_jjl2008/.iconmenu/iconcache/sawfish.png "/home/ljj_jjl2008/change_wm sawfish" "sawfish"
/home/ljj_jjl2008/.iconmenu/iconcache/pekwm.png "/home/ljj_jjl2008/change_wm pekwm" "pekwm"
/home/ljj_jjl2008/.iconmenu/iconcache/evilwm.png "/home/ljj_jjl2008/change_wm evilwm" "evilwm"
/home/ljj_jjl2008/.iconmenu/iconcache/flwm.png "/home/ljj_jjl2008/change_wm flwm" "flwm"
/home/ljj_jjl2008/.iconmenu/iconcache/wm2.png "/home/ljj_jjl2008/change_wm wm2" "wm2"
/home/ljj_jjl2008/.iconmenu/iconcache/miwm.png "/home/ljj_jjl2008/change_wm miwm" "miwm"
/home/ljj_jjl2008/.iconmenu/iconcache/lwm_1.png "/home/ljj_jjl2008/change_wm lwm" "lwm"
/home/ljj_jjl2008/.iconmenu/iconcache/fvwm.png "/home/ljj_jjl2008/change_wm fvwm" "fvwm"
/usr/share/icons/wmaker-GNUstep.tif "/home/ljj_jjl2008/change_wm wmaker" "wmaker"
/usr/share/pixmaps/AfterStep.xpm "/home/ljj_jjl2008/change_wm afterstep" "afterstep"
/usr/share/enlightenment/data/images/enlightenment.png "/home/ljj_jjl2008/change_wm e17" "e17"
group8# /usr/share/icons/oxygen/48x48/devices/video-display.png "桌面环境"
/home/ljj_jjl2008/.iconmenu/iconcache/ratpoison.png "/home/ljj_jjl2008/change_wm stumpwm" "stumpwm"
/usr/share/pixmaps/awesome.xpm "/home/ljj_jjl2008/change_wm awesome" "awesome"
/usr/share/icons/oxygen/48x48/apps/kde.png "/home/ljj_jjl2008/change_wm plasma_desktop" "plasma desktop" 
/usr/share/icons/oxygen/48x48/apps/plasma.png  "/home/ljj_jjl2008/change_wm plasma_netbook" "plasma netbook" 
/usr/share/icons/wm-icons/48x48-aquafusion/gnome.png "/home/ljj_jjl2008/change_wm unity-2d" "unity 2d"
group9# /usr/share/icons/oxygen/48x48/apps/preferences-desktop-gaming.png "娱乐/游戏"
/usr/share/icons/oxygen/48x48/devices/media-optical-dvd-video.png "dragon" "Dragon 媒体播放"
/usr/share/icons/hicolor/48x48/apps/kpat.png "kpat" "考研耐心的牌类游戏"
group10# /usr/share/icons/oxygen/48x48/actions/system-shutdown.png "注销/关机"
/usr/share/icons/oxygen/48x48/actions/system-log-out.png "killall xunhuan" "注销"
注意里面“group7#”、“group8#”部分,就是用于切换WM的。同样,主session的shell:/usr/bin/all_in_one,也调用了这个wharf。
而“group10#”里面则是用于注销的语句。
五、其他可以代替这个Wharf、xfce4面板 等 的软件:
如果你不喜欢这个wharf,好像有两个可以代替他的:Apwal和wmdrawerrc。前者需要在xfce4面板上面加个启动按钮,后者需要在面板上面加上xfce4-wmdock-plugin。他们的配置请自己google或看各自的文档。
或者在xfce4面板上直接加按钮等,也可以考虑。
至于xfce4面板,好像是通用型最强的面板了,你也可以尝试其他面板,看看能不能在这些WM里面正常使用。
至于选择的这些WM,我是考虑和xfce4面板的配合而选择的他们。现在依靠新立得可以安装40多种WM,大家如果换了面板,可以尝试更换WM组合。
另外,我使用了xfce4-wmdock-plugin,加上了几个dockapp到面板上面,大家也可以尝试。
viewtopic.php?f=168&t=343665&p=2469017#p2469017
六、一些窍门:
1,文件 ~/.bashrc 里面加上一行,把“无敌三键”启用起来,直接ctrl-alt-backspace可以杀死X实现注销。

代码: 全选

setxkbmap -option terminate:ctrl_alt_bksp
2,注销指令现在是:killall xunhuan
3,我制作、收集的这些WM对应的图标。
iconmenu_iconcache.tar.gz
(39.85 KiB) 已下载 293 次
头像
luojie-dune
帖子: 22033
注册时间: 2007-07-30 18:28
系统: Linux
来自: 空气中

Re: 新立得里面过滤“window manager”找到的有趣的东西

#74

帖子 luojie-dune » 2011-09-23 6:31

metacity 要透明需要开启。Deepin 开启了。

我不喜欢透明,很多显卡都有问题。
『这个世界都是我的 ,我爱你们』

ENTP ⥂ INTP ⥄ INFP ⇦ INTJ

在此发布的文章使用 Creative Commons Attribution-ShareAlike 4.0 协议
头像
luojie-dune
帖子: 22033
注册时间: 2007-07-30 18:28
系统: Linux
来自: 空气中

Re: 新立得里面过滤“window manager”找到的有趣的东西

#75

帖子 luojie-dune » 2011-09-23 6:32

另外 Matchbox 就是 Nokia N900 的窗口管理器的说。
『这个世界都是我的 ,我爱你们』

ENTP ⥂ INTP ⥄ INFP ⇦ INTJ

在此发布的文章使用 Creative Commons Attribution-ShareAlike 4.0 协议
回复