Quarky Posted October 26, 2006 Share Posted October 26, 2006 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. 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 Site officiel 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. 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. 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 Et toute remarque constructive sur le fond et/ou la forme est la bienvenue Je remercies white-rabbit, weepdoo, falou, eldraco, francois_75015 pour leur contribution "à l'aveugle" Et à nouveau Hyp pour son tuto. Link to comment Share on other sites More sharing options...
Quarky Posted October 26, 2006 Author Share Posted October 26, 2006 Exemples de résultats Je vous renvois à la gallerie du site officiel pour en voir plus. Link to comment Share on other sites More sharing options...
Quarky Posted October 26, 2006 Author Share Posted October 26, 2006 Tuto 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 Et une présentation vidéo : Geek Tool: Getting Started. Link to comment Share on other sites More sharing options...
Quarky Posted October 26, 2006 Author Share Posted October 26, 2006 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}' 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}' 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}' 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) 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) }' 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 Batterie (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 Link to comment Share on other sites More sharing options...
Quarky Posted November 1, 2006 Author Share Posted November 1, 2006 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é. % du volume sonore en cours % du niveau de batterie en cours Surveillance de présence de photos générées par AuthSight (tentatives d'intrusions) Titre joué dans iTunes commande : osascript /Users/LOGIN/Documents/Documents/Scripts_GeekTool/iTunes.nowplaying.scpt % 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}' Link to comment Share on other sites More sharing options...
Quarky Posted November 1, 2006 Author Share Posted November 1, 2006 Graphs ... En cours de réflexion ... Link to comment Share on other sites More sharing options...
Quarky Posted November 1, 2006 Author Share Posted November 1, 2006 Inutiles donc INdispensables 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}' Link to comment Share on other sites More sharing options...
Francois_D Posted November 3, 2006 Share Posted November 3, 2006 J'ai corrigé les fautes de frappe et d'orthographe... pour afficher la météo, le plus simple est d'utiliser Weather Dock F Link to comment Share on other sites More sharing options...
Quarky Posted November 3, 2006 Author Share Posted November 3, 2006 Oki Merci. Pour la météo, je sais très bien que cette solution existe Mais je veux développer une solution via GeekTool qui, rappelons le, est l'objet du topic Link to comment Share on other sites More sharing options...
Quarky Posted December 17, 2006 Author Share Posted December 17, 2006 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. Link to comment Share on other sites More sharing options...
falou Posted December 17, 2006 Share Posted December 17, 2006 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 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 Link to comment Share on other sites More sharing options...
falou Posted December 18, 2006 Share Posted December 18, 2006 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". 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. Link to comment Share on other sites More sharing options...
ano_635102115353656150 Posted December 21, 2006 Share Posted December 21, 2006 Salut à tous 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 donc si quelqu'un a le niveau et le temps de l'alléger un peu, c'est cool a+ Link to comment Share on other sites More sharing options...
Quarky Posted December 21, 2006 Author Share Posted December 21, 2006 Voilà j'ai rajouté les images pour la météo Encore merci à tous les deux. Et je vais voir pour le script, j'ai déjà vu quelques simplifications possibles Link to comment Share on other sites More sharing options...
Quarky Posted December 21, 2006 Author Share Posted December 21, 2006 Voilà c'est vu #!/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é. Link to comment Share on other sites More sharing options...
Dahas Posted December 23, 2006 Share Posted December 23, 2006 Beau boulot ! A mettre dans ma liste de course pour mon iMac qui devrait pas trop tarder Link to comment Share on other sites More sharing options...
edouardsoum Posted January 2, 2007 Share Posted January 2, 2007 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 Link to comment Share on other sites More sharing options...
Quarky Posted January 2, 2007 Author Share Posted January 2, 2007 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" Link to comment Share on other sites More sharing options...
edouardsoum Posted January 3, 2007 Share Posted January 3, 2007 Merci beaucoup Link to comment Share on other sites More sharing options...
Quarky Posted February 13, 2007 Author Share Posted February 13, 2007 Alors personne s'est fait de petite config depuis ? Link to comment Share on other sites More sharing options...
kankei71 Posted March 11, 2007 Share Posted March 11, 2007 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\";" Link to comment Share on other sites More sharing options...
kankei71 Posted March 12, 2007 Share Posted March 12, 2007 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? Link to comment Share on other sites More sharing options...
falou Posted March 12, 2007 Share Posted March 12, 2007 L'icône de Mail qui indique le nombre de courriers arrivés ne te suffit pas ? Ca fait exactement la même chose... Link to comment Share on other sites More sharing options...
kankei71 Posted March 12, 2007 Share Posted March 12, 2007 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. :) Link to comment Share on other sites More sharing options...
Quarky Posted March 12, 2007 Author Share Posted March 12, 2007 Moi j'ai le dock caché mais ça ne me pose pas de problèmes pour Mail 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 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. Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.