Voici le paquet j'ai fait pour ajouter et supprimer des applications dans le dock des postes MacOS que nous déployons.
Il est facilement modifiable en modifiant les tableaux to_remove[] et to_add[] à votre convenance.
Il ne gère que les applications qui se trouvent dans /Applications/ (mais c'est pas dur à modifier si besoin).
Vous pouvez aussi reprendre uniquement les fonctions remove_dock_shortcut() et add_dock_shortcut() et les utiliser dans vos paquets.
Ce n'est pas super propre mais ça fait le taff, si vous avez mieux je suis preneur

Code : Tout sélectionner
# -*- coding: utf-8 -*-
from setuphelpers import *
# Source: https://stackoverflow.com/questions/19918547/how-to-remove-an-application-icon-from-dock-from-mac-osx-mavericks
def install():
print(r'Installation does nothing, dock will be configured per user at first session-setup.')
def uninstall():
print(r'Uninstallation does nothing, launch "defaults delete com.apple.dock; killall Dock" in user shell to reset the dock to defaults settings.')
def session_setup():
to_remove = ["Safari", "Messages", "Mail", "Plans", "Photos", "FaceTime", "Contacts", "Freeform", "TV", "Musique", "Keynote", "Numbers", "Pages", "App Store"]
for app in to_remove:
remove_dock_shortcut(name=app)
to_add = ["Thunderbird", "3CX Desktop App", "Spark", "WAPT/WAPT Self-service"]
for app in to_add:
add_dock_shortcut(name=app)
# Reload dock after all modifications
run("osascript -e 'tell Application \"Dock\"' -e 'quit' -e 'end tell'")
def remove_dock_shortcut(name=None, reload=False):
"""Remove shortcut from MacOS dock
Args:
name : application name (it has to be in /Application/)
reload (boolean) : if True, reload dock before return
Returns:
True if dock was updated, else False
"""
if name:
all_shortcuts = run(r'defaults read com.apple.dock persistent-apps | grep file-label\"').split("\n")
i = 0
for shortcut in all_shortcuts:
if "=" in shortcut:
current = shortcut.split("=")[1].split(";")[0].strip().strip('"')
if current == name:
run(r'/usr/libexec/PlistBuddy -c "Delete persistent-apps:%s" ~/Library/Preferences/com.apple.dock.plist' % i)
if reload:
run("osascript -e 'tell Application \"Dock\"' -e 'quit' -e 'end tell'")
return True
i += 1
return False
def add_dock_shortcut(name=None, reload=False):
"""Add shortcut to MacOS dock
Args:
name : application name (it has to be in /Application/)
reload (boolean) : if True, reload dock before return
Returns:
True if dock was updated, else False
"""
if name:
run(r'defaults write com.apple.dock persistent-apps -array-add "<dict><key>tile-data</key><dict><key>file-data</key><dict><key>_CFURLString</key><string>/Applications/%s.app/</string><key>_CFURLStringType</key><integer>0</integer></dict></dict></dict>"' % name)
if reload:
run("osascript -e 'tell Application \"Dock\"' -e 'quit' -e 'end tell'")
return True
return False