DockBuilder allows for the building of a user's Dock based on an organization's needs. DockBuilder eliminates the need for a user template which only allows for a static Dock for all users, and template manipulation can cause issues in newer versions of macOS. DockBuilder not only allows for easy creation of a new user's Dock out of the box, but also has the potential to dynamically set up a different Dock for users based on some criteria; like AD groups for example (you'd have to modify the source based on your criteria).
- Builds a Dock based on pre-defined defaults
- Logs to ~/Library/Logs/DockBuilder.log (by default)
- Does not start until the Dock.app is loaded upon login
- Only builds a Dock for user's who's Dock is younger than 300 seconds (to minimize re-building a pre-existing user's Dock after the installation of DockBuilder)
- Option to hide the Dock and display a message to the user while the Dock is being built
I created a version of this for my workplace, but this includes a lot more functionality and leverages a plist to store preferences for easy manipulation in the future.
Use it, or don't. Create an issue if you have any or submit a PR.
Thanks. If anybody has a use case for different dock per user using some criteria, let me know.
I’ll probably also work in the addition of Dock items even after DockBuilder has ran for a particular user, like if an organization needs a new app added. Also the removal of a Dock item after DockBuilder might have run for a user. This would eliminate the need for one-off solutions for maintenance purposes.
I'll work on a way to ignore users from the postinstall check that creates breadcrumbs for users that already existed, so that we build the Dock for the user that already existed (if it did). Also, I can look at setting up a different set of items to apply to another user named "admin" for example.
@ryan.ball Dude, sweet!
Not only is this great work, but you open sourced it for the whole community! You're a saint.
I will commence clicking all the "Likes" for your posts in this discussion. I don't really know what that does, is it just fake internet points or do they go toward something like a free pizza...
Anyway, how do you handle PPPC for this? I mean since there's a launch agent, the app is run by the $USER. I haven't figured out a good way whitelist scripts and apps that are run under those conditions.
Last thing, love your avatar!
I'm just starting on building next school years, lab setups and this was one area causing me fits. This saves me many hours of trying to get it working or resorting to using cloned base images. So thank you very much!
For anyone looking to build a custom dock in Monterey, I piggybacked off @ryan_ball 's awesome work, rewrote a bunch of stuff and created a new post here: