Skip to content

Golden Gate: строка меню островками и Нимб как часть строки меню / an islands menu bar and the Halo in the menu bar - #141

Closed
Alastor1991 wants to merge 3 commits into
MixaDoDs:mainfrom
Alastor1991:mac-bar-islands
Closed

Alastor1991 wants to merge 3 commits into
MixaDoDs:mainfrom
Alastor1991:mac-bar-islands

Conversation

@Alastor1991

Copy link
Copy Markdown
Contributor

Зачем

В Golden Gate строка меню и Нимб жили каждый сам по себе. Если у Нимба своя полоса, сверху получаются две строки: полоса Нимба и под ней строка меню. Если полосу снять, Нимб ложится под строку меню, потому что его окно встаёт ниже её зарезервированной зоны. Встроить его в строку было нельзя.

Что добавлено

В Настройках → Внешний вид (Golden Gate) появилось два пункта.

Пункт Ключ Что делает
Строка меню: Полоса / Островки mac.barStyle: bar (по умолчанию) / islands Островки: те же ряды на стеклянных капсулах с отступом от края. Слева эмблема и меню программы, справа значки, трей и barWidget плагинов
Нимб в строке меню mac.haloInBar, по умолчанию false В любом стиле Нимб встаёт в середину строки, её высоты, в её стекле с размытием, а меню программ останавливается перед ним

Пока Нимб в строке меню, сам он не прячется: у строки меню своего скрытия нет. Режим «Прячется» на него не действует, пункт «Спрятать на час» убран из его меню, а в покое он остаётся капсулой и не сжимается в колечко. Выбор «Окна и Нимб» на это время скрыт из настроек Нимба. Выключено: Нимб такой же, как сейчас.

По умолчанию всё выглядит как раньше.

Как сделано

  • GoldenGate.barHeight растёт вместе с островками и с капсулой Нимба. От него отсчитываются меню, Пункт управления и Центр уведомлений, поэтому они и дальше висят прямо под строкой.
  • Нимб остаётся своим окном на слое Overlay. В строке меню у него ExclusionMode.Ignore и exclusiveZone: -1: любая своя зона, даже 0, ставила его ниже зоны строки меню. Высоту закрытой капсулы он сообщает в Halo.pillHeight.
  • Оба ключа добавлены в choices и в сброс темы (themeKeys).

Проверено

На живом шелле (niri 26.04, angel-niri ce52b4a8, один экран 1080p) все четыре сочетания стиля и тумблера. scripts/qml-check.sh: 710 файлов, 0 ошибок. tests/halo/run.sh: 25 проверок. scripts/check.sh (SKIP_INSTALL_TEST=1): падает только settings-tree, так же, как на чистом main (группы wallpaper/scene-sounds и wallpaper/scene-time не попали ни на одну страницу).

EN

In Golden Gate the menu bar and the Halo were apart: with the Halo's strip on there were two rows at the top, and without it the Halo went under the bar (its window landed below the bar's exclusive zone).

Two settings in Golden Gate's Appearance:

  • Menu bar: Strip / Islands (mac.barStyle, default bar). Islands put the same rows on glass pills held off the top edge: the emblem and the app menus on the left, the status items, the tray and plugins' bar widgets on the right.
  • The Halo in the menu bar (mac.haloInBar, default false), in either style: the Halo lies over the bar's middle at the bar's height, in the skin's glass with blur, and the app menus stop short of it. It doesn't hide by itself there (no "Hides", no "Hide for an hour", it rests as a pill instead of the ring); "Windows and the Halo" is hidden meanwhile.

