Applications
Every installed app, with its icon, one keystroke from launching.
palv0.1.0Productivitybundled
Ships inside pal. Installing puts an editable copy ahead of the bundled one.




What it does
Applications
Installed applications with their own icons, one indexed palette. The row
is the app's name, its source the subtitle (Applications, macOS, User, or
the extra folder it came from), and Enter launches it. The bundle id and
the display name are keywords, so com.apple. or anthropic finds the
app and Chrome finds Google Chrome. Rows are sorted by name; the palette
is indexed, so every app is a root result and ⌘R rescans.
A running app carries a green Running tag as of the last listing (the
tag is refreshed by ⌘R, a settings change, and after a Quit or Hide from
the panel) and gains Quit and Hide at the top of its actions; an app that
is not running has them last, and both answer "is not running" as a toast
rather than launching it.
Where the apps come from
- macOS:
.appbundles in/Applications,/System/Applicationsand~/Applications, one level deep so the Utilities folders come along. The first root wins a name.CFBundleIdentifier,CFBundleDisplayNameandCFBundleNameare read from the XMLInfo.plist; localised names are not. Enter opens the bundle path with the system opener. - macOS, System Settings panes: 35 common panes (Keyboard, Displays,
Privacy & Security, Wi-Fi, Battery, ...) are rows with the System
Settings icon and
System Settingsas subtitle;settings,preferencesand a few words per pane (dark mode,dns,airdrop) are keywords. Enter opens the pane through itsx-apple.systempreferences:url. A curated table of macOS 13+ ids, not a scan. - Linux:
.desktopentries from every XDG data dir (~/.local/share,$XDG_DATA_DIRS, the flatpak exports), the first directory winning a desktop id. Entries withNoDisplay,Hidden, aTryExecthat is not installed, or anOnlyShowIn/NotShowInthat excludes$XDG_CURRENT_DESKTOPare skipped.Comment(elseGenericName) is the subtitle;GenericName,Keywords, the binary and the desktop id are keywords. Enter launches throughgio launch, elsegtk-launch, else the parsedExec;Terminal=trueentries run in$TERMINAL, else the first of kitty, foot, xterm on PATH. A[Desktop Action ...]group ("New Window", "New Private Window") is a secondary action run from its ownExec.
Keyboard
| keys | action |
|---|---|
enter |
Open (a pane: open it in System Settings) |
cmd+q |
Quit: asks the app through AppleScript, so it may ask you to save; SIGTERM for a bundle Launch Services does not know |
cmd+h |
Hide, through System Events |
cmd+shift+r |
Reveal in Finder |
cmd+c |
Copy path (a pane: Copy URL) |
cmd+shift+c |
Copy bundle id |
cmd+r |
Rescan the application folders |
On Linux the actions are Open, the entry's own desktop actions, and Copy path.
Setup
Nothing to install. The first Quit or Hide on macOS shows the Automation prompt once: pal asks the app (or System Events) through Apple events, and macOS wants your say before it lets a process control another.
Settings, [extensions.apps]:
| key | type | default | what |
|---|---|---|---|
folders |
list of paths | [] |
Extra folders scanned in addition to the system's application folders. ~ is expanded. A change rescans. |
What it does not do
- Localised app names (
InfoPlist.strings): they are binary plists in most system apps and would cost a spawn per app, so only the bundle's own names are keywords. - Panes beyond the curated 35:
/System/Library/ExtensionKitmixes panes with intents and widgets and carries no display names, so it is not scanned. - Quit does not force: an app that puts up a save dialog keeps it, and the dialog is yours to finish.
- Force quit, uninstall, or a per-app "open new window": use the Windows palette for what is open, the Processes palette to kill.
Platforms
macOS and Linux. The System Settings panes, Quit, Hide and Reveal in Finder are macOS; the desktop actions are Linux.
Palettes 1
-
Apps
appslistEverything that launches.
- ↵Open the app
- ⌘QQuit a running app
- ⌘⇧RReveal in Finder
Actions
- Open↵
- QuitAsks the app through AppleScript, so it may ask you to save; a toast when it is not running.⌘Q
- HideThrough System Events.⌘H
- Reveal in Finder⌘⇧R
- Copy path⌘C
- Copy bundle id⌘⇧C
- Copy URLOn a System Settings pane: its x-apple.systempreferences: link.⌘C
Settings
Extension, [extensions.apps]
foldersScanned in addition to the system's application folders.
Defaults shown. Change them in pal's settings window or in the config file.