Le fil des coups de pouces pour GeekTool

  • Créateur du sujet Créateur du sujet mad-gecko
  • Date de début Date de début
Personnellement je n'ai vu que deux fois la date et deux fois l'heure, mais c'est une fois de trop à chaque fois faut avouer ^^
Pour rendre la barre de menu noire c'est Nocturne qu'il te faut : http://nocturne.en.softonic.com/mac
Il faut cocher la case "dim when inactive" dans les préférences et le tour est joué :)
 
Ah là là :) iCal est dans le dock donc ça compte comme un affichage supplémentaire de la date, j'avoue que celui là je l'avais pas vu, mais bon. Au final je pense qu'on peut s'accorder sur le 3 fois et demie, ce qui fait tout de même 2 fois et demies de trop :D
 
Bonjour,
je cherche à faire apparaître une notification de mails avec Thunderbird, que j'utilise à la place de mail, avec Geektool évidemment. Est-ce que quelqu'un peut m'aider sur le shell ?
 
Tu peux essayer ça, en remplaçant Mail par Thunderbird.
Aucune idée si ça va marcher ou pas, je n'utilise pas Thunderbird, juste Mail.

Bloc de code:
tell application "System Events" 
if exists process "Mail" then 
try 
tell application "Mail" 
set unreadCount to unread count of inbox 
if (unreadCount is equal to 1) then 
set the_sender to get the sender of (messages of inbox whose read status is false) as string 
set name_senders to extract name from the_sender 
return "There is a new message from " & name_senders 

else 

if (unreadCount is greater than 1) then 
set the_sender to get the sender of (messages of inbox whose read status is false) as string 
set name_senders to extract name from the_sender 
return "There is " & (unreadCount as string) & " new messages" 
end if 
end if 
end tell 
end try 
end if 
end tell
Trouvé ici : http://www.macosxtips.co.uk/geeklets/
 
si cela peut vous être "utile", je vous mets quelques scripts à mettre directement en ligne de commande concernant....



itunes: paroles des chansons (quand elles les reconnaissent)
Bloc de code:
#!/bin/sh
export LC_ALL=C

# Use 2 global variables
SAV_TRACK_PATH=/tmp/savetrack.temp

SAV_TRACK=$(cat $SAV_TRACK_PATH 2> /dev/null)
RESULT=
TRACK_INFO=
export RESULT

# No luck with the following services:
# lyricstime: limits the # of requests for IP address
# metrolyrics, mp3lyrics.org: lyrics not visible (seems to use placeholders)