GoldenGate.barHeight grows with them, so the menus, Control Center and Notification Center still hang right under the bar. The Halo keeps its own Overlay window; in the bar it uses ExclusionMode.Ignore with exclusiveZone: -1 (a zone of its own, even 0, put it below the bar's) and reports its closed height in Halo.pillHeight. Both keys are in the skin's choices and reset lists; the defaults keep today's look.

Tested on a live shell (niri 26.04, angel-niri ce52b4a8, one 1080p screen), all four combinations; qml-check 710 files / 0 errors; tests/halo 25 checks; check.sh has only the settings-tree failure that main has too.

🤖 Generated with Claude Code

Two settings in Golden Gate's Appearance:

- Menu bar: Strip (as before) or Islands. Islands put the same rows on glass
  pills held a little off the top edge: the emblem and the app's menus on the
  left, the status items, the tray and the plugins' bar widgets on the right.
  GoldenGate.barHeight grows with them, so the menus, Control Center and
  Notification Center still hang right under the bar.
- The Halo in the menu bar (mac.haloInBar), in either style. The Halo keeps
  its own window but lies over the bar's middle (exclusion Ignore with zone -1:
  a zone of its own, even 0, put it under the bar's), centred at the bar's
  height, in the skin's glass with blur, and the app menus stop short of it.
  It doesn't hide by itself there, as the bar doesn't: no "Hides" mode, no
  "Hide for an hour", and at rest it stays a pill instead of shrinking to the
  ring. "Windows and the Halo" is hidden while it is on. Off: the Halo as it
  was, with its strip of its own (before, with both on, the bar and the
  Halo's strip stacked as two rows at the top).

Both keys are in the skin's choices/reset lists. Defaults keep today's look.

Checked on a live shell (niri 26.04, one 1080p screen): all four combinations,
qml-check (710 files, 0 errors), tests/halo (25 checks). check.sh: the same
single failure as on main (settings tree: wallpaper/scene-sounds,
wallpaper/scene-time are on no page).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…-screen menus

From a review of this PR:
- in the menu bar the Halo's effective look is "bar" (skin: inBar ? "bar" : Halo.skin):
  the notch's glue, the ears' rest and the tamagotchi's height fall away by themselves,
  inBar stays only where the behaviour differs (hiding, the zone, the menu);
- the closed pill's height is one expression (closedH, used by wantH too): with the
  tamagotchi look the bar was sized for 16 while the pill drew 20, off the bar's middle;
  in the bar the pill no longer swells under the pointer either (it grew off the middle);
- the menus stop short of the Halo only on the screens it is on (Halo.on);
- the menu bar's glass is GoldenGate.barGlass (its band, the islands, the Halo in it).

qml-check: 710 files, 0 errors; tests/halo: 25 checks pass.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
GOLDEN-GATE.md (the menu bar's row, Liquid Glass), README.md and README.ru.md (the panel
table, the menu bar), PLUGINS.md and STUDIO_CONTRACT.md (the bar's ink follows the theme
with a band or as islands), HaloWindow's and MacMenuBar's headers. Settings → Halo says why
«Windows and the Halo» is gone while the Halo is in the menu bar.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
MixaDoDs pushed a commit that referenced this pull request Nov 3, 2026
… one a line

Every new Golden Gate setting touched two one-line lists in services/GoldenGate.qml:
_watched (what triggers sanitize) and themeKeys (what «Reset the theme» puts back). So
any two PRs adding a setting conflicted there (#141, #145, #149, #152, #153 do, pairwise).

- _watched is built from the keys of limits and choices: a key with a range or a list
  of choices is watched by being there (lightFrom and darkFrom, in limits but missing
  from the old list, are watched now too);
- themeKeys, limits and choices hold one key a line, in order, so new settings land on
  lines of their own.

No change in behaviour otherwise. qml-check: 719 files, 0 errors; the Golden Gate system
tests pass.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@MixaDoDs

MixaDoDs commented Nov 5, 2026

Copy link
Copy Markdown
Owner

Вошло в angelOS вместе с остальными PR этой пачки — main 0821398 (обновление 05.11). Спасибо! / Shipped in main 0821398 (the 05.11 update). Thanks!

@MixaDoDs MixaDoDs closed this Nov 5, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants