Skip to main content
Jamf Nation, hosted by Jamf, is a knowledgeable community of Apple-focused admins and Jamf users. Join us in person at the ninth annual Jamf Nation User Conference (JNUC) this November for three days of learning, laughter and IT love.

I built DockBuilder for you.

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).

Features
- 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.

https://github.com/ryangball/DockBuilder

Like Comment
Order by:
SOLVED Posted: by Hugonaut

Nice Ryan!

Like
SOLVED Posted: by john-hsu

Thanks for creating this, Ryan! Very simple to set up – this may be something I can use in labs to set default docks. I have it running successfully on one of my VM systems for further testing.

Like
SOLVED Posted: by scottb

Thanks @ryan.ball Always appreciate someone smarter making my life easier (and even fun at times!).
Will give it a run.

Like
SOLVED Posted: by isaacnelson

This is awesome. I've been playing with it and it works really well! Thanks for building it and sharing with us!

Like
SOLVED Posted: by ryan.ball

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.

Like
SOLVED Posted: by isaacnelson

It would be kind of nice to be able to give a different dock to our hidden admin account.

Like
SOLVED Posted: by ryan.ball

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.

Like
SOLVED Posted: by nwagner

@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!

Like
SOLVED Posted: by ryan.ball

@nwagner Thanks! I've used this on all flavors of Mojave, and it does not require a PPPC profile from what I can tell.

Like
SOLVED Posted: by ryan.ball

@isaacnelson This has been added. Look at the comments around line 52 of build.sh, then lines 108 in dockbuilder.sh.

Like
SOLVED Posted: by isaacnelson

Awesome! I'm at an offsite today but I should be able to play with it a bit on Monday.

Like
SOLVED Posted: by tnielsen

For me?! You're too kind.

Like
SOLVED Posted: by tlarkin

This is a prime example of open source driving and helping more open source. This is the type of stuff the community and jamf should embrace. Good work.

Like