Skip to content
Tobias Almén edited this page Jan 7, 2025 · 19 revisions

Configuration

Support Companion supports a wide range of configurations through MDM Profiles.


Available Keys

Key Type Default Required Description
BrandName String Support Companion False Configures the brand name shown in the menu
AccentColor String User primary accent color False Configures the brand color shown in the app, specify in hex format
BrandLogo String None False Configures the brand logo shown in the apps side menu. Specify a base64 string
BrandLogoLight String None False Configures the brand logo shown in the apps side menu when light theme is used. Specify a base64 string
SupportPageUrl String None False Configures the URL to open when the user clicks on the Get Support button
ChangePasswordUrl String None False Configures the URL to open when the user clicks on the Change Password button
ChangePasswordMode String local False Configures the mode for the Change Password button, available modes are: local, SSOExtension, url
SupportEmail String None False Configures the email address shown when the user clicks on the Support Info button
SupportPhone String None False Configures the phone number shown when the user clicks on the Support Info button
HiddenCards Array None False Configures which widgets to hide, available widgets are: DeviceInformation, Evergreen, Battery, Actions, ApplicationInstallProgress, Storage, DeviceManagement, PendingAppUpdates
HiddenActions Array None False Configures which actions to hide, available actions are: ChangePassword, Reboot, OpenManagementApp, GetSupport, GatherLogs, SoftwareUpdates, RestartIntuneAgent
NotificationInterval Integer 4 False Configures the interval for notifications in hours for Application Updates and Software Updates notifications. Setting to 0 disables notifications
NotificationTitle String Support Companion False Configures the title for notifications
NotificationImage String None False Configures an image to add to notifications. Path should be specified
SoftwareUpdateNotificationMessage String Software Updates Available. Please update your device to the latest version. False Configures the message for notifications for Software Updates notifications
SoftwareUpdateNotificationButtonText String Update Now 🚀 False Configures the button text for notifications for Software Updates notifications
AppUpdateNotificationMessage String App Updates Available. Please update your apps to the latest version. False Configures the message for notifications for App Updates notifications
AppUpdateNotificationButtonText String Update Now 🚀 False Configures the button text for notifications for App Updates notifications
Mode String Dynamic False Configures the app to show application info for either Munki, Intune or to use System profiler for app info. The app tries to dynamically detect which mode to use. See info below. Available modes are Munki, Intune and SystemProfiler.
LogFolders Array /Library/Logs/Microsoft False Configures the log folders to gather logs from. Only used when gathering logs.
Actions Array None False Configures custom actions to add to the tray menu and in Self Service view. If Description is configured it will show in the Self Service view and if IsPrivileged is set to true the action will be run by the privileged helper. See example below.
ShowDesktopInfo Bool False False Configures whether to show information on the desktop.
DesktopInfoWindowPosition String LowerRight False Configures the position of the desktop info, available positions are: UpperLeft, UpperRight, LowerLeft, LowerRight
DesktopInfoLevel Integer 4 False Configures the level of information to show on the desktop, available levels are: 1, 2, 3, 4, 5
DesktopInfoHideItems Array None False Use this array to determine which information to hide. Available items are: HostName, Model, SerialNumber, Processor, IPAddress, Memory, OSBuild, OSVersion, LastRestart, FileVault, StorageName, SupportPhone, SupportEmail, Category, Divider. It is also possible to hide entire sections, Hardware Specifications, System Information, Network Information, Storage, Support.
DesktopInfoBackgroundOpacity Real 0.001 False Configures the background opacity for the desktop info. Configure a value between 1.0 - 0.1
DesktopInfoFontSize Integer 14 False Configures the font size for the desktop info.
DesktopInfoBackgroundFrosted Bool False False Enables a frosted glass look on the desktop info when set to true
CustomCardPath String None False Configures a path to a JSON file containing custom widgets to show on the Home view. An example script can be found here
KnowledgeBaseUrl String None False If configured, a menu item "Knowledge base" will show up where the user can browse the page from the UI.
MenuShowIdentity Bool True False Configures whether to show the Identity menu item.
MenuShowApps Bool True False Configures whether to show the Apps menu item.
MenuShowSelfService Bool True False Configures whether to show the Self Service menu item.
MenuShowCompanyPortal Bool True False Configures whether to show the Company Portal menu item.
MenuShowKnowledgeBase Bool True False Configures whether to show the Knowledge Base menu item.
ShowLogoInTrayMenu Bool True False Hides the configured brand logo in the tray menu when set to false.
MarkdownFilePath String None False Configure a path to a Markdown file to show in the menu.
MarkdownMenuLabel String None False Configure the menu label for the custom Markdown view.
MarkdownMenuIcon String None False Configure the icon for the custom Markdown menu item.
CustomCardsMenuLabel String None False Configure the menu label for the custom cards view.
CustomCardsMenuIcon String None False Configure the icon for the custom cards menu item.
RequirePrivilegedActionAuthentication Bool True False When set to false, disabled authentication requirement when running privileged actions via CLI.
EnableElevation Bool False False When set to true allows the user to elevate to admin during a set time frame.
RequireResonForElevation True False Requires the user to enter a reason for the elevation.
ReasonMinLength Integer 10 False Set a minimum amount of characters the user must enter as the reason.
MaxElevationTime Integer 5 False The amount of time (in minutes) the user is elevated.
ElevationWebhookUrl String None False When configured, sends the entered elevation reason to a webhook instead of saving to disk.
ShowElevateTrayCard Bool True False Configure wether to show the elevate button in the tray menu or not.
ElevationSeverity Integer 6 False Configure the elevation severity. Defaults to 6 (Informational).

