Compare commits

...
6 Commits
Author SHA1 Message Date
Kharec fd90f9edaf ci: update ignore 2026-09-29 14:25:53 +02:00
Kharec da744d51c6 feat: add pkgbuild 2026-09-29 14:25:50 +02:00
Kharec d8334b1cfd feat: update version 2026-09-29 14:25:46 +02:00
Kharec b652cd88e8 docs: update readme 2026-09-29 14:25:43 +02:00
Kharec 89dafc010e chore: update changelog 2026-09-29 14:25:39 +02:00
Kharec 89a8f0b49b docs: update agent 2026-09-29 14:25:35 +02:00
6 changed files with 77 additions and 1 deletions

No files matched your search

+4
View File
@@ -37,3 +37,7 @@ frontend/wailsjs/
# Screenshot tool # Screenshot tool
tools/screenshots/node_modules/ tools/screenshots/node_modules/
# makepkg (packaging/arch)
packaging/arch/*
!packaging/arch/PKGBUILD
+5
View File
@@ -49,6 +49,7 @@ app.go App struct bound to JS: file I/O, dialogs, pagination, a
desktop_linux.go cgo: desktop light/dark preference for GTK dialogs, window button layout, compositing desktop_linux.go cgo: desktop light/dark preference for GTK dialogs, window button layout, compositing
desktop/ app icon (plotzilla.svg, source of truth; plotzilla.png = 256 px render embedded as desktop/ app icon (plotzilla.svg, source of truth; plotzilla.png = 256 px render embedded as
the X11 window icon), plotzilla.desktop, MIME types for .fountain/.fdx the X11 window icon), plotzilla.desktop, MIME types for .fountain/.fdx
packaging/arch/PKGBUILD Arch package: builds tag $pkgver, installs with `make install`
internal/screenplay the model: Document{TitlePage, Elements, Settings}, Element{Type, Runs, SceneNumber, internal/screenplay the model: Document{TitlePage, Elements, Settings}, Element{Type, Runs, SceneNumber,
Dual, Level, Locked}, Run{Text, b/i/u, Note, Rev}, revision set names Dual, Level, Locked}, Run{Text, b/i/u, Note, Rev}, revision set names
internal/fountain Fountain parser (parse.go) and writer (write.go), incl. Plotzilla's boneyard data internal/fountain Fountain parser (parse.go) and writer (write.go), incl. Plotzilla's boneyard data
@@ -366,6 +367,10 @@ change `style.css` too** (and vice versa).
- A literal BOM or other invisible character in Go source breaks `go vet`; write `""`. - A literal BOM or other invisible character in Go source breaks `go vet`; write `""`.
- `npm` blocks install scripts (esbuild postinstall); the build still works with the bundled - `npm` blocks install scripts (esbuild postinstall); the build still works with the bundled
binary. binary.
- `packaging/arch/PKGBUILD` builds the git tag `$pkgver` (tags have no `v`: `1.1`): on a
release, bump `pkgver` with `VERSION` and push the tag. It installs through
`make install DESTDIR=… PREFIX=/usr`, so a new installed file goes in the Makefile, not in
the PKGBUILD.
- Vite empties `dist/` on each build; placeholders belong in `frontend/public/`. - Vite empties `dist/` on each build; placeholders belong in `frontend/public/`.
- The icon exists three times: `desktop/plotzilla.svg`, its PNG render (`rsvg-convert -w 256 - The icon exists three times: `desktop/plotzilla.svg`, its PNG render (`rsvg-convert -w 256
-h 256 desktop/plotzilla.svg -o desktop/plotzilla.png`) and a simplified copy for small sizes, -h 256 desktop/plotzilla.svg -o desktop/plotzilla.png`) and a simplified copy for small sizes,
+6
View File
@@ -5,6 +5,12 @@ All notable changes to Plotzilla are documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). The current The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). The current
version is in the `VERSION` file. version is in the `VERSION` file.
## [1.2]
### Added
- Arch Linux PKGBUILD (`packaging/arch`).
## [1.1] ## [1.1]
### Added ### Added
+7
View File
@@ -50,6 +50,12 @@ MIME types for `.fountain` and `.fdx` files, so file managers offer to open them
Plotzilla. `make install PREFIX=~/.local` installs for your user only (`~/.local/bin` must be in Plotzilla. `make install PREFIX=~/.local` installs for your user only (`~/.local/bin` must be in
your `PATH`); `make uninstall` with the same `PREFIX` removes everything. your `PATH`); `make uninstall` with the same `PREFIX` removes everything.
On Arch Linux, build a package instead, from the tag matching `pkgver`:
```sh
cd packaging/arch && makepkg -si
```
Install the Courier Prime font (`ttf-courier-prime` on the AUR) so the text on screen matches Install the Courier Prime font (`ttf-courier-prime` on the AUR) so the text on screen matches
the PDF exactly. Without it, Plotzilla uses Courier New, Nimbus Mono or Liberation Mono. the PDF exactly. Without it, Plotzilla uses Courier New, Nimbus Mono or Liberation Mono.
@@ -473,6 +479,7 @@ binary embeds `frontend/dist`, so the frontend has to be built first.
main.go, app.go Wails application and the methods the frontend calls main.go, app.go Wails application and the methods the frontend calls
desktop_linux.go desktop integration: light/dark preference, window button layout desktop_linux.go desktop integration: light/dark preference, window button layout
desktop/ icon, desktop entry and MIME types installed by `make install` desktop/ icon, desktop entry and MIME types installed by `make install`
packaging/arch PKGBUILD for an Arch Linux package
internal/screenplay document model internal/screenplay document model
internal/fountain Fountain reader and writer internal/fountain Fountain reader and writer
internal/fdx Final Draft reader and writer internal/fdx Final Draft reader and writer
+1 -1
View File
@@ -1 +1 @@
1.0 1.2
+54
View File
@@ -0,0 +1,54 @@
# Maintainer: Sandro Cazzaniga <sandro@cazzaniga.fr>
pkgname=plotzilla
pkgver=1.2
pkgrel=1
pkgdesc='Screenwriting app for Linux: scripts in the Hollywood standard format, Fountain, FDX and PDF'
arch=('x86_64' 'aarch64')
url='https://git.kharec.info/Kharec/plotzilla'
license=('GPL-3.0-only')
depends=('gtk3' 'webkit2gtk-4.1' 'libsoup3' 'gdk-pixbuf2' 'glib2' 'glibc' 'hicolor-icon-theme')
makedepends=('git' 'go' 'nodejs' 'npm')
optdepends=('ttf-courier-prime: the font of the printed page, on screen too'
'hunspell-en_us: English spell checking'
'hunspell-fr: French spell checking')
source=("$pkgname::git+$url.git#tag=$pkgver")
sha256sums=('SKIP')
prepare() {
cd "$pkgname"
export GOPATH="$srcdir/gopath"
go mod download -modcacherw
# Downloads belong in prepare(); the build then runs offline.
npm ci --prefix frontend --no-audit --no-fund
}
build() {
cd "$pkgname"
export GOPATH="$srcdir/gopath"
export CGO_CPPFLAGS="$CPPFLAGS"
export CGO_CFLAGS="$CFLAGS"
export CGO_CXXFLAGS="$CXXFLAGS"
export CGO_LDFLAGS="$LDFLAGS"
export GOFLAGS='-buildmode=pie -trimpath -mod=readonly -modcacherw'
npm run build --prefix frontend
# The binary embeds frontend/dist; webkit2_41 selects WebKitGTK 4.1.
go build -tags desktop,production,webkit2_41 \
-ldflags "-linkmode=external -compressdwarf=false" \
-o build/bin/plotzilla .
}
check() {
cd "$pkgname"
export GOPATH="$srcdir/gopath"
go test ./internal/...
}
package() {
cd "$pkgname"
# DESTDIR skips the cache updates: pacman's hooks refresh the MIME,
# desktop and icon caches.
make install DESTDIR="$pkgdir" PREFIX=/usr
install -Dm644 README.md CHANGELOG.md -t "$pkgdir/usr/share/doc/$pkgname"
}