Moved to module structure to work in embeded qs processes
This commit is contained in:
@@ -28,6 +28,10 @@ makepkg -si
|
||||
|
||||
## Usage
|
||||
|
||||
omni-launcher can run in two modes: **standalone** (its own quickshell process) or **embedded** (imported as a QML module inside an existing quickshell config, saving a process).
|
||||
|
||||
### Standalone mode
|
||||
|
||||
Start the daemon once per session (e.g. in `~/.config/hypr/hyprland.conf`):
|
||||
|
||||
```
|
||||
@@ -42,6 +46,38 @@ bind = SUPER, SPACE, exec, omni-launcher-toggle
|
||||
|
||||
`omni-launcher-toggle` calls the running instance over Quickshell IPC. The launcher closes on `Esc`, click-outside, or workspace switch (Hyprland).
|
||||
|
||||
### Embedded mode
|
||||
|
||||
Instead of running a separate quickshell process, you can import `OmniLauncher` directly inside your existing quickshell config. The module ships its own `Theme`, `Config`, and `LauncherService` singletons (module-scoped — they won't collide with your config's own singletons).
|
||||
|
||||
1. Install `omni-launcher` from the AUR (this places the module on the Qt6 import path at `/usr/lib/qt6/qml/OmniLauncher/`).
|
||||
2. In your `shell.qml`, import the module and instantiate `Launcher {}`:
|
||||
|
||||
```qml
|
||||
import Quickshell
|
||||
import Quickshell.Io
|
||||
import OmniLauncher
|
||||
|
||||
ShellRoot {
|
||||
IpcHandler {
|
||||
target: "launcher"
|
||||
function toggle(): void { LauncherService.toggle(); }
|
||||
function open(): void { LauncherService.open(); }
|
||||
function close(): void { LauncherService.close(); }
|
||||
}
|
||||
|
||||
Launcher {}
|
||||
}
|
||||
```
|
||||
|
||||
3. Bind a key to toggle it via your host config's IPC socket:
|
||||
|
||||
```
|
||||
bind = SUPER, SPACE, exec, quickshell ipc call launcher toggle
|
||||
```
|
||||
|
||||
Do **not** run `omni-launcher` (the daemon) in embedded mode — the host quickshell process already owns the launcher.
|
||||
|
||||
## Configuration
|
||||
|
||||
`~/.config/omni-launcher/config.json` — any missing key falls back to a built-in default, so the file can be omitted entirely:
|
||||
|
||||
Reference in New Issue
Block a user