absolutelyrics()
{
  set -- `echo $TRACK_INFO | sed 's/\ /_/g' | awk -F';' '{ print $1} {print $2 }'`
  ARTIST=$1 
  TRACK=$(echo $2 | sed 's/(.*)//g' | sed 's/\[.*\]//g')
  MYURL=$(echo http://www.absolutelyrics.com/lyrics/view/$ARTIST/$TRACK/ | sed 's/\?//g' | sed s/\'//g | tr '[:upper:]' '[:lower:]' | sed 's/\+//g' | sed 's/\,//g' | sed 's/\ /_/g')
  curl -s $MYURL > /tmp/ablyrics_tmp.lyr
  grep realText /tmp/ablyrics_tmp.lyr > /tmp/ablyrics_tmp2.lyr
  while read RESULT
    do
	break
  done < /tmp/ablyrics_tmp2.lyr

  RESULT=$(echo $RESULT | sed 's/<br\ \/>/^/g' | sed 's/<\/p>/^^/g' | sed '/^$/!{s/<[^>]*>//g;}' |  tr '\^' '\n')
  return
}
azlyrics()
{
  set -- `echo $TRACK_INFO | sed 's/\ //g' | awk -F';' '{ print $1} {print $2 }'`
  ARTIST=$(echo $1 | sed 's/the//g' | sed 's/The//g')
  TRACK=$(echo $2 | sed 's/(.*)//g' | sed 's/\[.*\]//g')
  MYURL=$(echo http://www.azlyrics.com/lyrics/$ARTIST/$TRACK.html | sed 's/\?//g' | sed s/\'//g | tr '[:upper:]' '[:lower:]' | sed 's/\+//g' | sed 's/\,//g' | sed 's/\ //g')
  RESULT=$(curl -s $MYURL  | sed '1,/END OF RINGTONE/d' | sed '/\[ <a href/,9999d' | sed '/<br><br><br><br>/,9999d' | sed 's/<b>//g' | sed 's/<\/b>//g' | sed 's/<i>//g' | sed 's/<\/i>//g' | sed 's/<br>//g' | sed 's/<br \/>//g' | sed 's/<b>//g' | sed 's/<\/b>//g' | sed '3,4d')
  return
}
lyrics007()
{
  set -- `echo $TRACK_INFO| sed 's/\ /%20/g' | sed 's/\[.*\]//g' | awk -F';' '{ print $1} {print $2 }'`
  MYURL=$(echo "http://www.lyrics007.com/$ARTIST%20Lyrics/$2%20Lyrics.html") # | sed 's/\?//g' | sed s/\'//g | sed 's/\+//g' | sed 's/\&//g')
  RESULT=$(curl -s $MYURL)
  if [[ "$RESULT" == *tf_artist* ]]; then  # it's been found
    true
  else
    RESULT=""
    return
  fi 
  RESULT=$(echo $RESULT | sed '1,/<br><br><br>/d' | sed '1,1d' | sed '/<br><br><script/,9999d' | sed 's/<br><br><br>//g' | sed 's/<\/script>//g' | sed 's/<BR>//g' | sed s/<br>/\^/g | tr '\^' '\n' | sed 's/<br>//g' | sed 's/<br \/>//g')
  if [ "$RESULT" = "" ]; then
    ARTIST=$(echo $1 | sed 's/the\%20//g' | sed 's/The\%20//g')
    MYURL=$(echo "http://www.lyrics007.com/$ARTIST%20Lyrics/$2%20Lyrics.html" | sed 's/\?//g' | sed s/\'//g | sed 's/\+//g' | sed 's/\&//g')
    RESULT=$(curl -s $MYURL | sed '1,/<br><br><br>/d' | sed '1,1d' | sed '/<br><br><script/,9999d' | sed 's/<br><br><br>//g' | sed 's/<\/script>//g' | sed 's/<BR>//g' | sed 's/<br>//g' | sed 's/<br \/>//g' | perl -i~ -pe 's/\x92/ /g')
  fi
  return
}

update_lyrics()
{
  # Update lyrics on iTunes
   osascript -e '
          tell application "iTunes"
            set lyrics of current track to system attribute "RESULT"      
          end tell'
}
# MAIN LOGIC
# Use an embedded AppleScript to get the iTunes information
if ps x | grep iTunes | grep -v grep | grep -v -q iTunesHelper; then 
  TRACK_INFO=$(osascript -e 'tell application "iTunes"
	if player state is playing then
	  set trackname to name of current track
	  set artistname to artist of current track
          set mylyrics to lyrics of current track
          set output to artistname & ";" & trackname & "^" & mylyrics
	end if
  end tell' | iconv -f utf-8 -t ucs-2-internal)

# Don't fetch lyrics if already present in iTunes
  LYRICS=$(echo $TRACK_INFO | awk -F"^" '{print $2}')
  TRACK_INFO=$(echo $TRACK_INFO | awk -F"^" '{print $1}')

  if [ "$LYRICS" != "" ]; then
    echo $LYRICS
    exit 0 
  fi
  if [ "$TRACK_INFO" = "" ]; then  # iTunes running but not playing
    exit 0
  fi
# 1. azlyrics.com
  azlyrics 
  if [ "$RESULT" != "" ] && [ "$RESULT" != "0" ]; then
    RESULT=$(echo "$RESULT")
    update_lyrics
    echo "$RESULT"
    exit 0
  fi

# 2. lyrics007.com
  lyrics007
  if [ "$RESULT" != "" ] && [ "$RESULT" != "0" ]; then
    RESULT=$(echo "$RESULT")
    update_lyrics    
    echo "$RESULT"
    exit 0
  fi

# 3. absolutelyrics.com
  absolutelyrics
  if [ "$RESULT" != "" ] && [ "$RESULT" != "0" ]; then
    update_lyrics    
    echo "$RESULT"
    exit 0
  fi

# GROWL notification if lyrics are not found
  if [ "$TRACK_INFO" != "$SAV_TRACK" ]; then
    PARSED_INFO=$(echo $TRACK_INFO | awk -F";" '{print $1; print $2}')
    /usr/local/bin/growlnotify  --name "Geek Lyrics" -m "$PARSED_INFO" 'Lyrics not found' -I "/Users/thomas/Scripts/Add To iTunes.app"
    echo $TRACK_INFO > $SAV_TRACK_PATH
  fi
fi

itunes (interprète uniquement)
Bloc de code:
#!/bin/sh
if ps x | grep iTunes | grep -v grep | grep -v -q iTunesHelper ;   then
#echo 'in Artist' >> ~/Scripts/geektool/trace.txt
  ARTIST=$(osascript -e 'tell application "iTunes"
	if player state is playing then
          set artistname to artist of current track
          set output to artistname
	end if
  end tell' | iconv -f utf-8 -t ucs-2-internal)
  echo $ARTIST	
fi

itunes (titre de la chanson)
Bloc de code:
#!/bin/sh
# MAIN LOGIC
# Use an embedded AppleScript to get the iTunes information
if ps x | grep iTunes | grep -v grep | grep -v -q iTunesHelper ;   then
#echo 'in Track' >> ~/Scripts/geektool/trace.txt
 TRACK=$(osascript -e 'tell application "iTunes"
	if player state is playing then
          set trackname to name of current track
          set output to trackname
	end if
  end tell' | iconv -f utf-8 -t ucs-2-internal)
  if [ "$TRACK" != "" ]; then
    echo $TRACK
  fi
fi

calendrier (3 mois dont le mois en cours en vert)
Bloc de code:
cal -m $(($[10#$(date +%m)]-1)) | sed -e s'/^/ /'
echo "\033[32m\c"
cal | sed "s/^/ /;s/$/ /;s/ $(date +%e | sed s'/ //') /$(date +%e | sed -e s'/ //' -e s'/\(.*\)/ \1 /g')/"
cal -m $(($[10#$(date +%m)]+1)) | sed -e s'/^/ /'

calendrier du mois en cours en couleur
Bloc de code:
MONTH=$(date +'%B %Y')
OFFSET=$(((21-${#MONTH})/2))
WEEK="Su Mo Tu We Th Fr Sa"
PREV=$(cal -m $(($[10#$(date +%m)]-1)) | tail -n2 | head -n1)
CURR=$(cal | tail -n6)
NEXT=$(cal -m $(($[10#$(date +%m)]+1)) | tail -n6 | head -n1)

for ((i=0; i&lt;$OFFSET; i++ ))
do
	echo " \c"
done
echo $MONTH
echo $WEEK $PREV$CURR$NEXT | sed -e s'/$/ /g' -e s'/ /  /g' -e s'/\([^0-9][0-9][^0-9]\)/ \1/g' -e s'/  / /g' -e s"/\(.\{21\}\)/\1#/g" | tr -s '#' '\n' | sed -e s'/^/ /g' -e s'/Sa/Sa/' -e s'/ 1 / 1 /' -e '6,7 s/ 1 / 1 /' -e s"/ $(date +%e | sed s'/ //') /$(date +%e | sed -e s'/ //' -e s'/\(.*\)/ \1 /g')/"

calendrier du mois en cours (avec le jour en couleur rouge)
Bloc de code:
cal_head=`cal | head -1`; cal_tail=`cal | tail -7`; today=`date "+%e"`; echo "$cal_head"; echo "${cal_tail/${today}/\033[1;31m${today}\033[0m}";

calendrier 3 mois sans couleur
Bloc de code:
#!/bin/bash

# Helper function to display a month in the past or future
Cal() { cal $(date -v$1m '+%m %Y') | sed 's/^/ /';}

# Previous month
Cal -1

# Current month, put parenthesis around current day
# Replace (\\1) by [\\1] to display square brackets for example
ruby -e 'print `cal`.gsub(/^/, " ").sub(/ \b(#{Time.now.day})\b ?/,"(\\1)")'

# Next month
Cal +1


voili voilou
 
oui ! bon boulot !
c'est dommage que pour les calendriers on soit obligé d'utiliser du courrier en police de caractere pour conserver la bonne mise en forme...:heu:
 
Question bête mais quel est l'intérêt d'avoir le calendrier sur le bureau ? Afficher la date est plus économe en encombrement et remplit la même fonction.
 
:sleep:
quel est l'interet d'avoir l'heure sur l'ordinateur ? en générale, la plupart des personnes ont une montre ou un telephone qui permet d'afficher l'heure et ce a porté de main ...

Bon, ok c'est plus rapide de regarder l'ecran de son ordi, sur lequel on est deja, plutot qu'un telephone dans une poche, ou une montre sous une manche... Ben pour le calendrier, c'est pareil : plus pratique de l'avoir en visu, sur le bureau, plutot que dans un agenda au fond d'une serviette, ou dans un sous menu d'un telephone.

(Apres si la question porte sur l'utilité d'un calendrier, qui affiche les dates a l'avance et les jours de la semaine, dans ce cas, je ne pense pas pouvoir te repondre... mais si tant de gens s'en servent c'est que ca doit etre utile hein...:mouais: )
 
Hum la question portait sur l'intérêt d'afficher un calendrier du mois à la place de la date et non sur l'utilité du calendrier en lui même. Je te laisse relire la question et reposter une réponse adéquate si le coeur t'en dis ;)
 
Hum la question portait sur l'intérêt d'afficher un calendrier du mois à la place de la date et non sur l'utilité du calendrier en lui même. Je te laisse relire la question et reposter une réponse adéquate si le coeur t'en dis ;)

j'avais bien compris ta question (la parenthèse, c'etait de la dérision).
Pour autant je la trouve toujours aussi "bête" (ta question) (pardon pour le mot "bête")
-> il est tout autant inutile d'afficher un calendrier sur le bureau, que d'afficher l'heure ou la date... ca depend des utilisations de chacun... (c'est ce que je t'explique dans la premiere partie de ma reponse que tu sembles avoir occultée)