Add omacharts (#802)
A fast, keyboard-driven charting app for Omarchy, built on GTK4 and libadwaita. It follows the active Omarchy theme, generates an indicator palette for whichever theme is in force, and ships a plugin for the bar. Source build from the project's own tagged release, tracked by a GitHub watch so version bumps come from the release feed. Not in the AUR.
This commit is contained in:
1 parent
859c6ff154
commit
c2166632e9
2 files changed
+101
No files matched your search
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"source": "local",
|
||||
"upstream": {
|
||||
"watch": {
|
||||
"github": "jorgemanrubia/omacharts",
|
||||
"pattern": "v(?P<version>[0-9]+(?:\\.[0-9]+)*)"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,92 @@
|
||||
# Maintainer: Jorge Manrubia <jorge@37signals.com>
|
||||
pkgname=omacharts
|
||||
pkgver=0.1.2
|
||||
pkgrel=1
|
||||
pkgdesc='Fast, beautiful charting software for Omarchy'
|
||||
arch=('x86_64' 'aarch64')
|
||||
url='https://github.com/jorgemanrubia/omacharts'
|
||||
license=('MIT')
|
||||
depends=('gtk4' 'libadwaita')
|
||||
makedepends=('cargo')
|
||||
# SQLite and ring are compiled from C by build scripts. makepkg's default
|
||||
# link-time optimisation hands the linker GCC's LTO bytecode, which rustc's
|
||||
# linker does not read, and every one of their symbols comes back undefined.
|
||||
options=('!lto')
|
||||
source=("$pkgname-$pkgver.tar.gz::$url/archive/refs/tags/v$pkgver.tar.gz")
|
||||
sha256sums=('00ba2da44bd2a5ec58e3bc6c933bc35d16f6fe7a9c5270b06c93d01538ad89ad')
|
||||
|
||||
prepare() {
|
||||
cd "$pkgname-$pkgver"
|
||||
# Vendor up front so the build itself needs no network, which is what
|
||||
# makepkg expects and what a clean chroot enforces.
|
||||
export RUSTUP_TOOLCHAIN=stable
|
||||
cargo fetch --locked --target "$(rustc -vV | sed -n 's/^host: //p')"
|
||||
}
|
||||
|
||||
build() {
|
||||
cd "$pkgname-$pkgver"
|
||||
export RUSTUP_TOOLCHAIN=stable
|
||||
export CARGO_TARGET_DIR=target
|
||||
cargo build --frozen --release --bin omacharts
|
||||
}
|
||||
|
||||
check() {
|
||||
cd "$pkgname-$pkgver"
|
||||
export RUSTUP_TOOLCHAIN=stable
|
||||
# The engine's tests and the app's own; neither needs a display.
|
||||
cargo test --frozen --release --workspace
|
||||
}
|
||||
|
||||
package() {
|
||||
cd "$pkgname-$pkgver"
|
||||
local id='com.jorgemanrubia.Omacharts'
|
||||
|
||||
install -Dm755 "target/release/$pkgname" "$pkgdir/usr/bin/$pkgname"
|
||||
install -Dm644 "packaging/$id.desktop" "$pkgdir/usr/share/applications/$id.desktop"
|
||||
|
||||
for size in 16 24 32 48 64 128 256 512; do
|
||||
install -Dm644 "assets/icons/${size}x${size}/$id.png" \
|
||||
"$pkgdir/usr/share/icons/hicolor/${size}x${size}/apps/$id.png"
|
||||
done
|
||||
install -Dm644 "assets/icons/$id.svg" \
|
||||
"$pkgdir/usr/share/icons/hicolor/scalable/apps/$id.svg"
|
||||
|
||||
# The agent skill, and the Claude Code plugin manifest that wraps it.
|
||||
# Installed so that `omacharts skill install` has one directory to link every
|
||||
# agent at, and so the plugin can be added from a path on the machine rather
|
||||
# than fetched again. Codex needs no manifest — the skill directory is the
|
||||
# whole story there.
|
||||
#
|
||||
# Putting the files here changes nothing about anybody's agent: no route runs
|
||||
# on its own. Installing a charting app must not write into an agent's
|
||||
# configuration, so there is no post-install hook here and there is not going
|
||||
# to be one — see src/cli/skill.rs.
|
||||
local plugin="$pkgdir/usr/share/$pkgname/agents"
|
||||
install -Dm644 agents/.claude-plugin/plugin.json "$plugin/.claude-plugin/plugin.json"
|
||||
install -Dm644 agents/.claude-plugin/marketplace.json "$plugin/.claude-plugin/marketplace.json"
|
||||
install -Dm644 agents/skills/omacharts/SKILL.md "$plugin/skills/omacharts/SKILL.md"
|
||||
|
||||
install -Dm644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
|
||||
install -Dm644 README.md "$pkgdir/usr/share/doc/$pkgname/README.md"
|
||||
install -Dm644 doc/cli.md "$pkgdir/usr/share/doc/$pkgname/cli.md"
|
||||
|
||||
# Generated by running the binary that is about to be installed, so the
|
||||
# completions and the man page can never describe a different version of
|
||||
# the command surface from the one on PATH. Needs no display: these are
|
||||
# answered before anything GTK touches.
|
||||
#
|
||||
# Without a bus, though. A command is handed to an omacharts that is
|
||||
# already running, so building this with the app open would have the
|
||||
# running one answer — and ship a man page describing whichever binary
|
||||
# that happened to be. A clean chroot has no bus and never noticed.
|
||||
local -x DBUS_SESSION_BUS_ADDRESS=
|
||||
local bin="target/release/$pkgname"
|
||||
"$bin" surface --completions bash |
|
||||
install -Dm644 /dev/stdin "$pkgdir/usr/share/bash-completion/completions/$pkgname"
|
||||
"$bin" surface --completions zsh |
|
||||
install -Dm644 /dev/stdin "$pkgdir/usr/share/zsh/site-functions/_$pkgname"
|
||||
"$bin" surface --completions fish |
|
||||
install -Dm644 /dev/stdin "$pkgdir/usr/share/fish/vendor_completions.d/$pkgname.fish"
|
||||
"$bin" surface --man |
|
||||
install -Dm644 /dev/stdin "$pkgdir/usr/share/man/man1/$pkgname.1"
|
||||
}
|
||||
Reference in new issue
Block a user