又要开始折腾了(第7轮折腾):折腾目的改了,这次要折腾脚本、语言、开发什么的了。

仅供存放个人的配置文件,不要在本版发问。
头像
ljj_jjl2008
论坛版主
帖子: 14255
注册时间: 2007-09-16 8:29

又要开始折腾了(第7轮折腾):折腾目的改了,这次要折腾脚本、语言、开发什么的了。

#1

帖子 ljj_jjl2008 » 2012-03-15 15:35

1,把“神之脚本”加入到了我的多WM和DE并存的环境中。并对神之脚本在多个WM中做了测试,并适当优化。(131-157楼)
http://forum.ubuntu.org.cn/viewtopic.ph ... &start=120
优化主要调整了:使用kde的壁纸,用habak,随即选取壁纸,动态生成带天气预报的壁纸。

以下是修改的/usr/bin/cairo-weather.pl
[perl]#!/usr/bin/perl

use Encode qw(_utf8_on _utf8_off encode decode);
use Cairo;
use Gtk2;
use Gnome2::GConf;
use File::Basename qw/basename dirname/;
#use POSIX qw(strftime);
#use feature qw(switch say);

$appdir="/usr/share/cairo-weather/";
if(! -e $appdir){
$appdir=dirname (-l $0?readlink $0:$0);
}
$outputfile="/tmp/weather.png";