Mode Detection

The app will automatically detect and set its operational mode at startup based on the following conditions:

  • Munki Mode: If both Company Portal and Managed Software Center are present, or only Managed Software Center is present.
  • Intune Mode: If only Company Portal is present and device is enrolled to a MDM with the url "i.manage.microsoft.com".
  • SystemProfiler Mode: If neither Company Portal nor Managed Software Center is present.

Desktop info configuration

Customize the information displayed on the desktop:

  • DesktopInfoLevel: Controls the amount of detail (1-5).
    • 1: Hardware Specifications
    • 2: Hardware Specifications, Network Information
    • 3: Hardware Specifications, Network Information, System Information
    • 4: Hardware Specifications, Network Information, System Information, Storage
    • 5: Hardware Specifications, Network Information, System Information, Storage, Support
  • DesktopInfoHideItems: Specifies which items to hide (e.g., IPAddress). It also also possible to hide entire sections. For example, if DesktopInfoLevel is set to 5, you can hide Network Information and show the rest of the categories. This allows for ultimate flexibility.
  • DesktopInfoFontSize: Adjusts the font size.

A note on icons

When configuring icons for custom widgets or actions, the icon name should be a SF Symbols name. For example questionmark.


Example Configuration

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>PayloadContent</key>
	<array>
		<dict>
			<key>Actions</key>
			<array>
				<dict>
					<key>Command</key>
					<string>killall pboard</string>
					<key>Description</key>
					<string>Restarts pasteborad, useful if copy&amp;Paste is not working.</string>
					<key>Icon</key>
					<string>document.on.document.fill</string>
					<key>Name</key>
					<string>Restart clipboard</string>
                                        <key>ButtonLabel</key>
                                        <string>Restart</string>
				</dict>
				<dict>
					<key>Command</key>
					<string>defaults write com.apple.finder AppleShowAllFiles YES &amp;&amp; pkill Finder</string>
					<key>Description</key>
					<string>Shows hidden files in Finder. Will restart Finder once initiated.</string>
					<key>Icon</key>
					<string>eye.fill</string>
					<key>Name</key>
					<string>Show hidden files</string>
				</dict>
				<dict>
					<key>Command</key>
					<string>networksetup -setairportpower en0 off &amp;&amp; sleep 3 &amp;&amp; networksetup -setairportpower en0 on</string>
					<key>Description</key>
					<string>Restarts the WiFi interface to resolve connectivity issues, such as slow speeds, dropped connections, or inability to connect to networks. This action can help refresh the network adapter and clear temporary issues without needing to restart the entire system.</string>
					<key>Icon</key>
					<string>wifi</string>
					<key>Name</key>
					<string>Restart WiFi</string>
				</dict>
				<dict>
					<key>Command</key>
					<string>killall IntuneMdmAgent</string>
					<key>Description</key>
					<string>Restarts Intune MDM Agent. Useful if troubleshooting scripts or app installs from Intune.</string>
					<key>Icon</key>
					<string>app</string>
					<key>IsPrivileged</key>
					<true/>
					<key>Name</key>
					<string>Restart Intune Agent</string>
				</dict>
			</array>
			<key>BrandName</key>
			<string>AwesomeCorp</string>
			<key>DesktopInfoBackgroundOpacity</key>
			<real>0.29999999999999999</real>
			<key>DesktopInfoHideItems</key>
			<array>
				<string>SupportPhone</string>
			</array>
			<key>DesktopInfoLevel</key>
			<integer>5</integer>
			<key>HiddenCards</key>
			<array>
				<string>Evergreen</string>
			</array>
			<key>KnowledgeBaseUrl</key>
			<string>https://github.com/macadmins/supportcompanion</string>
			<key>LogFolders</key>
			<array>
				<string>/Library/Logs</string>
			</array>
			<key>PayloadDisplayName</key>
			<string>FirstApp</string>
			<key>PayloadIdentifier</key>
			<string>SC.9C1EF466-BFEC-462F-930E-38BB9965B21F</string>
			<key>PayloadType</key>
			<string>com.github.macadmins.SupportCompanion</string>
			<key>PayloadUUID</key>
			<string>9C1EF466-BFEC-462F-930E-38BB9965B21F</string>
			<key>PayloadVersion</key>
			<integer>1</integer>
			<key>SupportEmail</key>
			<string>[email protected]</string>
			<key>SupportPhone</key>
			<string>111-222-333</string>
		</dict>
	</array>
	<key>PayloadDisplayName</key>
	<string>SupportCompanion</string>
	<key>PayloadIdentifier</key>
	<string>5.A2283B66-D43C-48FF-BD1D-CE0EBB4CCA22</string>
	<key>PayloadType</key>
	<string>Configuration</string>
	<key>PayloadUUID</key>
	<string>A2283B66-D43C-48FF-BD1D-CE0EBB4CCA22</string>
	<key>PayloadVersion</key>
	<integer>1</integer>
</dict>
</plist>