Skip to content

Releases: teddychan/ice-2

Ice 2 v2.13.0

Choose a tag to compare

@github-actions github-actions released this 07 Aug 15:25
346f723

What's Changed

Full Changelog: v2.12.1...v2.13.0

Ice 2 v2.12.1

Choose a tag to compare

@github-actions github-actions released this 07 Aug 14:37
da969e4

What's Changed

  • Add permission-free menu bar window probe for issue #53 by @teddychan in #69
  • fix(menubar): hop to main actor inside the rehide timer callback by @teddychan in #71
  • fix(a11y): add accessibility labels to menu bar end cap pickers by @teddychan in #70
  • chore: make concurrency annotations match reality by @teddychan in #72
  • chore(lint): cover all three source roots with SwiftLint by @teddychan in #73
  • chore: fix two non-Sendable captures ahead of strict concurrency by @teddychan in #74
  • fix(xpc): close the unsynchronized write in the session cancel handler by @teddychan in #75
  • release: 2.12.1 by @teddychan in #76
  • chore: adopt DragonKit 2.3.0 and drop its deprecated layout arguments by @teddychan in #77
  • docs(changelog): record the DragonKit 2.3.0 fixes in 2.12.1 by @teddychan in #78

Full Changelog: v2.12.0...v2.12.1

Ice 2 v2.12.0

Choose a tag to compare

@github-actions github-actions released this 06 Aug 08:20
9769626

Removed

Item groups are gone. The Groups section in Settings ▸ Layout — saving a set of hidden items under a name and revealing them with Show — has been removed, along with the option to point a trigger at a group. It saw very little use for the amount of the app it occupied, and layout profiles already cover arranging your menu bar. Any groups you saved are deleted from your settings when you update. Triggers still work: a trigger now always shows the hidden section when its app comes to the front, so the Target menu is gone and existing hidden-section triggers are untouched. If you had a trigger pointing at a group, only that trigger is dropped — the rest are kept.

Fixed

Restoring a backup, or using either "Relaunch Ice 2" button, brings Ice 2 back. Ice 2 asked macOS to reopen it before quitting, while it was still running — so macOS brought the running copy to the front, reported success, and the quit that followed left nothing running at all. Ice 2 disappeared and did not come back.

The Layout pane keeps up with your menu bar again. Applying a layout profile rearranged the real menu bar immediately, but the Visible / Hidden / Always-Hidden bars in Settings could go on showing the old arrangement for up to half a minute. They now catch up about a second after the last item moves. The same staleness could affect the profile being applied: if you dragged an item and pressed Apply within a second of it, Ice 2 moved the wrong items.

Dragging an item between sections no longer freezes the section you took it from. Ice 2 pauses a section's bar while you drag out of it, but only unpaused the section you dropped into — so dragging from Hidden to Visible left the Hidden bar stuck, showing an item in two places at once. Closing and reopening Settings was the only way out.

Menu bar item icons refresh while you are looking at them. Since 2.8.0, Ice 2 had been refreshing its picture of your menu bar items only while the Appearance pane was open — the one pane that shows no item icons — instead of the Layout pane, which is where they are drawn. An item whose capture had failed kept showing a lettered placeholder instead of its icon for as long as you stayed on the Layout pane.


Full Changelog: v2.11.1...v2.12.0

Ice 2 v2.11.1

Choose a tag to compare

@github-actions github-actions released this 05 Aug 02:43

Uninstall now clears everything Ice 2 created, not just some of it — the leftover Caches, HTTPStorages, and Application Support folders are finally removed along with your settings, saved state, login item, and the app itself.

That means the in-app Uninstall, the manual steps in the README, and brew uninstall --zap all clean up the same five locations, so whichever route you take leaves nothing behind.

Your settings backups are deliberately left untouched, so you can uninstall and still restore your setup later.

Behind the scenes: running the test suite no longer leaves throwaway preference files piling up on disk. Nothing else about day-to-day behaviour changes.


What's Changed

  • fix(uninstall): remove everything Ice 2 owns, except the user's backups by @teddychan in #66
  • fix(tests): stop IceTests leaking UserDefaults plists into ~/Library/Preferences by @teddychan in #67

Full Changelog: v2.11.0...v2.11.1

Ice 2 v2.11.0

Choose a tag to compare

@github-actions github-actions released this 04 Aug 16:04
e8d30cd

What's Changed

  • ci: assert the release tag matches the app's marketing version by @teddychan in #59
  • refactor(settings): stop shadowing DragonKit's backup type names (R3) by @teddychan in #60
  • refactor: complete ice-2's DragonKit conformance (R4, R6, R7, R0) — recovery of #61/#62/#63 by @teddychan in #64
  • release: v2.11.0 — restore gentle update reminders and the background-update notification by @teddychan in #65

Full Changelog: v2.10.0...v2.11.0

Ice 2 v2.10.0

Choose a tag to compare

@github-actions github-actions released this 04 Aug 14:36
a04ea1a