@tpdir=("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") ;
##这是第一处修改
my $gconf = Gnome2::GConf::Client -> get_default;
$rcdir="$ENV{HOME}/.config/cairo-weather/";
$rc="$ENV{HOME}/.config/cairo-weather/config";
$rcsys="/usr/share/cairo-weather/config";
if (! -e $rc && -e $rcsys){`mkdir -p $rcdir; cp $rcsys $rc`;}
open RC,"<$rc"; @rc=grep ! /^\s*#/ && ! /^\s*$/,<RC>; close RC;
%hrc=map{split /\s*=/} @rc;
chomp %hrc;
foreach (keys %hrc){$hrc{$_}=~s/['"]//g;}
while (my ($k,$v)=each %hrc){print "{$k}\t=> $v\n";}
#my $bg_file = $ENV{'HOME'}.'/.gnome2/backgrounds.xml';
#while (my ($key, $value) = each(%{$xml -> {'wallpaper'}})){
# push @wallpapers, $key if $value -> {'deleted'} eq 'false';
#}
#`gconftool-2 -s /apps/nautilus/preferences/show_desktop false -t bool`;
# ------以下为可自定义的部分------
#屏幕偏移坐标,可以负坐标对齐
$pos=$hrc{pos}//"-80,80";
$font=$hrc{font}//"Vera Sans YuanTi";
# 壁纸文件。
#$gnomebg=`gconftool-2 -g /desktop/gnome/background/picture_filename`;
$gnomebg=$gconf->get("/desktop/gnome/background/picture_filename");
#chomp $gnomebg;
$bgfile=-e $hrc{bgfile}?$hrc{bgfile}:$gnomebg;
$bgfile=~s'file://'';
# 城市天气信息地址
#$app_setbg=$hrc{app_setbg}//"show_png.pl";
$url=$hrc{url}//"http://qq.ip138.com/weather/hunan/ChangSha.wml";
$scale=$hrc{scale}//0.6;
$icondir=-e $hrc{icondir}?$hrc{icondir}:"$appdir/weather-icon";
%indexcolor=( # RGBA
"t"=>"#E55E23E0", # 今天
"w"=>"#E55E2390", # 周日
"o"=>"#C8C8C8E0", # 其他
"0"=>"#14141490", # 今天背景
"1"=>"#14141432", # 周日背景
);
$indexcolor{"t"}=$hrc{"ctoday"} if $hrc{"ctoday"};
$indexcolor{"w"}=$hrc{"cweek"} if $hrc{"cweek"};
$indexcolor{"o"}=$hrc{"cother"} if $hrc{"cother"};
$indexcolor{"0"}=$hrc{"btoday"} if $hrc{"btoday"};
$indexcolor{"1"}=$hrc{"bweek"} if $hrc{"bweek"};

$show_app=$hrc{show_app}//"$appdir/show_png.pl";
$refresh=$hrc{refresh}//"0";
if(! $refresh){
if ((localtime((stat($outputfile))[9]))[7] eq (localtime)[7]){
#文件是今天的
show();
exit;
}}
#until($_[3]=~/answer/){@_=`nslookup qq.ip138.com`;};
# ------以上为可自定义的部分------
my $city;
#@t=localtime(time);$today=($t[5]+1900)."-".($t[4]+1)."-".$t[3];
use LWP::Simple; $_=get($url);
if($_){ #取得了网页。解析。只留天气和温度,风向。
$_=encode("utf8",$_);
if ($url=~/qq\.ip138\.com/){
/title="(.*?)天气预报"/; $city=$1;
s/.*?(?=\d{4}-\d)//s;s/\n.*//s; #去掉头尾无用信息。
s/<br\/><br\/><b>/\n/g; s/<br\/>/\t/g; s/<\/b>//g; s/<b>//g;
s/℃/°C/g; s/~/-/g; s/\x0d/\n/g;
s/2\d\d\d.*?\t//g;
@_=split "\n",$_;
}
elsif ($url=~/wap\.weather\.gov\.cn/){
/※(.*?)\d\d/; $city=$1;
@_=/【\d.*?<img/sg;
for(@_){
s/^.*nbsp;(\d)/\1/sg;
s/[\n\r\ ]//g;s/&nbsp;//g;s/<img//g;
s/^(.*)\t+(.*)/\2\t\1/g;
}
}
elsif ($url=~/m\.weather\.com\.cn/){
s/[{},]/\n/g; s/"//g;
%h=map{split /:/} grep /city\b|weather\d|temp\d|wind\d/,split /\n/;
$city=$h{city};
for $i (1..6){
$_=$h{"weather".$i}."\t".$h{"temp".$i}."\t".$h{"wind".$i};
push @_,$_;
}
}
else {die "no recognized url format.\n";}
} else {die "can not fetch web.\n";}
# for (@_){print "$_\n";}; exit;
#---------------------------------
$max=@_;
chdir "$appdir/calendar";
`date`=~/.{4}/; $year=$&;
@alllunar=`/usr/bin/calendar -A $max -f *$year*`;
if(/12月/ ~~ @alllunar && /1月/ ~~ @alllunar){
@tmp=grep /^12/,@alllunar;
$year++; $max=$max-scalar(@tmp);
@alllunar=`/usr/bin/calendar -A $max -f *$year* -t 0101`;
push @alllunar,@tmp;
}
chdir $icondir;
-f "00.png" || die "can not fetch picture file.\n";
$surface = Cairo::ImageSurface->create_from_png ("00.png");
$size=$surface->get_width()*$scale;
#$size=$size*$screennw/1280;
$w0=$size*1.8;$h0=$size/3; # 单位方框尺寸
$x0=$size/6; $y0=$size/2;
$surface = Cairo::ImageSurface->create ('argb32',$w0*$max,$size*4);
$year="";$month=""; $cnt=0;
#---------------------------------
for (@_){
#next if ! /$today/ && ! $is;
@t=localtime(time+86400*$cnt);
$sign="o"; if($cnt==0){$sign="t";$tweek=$t[6];} else{if (($t[6]==0)||($t[6]==6)){$sign="w";}}
$cnt++;
#last if ($cnt+1>$max);
chomp;
#($sign,$date,$weather,$temp,$wind)=split "\t",$_;
($weather,$temp,$wind)=split "\t",$_;
#($y,$m,$d)=split "-",$date;
$y=$t[5]+1900;$m=$t[4]+1;$d=$t[3];
#---------------------------------
@lunar=grep /$m月.*$d \t/,@alllunar;
$_=$lunar[0];
chomp;s/^.*\t//;s/\ (.*)//;$lunar[0]=$_;
#---------------------------------
if($year==""){$year=$y;}elsif($year==$y){$y="";}else{$year=$y;}
if($month==""){$month=$m;}elsif($month==$m){$m="";}else{$month=$m;}
$y.="年" if($y);
$m.="月" if($m);
$d.="日";
#---------------------------------
$color=$indexcolor{$sign};
if($sign eq "t"){drawframe($x0-$size/6,$size/4,$indexcolor{"0"});}
if($sign eq "w"){drawframe($x0-$size/6,$size/4,$indexcolor{"1"});}
#---------------------------------
$y1=$y0;
$fsize=$size/5;
drawtxt("$m$d - $lunar[0]",$x0,$y1);
$y1+=$h0;
$_=$weather; $x2=$x0+$size/2; $y2=$y1+$size/2;
s/小到//;s/中到//;s/大到//;
s/小雨/09.png/g; s/中雨/10.png/g; s/大雨/11.png/g;s/暴雨/12.png/g;
s/雨夹雪/07.png/g; s/小雪/13.png/g; s/中雪/14.png/g; s/大雪/15.png/g;
s/暴雪/16.png/g;s/多云/26.png/;s/晴/32.png/;s/阴/31.png/;s/转/-/;s/雷阵雨/17.png/;s/阵雨/09.png/;
if(/-/){
my ($img1,$img2)=split "-";
$currentpng="$img1" if ! $currentpng;
#drawpng("$img1",$x0,$y1-$size/8);
drawpng("$img1",$x0,$y1);
drawpng("$img2",$x0+$size/2,$y1+$size/4);
}else{
drawpng("$_",$x0,$y1);
$currentpng="$_" if ! $currentpng;
}
$y1+=1.5*$size;
#drawpangotxt("<span color='blue'>$weather</span>",$x0,$y1);
drawtxt("$weather",$x0,$y1);
$y1+=$h0; $_=$temp; s/°C/℃/g;
drawtxt("$_",$x0,$y1);
if($wind){
$y1+=$h0;
$fsize=$size/6;
#_utf8_on($wind);$wind=~s/.{10}/$&\\n\\n/g;_utf8_off($wind);
($wind,$tmp)=split /\//,$wind;
drawtxt("$wind",$x0,$y1);
drawtxt("$tmp",$x0,$y1+$h0) if($tmp);
}
$x0+=$w0;
}
#@week=('㊐','㊀','㊁','㊂','㊃','㊄','㊅');
@week=('日','壹','貳','叁','肆','伍','陸');
$color=$indexcolor{"t"};
drawstamp($week[$tweek],$size,$size*2.5,5);
drawstamp($year." ".$city, $w0*$max/2, $size*3.5,1.8,-0.2);
$surface->write_to_png ("$outputfile");
show();

#---------------------------------
sub show(){
# 如果安装有habak,则设置成壁纸。否则使用内建的show_png.pl 显示。

####这里也有修改

srand;#要先宣告srand函数,才能产生Perl随机数的效果
$tpint=int(rand(47));
if (-e '/usr/bin/habak'){
$gconf->set("/apps/nautilus/preferences/show_desktop",{type=>'bool',value=>'false'});
if (-e "/usr/share/wallpapers/$tpdir[$tpint]/contents/images/1280x1024.jpg"){
$cmd="habak -ms \"/usr/share/wallpapers/$tpdir[$tpint]/contents/images/1280x1024.jpg\" -mp $pos -hi $outputfile";
}
else {
$cmd="habak -ms \"/usr/share/wallpapers/$tpdir[$tpint]/contents/images/1280x1024.png\" -mp $pos -hi $outputfile";
}
msg(); `$cmd`;
}
else {
$gconf->set("/apps/nautilus/preferences/show_desktop",{type=>'bool',value=>'true'});
$cmd="show_png $outputfile at $pos on desktop";
msg(); show_png();}
}
#---------------------------------
sub msg{
print "\e[1;37;41m$cmd\e[0m\n";
`notify-send -i "$icondir/$currentpng" "Desktop Weather with Cairo" "$cmd"` if -e "/usr/bin/notify-send";
}
#---------------------------------
my $img;
my $window;

sub show_png(){
use Gtk2 '-init';

$window = Gtk2::Window->new();
$window->set_decorated(0);
$window->add_events("GDK_BUTTON_PRESS_MASK");
$window->stick;
$window->set_keep_below(1);
$window->signal_connect('expose_event', \&expose);
$window->signal_connect('button_press_event',\&mouse);
$img = Cairo::ImageSurface->create_from_png ($outputfile);
$window->set_size_request($img->get_width(),$img->get_height());
$window->set_colormap($window->get_screen->get_rgba_colormap());

$root=Gtk2::Gdk->get_default_root_window;
my ($x, $y, $width, $height, $depth) = $root->get_geometry;
($x,$y)=split ',',$pos;
if($x<0){$x=$width+$x-$img->get_width;}
if($y<0){$y=$height+$y-$img->get_height;}

$window->move($x,$y);
$window->show_all();
Gtk2->main;
}
#---------------------------------
sub expose {
my($widget, $event) = @_;
my $cr = Gtk2::Gdk::Cairo::Context->create($widget->window);
$cr->set_operator("source");
$cr->set_source_surface($img,0,0);
$cr->paint;
print "";
}

sub mouse{
my ($widget, $event) = @_;
if($event->button eq 1){
$window->begin_move_drag($event->button,$event->x_root,$event->y_root,$event->time);
}
else {exit;}
}
#---------------------------------
sub drawpng(){
$img = Cairo::ImageSurface->create_from_png ("$_[0]");
my $cr = Cairo::Context->create ($surface);
$cr->translate($_[1],$_[2]);
$cr->scale($scale,$scale);
$cr->set_source_surface($img,0,0);
#$cr->set_source_surface($img,$_[1]/$scale,$_[2]/$scale);
$cr->paint;
}

#sub drawpangotxt(){
#my $cr = Cairo::Context->create ($surface);
#my $pango_layout = Gtk2::Pango::Cairo::create_layout ($cr);
#my $font_desc = Gtk2::Pango::FontDescription->from_string("$font $fsize");
#$pango_layout->set_font_description($font_desc);
#$pango_layout->set_markup (decode("utf-8", "$_[0]"));
#my ($R,$G,$B,$A)=split ',',$color;
#$cr->set_source_rgba(0,0,0,1); #缺省黑色阴影
#$cr->move_to($_[1]+1,$_[2]+1);
#Gtk2::Pango::Cairo::show_layout ($cr, $pango_layout);
#$cr->show_page();
#$cr->set_source_rgba($R/256,$G/256,$B/256,$A/256); #缺省白色字体
#$cr->move_to($_[1],$_[2]);
#Gtk2::Pango::Cairo::show_layout ($cr, $pango_layout);
#$cr->show_page();
#}

sub drawstamp()
{
my $rotate=$_[4]//-0.4;
my $cr = Cairo::Context->create ($surface);
$cr->select_font_face("$font",'normal','bold');
$cr->set_font_size($fsize*$_[3]);
$color=~s/#//; my @C=map {$_/256} map {hex} $color=~/.{2}/g;
my $ebb=1.5;
$cr->set_source_rgba($C[0]/$ebb,$C[1]/$ebb,$C[2]/$ebb,$C[3]/$ebb);
$cr->set_operator("saturate");
#$cr->set_operator("dest-over"); #被背景覆盖
#clear, source, over, in, out, atop, dest, dest-over, dest-in, dest-out, dest-atop, xor, add, saturate
$cr->move_to($_[1],$_[2]);
$cr->rotate($rotate);
$cr->text_path("$_[0]");
$cr->set_line_width(3);
$cr->fill_preserve();
$cr->stroke();

for $i (1..$_[3]){
$i++;
$cr->set_source_rgba($C[0]-$i/3,$C[1]-$i/3,$C[2]-$i/3,$C[3]/1.2);
$cr->rotate(-$rotate);
$cr->move_to($_[1]-$i,$_[2]+$i);
$cr->rotate($rotate);
$cr->text_path("$_[0]");
$cr->fill_preserve();
$cr->stroke();
}
}

sub drawtxt(){
my $cr = Cairo::Context->create ($surface);
$cr->select_font_face("$font",'normal','bold');
$cr->set_font_size($fsize);
$cr->set_source_rgba(0,0,0,1); #缺省黑色阴影
$cr->move_to($_[1]+1,$_[2]+1);
$cr->show_text("$_[0]");
$color=~s/#//; my @C=map {$_/256} map {hex} $color=~/.{2}/g;
$cr->set_source_rgba($C[0],$C[1],$C[2],$C[3]);
$cr->move_to($_[1],$_[2]);
$cr->show_text("$_[0]");
}

sub drawframe(){
my ($x,$r,$c)=@_;
my $w=$w0;
my $h=3.5*$size;
my $cr = Cairo::Context->create ($surface);
$PI=3.1415926/180;
$cr->move_to($x+$r,0);
$cr->rel_line_to($w-2*$r,0);
$cr->rel_curve_to(0,0,$r,0,$r,$r);
$cr->rel_line_to(0,$h-2*$r);
$cr->rel_curve_to(0,0,0,$r,-$r,$r);
$cr->rel_line_to(-($w-2*$r),0);
$cr->rel_curve_to(0,0,-$r,0,-$r,-$r);
$cr->rel_line_to(0,-($h-2*$r));
$cr->rel_curve_to(0,0,0,-$r,$r,-$r);
$c=~s/#//; my @C=map {$_/256} map {hex} $c=~/.{2}/g;
$cr->set_source_rgba($C[0],$C[1],$C[2],$C[3]);
$cr->fill;

#return if $sign eq "w";
$cr->set_line_cap(butt); # butt, round, square
$cr->set_line_join(round); # miter, round, bevel
$cr->set_operator("clear");
my $l=$size/10;
$cr->set_line_width($l/2);
for $i (0..$l*1.5){
$cr->move_to($x,$size+$i*$l);
if($sign eq "t"){
$cr->rel_curve_to($w/3,$l*2,$w*2/3,-$l*2,$w,0);
}else{
for $d (1,-1,1,-1){$cr->rel_line_to($w/4,$d*$h/20);}
}
$cr->stroke;
}
}

[/perl]

这里是我找到的可用的habak的下载地址。
http://old-releases.ubuntu.com/ubuntu/p ... e/h/habak/

(正在编辑中,未完待续)
头像
枫叶饭团
帖子: 14683
注册时间: 2010-06-16 1:05
系统: Mac OS X
来自: Tencent
联系:

Re: 又要开始折腾了(第7轮折腾):这次主要是优化、美化,是针对前6轮折腾调优的。

#2

帖子 枫叶饭团 » 2012-03-15 15:36

我也要开始新一轮的折腾了。。。
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: 又要开始折腾了(第7轮折腾):这次主要是优化、美化,是针对前6轮折腾调优的。

#3

帖子 eexpress » 2012-03-15 15:38

我回fvwm,开启xcompmgr,cairo-weather正常得很。
● 鸣学
头像
ljj_jjl2008
论坛版主
帖子: 14255
注册时间: 2007-09-16 8:29

Re: 又要开始折腾了(第7轮折腾):这次主要是优化、美化,是针对前6轮折腾调优的。

#4

帖子 ljj_jjl2008 » 2012-03-15 15:57

调整了plasma_desktop、plasma_netbook、unity、gnome-shell、wmaker、afterstep,主要是:启动他们时,关闭掉显得多余的xfce4-panel,刷新桌面也变成了使用神的脚本。现在将所有配置文件备份一份。

文件 ~/change_wm:
[bash]
#!/bin/bash

~/kill_wm
sleep 3
cat /dev/null > ~/kill_wm
case $1 in
sawfish)
sawfish &
killall klipper
cairo-compmgr &
sleep 2
klipper
echo killall sawfish >> ~/kill_wm
echo killall cairo-compmgr >> ~/kill_wm
killall iconrun1
killall iconrun2
cd ~/.iconmenu/bin
exec ./start.sh START &
cairo-weather.pl
;;
metacity)
metacity &
killall klipper
cairo-compmgr &
sleep 2
klipper
echo killall metacity >> ~/kill_wm
echo killall cairo-compmgr >> ~/kill_wm
killall iconrun1
killall iconrun2
cd ~/.iconmenu/bin
exec ./start.sh START &
cairo-weather.pl
;;
kwin)
kwin &
echo "pkill -9 kwin" >> ~/kill_wm
killall klipper
sleep 5
klipper
killall iconrun1
killall iconrun2
cd ~/.iconmenu/bin
exec ./start.sh START &
cairo-weather.pl
;;
compiz)
metacity &
sleep 1
compiz &
fusion-icon &
echo killall fusion-icon >> ~/kill_wm
echo killall compiz >> ~/kill_wm
killall klipper
sleep 8
klipper
killall iconrun1
killall iconrun2
cd ~/.iconmenu/bin
exec ./start.sh START &
cairo-weather.pl
;;
mutter)
mutter &
echo killall mutter >> ~/kill_wm
killall klipper
sleep 5
klipper
killall iconrun1
killall iconrun2
cd ~/.iconmenu/bin
exec ./start.sh START &
cairo-weather.pl
;;
xfwm4)
xfwm4 &
echo killall xfwm4 >> ~/kill_wm
killall klipper
cairo-compmgr &
echo killall cairo-compmgr >> ~/kill_wm
sleep 5
klipper
killall iconrun1
killall iconrun2
cd ~/.iconmenu/bin
exec ./start.sh START &
cairo-weather.pl
;;
flwm)
flwm &
echo killall flwm >> ~/kill_wm
killall klipper
cairo-compmgr &
echo killall cairo-compmgr >> ~/kill_wm
sleep 2
klipper
killall iconrun1
killall iconrun2
cd ~/.iconmenu/bin
exec ./start.sh START &
cairo-weather.pl
;;
miwm)
miwm &
echo pkill -9 miwm >> ~/kill_wm
killall klipper
cairo-compmgr &
echo killall cairo-compmgr >> ~/kill_wm
sleep 2
klipper
killall iconrun1
killall iconrun2
cd ~/.iconmenu/bin
exec ./start.sh START &
cairo-weather.pl
;;
icewm)
icewm &
echo killall icewm >> ~/kill_wm
killall klipper
cairo-compmgr &
echo killall cairo-compmgr >> ~/kill_wm
sleep 2
klipper
killall iconrun1
killall iconrun2
cd ~/.iconmenu/bin
exec ./start.sh START &
cairo-weather.pl
;;
jwm)
jwm &
echo killall jwm >> ~/kill_wm
killall klipper
cairo-compmgr &
echo killall cairo-compmgr >> ~/kill_wm
echo killall klipper >> ~/kill_wm
echo sleep 5 >> ~/kill_wm
echo "klipper &" >> ~/kill_wm
sleep 5
klipper
killall iconrun1
killall iconrun2
cd ~/.iconmenu/bin
exec ./start.sh START &
cairo-weather.pl
;;
oroborus)
oroborus &
echo killall oroborus >> ~/kill_wm
killall klipper
cairo-compmgr &
echo killall cairo-compmgr >> ~/kill_wm
sleep 2
klipper
killall iconrun1
killall iconrun2
cd ~/.iconmenu/bin
exec ./start.sh START &
cairo-weather.pl
;;
blackbox)
blackbox &
echo killall blackbox >> ~/kill_wm
killall klipper
cairo-compmgr &
echo killall cairo-compmgr >> ~/kill_wm
sleep 6
klipper
killall iconrun1
killall iconrun2
cd ~/.iconmenu/bin
exec ./start.sh START &
cairo-weather.pl
;;
openbox)
openbox &
echo killall openbox >> ~/kill_wm
killall klipper
cairo-compmgr &
echo killall cairo-compmgr >> ~/kill_wm
sleep 2
klipper
killall iconrun1
killall iconrun2
cd ~/.iconmenu/bin
exec ./start.sh START &
cairo-weather.pl
;;
fvwm)
fvwm &
echo killall fvwm >> ~/kill_wm
killall klipper
cairo-compmgr &
echo killall cairo-compmgr >> ~/kill_wm
sleep 7
klipper
killall iconrun1
killall iconrun2
cd ~/.iconmenu/bin
exec ./start.sh START &
cairo-weather.pl
;;
pekwm)
pekwm &
echo killall pekwm >> ~/kill_wm
killall klipper
cairo-compmgr &
echo killall cairo-compmgr >> ~/kill_wm
sleep 2
klipper
killall iconrun1
killall iconrun2
cd ~/.iconmenu/bin
exec ./start.sh START &
cairo-weather.pl
;;
lwm)
lwm &
echo "pkill -9 lwm" >> ~/kill_wm
killall klipper
cairo-compmgr &
echo killall cairo-compmgr >> ~/kill_wm
sleep 2
klipper
killall iconrun1
killall iconrun2
cd ~/.iconmenu/bin
exec ./start.sh START &
cairo-weather.pl
;;
wm2)
wm2 &
echo killall wm2 >> ~/kill_wm
killall klipper
cairo-compmgr &
echo killall cairo-compmgr >> ~/kill_wm
sleep 2
klipper
killall iconrun1
killall iconrun2
cd ~/.iconmenu/bin
exec ./start.sh START &
cairo-weather.pl
;;
ctwm)
ctwm &
echo killall ctwm >> ~/kill_wm
killall klipper
cairo-compmgr &
echo killall cairo-compmgr >> ~/kill_wm
sleep 6
klipper
killall iconrun1
killall iconrun2
cd ~/.iconmenu/bin
exec ./start.sh START &
cairo-weather.pl
;;
evilwm)
evilwm &
echo pkill -9 evilwm >> ~/kill_wm
killall klipper
cairo-compmgr &
echo killall cairo-compmgr >> ~/kill_wm
sleep 2
klipper
killall iconrun1
killall iconrun2
cd ~/.iconmenu/bin
exec ./start.sh START &
cairo-weather.pl
;;
wmaker)
killall iptux
xfce4-panel -q
killall -9 wmclock
killall -9 wmcpu
killall -9 bubblefishymon
wmaker &
cairo-compmgr &
echo "killall -9 wmaker" >> ~/kill_wm
echo killall cairo-compmgr >> ~/kill_wm
echo killall klipper >> ~/kill_wm
echo "kwin & ">> ~/kill_wm
echo sleep 6 >> ~/kill_wm
echo killall -9 wmclock >> ~/kill_wm
echo killall -9 wmcpu >> ~/kill_wm
echo killall -9 bubblefishymon >> ~/kill_wm
echo "xfce4-panel & " >> ~/kill_wm
echo sleep 8 >> ~/kill_wm
echo "klipper &" >> ~/kill_wm
echo killall kwin >> ~/kill_wm
echo "iptux &" >> ~/kill_wm
killall klipper
sleep 5
klipper
iptux &
killall iconrun1
killall iconrun2
cd ~/.iconmenu/bin
exec ./start.sh START &
cairo-weather.pl
;;
afterstep)
killall klipper
killall iptux
xfce4-panel -q
killall -9 wmclock
killall -9 wmcpu
killall -9 bubblefishymon
afterstep &
echo "killall -9 afterstep" >> ~/kill_wm
echo killall klipper >> ~/kill_wm
echo "kwin & ">> ~/kill_wm
echo sleep 6 >> ~/kill_wm
echo killall -9 wmclock >> ~/kill_wm
echo killall -9 wmcpu >> ~/kill_wm
echo killall -9 bubblefishymon >> ~/kill_wm
echo "xfce4-panel & " >> ~/kill_wm
echo sleep 8 >> ~/kill_wm
echo "klipper &" >> ~/kill_wm
echo killall kwin >> ~/kill_wm
echo "iptux &" >> ~/kill_wm
sleep 15
klipper
iptux &
killall iconrun1
killall iconrun2
cd ~/.iconmenu/bin
exec ./start.sh START &
cairo-weather.pl
;;
e17)
killall klipper
killall iptux
xfce4-panel -q
enlightenment_start &
sleep 8
klipper &
iptux &
echo killall -9 wmclock >> ~/kill_wm
echo killall -9 wmcpu >> ~/kill_wm
echo killall -9 bubblefishymon >> ~/kill_wm
echo "xfce4-panel & " >> ~/kill_wm
echo killall klipper >> ~/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 enlightenment" >> ~/kill_wm
killall iconrun1
killall iconrun2
cd ~/.iconmenu/bin
exec ./start.sh START &
cairo-weather.pl
;;
stumpwm)
stumpwm &
echo "pkill -9 stumpwm" >> ~/kill_wm
echo "pkill -9 lisp.run" >> ~/kill_wm
echo killall klipper >> ~/kill_wm
echo sleep 5 >> ~/kill_wm
echo "klipper &" >> ~/kill_wm
killall klipper
sleep 6
klipper
killall iconrun1
killall iconrun2
cd ~/.iconmenu/bin
exec ./start.sh START &
cairo-weather.pl
;;
awesome)
xfce4-panel -q
awesome &
echo "pkill -9 awesome" >> ~/kill_wm
echo killall klipper >> ~/kill_wm
echo "kwin & ">> ~/kill_wm
echo sleep 6 >> ~/kill_wm
echo killall -9 wmclock >> ~/kill_wm
echo killall -9 wmcpu >> ~/kill_wm
echo killall -9 bubblefishymon >> ~/kill_wm
echo "xfce4-panel & " >> ~/kill_wm
echo sleep 8 >> ~/kill_wm
echo "klipper &" >> ~/kill_wm
echo killall kwin >> ~/kill_wm
killall klipper
sleep 5
klipper
killall iconrun1
killall iconrun2
cd ~/.iconmenu/bin
exec ./start.sh START &
cairo-weather.pl
;;
plasma_desktop)
killall cairo-compmgr
kwin &
plasma-desktop &
killall klipper
killall iptux
xfce4-panel -q
sleep 10
klipper &
iptux &
echo killall plasma-desktop >> ~/kill_wm
echo killall -9 wmclock >> ~/kill_wm
echo killall -9 wmcpu >> ~/kill_wm
echo killall -9 bubblefishymon >> ~/kill_wm
echo killall -9 kwalletd >> ~/kill_wm
echo killall -9 kuiserver >> ~/kill_wm
echo killall -9 kio_trash >> ~/kill_wm
echo killall -9 kio_http >> ~/kill_wm
echo "xfce4-panel & " >> ~/kill_wm
echo sleep 5 >> ~/kill_wm
echo "pkill -9 kwin" >> ~/kill_wm
echo killall klipper >> ~/kill_wm
echo "klipper &" >> ~/kill_wm
killall iconrun1
killall iconrun2
cd ~/.iconmenu/bin
exec ./start.sh START &
;;
plasma_netbook)
killall cairo-compmgr
kwin &
plasma-netbook &
killall klipper
killall iptux
xfce4-panel -q
sleep 10
klipper &
iptux &
echo killall plasma-netbook >> ~/kill_wm
echo killall -9 wmclock >> ~/kill_wm
echo killall -9 wmcpu >> ~/kill_wm
echo killall -9 bubblefishymon >> ~/kill_wm
echo killall -9 kwalletd >> ~/kill_wm
echo killall -9 kuiserver >> ~/kill_wm
echo killall -9 kio_trash >> ~/kill_wm
echo killall -9 kio_http >> ~/kill_wm
echo "xfce4-panel & " >> ~/kill_wm
echo sleep 5 >> ~/kill_wm
echo "pkill -9 kwin" >> ~/kill_wm
echo killall klipper >> ~/kill_wm
echo "klipper &" >> ~/kill_wm
killall iconrun1
killall iconrun2
cd ~/.iconmenu/bin
exec ./start.sh START &
;;
gnome-shell)
killall klipper
killall iptux
xfce4-panel -q
gnome-shell &
sleep 8
klipper &
iptux &
echo killall -9 wmclock >> ~/kill_wm
echo killall -9 wmcpu >> ~/kill_wm
echo killall -9 bubblefishymon >> ~/kill_wm
echo "xfce4-panel & " >> ~/kill_wm
echo killall klipper >> ~/kill_wm
echo sleep 5 >> ~/kill_wm
echo killall gnome-shell >> ~/kill_wm
echo "klipper &" >> ~/kill_wm
killall iconrun1
killall iconrun2
cd ~/.iconmenu/bin
exec ./start.sh START &
;;
unity)
killall klipper
killall iptux
xfce4-panel -q
unity &
sleep 10
klipper &
iptux &
echo killall unity >> ~/kill_wm
echo killall nautilus >> ~/kill_wm
echo killall -9 wmclock >> ~/kill_wm
echo killall -9 wmcpu >> ~/kill_wm
echo killall -9 bubblefishymon >> ~/kill_wm
echo "xfce4-panel & " >> ~/kill_wm
echo sleep 5 >> ~/kill_wm
echo killall compiz >> ~/kill_wm
echo killall klipper >> ~/kill_wm
echo killall -9 unity-panel-ser >> ~/kill_wm
echo killall -9 gvfs-gdu-volume >> ~/kill_wm
echo killall -9 gvfs-afc-volume >> ~/kill_wm
echo killall -9 gvfs-gphoto2-vo >> ~/kill_wm
echo killall -9 gvfsd-trash >> ~/kill_wm
echo killall -9 dconf-service >> ~/kill_wm
echo killall -9 bamfdaemon >> ~/kill_wm
echo killall -9 hud-service >> ~/kill_wm
echo killall -9 unity-applicati >> ~/kill_wm
echo killall -9 unity-lens-vide >> ~/kill_wm
echo killall -9 unity-music-dae >> ~/kill_wm
echo killall -9 unity-files-dae >> ~/kill_wm
echo killall -9 unity-musicstor >> ~/kill_wm
echo killall -9 zeitgeist-daemo >> ~/kill_wm
echo killall -9 zeitgeist-datah >> ~/kill_wm
echo killall -9 zeitgeist-fts >> ~/kill_wm
echo killall -9 gtk-window-deco >> ~/kill_wm
echo killall -9 accounts-daemon >> ~/kill_wm
echo killall -9 geoclue-master >> ~/kill_wm
echo killall -9 ubuntu-geoip-pr >> ~/kill_wm
echo killall -9 unity-scope-vid >> ~/kill_wm
echo killall -9 gvfsd-metadata >> ~/kill_wm
echo killall -9 gvfsd-burn >> ~/kill_wm
echo sleep 5 >> ~/kill_wm
killall iconrun1
killall iconrun2
cd ~/.iconmenu/bin
exec ./start.sh START &
;;
*)
;;
esac
[/bash]
iconmenu:做了重大改动,把c源程序和basic脚本都改了,增加了一些功能。
http://forum.ubuntu.org.cn/viewtopic.php?f=168&t=344172
版本更新说明----2012.03.15最新版
1,允许在2级icon中包含独立按钮了,可以减少鼠标点击。
2,配置文件增加了一个参数,用于设置是否:点击3级icon或者独立icon时,自动关闭2级icon和3级icon。
3,调整了basic脚本,修改和增加了脚本调用的程序,文件结构有所改动。
的备份:


