Skip to content

Instantly share code, notes, and snippets.

@sukanka
Created May 30, 2026 02:37
Show Gist options
  • Select an option

  • Save sukanka/eac3b15945e61ba5e169a460e8eebfc6 to your computer and use it in GitHub Desktop.

Select an option

Save sukanka/eac3b15945e61ba5e169a460e8eebfc6 to your computer and use it in GitHub Desktop.
PKGBUILD for marktext
# Maintainer: Caleb Maclennan <caleb@alerque.com>
# Contributor: Gabriel Saillard (GitSquared) <gabriel@saillard.dev>
# Contributor: David Birks <david@tellus.space>
# Contributor: Simon Doppler (dopsi) <dop.simon@gmail.com>
# Contributor: dpeukert
pkgname=marktext
pkgver=0.19.0
pkgrel=1
pkgdesc='A simple and elegant open-source markdown editor that focused on speed and usability'
arch=(x86_64)
url=https://www.marktext.cc
_url="https://github.com/$pkgname/$pkgname"
license=(MIT)
_electron=electron42
depends=("$_electron"
libxkbfile
libsecret
openssl
ripgrep)
makedepends=(jq
pnpm
node-gyp
moreutils
git
)
_archive="$pkgname-$pkgver"
source=("$_url/archive/v$pkgver/$_archive.tar.gz"
"$pkgname.sh"
# "$pkgname-arg-handling.patch"
)
sha256sums=('11cbf280f28dcf71b993717ca4205e5fe54138af76943749e5da4d0ec20504d3'
'8f37f164a642a536b75f54b49e7c7a7c1e4d355a91dd8ece4cab6a95b42d369e')
prepare() {
cd "$_archive"
local electronDist="/usr/lib/${_electron}"
local electronVersion="$(<$electronDist/version)"
jq ".devDependencies.electron = \"$electronVersion\"" package.json |
jq ".build.electronDist = \"$electronDist\"" |
jq ".build.electronVersion = \"$electronVersion\"" |
sponge package.json
sed -i "s/@ELECTRON@/$_electron/" "${srcdir}/$pkgname.sh"
sed -i '/AppImage/d;/snap/d' electron-builder.yml
sed -i 's/rpm/dir/g' electron-builder.yml
}
build() {
cd "$_archive"
export HOME=${srcdir}
export ELECTRON_SKIP_BINARY_DOWNLOAD=1
export TMPDIR=${srcdir}
export NODE_ENV=production
pnpm install
pnpm run build:linux
}
package() {
cd "$_archive"
install -Dm0755 "${srcdir}/$pkgname.sh" "$pkgdir/usr/bin/$pkgname"
local _dist=dist/linux-unpacked/resources
install -d "$pkgdir/usr/lib/$pkgname/"
cp -ar "$_dist"/* "$pkgdir/usr/lib/$pkgname/"
local _rg_path="$pkgdir/usr/lib/$pkgname/app.asar.unpacked/node_modules/@vscode/ripgrep-linux-x64/bin/"
mkdir -p $_rg_path
ln -sf /usr/bin/rg "$_rg_path"
install -Dm0755 -t "$pkgdir/usr/share/applications/" "build/linux/$pkgname.desktop"
install -Dm0755 -t "$pkgdir/usr/share/metainfo/" "build/linux/$pkgname.appdata.xml"
install -Dm0644 build/icons/icon.png "$pkgdir/usr/share/pixmaps/$pkgname.png"
install -Dm0644 -t "$pkgdir/usr/share/licenses/$pkgname/" LICENSE
install -Dm0644 -t "$pkgdir/usr/share/doc/$pkgname/" README.md
cp -a docs "$pkgdir/usr/share/doc/$pkgname/"
cp -ar static "$pkgdir/usr/lib/$pkgname/"
pushd "build/icons"
for res in {16,24,32,48,64,128,256,512}; do
install -Dm644 ${res}x${res}/marktext.png -t $pkgdir/usr/share/icons/hicolor/${res}x${res}/
done
popd
}
@sukanka

sukanka commented May 30, 2026

Copy link
Copy Markdown
Author

patches needed for it to find the proper path for translations

Error loading translation: Error: Translation file not found for language: en
    at loadTranslations (/usr/lib/marktext/app.asar/out/main/index.js:332:13)
    at getTranslation (/usr/lib/marktext/app.asar/out/main/index.js:347:24)
    at t (/usr/lib/marktext/app.asar/out/main/index.js:377:10)
    at getCUT (/usr/lib/marktext/app.asar/out/main/index.js:22125:10)
    at Object.<anonymous> (/usr/lib/marktext/app.asar/out/main/index.js:22184:1)
    at Module._compile (node:internal/modules/cjs/loader:1838:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1971:10)
    at Module.load (node:internal/modules/cjs/loader:1560:32)
    at Module._load (node:internal/modules/cjs/loader:1362:12)
    at c._load (node:electron/js2c/node_init:2:18095)
Error loading translation: Error: Translation file not found for language: en
    at loadTranslations (/usr/lib/marktext/app.asar/out/main/index.js:332:13)
    at getTranslation (/usr/lib/marktext/app.asar/out/main/index.js:347:24)
    at t (/usr/lib/marktext/app.asar/out/main/index.js:377:10)
    at getCOPY (/usr/lib/marktext/app.asar/out/main/index.js:22130:10)
    at Object.<anonymous> (/usr/lib/marktext/app.asar/out/main/index.js:22185:1)
    at Module._compile (node:internal/modules/cjs/loader:1838:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1971:10)
    at Module.load (node:internal/modules/cjs/loader:1560:32)
    at Module._load (node:internal/modules/cjs/loader:1362:12)
    at c._load (node:electron/js2c/node_init:2:18095)
Error loading translation: Error: Translation file not found for language: en
    at loadTranslations (/usr/lib/marktext/app.asar/out/main/index.js:332:13)
    at getTranslation (/usr/lib/marktext/app.asar/out/main/index.js:347:24)
    at t (/usr/lib/marktext/app.asar/out/main/index.js:377:10)
    at getPASTE (/usr/lib/marktext/app.asar/out/main/index.js:22135:10)
    at Object.<anonymous> (/usr/lib/marktext/app.asar/out/main/index.js:22186:1)
    at Module._compile (node:internal/modules/cjs/loader:1838:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1971:10)
    at Module.load (node:internal/modules/cjs/loader:1560:32)
    at Module._load (node:internal/modules/cjs/loader:1362:12)
    at c._load (node:electron/js2c/node_init:2:18095)
Error loading translation: Error: Translation file not found for language: en
    at loadTranslations (/usr/lib/marktext/app.asar/out/main/index.js:332:13)
    at getTranslation (/usr/lib/marktext/app.asar/out/main/index.js:347:24)
    at t (/usr/lib/marktext/app.asar/out/main/index.js:377:10)
    at getCopyAsRich (/usr/lib/marktext/app.asar/out/main/index.js:22140:10)
    at Object.<anonymous> (/usr/lib/marktext/app.asar/out/main/index.js:22187:1)
    at Module._compile (node:internal/modules/cjs/loader:1838:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1971:10)
    at Module.load (node:internal/modules/cjs/loader:1560:32)
    at Module._load (node:internal/modules/cjs/loader:1362:12)
    at c._load (node:electron/js2c/node_init:2:18095)
Error loading translation: Error: Translation file not found for language: en
    at loadTranslations (/usr/lib/marktext/app.asar/out/main/index.js:332:13)
    at getTranslation (/usr/lib/marktext/app.asar/out/main/index.js:347:24)
    at t (/usr/lib/marktext/app.asar/out/main/index.js:377:10)
    at getCopyAsHtml (/usr/lib/marktext/app.asar/out/main/index.js:22149:10)
    at Object.<anonymous> (/usr/lib/marktext/app.asar/out/main/index.js:22188:1)
    at Module._compile (node:internal/modules/cjs/loader:1838:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1971:10)
    at Module.load (node:internal/modules/cjs/loader:1560:32)
    at Module._load (node:internal/modules/cjs/loader:1362:12)
    at c._load (node:electron/js2c/node_init:2:18095)
Error loading translation: Error: Translation file not found for language: en
    at loadTranslations (/usr/lib/marktext/app.asar/out/main/index.js:332:13)
    at getTranslation (/usr/lib/marktext/app.asar/out/main/index.js:347:24)
    at t (/usr/lib/marktext/app.asar/out/main/index.js:377:10)
    at getPasteAsPlainText (/usr/lib/marktext/app.asar/out/main/index.js:22158:10)
    at Object.<anonymous> (/usr/lib/marktext/app.asar/out/main/index.js:22189:1)
    at Module._compile (node:internal/modules/cjs/loader:1838:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1971:10)
    at Module.load (node:internal/modules/cjs/loader:1560:32)
    at Module._load (node:internal/modules/cjs/loader:1362:12)
    at c._load (node:electron/js2c/node_init:2:18095)
Error loading translation: Error: Translation file not found for language: en
    at loadTranslations (/usr/lib/marktext/app.asar/out/main/index.js:332:13)
    at getTranslation (/usr/lib/marktext/app.asar/out/main/index.js:347:24)
    at t (/usr/lib/marktext/app.asar/out/main/index.js:377:10)
    at getInsertBefore (/usr/lib/marktext/app.asar/out/main/index.js:22167:10)
    at Object.<anonymous> (/usr/lib/marktext/app.asar/out/main/index.js:22190:1)
    at Module._compile (node:internal/modules/cjs/loader:1838:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1971:10)
    at Module.load (node:internal/modules/cjs/loader:1560:32)
    at Module._load (node:internal/modules/cjs/loader:1362:12)
    at c._load (node:electron/js2c/node_init:2:18095)
Error loading translation: Error: Translation file not found for language: en
    at loadTranslations (/usr/lib/marktext/app.asar/out/main/index.js:332:13)
    at getTranslation (/usr/lib/marktext/app.asar/out/main/index.js:347:24)
    at t (/usr/lib/marktext/app.asar/out/main/index.js:377:10)
    at getInsertAfter (/usr/lib/marktext/app.asar/out/main/index.js:22176:10)
    at Object.<anonymous> (/usr/lib/marktext/app.asar/out/main/index.js:22191:1)
    at Module._compile (node:internal/modules/cjs/loader:1838:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1971:10)
    at Module.load (node:internal/modules/cjs/loader:1560:32)
    at Module._load (node:internal/modules/cjs/loader:1362:12)
    at c._load (node:electron/js2c/node_init:2:18095)
10:33:53.187 › Error: ENOENT: no such file or directory, open '/usr/lib/electron42/resources/static/preference.json'
    at Object.readFileSync (node:fs:441:20)
    at t.readFileSync (node:electron/js2c/node_init:2:11049)
    at Preference.init (/usr/lib/marktext/app.asar/out/main/index.js:17214:39)
    at new Preference (/usr/lib/marktext/app.asar/out/main/index.js:17209:10)
    at new Accessor (/usr/lib/marktext/app.asar/out/main/index.js:21764:24)
    at Object.<anonymous> (/usr/lib/marktext/app.asar/out/main/index.js:24370:14)
    at Module._compile (node:internal/modules/cjs/loader:1838:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1971:10)
    at Module.load (node:internal/modules/cjs/loader:1560:32)
    at Module._load (node:internal/modules/cjs/loader:1362:12)
Error loading translation: Error: Translation file not found for language: en
    at loadTranslations (/usr/lib/marktext/app.asar/out/main/index.js:332:13)
    at getTranslation (/usr/lib/marktext/app.asar/out/main/index.js:347:24)
    at t (/usr/lib/marktext/app.asar/out/main/index.js:377:10)
    at Object.<anonymous> (/usr/lib/marktext/app.asar/out/main/index.js:24374:13)
    at Module._compile (node:internal/modules/cjs/loader:1838:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1971:10)
    at Module.load (node:internal/modules/cjs/loader:1560:32)
    at Module._load (node:internal/modules/cjs/loader:1362:12)
    at c._load (node:electron/js2c/node_init:2:18095)
    at wrapModuleLoad (node:internal/modules/cjs/loader:262:19)
10:33:53.189 › error.initializationFailed Error: Can not load static preference.json file
    at Preference.init (/usr/lib/marktext/app.asar/out/main/index.js:17228:13)
    at new Preference (/usr/lib/marktext/app.asar/out/main/index.js:17209:10)
    at new Accessor (/usr/lib/marktext/app.asar/out/main/index.js:21764:24)
    at Object.<anonymous> (/usr/lib/marktext/app.asar/out/main/index.js:24370:14)
    at Module._compile (node:internal/modules/cjs/loader:1838:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1971:10)
    at Module.load (node:internal/modules/cjs/loader:1560:32)
    at Module._load (node:internal/modules/cjs/loader:1362:12)
    at c._load (node:electron/js2c/node_init:2:18095)
    at wrapModuleLoad (node:internal/modules/cjs/loader:262:19)
Error loading translation: Error: Translation file not found for language: en
    at loadTranslations (/usr/lib/marktext/app.asar/out/main/index.js:332:13)
    at getTranslation (/usr/lib/marktext/app.asar/out/main/index.js:347:24)
    at t (/usr/lib/marktext/app.asar/out/main/index.js:377:10)
    at Object.<anonymous> (/usr/lib/marktext/app.asar/out/main/index.js:24379:7)
    at Module._compile (node:internal/modules/cjs/loader:1838:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1971:10)
    at Module.load (node:internal/modules/cjs/loader:1560:32)
    at Module._load (node:internal/modules/cjs/loader:1362:12)
    at c._load (node:electron/js2c/node_init:2:18095)
    at wrapModuleLoad (node:internal/modules/cjs/loader:262:19)
error.startupError
Can not load static preference.json file

Error: Can not load static preference.json file
    at Preference.init (/usr/lib/marktext/app.asar/out/main/index.js:17228:13)
    at new Preference (/usr/lib/marktext/app.asar/out/main/index.js:17209:10)
    at new Accessor (/usr/lib/marktext/app.asar/out/main/index.js:21764:24)
    at Object.<anonymous> (/usr/lib/marktext/app.asar/out/main/index.js:24370:14)
    at Module._compile (node:internal/modules/cjs/loader:1838:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1971:10)
    at Module.load (node:internal/modules/cjs/loader:1560:32)
    at Module._load (node:internal/modules/cjs/loader:1362:12)
    at c._load (node:electron/js2c/node_init:2:18095)
    at wrapModuleLoad (node:internal/modules/cjs/loader:262:19)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment