holzcloud
Menu
holzBar : une barre des menus claire avec une flèche et quatre points sur une planche de bois, à côté le nom, « The menu bar manager for macOS — ready for macOS 27. » et les mots-clés macOS 14–27, GPL-3.0, Homebrew

macOS 14–27

Open source

GPL-3.0

La barre des menus en ordre : cacher ce qui gêne, l’afficher quand on en a besoin. Et ça tourne sous macOS 27.

La barre des menus avec le holzBar Shelf ouvert en dessous, qui montre les icônes cachées
Le holzBar Shelf montre les icônes cachées sous la barre des menus, un clic droit sur le point ouvre le menu.

Tourne sous macOS 27

Nouveau moteur pour la barre des menus refaite de macOS 27.

Cacher et afficher

Masquer les icônes et les montrer au survol, au clic ou au défilement.

Shelf pour l’encoche

Les icônes cachées dans une barre à part sous la barre des menus.

Par Homebrew

Une commande pour installer, une pour mettre à jour.

Version 0.0.6 — version sur GitHub. Les retours comptent sur le suivi des tickets. holzBar est un jeune fork d’Ice qui se développe activement, beaucoup de choses peuvent encore changer d’ici 1.0.

holzBar garde la barre des menus du Mac en ordre : ce dont on se sert peu disparaît et revient quand on l’appelle. S’y ajoutent une barre d’icônes sous l’encoche, une disposition par glisser-déposer, une recherche et des réglages pour l’apparence de la barre.

Fonctions

Caché jusqu’à ce qu’on en ait besoin

Dans la barre des menus, seul le point de holzBar reste visible ; ce dont on se sert peu est replié. Un clic, un survol ou un défilement ouvre le holzBar Shelf avec les icônes cachées juste sous la barre des menus — avec de vraies images d’icônes, aussi sur les écrans à encoche.

La partie droite de la barre des menus avec le point de holzBar ; les icônes cachées sont repliées
Replié : seul le point de holzBar indique qu’il y en a davantage.
La barre des menus avec le holzBar Shelf ouvert en dessous, qui montre les icônes cachées
Le holzBar Shelf montre les icônes cachées sous la barre des menus.
La partie droite de la barre des menus avec le point de holzBar ; les icônes cachées sont repliées
Replié : seul le point de holzBar indique qu’il y en a davantage.
La barre des menus avec le holzBar Shelf ouvert en dessous, qui montre les icônes cachées
Le holzBar Shelf montre les icônes cachées sous la barre des menus.
Réglages de holzBar, section General : Launch at login, l’icône holzBar, le holzBar Shelf avec son emplacement, les écrans où il sert et les icônes masquées par l’encoche, affichage au clic, au survol ou au défilement, et masquage automatique avec la stratégie Smart

L’essentiel sous General

holzBar se lance à l’ouverture de session si on le souhaite et affiche dans la barre des menus un point ou une autre icône. Le holzBar Shelf choisit sa place de façon dynamique, les icônes cachées apparaissent au clic, au survol ou au défilement — et disparaissent ensuite automatiquement.

Le menu de holzBar : holzBar Settings…, Search Menu Bar Items, Show Hidden Section, Zen Mode, How to Update…, Quit holzBar

Tout au clic droit

Un clic droit sur le point ouvre le menu de holzBar : les réglages, la recherche d’icônes, la zone cachée et le mode Zen. La recherche retrouve et ouvre n’importe quelle icône de la barre, même cachée.

Réglages de holzBar, plus bas dans la section General : le holzBar Shelf sur tous les écrans et les icônes masquées par l’encoche, affichage au clic, au survol ou au défilement, masquage automatique avec la stratégie Smart, le curseur d’espacement des icônes de la barre des menus marqué BETA et, sous macOS 27, la remarque que l’indicateur de la caméra et du micro est masqué

Afficher, puis cacher à nouveau

Les icônes cachées apparaissent au clic, au survol ou au défilement — au trackpad comme à la molette. holzBar les masque ensuite automatiquement, si on le souhaite avec la stratégie Smart. L’espacement des icônes existe en bêta.

Réglages de holzBar, section Menu Bar Layout : le profil home avec Apply et Bind, Save Current Layout…, des groupes avec New Group…, des espaceurs et les zones Visible et Hidden avec les icônes de la barre des menus

Disposition par glisser-déposer

Les icônes s’attribuent aux zones visible et cachée par glisser-déposer. Des profils comme « Travail » ou « Maison » enregistrent une disposition, des groupes réunissent plusieurs icônes derrière une icône propre, et des espaceurs donnent de l’air.

