Moved to module structure to work in embeded qs processes
Tag and publish to AUR / tag (push) Successful in 1m20s
Tag and publish to AUR / publish (push) Has been skipped

This commit is contained in:
Radu Macocian
2026-07-15 15:25:33 +02:00
parent c63d1dc6ce
commit 58823cb24a
11 changed files with 46 additions and 3 deletions
+9 -3
View File
@@ -1,8 +1,8 @@
# Maintainer: Radu Macocian <radu@macocian.com> # Maintainer: Radu Macocian <radu@macocian.com>
pkgname=omni-launcher pkgname=omni-launcher
pkgver=0.0.3 pkgver=0.0.4
pkgrel=1 pkgrel=1
pkgdesc="Application launcher overlay built on Quickshell, with calculator, unit/currency conversion, unicode search and Giphy search" pkgdesc="Application launcher overlay built on Quickshell, with calculator, unit/currency conversion, unicode search and Giphy search. Installable as a Quickshell QML module (OmniLauncher) for embedded use or standalone via omni-launcher."
arch=('any') arch=('any')
url="https://git.estatecloud.org/radumaco/omni-launcher" url="https://git.estatecloud.org/radumaco/omni-launcher"
license=('GPL-3.0-or-later') license=('GPL-3.0-or-later')
@@ -14,8 +14,14 @@ sha256sums=('48922f27a6cf06c7d78313ddc52c92cf5b1b434f80bfe6e1f7d0f41f631bea98')
package() { package() {
cd "$srcdir/$pkgname" cd "$srcdir/$pkgname"
# QML module — installed on the Qt6 import path so both the standalone
# shell.qml and any host quickshell config can `import OmniLauncher`.
install -dm755 "$pkgdir/usr/lib/qt6/qml/OmniLauncher"
install -m644 module/* "$pkgdir/usr/lib/qt6/qml/OmniLauncher/"
# Standalone entry point + launcher scripts.
install -dm755 "$pkgdir/usr/share/$pkgname" install -dm755 "$pkgdir/usr/share/$pkgname"
install -m644 qml/* "$pkgdir/usr/share/$pkgname/" install -m644 shell.qml "$pkgdir/usr/share/$pkgname/"
install -Dm755 bin/omni-launcher "$pkgdir/usr/bin/omni-launcher" install -Dm755 bin/omni-launcher "$pkgdir/usr/bin/omni-launcher"
install -Dm755 bin/omni-launcher-toggle "$pkgdir/usr/bin/omni-launcher-toggle" install -Dm755 bin/omni-launcher-toggle "$pkgdir/usr/bin/omni-launcher-toggle"
+36
View File
@@ -28,6 +28,10 @@ makepkg -si
## Usage ## 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`): 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). `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 ## Configuration
`~/.config/omni-launcher/config.json` — any missing key falls back to a built-in default, so the file can be omitted entirely: `~/.config/omni-launcher/config.json` — any missing key falls back to a built-in default, so the file can be omitted entirely:
View File
View File
+1
View File
@@ -1,5 +1,6 @@
import Quickshell import Quickshell
import Quickshell.Io import Quickshell.Io
import OmniLauncher
ShellRoot { ShellRoot {
IpcHandler { IpcHandler {