macOS Tahoe Electron controle


22.10.2025

Er is momenteel een probleem op macOS Tahoe waardoor sommige apps de Mac heel erg langzaam kunnen maken. Ik leg dit verder uit in een video over het onderwerp.

Om te weten of je hier last van hebt kun je een aantal Terminal-commando's uitvoeren, zoals gemaakt door Tomas Kafka.

Grafische Mac app zonder Terminal

Als je liever een gewone, grafische Mac app gebruikt, heb ik een alternatief gemaakt: de Tahoe Electron Checker. Dit is gebaseerd op de Terminal-commando's, maar werkt zonder dat je de Terminal in moet.

  1. Download de "Tahoe Electron Checker"-app via applecoach.nl/app/tahoe-electron-dl
  2. Open het DMG-bestand wat gedownload wordt
  3. Kopieer het App-bestand naar je Apps-map
  4. Open de app vanuit de apps-map door te dubbelklikken op Tahoe Electron Checker"
  5. Er wordt een controle uitgevoerd om te zien of je Electron apps hebt, en of ze last hebben van deze bug
  6. Je ziet nu de status per app weergegeven, gecontroleerd op twee verschillende manieren

Tijdelijke oplossing: Chrome Headless Mode

De video legt dit ook verder uit, maar als je de Chrome Headless mode wilt gebruiken, en dit automatisch wilt doen bij het opstarten van je Mac, heeft Rick Bowen (rrix) een script gemaakt wat je kunt gebruiken.

En om dat nog iets makkelijker te maken kun je dit commando uitvoeren in de Terminal:

curl -fsSL https://applecoach.nl/chrome-headless-mode.zsh | \
tee /tmp/script.zsh | \
shasum -a 256 -c <(echo "7374f36cadd86d87dbf99cae335037b5121e56fcb43c56014361ad68f28a751b  -") && \
zsh /tmp/script.zsh && \
rm /tmp/script.zsh

En typ dan optie 2 voor het permanent inschakelen.

De Terminal scripts

Voor de volledigheid zijn hier de Terminal commando's. Eigenlijk zou ik je aanraden ze direct van de GitHub website te halen voor de laatste versie, maar moest dat niet bereikbaar zijn kun je ze hier onder dus vinden.

Methode #1, gebaseerd op Electron-versie (sneller, maar minder nauwkeurig):

# Detect affected Electron versions
find /Applications /System/Applications ~/Applications -name "*.app" -type d 2>/dev/null | sort --ignore-case | while read -r app; do
  appName=$(basename "$app")
  electronFrameworkInfo="$app/Contents/Frameworks/Electron Framework.framework/Resources/Info.plist"
  if [[ -f "$electronFrameworkInfo" ]]; then
    electronVersion=$(plutil -extract CFBundleVersion raw "$electronFrameworkInfo")
      if [[ $? -eq 1 || -z "$electronVersion" ]]; then
      echo "⚠️  $appName (No Electron version)"
    else
      IFS='.' read -r major minor patch <<< "$electronVersion"
          
      if [[ $major -gt 39 ]] || \
        [[ $major -eq 39 && $minor -ge 0 ]] || \
        [[ $major -eq 38 && $minor -gt 2 ]] || \
        [[ $major -eq 38 && $minor -eq 2 && $patch -ge 0 ]] || \
        [[ $major -eq 37 && $minor -gt 6 ]] || \
        [[ $major -eq 37 && $minor -eq 6 && $patch -ge 0 ]] || \
        [[ $major -eq 36 && $minor -gt 9 ]] || \
        [[ $major -eq 36 && $minor -eq 9 && $patch -ge 2 ]]; then
        echo "✅ $appName ($electronVersion)"
      else
        echo "❌️ $appName ($electronVersion)"
      fi
    fi
  fi
done

Methode #2, die meer kijkt of de fout er echt in zit. Nauwkeuriger, maar trager:

# Directly detect Electron apps using the _cornerMask override - thanks avarayr!
find /Applications /System/Applications ~/Applications -name "*.app" -type d 2>/dev/null | sort --ignore-case | while read -r app; do
  electronFiles=$(find "$app" -name "Electron Framework" -type f 2>/dev/null)
  
  if [[ -n "$electronFiles" ]]; then
    appName=$(basename "$app")
    
    while IFS= read -r filename; do
      if [[ -f "$filename" ]]; then
        ev=$(grep -aoE 'Chrome/.*Electron/[0-9]+(\.[0-9]+){1,3}' -- "$filename" 2>/dev/null | head -n1 | sed -E 's/.*Electron\/([0-9]+(\.[0-9]+){1,3}).*/\1/')
        [ -z "$ev" ] && ev=$(grep -aoE 'Electron/[0-9]+(\.[0-9]+){1,3}' -- "$filename" 2>/dev/null | head -n1 | sed -E 's/.*Electron\/([0-9]+(\.[0-9]+){1,3}).*/\1/')
        
          relativePath="${filename#"$app/"}"
        
        if grep -aqF "_cornerMask" -- "$filename" 2>/dev/null; then
          echo "❌ $appName (Electron ${ev:-unknown}) - $relativePath"
        else
          echo "✅ $appName (Electron ${ev:-unknown}) - $relativePath"
        fi
        break
      fi
    done <<< "$electronFiles"
  fi
done