diagnose-crash
Diagnose why a program crashed on this machine, from a systemd-coredump core dump. Use when a…
Build a new desktop app for Omarchy the way Omarchy's own apps are built (Hype, Monologue, Omacut): C++ and Qt Quick, compiled with qmake6 and make into a single binary, following the Omarchy theme live, and installed as an Arch package so it shows up in the app launcher. Use
$ npx -y skills add omacom/omarchy --skill omarchy-app --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/omarchy-appContext preview
The summary Claude sees to decide when to auto-load this skill.
Build a new desktop app for Omarchy the way Omarchy's own apps are built (Hype, Monologue, Omacut): C++ and Qt Quick, compiled with qmake6 and make into a single binary, following the Omarchy theme live, and installed as an Arch package so it shows up in the app launcher. Use
name: omarchy-app description: > Build a new desktop app for Omarchy the way Omarchy's own apps are built (Hype, Monologue, Omacut): C++ and Qt Quick, compiled with qmake6 and make into a single binary, following the Omarchy theme live, and installed as an Arch package so it shows up in the app launcher. Use when asked to make, build, or scaffold an app, tool, utility, or GUI program for the desktop. Triggers: new app, make me an app, desktop app, GUI, Qt, QML, Qt Quick, C++ app, qmake, app launcher entry, PKGBUILD for my app.
Omarchy's own apps are dead simple on purpose: one window, one job, driven from the keyboard, following the desktop theme, and installed like any other package. Build new ones the same way. `templates.md` has the starter files; the published apps are the reference for anything bigger:
Ask what the app should do if it isn't clear, and settle the one job it does. Pick a short lowercase name (`tally`, `pomo`); it is the binary, the package, the `.desktop` file, the icon, and the Wayland app id all at once. Create the project in `~/Work/<name>` unless the user says otherwise, and `git init` it.
Everything an app needs is part of Omarchy: `qmake6`, `make`, a C++ compiler, Qt's base, declarative, multimedia, SVG, and Wayland modules, and `ffmpeg`. If `qmake6` is missing, install the set with `omarchy-pkg-add base-devel qt6-base qt6-declarative qt6-multimedia qt6-svg qt6-wayland ffmpeg`.
<name>.pro qmake project: Qt modules, sources, resources
bin/build qmake6 + make into build/<name>
bin/test builds and runs the Qt Test binary offscreen
bin/install makepkg -fsi, so the app lands in the launcher
src/main.cpp app setup; hands C++ objects to QML
src/backend.{h,cpp} the app's state and work, as a QObject
src/theme.{h,cpp} follows the Omarchy accent color
src/Main.qml the window: layout, keys, nothing else
src/resources.qrc compiles the QML into the binary
tests/<name>_tests.{pro,cpp}
pkgbuild/PKGBUILD pkgbuild/<name>.desktop pkgbuild/<name>.svg
README.md LICENSE .gitignore`src/` stays flat. No CMake, no build directories checked in, no generated files committed.
Expose it as a `QObject` with `Q_PROPERTY … NOTIFY` for state and `Q_INVOKABLE` for actions, handed to QML with `engine.rootContext()->setContextProperty("backend", &backend)`.
a few components beside it, and every key binding as a `Shortcut` with `context: Qt.ApplicationShortcut`.
`app.setDesktopFileName("<name>")` so the compositor and launcher match the window to its `.desktop` file and icon.
accent as `Material.accent`, on a dark window color.
`QProcess`, not by linking libav.
(`org.freedesktop.portal.FileChooser`), never `QFileDialog`. Omacut's `src/portalfilepicker.{h,cpp}` behind an abstract `src/filepicker.h` is the pattern to copy, with its attribution, and lets tests inject a fake picker.
`~/.local/state/omarchy/current/theme/colors.toml` and watch it; a theme switch replaces files and symlinks, so re-arm the watcher on every change. Fall back to `#FFD60A` when Omarchy isn't there. `templates.md` has the `Theme` class. Never change Omarchy's config.
asks first when there's unsaved or unexported work), Space is the main action, Ctrl+Z / Ctrl+Shift+Z undo and redo. The README lists the shortcuts in a table.
(write beside the target, then rename). Ask before discarding work.
the window, never worked around by quietly doing less.
imperative ("Trim from the keyboard").
1. `bin/build`, then run `build/<name>` to try it. Pass a file argument if the app opens files, so it's quick to test. 2. `bin/test` after each change to the backend. Tests compile `../src/*.cpp` straight in, run offscreen, and pass temp directories to anything that reads the disk (the `Theme` takes the theme directory as an argument). 3. Look at it. Take a screenshot with `omarchy capture screenshot fullscreen save` and check the window against the theme before calling it done. 4. `bin/install` builds the package with `makepkg -fsi`, which installs the binary, the `.desktop` entry, and the icon. The app then appears in the Omarchy app launcher (`Super + Space`). Run it again after every change the user should see there.
Omarchy is a beautiful, fun & agentic Linux distribution by DHH. Read more at omarchy.org.
Diagnose why a program crashed on this machine, from a systemd-coredump core dump. Use when a…