Icône de NotchApp : les lettres N et A reliées, sous une petite encoche
Projet personnel macOS 14+ Réalisé avec Claude Code

L'encoche du Mac devient un centre de contrôle.

NotchApp transforme l'espace mort autour de l'encoche du MacBook en une île discrète : musique, calendrier, dépôt de fichiers, recherche et réglages système, à un survol de distance, avec des raccourcis clavier que l'on règle soi-même.

0,0 %de CPU au repos, île fermée
15–25 Mode mémoire, piloté par les événements
~6 300lignes de Swift natif (AppKit + SwiftUI)
5modules à activer et réordonner

NotchAppL'encoche occupe l'écran. Sans rien faire.

Survole-la.

Musique, calendrier, fichiers. Tout est là.

Démo interactive

Essaie l'île

Survole l'encoche (ou touche-la sur mobile). Lance la musique, démarre un minuteur, glisse un fichier de ton ordinateur dans le dépôt, puis ouvre la recherche au clavier. Les données affichées sont des exemples.

Glisse le dossier ou le CV vers l'encoche : l'île s'ouvre et les reçoit.
Morceau d'exemple
Artiste · Spotify
76 %
VPN
Minuteur
Nov
↑↓←→ naviguer · ↩ ouvrir · ⌘↩ afficher dans le Finderesc fermer

Touches du Mac

Sur un vrai Mac, NotchApp intercepte ces touches et affiche son propre indicateur sous l'encoche, à la place de celui de macOS. F4 et le pincement à 4 doigts ouvrent la recherche.

Raccourcis personnalisables

Clique sur un raccourci, puis tape la combinaison de ton choix (avec ⌃, ⌥ ou ⌘). Elle fonctionne aussitôt dans la démo. Comme dans l'app, « Coller dans le dépôt » n'a pas de raccourci tant qu'on ne lui en donne pas.

En vrai

Sur mon MacBook Air

Captures générées par le mode capture intégré à l'app, sur un MacBook Air M3. La pochette et le titre du morceau ont été neutralisés.

Fonctions

Ce que fait NotchApp

Survol de l'encoche

L'île s'ouvre au survol, avec une légère vibration du trackpad, et se referme quand le pointeur s'éloigne. Délais d'ouverture et de fermeture réglables.

Musique

Le morceau Spotify ou Musique en cours, avec pochette et commandes. Île fermée, la pochette et un égaliseur encadrent l'encoche.

Dépôt de fichiers

Glisser un fichier vers l'encoche le range dans le dépôt. Tout ce qu'on copie (⌘C) y arrive aussi, sauf les mots de passe et contenus confidentiels.

Recherche

Applications, fichiers, Finder, actions et dépôt dans un même panneau, filtrables avec ⌘1 à ⌘5. Elle couvre tout le Mac, disques externes, iCloud Drive et OneDrive compris ; ⌘↩ affiche le fichier dans le Finder.

Indicateurs système

Les touches volume et luminosité affichent une barre sous l'encoche, à la place de l'indicateur de macOS, tout comme un changement de volume fait ailleurs. Deux curseurs fins sont aussi dans l'île.

Tout se règle

Cinq modules à activer et réordonner, raccourcis globaux, ouverture au survol ou au clic, style noir ou matériau système, écrans sans encoche, français et anglais.

Démarche

Construit avec Claude Code

Je ne suis pas développeur de formation. J'ai mené ce projet comme un product manager : définir le besoin, prioriser, tester, et documenter honnêtement ce qui marche et ce qui ne marche pas. Claude Code a écrit le code Swift à partir de mes demandes.

  1. Partir d'un irritant réelL'encoche occupe le haut de l'écran sans rien apporter, alors que je jongle sans cesse entre musique, calendrier et fichiers.
  2. Cadrer avant de coderUne seule rangée, sans onglets ni défilement, et zéro consommation au repos : des contraintes posées dès le départ.
  3. Tester la faisabilitéChaque fonction est vérifiée sur un vrai Mac et classée : fonctionne, partielle ou impossible avec les API disponibles.
  4. Respecter l'utilisateurChaque autorisation est demandée au moment où elle sert, et rien ne quitte le Mac en dehors des pochettes Spotify.

Sous le capot

Swift natif avec AppKit et SwiftUI, compilé sans Xcode via les Command Line Tools. Presque tout est piloté par les événements : la musique arrive par les notifications des apps, le volume par CoreAudio, la batterie par IOKit, le calendrier par EventKit. Seul le presse-papiers est vérifié toutes les 1,5 s, faute d'API de notification. Les modules sont créés à l'ouverture de l'île et libérés à sa fermeture.

Signature locale stable pour que macOS conserve les autorisations d'une compilation à l'autre.

Faisabilité

Ce qui marche, et ce qui ne marche pas

Une partie du travail a consisté à identifier les limites de macOS plutôt qu'à les contourner.

FonctionCommentStatut
Titre, lecture, pause, suivantNotifications et AppleScript de Spotify et MusiqueFonctionne
Volume et luminositéCoreAudio ; framework système non documenté pour la luminositéFonctionne
Copie automatique vers le dépôtLecture du presse-papiers uniquement après une copieFonctionne
VPN fourni par une appL'état est lisible, mais le démarrage n'est pas possible depuis l'extérieurPartiel
Notifications des autres appsAucune API publique ; accès refusé par macOS même avec l'accès complet au disqueImpossible
Recherche dans tout le MacSpotlight sur tous les volumes, disques externes et stockages en ligne ; accès complet au disque proposé pour aller plus loinFonctionne
Pincement à 4 doigts vers la rechercheFramework système non documenté ; le geste Apps de macOS doit être désactivé dans les réglages du trackpadAvec réglage
← Retour au portfolio Me contacter