Skip to content

rutvik106/fusion-link-launcher

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Fusion Link Launcher

A lightweight macOS menu bar utility that watches your clipboard for URLs and lets you instantly open them in any installed browser — with one click.

Why

When you copy a URL on macOS, opening it in a browser other than your default requires manual effort: paste, switch app, navigate. Fusion Link Launcher removes that friction entirely.

Copy a URL → pick a browser → done.

Features

  • Sits silently in the menu bar with zero Dock presence
  • Detects copied URLs automatically (polls clipboard every 0.5s)
  • Dynamically discovers all installed browsers — Safari, Chrome, Brave, Firefox, Arc, Edge, Vivaldi, and any other app that can open URLs
  • Shows a non-intrusive floating popup in the top-right corner, auto-dismisses after 8 seconds
  • Cooldown deduplication — won't re-prompt for the same URL within a configurable window
  • Optional URL normalization (adds https:// to bare domains like github.com)
  • Launch at login support via SMAppService
  • Settings panel for all preferences

Requirements

  • macOS 13 Ventura or later
  • Xcode 15+ (to build from source)

Build & Run

With Xcode

open FusionLinkLauncher.xcodeproj

Select your Team in Signing & Capabilities, then press Run (⌘R).

With swiftc (no Xcode required)

swiftc -parse-as-library \
  -framework SwiftUI -framework AppKit -framework Foundation -framework ServiceManagement \
  -target arm64-apple-macosx13.0 \
  FusionLinkLauncher/Models/AppPreferences.swift \
  FusionLinkLauncher/Models/BrowserApp.swift \
  FusionLinkLauncher/Models/DetectedURLItem.swift \
  FusionLinkLauncher/Services/LaunchAtLoginManager.swift \
  FusionLinkLauncher/Services/HistoryStore.swift \
  FusionLinkLauncher/Features/Settings/PreferencesStore.swift \
  FusionLinkLauncher/Features/Clipboard/URLDetector.swift \
  FusionLinkLauncher/Features/Clipboard/ClipboardMonitor.swift \
  FusionLinkLauncher/Features/Browsers/BrowserDiscoveryService.swift \
  FusionLinkLauncher/Features/Browsers/OpenURLService.swift \
  FusionLinkLauncher/Features/Prompt/PromptViewModel.swift \
  FusionLinkLauncher/Features/Prompt/PromptView.swift \
  FusionLinkLauncher/Features/Prompt/PromptController.swift \
  FusionLinkLauncher/Features/Settings/SettingsView.swift \
  FusionLinkLauncher/App/StatusBarController.swift \
  FusionLinkLauncher/App/AppDelegate.swift \
  FusionLinkLauncher/App/FusionLinkLauncherApp.swift \
  -o FusionLinkLauncher_bin

# Bundle it
mkdir -p FusionLinkLauncher.app/Contents/MacOS
cp FusionLinkLauncher_bin FusionLinkLauncher.app/Contents/MacOS/FusionLinkLauncher
cp FusionLinkLauncher/Resources/Info.plist FusionLinkLauncher.app/Contents/Info.plist
/usr/libexec/PlistBuddy -c "Set :CFBundleExecutable FusionLinkLauncher" FusionLinkLauncher.app/Contents/Info.plist
/usr/libexec/PlistBuddy -c "Set :CFBundleIdentifier com.fusionlinklauncher.app" FusionLinkLauncher.app/Contents/Info.plist
/usr/libexec/PlistBuddy -c "Set :CFBundlePackageType APPL" FusionLinkLauncher.app/Contents/Info.plist
/usr/libexec/PlistBuddy -c "Set :LSMinimumSystemVersion 13.0" FusionLinkLauncher.app/Contents/Info.plist

open FusionLinkLauncher.app

Project Structure

FusionLinkLauncher/
├── App/
│   ├── FusionLinkLauncherApp.swift   # @main entry point
│   ├── AppDelegate.swift              # Wires clipboard monitor → prompt
│   └── StatusBarController.swift     # Menu bar icon + menu
├── Features/
│   ├── Clipboard/
│   │   ├── ClipboardMonitor.swift    # NSPasteboard polling
│   │   └── URLDetector.swift         # URL validation + normalization
│   ├── Browsers/
│   │   ├── BrowserDiscoveryService.swift  # NSWorkspace browser discovery
│   │   └── OpenURLService.swift           # Opens URL in chosen browser
│   ├── Prompt/
│   │   ├── PromptController.swift    # NSPanel lifecycle
│   │   ├── PromptView.swift          # SwiftUI popup UI
│   │   └── PromptViewModel.swift     # Prompt state
│   └── Settings/
│       ├── SettingsView.swift        # SwiftUI settings panel
│       └── PreferencesStore.swift    # UserDefaults-backed preferences
├── Services/
│   ├── LaunchAtLoginManager.swift    # SMAppService wrapper
│   └── HistoryStore.swift            # In-memory URL history
├── Models/
│   ├── BrowserApp.swift
│   ├── DetectedURLItem.swift
│   └── AppPreferences.swift
└── Resources/
    └── Info.plist

Privacy

All clipboard processing happens locally on your device. No data is ever sent to any server, logged to disk, or shared with any third party. URL history is stored only in memory and cleared on quit (unless you enable persistent history in a future release).

License

MIT — see LICENSE.

About

macOS menu bar utility that watches the clipboard for URLs and lets you open them in any installed browser with one click

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages