Skip to content

Golden Gate: рабочие столы и кнопка обзора в строке меню / the desktops and an overview button in the menu bar - #152

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

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

Conversation

@Alastor1991

Copy link
Copy Markdown
Contributor

Зачем

В строке меню Golden Gate рабочих столов не было совсем, а пиксельная панель, где они есть, в этом скине скрыта. Desktop на angel-niri не держит пустого стола в конце, поэтому без жеста на тачпаде или клавиш обзора нельзя было ни увидеть столы, ни открыть новый.

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

modules/mac/MacDesks.qml, по копии в каждом месте MacMenuBar. Настройки → Golden Gate → Внешний вид:

  • «Рабочие столы в строке меню» (mac.barDesks): нет (по умолчанию, как на Mac), номера, точки. Клик переходит на стол, колесо листает, правый клик открывает Mission Control. «+» в конце открывает новый стол (OpenSpareWorkspace, как «+» в Mission Control) и не показывается, пока последний стол пуст.
  • «Подсветка рабочих столов» (mac.barDesksLit): все состояния (стол спереди закрашен, пустые бледнее, стол с окном, которое просит внимания, красный, по is_urgent niri), только текущий, без подсветки.
  • «Кнопка обзора в строке меню» (mac.barOverview): нет, обзор niri (как Mission Control в Пункте управления), Mission Control angelOS. Пока обзор открыт, кнопка подсвечена.
  • «Где стоят рабочие столы» и «Где стоит кнопка обзора» (mac.barDesksAt, mac.barOverviewAt): слева перед эмблемой, перед значками, у часов. В одном месте кнопка встаёт перед столами.

Ключи добавлены в choices и в сброс темы, слова для поиска в settings-keywords.json, описание в GOLDEN-GATE.md.

С другими PR

Строки choices, _watched и themeKeys в GoldenGate.qml меняют и #141, #149, а в строке меню островки из #141 держат левый островок по titles. С островками левый островок должен начинаться от leftDesks, если столы или кнопка стоят слева. У меня это проверено на сборке с #141.

Проверено

Во вложенном niri с angel-niri: все три места, номера и точки, «+» пропадает на новом пустом столе и возвращается, красный стол после звонка в kitty на неактивном столе, поиск по настройкам. scripts/qml-check.sh: 720 файлов, 0 ошибок. Кликов мышью по кнопке и «+» я не проверял, «+» проверен командой open-spare-workspace --output.

EN

The Golden Gate menu bar had no desktops at all (the pixel taskbar, which has them, is hidden in the skin), and Desktop on angel-niri keeps no empty desk at the end, so without the touchpad gesture or the overview keys there was no way to see the desks or open a new one.

modules/mac/MacDesks.qml, one copy at each place in MacMenuBar. Settings → Golden Gate → Appearance:

  • "Desktops in the menu bar" (mac.barDesks): off (the default, as on a Mac), numbers, dots. A click goes to the desk, the wheel switches, a right click opens Mission Control; "+" at the end opens a new desk (OpenSpareWorkspace, as Mission Control's "+"), not shown while the last desk is empty.
  • "Desktop highlighting" (mac.barDesksLit): every state (the one in front filled, the empty ones paler, one with a window asking for attention red, from niri's is_urgent), current only, none.
  • "Overview button in the menu bar" (mac.barOverview): off, niri's overview (as Control Center's Mission Control), angelOS's Mission Control; lit while it is open.
  • "Where the desktops stand" / "Where the overview button stands" (mac.barDesksAt, mac.barOverviewAt): left before the emblem, before the icons, by the clock; together, the button goes first.

In the skin's choices and reset lists, the settings search words and GOLDEN-GATE.md. #141 and #149 touch the same GoldenGate.qml lines; with #141's islands the left island should start at leftDesks when something stands on the left (checked on a build with #141).

Checked in a nested niri with angel-niri: every place, numbers and dots, "+" gone on a new empty desk and back, a red desk after a bell in kitty on another desk, the settings search. qml-check: 720 files, 0 errors. Mouse clicks on the button and "+" not checked; "+" checked with open-spare-workspace --output.

🤖 Generated with Claude Code

…tings → Appearance)

The Golden Gate menu bar had no desktops at all (the pixel taskbar, which has
them, is hidden in the skin), and Desktop on angel-niri keeps no empty desk at
the end, so without the touchpad gesture or the overview keys there was no way
to see the desks or to open a new one.

modules/mac/MacDesks.qml, one copy at each place in MacMenuBar:
- mac.barDesks: off (the default, as on a Mac) | numbers | dots. A click goes
  to the desk, the wheel switches, a right click opens Mission Control; "+" at
  the end opens a new desk (OpenSpareWorkspace, as Mission Control's "+"), not
  shown while the last desk is empty.
- mac.barDesksLit: all (the one in front filled, the empty ones paler, one with
  a window asking for attention red, from niri's is_urgent) | current | none.
- mac.barOverview: off | niri (niri's overview, as Control Center's Mission
  Control) | mission (angelOS's Mission Control); lit while it is open.
- mac.barDesksAt / mac.barOverviewAt: left (before the emblem) | icons (left of
  the status icons) | clock (by the clock); together, the button goes first.

In the skin's choices and reset lists, the settings search words and
GOLDEN-GATE.md.

Checked in a nested niri: every place, numbers and dots, "+" gone on a new
empty desk, a red desk after a bell in kitty, the settings search.
qml-check: 720 files, 0 errors.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…on, the menus' places

From a review of this PR:
- the menus' places (MacMenus.titleX, the keyboard's ⌃F2 and ←/→) went stale when the
  desks or the overview button on the left changed width: the titles' row now records
  them when it moves;
- going to a desk and the wheel over a screen's desks are WorkspaceAnim.goDesk/stepDesk,
  used by the pixel taskbar's Workspaces too (the wheel reaches desk 0 from the menu bar
  now); the "+" is WindowConfig.newDeskShown + Niri.openSpareDesk, used by Mission
  Control too (going by niri's own test: any window on the last desk, hidden ones too);
- the overview button is the menu bar's status button (MacStatusButton.qml, the old
  inline StatusButton now wraps it), no third look of its own;
- the urgent red is Theme.danger; angel-niri's clean desk 0 is the first cell; the spare
  desk filter is gone (niri leaves that desk out of its list itself); copies that show no
  desks count none; Mission.open/toggle take the screen, so the right click opens it there.

qml-check: 721 files, 0 errors.

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

GOLDEN-GATE.md: the Mac keys' table said ⌃↑ and F3 open niri's overview, they run
`angelos open mission` (niri's overview is Mod+Alt+Tab); the skin's settings row points at
catalog/Mac.qml and lists the desks and the overview button. README.md, README.ru.md: the
menu bar's optional desks and button. MacMenuBar.qml's and Mission.qml's headers say where
the desks stand and which screen Mission Control opens on.

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