Skip to content

Application Description

multiday edited this page Nov 18, 2019 · 6 revisions

Hello-IT is split into multiple components: the application, the plugins who provide functions, and the resources.

The application uses plugins located in multiple places, each plugin provides a function. Those functions allow IT teams to generate a custom service menu matching their needs.

Application

The Hello-IT application is installed by default in /Applications/Utilities and will be loaded as a systemwide launch agent. That's to say, all users on the computer will have Hello-IT started in their own session after login and it will be maintained by launchd. If the application quits, the system will start it again.

LaunchAgent is managed via /Library/LaunchAgents/com.github.ygini.hello-it.plist

Plugins & Functions

Plugins are located in:

  • The PlugIns folder for the application itself;
  • /Library/Application Support/com.github.ygini.Hello-IT/PlugIns;
  • ~/Library/Application Support/com.github.ygini.Hello-IT/PlugIns;

And loaded in the same order. This means, when multiple plugins provide the same function, the closest to the user will be used.

Each plugin can offer only one function, as identified by the HITPFunctionIdentifier key in bundle's Info.plist.

Bundles are listed at the start of the application but loaded only if needed.

Resources

Resources can be scripts or images that can be used by the application or the functions. The default location for all resources is in /Library/Application Support/com.github.ygini.hello-it where you can find three folders: CustomImageForItem, CustomScripts and CustomStatusBarIcon.

Custom images for items

For each item in the Hello-IT menu you can show an image, a small letter next to the link to the webmail for example. This image can be referenced in the settings as an absolute path or a relative one to CustomImageForItem.

When using this feature, image must be a png and could be declined in with a -dark version to follow the macOS look.

That's to say, if an item as the value setA/email, the final loading paths will be:

  • /Library/Application Support/com.github.ygini.hello-it/CustomImageForItem/setA/email.png
  • /Library/Application Support/com.github.ygini.hello-it/CustomImageForItem/setA/email-dark.png

If dark isn't available, the other one will be used.

Custom scripts

One function supported by default in Hello-IT is called public.script.item with it you can run your own scripts to interact with the menu item. The script will be allowed to:

  • change the title
  • change the state
  • hide the item
  • be started on click
  • be started on a regular basis

As for the custom image, reference to this script can be an absolute path, or can be relative to CustomScripts folder.

Custom status bar icon

The default icon shown in the status bar can be changed to match your corporate identity and cultural needs. Doing so, you need to provide a full set of icons matching all the requested states.

The normal icon should be 18x18px at 72DPI and the retina icon should be 36x36 at 144DPI.

Once you've created regular and retina icons as png files, you need to combine them into a single tiff using the following command line:

tiffutil -cathidpicheck statusbar.png [email protected] -out statusbar.tiff

Here is the list of the icon versions you need to create:

  • statusbar.tiff
  • statusbar-error.tiff
  • statusbar-ok.tiff
  • statusbar-unavailable.tiff
  • statusbar-warning.tiff

And of course, the dark variants:

  • statusbar-dark.tiff
  • statusbar-error-dark.tiff
  • statusbar-ok-dark.tiff
  • statusbar-unavailable-dark.tiff
  • statusbar-warning-dark.tiff

Original version of these icons can be found in /Applications/Utilities/Hello IT.app/Contents/Resources.

Once you've created your custom versions, you need to deploy them in /Library/Application Support/com.github.ygini.hello-it/CustomStatusBarIcon

Note: custom icon with tiff started to work properly with v1.4.0