MacTrix: Tricks of the Mac OS X Master
Où comment faire qu'il devienne mon esclave ?
Cette page est dédiée à quelques-unes de mes expériences avec mon Mac. Peut-être cela servira t-il à quelqu'un d'autre. On trouvera donc ici quelques trucs et astuces pour Mac OS X. Tout en vrac pour €1.
Tout d'abord essayer "Utilitaire de Disque" (vérifier puis réparer). Si cela ne fonctionne pas (disque non ou mal reconnnu) essayer TestDisk, c'est magique mais nécessite quelques connaissances et beaucoup de précautions.
Si les fichiers sont du type avi
il est absolument nécessaire
de passer par un outil adéquat (la simple concaténation ne fonctionne
pas!). On peut alors
utiliser D-Vision qui est très
efficace.
Si les fichiers sont du type mpeg
, la simple concaténation
fonctionne parfois, mais mpgtx
assure la cohérence structurelle du résultat. Les versions 1, 2 et 3 du
format sont correctement supportées. On notera que divers autres outils
sont livrés dans ce paquet cadeau (demux, split, info, etc).
Pour produire sous LaTeX efficacement, plusieurs outils existent qui
fournissent une interface d'édition plus qu'utile (sinon se rabattre
sur emacs
, vi
ou ed
fonctionne
aussi).
Celui que j'utilise parce que simple et efficace est TeXshop. Il utilise la TexLive - teTeX de Gerben Wierda (mais tout autre distribution fait aussi bien l'affaire).
Une alternative est d'utiliser iTeXMac. Je l'ai longtemps utilisé mais je le trouvais alors un peu trop compliqué (j'apprécie la simplicité). Attention car son paramétrage est parfois délicat mais ses fonctionnalités sont très puissantes.
Il existe LyX qui permet une édition visuellement approchée du résultat (WYSIWYG). Chacun son truc...
Les Grands Natifs Unixiens peuvent éditer en utilisant TeXmacs, it is wysiwyg too. Le support existe à la fois sous Fink et MacPorts.
Pour éditer des bibliographies, j'utilise l'excellent BibDesk.
mp3
il est trop naze, i play pas mes tunes, zyva tu f'rais
quoi toi ?Ce problème est assez difficile à résoudre car les causes sont
multiples. Mais, mais, c'est très généralement lié à la présence de
balises mp3
non ou mal reconnues par le lecteur. Il faut alors
trouver un outil d'édition des tag mp3
. Je n'en connais pas de
vraiment satisfaisants. J'utilise parfois MP3
ID3X. De toutes les façons c'est laborieux! Pour ma part j'ai renoncé
aux lecteurs pas chers. Fabricants de lecteurs mp3
= escrocs
patentés.
La solution la plus économique est encore d'utiliser le portage de The Gimp.
Si! J'ai! On peut utiliser la version d'évaluation (bridée en capacité pas en temps) de OmniGraffle.
De très nombreux outils existent, du plus farfelu/foireux au plus perfectionné/inutilisable. Celui qui me rend à chaque fois le service désiré c'est ffmpegX.
Il y a certes la solution native d'iTunes
qui intègre
désormais Cover Flow
additionné d'un module de chargement des
pochettes d'album via iTunes store
, mais il faut pour cela
posséder un compte client. Pour ma part, j'utilise le très
pratique Clutter qui va
chercher les images sur différents sites. Pfff! C'est mort
maintenant. J'y vais à la main...
Good news. Il suffit de chercher un peu, par exemple l'excellent Dashboard Widget Amazon Album Art.
Bon normalement il faudrait coder en utilisant l'outil
natif xcode,
mais comme je ne génère pas d'application
spécifiquement MaxOSX je n'ai pas acquis le réflêxe consistant à le lancer.
Pour l'avoir tester de nombreuses fois (je suis curieux), c'est un outil
assurément merveilleux, mais vous savez le rouleau compresseur, la
mouche...
Certes on trouve disponible tout les trucs Unixiens
(Linuxiens?) du même genre, Eclipse,
mais
aussi Sun
Java Studio Creator, etc. Je vous fait grâce
des JBuilder
, NetBeans
et autres.
Mais je ne suis pas fana de ses trucs, même si je leur concède une certaine
utilité. En tous cas, créer un projet pour écrire HelloWorld.c
c'est un peu lourd. Mais si vous voulez jouer avec les sources
de konqueror
alors là d'accord, c'est même indispensable.
Bref je «code à la main» (à l'ancienne!). Pépé utilise donc Emacs
on Aqua, un bon vieux Terminal
comme dans le temps et ses
petits doigts gourds pour lancer gcc
, make
, etc.
Je ne suis jamais entré dans le «Georges V», je ne suis même pas sûr (si
j'en suis sûr) que ce soit intéressant. Mais en ce qui concerne les suites
bureautique j'utilise tout! Y compris la suite Microsoft (<bruit
fond="true">ouh le traître!</bruit>). Je n'ai absolument pas de
religion sur ce point (Libre/Sous licence).
Donc la suite Microsoft (Word
, Excel
et Power
Point
). Mais aussi le libre (enfin refaire la roue en plus ou moins
rond c'est pas le top tout de
même!): Open Office (il
m'énerve parce qu'il lance X11
et puis que j'ai l'impression
d'avoir un mauvais portage de Windows sur mon
Mac, il n'y a pas si longtemps que les petits carrés bleus ont disparu), NeoOffice
(Bringing the power... Yo! J'ai l'impression d'être le meilleur du monde
avec ça!) et AbiWord (j'aime
pas que l'on commence par me dire où je dois rapporter les bogues, de toutes
les façons je les fous à la poubelle).
Sinon il y a la suite iWork d'Apple:
qui comporte Pages
et Keynote. Je n'ai eu le
loisir que de tester le second, mais je suppose que la conclusion est la
même pour le premier! C'est comme d'habitude avec Apple: une apparence plus
soignée, des concepts plus clairs, un style plus dépouillé, le tout pour une
efficacité infiniemment plus importante. Fini les centaines d'options mal
classées, les milliers de sous-menus, les milliards de fonctionnalités
*absolument* inutiles, etc. Les couteaux suisses sont marrants, mais
personne ne se coupe ou se lime les ongles avec (les derniers modèles sont
disponibles avec un port USB - à quand le lecteur mp3 ? le tuner TNT ?).
Non j'ai entièrement confiance en mon matériel et mon logiciel. JE DÉCONNE!
J'utilise deux techniques différentes.
La première consiste à
utiliser rsync et synchroniser mes
fichiers locaux avec un
compte sauvegardé que je possède par ailleurs (mais cette technique pourrait
être utilisée avec un fournisseur d'accès offrant un espace disque et en
utilisant une méthode équivalente. Note qu'il existe une version
MacOSX rsyncX que je
n'ai pas testée mais qui permet de sauver les «resources fork» (ignorant
passe ton chemin!).
La seconde utilise bêtement un disque externe
et Silverkeeper qui
synchronize/sauvegarde/restaure, etc. Attention car SilverKeeper ne
fonctionne pas avec Léopard.
Comme je suis paranoïaque schizophrénique pervers dangereux, maintenant j'utilise aussi TimeMachine (à qui, je trouve, il manque quelques options).
Il existe des tas de moyens différents. En ce qui me concerne, j'ai rendu
automatique le lancement de rsync lors de ma
déconnexion (logout). La technique est assez simple et repose sur la
possibilité d'indiquer au système d'exécuter un script lors de la
déconnexion. Il suffit de modifier la valeur de la
clé LogoutHook
du domaine
global com.apple.loginwindow
en utilisant la commande:
sudo defaults write com.apple.loginwindow LogoutHook scriptÀ vous d'écrire un script adéquat (c'est plus délicat qu'on ne le croit généralement), mais pour faire encore plus chic vous pouvez utiliser les services de iHook qui permet d'obtenir une interface Aqua par-dessus un script.
Ah oui les fameuses NSGlobalDomain
/Global Domain
Preferences... Pour des raisons de sécurité elles ne sont plus
dans /Library/Preferences/
mais dans un répertoire rendu
inaccessible aux utilisateurs sauf root
et de
référence /private/var/root/Library/Preferences/
. Il n'est
évidemment pas conseillé d'y toucher autrement qu'en passant par
l'outil defaults
.
J'utilise l'excellent Panorama Maker de Arcsoft dont une version m'a été fournie avec mon Coolpix L12. Le problème est que le fichier QuicktimeVR engendré est agrémenté de métadonnées (resource fork) qu'il faut « aplatir ». Pour cela j'utilise lillipot qui fait la bonne conversion (QTBridge développe d'ailleurs d'autres outils très intéressants).
J'utilise toujours Safari sauf dans certains cas très particuliers dans lesquels le concepteur du site a visé juste dans le truc qui rend son site incompatible avec Safari (mais faut être tordu).
Bien entendu, je fais un peu de veille technologique sur ce point et il m'arrive de lancer: Firefox, Camino, Flock, Netscape Navigator, OmniWeb, Opera, Seamonkey ou encore Shiira. Il y a longtemps que je n'ai pas testé Amaya qui est un peu pédant... Dans le temps y'avait même Internet Explorer (je viens de me brûler les doigts).
Bien entendu, la technologie moderne nous autorise pratiquement tout. Par exemple, l'emploi d'une bonne machine virtuelle est très utile. On peut utiliser Parallels (payant ~$80), VMware Fusion (payant ~$80), ou VirtualBox de Sun (environ pas cher de chez gratuit à peu de frais).
J'utilise VirtualBox avec bonheur. Quel pied de voir tourner Solaris par exemple. Mais j'ai aussi essayé d'y mettre L***x (c'est comme le démon vaut mieux pas prononcer son nom).
Il y a une commande en ligne qui s'appelle osascript
. Un
fichier script exécutable utilise l'option .scpt
. Attention,
il ne faut pas confondre ces scripts avec ceux du shell. Une utilisation
pourrait être osascript -e 'tell application "iTunes" to back
track'
qui commande à iTunes de revenir au début du morceau en
cours si son écoute a débuté depuis longtemps, sinon au début du morceau
précédent.
Oui en général je suis content de XCode. Il y a bien quelques désagréments: vas-y toi renommer un projet XCode... Néanmoins ma curiosité me pousse parfois jusqu'à essayer d'autres choses.
Pour coder en C++ il y a par exemple un outil bien sympathique: Code::Blocks, dont les curieux noteront d'ailleurs qu'il est disponible sous tous les systèmes y compris Windows (il utilise comme support de compilation gcc).
Pour coder en C, c'est «roots»: emacs ou vi selon l'humeur, puis gcc et make si nécessaire.
En Java, c'est variable, parfois Eclipse si je veux faire un poil de
modélisation UML avec le
plugin Omondoobsolète car le plugin est désormais payant, parfois
emacs/vi et parfois XCode, mais
rarement Netbeans (juste parce que je
n'ai pas tant de temps à investir pour explorer les trop nombreuses choses
existantes) ou Java Studio
Creator (même raison)
En Objective-C, uniquement XCode mais seulement par habitude et que je n'utilise Objective-C que pour Cocoa, donc avec Interface Builder...
En javascript, ben emacs/vi, «roots» quoi!
Sinon y'a d'autres langages ?
Non, c'est juste pour me vanter. Mais de temps en temps j'utilise MacMAME, un truc génial qui me replonge dans le lointain passé des jeux en noir et blanc avec des pixels de taille A4! À chaque fois, c'est avec une certaine jubilation que je m'éclate à Pengo, Donkey Kong, Galaxian, Pacman, Space Invaders, Scramble, Millipede, Lode Runner, ou encore Crush Roller (qui se souvient de ce p..... de truc!), etc.
Deux matériels disponibles.
D'abord j'utilise parfois ma télécommande fournie avec le
Mac. Bon évidemment je ne contrôle pas grand chose, iTunes ou KeyNote, mais
c'est largement suffisant.
Ensuite, je peux contrôler mon Mac par l'intermédiaire de mon iTouch, et là,
il y a le choix! Tout d'abord en utilisant deux applications gratuites de
l'App Store (jfControl Remote Lite et Nam's Remote Free). La première est
franchement faiblarde, puisqu'en version gratuite elle ne permet que de
contrôler iTunes et d'éteindre l'ordinateur. Par contre, la seconde est assez
merveilleuse puisqu'on contrôle le pointeur de souris (l'iTouch est comme un
trakpad), les boutons de la souris, etc. On a même la possibilité de faire des
saisies clavier (bon c'est pas la panacée, mais ça doit faire son effet en
public). Excellent!
Sinon il existe aussi VLCRemFree pour contrôler VLC.
J'aime bien Remote pour contrôler iTunes, il suffit de partager des listes
dans iTunes et Remote permet de les lire, etc. On dispose évidemment des
pochettes, etc... Une interface iTunes déportée quoi...
Sans rentrer dans les détails croustillants, les Unixiens de base ont pu
constater que positionner l'umask
de son propre shell, dans
n'importe quel fichier d'initialisation habituel type .*rc
ne
suffit pas. La cause étant que les applications MacOSX, comme le Finder, ne
sont pas obtenues en passant par un shell utilisateur dans la généalogie de
création des processus, et donc ne peuvent hériter de la valeur de la propriété
correspondante. Il faut donc passer par des modifications de l'environnement
MacOSX. Je conseille donc d'utiliser, en premier lieu, la commande
suivante
defaults write com.apple.finder umask -int valeur
qui permet de positionner l'umask
du Finder à la valeur considérée
(je laisse le lecteur se reporter au manuel de chmod
, par
exemple, pour déterminer quelles valeurs numériques utiliser).
Maintenant, si l'on veut positionner l'umask pour le Finder de tout le monde,
il faut utiliser le NSGlobalDomain
, juste après
le write
dans la commande.
Il est possible de positionner l'umask
pour tous les processus
utilisateurs en modifiant (ou en créant) le
fichier /etc/launchd-user.conf
et en y ajoutant (ou modifiant) la
ligne :
umask valeur
Pour les processus systèmes, démons, etc., c'est le
fichier /etc/launchd.conf
qui est concerné.
Si l'on veut permettre que plusieurs utilisateurs puissent librement utiliser
un répertoire donné comme lieu d'échange et de travail (je ne rentre pas dans
les détails mais faire qu'un utilisateur créé un répertoire dans lequel un
autre utilisateur puisse créer des fichiers et répertoires que tous deux
puissent modifier librement, et vice-versa, ou tout autre combinaison
subtile), il faut utiliser les ACL (Access Control List) MacOSX qui
fournissent une extension aux droits d'accès ordinaires. L'idée est
relativement simple, car il suffit de positionner des droits étendus sur le
répertoire (tout autoriser pour les utilisateurs en question) et d'indiquer
que l'on désire que ces propriétés soient héritées aux fichiers et
sous-répertoires. La commande suivante
chmod +a "utilisateur allow read,write,append,execute,list,search,add_file,add_subdirectory,delete_child,file_inherit,directory_inherit"
fera l'affaire, et ce pour chaque utilisateur concerné.
Note: pour obtenir la liste des droits étendus il suffit d'utiliser
l'option -e
de la commande ls
.
Les utilisateurs du contrôle parental de MacOSX ont sans doute constaté
certains dysfonctionnements (fonctionnements aléatoires sous certaines
versions et configurations étranges). Pour des raisons que j'ignore, certains
sites autorisés (dans la whitelist) le sont parfois globalement (autoriser une
page autorise l'ensemble du site) parfois individuellement (autoriser une page
n'autorise que celle-ci). Impossible de choisir ce comportement lors de
l'autorisation au coup par coup (tentative d'accès/refus/ajout du site par
authentification), comment faire ?
La première chose à remarquer est qu'il est inutile de modifier les
/Library/Managed Preferences/utilisateur
car celles-ci
sont obtenues
par copie fraîche à chaque session depuis les services d'annuaire! La seule
solution est donc de modifier les préférences via le service
d'annuaire. Mais depuis la disparition de l'outil adéquat
sous /Applications/Utilities
(j'ai même oublié son nom), comment
faire ?
Il faut utiliser (si vous n'êtes pas sous une version Server du système) la
commande manuelle dscl
(Directory Services Command-Line
utility). L'idée est simple:
Terminal
la
commande dscl . -mcxexport /Users/utilisateur >
/tmp/fichier
qui a donc pour effet de produire un fichier
XML au format texte, donc éditable, contenant l'ensemble des préférences MCX
de l'utilisateur.
Property List Editor
car
il faut sauver en format XML Property List (enfin j'ai eu des problèmes en
utilisant le format binaire, mais était-ce bien ça le problème ?).
dscl . -mcximport
/Users/utilisateur /tmp/fichier
.
/var/db/dslocal/nodes/...
Bah! Fastoche y'a les préférences du système pour ça. Ben tiens, essaie donc ici.
Tout est indiqué ici.
C'est assez compliqué à décrire complètement mais le principe est
simple. Lorsqu'on installe une application dans le système celui-ci examine
sa structure (tiens il faudra raconter comme ça marche ça!) dans laquelle
se trouve normalement une liste des fichiers que l'application en question
est capable d'accepter par défaut (types MIME, extensions de fichier,
etc). Ces informations sont alors enregistrées dans une table qui peut-être
consultée mais avec une commande cachée (sous 10.6.2 c'est la
commande lsregister
qui se trouve dans le
répertoire /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support
). Il
suffit alors de la lancer sous la forme:
.../lsregister -dump
Et l'on obtient des tas d'informations utiles comme par exemple :
-------------------------------------------------------------------------------- bundle id: 32824 path: /Applications/iTunes.app name: iTunes identifier: com.apple.iTunes (0x800044e5) canonical id: com.apple.itunes (0x8000005f) version: 9.1.1 mod date: 4/28/2010 13:48:52 reg date: 5/10/2010 16:13:26 type code: 'APPL' creator code: 'hook' sys version: 10.4.9 flags: apple-internal relative-icon-path wildcard item flags: container package application extension-hidden native-app scriptable requires-native ppc i386 icon: Contents/Resources/iTunes.icns executable: Contents/MacOS/iTunes inode: 1438828 exec inode: 2696253 container id: 32 -minimum-versio 100409 library: library items: -------------------------------------------------------- claim id: 24388 name: MP3 Audio File rank: Default roles: Editor flags: apple-default apple-internal relative-icon-path icon: Contents/Resources/iTunes-mp3.icns bindings: public.mp3, .mp3, 'mp3!', 'MP3!', 'MPG3', 'mpg3', 'Mp3 ', 'MP3 '
Où l'on voit donc que les fichiers d'extension .mp3
sont
reconnus par iTunes! Évitez de faire trop d'expérimentations
avec lsregister
car on peut tout casser très facilement...
Il existe un logiciel magique pour cela qui fait partie de la catégorie
des routeurs d'audio, il s'agit
de SoundFlower. Son
principe de base est extrêmemenbt simple : il crée des périphériques
virtuels d'entrée et sortie audio de sorte que des sorties audio peuvent
être injectés en entrée de SoundFlower et que les sorties de SoundFlower
puissent être vues comme des entrées par le système. Après l'avoir
téléchargé, lancez-le et ne toucher à rien (ne cherchez pas à le configurer
vous ferez cela plus tard). Ensuite, lancez les préférences systèmes et
choisissez de configurer le son. Deux onglets sont à votre disposition :
entrée et sortie. Bien entendu, d'habitude il n'y a pas grand-chose à
sélectionner, mais maintenant vous voyez apparaître Soundflower,
sélectionnez la version de base à deux canaux (2 ch), en entrée et en
sortie. Ensuite, rendez-vous
dans Audacity et ouvrez les
préférences, dans Périphériques
, sélectionnez Soundflower
comme périphérique d'enregistrement. Voilà, vous avez gagné. Le principe
reste le même quelque soit les applications que vous souhaitez utiliser
pour écouter ou enregistrer du son (certaines permettent de sélectionner
directement le périphérique sans avoir à passer par les préférences
systèmes).
Attention : pensez bien à remettre les préférences
systèmes de configuration du son dans leur état initial sinon vous ne
pourrez plus rien entendre ou enregistrer en temps normal!
Désormais, TimeMachine utilise un cache local sur votre propre disque afin d'optimiser les prochaines sauvegardes. Néanmoins cette fonctionnalité utilise de l'espace disque dont vous pourriez avoir nécessité. Pour désactiver la fonctionnalité sudo tmutil disablelocal
. Devinez comment réactiver la fonctionnalité ?
Jean-Baptiste Yunès