Release Notes
What changed in each release, newest first.
Download KiwiDesk 1.1.21.1.2
LatestSwitching 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 in
bsp.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.
1.1.1
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.)
1.1.0
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. 🥝
1.0.1
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.
1.0.0
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.
0.9.10
BetaA 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.
0.9.9
BetaRefined 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.
0.9.8
BetaKiwiDesk 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.
0.9.7
BetaThe 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.
Looking for older releases? View all releases on GitHub ↗