Skip to content

Instantly share code, notes, and snippets.

@opragel
Created March 28, 2016 04:42
Show Gist options
  • Save opragel/324bb2c4b5885761ac65 to your computer and use it in GitHub Desktop.
Save opragel/324bb2c4b5885761ac65 to your computer and use it in GitHub Desktop.
add_vpn_to_menu_and_enable_show_time.sh
#!/bin/bash
# Script adds the VPN item to the menu bar and enables the 'show time
# connected' & 'show status while connecting' options. Last tested on 10.11
currentUser=$(python -c 'from SystemConfiguration import SCDynamicStoreCopyConsoleUser; import sys; username = (SCDynamicStoreCopyConsoleUser(None, None, None) or [None])[0]; username = [username,""][username in [u"loginwindow", None, u""]]; sys.stdout.write(username + "\n");')
currentUserHomeDirectory=$(dscl . -read "/users/$currentUser" NFSHomeDirectory | cut -d " " -f 2)
vpnMenuItemExists=$(defaults read "$currentUserHomeDirectory/Library/Preferences/com.apple.systemuiserver" menuExtras | grep -o VPN)
if [ "$vpnMenuItemExists" ]; then
printf "VPN menu item is already on the status bar!"
else
sudo -u "$currentUser" defaults write "$currentUserHomeDirectory/Library/Preferences/com.apple.systemuiserver" menuExtras -array-add "/System/Library/CoreServices/Menu Extras/VPN.menu"
fi
sudo -u "$currentUser" defaults write "$currentUserHomeDirectory/Library/Preferences/com.apple.networkConnect" VPNShowStatus -bool true
sudo -u "$currentUser" defaults write "$currentUserHomeDirectory/Preferences/com.apple.networkConnect" VPNShowTime -bool true
killall SystemUIServer
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment