четвер, 26 листопада 2009 р.

Календарь = Conky + Perl

Сьогоні я хочу трохи уваги приділити оформленю свого комп’ютерного робочого столу.
Я вважаю що робочий стіл не повинен бути перенавантаженим якимось віджитами. Все що мені потрібно - це моніторінг деяких параметрів системи, системний лоток та панель з перемикачем вікон.
Image downloaded service ITmages

Тепер по черзі:
1) Конфіг Conky (верхня панель):

use_xft yes
xftfont Sans:size=6:bold

xftalpha 1.0
text_buffer_size 2048

update_interval 1
total_run_times 0
out_to_console yes

own_window yes
own_window_type widget
own_window_transparent no
own_window_type panel
own_window_hints undecorated,sticky,skip_taskbar,skip_pager,below

double_buffer yes

minimum_size 1280 0
maximum_width 1280

draw_shades no
draw_outline no
draw_borders no
stippled_borders 0
border_margin 0
border_width 0

default_color FFFFFF
own_window_colour 000000

alignment top_left
#alignment top_right
#alignment bottom_left
#alignment bottom_right

gap_x 0
gap_y 0

no_buffers yes
uppercase no
cpu_avg_samples 2
net_avg_samples 2
override_utf8_locale yes
use_spacer none

#COLORS
color1 6AA7FF
color2 red
color3 dark green
color4 yellow
color5 orange
color6 cyan
color7 AFC8E1


TEXT
${font Sans:size=7:bold}${color7}CPU1: ${color}${cpu cpu0}%/${execi 3 sensors | grep "Core0" | cut -d "+" -f2 | cut -c1-6 | tail -n1} ${color7}CPU2: ${color}${cpu cpu1}%/${color}${execi 3 sensors | grep "Core1" | cut -d "+" -f2 | cut -c1-6 | tail -n1} ${color7}RAM: ${color}$memperc% ${color7}ROOT: ${color}${fs_free /} ${color7}HOME: ${color}${fs_free /home} ${color7}TORRENTS: ${color}${fs_free /home/eclipse/Torrents}$alignr${color7}UP: ${color}${upspeed eth0} ${color7}DW: ${color}${downspeed eth0}
${font Sans:size=10:bold}${color}${exec rhythmbox-client --no-start --print-playing-format %ta} ~ ${exec rhythmbox-client --no-start --print-playing-format %tt}$alignr${time %H:%M}
2) Конфіг Stalonetray:
background "#000000"
decorations none
dockapp_mode none
fuzzy_edges 0
geometry 10x1+1065+12
grow_gravity SE
icon_gravity SE
icon_size 10
log_level err
max_geometry 0x0
no_shrink false
parent_bg false
scrollbars none
skip_taskbar true
sticky true
tint_color white
tint_level 0
transparent false
vertical false
window_layer normal
window_strut auto
window_type dock
xsync true

3) Конфіг Tint2:
# ID 1
rounded = 0
border_width = 0
background_color = #000000 100
border_color = #FFFFFF 100

# ID 2
rounded = 0
border_width = 0
background_color = #000000 37
border_color = #FFFFFF 100

# Panel
panel_monitor = all
panel_position = bottom center horizontal
panel_size = 0 18
panel_margin = 0 0
panel_padding = 0 0
panel_dock = 0
wm_menu = 0
panel_background_id = 1

# Taskbar
taskbar_mode = single_desktop
taskbar_padding = 0 0 0
taskbar_background_id = 1
taskbar_active_background_id = 1

# Tasks
urgent_nb_of_blink = 7
task_icon = 1
task_text = 1
task_centered = 1
task_maximum_size = 0 20
task_padding = 0 2
task_background_id = 1
task_active_background_id = 1
task_icon_asb = 0 0 0
task_active_icon_asb = 0 0 0

# Fonts
task_font = Trebuchet MS Bold 9
task_font_color = #FFFFFF 100
task_active_font_color = #B7CEEB 100
font_shadow = 0

# Systray - DISABLED
#systray_padding = 0 0 0
systray_sort = ascending
systray_background_id = 1

# Tooltips
tooltip = 1
tooltip_padding = 0 0
tooltip_show_timeout = 0
tooltip_hide_timeout = 0
tooltip_background_id = 1
tooltip_font = Sans Italic 8
tooltip_font_color = #FFFFFF 100

# Mouse
mouse_middle = none
mouse_right = none
mouse_scroll_up = none
mouse_scroll_down = none

# Battery
battery = 0
battery_low_status = 20
battery_low_cmd = notify-send "battery low"
bat1_font = Trebuchet MS 9
bat2_font = Trebuchet MS 9
battery_font_color = #FFFFFF 100
battery_padding = 0 0
battery_background_id = 0

4)Тепер перейдемо до календаря. Взагалі то ідея цього календара не зовсім моя. Моя тількі реалізація, сам дізайн належить моєму другові Тихоступу Жені (ака FoRest) Він складаєтся з Conky та скрипта написаного на Perl:
Perl script
#!/usr/bin/perl
use Term::ANSIColor;

$time=scalar(localtime);
chomp($time);
#Wed Sep 9 16:22:46 2009
$time =~ /(\w*)\s(\w*)\s*(\d*)\s([\d:]*)\s(\d*)/;

if (($2 eq 'Jan' ) or ($2 eq 'Mar' ) or ($2 eq 'May' ) or ($2 eq 'Jul' ) or ($2 eq 'Aug' ) or ($2 eq 'Oct' ) or ($2 eq 'Dec' ))
{
for ($i=0;$i<31;$i++) { @data[$i]=$i+1; } } if ($2 eq 'Feb') { for ($i=0;$i<28;$i++) { @data[$i]=$i+1; } } else { for ($i=0;$i<30;$i++) { @data[$i]=$i+1; } } if (@ARGV[0] == 1) { for($i=0;$i<($3-1);$i++) { print "@data[$i] "; } } if (@ARGV[0] == 2) { print "$3"; } if (@ARGV[0] == 3) { for($i=$3;$i<($i+1);$i++) { print "@data[$i] "; } # print "@data[($3)..$i]"; }

Conky config

background no
use_xft yes
xftfont Trebuchet MS:size=10
xftalpha 1.0
mpd_host 127.0.0.1
mpd_port 6600
update_interval 1
total_run_times 0
own_window yes
own_window_type override
own_window_transparent yes
own_window_colour 202020
#own_window_hints undecorate,sticky,below,skip_taskbar,skip_pager
double_buffer yes
minimum_size 0 5
maximum_width 0
draw_shades no
draw_outline no
draw_borders no
draw_graph_borders yes
stippled_borders 0
border_margin 4
border_width 1
default_color FFFFFF
alignment bottom_left
gap_x 0
gap_y 30
no_buffers yes
uppercase no
cpu_avg_samples 2
net_avg_samples 2
override_utf8_locale yes
use_spacer none
show_graph_scale no
show_graph_range no
default_bar_size 0 4

color1 6AA7FF
color2 red
color3 dark green
color4 yellow
color5 orange
color6 cyan
color7 FFC125

TEXT
${goto 330}${font Trebuchet MS:size=12:bold}${time %A}${voffset -7}${font Trebuchet MS:size=10}${color EEEEEE}${time [%B]}${color}${goto 930}${voffset 4}${font Trebuchet MS:size=12:bold}${time %Y}${font}



${goto 330}${voffset 0}${color}${execi 300 perl /home/eclipse/.scripts/cal.pl 1}${voffset -31}${color}${font Trebuchet MS:size=36}${execi 300 perl /home/eclipse/.scripts/cal.pl 2}${voffset 0}${font} ${font Trebuchet MS:size=10}${color}${execi 300 perl /home/eclipse/.scripts/cal.pl 3}

Ну ось нібито і все.