Skip to content

lueyoung/shuttle

 
 

Repository files navigation

Shuttle (for Apple Silicon)

A simple shortcut menu for macOS

This fork is maintained by Young Lue and updated for modern macOS and Apple Silicon development.

Status:

  • Builds locally with xcodebuild on Apple Silicon
  • Produces app bundles inside the project at products/Debug/Shuttle.app
  • Keeps generated build output out of git
  • Includes recent compatibility fixes for terminal launching and launch-at-login

This Fork

This repository is a fork of the original Shuttle project with local changes for modern macOS and Apple Silicon development.

Notable differences in this fork:

  • Apple Silicon friendly build setup
  • Updated local xcodebuild workflow
  • App output goes to the project-local products/ directory
  • Generated app bundles and DerivedData are ignored; release artifacts should be attached to GitHub Releases
  • Ongoing maintenance by Young Lue

Maintainer

This fork is maintained by Young Lue.

Recent work in this fork includes:

  • Apple Silicon build and local development fixes
  • Modernized xcodebuild flow and shared scheme setup
  • Updated launch-at-login compatibility for modern macOS
  • Build output cleanup and project-local app packaging
  • README and developer workflow updates for this fork

Installation

Option 1: Download a Release

  1. Download the latest build from this fork's GitHub Releases page.
  2. Move Shuttle.app to /Applications.

Option 2: Build Locally

  1. Clone this repository.
  2. Run:
./scripts/build-debug.sh
  1. The app will be generated at:
products/Debug/Shuttle.app
  1. Move products/Debug/Shuttle.app to /Applications, or run it directly.

Build

Build locally with:

./scripts/build-debug.sh

The built app will be generated at:

products/Debug/Shuttle.app

You can launch it with:

open products/Debug/Shuttle.app

Intermediate build data is stored in:

.deriveddata/

You can override local build output paths when needed:

SHUTTLE_PRODUCTS_DIR=/tmp/shuttle-products \
SHUTTLE_DERIVED_DATA_PATH=/tmp/shuttle-deriveddata \
./scripts/build-debug.sh

Test

Validate config fixtures with:

python3 tests/test_config_fixtures.py

The GitHub Actions workflow runs the fixture validation and a macOS build.

Configuration

By default Shuttle reads its config from:

~/.shuttle.json

It can also read:

  • ~/.shuttle-alt.json
  • ~/.ssh/config
  • /etc/ssh_config
  • /etc/ssh/ssh_config

Help

See the Wiki pages.

Roadmap

  • Cloud hosting integration
    • AWS, Rackspace, Digital Ocean, etc
    • Using their APIs, automatically add all of your machines to the menu
  • Preferences panel for easier configuration
  • Update notifications
  • Keyboard hotkeys
    • Open menu
    • Select host option within menu

Contributors

The original Shuttle project was created by Trevor Fitzgerald. Many people have contributed improvements over time, and this fork continues that work with Apple Silicon and modern macOS maintenance by Young Lue.

(In alphabetical order)

Credits

Shuttle was inspired by SSHMenu, the GNOME applet for Linux.

I also looked to projects such as MLBMenu and QuickSmileText for direction on building a Cocoa app for the status bar.

About

A simple shortcut menu for macOS

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • Objective-C 74.4%
  • AppleScript 12.2%
  • Shell 6.9%
  • Python 5.2%
  • Rich Text Format 1.3%