Je suis en train d'écrire une petite application pour Intel OS X afin d'afficher une gamme de températures internes, mais je n'ai pas été en mesure de trouver une commande/application de boîte de texte satisfaisante. Applescript fonctionne mais la boîte a son propre esprit - une seule largeur (qui est trop large), va où elle veut et insiste pour être au sommet. Une fenêtre Terminal est la meilleure solution, mais il est fastidieux de la rendre totalement sans risque.
Je recherche une fenêtre de texte gratuite, de préférence générée par une commande bash précompilée, avec une bordure étroite et sans boutons, décoration, barre de titre, barre de défilement, etc. Elle devrait être redimensionnable manuellement et par programme ou s'adapter automatiquement au texte. Il devrait être possible de la positionner n'importe où, manuellement et par programme.
Il doit être petit et autonome afin de pouvoir être intégré à une application et ne pas être limité à un système d'exploitation ou à un ordinateur particulier. De préférence, il devrait fonctionner sur tous les ordinateurs Mac Intel OS X.
Code pour la solution Applescript :
#!/usr/bin/osascript
tell application "System Events" to set d to POSIX path of container of (path to me)
set k to "Open"
repeat until (k = "Close")
tell me to activate
set k to button returned of (display dialog (do shell script "s=" & d & "/c; b='';
g(){ x=$($s -k $1 -r); y=${x: -6:2}; z=${x: -3:2}; w=0; [ $z = 80 ] && w=5; b=$b\" $((16#$y)).$w $2\n\"; };
g TA0P 'Ambient';
g TC0C 'CPU A Core 0';
g TC2C 'CPU B Core 0';
g TCAH 'CPU A HeatSink';
g TCBH 'CPU B HeatSink';
g TH0P 'Drive Bay 0';
g TH1P 'Drive Bay 1';
g TH2P 'Drive Bay 2';
g TH3P 'Drive Bay 3';
g TN0H 'MCH HeatSink';
g Tp0C 'PSU1 Inlet';
g Tp1C 'PSU1 Component';
echo \"$b\"") buttons {"Close"} default button 1 with title "Temperature (Centigrade)" giving up after 19.9)
end repeat
Code pour la solution Terminal :
#!/usr/bin/osascript
tell application "System Events" to set d to POSIX path of container of (path to me)
tell application "Terminal"
activate
set T to do script "#"
set W to id of window 1 whose tab 1 = T
close (every window whose id != W)
set bounds of window id W to {2, 25, 202, 310}
end tell
repeat
do shell script "s=" & d & "/c;
b=\" Temperature (Centigrade)\n\n $(date \"+%y/%m/%d %H:%M:%S\")\n\n\";
g(){ x=$($s -k $1 -r); y=${x: -6:2}; z=${x: -3:2}; w=0; [ $z = 80 ] && w=5; b=\"$b $((16#$y)).$w $2\n\"; };
g TA0P 'Ambient';
g TC0C 'CPU A Core 0';
g TC2C 'CPU B Core 0';
g TCAH 'CPU A HeatSink';
g TCBH 'CPU B HeatSink';
g TH0P 'Drive Bay 0';
g TH1P 'Drive Bay 1';
g TH2P 'Drive Bay 2';
g TH3P 'Drive Bay 3';
g TN0H 'MCH HeatSink';
g Tp0C 'PSU1 Inlet';
g Tp1C 'PSU1 Component'; echo \"$b\" > /tmp/TidC"
tell application "Terminal" to do script "PS1=''; printf '\\33c\\e[3J'; cat /tmp/TidC; echo -n ' '; for q in {9..1}; do echo -n $q' '; sleep 1; done" in window id W
delay 9.6
end repeat