Jump to content

Archived

This topic is now archived and is closed to further replies.

Quarky

GeekTool

Recommended Posts

Bonjour @ tous,

Je suis très heureux de pouvoir enfin publier ce topic qui en ravira très certainement plus d'un.

J'espère que vous saurez l'apprécier vu le temps passé pour développer le contenu tout comme sa mise en forme ;)

Sommaire

1- Présentation

2- Liens

3- Exemple de résultats

4- Tuto rapide

5- Les scripts

- Scripts simples (une commande = une valeur)

- Scripts élaborées (externalisés de GeekTool)

- Les graphs

- Inutiles donc INdispensables

Présentation

Je viens donc vous présenter un outil particulier nommé GeekTool. En gros, Il permet d'afficher sur le bureau diverses informations obtenues par commande shell, de visualiser le contenu d'un fichier ou une image. En fait les possibilités sont énormes et vous pourrez vous en rendre compte de vous même.

Ceux étant précédemment passé sous Windows connaissent peut être Samurize, et les Linuxiens ont aussi un équivalent avec Conky (cf. le tuto de nonas ;)). Et bien GeekTool a la même fonction.

Le soft permet donc de customizer le bureau tout en le rendant fonctionnel. 8)

Certains ne seront surement pas convaincus par la chose mais imaginez avoir un contrôle permanent pour le pourcentage du DD occupé. Ou bien le pourcentage de batterie qu'il reste (sur portable évidemment), les processus les plus "gourmants", le titre et la pochette du morceau joué par iTunes, ...

Et ce qu'il y a de très sympa, c'est que l'affichage est modifiable à souhait. Vous pourrez placer les items ou bon vous semble et de la manière dont il vous plaira.

Liens

:arrow:Site officiel

:arrow:Présentation par Hyp

Par la suite, je vais vous proposer les scripts que j'ai pu trouver lors de mes recherches initiales ainsi que tous ceux que j'ai moi même mis au point. 8)

Vous pourrez remarquer que certains ne sont compatibles qu'à l'une des deux plateformes existantes (powerpc et macintel). Je dois aussi signaler que mes essais ont été uniquement réalisé sous Tiger.

Si, malgré mes tests, des commandes ne fonctionnaient pas sur votre machine, merci de me le signaler. :chinois: Et si vous souhaitez des explications sur une commande ou désirez une modification faites-le moi savoir ici.

N'hésitez pas à participer en postant des aperçus de vos réalisations et les commandes que vous utilisez :yes:

Et toute remarque constructive sur le fond et/ou la forme est la bienvenue :ouioui:

Je remercies white-rabbit, weepdoo, falou, eldraco, francois_75015 pour leur contribution "à l'aveugle" :D

Et à nouveau Hyp pour son tuto.

Share this post


Link to post
Share on other sites

Tuto

geektoolshell.png

1 : Créer, dupliquer ou effacer des paramètres

2 : Activer ou désactiver l'affichage des paramètres

3 : Modifier le type de sortie - commande Shell, image ou fichier texte

4 : Positionner précisement l'affichage

Merci à Hyp pour ce petit tuto :zarb:

Et une présentation vidéo : Geek Tool: Getting Started.

Share this post


Link to post
Share on other sites

Scripts simples

RAM utilisée

top -l 1 | awk '/PhysMem/ {printf "RAM : " $8 }'

Swap

du -ksh /private/var/vm

Trio processus gourmants

ps -arcx -o %cpu,command | awk ' { if (FNR <= 4 && $1 != "%CPU" && $1 != "0.0") { printf("%c%c%3.1f%% ", ($1 < 100 ? " " : ""), ($1 < 10 ? " " : ""), $1); for (i = 2; i <= NF; i++) { printf("%s ", $i); } printf("\n"); } }'

Date et Heure du dernier boot

sysctl -a | awk -F "= " '/boottime/ {print $2}' | awk '{print $1 " " $3 " " $2 " " $5 ", " $4}'

system_profiler | awk -F ": " '/Last Run/ {print $2}'

:zarb:Processeur

Vérifier éventuels probs de droits utilisateur

% utilisation CPU

top -l 2 | awk '/CPU usage/ && NR > 5 {print $6, $7=":", $8, $9="user", $10, $11="sys", $12, $13}'

Température (MBP)

sysctl -a | awk -F ": " '/cpu_temp:/ {print $2}'

Fréquence courante (MBP)

sysctl -a | awk -F ": " '/cpu_currentfreq/ {print $2}'

iBook, iMac

sysctl -a | awk -F ": " '/cpufrequency:/ {print $2}'

Fréquence min (MBP)

sysctl -a | awk -F ": " '/cpu_minfreq/ {print $2}'

iBook, iMac

sysctl -a | awk -F ": " '/cpufrequency_min/ {print $2}'

Fréquence max (MBP)

sysctl -a | awk -F ": " '/cpu_maxfreq/ {print $2}'

iBook, iMac

sysctl -a | awk -F ": " '/cpufrequency_max/ {print $2}'

Infos CPU (MacIntel)

sysctl -a | awk -F ": " '/cpu.brand_string/ {print $2}'

:yes:Espace Disque

DD (tailles explicites et %)

df -h | awk '/\/dev\/disk0/ {print "DD : " $4 " libres, " $3 " utilises"}';

df -k / | tail -1 | awk '{print "Etat du disque : " $5}'

df -h | awk '/disk0s2/ {print "Disk : ", $3, "/", $2, "-", $4, "available"}'

Total trash size in the empty trash warning dialog

How big my trash is

du -sh ~/.Trash/ | awk '{print $1}'

:zarb:Utilisateur(s)

Utilisateur en cours

whoami

id -nu

logname

Utilisateurs loggués

users

Dernières connexions

last -n (avec n le nombre des n dernières connexions)

:zarb:Date / Heure

Date / Heure

export LANG=fr_FR; date "+%A %d/%m/%Y ~ %T "

Heure

date +%X

Numéro du jour de l'année

date +%j

Fait(s) historique(s) du jour

grep -h "^$(date '+%m/%d')" /usr/share/calendar/calendar.{holiday,history,computer}|cut -f2

Calendrier

cal | awk '{ print " "$0; getline; print " Lu Ma Me Je Ve Sa Di"; getline; if (substr($0,1,2) == " 1") print " 1 "; do { prevline=$0; if (getline == 0) exit; print " " substr(prevline,4,17) " " substr($0,1,2) " "; } while (1) }'

:zarb:Web

IP

curl adresseip.sur-la-toile.com/ | awk -F[\ \<] '/Votre adresse IP est/ {print $6}'

Nom connexion wifi utilisée

ioreg -w0 -l | awk -F "= " '/APCurrentSSID/ {if ($2 != "\"\"") print $2; else print "Pas de connexion wifi utilisée"}'

Connexion active ?

if ping -oqc 5 www.google.fr >/dev/null 2>&1; then echo Connexion active; else echo Connexion inactive; fi

Web Server Checker

ping -c1 website.com | grep ' 0%'

RSS (perfectible)

curl "http://www.pcinpact.com/include/news.xml" | awk -F\[\<\>]  '/title/ {print "- " $3}'

Si en utilisant des flux d'autres sites vous rencontrez des problèmes de caractères, ajoutez ceci à la fin de la commande précédente :

 | iconv -f UTF-8 -t L1

:DBatterie (pour les portables évidemment ;))

Infos batterie iBook

ioreg -w0 -l | grep IOBatteryInfo

Infos batterie MBP ( /!\ Données brutes /!\ )

ioreg -w0 -l | grep BatteryInfo

Capacity (1ere fonctionne pour tous, 2eme = que pour MB & MBP)

ioreg -w0 -l | awk -F "=" '/BatteryInfo/ {print $3}' | awk -F "," '{print $1}'

ioreg -w0 -l | awk -F "= " '/MaxCapacity/ {print $2}'

Current (pareil... )

ioreg -w0 -l | awk -F "=" '/BatteryInfo/ {print $6}' | awk -F "," '{print $1}'

ioreg -w0 -l | awk -F "= " '/CurrentCapacity/ {print $2}'

Nombre de cycles (pareil... )

ioreg -w0 -l | awk -F "=" '/BatteryInfo/ {print $5}' | awk -F "," '{print $1}'

ioreg -w0 -l | awk -F "= " '/CycleCount/ {print $2}'

Time Remamining (MB & MBP)

ioreg -w0 -l | awk -F "= " '/TimeRemaining/ {print $2}'

Batterie Installée ? (MB & MBP)

ioreg -w0 -l | awk -F "= " '/BatteryInstalled/ {print $2}'

Batterie pleine ? (MB & MBP)

ioreg -w0 -l | awk -F "= " '/FullyCharged/ {print $2}'

Branché au secteur ? (MB & MBP)

