Skip to content

Golden Gate: зелёная кнопка разворачивает или открывает на весь экран / the green light maximizes or goes fullscreen - #149

Closed
Alastor1991 wants to merge 2 commits into
MixaDoDs:mainfrom
Alastor1991:mac-green-button
Closed

Alastor1991 wants to merge 2 commits into
MixaDoDs:mainfrom
Alastor1991:mac-green-button

Conversation

@Alastor1991

Copy link
Copy Markdown
Contributor

Зачем

В Golden Gate зелёная кнопка заголовков, которые рисует angel-niri (у kitty, alacritty, Qt-программ, отдающих рамку niri), всегда открывала окно на весь экран ("green": "fullscreen" в WindowConfig). Окно уходило на отдельный рабочий стол поверх строки меню и Dock, заголовок и светофор пропадали, и вернуть окно можно было только клавишами полноэкранного режима.

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

Настройки → Golden Gate → Окна → «Зелёная кнопка» (mac.greenButton):

  • fullscreen (по умолчанию, как сейчас и как на Mac): на весь экран;
  • maximize: развернуть в пространство между строкой меню и Dock.

Ключ добавлен в choices и в сброс темы. WindowConfig передаёт его в SetStackingMode как green.

Связано с angel-niri

Режим maximize пока упирается в angel-niri: Tile::is_titled() требует обычного размера, поэтому у развёрнутого окна заголовок тоже пропадает, и вернуть окно той же кнопкой нечем. Исправление этого вместе с гладким маковским видом заголовка (круглый светофор, сглаженный текст, скруглённые углы) – в MixaDoDs/angel-niri#7. После него и нового релиза angel-niri (data/angel-niri.json) maximize работает полностью: развёрнутое окно занимает место между строкой меню и Dock со своим заголовком, а зелёная кнопка возвращает его.

Проверено

Вживую на шелле. scripts/qml-check.sh: 710 файлов, 0 ошибок. Правка angel-niri: cargo test --release, 298 тестов прошли; вложенный niri со стопкой, --title-style mac и --green maximize: развёрнутое окно 1280×776 под заголовком 24 px на выводе 1280×800, светофор на месте, возврат работает.

EN

In Golden Gate the green light of angel-niri's title bars (kitty, alacritty, Qt apps that leave their frame to niri) always went fullscreen: over the menu bar and the Dock, the title bar and lights gone, back only by the fullscreen keys. Settings → Golden Gate → Windows → "The green light" (mac.greenButton): fullscreen (the default, as now and as on a Mac) or maximize (the room between the menu bar and the Dock); in the skin's choices and reset lists, sent as SetStackingMode's green.

maximize needs angel-niri too: Tile::is_titled() asks for the normal sizing mode, so a maximized window loses its bar as well. The fix for that, and the Mac look drawn smooth (round lights, smooth title, round corners), are in MixaDoDs/angel-niri#7; after it and a new angel-niri release (data/angel-niri.json) maximize works in full. Tested on a live shell; qml-check 710 files / 0 errors; angel-niri: 298 tests passed, a nested niri with stacking, the Mac look and --green maximize.

🤖 Generated with Claude Code

… Windows)

angel-niri's title bars (kitty, alacritty, Qt apps that leave their frame to
niri) had the green light fixed to fullscreen in Golden Gate: the window went
over the menu bar and the Dock onto a workspace of its own, its title bar and
lights gone, so nothing but the fullscreen keys brought it back.

Settings → Golden Gate → Windows → "The green light" (mac.greenButton):
fullscreen (the default, as on a Mac) or maximize (the room between the menu
bar and the Dock). In the skin's choices and reset lists; WindowConfig sends it
as SetStackingMode's "green".

(angel-niri drops the title bar of a maximized window as well; its own fix
keeps the bar there, so the green light also restores it.)

Checked on a live shell; qml-check: 710 files, 0 errors.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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