35f6501de2
Documentation, example config, and one validator-test fix. Version bump and AUR push intentionally deferred. data/owlry.example.lua (new): - Annotated reference config exercising every surface (set / providers / tabs / theme / profiles / provider / util). Active section is minimal and validates clean. aur/owlry/PKGBUILD: - Ships data/owlry.example.lua to /usr/share/doc/owlry/owlry.example.lua. pkgver kept at 2.0.1. README.md: - Config table puts owlry.lua first (preferred from 2.1), config.toml marked legacy/fallback with precedence note linking lua-api.md §2. - New "Quick Start (Lua config)" section with migrate-config blurb. - migrate-config row: [--force], deterministic. config validate row: exit 1 errors / exit 2 warnings. - Roadmap section flips Lua config from "lands in 2.1/3.0" to "shipped in 2.1"; lists 2.2 follow-ups (dynamic providers, owlry.bind, util.http_get). CLAUDE.md: - Project shape tree expands lua/ module with per-file descriptions. - Build section documents the `lua` cargo feature. - CLI shape line for migrate-config: [--force]. config validate: exit codes 1/2 mentioned. - New "Lua config layer (2.1+)" section covers precedence, the notify-based watcher, desktop-notification errors, and the Arc<Lua> / LoadedConfig invariants. data/owlry.1: - --profile mentions both owlry.profiles (lua) and [profiles.<NAME>] (toml). - config validate paragraph describes the categorised report and lists 0/1/2 exit codes. - migrate-config description no longer says "stub" — covers determinism, --force/-f, pre-v2 alias normalisation, links §9. - FILES adds ~/.config/owlry/owlry.lua and the example .lua; config.toml labelled legacy. ROADMAP.md: - "Lua-driven configuration" reworded as shipped in 2.1; example uses owlry.lua and the v2 API; 2.2 follow-ups listed. cli.rs help: migrate-config stub-era text → "TOML → owlry.lua (--force to overwrite)". lua/validate.rs: loosen pre_v2_aliases_are_known to assert only that aliases aren't flagged as unknown ids. is_clean() failed under --no-default-features --features lua because uuctl correctly triggered the compiled-out warning (uuctl → systemd, systemd feature off → silently dropped at runtime). Test matrix (all green): - --features full 352 lib tests - --no-default-features 182 lib tests - --no-default-features --features lua 305 lib tests Clippy silent in all three configurations. Smoke (release build, isolated XDG): 1. config validate on the shipped owlry.example.lua → OK exit 0 2. migrate-config: TOML → owlry.lua with the precedence notice 3. Daemon loads, watcher armed; appending owlry.provider triggers hot-reload within the debounce window 4. :phase310 prefix routes the empty query to the new provider 5. config validate against the live file still OK
239 lines
5.6 KiB
Groff
239 lines
5.6 KiB
Groff
.TH OWLRY 1 "2026-05-13" "owlry 2.0.0" "User Commands"
|
|
.SH NAME
|
|
owlry \- Wayland application launcher with daemon and built-in providers
|
|
.SH SYNOPSIS
|
|
.B owlry
|
|
[\fIOPTIONS\fR] [\fICOMMAND\fR]
|
|
.SH DESCRIPTION
|
|
.B owlry
|
|
is a lightweight Wayland application launcher built with GTK4 and Layer Shell.
|
|
It runs as a single binary that hosts both the GTK4 UI client and the IPC
|
|
daemon, and ships every provider compiled in.
|
|
|
|
Invoked with no arguments,
|
|
.B owlry
|
|
launches the UI client in auto mode (results from all enabled providers).
|
|
Subcommands run the daemon, dmenu pipeline, diagnostics, or config tools.
|
|
.SH OPTIONS
|
|
.TP
|
|
.B \-d, \-\-daemon
|
|
Run the IPC daemon instead of the UI. Equivalent to the
|
|
.B daemon
|
|
subcommand. Conflicts with
|
|
.BR \-m ", " \-\-profile ", " \-p .
|
|
.TP
|
|
.BI \-m " MODE\fR, " \-\-mode " MODE"
|
|
Start the UI in single-provider mode. Core modes:
|
|
.BR app ", " cmd ", " dmenu ", " auto .
|
|
Built-in modes:
|
|
.BR calc ", " conv ", " power .
|
|
Optional modes (depend on cargo features at build time):
|
|
.BR bm ", " clip ", " emoji ", " ssh ", " systemd ", " uuctl ", " web ", " file .
|
|
.TP
|
|
.BI \-\-profile " NAME"
|
|
Launch the UI with a named profile. Profiles are defined under
|
|
.B owlry.profiles
|
|
in
|
|
.IR ~/.config/owlry/owlry.lua
|
|
or
|
|
.B [profiles.<NAME>]
|
|
in
|
|
.IR ~/.config/owlry/config.toml .
|
|
.TP
|
|
.BI \-p " TEXT\fR, " \-\-prompt " TEXT"
|
|
Custom prompt text for the search input. Most useful in dmenu mode.
|
|
.TP
|
|
.B \-h, \-\-help
|
|
Print help with examples.
|
|
.TP
|
|
.B \-V, \-\-version
|
|
Print the version.
|
|
.SH COMMANDS
|
|
.TP
|
|
.B daemon
|
|
Run the IPC daemon. Binds the socket and serves queries until killed.
|
|
Equivalent to
|
|
.BR "owlry \-d" .
|
|
.TP
|
|
.BR "dmenu " [\fB\-p\fR\ \fIPROMPT\fR]
|
|
Read items from standard input, present them in the launcher UI, print the
|
|
selection to standard output. Runs locally; the daemon is not required.
|
|
.TP
|
|
.B doctor
|
|
Print diagnostics: config status, daemon socket reachability, and the list of
|
|
registered providers. Non-destructive.
|
|
.TP
|
|
.BR "providers " [\fIID\fR]
|
|
List all registered providers, or print details (icon, prefix, position, tab
|
|
label, search noun) for one. Requires a running daemon.
|
|
.TP
|
|
.B "config validate"
|
|
Parse the config file and report errors and warnings. When
|
|
.I ~/.config/owlry/owlry.lua
|
|
exists it is evaluated and the snapshot is checked for unknown keys,
|
|
unknown provider ids, tabs not in
|
|
.BR owlry.providers ,
|
|
duplicate
|
|
.B owlry.provider
|
|
ids, and providers compiled out of the running build. Exit codes:
|
|
.B 0
|
|
clean,
|
|
.B 1
|
|
on errors (syntax / eval / TOML parse failure),
|
|
.B 2
|
|
on warnings only.
|
|
.TP
|
|
.B "config show"
|
|
Print the resolved effective configuration (defaults merged with the user file)
|
|
as TOML.
|
|
.TP
|
|
.BR "migrate-config " [\fB\-\-force\fR]
|
|
Migrate
|
|
.I ~/.config/owlry/config.toml
|
|
to
|
|
.I ~/.config/owlry/owlry.lua
|
|
with equivalent settings. Output is deterministic and minimal — only values
|
|
differing from the built-in defaults are emitted. Pre-v2 aliases
|
|
.RB ( system " \(-> " power ,
|
|
.B badge_sys
|
|
\(->
|
|
.BR badge_power )
|
|
are normalised to v2 names. The migrator refuses to overwrite an existing
|
|
.B owlry.lua
|
|
unless
|
|
.B \-\-force
|
|
(or
|
|
.BR \-f )
|
|
is passed. See
|
|
.IR docs/lua-api.md
|
|
\(sc9 for the full mapping.
|
|
.SH ENVIRONMENT
|
|
.TP
|
|
.B XDG_RUNTIME_DIR
|
|
Used to derive the default IPC socket path
|
|
.RI ( $XDG_RUNTIME_DIR/owlry/owlry.sock ).
|
|
.TP
|
|
.B OWLRY_SOCKET
|
|
Full path override for the IPC socket. When set, the daemon binds and the UI
|
|
client connects to this exact path, bypassing
|
|
.BR XDG_RUNTIME_DIR .
|
|
Useful for running a development daemon alongside a production instance.
|
|
.TP
|
|
.B XDG_CONFIG_HOME
|
|
Config root. Defaults to
|
|
.IR ~/.config .
|
|
.TP
|
|
.B XDG_DATA_HOME
|
|
Frecency data root. Defaults to
|
|
.IR ~/.local/share .
|
|
.TP
|
|
.B TERMINAL
|
|
Auto-detected terminal for items marked as needing a terminal. Overridden by
|
|
.B general.terminal_command
|
|
in the config.
|
|
.SH FILES
|
|
.TP
|
|
.I ~/.config/owlry/owlry.lua
|
|
Lua configuration (preferred from 2.1). Takes precedence over
|
|
.B config.toml
|
|
when both exist; an info log notes this at daemon start. The daemon
|
|
hot-reloads on save; broken edits surface as desktop notifications and
|
|
keep the previous state alive. See
|
|
.IR docs/lua-api.md
|
|
for the API.
|
|
.TP
|
|
.I ~/.config/owlry/config.toml
|
|
TOML configuration (legacy; ignored when
|
|
.B owlry.lua
|
|
exists). See
|
|
.B owlry config show
|
|
for the effective state.
|
|
.TP
|
|
.I ~/.config/owlry/themes/
|
|
User CSS themes (referenced from
|
|
.BR appearance.theme ).
|
|
.TP
|
|
.I ~/.config/owlry/style.css
|
|
CSS overrides applied last in the cascade.
|
|
.TP
|
|
.I ~/.local/share/owlry/frecency.json
|
|
Frecency state — auto-saved every 5 minutes and on SIGTERM/SIGINT.
|
|
.TP
|
|
.I $XDG_RUNTIME_DIR/owlry/owlry.sock
|
|
IPC Unix socket. See
|
|
.B OWLRY_SOCKET
|
|
to override.
|
|
.TP
|
|
.I /usr/share/doc/owlry/owlry.example.lua
|
|
Annotated example Lua configuration.
|
|
.TP
|
|
.I /usr/share/doc/owlry/config.example.toml
|
|
Annotated example TOML configuration.
|
|
.TP
|
|
.I /usr/share/owlry/themes/
|
|
Bundled themes.
|
|
.TP
|
|
.I /usr/lib/systemd/user/owlry.service
|
|
systemd user service. Enable with
|
|
.BR "systemctl \-\-user enable \-\-now owlry.service" .
|
|
.SH EXAMPLES
|
|
.PP
|
|
Launch the UI (auto mode):
|
|
.PP
|
|
.RS
|
|
.EX
|
|
owlry
|
|
.EE
|
|
.RE
|
|
.PP
|
|
Run the daemon explicitly (background):
|
|
.PP
|
|
.RS
|
|
.EX
|
|
owlry \-d &
|
|
.EE
|
|
.RE
|
|
.PP
|
|
dmenu-style script pipeline:
|
|
.PP
|
|
.RS
|
|
.EX
|
|
git branch | owlry dmenu \-p "checkout" | xargs git checkout
|
|
.EE
|
|
.RE
|
|
.PP
|
|
Diagnose an install:
|
|
.PP
|
|
.RS
|
|
.EX
|
|
owlry doctor
|
|
.EE
|
|
.RE
|
|
.PP
|
|
Run a development daemon on a separate socket:
|
|
.PP
|
|
.RS
|
|
.EX
|
|
OWLRY_SOCKET=/tmp/owlry-dev.sock owlry \-d &
|
|
OWLRY_SOCKET=/tmp/owlry-dev.sock owlry providers
|
|
.EE
|
|
.RE
|
|
.SH SEE ALSO
|
|
.BR systemctl (1),
|
|
.BR systemd.unit (5),
|
|
.BR cliphist (1),
|
|
.BR wl-copy (1),
|
|
.BR fd (1)
|
|
.PP
|
|
Project homepage:
|
|
.UR https://somegit.dev/Owlibou/owlry
|
|
.UE
|
|
.SH BUGS
|
|
Report issues at
|
|
.UR https://somegit.dev/Owlibou/owlry/issues
|
|
.UE
|
|
.SH AUTHORS
|
|
Owlibou — see
|
|
.I /usr/share/doc/owlry/README.md
|
|
for acknowledgments.
|