GeekTool/
NerdTool: "
It let you display on your desktop different kind of informations..."
Другими словами, упомянутые проекты занимаются отображением разного рода информации прямо на рабочем столе. Это можнет быть текстовый файл, картинка и результат выполнения команды. Последнее волнует меня больше всего :).
Ниже хочу привести маленькие
shell скриптики, которыми пользуюсь я:
echo " \033[01;30m--------- Time ---------\033[00m "
date +"Moscow: %l:%M %p on %d %B"
TZ=England/GMT date +"London: %l:%M %p on %d %B"
TZ=Boston/GMT+5 date +"Boston: %l:%M %p on %d %B"
- Процессы (прожорливые приложения):
echo " \033[01;30m---------- Top ---------\033[00m "
top -l2 -F -n 10 -u -R -S -stats pid,ppid,command,cpu,time,th,pstate|tail -23| \
sed -e '/^MemRegions:/d' -e '/^SharedLibs:/d' \
-e '/^VM:/d' -e '/^Networks:/d' -e '/^Purgeable:/d'
- Состояние дискового пространства:
echo " \033[01;30m---------- DU ----------\033[00m "
df -H -l
- Сетевые интерфейсы (IP адреса):
echo " \033[01;30m-------- Network -------\033[00m "
ifconfig en0 | grep inet|grep -v inet6|sed -e 's/.*inet/Ethernet IP:/g'
ifconfig en1 | grep inet|grep -v inet6|sed -e 's/.*inet/ Airport IP:/g'
echo External IP: `curl -s http://checkip.dyndns.org/ | sed 's/[a-zA-Z<>/ :]//g'`
echo " \033[01;30m------- Calendar -------\033[00m "
RVR=`tput smso` # reverse
END_RVR=`tput rmso` # end reverse
BLNK=`tput blink` # blink
UNDER=`tput smul` # underline
END_UNDER=`tput rmul` # underline
CLEAR=`tput clear` # clear screen
BELL=`tput bel` # bell sound
BOLD=`tput bold` # bold
DIM=`tput dim` # dim
INVIS=`tput invis` # invisible
END=`tput sgr0` # turn off dim, blink, bold, dim, invisible
DATE=`date +%d | sed "s/^0/ /g"`
cal | head -1
cal | tail -7 |\
sed "s/ ${DATE}/ ${UNDER}${BOLD}${DATE}${END}/g" | \
sed "s/${DATE} /${UNDER}${BOLD}${DATE}${END} /g"
- Дела/Задачи (icalBuddy должен быть установлен):
echo " \033[01;30m-------- Events --------\033[00m "
/usr/local/bin/icalBuddy -eep notes -sc eventsToday | \
sed -e "s/------------------------/^^^^^^^^^^^^^^^^^^^^^^/g"
echo " \033[01;30m--------- ToDo ---------\033[00m "
/usr/local/bin/icalBuddy -stda -nc uncompletedTasks | \
perl -ne '
my $flag=0;
m/^\S+/ and chomp and print and $flag=1;
m/^\s{4}due:\s+(.+)$/ and print " ($1)" and $flag=1;
print "\n" if ( $flag );
'
- Погода (код города надо заменить на свой, здесь RSXX0063 = Москва):
echo " \033[01;30m------- Weather -------\033[00m "
curl --silent "http://xml.weather.yahoo.com/forecastrss?p=RSXX0063&u=c">tmp.xml
grep "<title>Conditions" tmp.xml | sed -e 's/<\/*title>//g'
grep -A 4 "Current Conditions" tmp.xml | sed -e's/<\/*[bB][rR]* *\/*>//g'
rm tmp.xml
#!/bin/sh
print_currency_info() {
perl -ne '
print "$1 " if (m#<from>(\S+)</from>#);
print "--> $1\n" if (m#<rate>(\d+\.\d*)</rate>#);
'
}
# USD
curl --silent "http://finance.rambler.ru/ajax/currency_converter.xml?count=1&from=2210&to=2211&date=`date +%d.%m.%Y`&rand=52908"| \
print_currency_info;
# EUR
curl --silent "http://finance.rambler.ru/ajax/currency_converter.xml?count=1&from=2209&to=2211&date=`date +%d.%m.%Y`&rand=87715"| \
print_currency_info;
# GBP
curl --silent "http://finance.rambler.ru/ajax/currency_converter.xml?count=1&from=2303&to=2211&date=`date +%d.%m.%Y`&rand=91799"| \
print_currency_info;
echo "(finance.rambler.ru)"
Надеюсь кому нибудь пригодится.