Skip to content

alexrett/make-tray

Repository files navigation

MakeTray

MakeTray is a tiny macOS menu‑bar app that lets you launch any Makefile target with a single click—no terminal juggling, no remembering command names.

MakeTray

Key Features

What you get Details
One‑click targets Every Makefile target appears as its own menu item—grouped by Makefile and shown with your custom label.
Live auto‑reload Any change to config.json or to the Makefiles is detected instantly – menus refresh without relaunching.
Config GUI “Settings” submenu lets you add files via Choose File dialog or open config for manual editing.
Terminal output Each target opens a new Terminal window so you can watch logs in real time—window auto‑closes if you want.
Zero clutter Runs as an LSUIElement: no Dock icon, no Cmd‑Tab entry—just a tidy glyph in the menu bar.

Installation

Via homebrew

brew tap alexrett/make-tray
brew install make-tray
% whereis make-tray
> make-tray: /opt/homebrew/bin/make-tray

Manual

  1. Clone the repo
git clone https://github.com/alexrett/make-tray.git
cd make-tray
  1. Install Go modules
go mod tidy
  1. Run the app bundle
make run
  1. Build the app bundle
make build

It will build and copy MakeTray.app into your /Application folder.

Pre‑built releases

Every push to main creates signed & notarized binaries for Intel and Apple Silicon.
Grab the latest .dmg or .zip from the Releases page and drop MakeTray.app into /Applications.

Quick Start

  1. Launch MakeTray – the first start creates
    ~/Library/Application Support/MakeTray/config.json with a single demo entry.

  2. Edit your Makefile

    Add or tweak targets—MakeTray picks them up automatically.

Configuration file

  • Location: ~/Library/Application Support/MakeTray/config.json

  • Format:

    {
      "makefiles": [
        { "path": "~/work/project/Makefile", "label": "Makefiles for application" },
        { "path": "$HOME/dev/db/Makefile",   "label": "Databases connections"  }
      ]
    }

You can edit this file manually or use Settings ▸ Add… from the menu.

Advanced Usage

Scenario Command / Setting
Custom config path MakeTray -config /path/to/my.json
Open config in VS Code Settings ▸ Open config…
Keep Terminal window open Comment out the osascript close‑window line in main.go.
Replace app icon Put new icon.png (menu glyph) + regenerate icon.icns.

CI / CD

GitHub Actions workflow release.yml builds a universal macOS binary (arm64 + amd64), codesigns and notarizes it,
then uploads MakeTray.app.zip and a ready‑to‑mount .dmg to the Release tagged by the commit.

On every push to main the workflow also runs go vet and go test ./... to keep the codebase healthy.

Contributing

Pull requests are welcome!

  1. Fork → feature branch → PR.
  2. Follow go vet and golangci-lint checks.
  3. Add yourself to CONTRIBUTORS.md.

License

Released under the MIT License.

About

Menu‑bar app that lets you launch any Makefile target

Resources

License

Stars

Watchers

Forks