Réglages de holzBar, section Menu Bar Appearance : Dynamic appearance, Tint, Shadow, Border, Shape Kind, Black menu bar et Round the screen corners

Une barre à son goût

Teinte unie ou en dégradé, ombre, bordure et formes arrondies ou séparées. S’y ajoutent une barre des menus noire qui fait disparaître l’encoche et des coins d’écran arrondis.

Réglages de holzBar, section Hotkeys : raccourcis pour la zone cachée, la recherche, l’ouverture d’une icône par une lettre, le profil de disposition home, le holzBar Shelf, les menus d’app, le masquage automatique et le mode Zen, chacun avec Record Hotkey

Un raccourci pour chaque action fréquente

Basculer les zones, ouvrir la recherche, activer ou désactiver le holzBar Shelf, basculer les menus d’app et piloter le masquage automatique — chaque action a son propre raccourci.

Réglages de holzBar, section Advanced : zone toujours cachée, séparateurs, place des nouvelles icônes, activités en direct, masquage des menus d’app, second menu contextuel et délais pour le survol et les icônes affichées temporairement

Les finitions sous Advanced

On y trouve la zone toujours cachée, la place des nouvelles icônes, les activités en direct, le masquage des menus d’app et les délais pour le survol et les icônes affichées temporairement.

Réglages de holzBar, section Advanced plus bas : afficher automatiquement les icônes cachées, Export… et Import…, Sync settings between your Macs avec Turn On… par iCloud Drive, Nextcloud, Dropbox, OneDrive, Syncthing ou un partage réseau, et Accessibilité et Enregistrement de l’écran tous deux accordés

Synchronisation et autorisations

Plus bas sous Advanced, on exporte et importe les réglages ou on les synchronise entre ses Mac par n’importe quel dossier que les Mac synchronisent, comme iCloud Drive, Nextcloud, Dropbox, OneDrive, Syncthing ou un partage réseau. En dessous, holzBar montre l’état de chaque autorisation.

Réglages de holzBar, section Menu Bar Layout sans l’Enregistrement de l’écran : elle explique que la section montre des images des icônes de la barre des menus, que macOS ne laisse prendre à une app qu’avec l’Enregistrement de l’écran, avec un bouton Allow Screen Recording…

L’enregistrement de l’écran, seulement au besoin

La section Layout montre des images des icônes de la barre des menus, que macOS ne laisse prendre à une app qu’avec l’Enregistrement de l’écran. holzBar ne le demande que lorsqu’une fonction en a besoin, et explique pourquoi.

Réglages de holzBar, section About : l’icône de l’app, la version, copyright de Jordan Baird et holzcloud, Based on Ice by Jordan Baird, la commande brew update && brew upgrade --cask holzbar, un bouton Releases ainsi que Acknowledgements, Website, Contribute et Report a Bug

Construit sur Ice

La section About indique la version et remercie Ice de Jordan Baird. La mise à jour passe par Homebrew avec brew update && brew upgrade --cask holzbar, et les versions sont à un clic.


Tout en un coup d’œil

Cacher les icônes

Une zone pour les icônes dont on n’a pas besoin, et une zone « toujours cachée ». Affichage au survol, au clic ou au défilement, masquage automatique, et menus d’app masqués quand ils se chevauchent.

holzBar Shelf

Les icônes cachées dans une barre sous la barre des menus, avec de vraies images d’icônes et des écarts réguliers — pratique avec l’encoche.

Disposition par glisser-déposer

Attribuer les icônes aux zones. L’ancienne disposition est reprise au premier lancement.

Recherche

Retrouver et ouvrir n’importe quelle icône de la barre, même cachée.

Apparence

Teinte unie ou en dégradé, ombre et bordure, formes arrondies et séparées. L’espacement des icônes existe en bêta.

Raccourcis clavier

Basculer les zones, ouvrir la recherche, activer le holzBar Shelf et basculer les menus d’app.

Profils, groupes, espaceurs

Enregistrer des dispositions « Travail » ou « Maison » et basculer, regrouper plusieurs icônes derrière une icône propre et insérer jusqu’à dix espaceurs vides. Nouveau en 0.0.2.

Barre noire, coins arrondis

Une barre des menus noire qui fait disparaître l’encoche, et des coins d’écran arrondis au rayon réglable. Nouveau en 0.0.2.

Automatisation et synchro

Commandes holzbar:// et scripts Raycast prêts à l’emploi qui demandent avant de changer quoi que ce soit de durable, mode Zen et actions Raccourcis, éléments masqués affichés automatiquement quand la batterie faiblit ou que le réseau tombe, réglages exportés ou synchronisés entre Mac via iCloud Drive ou n’importe quel dossier que vos Mac synchronisent.

Système

macOS 14 à 27

Licence

GPL-3.0, comme Ice

Base

Ice de Jordan Baird

Installation

Homebrew ou depuis les sources

Signature

Certificat propre, sans Apple Developer ID ; attestation de provenance du build

Mises à jour

Par Homebrew

Installation

holzBar tourne sous macOS 14 Sonoma à 27 et est vérifié dans la CI sur macOS 14, 15, 26 et 27.

Nouvelle installation

Le plus simple, par Homebrew :

brew tap holzcloud/holzbar https://github.com/holzcloud/holzBar
brew trust --cask holzcloud/holzbar/holzbar
brew install --cask holzbar

brew trust ne sert qu’une fois : Homebrew n’installe les casks de taps tiers qu’une fois qu’on leur fait confiance.

holzBar remplace l’Ice d’origine. Si vous l’avez installé, retirez-le d’abord avec brew uninstall --cask jordanbaird-ice. L’app est signée avec son propre certificat, pas avec un Apple Developer ID ; le cask enlève la quarantaine pour qu’elle s’ouvre normalement. Les mises à jour passent par Homebrew ; holzBar lui-même ne cherche jamais de mises à jour.

On peut aussi compiler soi-même avec Xcode 27 (SDK de macOS 27), comme la CI ; holzBar lui-même tourne dès macOS 14 :

git clone https://github.com/holzcloud/holzBar
cd holzBar
Scripts/install.sh

L’app arrive dans ~/Applications.

L’archive holzBar-0.0.6.zip est aussi disponible directement dans la version.

Les versions sont signées avec le certificat propre de holzBar (SHA-256 e55f0df15060b8c06c6842ccee85e6bc9f86cbbda3bd408abf991457840b1d95) et portent une attestation de provenance du build ; on la vérifie avec gh attestation verify sur l’archive téléchargée.

Mettre à jour depuis 0.0.6 bêta 1 ou 2

brew update && brew upgrade --cask holzbar

L’autorisation Accessibilité est conservée.

Mettre à jour depuis 0.0.5

La 0.0.5 a été publiée sous l’ancien nom de l’app, comme un autre cask et une autre app : brew upgrade ne la remplace donc pas et holzBar ne reprend pas ses réglages. Pour garder disposition, raccourcis et apparence, exportez-les dans l’ancienne app (Settings → Advanced → Export…). Quittez-la et désinstallez son cask (brew list --cask affiche son nom), installez holzBar comme ci-dessus, accordez de nouveau l’Accessibilité, importez le fichier dans Settings → Advanced → Import… et réactivez « Launch at login ». Les réglages de l’Ice d’origine sont de toute façon importés au premier lancement.

Si macOS refuse d’ouvrir holzBar

holzBar est signé avec son propre certificat, pas avec un Apple Developer ID. Le cask Homebrew retire lui-même l’attribut de quarantaine. Si vous avez téléchargé l’archive à la main — ou si macOS bloque quand même l’app —, sortez-la de la quarantaine ainsi :

xattr -dr com.apple.quarantine /Applications/holzBar.app

Rouvrez ensuite holzBar. Sinon, ouvrez l’app une fois, puis cliquez sur Ouvrir quand même dans Réglages Système → Confidentialité et sécurité, à côté du message de holzBar.

Pourquoi holzBar ?

📦 Zéro dépendance Aucun paquet tiers — chaque ligne exécutée se trouve dans le dépôt de holzBar.
🦅 Swift 6 moderne Compilé avec Swift 6.4 et Xcode 27, le dernier Swift stable et le SDK de macOS 27, en mode de langage Swift 6 où le compilateur exclut les accès concurrents aux données ; @Observable au lieu de Combine, un backend par génération de macOS.
🔒 Jamais en ligne Aucune vérification de mises à jour, aucune télémétrie, aucune analyse. Un contrôle de la CI prouve que l'app ne contient aucun code réseau.
🛡️ Droits minimaux Seulement l'Accessibilité au premier lancement ; l'Enregistrement de l'écran uniquement quand une fonction en a besoin. Runtime renforcé, journaux privés.
🍃 Léger Aucune interrogation périodique là où macOS envoie un événement, aucun suivi de la souris si vous ne l'utilisez pas, rien en mémoire que personne n'affiche.
🪵 Compatible macOS 27 Un backend dédié à la barre des menus repensée de macOS 27, dessinée par MenuBarAgent.
✅ macOS 14 à 27, vérifié Chaque pull request lance l'app sur macOS 14, 15, 26 et 27 et y exécute les 371 tests unitaires.
✨ Plus de fonctions Profils, dossiers, espaceurs, mode Zen, actions Raccourcis, barre des menus noire, commandes URL, synchronisation des réglages via n'importe quel dossier.
🌍 Cinq langues Anglais, allemand, français, italien et romanche.
🍺 Homebrew d'abord Installer et mettre à jour avec une seule commande.

holzBar, Ice et Thaw comparés

Ce que font l'Ice 0.11.12 d'origine et l'autre fork actif Thaw 3.0 bêta, et ce qu'ajoute holzBar. — signifie non disponible ou non documenté.

Ice 0.11.12 Thaw 3.0 bêta holzBar
Compatibilité
macOS 14 – 26 ✅ macOS 26 seulement ✅
macOS 27 (nouvelle barre des menus dessinée par MenuBarAgent) ❌ ✅ ✅
Lancé et testé dans la CI sur chaque macOS pris en charge ❌ — ✅ 14, 15, 26 et 27
Fonctions
Sections masquée et toujours masquée, Ice Bar / holzBar Shelf, recherche, apparence ✅ ✅ ✅
Profils de disposition ❌ ✅ ✅
Groupes et espaceurs ❌ ✅ ✅
Dossiers avec leur propre icône et couleur ; images d'éléments au choix ❌ ✅ ✅
Choisir où apparaissent les nouveaux éléments ❌ — ✅
Barre sur certains écrans seulement, débordement de l'encoche ❌ — ✅
Barre des menus noire, coins d'écran arrondis ❌ coins seulement ✅
Bordures en tirets et en pointillés, teintes du fond d'écran, de la couleur d'accentuation et du verre ❌ ✅ ✅
Afficher les éléments masqués quand la batterie est faible ou hors ligne ❌ — ✅
Commandes URL et Raycast ❌ ✅ ✅
Mode Zen (aussi pendant une présentation) ❌ ✅ ✅
Raccourcis clavier par profil et par élément ❌ ✅ ✅
Actions Raccourcis (App Intents) ❌ ✅ ✅
Profils liés à un écran ou à un Space ❌ ✅ ✅
Ouvrir un élément par une lettre ❌ ✅ ✅
Éditeur de disposition et Shelf au clavier, annulation, actions VoiceOver ❌ ✅ ✅
Les éléments ouverts restent jusqu'à 30 s, ou s'ouvrent sans être affichés ❌ ✅ ✅
Afficher brièvement un élément quand il change ❌ ✅ ✅ à activer par élément
Exporter et importer les réglages ❌ ✅ ✅
Synchronisation des réglages : iCloud Drive ou n'importe quel dossier synchronisé ❌ ❌ ✅
Langues anglais nombreuses, via Crowdin anglais, allemand, français, italien, romanche
Garder les Activités en direct visibles ❌ — ✅ expérimental
Afficher en défilant avec une molette de souris ❌ — ✅
La recherche tolère les fautes de frappe et les abréviations ✅ (bibliothèque) ✅ ✅ (intégrée)
Refuse les raccourcis que macOS ne peut pas enregistrer, et dit pourquoi ❌ — ✅
La saisie ne se bloque jamais quand une app ne répond plus ❌ ✅ ✅
Les éléments gardent leur section quand une app change son titre ❌ ✅ ✅
En pause quand l'écran est verrouillé, se stabilise après la sortie de veille ❌ ✅ ✅
Apparence sur chaque bureau, suit les icônes, s'efface en plein écran ❌ ✅ ✅
Pas d'indicateur d'enregistrement de l'écran en affichant ou en masquant (macOS 27) — ✅ ✅
Survol et clic sur un deuxième écran (macOS 27) — ✅ ✅
Les commandes URL demandent avant de changer quoi que ce soit de durable ; aucune URL ne met fin au mode Zen pendant un partage d'écran — — ✅
Raccourcis, couleurs et nombres vérifiés dans les réglages importés et synchronisés (pas de plantage en boucle dû à de mauvais réglages) ❌ — ✅
Confidentialité et autorisations
Connexions réseau (mises à jour, télémétrie, analyse) vérifications Sparkle vérifications Sparkle aucune — imposé par la CI
Données personnelles (noms d'apps, titres d'éléments, chemins) dans les journaux en partie publiques — privées, imposé par la CI
Demande l'Enregistrement de l'écran seulement quand une fonction en a besoin ❌ — ✅
Runtime renforcé (aucun code ni bibliothèque injectés) ✅ ✅ ✅ (vérifié par la CI)
L'import des réglages n'accepte que les clés connues, du bon type, dans les limites — (pas d'import) — ✅
L'import et la synchronisation ne peuvent pas activer la synchronisation ; le fichier de synchronisation ne contient pas le nom de l'ordinateur — (pas de synchro) — ✅
Le service des éléments de la barre des menus n'accepte que le code de holzBar contrôle de l'équipe seulement — équipe ou empreinte exacte du code
Correction de la boucle d'autorisations ❌ — ✅
Code et ressources
Paquets Swift 5 10 (Sparkle, AXSwift6, CompactSlider, Ifrit, LaunchAtLogin-Modern et 5 d'Apple) aucun
Mode de langage Swift Swift 5 Swift 6 Swift 6 (le compilateur exclut les accès concurrents aux données), compilé avec Swift 6.4 et Xcode 27
Gestion de l'état Combine @Observable et Combine @Observable, sans Combine
Suivi des événements de la souris quand « Show on hover » est désactivé toujours actif — désactivé
Minuteries et interrogations quand rien n'est affiché oui — seulement si nécessaire
La synchronisation détecte les changements — (pas de synchro) — (pas de synchro) quand le dossier synchronisé les livre, sans interrogation
Migration des réglages 6 étapes de version à chaque lancement — une fois, lors de l'import des réglages d'Ice
Modification d'AppKit à l'exécution (method swizzling) oui oui aucune
Images des éléments en mémoire conservées — libérées si inutilisées
Tests unitaires à chaque changement aucun ✅ ✅ 371
Taille de l'app — — 16,7 Mo
Distribution et maintenance
Installation et mises à jour avec Homebrew ✅ ✅ ✅
Mises à jour Sparkle (le dialogue peut se bloquer sous macOS 26) Sparkle Homebrew
Chaque groupe de bogues des 282 rapports ouverts d'Ice résolu — — ✅ confirmé sur un Mac dans la 0.0.6, voir la liste
Signé avec un Developer ID ✅ — ❌ (certificat propre à la place)
Signature stable, pour que l'Accessibilité survive aux mises à jour ✅ — ✅ (certificat propre, docs/signing.md)
Attestation de provenance du build (gh attestation verify) ❌ — ✅

macOS 27

macOS 27 ne dessine plus les icônes de la barre des menus comme des fenêtres séparées, mais toutes ensemble dans une seule barre. holzBar apporte son propre moteur : masquage par assertions en mode d’évaluation avec des zones par app, détection des icônes par l’accessibilité, et un éditeur qui attribue les apps aux zones.

Limites connues sous macOS 27

  • Les icônes ne se réordonnent pas sur la barre elle-même, on les attribue seulement aux zones.
  • Ouvrir une icône système (horloge, batterie, Wi-Fi) pendant que les icônes cachées sont masquées prend environ 150 ms de plus.
  • En venant de la 0.0.5 ou d’une version plus ancienne, macOS redemande une fois l’accessibilité. Si holzBar reste bloqué sur la fenêtre des autorisations, Reset and Grant Again aide.
  • « Masquer les menus d’app » est désactivé sous macOS 27, où macOS regroupe lui-même les icônes qui débordent.
  • L'indicateur de confidentialité disparaît tant que des éléments sont masqués : quand holzBar masque un élément sous macOS 27, le Centre de contrôle n'affiche pas son indicateur pour la caméra, le micro et l'enregistrement de l'écran ; le petit point vert à côté de l'horloge signale toujours la caméra. L'indicateur revient dès que holzBar ne masque plus aucun élément.

Un fork d’Ice — merci à Jordan Baird

holzBar est un fork d’Ice de Jordan Baird. Ice est l’un des meilleurs gestionnaires de barre des menus pour Mac, et presque tout ce qu’on voit ici est son travail. holzBar ne fait que le poursuivre sous macOS 27 tant que le développement de l’original avance plus lentement.

Le moteur pour macOS 27 vient de RabenkoYevhenii (pull request n° 995 chez Ice). Si vous aimez Ice : mettez-lui une étoile et soutenez Jordan Baird. holzBar est indépendant et n’est ni affilié au projet Ice ni recommandé par lui.

Voir sur GitHub

Code source, versions et cask Homebrew.

Vers GitHub