"Виджеты" для GeekTool/NerdTool.

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)"
Надеюсь кому нибудь пригодится.

No comments:

Post a Comment