mardi, mars 17, 2009

Modifier la fenêtre de l'écran de loggin de mac OSX



MAJ => tuto mis à jour ICI



Le tutoriel qui suit a été réalisé sous Léopard ... à vérifier sous Tiger.

Cette manipulation est à vos risques et périls, j’ai moi-même réussi a planté mon mac.
Avant toute chose sauvegardez vos données, en effet lors d'une fausse manip ou d'un bug l’écran de login ne seras plus accessible et il vous faudra redémarrer le machine en mode ligne de commande pour restaurer les fichiers.
J'en ai moi même fait l'expérience ...

Lorsque l'on parle de modification de l'aspect de la page de loggin de Mac OS on parle généralement de la modification du fond d'écran. Certains logiciels permettent de le faire facilement. Où l'on peu le faire en écrasant ce fichier :

/System/Library/CoreServices/DefaultDesktop.jpg

Je le met ici à titre de rappel, car ici ce que je vais vous montrer permet de modifier l'aspect de la fenêtre elle même.

Je me suis posé la question car je trouvais que cette fenêtre occupait trop d'espace.

Comme toute application mac qui ce respecte l'affichage est géré par un fichier NIB. Vous l'aurez donc compris tout repose sur la modification de celui-ci.

Ce fichier est répliqué, en effet il en existe un pour chaque langue.
Mon écran de loggin étant paramétré en Anglais j'ai donc modifié ce fichier avec "InterfaceBuilder" =>

/System/Library/CoreServices/SecurityAgentPlugins/loginwindow.bundle/Contents/Resources/English.lproj/LoginWindowUI.nib/keyedobjects.nib


Commencer par copier "LoginWindowUI.nib" sur votre bureau avec une commande du style

sudo cp -rf /System/Library/CoreServices/SecurityAgentPlugins/loginwindow.bundle/Contents/Resources/English.lproj/LoginWindowUI.nib ~/Desktop


Le projet à éditer avec interface builder est "LoginWindowUI.nib" mais celui-ci est en fait un paquet contenant plusieurs fichiers, dont un seul utile:

keyedobjects.nib

Si le paquet en question ne comporte qu’un seul fichier (keyedobjects.nib) alors une erreur ce présente:


The document "LoginWindowUI.nib" could not be opened. Interface Builder cannot open compiled nibs.


Pour contourner ce problème créer une NIB a partir d'un template, enregistrer celle-ci, explorer son contenus et enfin copier les 2 fichiers "clases.nib" et "info.nib" dans notre "English.lproj" ou télécharger une archive ici contenant ces 2 fichiers.

English.lproj est maintenant éditable avec Interface Builder.

Vous pouvez procéder aux modifications que vous voulez. Pour modifier les images des boutons et la pomme modifier les images dans /System/Library/CoreServices/SecurityAgentPlugins/loginwindow.bundle/Contents/Resources

Vous pouvez changer la position des images et ainsi de suite dans la NIB.
Faites en sorte de rester timoré sur les modification de la NIB, si la taille de la fenêtre est trop petite le système plante et vous êtes obligé de restauré les fichiers d’origine avec un autre mac ou en mode mono utilisateur.

quelques photos :=>








L'écran de loggin par défaut dans interface builder



Mon écran de loggin dans interface builder

2 commentaires:

Unknown a dit…

Bien vu l'artiste !
Trop cool de pouvoir un modé léopard!
Avec Snow, peut-être le finder pourra prendre n'importe qu'elle forme !

Adrien a dit…

Ce serait franchement cool.
En plus avec le système en cocoa on pourras théoriquement touché a tout !