An open API service indexing awesome lists of open source software.

https://github.com/systemsoftware/app-pane

macOS 26 Launchpad replacement (works with any macOS version supported by Electron)
https://github.com/systemsoftware/app-pane

launcher luanchpad macos

Last synced: 8 months ago
JSON representation

macOS 26 Launchpad replacement (works with any macOS version supported by Electron)

Awesome Lists containing this project

README

          

# App Pane

**App Pane** is a macOS Electron application that acts as a visual app launcher and manager. It scans installed applications, allows for quick launching, pinning, hiding, and organizing apps, and includes cache management, icon indexing, and a customizable global shortcut.

## ๐Ÿš€ Features

* ๐Ÿ” Automatically scans and indexes installed macOS applications.
* ๐Ÿ“Œ Pin or unpin apps for quick access.
* ๐Ÿ™ˆ Hide apps from view (but keep them searchable).
* ๐Ÿ–ผ๏ธ Caches and displays app icons.
* ๐Ÿ—‚๏ธ Reorder apps manually or alphabetically (Aโ€“Z / Zโ€“A).
* ๐Ÿ” Automatic cache reloading every 5 minutes.
* ๐Ÿ› ๏ธ Reindex apps or delete the cache via the UI.
* ๐Ÿงญ Open apps or reveal them in Finder.
* ๐ŸŽ›๏ธ Dock icon visibility toggle.
* โŒจ๏ธ Global shortcut support to quickly toggle the app's visibility.

## ๐Ÿงฑ Built With

* [Electron](https://www.electronjs.org/)
* [Node.js](https://nodejs.org/)
* [electron-prompt](https://www.npmjs.com/package/electron-prompt)

## ๐Ÿ“ Folder Structure

```
AppPane/
โ”œโ”€โ”€ index.html # Main UI
โ”œโ”€โ”€ preload.js # Preload script for IPC
โ”œโ”€โ”€ main.js # Main Electron process (provided above)
โ”œโ”€โ”€ update # Updater executable (copied to temp folder)
โ”œโ”€โ”€ prompt.css # Custom styling for prompts
```

## ๐Ÿ–ฅ๏ธ Requirements

* macOS (due to `open` and `Finder`-specific features)
* Node.js & npm installed
* Electron (via `npm install`)

## ๐Ÿ› ๏ธ Installation

```bash
git clone https://github.com/systemsoftware/app-pane.git
cd app-pane
npm install
```

## ๐Ÿ Run the App

```bash
npm start
```

## ๐Ÿ”ง Customization

* To **hide the dock icon**, a file named `hide-dock` is placed in `userData` path (`~/Library/Application Support/App Pane/`).
* To **set a global shortcut**, a `shortcut` file is created in the same directory.
* Use the right-click menu inside the app to modify these settings.

## ๐Ÿ’พ App Cache & Icon Storage

* App metadata:
`~/Library/Application Support/App Pane/apps.json`
* Cached app icons:
`~/Library/Application Support/App Pane/app-icons/`

## โš ๏ธ Safety Notes

* On reindexing or deleting cache, the app will relaunch or exit automatically.
* Cached icon folders and metadata files will be removed.

## ๐Ÿงช Development Notes

* The updater is a separate executable copied to a temp directory and invoked as needed.
* IPC handlers manage app data, UI actions, and user input securely and asynchronously.
* Reloading happens every 5 minutes to reflect app changes.

## ๐Ÿ“š Global Shortcut Help

To define a shortcut (e.g., `Cmd+Shift+A`), refer to [Electron Accelerator Docs](https://www.electronjs.org/docs/latest/api/accelerator#available-modifiers)

## ๐Ÿ“„ License

MIT License