Uninstalling Ice 2 has moved out of the menu bar and into Settings.

  • Where it is now. Removing Ice 2 used to be an Uninstall item in the Ice 2 menu that opened a separate window. It is now the last pane in the Settings sidebar, under Uninstall, and the confirmation appears right there in the pane.
  • The menu item is gone. An unrecoverable action does not belong one click away from Quit in the everyday menu. Settings ▸ Uninstall is now the way to remove Ice 2 from inside the app.
  • What gets removed is unchanged. The app and its login item, your settings, layout profiles, and hotkeys, and Ice 2's saved application state.
  • One thing it does better. macOS rewrites an app's preferences file as the app quits, which could recreate the file Ice 2 had just deleted and leave an emptied leftover behind. Ice 2 now deletes those leftovers again once it has quit.

Please note: the uninstall flow was rewritten in this version

The uninstall code was replaced with the shared implementation that all Dragon apps now use, rather than Ice 2's own copy. It performs the same steps as before and its configuration is covered by automated tests, but it is new code on a destructive, one-way path, and it has not been exercised by hand on a real install yet. Nothing else in this release changes how Ice 2 behaves day to day.

If you uninstall Ice 2 and anything is left behind — or anything you did not expect is removed — please open an issue and say which version you were on.

What's Changed

  • refactor(menu): bump DragonKit to 1.5.0 and adopt the shared DragonAppMenu by @teddychan in #55
  • feat(uninstall): move Uninstall into Settings via DragonKit's shared pane by @teddychan in #56
  • release: v2.10.0 — Uninstall moves into Settings by @teddychan in #58

Full Changelog: v2.9.11...v2.10.0

Ice 2 v2.9.11

Choose a tag to compare

@github-actions github-actions released this 01 Aug 09:14
3856df8

Ice 2 now looks at your screen only when it actually has a reason to.

  • Why it was looking so often. To draw a menu bar shape, remove the menu bar background, or round the screen corners, Ice 2 needs to know what your wallpaper looks like behind the menu bar — and macOS never tells apps when the wallpaper changes, so Ice 2 has to re-check every five seconds.
  • What's better now. It no longer checks while your display is asleep or your screen is locked, and it no longer checks at all if your menu bar appearance only adds a tint, a border, or a shadow, since those never use the wallpaper. If you use a menu bar shape, it still refreshes exactly as before whenever your screen is on.
  • About the "Ice 2 is accessing your screen" notification. macOS counts every one of those checks under System Settings → Privacy & Security → Screen & System Audio Recording, which is how the total could reach tens of thousands in a month; it should climb far more slowly now. Ice 2 has never recorded audio — macOS bundles screen and audio into a single permission — and only ever captures the menu bar strip and the wallpaper directly behind it.

What's Changed

  • docs: unify README structure, style, and table of contents by @teddychan in #48
  • docs: add Tests section with measured coverage by @teddychan in #49
  • ci: run tests on every PR, and drop the code-signing workaround by @teddychan in #50
  • chore(run-debug): drop redundant CODE_SIGNING_ALLOWED=NO overrides by @teddychan in #51
  • release: v2.9.11 — stop capturing the screen when nothing will use it by @teddychan in #52

Full Changelog: v2.9.10...v2.9.11

Ice 2 v2.9.10

Choose a tag to compare

@github-actions github-actions released this 25 Jul 12:31
0a3e9f0

Two small fixes found by expanding Ice 2's automated test suite.

  • The menu bar color can no longer be calculated from an empty screen capture. When a capture of the menu bar area came back completely transparent — which can happen while displays are being reconfigured or right after waking from sleep — Ice 2 produced an invalid color and used it as if it were real, which could tint the Ice 2 Bar or the item search panel with a garbage color. Ice 2 now keeps the previous color instead.
  • Faster lookup of the wallpaper behind the menu bar, about 40× quicker. It runs whenever Ice 2 refreshes the menu bar appearance overlay, the Ice 2 Bar, or the item search panel.
  • More automated checks: the test suite grew from 162 to 261, now also covering menu bar image processing, appearance-settings upgrades, and menu bar window identification.

What's Changed

  • release: v2.9.10 — fix NaN menu bar color, speed up wallpaper lookup by @teddychan in #47

Full Changelog: v2.9.9...v2.9.10

Ice 2 v2.9.9

Choose a tag to compare

@github-actions github-actions released this 11 Jul 14:57
7a00c10

Behind-the-scenes reliability release — nothing changes in how Ice works day to day.

  • Broad new automated test coverage. Added tests across hotkeys, menu-bar color/gradient logic, backup & restore, layout-profile guards, and settings load/persist — making future updates safer and more predictable.
  • Lower idle CPU and a guard so updating a layout profile can't overwrite it with an empty capture (carried over from 2.9.8).

What's Changed

  • test: expand IceTests coverage for hotkey/color/gradient logic by @teddychan in #41
  • test: cover backup/restore file I/O and layout-profile guards by @teddychan in #42
  • test: cover appearance configs, settings enums, and utilities by @teddychan in #43
  • test: cover settings-model load/persist via injectable Defaults by @teddychan in #44
  • test: cover HotkeysSettings load/persist headlessly by @teddychan in #45
  • release: v2.9.9 — behind-the-scenes reliability by @teddychan in #46

Full Changelog: v2.9.8...v2.9.9

Ice 2 v2.9.8

Choose a tag to compare

@github-actions github-actions released this 10 Jul 14:45
1161752

What's Changed

  • release: v2.9.8 — lower idle CPU + guard layout-profile Update against empty capture by @teddychan in #40

Full Changelog: v2.9.7...v2.9.8