ioreg -w0 -l | awk -F "= " '/ExternalConnected/ {print $2}'

;)Météo

Pour avoir la météo sur votre bureau, sélectionnez "image" dans le menu déroulant et utilisez l'un des chemins suivants :

Alertes météo :

http://www.meteofrance.com/vigilance/cartes/derniers/mn.gif

Image radar :

http://image.weather.com/images/sat/france_sat_440x297.jpg

Share this post


Link to post
Share on other sites

Scripts élaborés

Cette partie est consacré aux scripts plus complexes qu'une simple commande shell. Le code tient alors dans un fichier qu'il faut exécuter par une commande shell.

Pour éviter divers problèmes, je vous recommande de placer l'ensemble des scripts "externalisés" que vous utiliserez dans un même répertoire ("Scripts_GeekTool" par exemple).

Le fonctionnement est indentique pour la majorité des scripts : il faut utiliser la fonction shell de GeekTool. Si vous placez le répertoire dans Documents, il faudra alors utiliser cette commande (seulement si aucune commande n'est indiquée) :

sh /Users/LOGIN/Documents/Scripts_GeekTool/

Avec LOGIN, votre nom d'utilisateur. Et n'oubliez pas de compléter pour chaque cas avec le nom du fichier téléchargé.

:roll:% du volume sonore en cours

:-D% du niveau de batterie en cours

:vomi2:Surveillance de présence de photos générées par AuthSight (tentatives d'intrusions)

:theo:Titre joué dans iTunes

commande :

osascript /Users/LOGIN/Documents/Documents/Scripts_GeekTool/iTunes.nowplaying.scpt

:mdr:% de réception airport

Décompressez l'archive dans le répertoire pré-cité. Deux affichages sont possibles :

juste le pourcentage

/Users/LOGIN/Documents/Scripts_GeekTool/airport/airport | awk 'NR == 2 {print $1}'

ou avec le motif "\ \ \ \ \````` 50%".

/Users/LOGIN/Documents/Scripts_GeekTool/airport/airport | awk 'NR == 2 {for (a=10;a>0;a-=1) if ($1 / 10 < a) printf("`"); else printf("\\"); print " " $1}'

Share this post


Link to post
Share on other sites

Inutiles donc INdispensables :roll:

Nom de modèle de la machine (ex: MacBookPro1.1)

ioreg -w0 -l | grep "\"model\" = " | head -1 | awk '{print $4}' | sed 's/<"//' | sed 's/">//'

Nom "publique" (ex: MacBook Pro 15")

system_profiler | awk -F ": " '/Machine Name/ {print $2}'

Numéro de série de la machine

ioreg -w0 -l | awk -F "= " '/IOPlatformSerialNumber/ {print $2}' | sed 's/"//g'

Architecture

uname -p

sysctl -a | awk -F "= " '/hw.machine/ {print $2}'

OS (ex: Darwin)

uname

OS et version (ex: "Mac OS X 10.4.8 (8L21xx)")

system_profiler | awk -F ": " '/System Version/ {print $2}'

OS (ex : MAC OS X)

sw_vers -productName

Version ( ex: 10.4.8 )

sw_vers -productVersion

Build

sw_vers -buildVersion

Date de l'installation du système

cat /var/log/OSInstall.custom | awk '{print $4 " " $5}'

Version du noyau

uname -r

sysctl -a | awk -F "= " '/osrelease/ {print $2}'

Révision

sysctl -a | awk -F "= " '/osrevision/ {print $2}'

Boot ROM Version

system_profiler | awk -F ": " '/Boot ROM Version/ {print $2}'

Version du SMC (Contrôleur de gestion du système)

system_profiler | awk -F ": " '/SMC Version/ {print $2}'

Apple Bluetooth Software Version

system_profiler | awk -F ": " '/Apple Bluetooth Software Version/ {print $2}'

Nom de la machine

hostname | awk -F "." '{print $1}'

Nbre de processeur(s) physique(s)

sysctl -a | awk -F ": " '/ncpu:/ {print $2}'

Nbre de processeur(s) logique(s)

sysctl -a | awk -F ": " '/hw.logicalcpu:/ {print $2}'

Nombre de processeur(s) actif(s)

sysctl -a | awk -F ": " '/activecpu/ {print $2}'

CPU Features (MacIntel)

sysctl -a | awk -F ": " '/cpu.features/ {print $2}'

Fréquence de bus

sysctl -a | awk -F ": " '/busfrequency:/ {print $2/1000000 " Mhz"}'

Quantité totale de RAM installée

sysctl -a | awk -F ": " '/memsize:/ {print $2/(1024*1024)}'

Resolution

system_profiler | awk -F ": " '/Resolution/ {print $2}'

Share this post


Link to post
Share on other sites

Oki Merci.

Pour la météo, je sais très bien que cette solution existe :transpi: Mais je veux développer une solution via GeekTool qui, rappelons le, est l'objet du topic :non:

Share this post


Link to post
Share on other sites

Et voilà : ce topic voit enfin la lumière du jour.

Il me reste encore du boulot mais vous avez déjà de quoi faire. :eeek2:

Share this post


Link to post
Share on other sites

J'adore GeekTool, je m'en servais il y a une paire d'années pour surveiller les activité d'apache (page demandées avec IP du demandeur, requête douteuses etc.), l'activité aussi de QTSS... un super outils pour surveiller ses logs. J'affichais aussi la carte d'alerte de météo france.

Malheureusement son développement a été suspendu et l'installation sous Tiger plantais. Je suis étonné que ce ne soit plus le cas :eeek2:

Je vais me repencher là-dessus et ce super tuto va me rafraîchir la mémoire embrumée par le temps passé sans cet outil. Merci Quarky :up:

Share this post


Link to post
Share on other sites

Je ne sais trop comment, une de mes vieilles config de GeekTool a refait surface après l'installation de cette version qui en effet marche très bien sous Tiger ! De mon imac G4 à mon iMac 20" à mon imac 17", ça a finit par atterrir sur mon 24". :non:

Il s'agit d'afficher la mini-carte des alertes météo et c'est très simple. C'est une image à chercher sur cette adresse :

http://www.meteofrance.com/vigilance/cartes/derniers/mn.gif

rafraichir tous les 1800 secondes. L'hiver arrive, c'est pas du luxe.

Share this post


Link to post
Share on other sites

Salut à tous :p

Déjà bravo pour ce sujet, j'ai appris pas mal de commandes utiles ;)

J'en profite pour rajouter quelques détails;

pour la météo il y a une image pas mal ici, il doit y avoir d'autres résolutions dans le même dossier.

Et tant que j'y suis j'ai fouillé mon vieux dossier de scripts pour Geektool et j'ai retrouvé ça:

#!/bin/sh
echo "Airport: $(if ifconfig en1 | grep netmask | awk '{print $2}' | grep "."; then echo ""; else echo "Pas d'IP"; fi)";
echo "Ethernet: $(if ifconfig en0 | grep netmask | awk '{print $2}' | grep "."; then echo ""; else echo "Pas d'IP"; fi)";
echo "$(if curl adresseip.sur-la-toile.com/ | grep "Votre adresse IP est" | awk -F[\ \<] '{print $6}' | grep "host"; then echo "Internet: indisponible"; else echo "Internet: $(curl adresseip.sur-la-toile.com/ | grep "Votre adresse IP est" | awk -F[\ \<] '{print $6}')"; fi | grep "Internet")";

Ca affiche les IP Airport, Ethernet, Internet.

Tout le monde constatera que ce script est lourd et gras :D donc si quelqu'un a le niveau et le temps de l'alléger un peu, c'est cool :p

a+

Share this post


Link to post
Share on other sites

Voilà j'ai rajouté les images pour la météo :D

Encore merci à tous les deux.

Et je vais voir pour le script, j'ai déjà vu quelques simplifications possibles :chinois:

Share this post


Link to post
Share on other sites

Voilà c'est vu :chinois:

#!/bin/sh
echo "Airport: $(if ifconfig en1 | awk '/netmask/ {print $2}'; then echo ""; else echo "Pas d'IP"; fi)";
echo "Ethernet: $(if ifconfig en0 | awk '/netmask/ {print $2}'; then echo ""; else echo "Pas d'IP"; fi)";
echo "$(if curl adresseip.sur-la-toile.com/ | awk -F[\ \<] '/Votre adresse IP est/ {print $6}' | grep "host"; then echo "Internet: indisponible"; else echo "Internet: $(curl adresseip.sur-la-toile.com/ | awk -F[\ \<] '/Votre adresse IP est/ {print $6}')"; fi | grep "Internet")";

Le curl doit encore pouvoir être retravaillé.

Share this post


Link to post
Share on other sites

Beau boulot !

A mettre dans ma liste de course pour mon iMac qui devrait pas trop tarder :transpi:

Share this post


Link to post
Share on other sites

Heu, voila je l'ai installer, mais en fait je me suis apercu que je ne m'en servais pas et voila, je ne sais pas comment on fait pour le désinstaller? Si vous pouviez m'aider, merci (et d'ailleur il y a d'autre appli que je ne sais pas désinstaller)

BONNE ANNÉE à tous

Share this post


Link to post
Share on other sites

Si tu as AppZapper ou CleanApp, ils le font très bien.

Sinon il te faudra y aller "à la main" :

- "/Library/PreferencePanes/GeekTool.prefPane/"

- "~/Library/Preferences/org.tynsoe.geektool.plist"

Share this post


Link to post
Share on other sites

Bonjour à tous,

je suis nouveau sur ce forum et j'ai trouvé les info de ce topic super pratique mais je cherche quelqu'un qui pourrait m'aider à créer un petit script pour GeekTool car je suis tout à fait incapable en la matière. Voià, je me demande si il est possible d'avoir en même temps une information sur le nombres de mails reçu, couplé à un texte.

Avec le script ici en-bas, j'aurai "0" s'il n'y a pas de nouveau messages et 1,2,3,... si il y a des nouveaux messages. Ce que je voudrais c'est n'avoir rien du tout en cas d'absence de message, même pas 0 et en cas de nouveau message, je voudrais voir afficher: "Il y a X nouveau messages" sur le bureau et pouvoir choisir la police, la taille et la couleur du texte.

Ou si c'est plus simple, n'avoir rien en cas d'absence de message et juste le texte sans compteur du genre:"Il y a de nouveaux messages", ou quelque chose comme ça. J'ai fait quelques assai mais malheureusement je ne m'en sort pas.

Est-ce que c'est possible? Quelqu'un peut-il m'aider?

Merci d'avance.

echo 'tell application "Mail" to return unread count of inbox' | osascript | perl -e "@a=split ',',<STDIN>; foreach (@a) {\$n += \$_}; print \"\$n\n\";"

Share this post


Link to post
Share on other sites

En fait, avec le script suivant:

echo 'tell application "Mail" to return unread count of inbox' | osascript | perl -e "@a=split ',',<STDIN>; foreach (@a) {\$n += \$_}; print \"\$n new message(s)\n\";"

Je vais avoir un message sur le bureau m'indiquant "X nouveau messages", qu'il y en ait 0 ou 1,2,3,... J'essaye de supprimer l'information lorsequ'il n'y a pas de nouveau message et avoir le texte uniquement à partir de 1 message.

Que dois-je ajouter (ou modifier plutôt) à ce script pour avoir l'information uniquement à partir de 1?

Quelqu'un as-t-il une idée?

Share this post


Link to post
Share on other sites

L'icône de Mail qui indique le nombre de courriers arrivés ne te suffit pas ? Ca fait exactement la même chose...

Share this post


Link to post
Share on other sites
L'icône de Mail qui indique le nombre de courriers arrivés ne te suffit pas ? Ca fait exactement la même chose...

Salut,

c'est tout à fait vrai mais j'ai l'habitude de cacher mon dock (que je trouve plutôt gênant). En fait ce que je voudrais c'est utiliser geektool pour avoir l'info qui viendrait s'afficher directement sur le desktop grace à une commande shell. Le problème c'est que la commande que j'ai affiche le message en permanence. Je voudrais trouver un moyen pour qu'elle ne s'affiche uniquement en cas de nouveau message à partir de 1.

Mais je ne suis pas assez doué en programmation pour trouver tous seul donc je vous demande votre aide. :)

Share this post


Link to post
Share on other sites

Moi j'ai le dock caché mais ça ne me pose pas de problèmes pour Mail :chinois: Soit j'entends l'alerte, soit je vois le chiffre sur l'icône en cherchant un des raccourcis.

Sinon pour revenir à ton script, j'avais fait un script pour authsight qui ne donnait un affichage que si une condition était vérifiée. Par contre c'est en shell :francais:

En regardant rapidement, essayes avec ceci :

echo 'tell application "Mail" to return unread count of inbox' | osascript | perl -e "@a=split ',',<STDIN>; foreach (@a) {\$n += \$_}; if (\$n is not 0) { print \"\$n new message(s)\n\";"}

Je garantis pas du tout le succès de ce code. :transpi:

Share this post


Link to post
Share on other sites

×
×
  • Create New...