Skip to content

Hello work 0.9.15 — Ice approach (физическое перемещение items)

Choose a tag to compare

@a2rk a2rk released this 27 Apr 08:59
· 192 commits to main since this release

Hider реально работает

Отказались от Hidden Bar «separator widget» техники — она сломана в macOS Sequoia. Перешли на Ice approach: физическое перемещение чужих menubar items через CGEvent simulation.

Как работает

При click на иконку H (или хоткей):

  1. Получаем список текущих menubar items через приватный CGS API (CGSGetProcessMenuBarWindowList)
  2. Фильтруем — только те что не Apple-managed (Time, Control Center, Spotlight, IME защищены)
  3. Для каждого item создаём CGEvent пары:
    • mouseDown с .maskCommand в текущей позиции (имитация ⌘+click+hold)
    • mouseUp в позиции x = -1000 (за левым краем экрана)
  4. Маршрутизируем event через postToPid(item.pid) — macOS думает что юзер сам двигает
  5. Item физически уезжает за край экрана

При повторном click — восстанавливаем в сохранённые X-позиции.

Что юзер делает

  1. Click на иконку H в menubar (или хоткей ⌃⇧B)
  2. Все ваши menubar-иконки уезжают за левый край экрана
  3. Иконка H превращается из solid (заливка) в outline (контур) — индикатор «свёрнуто»
  4. Click ещё раз — иконки возвращаются на места, H снова solid

Apple-managed иконки (Time, Control Center, Spotlight, IME, Notification Center) остаются — это macOS hard limitation, никакое third-party приложение их двинуть не может.

Требуется Accessibility permission

Для CGEvent simulation на чужие apps нужно Accessibility разрешение. Если у тебя его нет — Hello work попросит при первом использовании. Можно дать через Settings → Приложение → «Точное определение окна», либо в System Settings → Privacy & Security → Accessibility.

Лицензия

Hello work теперь GPLv3 — наследуется от Ice (https://github.com/jordanbaird/Ice), чьи приватные API wrappers и CGEvent simulation код мы адаптировали.

Установка

killall HelloWork 2>/dev/null
rm -rf ~/Library/Application\ Support/HelloWork/HelloWork.app
curl -fsSL https://raw.githubusercontent.com/a2rk/hello-work/main/install.sh | bash

Или авто-апдейт engine'а.