macOS app¶
DictShelf.app is the command-line dictshelf packaged as a macOS app bundle. It runs
without a terminal and shows a menu-bar icon.
Install¶
- Download
dictshelf-macos-universal-app-<version>.zipfrom the releases page. It is a universal binary, for Apple silicon and Intel. - Unzip it and move DictShelf.app to Applications.
- Open the app. macOS blocks the first launch ("Apple could not verify…"): click Done, open System Settings → Privacy & Security, and click Open Anyway. On macOS 14 and earlier, Control-click the app and choose Open instead.
The app is signed with an ad-hoc certificate, not with an Apple Developer ID, so Gatekeeper blocks it on first launch. Removing the quarantine attribute before the first launch has the same effect as step 3:
The menu bar then shows the DictShelf icon, and the browser opens localhost:6888.
Menu-bar icon¶
| Entry | Action |
|---|---|
DictShelf <version> |
none; shows the running version |
| Open DictShelf | open the page in the browser |
| Rescan dictionaries | re-read the dictionary folders |
| Open dictionary folder | show the dictionary folder in Finder |
| Quit DictShelf | stop the server |
The app has no Dock icon and no window. Closing the browser tab does not stop
the server; Quit DictShelf does. The log is ~/Library/Logs/DMSH Labs/DictShelf/dictshelf.log.
Launching the app while the DictShelf server is already running just opens the page in the browser.
macOS app bundle vs LaunchAgent¶
DictShelf.app |
LaunchAgent | |
|---|---|---|
| Starts | when you open it | at login |
| Visible | menu-bar icon | nothing |
| Stops | Quit DictShelf | make mac-agent-stop, or logout |
Use one or the other.
The binary inside the bundle¶
/Applications/DictShelf.app/Contents/MacOS/dictshelf --version
/Applications/DictShelf.app/Contents/MacOS/dictshelf lookup ~/Dictionaries/Oxford.mdx serendipity
Started from a terminal, it behaves as the command-line dictshelf: output goes
to the terminal and no menu-bar icon appears.
Uninstall¶
- Quit DictShelf from the menu bar.
- Move
DictShelf.appto the Bin. - Optionally delete
~/.dmshlabs/dictshelf(settings and library, unlessDB_DIRpoints elsewhere) and~/Library/Logs/DMSH Labs/DictShelf/dictshelf.log.