文件 /usr/share/kde4/apps/kdm/sessions/six_in_one.desktop(自定义sessicons的desktop文件)
[Desktop Entry]
Type=XSession
Exec=/usr/bin/six_in_one
TryExec=six_in_one
Name=six_in_one
Comment=six window manager
X-Ubuntu-Gettext-Domain=desktop_kde-workspace
文件 /usr/bin/six_in_one (自定义sessions的主shell,叫“six_in_one”是因为最早时是为了实现6个DE合一,现在27个了,不过没有改名)

代码: 全选

kwin &
sleep 3
cd ~/.iconmenu/bin 
exec ./start.sh START &
cat /dev/null > ~/kill_wm
echo "pkill -9 kwin" >> ~/kill_wm
xfce4-panel &
cairo-weather.pl
sleep 6
klipper &
iptux &
~/xunhuan 
文件 ~/xunhuan(内存驻留的shell,同时负责自动换壁纸和更新天气预报)

代码: 全选

#!/bin/bash

while true; do
  sleep 600
  cairo-weather.pl
done
(未完,待续)
附件
iconmenu(不包含字体).tar.gz
(334.95 KiB) 已下载 171 次
头像
ljj_jjl2008
论坛版主
帖子: 14255
注册时间: 2007-09-16 8:29

Re: 又要开始折腾了(第7轮折腾):这次主要是优化、美化,是针对前6轮折腾调优的。

#5

帖子 ljj_jjl2008 » 2012-03-15 15:58

eexpress 写了:我回fvwm,开启xcompmgr,cairo-weather正常得很。
fvwm没问题。我的也没问题。
头像
qy117121
论坛版主
帖子: 50552
注册时间: 2007-12-14 13:40
系统: Winbuntu
来自: 志虚国乌由市
联系:

Re: 又要开始折腾了(第7轮折腾):这次主要是优化、美化,是针对前6轮折腾调优的。

#6

帖子 qy117121 » 2012-03-15 16:01

占座
渠月 · QY   
本人只会灌水,不负责回答问题
无聊可以点一下→ http://u.nu/ubuntu

Ubuntu 20.04 快速设置指南,请配合浏浏览器自动翻译使用

邮箱 chuan@ubuntu.org.cn
头像
月下叹逍遥
论坛版主
帖子: 33994
注册时间: 2010-10-07 14:23
系统: Archdows10
来自: 某系某星某洲某国某省某市
联系:

Re: 又要开始折腾了(第7轮折腾):这次主要是优化、美化,是针对前6轮折腾调优的。

#8

帖子 月下叹逍遥 » 2012-03-15 16:35

