Skip to content

NorthwoodsCommunityChurch/Junk-Drawer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Junk Drawer

A simple macOS menu bar icon manager. Hide the clutter, reveal it when you need it.

Features

  • Hide menu bar icons — Cmd+drag icons to the left of the divider to tuck them away
  • One-click toggle — Click the chevron or press Cmd+Shift+B to show/hide
  • Auto-collapse — Hidden items re-hide automatically after a configurable delay
  • Zero permissions — No Screen Recording, no Accessibility access required
  • Launch at login — Optional, via macOS native ServiceManagement
  • Lightweight — Pure AppKit/SwiftUI, no third-party dependencies

Requirements

  • macOS 15.0 (Sequoia) or later
  • Apple Silicon or Intel Mac

Installation

  1. Download the .zip from the latest release
  2. Extract the zip
  3. Move Junk Drawer.app to your Applications folder
  4. Right-click the app and select Open (required on first launch for ad-hoc signed apps)

Usage

  1. Launch — A chevron appears in your menu bar along with a small divider line / to its left
  2. Hide icons — Hold Cmd and drag any menu bar icon to the left of the divider line
  3. Toggle visibility — Click the chevron or press Cmd+Shift+B to show/hide the hidden icons
  4. Auto-hide — By default, hidden icons re-collapse after 5 seconds (configurable in Settings)
  5. Settings — Right-click the chevron for the context menu, or press Cmd+,

Configuration

Open Settings via the right-click context menu:

Setting Default Description
Launch at login Off Start Junk Drawer when you log in
Auto re-hide On Automatically collapse hidden items
Hide delay 5 seconds How long to wait before auto-collapsing (2–30s)
Keyboard shortcut Cmd+Shift+B Toggle hidden items (not configurable)

Building from Source

Requires Xcode 16+ and XcodeGen.

# Install XcodeGen if needed
brew install xcodegen

# Clone and build
git clone https://github.com/NorthwoodsCommunityChurch/junk-drawer.git
cd junk-drawer
xcodegen generate
xcodebuild -scheme JunkDrawer -configuration Release build

The built app will be in ~/Library/Developer/Xcode/DerivedData/JunkDrawer-*/Build/Products/Release/Junk Drawer.app.

Project Structure

junk-drawer/
├── Project.yml                          # XcodeGen project specification
├── Icons/
│   └── junk-drawer-icon.svg             # Source SVG for app icon
├── JunkDrawer/
│   ├── JunkDrawerApp.swift              # SwiftUI app entry point
│   ├── AppDelegate.swift                # Wires controller + hotkey manager
│   ├── StatusBarController.swift        # Core: toggle, separator, expand/collapse
│   ├── GlobalHotKeyManager.swift        # Cmd+Shift+B global hotkey (Carbon)
│   ├── Models/
│   │   └── AppSettings.swift            # UserDefaults + launch at login
│   ├── Views/
│   │   ├── SettingsView.swift           # Settings window
│   │   └── AboutView.swift              # About panel
│   └── Assets.xcassets/                 # App icon assets
├── docs/images/                         # Screenshots
├── LICENSE                              # MIT License
├── CREDITS.md                           # Third-party credits
└── README.md

License

MIT License — Copyright (c) 2025 Northwoods Community Church

Credits

See CREDITS.md for third-party frameworks, tools, and inspiration.

About

A simple macOS menu bar icon manager

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages