Skip to content

Repository files navigation

The FunNotch panel open in the MacBook notch on its default home screen: album artwork and transport controls for Carefree by Kevin MacLeod, the week at a glance with three upcoming events, and a row of quick actions, recent files and an app shortcut

FunNotch

Your MacBook notch, doing something.

Media, a drag-and-drop file shelf, clipboard history, focus sessions, daily notes, a timer and thirteen widgets — all in the space around the camera.

Latest release Downloads macOS 14+ Universal Licence

Download · funnotch.xyz · Install guide · Changelog

Free and open source. No account, no subscription, no telemetry.


What it does

  • Home — a grid you compose yourself. Drag widgets in, resize them, and save layouts. Give a case its own screen: one for when media is playing, one for the minutes before a meeting, one for a focus session, one for charging.
  • Weather — when nothing is playing, the panel shows the forecast as an animated pixel scene that changes with the weather: sun, rain onto a skyline, drifting snow, lightning.
  • Media — now playing from Music, Spotify and any browser, with artwork, a live spectrum, and a progress bar you can drag to seek.
  • Shelf — a drag-and-drop file shelf that opens to meet a drag already in flight. AirDrop and share straight off it; catches new screenshots and finished downloads on its own.
  • Clipboard — searchable history with pinning, and entries that expire after 24 hours by default. Anything a password manager marks concealed is skipped and never recorded.
  • Focus & Timer — focus sessions that block websites and apps, with Pomodoro cycles, a week chart and a streak; plus a countdown and a stopwatch with laps, all around one dial you drag round to set.
  • Notes — a scratchpad that starts a new note each day and saves to your Desktop, with the old ones a menu away.
  • Battery — charge level, and while charging the actual wattage, with the meter coloured and animated by state.
  • Widgets — thirteen of them, any number either side of the camera.
  • HUD — volume, brightness and keyboard backlight that replaces the system overlay rather than sitting beside it.
  • No notch? Still works. On an external display it draws a floating pill in the same place, like the Dynamic Island.
  • And — camera mirror, calendar and reminders, meeting-link detection, custom themes, automatic updates, a diagnostics screen, and two games: Breakout and Dino Run.
The FunNotch shelf holding four dropped screenshots as thumbnails, with Share, AirDrop, Copy and Clear along the top
Shelf — drop a file on the notch and it is held until you drag it out.
Searchable clipboard history in the notch showing five entries, each labelled with the app it was copied from: Safari, Notes, Terminal and Finder
Clipboard — searchable, pinnable, labelled with where each entry came from.
The FunNotch focus tab offering 15, 25, 45 and 60 minute sessions beside the list of sites it blocks, including youtube.com, x.com and instagram.com
Focus — sessions that actually block apps and sites.

Also in the box

The FunNotch timer tab showing quick-start durations and a running countdown dial
Timer — countdowns and a stopwatch with laps.
The FunNotch home screen showing 52 degrees and Rain for London, with pixel-art raindrops falling onto a hill silhouette
Weather — the pixel scene follows the forecast.
FunNotch running as a rounded floating island on a display that has no physical notch
No notch? — it becomes a floating island instead.
The collapsed notch wearing widgets either side of the camera: the time and the temperature on the left, CPU, memory and battery readouts on the right
Widgets — thirteen, any number either side of the camera.
Notch Breakout running inside the FunNotch panel, with coloured bricks, a paddle and a score
And a game, because the space was there.
The collapsed notch briefly expanding to announce a track change, showing artwork and the title
Sneak peek — track changes announce themselves, then get out of the way.

Install

Download the latest .dmg, drag FunNotch to Applications, and open it.

First launch. Builds are signed ad-hoc rather than with a paid Apple Developer certificate, so macOS will refuse the first open. Go to System Settings → Privacy & Security and click Open Anyway, or right-click the app in Applications and choose Open. After that it opens normally, and updates arrive in-app.

Full walkthrough: funnotch.xyz/install.

Building

No Xcode project — the app builds with swiftc directly.

./build.sh                       # debug build into build/
./build.sh --universal           # arm64 + x86_64
./build.sh --universal --package # ...and produce dist/*.dmg and dist/*.zip

Requires the Xcode command line tools. Everything under build/ and dist/ is generated and git-ignored.

Signing

Builds are signed ad-hoc by default, which is why macOS refuses the first launch. If you have a paid Apple Developer certificate:

./build.sh --universal --package \
  --sign "Developer ID Application: Your Name (TEAMID)" \
  --notarize your-notary-profile

Verifying a change

There is a self-test that drives the real window manager rather than mocking it — it opens and closes the notch, simulates drags, and checks the panel geometry.

build/FunNotch.app/Contents/MacOS/FunNotch --self-test

It needs a GUI session, so it will not run over plain SSH. There is also a preview renderer that writes every notch state to PNG, which is how the screenshots in this README are produced:

build/FunNotch.app/Contents/MacOS/FunNotch --render-preview /tmp/shots

And a diagnostics dump:

build/FunNotch.app/Contents/MacOS/FunNotch --diagnostics

Layout

Sources/
  App/          Lifecycle, status bar, self-test, preview renderer
  Core/         Settings, home-screen layout model, extensions, diagnostic log
  Managers/     Media, shelf, clipboard, focus, notes, timer, calendar,
                battery, weather, HUD, updates
  Settings/     The settings window and the home-screen editor
  Views/        The notch panel and everything drawn in it
Tools/
  MakeIcon.swift    Generates the app icon at build time
  fetch-sparkle.sh  Pins and verifies the Sparkle framework
  make-appcast.sh   Signs a release for the auto-updater

The marketing site at funnotch.xyz is deliberately not in this repo — it isn't part of the app, and it deploys separately.

Permissions it asks for

None are required; each one only enables the feature that needs it.

Permission Used for
Accessibility The HUD — catching the media key before macOS acts on it
Calendar & Reminders The agenda beside the player
Camera The camera mirror, only while open
Location The weather scene, to pick a forecast

The app makes network requests in exactly three situations: api.open-meteo.com for the weather, album artwork from whatever URL your media source provides, and a GitHub check for updates. There is no analytics, no crash reporting and no telemetry of any kind. See the About page.

Contributing

Issues and pull requests are welcome. A few things worth knowing:

  • Match the surrounding code. Comments here explain why, not what — if a line needs a comment saying what it does, the line is usually the problem.
  • Run --self-test before opening a PR. If you change window geometry, drag handling or the HUD, add a check to Sources/App/SelfTest.swift.
  • The notch is a non-activating panel. It never becomes the key window, so keyboard events go to whatever app is actually in front. Anything interactive up there has to work from pointer position alone.
  • Managers are singletons with a start(). Make start() idempotent — a view calling it on every onAppear should not stack timers or run-loop sources. That bug once locked the whole app.

Prior art

FunNotch began as a rebuild of TheBoringNotch, which got to the idea first and is a genuinely good app. There is an honest comparison on the website, including the things theirs does better.

Licence

GPL-3.0. If you distribute a modified version, it has to be open too.

About

A free, open-source macOS app that gives your MacBook notch something to do: weather and your day at a glance, a drag-and-drop file shelf, clipboard history, focus sessions, notes, a timer and thirteen widgets. Works on displays without a notch too.

Topics

Resources

Stars

7 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages