Docklib Versions Save

Python module intended to assist IT administrators with manipulation of the macOS Dock.

v2.0.0

4 weeks ago

This release fixes compatibility with Python 10.12 by removing the dependencies on distutils.versions. (Thanks to @arubdesu for #42.)

Removed

  • Removed Python 2 support. If you're still deploying docklib to macOS versions prior to Monterey 12.3, be sure you're deploying a Python runtime like MacAdmins Python rather than relying on the built-in /usr/bin/python.
  • Removed macOS version detection. This may cause unexpected behavior when referencing the AllowDockFixupOverride, show-recents, recent-apps, dblclickbehavior, show-recents-immutable, and windowtabbing keys on macOS versions prior to Big Sur 11.0.
  • Starting with version 2.0.0, we will not provide .pkg installer files with GitHub releases, since the location of the docklib module is dependent on the path of the Python runtime you deploy to your managed Macs. Instead of deploying the .pkg file, consider using the MacAdmins Python runtime (which includes docklib) or build your own using relocatable-python.

Changed

  • makeDockAppSpacer() parameter name has changed from type to tile_type. Please update your scripts if you use this function.
  • Updated unit tests with new is-beta preference key present in macOS Sonoma Dock tiles.

v1.3.0

2 years ago

The focus of this release is to make docklib functions less focused on dock item labels, since labels can change depending on the user's selected language. (See #32 for details.)

Added

  • A new findExistingEntry function that can find dock items based on several attributes.

    The default behavior of findExistingEntry is to match the provided string on (in order of preference):

    1. label
    2. path
    3. filename with extension
    4. filename without extension

    The match_on parameter can be specified to select only one of those attributes to match, if desired. See the findExistingEntry function docstring for available parameters and values.

Changed

  • The findExistingLabel function is now simply a pointer to the new findExistingEntry function. findExistingLabel will be maintained for backward-compatibility.

  • The removeDockEntry function has a new match_on parameter that mirrors the same parameter in findExistingEntry. Default behavior is to match on the same attributes listed above, in the same order of preference. (This is a change in behavior from previous versions of docklib. If you prefer to continue removing items solely based on label, you should specify match_on="label" in your function call.)

  • The replaceDockEntry function has two new parameters:

    • match_str, which allows specifying the item intended to be replaced in the dock (replaces the now deprecated label parameter).
    • match_on, which mirrors the same parameter in findExistingEntry. Default behavior is to match on the same attributes listed above, in the same order of preference.

Deprecated

  • The label parameter of replaceDockEntry is deprecated, and it's encouraged to use match_str instead. This allows existing items to be replaced based on multiple attributes rather than just label. As stated above, this makes dock customization scripts more reliable in multilingual environments.

    A warning has been added that alerts administrators to this deprecation.

  • This is the last release of docklib that will support Python 2. Future releases will only be tested in Python 3.

    If you haven't started bundling a Python 3 runtime for your management tools, this blog article from @scriptingosx is a good read. Also: a reminder that docklib is already included in the "recommended" flavor of the macadmins/python packages.

v1.2.1

3 years ago

Added

  • Signed GitHub release package

Fixed

  • Fixed issue preventing findExistingLabel() from finding URLs' labels

v1.2.0

3 years ago

(Includes changes from briefly-published versions 1.1.0 and 1.1.1.)

Added

  • Published docklib to PyPI so that administrators can manage it with pip and more easily bundle it in custom Python frameworks. Adjusted repo file structure to match Python packaging standards.
  • Created build_pkg.sh script for creation of macOS package installer.
  • Added findExistingURL() and removeDockURLEntry() functions for handling URL items.
  • Created a few basic unit tests.

Changed

  • Updated pre-commit configuration.

v1.0.5

4 years ago

Fixed

  • Avoids a TypeError that occurred when a dock "section" was None (#24, fixed by #25)

Changed

  • Specified UTF-8 encoding on docklib.py file.

v1.0.4

4 years ago

Fixed

  • Changed .append() to .extend() for Python 3 compatibility.

v1.0.3

4 years ago

Added

  • Added more mutable keys (thanks @WardsParadox)
  • Added Apache 2.0 license

Fixed

  • Fixed issues with attribute names that contain hyphens (e.g. mod-count)
  • Fixed issue that caused False values to be skipped

v1.0.2

5 years ago

Fixed

  • Only use "show-recents" key in 10.14 or higher

v1.0.1

5 years ago

Added

  • Added the ability to specify a label for Apps
  • Added "show-recents" key
  • Added pre-commit config for contributors

Changed

  • Standardized Python using Black formatter
  • Adopted MunkiPkg project structure

Fixed

  • Corrected examples in read me
  • Fixed assignment of return value

v1.0.0

6 years ago

Initial release of docklib, forked from @gregneagle.