diff --git a/bin/omarchy-install-vscode b/bin/omarchy-install-vscode index 644a8eb7..9ac4cd5a 100755 --- a/bin/omarchy-install-vscode +++ b/bin/omarchy-install-vscode @@ -3,7 +3,7 @@ echo "Installing VSCode..." omarchy-pkg-add visual-studio-code-bin -mkdir -p ~/.vscode +mkdir -p ~/.vscode ~/.config/Code/User cat > ~/.vscode/argv.json << 'EOF' // This configuration file allows you to pass permanent command line arguments to VS Code. diff --git a/migrations/1760974946.sh b/migrations/1760974946.sh new file mode 100644 index 00000000..ef800abc --- /dev/null +++ b/migrations/1760974946.sh @@ -0,0 +1,21 @@ +echo "Turn off VSCode's own auto-update feature (we rely on pacman)" + +# Note: We cannot use `jq` to update settings.json because it’s JSONC (allows comments), +# which jq doesn’t support. + +VS_CODE_SETTINGS="$HOME/.config/Code/User/settings.json" + +# If VSCode is installed, ensure that the "update.mode" setting is set to "none" +if omarchy-cmd-present code; then + mkdir -p "$(dirname "$VS_CODE_SETTINGS")" + + if [[ ! -f "$VS_CODE_SETTINGS" ]]; then + # If settings.json doesn't exist, create it with just the update.mode setting + printf '{\n "update.mode": "none"\n}\n' > "$VS_CODE_SETTINGS" + elif ! grep -q '"update.mode"' "$VS_CODE_SETTINGS"; then + # Insert "update.mode": "none", immediately after the first "{" + # Use sed's first-match range (0,/{/) to only replace the first "{ + sed -i --follow-symlinks -E '0,/\{/{s/\{/{\ + "update.mode": "none",/}' "$VS_CODE_SETTINGS" + fi +fi