做做计算,搞搞编程更有用。。。
浮生七十今三十,从此凄惶未可知
头像
ljj_jjl2008
论坛版主
帖子: 14255
注册时间: 2007-09-16 8:29

Re: 又要开始折腾了(第7轮折腾):这次主要是优化、美化,是针对前6轮折腾调优的。

#9

帖子 ljj_jjl2008 » 2012-03-15 16:36

刚调整了一下,把我的wharf放到最左边了,设置成自动隐藏,设置成打开程序后2级icon自动关闭,把常用的chromium和“注销”命令改成了独立icon放到了2级icon的里面。

稍微有点模仿unity的痕迹了。不过左侧的icon大多数是可以展开的,如图:
抓图195.png
左侧的一竖列图标,最上面和最下面的是程序,其它的是group驻列,点击以后可以横向展开。右击鼠标,或点击图标打开程序时,他们自动关闭。这列图标上面,仔细看能够看到有一个小的“竖条”,这是已经自动隐藏的主icon。
头像
灰色小狼
帖子: 4585
注册时间: 2008-12-06 10:38
系统: Arch

Re: 又要开始折腾了(第7轮折腾):这次主要是优化、美化,是针对前6轮折腾调优的。

#10

帖子 灰色小狼 » 2012-03-15 16:48

木纹太难看 :em05
头像
ljj_jjl2008
论坛版主
帖子: 14255
注册时间: 2007-09-16 8:29

Re: 又要开始折腾了(第7轮折腾):这次主要是优化、美化,是针对前6轮折腾调优的。

#11

帖子 ljj_jjl2008 » 2012-03-15 16:51

http://forum.ubuntu.org.cn/viewtopic.php?f=168&t=344172
楼上,帮我选一下,链接里面6楼开始的,看看你觉得哪个好看一点。谢谢!!!!!!
头像
灰色小狼
帖子: 4585
注册时间: 2008-12-06 10:38
系统: Arch

Re: 又要开始折腾了(第7轮折腾):这次主要是优化、美化,是针对前6轮折腾调优的。

#13

帖子 灰色小狼 » 2012-03-15 17:14

有立体感就好看点……
头像
YeLee
论坛版主
帖子: 26406
注册时间: 2008-08-13 8:48
系统: Fundu i64
来自: 东海硇州,一双管钥。
联系:

Re: 又要开始折腾了(第7轮折腾):这次主要是优化、美化,是针对前6轮折腾调优的。

#15

帖子 YeLee » 2012-03-15 18:00

fx换不了行……
◎当我站在道德的高度上俯视别人的时候,发现自己是多么渺小。
♥执着但不偏激,反对而不排斥,坚决捍卫矛盾体的存在方式。
★★★天气预报★★★
fcitx-yatable一个可以使用的码表输入法
[教程]几个实例攻克软件编译难关
Gentoo Development Guide
字体相关
回复