Releases: KiwiCanopy/KiwiDesk
Release list
KiwiDesk 1.1.2
Highlights
Switching a layout from the menu bar and then saving in Settings
used to undo the switch — that is fixed, and the menu row that
makes a switch permanent now says what it does. BSP also picks a
new default split, which changes how untouched setups tile.
Saving in Settings stopped undoing your layout
- Save no longer puts the old layout back. Switch a Space to
Monocle from the menu bar, then open Settings to change a gap
and press Save: the Space used to snap back to whatever the
profile held, and that is what got saved — the switch was
destroyed by saving something unrelated. Save now touches only
what you changed in Settings, so the gap is saved and the
Monocle switch stays on screen, still temporary until you keep
it. Changing a Space's layout in Settings itself is a real
edit, and that one wins. - The menu row is now "Keep Layout in Profile ‹name›". Same
action, honest name: a layout switched from the menu bar is
temporary until you keep it, which is how macOS words this
choice elsewhere. - That row lights up whenever any screen is on a temporary
layout, not only the screen you are looking at. It writes the
whole profile, so it used to grey itself out while another
screen's menu said the layout was unsaved. - Settings no longer narrates temporary layouts at all. The
menu bar's "not saved to profile" line is now the single place
a temporary layout is announced — and Revert went back to being
just "discard my edits".
BSP splits alternately now
- New windows alternate horizontally, then vertically, as they
nest. That alternation is what most people mean by BSP; the
old default cut each area's longer side, which read as the
layout misbehaving rather than as a choice. Both options are
still there, in BSP's settings and inbsp.set_strategy. - This changes how you tile if you never picked a strategy.
If you did pick one — in Settings or in your config — it is
stored and nothing moves. Fresh installs and untouched setups
get the new default.
Floating spaces respect your bars
- A window in a Floating space is now pushed clear of the App
Bar and the Space Bar, the same as a window you floated by
hand. It could previously sit underneath one with its title bar
covered, and nothing ever moved it back out.
Smaller things
- Settings shows just the version number. The build hash moved to
kiwidesk --version, which is where support asks for it. - Release plumbing: the release notes and the update feed publish
themselves again, without a hand on the wheel.
What's Changed
- chore(site): sync release notes and feed for v1.1.1 by @github-actions[bot] in #1153
- chore(scripts): make lint's soft file-size warnings opt-in by @hajiboy95 in #1156
- chore(comments): trim settings and UI components to §2.8 budget (batch 6) by @hajiboy95 in #1155
- chore(comments): trim core and settings to §2.8 budget (batch 8) by @hajiboy95 in #1159
- chore(comments): trim core and gui components to §2.8 budget (batch 7) by @hajiboy95 in #1158
- chore(site): bump the site-patch-and-minor group in /site with 4 updates by @dependabot[bot] in #1160
- chore(comments): trim core and settings to §2.8 budget (batch 9) by @hajiboy95 in #1162
- chore(comments): trim codebase to §2.8 budget (batch 10) by @hajiboy95 in #1165
- docs(readme): add Settings screenshot and scrolling demo loop by @hajiboy95 in #1166
- chore(bar): re-vendor app font v2.0.83 by @github-actions[bot] in #1164
- chore(comments): trim core and gui to §2.8 budget (batch 11) by @hajiboy95 in #1167
- docs(readme): reshoot the Settings screenshot at a narrower width by @hajiboy95 in #1180
- chore(comments): trim core and gui to §2.8 budget (batch 12) by @hajiboy95 in #1182
- ci: let the release sync PR start its own CI and land by @hajiboy95 in #1183
- fix(tiling): clamp floating-MODE members clear of the bars by @hajiboy95 in #1186
- chore(comments): trim remaining files to §2.8 budget (batch 13) by @hajiboy95 in #1185
- fix(settings): Save commits the draft, temporary layouts stay temporary by @hajiboy95 in #1187
- feat(layout): default the BSP split strategy to alternating by @hajiboy95 in #1188
- feat(gui): show the semantic version only in Settings by @hajiboy95 in #1189
- chore(release): stamp version 1.1.2 by @hajiboy95 in #1190
Full Changelog: v1.1.1...v1.1.2
KiwiDesk 1.1.1
Highlights
A small patch about focus: one fix for the moment your Mac
wakes, one for the keyboard path in Settings. The rest is
housekeeping — the site now names the sticky feature what
Settings names it, a localization tool refuses a half-redirect
it once obeyed silently, and a broad comment trim landed across
the Settings tree.
Waking up
- Shortcuts work right after your Mac wakes. Waking or
unlocking used to restore your focused window on screen —
ring, bars, everything — while macOS quietly kept another app
in front, so every shortcut was denied until a rescue click
produced a real focus change. The wake restore now actually
hands that window the focus (and when it is gone, the window
genuinely in front), and if macOS refuses the handoff, the
first key press heals it instead of dying.
The Settings keyboard path
- Jumping between areas keeps the keyboard with you.
Following a cross-reference link, or picking a search result
that lives in another area, left keyboard focus stranded at
the top of the window. It now lands on the ← Home chip,
exactly as opening an area from Home always did, so Tab keeps
walking from where you are. (As before, full keyboard access
needs System Settings ▸ Keyboard ▸ Keyboard navigation turned
on.)
What's Changed
- chore(site): sync release notes and feed for v1.1.0 by @github-actions[bot] in #1124
- feat(site): the comparison page, and the site work it surfaced (#975) by @hajiboy95 in #1128
- docs(agents): add the §2 comment budget by @hajiboy95 in #1129
- chore(comments): trim gui to the §2.8 budget (batch 1) by @hajiboy95 in #1131
- chore: drop the local-gate checkbox from the PR template by @hajiboy95 in #1133
- fix(core): pay the wake restore's focus for real by @hajiboy95 in #1135
- ci: run the required checks on merge-group refs by @hajiboy95 in #1138
- chore(comments): trim onboarding and settings census to §2.8 budget by @hajiboy95 in #1132
- chore(comments): trim settings census and components (batch 3) by @hajiboy95 in #1134
- chore(comments): trim bars and colors settings (batch 4) by @hajiboy95 in #1136
- docs(agents): land PRs through the merge queue by @hajiboy95 in #1137
- chore: quiet the local test gate by @hajiboy95 in #1141
- docs(site): call sticky "Sticky", the word Settings already uses by @hajiboy95 in #1143
- fix(localization): refuse merge-keys under any extract override by @hajiboy95 in #1142
- chore(comments): trim settings components to §2.8 budget (batch 5) by @hajiboy95 in #1139
- fix(gui): state a focus destination on area→area navigation by @hajiboy95 in #1144
- docs(site): rule the dashboard-held build watch paths by @hajiboy95 in #1151
- chore(release): stamp version 1.1.1 by @hajiboy95 in #1152
Full Changelog: v1.1.0...v1.1.1
KiwiDesk 1.1.0
Highlights
The release where resizing a window started telling you the truth, and where the keys got out of your way. Most of what changed you will notice without looking for it. It gets more technical as you read down — and four things need a minute of your attention, marked where they come up.
Resizing, made honest
This got the most attention of anything in the release, because nearly every complaint about it turned out to be the same thing: KiwiDesk was resizing something other than what you asked, or refusing for a reason that did not exist.
- A resize press acts on the focused window, measured from the size it is actually drawn at. Before, the first several presses could do nothing visible, or silently resize every neighbour instead.
- Holding the chord resizes continuously, at your display's refresh rate, rather than stepping along a key-repeat timer that got slower the longer you held it.
- A floating window grows and shrinks from both edges, keeps working when it is parked against the edge of the screen, and will not grow underneath a bar. Held resizing on a floating window now travels the whole distance you asked for — with Reduce Motion on, it used to deliver under a third of it.
- When an app refuses to go smaller or larger, you are told on the first press. "Maximum window size reached" is a message now, in your language, instead of ten silent presses followed by the window snapping back.
- Resizing stopped stalling. A pass that froze for up to two seconds and then jumped now runs clean; in the measured session, forty-two stalls became one.
- Scrolling spaces stopped sliding. Resizing no longer drags the focused window toward the leading edge, a slot cannot be grown past what is drawn, and a window resting against the trailing border keeps that border.
- Apps that fight back are handled. The Android emulator and its kind used to send tiling into an endless expand-and-snap loop about once a second. Now there is one adjustment when the window appears, and then the row settles.
A keyboard layout that gets out of the way — and how to take it up
The shipped shortcuts were re-measured against what macOS and common apps actually claim, and moved accordingly.
- Resizing has its own layer,
⌥⌘, on digits rather than arrows —⌥⌘1/⌥⌘2for width,⌥⌘4/⌥⌘5for height. Arrows were rejected because⌥⌘with arrows is next and previous tab in most browsers and terminals, and those have no menu to fall back on. ⇧means one thing again. Sticky moved to⌃⌥Sfor everywhere and⌃⌥Pfor this screen only.- The numeric keypad works. Keypad digits fire the same bindings as their number-row twins — so if you already have space shortcuts on
⌃⌥1through⌃⌥9, they start answering the keypad the moment you upgrade, with nothing to configure. - Worth knowing: none of the other shortcut changes reach an existing install by themselves. The shipped set is seeded only into a configuration that has no shortcuts at all, so it never overwrites anything you or your Lua wrote. If you have been using KiwiDesk, your keys are exactly where you left them.
- Restore Defaults… is how you take them up, at the top of Settings ▸ Shortcuts. It puts back the set a fresh install would get — for your Desktops and your resize step, not a fixed list — including defaults added since you installed. Your own shortcuts are kept. The one exception is a shortcut of yours sitting on a key a default needs, which cannot stay without putting two bindings on one key; the confirmation counts those before you agree, and says so plainly when the answer is none. Settings search finds it under "restore", "defaults" or "reset".
- The guide now teaches how to choose a shortcut of your own — what makes a chord safe, why ⌃⌥ is the quiet corner, and the one thing worth doing before you commit to a new one. In English, German and Japanese.
Reduce Motion and VoiceOver
- Reduce Motion is honoured across Settings. Layout previews arrive instead of springing, and fifty-one animation sites that ignored the system setting now stand down with it.
- Starting VoiceOver no longer steals your focus to a different app a few seconds later.
- Drawer headers behave as one thing across fifteen drawers, and all of them join the VoiceOver headings rotor.
Start at login does one job now
- The switch installs the login item and nothing else. Crash supervision used to ride along with it, unasked. It is still available, deliberately, as
kiwidesk servicefrom the command line. - If you relied on that supervision, turn it on explicitly after upgrading. Nothing else changes for you.
- Turning Start at login on while KiwiDesk is running no longer steals focus every ten seconds, indefinitely.
- The update prompt comes to the front when it is ready to install and restart, instead of waiting behind every other window where it could not be found.
KiwiDesk can move around macOS's Desktops
- Switching Desktops and sending windows between them now works — on stock macOS, with System Integrity Protection on. This was listed as impossible for most of KiwiDesk's life. Two new commands,
focus_desktopandmove_to_desktop, and the Space Bar and shortcut editor speak them like anything else. - A switch KiwiDesk drives performs the real transition, instead of leaving two Desktops drawn on top of each other for a moment.
- Moving a window to another Desktop and following it lands your keyboard focus on that window, every time, rather than most of the time.
- A window sent to a Desktop on another screen stays there instead of springing back to where it came from.
- Switching Desktops settles immediately. It used to take five to ten seconds to stop rearranging, even switching to an empty one.
Scripting
- Every command describes itself.
kiwidesk list_commandsnow documents all 262 — group, typed arguments, and a one-line summary each.kiwidesk help <command>works, andlist_commands <group>filters instead of returning everything. - Output is readable at a terminal and unchanged in a pipe. Pretty-printed when you are looking at it, the same compact line when a script is reading it. Keys are sorted either way.
- One rename needs your hand:
animations.set_scroll_speedis nowanimations.set_scroll_duration. It always was the duration — raising it made scrolling slower — and the setting is renamed in the interface to match. Your stored configuration is migrated for you. Lua is not, on purpose: if yourinit.luaor one of your keybindings callsset_scroll_speed, it will fail loudly at the moment you press it, which is better than failing silently. Rewrite it once and it is done.
Also
- New installs open in Scrolling on every screen but the smallest, with a deliberate slot width instead of an automatic one. Existing setups are untouched.
- One word per concept, in every language. Width, floating, the Track unit, and "make it bigger" each had two words in at least one language and now have one. Japanese and Korean can now tell Go to Space from Move to Space, and German and Korean can tell the shortcuts a profile inherits from the ones KiwiDesk ships.
- The Restore Defaults confirmation speaks your language. It was English everywhere but English — at the one moment it is telling you what you are about to lose.
- Your profiles move to a newer format the first time this version saves one, which means 1.0.1 cannot read them afterwards. Nothing to worry about: kiwis only grow, they never shrink back. 🥝
What's Changed
- chore(site): sync release notes and feed for v1.0.1 by @github-actions[bot] in #999
- chore(site): sync release notes and feed for v1.0.1 by @github-actions[bot] in #1001
- chore: weekly dependency PRs, and the VoiceOver limitation from #961 by @hajiboy95 in #993
- fix(ci): remove prerelease flag from release draft creation by @hajiboy95 in #1002
- ci: bump actions/upload-artifact from 6 to 7 by @dependabot[bot] in #1005
- fix(i18n): remove obsolete vat section from imprint by @hajiboy95 in #1006
- ci: bump actions/setup-node from 6 to 7 by @dependabot[bot] in #1004
- feat(commands): drive macOS Desktops — focus_desktop and move_to_desktop by @hajiboy95 in #1008
- fix(state): a window keeps the Desktop it was sent to across screens (#1010) by @hajiboy95 in #1012
- fix(updates): bring the install-and-restart prompt forward by @hajiboy95 in #1014
- ci: bump actions/checkout from 6 to 7 by @dependabot[bot] in #1003
- fix(test): await the dwell and settle timelines instead of polling a clock by @hajiboy95 in #1024
- feat(profiles): a fresh install opens in Scrolling on every screen but the smallest by @hajiboy95 in #1025
- fix(gui): a Settings drawer header reads as one by @hajiboy95 in #1026
- test: a scanning guard pins the shape, never the value by @hajiboy95 in #1027
- feat(onboarding): the tour names the keys it teaches, and the app points at the guide by @hajiboy95 in #1029
- fix(commands): perform the Desktop switch's missing transition by @hajiboy95 in #1031
- chore(github): let the org's default carry the sponsor button by @hajiboy95 in https://github.com/KiwiCanopy/KiwiDes...
KiwiDesk 1.0.1
Highlights
A small release with one thing to know if you script KiwiDesk. Nothing about how your windows behave changes.
One word for macOS Desktops, everywhere
native_spaceis nowdesktopon the wire. The copy has said Desktop for macOS's desktops and Space for KiwiDesk's own since 0.9.7; the commands and events now say the same. If yourinit.luabinds profiles to Desktops, or a script listens for the switch event, update the spelling — the old names are gone, not aliased:KiwiDesk.bind_profile_to_native_space(n, profile)is nowKiwiDesk.bind_profile_to_desktop(n, profile), thenative_space_changeevent is nowdesktop_change, andkiwidesk get_statereportsdesktopinstead ofnative_space.- Bindings made in the Settings window need nothing from you. They live in KiwiDesk's own settings file, not in
init.lua, and keep working as they are.
What's Changed
- chore(site): sync release notes and feed for v1.0.0 by @github-actions[bot] in #981
- feat(site): the changelog's download says which version it hands you by @hajiboy95 in #982
- feat(site): retire the beta framing now that 1.0 has shipped by @hajiboy95 in #983
- feat(docs): add GitHub Sponsors badge and refine version dot glow by @hajiboy95 in #984
- fix(test): await reveal timelines instead of polling a clock by @hajiboy95 in #986
- chore(site): refresh the npm tree and clear its four advisories by @hajiboy95 in #987
- feat(os): add the WMBridge wrapper for SkyLight's operation classes by @hajiboy95 in #990
- refactor: say Desktop on the whole macOS-Desktop wire by @hajiboy95 in #992
- chore(release): stamp version 1.0.1 by @hajiboy95 in #995
Full Changelog: v1.0.0...v1.0.1
KiwiDesk 1.0.0
Highlights
The Kiwi is ripe. KiwiDesk is 1.0. 🥝
Ready is the headline
- 1.0 is not a feature dump, it is a verdict. Seven layouts, Lua configuration, profiles, per-Desktop setups, the App and Space Bars, and a Settings window you can drive end to end from the keyboard — all of it has been carrying real desks through the beta. Nothing about how your windows behave changes today, and that is exactly what a 1.0 should feel like: the boring release, arrived at on purpose.
Just download it already
- Homebrew is no longer the price of entry. Take the signed, notarized disk image from the KiwiDesk site, drag the kiwi into your Applications folder, and you are done. No terminal, no tap, no incantation.
- Same app whichever way you get it. Homebrew keeps one perk — it puts the
kiwideskcommand on your PATH — and from then on KiwiDesk quietly keeps itself up to date either way.
Also
- The site now argues for KiwiDesk the way the people using it do, by naming the everyday Mac annoyances it takes off your hands. It also says out loud that Settings can be driven entirely by VoiceOver and the keyboard, and the release-notes page no longer sprawls to the window edge.
What's Changed
- chore(site): sync release notes and feed for v0.9.10 by @github-actions[bot] in #974
- feat(site): promote the direct download and argue from the papercuts (#904, #962, #970, #971) by @hajiboy95 in #976
- chore(release): stamp version 1.0.0 by @hajiboy95 in #980
Full Changelog: v0.9.10...v1.0.0
KiwiDesk 0.9.10
Highlights
A large accessibility release: Settings is now fully usable with
VoiceOver and the keyboard. Plus steadier window resizing and
several focus fixes.
Accessibility
- Settings works with VoiceOver. Every control announces its
name and its current value, sections are proper headings, and
the keyboard shortcut board is read out as one description
instead of a grid of loose cells. - The App Bar names its buttons. Bar controls that show only
an icon now announce what they do. - Right-click reaches the keyboard. Press ⌃. to open the
same menu the mouse opens on the focused row.
Windows and layout
- Resizing stops where it should, and says why. A window
that cannot shrink any further shows a cue on the first
attempt instead of silently refusing, and growing a window is
now limited by what its neighbours can give up. - The Settings window resizes like any other tile. Dragging
its edge moves the neighbouring windows, which it previously
did not. - Track columns keep their proportions. Column widths no
longer drift when windows join or leave a track.
Fixes
- Focus stays where you put it. Dismissing a quick terminal
or summoning KiwiDesk no longer steals focus from the window
you were working in. - Hidden apps leave no ghosts. Hiding an app now reports a
hide rather than a close, so its windows do not linger in the
layout.
Also
Settings drawer headers are clickable across their full width,
the count badge no longer wears an alert colour, and the German,
Japanese, French and seven other catalogs carry the new
VoiceOver strings.
What's Changed
- chore(site): sync release notes and feed for v0.9.9 by @github-actions[bot] in #928
- fix(events): stand down close-return raise when own key window is active (#929) by @hajiboy95 in #931
- feat(resize): minimum-size clamping, neighbor limits, and refusal feedback by @hajiboy95 in #942
- fix(borders): pill both resize ends, trigger ring stand-down on own key changes by @hajiboy95 in #943
- fix(i18n): put the group window count behind a label by @hajiboy95 in #946
- fix(config): stamp the migration crossing and bring palettes into the census by @hajiboy95 in #945
- fix(events): narrow the close-return stand-down to own dialogs and govern the restore arm by @hajiboy95 in #947
- fix(tiling): heal session track weights at retile when membership outgrows them by @hajiboy95 in #948
- fix(bars): refresh app bar titles under icon content for VoiceOver (#937) by @hajiboy95 in #949
- feat(gui): add ⌃. keyboard chord for contextual menus on focused rows (#845) by @hajiboy95 in #950
- fix(events): stop transient-dismissal focus steals — the quick-terminal race and the summon's activation (#951, #952) by @hajiboy95 in #957
- feat(gui): deep VoiceOver hardening of the Settings surface (#812) by @hajiboy95 in #963
- chore(bar): re-vendor app font v2.0.82 by @github-actions[bot] in #960
- chore(i18n): translate the #812 VoiceOver strings across the ten catalogs by @hajiboy95 in #964
- fix(events): let our own window's drags reach the drag pipeline (#953) by @hajiboy95 in #965
- feat(gui): the design pair — neutral count badge, full-row drawer headers (#955, #956, #959) by @hajiboy95 in #967
- ci(release): ship a notarized disk image from the release workflow (#968) by @hajiboy95 in #969
- chore(release): stamp version 0.9.10 by @hajiboy95 in #972
Full Changelog: v0.9.9...v0.9.10
KiwiDesk 0.9.9
Highlights
Refined window behavior, mouse resizing in Track layout, and polish across Settings and the bars.
Windows and layout
- Apps that hide stay out of your way. Closing an app like Discord or Spotify that keeps running in the background no longer leaves a ghost tile in your layout.
- Mouse resizing in Track mode. Dragging borders between track columns or windows in the Track layout now resizes them smoothly, matching the keyboard shortcuts.
- Shrinking stops cleanly at minimum size. Shrinking windows no longer risks tripping into an unexpected full-screen cascade when reaching minimum dimensions.
Bars and Settings
- Bars name the active window. The App Bar and Space Bar now show the title of the specific document or window you are on rather than only the application name.
- Minimizable Settings. The KiwiDesk Settings window can now be minimized from the title bar like any standard Mac window.
- Palette duplicate notices. Adding a color already in a palette now clearly explains that the duplicate is skipped.
Also
Smoother title updates, accessible names for App Bar controls, and automatic migrations for saved configuration profiles.
What's Changed
- chore(site): sync release notes and feed for v0.9.8 by @github-actions[bot] in #906
- feat(bar): the bars name the window, not the app that owns it by @hajiboy95 in #907
- docs(release): clarify blank line separation before What's Changed in notes skeleton by @hajiboy95 in #908
- feat(config): add format versioning and migration floor (#902) by @hajiboy95 in #909
- refactor(general): delete install inventory card (#875) by @hajiboy95 in #910
- fix(scripts): reject invalid flags and unify worksheet decoder (#876, #855) by @hajiboy95 in #911
- fix(i18n): Russian imperative, profile copy label, and overlap warning (#886, #830) by @hajiboy95 in #912
- feat(bar): give App Bar items an explicit accessible identity (#901) by @hajiboy95 in #914
- fix(bar): bound title refresh debounce with a max wait ceiling (#900) by @hajiboy95 in #915
- feat(settings): show informative notice when saving duplicate palette colors (#844) by @hajiboy95 in #916
- refactor(site): extract standalone PageShell layout component by @hajiboy95 in #919
- fix(i18n): harmonize Family C concepts and quote pairs across catalogs (#831) by @hajiboy95 in #917
- fix(events): track own key-capable dialogs and ignore hidden windows by @hajiboy95 in #920
- fix(ax): report a hide as a hide, and stand the raise down (#913) by @hajiboy95 in #921
- perf(tests): add in-memory file and source scan caching by @hajiboy95 in #923
- feat(settings): enable minimize button on settings window by @hajiboy95 in #922
- feat(track): support mouse resizing and clamp shrink at minimum size (#924) by @hajiboy95 in #925
- feat(site): move header changelog link to nerd mode and trim uncurated release stubs by @hajiboy95 in #926
- chore(release): stamp version 0.9.9 by @hajiboy95 in #927
Full Changelog: v0.9.8...v0.9.9
KiwiDesk 0.9.8
Highlights
KiwiDesk can keep itself up to date now.
Updates
- New versions arrive on their own. KiwiDesk checks quietly
in the background and tells you when there is something newer,
so you no longer have to go looking for it. Nothing installs
without you saying yes. - Ask whenever you like. There is a Check for Updates…
item in the menu for when you would rather not wait to be
told. - See what changed before you take it. The update window
shows you the notes for the new version, and the same notes
now live on the KiwiDesk site.
What's Changed
- feat(site): a curated release-notes page, and two guards for what it revealed by @hajiboy95 in #899
- feat(updates): ship Sparkle — in-app updates, a signed appcast, and the pipeline behind it by @hajiboy95 in #903
Full Changelog: v0.9.7...v0.9.8
KiwiDesk 0.9.7
Highlights
The biggest Settings pass so far.
Multi-screen Desktops
- Bind profiles to Desktops without changing a macOS setting.
"Load this profile on Desktop 2" now means Desktop 2 on your
main screen — so it works with macOS's normal "Displays have
separate Spaces" setting left switched on, and KiwiDesk no
longer asks you to turn it off (which cost you a menu bar on
each screen, the Dock on any screen, and fullscreen not
blanking your other displays). The bindings list shows your
main screen's Desktops, marks any you bound elsewhere, and a
"?" explains the trade either way.
Windows behave
- Apps that won't shrink no longer break your layout. Some
apps — browsers especially — refuse to go below a minimum size.
KiwiDesk now notices when an app won't budge and arranges the
others around it, instead of asking over and over and leaving
windows overlapping. - The focus outline keeps up. It used to trail behind when
windows moved quickly. - Scrolling stops at the edge of your screen. Windows
scrolled off to the side no longer slide across onto your other
monitor. - Monocle: choose where the hidden windows go. They stack
behind the focused window as before, or you can park them out
of the way. - No more phantom entries in the Space Bar from right-click
menus and popups. - Quicker, quieter startup, and waking from sleep now says
what it actually restored.
Profiles
- See a preset before you apply it. Open any preset and look
at the real layouts it will create — no more guessing what
"Coder & Monitor" means. - Saved profiles and presets look alike now, so you can
compare them at a glance, and the ones that fit your current
screens are listed first.
Settings
- Live previews for Colours and for Spaces & Layouts — change
a value, watch it happen. - Settings works without a mouse. Keyboard navigation, focus
that lands somewhere sensible after you delete something, and a
greyed-out control that tells you why it's greyed out. - Back up your setup — Export and Restore, in General.
- A per-screen Layout menu in the menu bar when you have more
than one screen connected. - A Release Notes link in About, pointing here.
Translations
Better translations across all ten languages: a batch of
sentences that couldn't be phrased naturally in other languages
have been rebuilt so they can be.
Also
Fixes to the site and branding, a newer icon font, and stricter
release checks so a release can't be cut while its milestone
still has open work.
What's Changed
- fix(bars): three surfaces stop showing what the engine knows isn't real (#683, #820, #705) by @hajiboy95 in #840
- fix(settings): the keyboard path — segments, focus destinations, gate reasons (#823, #816, #815, #833) by @hajiboy95 in #842
- fix(settings): every name popover carries its own seed (#843) by @hajiboy95 in #846
- ci(app-font): watch the vendored app font weekly, and take v2.0.74 by @hajiboy95 in #847
- fix(site): add space before maker link in footer credits by @hajiboy95 in #849
- fix(boot): boot stops paying for a second full reconcile (#836, #791) by @hajiboy95 in #850
- feat(site): adopt the new KiwiCanopy slogan, drop the footer founder quote by @hajiboy95 in #851
- feat(brand): put the product's promise on the banner, one per locale by @hajiboy95 in #852
- ci: refuse a tag whose milestone still has open issues by @hajiboy95 in #853
- feat(settings): the detail panels — Advanced Colours, Spaces & Layouts, and the preview fixes around them (#793, #794, #795, #841, #819, #707, #708) by @hajiboy95 in #854
- fix(localization): a worksheet re-mint no longer destroys drafted translations by @hajiboy95 in #856
- feat(brand): carry the new KiwiCanopy slogan, drop the domain from the banners by @hajiboy95 in #857
- feat(profiles): one picture grammar, a preset grid, and match-first sort (#789) by @hajiboy95 in #858
- feat(profiles): preview a preset's real layouts before applying it (#859) by @hajiboy95 in #863
- chore(bar): re-vendor app font v2.0.77 by @github-actions[bot] in #860
- fix(site): move the Nerd maker quote below the CLI, one h1 per page by @hajiboy95 in #870
- fix(i18n): the residue round — two rulings, 31 interpolations, 472 values (#830, #831, #827, #862, #864) by @hajiboy95 in #871
- docs: front-page accuracy, and two guard-debt fixes (#766, #767, #661, #740) by @hajiboy95 in #872
- feat: the three things a 1.0 is expected to have (#570, #606, #752) by @hajiboy95 in #877
- feat(layout): scrolling walls at screen seams, and the motion-decided raise (#878) by @hajiboy95 in #879
- fix: learn app-enforced size bounds, and unstarve the ring's main actor (#677, #618) by @hajiboy95 in #880
- docs: re-argue the App Store ruling on the reasons that survive by @hajiboy95 in #883
- feat(layout): monocle hide_style — stack stays default, park opts in (#881) by @hajiboy95 in #885
- feat(profiles): key Desktop bindings to the main display, retiring the separate-Spaces recommendation (#888) by @hajiboy95 in #891
- docs: release notes are written for the person installing by @hajiboy95 in #892
- fix(release): cut a release in two phases, main takes no push by @hajiboy95 in #893
- chore(release): stamp version 0.9.7 by @hajiboy95 in #894
New Contributors
- @github-actions[bot] made their first contribution in #860
Full Changelog: v0.9.6...v0.9.7
KiwiDesk 0.9.6
What's Changed
The settings window is the headline: it was rebuilt from the ground
up, and the first-launch tour with it.
feat:Settings, redesigned end to end. There is no sidebar
any more — Settings opens on a grid of cards, each one answering
what it holds rather than naming it, and every area now renders
from one census so a row cannot exist in the window without
existing in search. Areas that earn it open a two-column detail
view where the preview watches your draft as you edit it, and
unsaved changes live in a floating save pill that says how many
and shows you which.feat:Search that finds settings, not pages. Type a word and
you get the setting itself, with the place it lives and its
current value; the mode a setting needs is shown rather than
hidden, and choosing a Power User setting from Simple mode
switches the mode for you instead of refusing.feat:The shortcuts panel draws your keyboard. ⌃⌥K shows the
physical layout with every bound chord marked on the keys it
takes, so a conflict is something you see rather than something
you read.feat:The window is yours to size. Settings tiles like any
other window, is bindable to a shortcut of your own, and narrows
in a ruled order — the preview goes first, then the row layout,
then the header chrome. Controls never go.feat:Dark mode, properly. Every surface, border and ink now
comes from one theme, so dark is a designed appearance rather
than an inverted light one. The accent marks controls you can
act on and never text that merely names a value.feat:A first launch that shows its work. The tour was
rebuilt to match the redesign: a progress row that counts only
the screens your machine will actually see, the starter setup
chosen from your real displays and explained in the words it
used to choose it, and a closing card that hands you the menu
bar rather than describing it.feat:Boot says what it is doing. On a busy Mac the first
seconds after launch used to be silent and unresponsive — the
menu-bar item answered nothing and then every window on the desk
rearranged at once. The scan now hands the machine back while it
works: the menu opens throughout, the mark is dimmed until
KiwiDesk is ready, and the quick menu counts the apps it has
been through. One slow app can no longer keep the whole desk
waiting.feat:Home cards show your desk. Profile and layout cards
draw a real preview in your own palette, from the same data the
engine uses, so what you see on the card is what you would get.fix:Colour, contrast and colour vision. Palette highlights,
border colours and the segmented controls were re-derived so
they hold their separation for protanopia and deuteranopia, and
a colour now renders in exactly one place instead of three.fix:Keyboard and VoiceOver. Right-click menus are offered
as accessibility actions from the same list, controls announce
their value as well as their name, and every shape change now
states where focus lands. Turning on macOS keyboard navigation
is still required for non-text controls — that is a system
setting no app may set for you, and the guide says so.fix:Scrolling, borders and bars. Every anchor is drawn in
one frame, every border shares one width and corner, and the
App Bar and Space Bar stop taking glyphs from windows that are
not really there.perf:Startup. A slow-answering app is now bounded and
finished off after boot instead of holding everything up, and
the startup sweep no longer blocks the menu a second after it
freed itself.refactor:One word per concept, in ten languages. macOS has
Desktops and KiwiDesk has Spaces — the two are now named apart
everywhere, including in every translation. A translation round
went over the whole corpus twice: once to draft, once to audit.docs:README, guide and site. The track layout is
documented, the keyboard path has its own section, and the
badges and links point where they claim to.
Full Changelog: v0.9.5...v0.9.6