Skip to content

Instantly share code, notes, and snippets.

@andriilive
Forked from thoaster/reset.sh
Last active May 17, 2024 15:48
Show Gist options
  • Save andriilive/eee0d63279347a55c15dd0442f6b3f12 to your computer and use it in GitHub Desktop.
Save andriilive/eee0d63279347a55c15dd0442f6b3f12 to your computer and use it in GitHub Desktop.
Transmit 5 Trial Reset

Transmit5 Never Ending Trial + free iCloud Sync (MacOS)

image

Transmit5 Brew install

Install transmit 5 with brew brew cask install transmit

Transmit5 iCloud Settings Sync ☁️

Keep your settings and server configurations backed up and synced between your Macs on Trial version, without an active license

  • Works with the free trial version of Transmit 5 (the copies without a license)
  • Stores all your Server configurations to iCloud Drive
  • Uses only native macOS features (SymLinks / iCloud)
  • Implements with a single terminal command

Setting up iCloud Sync for free Transmit5 trial version

  1. Move the settings folder to iCloud Drive
  2. Create a symlink from iCloud settings folder to the original location

Terminal way:

# kill Transmit app
killall Transmit

# create the iCloud symlink at your home directory
cd ~ && ln -s "$HOME/Library/Mobile Documents/com~apple~CloudDocs" iCloud

# create iCloud Transmit settings folder
mkdir -p "$HOME/iCloud/dotenv"

# set the Transmit settings folder paths
TR_ICLOUD_SETTINGS_FOLDER="$HOME/iCloud/dotenv/Transmit"
TP_SETTINGS_FOLDER="$HOME/Library/Application Support/Transmit"

# backup Transmit 5 settings folder and move to iCloud
mv "$TP_SETTINGS_FOLDER" "$TR_ICLOUD_SETTINGS_FOLDER"

# create symlink from iCloud Transmit folder to the original location
ln -s "$TR_ICLOUD_SETTINGS_FOLDER" "$TP_SETTINGS_FOLDER"

Transmit5 Trial Reset (Script) ☠️

Original Trial Reset

#!/bin/sh
# Reset Transmit 5 Trial
# curl -fsSL https://gist.githubusercontent.com/thoaster/ca5b4fdb653b9cdb3930897045b78558/raw/reset.sh | bash

set +e
set -x

sudo rm -rf ~/Library/Caches/com.panic.Transmit
sudo rm -rf ~/Library/Application\ Support/com.panic.Transmit
sudo rm ~/Library/Preferences/com.panic.Transmit.plist
sudo killall cfprefsd

defaults write com.panic.Transmit SUSendProfileInfo -bool NO
defaults write com.panic.Transmit SUEnableAutomaticChecks -bool YES
defaults write com.panic.Transmit ShowHiddenFiles -bool YES
defaults write com.panic.Transmit DoubleClickAction -int 3

open -b com.panic.Transmit

Extended reset.sh, supporting logging, remote run with args and apple shortcuts

# reset.sh arguments:
# $config $launch $debug $shortcut

# Shortcuts environment (disabled colors, debug, no-launch)
curl -fsSL https://gist.githubusercontent.com/andriilive/eee0d63279347a55c15dd0442f6b3f12/raw/reset.sh | sudo bash -s -- true false true true

# Terminal (colors, debug)
curl -fsSL https://gist.githubusercontent.com/andriilive/eee0d63279347a55c15dd0442f6b3f12/raw/reset.sh | sudo bash -s -- true false true true

See exported settings plist: com.panic.Transmit.plist


Transmit5 Trial Reset (Apple Shortcut) ▶️

New Apple Shortcuts app seems to be a really cosy place to store and organise tweaks & code snippets like this keeping them easy to share with friends 😃

See the shortcut example 👉🏻 Transmit 5 Cleaner Shortcut.shortcut

CleanShot 2023-05-10 at 08 09 09@2x

