Aller au contenu

Quarky

Messages recommandés

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.

Lien vers le commentaire
Partager sur d’autres sites

  • Réponses 67
  • Créé
  • Dernière réponse

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

Lien vers le commentaire
Partager sur d’autres 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}'

Lien vers le commentaire
Partager sur d’autres 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}'

Lien vers le commentaire
Partager sur d’autres sites

  • 1 mois après...

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:

Lien vers le commentaire
Partager sur d’autres 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.

Lien vers le commentaire
Partager sur d’autres 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+

Lien vers le commentaire
Partager sur d’autres 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é.

Lien vers le commentaire
Partager sur d’autres sites

  • 2 semaines après...
  • 1 mois après...
  • 4 semaines après...

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\";"

Lien vers le commentaire
Partager sur d’autres 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?

Lien vers le commentaire
Partager sur d’autres 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. :)

Lien vers le commentaire
Partager sur d’autres 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:

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.


×
×
  • Créer...