Skip to content

dmenu-mac 0.8.0

Choose a tag to compare

@github-actions github-actions released this 28 Sep 20:36
· 12 commits to main since this release
b1ed3fb

The first release in five years, and the first one signed and notarized by Apple: it opens without Gatekeeper warnings and the Homebrew cask works again.

Added

  • Menu bar icon with Show, Settings, Launch at Login and Quit.
  • Settings window (⌘ ,): General for the hotkey and terminal, Appearance for bar position, opacity, colors, font and size, with Reset to Defaults.
  • The bar can sit at the top or bottom of the screen; -b/--bottom picks the bottom for a single run.
  • System Settings panes show up as results: disp opens Displays, net opens Network.
  • Apps in ~/Applications and in symlinked folders (nix-darwin, home-manager) are found too.
  • Enter runs what you typed as a shell command when nothing matches; Shift Enter does it even when something matches.
  • Optional listing of command-line programs from your $PATH, opened in Terminal, iTerm2, Ghostty, Alacritty, kitty, WezTerm or a custom command.
  • --no-custom for scripts that should only accept items from the list.
  • --exit / --no-exit to choose whether dmenu-mac quits after a selection.
  • Paste and the usual editing shortcuts in the search field.

Changed

  • Requires macOS 13.5 or later (was 10.13).
  • The launcher no longer steals focus: the app you were in stays in front and gets the keyboard back as soon as the bar closes.
  • Started from a shell or a hotkey daemon such as skhd, dmenu-mac exits after a selection or Esc instead of staying around.
  • Esc on a piped menu prints nothing and exits with status 1, like dmenu.
  • Piped input is read until EOF and decoded as UTF-8, so long lists and non-ASCII items work.
  • The bar stays above the Dock and below the menu bar.
  • Results draw faster.
  • The dmenu-mac command-line wrapper no longer needs python3.
  • The hotkey is handled by KeyboardShortcuts instead of the unmaintained DDHotKey.
  • No longer sandboxed, which is what allows running shell commands and reading the real ~/Applications.

Fixed

  • Crash when pressing Tab with no results, and an infinite recursion while editing the search field.
  • Search text color is applied to the placeholder and while editing.
  • The search field is cleared when the window hides.
  • The Settings window always comes to the front.
  • Version numbers in the app bundle.

What's Changed

  • only python3 in MacOS, python2 also EOL by @Markus-Be in #36
  • Fix broken version numbers by @core-code in #27
  • Multiple UI improvements by @oNaiPs in #39
  • chore: Update cicd settings by @oNaiPs in #47
  • Fix CI trigger to run on main by @oNaiPs in #52
  • chore: Update xcodeproj settings by @oNaiPs in #48
  • Update third-party dependencies by @oNaiPs in #53
  • test: add unit tests by @oNaiPs in #54
  • Refactor: Add TDD, fix thread safety and memory leaks by @oNaiPs in #55
  • Add appearance customization settings by @oNaiPs in #56
  • Remove deprecated DDHotKey library by @oNaiPs in #57
  • Follow symlinked app directories and scan ~/Applications by @oNaiPs in #58
  • Exit after selection when started from a shell by @oNaiPs in #60
  • Add unit tests and fix two bugs found while writing them by @oNaiPs in #59
  • Keep search window above the Dock by @oNaiPs in #61
  • Exit with status 1 when a piped selection is cancelled by @oNaiPs in #62
  • Scan the real ~/Applications under the app sandbox by @oNaiPs in #63
  • Run typed input as a command when nothing matches by @oNaiPs in #64
  • Read piped stdin until EOF and decode it as UTF-8 once by @oNaiPs in #65
  • Keep search window below the menu bar by @oNaiPs in #66
  • List System Settings panes alongside apps by @oNaiPs in #68
  • Add menu bar icon with Settings (⌘,) and Launch at Login by @oNaiPs in #67
  • Make the search bar position configurable by @oNaiPs in #70
  • Apply search text color to field editor and placeholder by @oNaiPs in #72
  • Support clipboard paste and editing shortcuts in the search field by @oNaiPs in #71
  • Disable app sandbox by @oNaiPs in #74
  • Rebuild settings panes as grouped SwiftUI forms by @oNaiPs in #73
  • Run command-line programs from $PATH in a terminal by @oNaiPs in #69
  • Show the launcher as a non-activating panel and reuse it on hotkey by @oNaiPs in #75
  • Cache results layout and draw only the dirty rect by @oNaiPs in #76
  • Clear the search field when the window hides by @oNaiPs in #77
  • Skip dead preference pane stubs and CoreServices agents by @oNaiPs in #78
  • Always bring the Settings window to the front by @oNaiPs in #80
  • Add a release process with signing and notarization by @oNaiPs in #79
  • Rewrite README for users by @oNaiPs in #83
  • Drop the python3 dependency from the command-line wrapper by @oNaiPs in #82
  • Publish releases with a curated changelog by @oNaiPs in #84

New Contributors

Full Changelog: 0.7.2...0.8.0