Automating the Apple shortcut execution example:

  1. Go to shortcuts app and press add shortcut to dock, this will create the Application from a shortcut
  2. Find the new generated app at ~/Applications/Transmit 5 TrialReset
  3. Drag your app to user's login items

2023-03-18 08 31 09

Usefull links 🔗

<?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>DoubleClickAction</key>
<integer>2</integer>
<key>EditorDisplayFont</key>
<data>
YnBsaXN0MDDUAQIDBAUGBwpYJHZlcnNpb25ZJGFyY2hpdmVyVCR0b3BYJG9iamVjdHMS
AAGGoF8QD05TS2V5ZWRBcmNoaXZlctEICVRyb290gAGkCwwVFlUkbnVsbNQNDg8QERIT
FFZOU1NpemVYTlNmRmxhZ3NWTlNOYW1lViRjbGFzcyNAJgAAAAAAABAQgAKAA11NZW5s
by1SZWd1bGFy0hcYGRpaJGNsYXNzbmFtZVgkY2xhc3Nlc1ZOU0ZvbnSiGRtYTlNPYmpl
Y3QIERokKTI3SUxRU1heZ253foWOkJKUoqeyu8LFAAAAAAAAAQEAAAAAAAAAHAAAAAAA
AAAAAAAAAAAAAM4=
</data>
<key>LastShownPrefPaneSize</key>
<string>{348, 480}</string>
<key>LeftSplitWidth</key>
<real>445</real>
<key>MSAppCenter310AnalyticsUserDefaultsMigratedKey</key>
<true/>
<key>MSAppCenter310AppCenterUserDefaultsMigratedKey</key>
<true/>
<key>MSAppCenter310CrashesUserDefaultsMigratedKey</key>
<true/>
<key>MSAppCenterInstallId</key>
<string>7C7E9604-D157-4494-9794-5400C79B53C8</string>
<key>MSAppCenterPastDevices</key>
<data>
YnBsaXN0MDDUAQIDBAUGBwpYJHZlcnNpb25ZJGFyY2hpdmVyVCR0b3BYJG9iamVjdHMS
AAGGoF8QD05TS2V5ZWRBcmNoaXZlctEICVRyb290gAGvEBYLDBIYHCJQUVJTVFVWV1hZ
WltcXWJnVSRudWxs0g0ODxFaTlMub2JqZWN0c1YkY2xhc3OhEIACgBXTExQOFRYXXHRp
bWVzdGFtcEtleVlkZXZpY2VLZXmAA4AFgBTSGQ4aG1dOUy50aW1lI0HFBbQ0ILP2gATS
HR4fIFokY2xhc3NuYW1lWCRjbGFzc2VzVk5TRGF0ZaIfIVhOU09iamVjdN8QFyMkJSYO
JygpKissLS4vMDEyMzQ1Njc4OTo7PD0+PDxBQjw8PDxHSElKPDxNTk9Zb3NWZXJzaW9u
XnRpbWVab25lT2Zmc2V0WGFwcEJ1aWxkXxAVbGl2ZVVwZGF0ZVBhY2thZ2VIYXNoWmFw
cFZlcnNpb25fEBF3cmFwcGVyU2RrVmVyc2lvbltjYXJyaWVyTmFtZVdzZGtOYW1lVmxv
Y2FsZV8QF2xpdmVVcGRhdGVEZXBsb3ltZW50S2V5XmNhcnJpZXJDb3VudHJ5Wm9zQXBp
TGV2ZWxed3JhcHBlclNka05hbWVXb2VtTmFtZVpzZGtWZXJzaW9uXGFwcE5hbWVzcGFj
ZVVtb2RlbF8QFXdyYXBwZXJSdW50aW1lVmVyc2lvbl8QFmxpdmVVcGRhdGVSZWxlYXNl
TGFiZWxac2NyZWVuU2l6ZVZvc05hbWVXb3NCdWlsZIALgA6AEYAAgBOAEIAAgACABoAN
gACAAIAAgACACYAHgBKACIAAgACAD4AKgAxfEA9hcHBjZW50ZXIubWFjb3NVNS4wLjBe
TWFjQm9va1BybzE4LDNVQXBwbGVVbWFjT1NWMTMuMy4xVjIyRTI2MVVlbl9DWhB4WTE4
MDB4MTE2OVU1LjkuMlY1MDI4NjZfEBJjb20ucGFuaWMuVHJhbnNtaXTSHR5eX1pNU0FD
RGV2aWNlo2BhIVpNU0FDRGV2aWNlXk1TQUNXcmFwcGVyU2Rr0h0eY2RfEBVNU0FDRGV2
aWNlSGlzdG9yeUluZm+jZWYhXxAVTVNBQ0RldmljZUhpc3RvcnlJbmZvXxAPTVNBQ0hp
c3RvcnlJbmZv0h0eaGleTlNNdXRhYmxlQXJyYXmjaGohV05TQXJyYXkACAARABoAJAAp
ADIANwBJAEwAUQBTAGwAcgB3AIIAiQCLAI0AjwCWAKMArQCvALEAswC4AMAAyQDLANAA
2wDkAOsA7gD3ASgBMgFBAUoBYgFtAYEBjQGVAZwBtgHFAdAB3wHnAfIB/wIFAh0CNgJB
AkgCUAJSAlQCVgJYAloCXAJeAmACYgJkAmYCaAJqAmwCbgJwAnICdAJ2AngCegJ8An4C
kAKWAqUCqwKxArgCvwLFAscC0QLXAt4C8wL4AwMDBwMSAyEDJgM+A0IDWgNsA3EDgAOE
AAAAAAAAAgEAAAAAAAAAawAAAAAAAAAAAAAAAAAAA4w=
</data>
<key>MSAppCenterSessionIdHistory</key>
<data>
YnBsaXN0MDDUAQIDBAUGBwpYJHZlcnNpb25ZJGFyY2hpdmVyVCR0b3BYJG9iamVjdHMS
AAGGoF8QD05TS2V5ZWRBcmNoaXZlctEICVRyb290gAGoCwwSGBwiIyhVJG51bGzSDQ4P
EVpOUy5vYmplY3RzViRjbGFzc6EQgAKAB9MTFA4VFhdcdGltZXN0YW1wS2V5XHNlc3Np
b25JZEtleYADgAWABtIZDhobV05TLnRpbWUjQcUFtDQhBcCABNIdHh8gWiRjbGFzc25h
bWVYJGNsYXNzZXNWTlNEYXRloh8hWE5TT2JqZWN0XxAkQTNFODJGQUYtQzFGMC00OTBC
LUI1NjQtNTkwOEFCNjI5OTFF0h0eJCVfEBZNU0FDU2Vzc2lvbkhpc3RvcnlJbmZvoyYn
IV8QFk1TQUNTZXNzaW9uSGlzdG9yeUluZm9fEA9NU0FDSGlzdG9yeUluZm/SHR4pKl5O
U011dGFibGVBcnJheaMpKyFXTlNBcnJheQAIABEAGgAkACkAMgA3AEkATABRAFMAXABi
AGcAcgB5AHsAfQB/AIYAkwCgAKIApACmAKsAswC8AL4AwwDOANcA3gDhAOoBEQEWAS8B
MwFMAV4BYwFyAXYAAAAAAAACAQAAAAAAAAAsAAAAAAAAAAAAAAAAAAABfg==
</data>
<key>MSAppCenterUserIdHistory</key>
<data>
YnBsaXN0MDDUAQIDBAUGBwpYJHZlcnNpb25ZJGFyY2hpdmVyVCR0b3BYJG9iamVjdHMS
AAGGoF8QD05TS2V5ZWRBcmNoaXZlctEICVRyb290gAGnCwwSGBwiJ1UkbnVsbNINDg8R
Wk5TLm9iamVjdHNWJGNsYXNzoRCAAoAG0xMUDhUWF1x0aW1lc3RhbXBLZXlZdXNlcklk
S2V5gAOAAIAF0hkOGhtXTlMudGltZSNBxQW0NB9h1IAE0h0eHyBaJGNsYXNzbmFtZVgk
Y2xhc3Nlc1ZOU0RhdGWiHyFYTlNPYmplY3TSHR4jJF8QFU1TQUNVc2VySWRIaXN0b3J5
SW5mb6MlJiFfEBVNU0FDVXNlcklkSGlzdG9yeUluZm9fEA9NU0FDSGlzdG9yeUluZm/S
HR4oKV5OU011dGFibGVBcnJheaMoKiFXTlNBcnJheQAIABEAGgAkACkAMgA3AEkATABR
AFMAWwBhAGYAcQB4AHoAfAB+AIUAkgCcAJ4AoACiAKcArwC4ALoAvwDKANMA2gDdAOYA
6wEDAQcBHwExATYBRQFJAAAAAAAAAgEAAAAAAAAAKwAAAAAAAAAAAAAAAAAAAVE=
</data>
<key>NSFixedPitchFont</key>
<string>Menlo-Regular</string>
<key>NSFixedPitchFontSize</key>
<string>11</string>
<key>NSTableView Columns v3 LocalOutlineViewAutosaveName</key>
<data>
YnBsaXN0MDDUAQIDBAUGBwpYJHZlcnNpb25ZJGFyY2hpdmVyVCR0b3BYJG9iamVjdHMS
AAGGoF8QD05TS2V5ZWRBcmNoaXZlctEICVVBcnJheYABrxARCwwUHyAhIiMkJSs1NjdB
QkNVJG51bGzSDQ4PE1pOUy5vYmplY3RzViRjbGFzc6MQERKAAoAKgA2AENMVDQ4WGh5X
TlMua2V5c6MXGBmAA4AEgAWjGxwdgAaAB4AIgAlaSWRlbnRpZmllclVXaWR0aFZIaWRk
ZW5UTmFtZSNAbCAAAAAAAAjSJicoKVokY2xhc3NuYW1lWCRjbGFzc2VzXE5TRGljdGlv
bmFyeaIoKlhOU09iamVjdNMVDQ4sMB6jFxgZgAOABIAFozEyHYALgAyACIAJVFNpemUj
QFAAAAAAAADTFQ0OODweoxcYGYADgASABaM9Ph2ADoAPgAiACVREYXRlI0BdgAAAAAAA
0iYnREVeTlNNdXRhYmxlQXJyYXmjREYqV05TQXJyYXkACAARABoAJAApADIANwBJAEwA
UgBUAGgAbgBzAH4AhQCJAIsAjQCPAJEAmACgAKQApgCoAKoArgCwALIAtAC2AMEAxwDO
ANMA3ADdAOIA7QD2AQMBBgEPARYBGgEcAR4BIAEkASYBKAEqASwBMQE6AUEBRQFHAUkB
SwFPAVEBUwFVAVcBXAFlAWoBeQF9AAAAAAAAAgEAAAAAAAAARwAAAAAAAAAAAAAAAAAA
AYU=
</data>
<key>NSTableView Sort Ordering v2 LocalOutlineViewAutosaveName</key>
<data>
YnBsaXN0MDDUAQIDBAUGBwpYJHZlcnNpb25ZJGFyY2hpdmVyVCR0b3BYJG9iamVjdHMS
AAGGoF8QD05TS2V5ZWRBcmNoaXZlctEICVVBcnJheYABowsMEVUkbnVsbNINDg8QWk5T
Lm9iamVjdHNWJGNsYXNzoIAC0hITFBVaJGNsYXNzbmFtZVgkY2xhc3Nlc15OU011dGFi
bGVBcnJheaMUFhdXTlNBcnJheVhOU09iamVjdAgRGiQpMjdJTFJUWF5jbnV2eH2IkaCk
rAAAAAAAAAEBAAAAAAAAABgAAAAAAAAAAAAAAAAAAAC1
</data>
<key>NSTableView Supports v2 LocalOutlineViewAutosaveName</key>
<true/>
<key>NSToolbar Configuration TransmitToolbar5</key>
<dict>
<key>TB Display Mode</key>
<integer>2</integer>
<key>TB Icon Size Mode</key>
<integer>1</integer>
<key>TB Is Shown</key>
<true/>
<key>TB Size Mode</key>
<integer>1</integer>
</dict>
<key>NSWindowAssertWhenDisplayCycleLimitReached</key>
<false/>
<key>PreferencesVersion</key>
<string>5.9.2</string>
<key>SUAutomaticallyUpdate</key>
<false/>
<key>SUEnableAutomaticChecks</key>
<true/>
<key>SUHasLaunchedBefore</key>
<true/>
<key>SULastCheckTime</key>
<date>2023-05-10T05:51:36Z</date>
<key>SULastProfileSubmissionDate</key>
<date>2023-05-10T07:51:35Z</date>
<key>SUSendProfileInfo</key>
<true/>
<key>ServerSpecificPrefs</key>
<array>
<dict>
<key>AllowsDSStoreUpload</key>
<false/>
<key>CharacterCompositionType</key>
<integer>0</integer>
<key>ConnectionTimeout</key>
<integer>120</integer>
<key>FTPUNIXParserNameDateSpacing</key>
<integer>0</integer>
<key>KeepTransferConnectionsAlive</key>
<false/>
<key>MaximumTLSVersion</key>
<integer>2</integer>
<key>RemoteHost</key>
<string>--$$ServerSpecificDefaultHost$$--</string>
<key>ServerType</key>
<integer>0</integer>
<key>StringEncoding</key>
<integer>4294967295</integer>
<key>UseCCCCommand</key>
<false/>
<key>UseFEATCommand</key>
<true/>
<key>UseMLSTCommand</key>
<true/>
<key>UsePRETCommand</key>
<false/>
<key>UseTLSv12</key>
<true/>
<key>WarnOnConflict</key>
<true/>
</dict>
</array>
<key>ShowHiddenFiles</key>
<true/>
<key>ShowTheirStuffDateColumn</key>
<true/>
<key>ShowTheirStuffSizeColumn</key>
<true/>
<key>ShowYourStuffDateColumn</key>
<true/>
<key>ShowYourStuffSizeColumn</key>
<true/>
<key>SuppressAppleScriptDialogs</key>
<false/>
<key>SyncCursorData</key>
<data>
YnBsaXN0MDDUAQIDBAUGBwxYJHZlcnNpb25ZJGFyY2hpdmVyVCR0b3BYJG9iamVjdHMS
AAGGoF8QD05TS2V5ZWRBcmNoaXZlctIICQoLXxAPTWF4aW11bUxpc3RTaXplXxAXU2Vj
dXJpdHlVcGRhdGVDaGVja0RhdGUQAYABow0OE1UkbnVsbNIPEBESV05TLnRpbWVWJGNs
YXNzI0HFBbQz9ixvgALSFBUWF1okY2xhc3NuYW1lWCRjbGFzc2VzVk5TRGF0ZaIWGFhO
U09iamVjdAgRGiQpMjdJTmB6fH6CiI2VnKWnrLfAx8oAAAAAAAABAQAAAAAAAAAZAAAA
AAAAAAAAAAAAAAAA0w==
</data>
<key>right.servers.group.idenfier</key>
<string>3C438E68-9E5C-45AE-9372-2DA851073514</string>
</dict>
</plist>
#!/bin/bash
# Transmit 5 Trial Reset Script & Apple Shortcut
# Gist https://gist.github.com/andriilive/eee0d63279347a55c15dd0442f6b3f12
# Forked from https://gist.github.com/thoaster/ca5b4fdb653b9cdb3930897045b78558
# PARAMS
tr_need_config="${1:-true}"
tr_need_launch="${2:-true}"
tr_need_debug="${3:-true}"
tr_is_shortcut="${4:-false}"
# shellcheck disable=SC2034
c_red='\033[0;31m' c_white='\033[0;37m' c_yellow='\033[0;33m' c_green='\033[0;32m' c_stop='\033[0m' c_gray='\033[0;37m'
tr_process_name="com.panic.Transmit"
tr_script_version="5.0"
# Apple Shortcut
if [[ $tr_is_shortcut = true ]]; then
# Apple Shortcut doesn't have $HOME variable, so we need to set it manually
HOME=$PWD
dd "HOME is $HOME"
fi
dd(){ if [[ $tr_need_debug = true ]];
then for ddString in "${@}"; do echo -e "$ddString"; done
fi }
ddSection() {
line="------------------------"
[[ $tr_is_shortcut = false ]] && line="${c_gray}$line${c_stop}"
dd "$line";
}
killProcess() {
if pgrep -xq -- "${1}"; then
killall "$1" && echo "Stopping $1..."
fi
}
tr_welcome="Successfully downloaded Transmit 5 Trial Reset Script & Apple Shortcut v${tr_script_version} by @andriilive, launching..."
[[ $tr_is_shortcut = false ]] && tr_welcome="${c_green}$tr_welcome${c_stop}"
tr_welcome="$tr_welcome\nGist source: https://gist.github.com/andriilive/eee0d63279347a55c15dd0442f6b3f12"
dd "$tr_welcome"
dd "Starting 🧹 cleanup..."
ddSection;
# QUIT TRANSMIT
killProcess Transmit
sleep 2
# DELETE TRANSMIT FILES
tr_path_to_clear=("Caches/$tr_process_name" "Application Support/$tr_process_name" "Preferences/$tr_process_name.plist")
for clear_path in "${tr_path_to_clear[@]}"; do
search_clear_path="$HOME/Library/$clear_path"
if [[ -d $search_clear_path ]]; then
rm -rf "$search_clear_path"
dd "Cleaned $search_clear_path/"
elif [[ -f $search_clear_path ]]; then
rm -f "$search_clear_path"
dd "Cleaned $search_clear_path"
else
dd "Missing $search_clear_path"
fi
done
ddSection;
# OPTIONAL
if [[ $tr_need_config = true ]]; then
dd "Applying recommended Transmit settings..."
# read the settings: defaults read com.panic.Transmit
defaults write "$tr_process_name" SUHasLaunchedBefore -bool YES
defaults write "$tr_process_name" SUSendProfileInfo -bool YES
defaults write "$tr_process_name" SUAutomaticallyUpdate -bool NO
defaults write "$tr_process_name" SUEnableAutomaticChecks -bool YES
defaults write "$tr_process_name" ShowHiddenFiles -bool YES
defaults write "$tr_process_name" DoubleClickAction -int 2
defaults write "$tr_process_name" "right.servers.group.idenfier" -string "3C438E68-9E5C-45AE-9372-2DA851073514"
tr_date=$(date +'%Y-%m-%d %H:%M:%S +0000')
defaults write "$tr_process_name" SULastCheckTime -date "$tr_date"
defaults write "$tr_process_name" SULastProfileSubmissionDate -date "$tr_date"
ddSection;
fi
result="Transmit is ready to use!!!"
[[ $tr_is_shortcut = false ]] && result="${c_green}$result${c_stop}"
result="$result 🥳"
if [[ $tr_need_launch = true ]]; then
result="$result Launching the app..."
open -b "$tr_process_name"
fi
echo -e "$result"
exit 0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment