


非也非也,神非此人,而是另有他人。zsneoks 写了:楼主很明显是神嘛。
我了个去呀。
正解正解,论坛的神只能有一个,其它人最多向神的位置攀爬YeLee 写了:非也非也,神非此人,而是另有他人。zsneoks 写了:楼主很明显是神嘛。
我了个去呀。
好累,要爬不动了!liu滔 写了:正解正解,论坛的神只能有一个,其它人最多向神的位置攀爬YeLee 写了:非也非也,神非此人,而是另有他人。zsneoks 写了:楼主很明显是神嘛。
我了个去呀。
关于这一点,研究了很多天,经过反复尝试,已经很完美的实现了。现在将结果公布出来,供大家参考借鉴。就加一个按钮或命令,能够在不用关闭已经打开的程序和文件,也不注销的前提下,快速切换wm和风格。
代码: 全选
sudo dpkg-reconfigure kdm
注意以下两句:[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
这两句里面要执行的命令,就是sessions调用的命令。只要这个命令的进程还在内存中,则sessions不会退出,否则sessions退出,X重启,重新登陆。Exec=ratpoison
TryExec=ratpoison
知识介绍完毕,可见实现上面目标的关键是自己写个sessions和其调用的shell,关键在于shell怎么写。就加一个按钮或命令,能够在不用关闭已经打开的程序和文件,也不注销的前提下,快速切换wm和风格。
好吧,首先回顾一下您已经了解的知识。 在 shell 中敲入一条命令后,您就什么事都做不了了,除非等到该命令 执行完毕并退出。您的 session 调用的脚本也是如此。当脚本开始执行时, 凡遇到任何一个需要很长时间运行的程序(多数 X11 程序都是这样的), 它就停在那儿等到该程序执行完毕为止。& 后台工作
单一个& 符号,且放在完整指令列的最后端,即表示将该指令列放入后台中工作。
tar cvfz data.tar.gz data > /dev/null &
代码: 全选
xclock &
代码: 全选
wmaker & wmpid=$!
代码: 全选
wait $wmpid
代码: 全选
while true; do
musca
pekwm
...
...
done
代码: 全选
#!/bin/bash
while true; do
sleep 600 #一个死循环,中间不停地sleep睡眠。没有任何意义,只是为了使这个进程驻守内存,并且尽量不占用系统资源。
done
代码: 全选
#!/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]
代码: 全选
#!/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
代码: 全选
~/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
代码: 全选
killall iconrun1
killall iconrun2
cd ~/.iconmenu/bin
exec ./start.sh START &
代码: 全选
#---------------------------------------------------------------------------------------------------
# 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" "注销"
代码: 全选
setxkbmap -option terminate:ctrl_alt_bksp