diff --git a/.claude/worktrees/lucid-kalam b/.claude/worktrees/lucid-kalam deleted file mode 160000 index 8ad85e1..0000000 --- a/.claude/worktrees/lucid-kalam +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 8ad85e13eff06ab28336d4b162db2b84c87755d4 diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml new file mode 100644 index 0000000..c0ae668 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -0,0 +1,103 @@ +name: Bug report +description: Report a problem with Browser Switch behavior +title: "Bug: " +labels: + - bug +body: + - type: markdown + attributes: + value: | + Thanks for reporting a bug. + + Please include enough detail to reproduce the issue on macOS 14+ and describe what you expected to happen. + + - type: input + id: app_version + attributes: + label: Browser Switch version + description: Use the About panel version/build if available. + placeholder: "e.g. 1.2.3 (Build abc1234)" + validations: + required: true + + - type: input + id: macos_version + attributes: + label: macOS version + description: Browser Switch targets macOS 14+. + placeholder: "e.g. macOS 14.7.2 (Sonoma)" + validations: + required: true + + - type: dropdown + id: install_method + attributes: + label: How did you install or run Browser Switch? + options: + - GitHub Releases app build + - scripts/install.sh + - Local source build (swift run) + - Local built app (scripts/build-app.sh) + - Xcode run + - Other + validations: + required: true + + - type: dropdown + id: area + attributes: + label: Which area is affected? + options: + - Browser switching + - Menu bar UI / menu behavior + - Network / VPN context + - Power tools (Option key features) + - Run on Startup / settings + - Packaging / install / launch + - Other + validations: + required: true + + - type: textarea + id: steps_to_reproduce + attributes: + label: Steps to reproduce + description: List exact steps so someone else can reproduce it. + placeholder: | + 1. Launch Browser Switch + 2. Open the menu bar menu + 3. Click ... + 4. Observe ... + validations: + required: true + + - type: textarea + id: expected_behavior + attributes: + label: Expected behavior + validations: + required: true + + - type: textarea + id: actual_behavior + attributes: + label: Actual behavior + validations: + required: true + + - type: textarea + id: logs_or_media + attributes: + label: Logs, screenshots, or recordings (optional) + description: Paste any terminal output or drag in screenshots/screen recordings if helpful. + render: shell + + - type: checkboxes + id: pre_submit_checks + attributes: + label: Before submitting + options: + - label: I searched existing issues for duplicates. + required: true + - label: I checked the README/wiki for setup or usage guidance first. + required: true diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000..bfeca73 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,9 @@ +blank_issues_enabled: true +contact_links: + - name: Documentation and Installation Guide + url: https://github.com/adamabernathy/default-browser/wiki/Installation + about: Start here for install, uninstall, and launch help. + - name: Browser Switch Wiki + url: https://github.com/adamabernathy/default-browser/wiki + about: Review feature, settings, network/VPN, and architecture docs before filing a question. + diff --git a/.github/ISSUE_TEMPLATE/documentation.yml b/.github/ISSUE_TEMPLATE/documentation.yml new file mode 100644 index 0000000..4e93464 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/documentation.yml @@ -0,0 +1,57 @@ +name: Documentation update +description: Report missing, incorrect, or unclear docs +title: "Docs: " +labels: + - documentation +body: + - type: markdown + attributes: + value: | + Use this template for README, wiki, install instructions, or contributor/repo documentation issues. + + - type: dropdown + id: documentation_area + attributes: + label: Documentation area + options: + - README + - Wiki + - Installation instructions + - Contributor docs / templates + - Scripts help text + - Other + validations: + required: true + + - type: input + id: page_or_file + attributes: + label: Page or file (optional) + description: File path or URL if you know it. + placeholder: "e.g. README.md or wiki/Installation.md" + + - type: textarea + id: issue_description + attributes: + label: What is wrong or missing? + description: Be specific about what is confusing, outdated, or incorrect. + validations: + required: true + + - type: textarea + id: suggested_improvement + attributes: + label: Suggested improvement + description: What should the docs say instead? + validations: + required: true + + - type: checkboxes + id: pre_submit_checks + attributes: + label: Before submitting + options: + - label: I checked the README and wiki pages for the answer. + required: true + - label: I searched existing documentation issues. + required: true diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml new file mode 100644 index 0000000..bbdbf24 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -0,0 +1,84 @@ +name: Feature request +description: Propose a new feature or improvement +title: "Feature: " +labels: + - enhancement +body: + - type: markdown + attributes: + value: | + Suggest a feature that improves Browser Switch for real-world daily use. + + Please describe the user problem first, then your proposed solution. Product language is fine; implementation details are optional. + + - type: textarea + id: problem_or_use_case + attributes: + label: Problem or use case + description: What are you trying to do that Browser Switch does not support well today? + placeholder: "When I am switching between work and personal browser contexts..." + validations: + required: true + + - type: textarea + id: proposed_solution + attributes: + label: Proposed solution + description: What behavior or UI would you like to see? + validations: + required: true + + - type: textarea + id: alternatives_considered + attributes: + label: Alternatives considered (optional) + description: Workarounds or other approaches you considered. + + - type: dropdown + id: feature_area + attributes: + label: Feature area + options: + - Browser switching + - Menu bar UI / menu behavior + - Network / VPN context + - Power tools (Option key features) + - Run on Startup / settings + - Build / packaging / installation + - Documentation + - Other + validations: + required: true + + - type: dropdown + id: ui_impact + attributes: + label: Does this change the UI or menu behavior? + options: + - "No" + - "Yes" + - Not sure + validations: + required: true + + - type: textarea + id: success_criteria + attributes: + label: What would success look like? + description: Define the expected outcome (acceptance criteria if you have them). + placeholder: | + - I can ... + - The menu shows ... + - The action completes without opening System Settings + validations: + required: true + + - type: checkboxes + id: pre_submit_checks + attributes: + label: Before submitting + options: + - label: I searched existing issues and feature requests. + required: true + - label: I understand Browser Switch targets macOS 14+. + required: true diff --git a/.github/ISSUE_TEMPLATE/ui_ux.yml b/.github/ISSUE_TEMPLATE/ui_ux.yml new file mode 100644 index 0000000..28f8846 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/ui_ux.yml @@ -0,0 +1,74 @@ +name: UI / UX issue +description: Report a macOS UI, UX, HIG, or accessibility issue +title: "UI/UX: " +labels: + - hig +body: + - type: markdown + attributes: + value: | + Use this template for menu behavior, icons, accessibility, dark mode, alerts, or other macOS UX issues. + + Browser Switch aims to match Apple Human Interface Guidelines and standard macOS menu bar extra behavior. + + - type: dropdown + id: hig_category + attributes: + label: UI / UX category + options: + - Menus / menu structure + - SF Symbols / iconography + - Dark mode / contrast + - Accessibility (VoiceOver, labels, text vs color) + - Alerts / messaging + - About panel / app behavior + - Other + validations: + required: true + + - type: input + id: macos_version + attributes: + label: macOS version + placeholder: "e.g. macOS 15.3" + validations: + required: true + + - type: textarea + id: current_behavior + attributes: + label: Current behavior + description: What does the app do today? + validations: + required: true + + - type: textarea + id: expected_behavior + attributes: + label: Expected behavior + description: What should it do instead to better match native macOS behavior? + validations: + required: true + + - type: textarea + id: hig_reference + attributes: + label: HIG reference (optional) + description: Link the relevant Apple HIG page, or briefly describe which macOS system behavior it should match. + placeholder: "e.g. Apple HIG Menus / SF Symbols, or \"match Wi-Fi/Bluetooth menu behavior\"" + + - type: textarea + id: screenshots_or_examples + attributes: + label: Screenshots or examples (optional) + description: Add screenshots, recordings, or comparisons to system menu bar extras (Wi-Fi, Battery, Bluetooth, etc.). + + - type: checkboxes + id: pre_submit_checks + attributes: + label: Before submitting + options: + - label: I checked existing UI/HIG issues for duplicates. + required: true + - label: I included enough detail to reproduce or evaluate the UX issue. + required: true diff --git a/.github/PULL_REQUEST_TEMPLATE/breaking_change.md b/.github/PULL_REQUEST_TEMPLATE/breaking_change.md deleted file mode 100644 index 0cbd239..0000000 --- a/.github/PULL_REQUEST_TEMPLATE/breaking_change.md +++ /dev/null @@ -1,73 +0,0 @@ ---- -name: πŸ’₯ Breaking Change (Major) -about: Submit a breaking change (version bump: MAJOR) -title: '[major] ' -labels: 'breaking-change, major' -assignees: '' ---- - -## ⚠️ Breaking Change - -## What's Breaking? - - -## Reason for Breaking Change - - -## Migration Path - - -**Before:** -``` - -``` - -**After:** -``` - -``` - -## Implementation - - -## Impact Assessment - - -- [ ] Changes default behavior -- [ ] Removes features -- [ ] Changes menu structure -- [ ] Requires new macOS version -- [ ] Changes data format -- [ ] Other: ___ - -## Testing - - -- [ ] Tested new behavior works correctly -- [ ] Verified breaking changes are intentional -- [ ] Built and ran the app locally -- [ ] Tested upgrade path from previous version - -## Documentation Updates - - -- [ ] Updated README -- [ ] Updated VERSIONING.md -- [ ] Added migration guide -- [ ] Updated inline comments - -## Version Bump -**Type:** MAJOR (e.g., 0.9.0 β†’ 1.0.0) - -This PR will trigger a major version bump when merged. - -⚠️ **Important:** Use `[major]` prefix or `BREAKING CHANGE` in your merge commit to ensure proper version bumping. - -## Additional Context - - -## Checklist for Reviewers -- [ ] Breaking changes are justified -- [ ] Migration path is clear -- [ ] Documentation is updated -- [ ] All tests pass diff --git a/.github/PULL_REQUEST_TEMPLATE/bug_fix.md b/.github/PULL_REQUEST_TEMPLATE/bug_fix.md deleted file mode 100644 index a071755..0000000 --- a/.github/PULL_REQUEST_TEMPLATE/bug_fix.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -name: πŸ› Bug Fix (Patch) -about: Submit a bug fix (version bump: PATCH) -title: 'fix: ' -labels: 'bug, patch' -assignees: '' ---- - -## Bug Description - - -## Root Cause - - -## Solution - - -## Testing - - -- [ ] Reproduced the bug before the fix -- [ ] Verified the fix resolves the issue -- [ ] Tested related functionality still works -- [ ] Built and ran the app locally - -## Version Bump -**Type:** PATCH (e.g., 0.9.0 β†’ 0.9.1) - -This PR will trigger a patch version bump when merged. - -## Additional Context - diff --git a/.github/PULL_REQUEST_TEMPLATE/documentation.md b/.github/PULL_REQUEST_TEMPLATE/documentation.md deleted file mode 100644 index a5cc6fe..0000000 --- a/.github/PULL_REQUEST_TEMPLATE/documentation.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -name: Documentation Update -about: Update documentation without changing version -title: 'docs: ' -labels: documentation ---- - -## πŸ“ Documentation Update - - - -## 🎯 Changes Made - - -- -- - -## πŸ“¦ Version Impact -**This PR will NOT trigger a version bump** - -Documentation-only changes (`.md` files) are excluded from auto-versioning. - -### Merge Instructions -Use a regular commit message with `docs:` prefix: -``` -docs: [Brief description of documentation changes] -``` - -## Related Issues -Closes # diff --git a/.github/PULL_REQUEST_TEMPLATE/feature.md b/.github/PULL_REQUEST_TEMPLATE/feature.md deleted file mode 100644 index ba34801..0000000 --- a/.github/PULL_REQUEST_TEMPLATE/feature.md +++ /dev/null @@ -1,44 +0,0 @@ ---- -name: ✨ New Feature (Minor) -about: Submit a new feature (version bump: MINOR) -title: 'feat: ' -labels: 'feature, minor' -assignees: '' ---- - -## Feature Description - - -## Use Case - - -## Implementation - - -## Screenshots/Demo - - -## Testing - - -- [ ] Feature works as expected -- [ ] Doesn't break existing functionality -- [ ] Built and ran the app locally -- [ ] Tested on macOS version: ___ - -## Documentation Updates - - -- [ ] Updated README (if needed) -- [ ] Updated inline comments -- [ ] Added usage examples - -## Version Bump -**Type:** MINOR (e.g., 0.9.0 β†’ 0.10.0) - -This PR will trigger a minor version bump when merged. - -Use `feat:` prefix in your merge commit to ensure proper version bumping. - -## Additional Context - diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index e2a83d6..e3f73ae 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -1,58 +1,50 @@ ---- -name: Pull Request -about: Standard pull request template -title: '' -labels: '' -assignees: '' ---- - -## Description - - -## Type of Change - - -- [ ] πŸ› **Bug fix** (patch - fixes an issue) -- [ ] ✨ **New feature** (minor - adds functionality) -- [ ] πŸ’₯ **Breaking change** (major - changes that break backward compatibility) -- [ ] πŸ“š **Documentation** (no version bump) -- [ ] 🎨 **Code style** (formatting, no functional changes) -- [ ] ♻️ **Refactoring** (no functional changes) -- [ ] ⚑ **Performance** (patch - improves performance) -- [ ] βœ… **Tests** (no version bump) -- [ ] πŸ”§ **Chore** (no version bump) - -## Version Bump - - - - - -**Suggested bump:** - -## Changes Made - +## Summary + +Describe the change and why it matters. + +## Related Issue + +- Closes # + +## What Changed - - - ## Testing - -- [ ] Tested locally -- [ ] Built successfully -- [ ] Verified in About dialog +Describe what you ran and what you verified. + +```bash +swift build +swift test +``` + +- [ ] `swift build` passes with no new warnings +- [ ] `swift test` passes +- [ ] Verified behavior locally + +## UI Changes (if applicable) + +- [ ] No UI changes +- [ ] UI changes included screenshots or recordings +- [ ] UI changes were reviewed against the macOS HIG expectations in `CLAUDE.md` + +## Documentation (if applicable) + +- [ ] No docs updates needed +- [ ] Updated `README.md` +- [ ] Updated `wiki/` +- [ ] Updated inline comments/docs + +## Contributor Checklist -## Screenshots (if applicable) - +- [ ] Branch follows `Issue-N` naming (when working from a GitHub issue) +- [ ] Commit messages include `Closes #N` where required by `CLAUDE.md` +- [ ] Changes are scoped to this PR and unrelated edits are excluded +- [ ] Added or updated tests for behavior changes -## Checklist -- [ ] My code follows the project's style guidelines -- [ ] I have tested my changes locally -- [ ] I have updated documentation (if needed) -- [ ] My changes generate no new warnings -- [ ] I have selected the correct type of change above +## Notes for Reviewers -## Additional Notes - +Anything reviewers should pay special attention to (edge cases, risks, follow-ups). diff --git a/CLAUDE.md b/CLAUDE.md index ed3d64c..5c8cbbe 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -15,14 +15,14 @@ No `.xcodeproj`. SPM only β€” Xcode can open the folder directly. ## Project Layout -| Path | Purpose | -| --- | --- | -| `Sources/BrowserSwitchMenuBarApp/main.swift` | App delegate, menu bar UI, all primary logic | -| `Sources/BrowserSwitchMenuBarApp/BrowserDiscovery.swift` | Browser detection, deduplication, ordering | -| `Sources/BrowserSwitchMenuBarApp/InternetInfo.swift` | IP/ISP/location model and JSON decoding | -| `Sources/BrowserSwitchMenuBarApp/SystemVPNStatus.swift` | VPN detection via `scutil` and `netstat` | -| `Tests/BrowserSwitchMenuBarAppTests/` | Unit tests, one file per source type | -| `scripts/` | `build-app.sh`, `bump-version.sh`, `install.sh` | +| Path | Purpose | +| -------------------------------------------------------- | ----------------------------------------------- | +| `Sources/BrowserSwitchMenuBarApp/main.swift` | App delegate, menu bar UI, all primary logic | +| `Sources/BrowserSwitchMenuBarApp/BrowserDiscovery.swift` | Browser detection, deduplication, ordering | +| `Sources/BrowserSwitchMenuBarApp/InternetInfo.swift` | IP/ISP/location model and JSON decoding | +| `Sources/BrowserSwitchMenuBarApp/SystemVPNStatus.swift` | VPN detection via `scutil` and `netstat` | +| `Tests/BrowserSwitchMenuBarAppTests/` | Unit tests, one file per source type | +| `scripts/` | `build-app.sh`, `bump-version.sh`, `install.sh` | ## Architecture @@ -86,3 +86,44 @@ This app must feel native β€” match system menu bar extras (Wi-Fi, Battery, Blue - ATX headings (`#`). One `# H1` per file. Blank lines around headings, code blocks, and lists. - `-` for unordered lists. Fenced code blocks with language tags. Inline links with relative paths. - Backticks for code, filenames, and commands. No HTML. +- When appropiate, feel free to use GFM callouts as defined below. + +> [!NOTE] +> Highlights information that users should take into account, even when skimming. + +> [!TIP] +> Optional information to help a user be more successful. + +> [!IMPORTANT] +> Crucial information necessary for users to succeed. + +> [!WARNING] +> Critical content demanding immediate user attention due to potential risks. + +> [!CAUTION] +> Negative potential consequences of an action. + +## GitHub Issues Workflow + +When working on a GitHub issue: + +1. **Create a branch** named `Issue-N` where `N` is the issue number before starting any work. + + ```sh + git checkout -b Issue-N + ``` + +2. **Work on the issue** on that branch. + +3. **Tag the issue** at the bottom of every commit message related to the issue: + + ```sh + Closes #N + ``` + + Example commit message: + + ```sh + Fix license expiration validation logic + + Closes #42 \ No newline at end of file diff --git a/README.md b/README.md index 593bf9b..9808274 100644 --- a/README.md +++ b/README.md @@ -1,97 +1,109 @@ # Browser Switch (macOS Menu Bar App) -Browser Switch is a lightweight macOS menu bar utility that makes changing your default browser a one-click action. +[![Build](https://github.com/adamabernathy/default-browser/actions/workflows/ci.yml/badge.svg)](https://github.com/adamabernathy/default-browser/actions/workflows/ci.yml) -If you regularly jump between Chrome, Safari, Arc, Firefox, or Edge for different tasks, Browser Switch removes the trip to System Settings and keeps your day moving along. +Browser Switch is a macOS menu bar app that changes your default browser in one click. -## Screenshot +If you bounce between Safari, Chrome, Firefox, Arc, Edge, or a test browser during the day, Browser Switch keeps that switch in the menu bar instead of sending you into System Settings. -![Browser Switch menu screenshot](docs/images/screenshot-1.png) +> [!IMPORTANT] +> Browser Switch targets macOS 14+ (Sonoma and newer). -## Why It’s Useful +## Current Status βœ… -- Save time: switch default browser instantly from the menu bar -- Stay focused: no System Settings navigation every time -- Work your way: quickly move between work, personal, and testing browser contexts -- Built for daily use: minimal UI, fast launch, no Dock clutter in normal use +- Active macOS menu bar app for daily use +- Core browser switching is working (`http` and `https`) +- Built as a native AppKit app (no SwiftUI) +- CI, tests, and release packaging workflows are in the repo +- Target platform: macOS 14+ -## Features +## Screenshot πŸ“Έ -- Menu bar app with no Dock presence during normal use -- Switch default browser for `http` and `https` -- Shows installed browsers dynamically (Safari/Chrome pinned first) -- Checkmark indicates the browser currently set by macOS -- De-duplicates duplicate browser entries by display name -- Internet context section in the menu: - - VPN status from system network state (supports OpenConnect `utun` routes) - - Green check icon when VPN is connected - - ISP and location from `https://wtfismyip.com/json` - - IP and Tor-exit values hidden unless the `Option` key is held - - Network-change triggered refresh, throttled to at most once per minute -- About panel with app identity and copyright -- Settings menu: - - Run on Startup - - Scan for New Browsers -- Quit action from menu +![Browser Switch menu screenshot](docs/images/screenshot-1.png) -## Install +## Why Use It πŸš€ -Copy and paste this into Terminal: +- Switch browsers quickly without leaving your workflow +- Keep work/personal/testing browser contexts easy to manage +- Stay in the menu bar with minimal UI and no Dock icon during normal use +- See the current default browser at a glance -```bash -curl -fsSL https://raw.githubusercontent.com/adamabernathy/browser-selector/main/scripts/install.sh | bash -``` +## Key Features ✨ + +- One-click default browser switching from the menu bar +- Dynamic browser discovery (with Safari and Chrome prioritized) +- Checkmark on the browser currently selected by macOS +- Optional network and VPN context shown in the menu +- Caffeine mode to keep the display awake while you work +- Hide/show desktop icons for screen sharing and presenting +- Quick Stage Manager toggle from the menu +- Run on Startup toggle +- About panel and standard quit behavior -This clones the repo to a temp directory, compiles a release build, copies the app to `~/Applications`, and cleans up after itself. Requires macOS 12+ and Xcode (or Command Line Tools with Swift 5.9+). +## Getting Started πŸ› οΈ -To uninstall: +### Install from Source (One-Liner) ```bash -rm -rf ~/Applications/Browser\ Switch.app +curl -fsSL https://raw.githubusercontent.com/adamabernathy/default-browser/main/scripts/install.sh | bash ``` -## Development - -### Requirements +This builds a release app and installs `Browser Switch.app` into `~/Applications`. -- macOS 12+ -- Xcode or Apple Swift toolchain (Swift 5.9+) +> [!NOTE] +> This is a menu bar app. It runs without a Dock icon during normal use, so look for the app's icon in the macOS menu bar after launch. -### Build and run from Xcode +### Run from a Local Checkout -1. `File > Open...` and select this folder. -2. Select the `BrowserSwitchMenuBarApp` scheme. -3. Build and run. +#### Requirements (Source Build) -### Build and run from Terminal +- macOS 14 (Sonoma) or later +- Xcode or Xcode Command Line Tools (Swift toolchain) -Useful for development logs and debugging. The process is attached to your terminal session: +#### Local Test Build ```bash swift build swift run ``` -### Build a standalone .app bundle +#### Build a Standalone `.app` ```bash ./scripts/build-app.sh --release --run ``` -This creates `dist/Browser Switch.app` and opens it. You can also double-click the app from Finder. +## Tips πŸ’‘ + +- Hold the `Option` key while the menu is open to reveal power tools and additional network details. +- Use Caffeine mode before demos or long screen shares to help prevent the display from sleeping. +- Hide desktop icons before presenting to reduce visual clutter and avoid exposing files on your desktop. +- Toggle Stage Manager from the same menu when you want a cleaner presenting layout. +- Keep Browser Switch in `~/Applications` if you want a per-user install with no `sudo`. +- If you enable Run on Startup, verify it in System Settings > General > Login Items. -### Run tests +> [!TIP] +> If you regularly present or screen share, open the menu with `Option` held to quickly access desktop icon visibility and Stage Manager controls. + +### Uninstall ```bash -swift test +rm -rf ~/Applications/Browser\ Switch.app ``` -## CI and Packaging +## Documentation πŸ“š -GitHub Actions workflows are included: +For technical details, architecture, CI, and implementation notes, use the wiki pages in `wiki/`: -- `CI`: runs tests and release build on pushes/PRs -- `Package macOS App`: builds a downloadable `.app` zip artifact and publishes it on version tags (`v*`) +- [Wiki Home](wiki/Home.md) +- [Installation](wiki/Installation.md) +- [Menu Bar Interface](wiki/Menu-Bar-Interface.md) +- [Option-Key Power Tools](wiki/Option-Key-Power-Tools.md) +- [Network and VPN Context](wiki/Network-and-VPN-Context.md) +- [Browser Discovery](wiki/Browser-Discovery.md) +- [Settings](wiki/Settings.md) +- [Architecture](wiki/Architecture.md) +- [CI and Releases](wiki/CI-and-Releases.md) ## License diff --git a/scripts/install.sh b/scripts/install.sh index 168e73e..9f5b67f 100755 --- a/scripts/install.sh +++ b/scripts/install.sh @@ -1,16 +1,16 @@ #!/usr/bin/env bash # Browser Switch – install from source -# https://github.com/adamabernathy/browser-selector +# https://github.com/adamabernathy/default-browser # # One-liner install (copy and paste into Terminal): # -# curl -fsSL https://raw.githubusercontent.com/adamabernathy/browser-selector/main/scripts/install.sh | bash +# curl -fsSL https://raw.githubusercontent.com/adamabernathy/default-browser/main/scripts/install.sh | bash # # Requirements: Xcode or Xcode Command Line Tools with Swift 5.9+ set -euo pipefail -REPO_URL="https://github.com/adamabernathy/browser-selector" +REPO_URL="https://github.com/adamabernathy/default-browser" APP_NAME="Browser Switch" INSTALL_DIR="${HOME}/Applications" diff --git a/wiki/Installation.md b/wiki/Installation.md index c3e0ece..64cbe52 100644 --- a/wiki/Installation.md +++ b/wiki/Installation.md @@ -12,7 +12,7 @@ If you only have the Command Line Tools (not the full Xcode app), the build will Copy and paste this into Terminal: ```bash -curl -fsSL https://raw.githubusercontent.com/adamabernathy/browser-selector/main/scripts/install.sh | bash +curl -fsSL https://raw.githubusercontent.com/adamabernathy/default-browser/main/scripts/install.sh | bash ``` This clones the repo to a temp directory, compiles a release build, assembles the `.app` bundle, copies it to `~/Applications/Browser Switch.app`, and deletes the clone automatically. The script also works from a local checkout (`./scripts/install.sh`), in which case it skips the clone and builds from the working tree. @@ -21,7 +21,7 @@ The app installs to `~/Applications` (per-user), not `/Applications` (system-wid ## Install from GitHub Releases -Every push to `main` publishes a signed and notarized build to the `current` release on GitHub. Tagged pushes (`v*`) create versioned releases. Download `BrowserSwitch-macOS.zip` from the [Releases page](https://github.com/adamabernathy/browser-selector/releases), unzip it, and drag `Browser Switch.app` to your Applications folder. +Every push to `main` publishes a signed and notarized build to the `current` release on GitHub. Tagged pushes (`v*`) create versioned releases. Download `BrowserSwitch-macOS.zip` from the [Releases page](https://github.com/adamabernathy/default-browser/releases), unzip it, and drag `Browser Switch.app` to your Applications folder. ## Uninstall