Skip to content

dinky 0.19

Choose a tag to compare

@mikker mikker released this 16 Oct 23:10
· 140 commits to main since this release
a0a8d0b

Tiling

  • New [workspace.<number>.display.<pattern>] tables give a workspace other settings while it is on one display, such as two fixed columns on an ultrawide and an accordion on the laptop screen. When you dock or undock, the workspace switches layout as it moves.
  • Switching workspaces is lighter and no longer sets windows gliding. A switch reads only the workspace you arrive at and lays it out only if something changed there while you were away, so its windows are in place as it shows.
  • Dragging a window is lighter, so the drag stays smooth and its border keeps up.

Key bindings

  • hyper and meh name the usual modifier combinations: hyper-1 is alt-ctrl-cmd-shift-1, and meh-1 is alt-ctrl-shift-1.

Rules

  • New app-id-regex key matches the bundle ID by regex, like app-name does for the app's name: app-id-regex = '^com\.jetbrains\.' covers every JetBrains app with one rule. app-id still matches exactly.

Hooks

  • New display-changed hook runs when a display connects or disconnects, once the workspaces have moved, with DINKY_DISPLAYS and DINKY_PREV_DISPLAYS set to how many displays there are now and were before. React to docking and undocking without Hammerspoon.
  • exec-and-forget has dinky itself on PATH, so hook scripts can call dinky when the app was started from Finder.

Fixes

  • Turning dinky off takes its borders away and leaves window drags alone: no drop outlines, and no swap or resize remembered for when it comes back on.
  • dinky keeps tiling a window after its app closes and reopens it, as Slack does when you close its window with Cmd-W and open it again from the Dock.
  • Terminal windows shrink again. Terminal sizes its windows in whole rows and columns, so it never lands exactly on its tile; a size now counts as a minimum only when the window comes back at it for two different sizes asked, so that miss no longer passes for one. Minimum sizes saved by earlier versions are forgotten once.
  • move, join-with and resize succeed when there is nothing to do, such as move left on a window already at the left edge: the CLI prints move left: nothing to do and exits 0, so launchers like LeaderKey show no error.
  • A layout command keeps a fixed workspace's template when it leaves its shape alone, such as one that changes nothing or turns the overflow accordion vertical, so later windows still fill the grid.
  • Releases say they need Apple silicon, so a dinky built from source on an Intel Mac doesn't offer to update itself to one, and brew install stops with a clear message.