Created
March 12, 2026 07:04
-
-
Save hexxt-git/af4692796417022beb447bd62a11f68a to your computer and use it in GitHub Desktop.
A script that resets the CrossOver trial period on macOS, allowing you to continue using it beyond the 14-day window.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/bin/bash | |
| # --- Paths --- | |
| PLIST_DOMAIN="com.codeweavers.CrossOver" | |
| PLIST_PATH="$HOME/Library/Preferences/com.codeweavers.CrossOver.plist" | |
| BOTTLES_DIR="$HOME/Library/Application Support/CrossOver/bottles" | |
| echo "--- CrossOver Maintenance Started ---" | |
| # 1. Safely stop CrossOver | |
| if pgrep -x "CrossOver" > /dev/null; then | |
| echo "Closing CrossOver..." | |
| killall "CrossOver" | |
| else | |
| echo "CrossOver is already closed." | |
| fi | |
| # 2. Reset the 14-day trial timestamp in the plist | |
| if [ -f "$PLIST_PATH" ]; then | |
| YESTERDAY=$(date -v-1d +"%Y-%m-%d %H:%M:%S +0000") | |
| defaults write "$PLIST_DOMAIN" FirstRunDate -date "$YESTERDAY" | |
| echo "✅ Trial date reset to: $YESTERDAY" | |
| else | |
| echo "⚠️ Global plist not found. Skipping trial date reset." | |
| fi | |
| # 3. Clean the expired registry block with feedback | |
| if [ -d "$BOTTLES_DIR" ]; then | |
| find "$BOTTLES_DIR" -name "system.reg" | while read -r reg_file; do | |
| bottle_name=$(basename "$(dirname "$reg_file")") | |
| # Check if the pattern exists before trying to replace it | |
| if grep -qi "\[Software\\\\CodeWeavers\\\\CrossOver\\\\cxoffice\]" "$reg_file"; then | |
| # Perform the multi-line deletion | |
| perl -i -0777 -pe 's/^\[Software\\+CodeWeavers\\+CrossOver\\+cxoffice\].*?(\n\n|(?=\n\[)|$)/ /gmi' "$reg_file" | |
| echo "✅ Cleaned expiration block from bottle: $bottle_name" | |
| else | |
| echo "ℹ️ Bottle \"$bottle_name\" is already clean." | |
| fi | |
| done | |
| else | |
| echo "⚠️ Bottles directory not found. Skipping registry cleaning." | |
| fi | |
| echo "--- Maintenance Complete ---" |
I can run program now but have this message
This is an evaluation version of CrossOver, and this bottle expired 41 days ago. Please purchase a license to use this bottle. Contact sales@codeweavers.com for further assistance.
any way to fix ?
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
This works great, just had to change the grep to include more escape characters on my machine
if grep -qi "\[Software\\\\\\\\CodeWeavers\\\\\\\\CrossOver\\\\\\\\cxoffice\]" "$reg_file"; thenAlso my bottles directory was capitalized