Wayland WebKit default, AUR nosuckshell-bin, and publish workflow#106
Conversation
Add aur/nosuckshell-bin PKGBUILD (repackage official .deb from GitHub Releases), aur/README.md for maintainer setup, and aur-publish workflow that updates the AUR after a published release when AUR_SSH_PRIVATE_KEY is configured. Extend README, CONTRIBUTING, CHANGELOG, and releases docs. Co-authored-by: jm <jm@tresorhaus-berlin.de>
There was a problem hiding this comment.
Pull request overview
Note
Copilot was unable to run its full agentic suite in this review.
Adds Wayland-friendly WebKit defaults for the Linux desktop app and introduces AUR packaging + an automated publish workflow, along with documentation updates to reflect the new install/release paths.
Changes:
- Default
WEBKIT_DISABLE_DMABUF_RENDERER=1on Linux Wayland when the env var is unset (X11 unchanged). - Add AUR
nosuckshell-binPKGBUILD + maintainer docs, and a GitHub Actions workflow to publish updates on release publish. - Update README/CONTRIBUTING/CHANGELOG/release notes and templates to document the new behavior and distribution options.
Reviewed changes
Copilot reviewed 11 out of 11 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| docs/releases.md | Documents the new AUR publish path as part of the release process. |
| docs/media/screenshots/README.md | Updates screenshot capture instructions to match the new Wayland env default behavior. |
| docs/CHANGELOG.md | Records the Wayland WebKit env default and AUR/workflow additions. |
| aur/nosuckshell-bin/PKGBUILD | Adds the AUR packaging definition that repackages the GitHub Release .deb. |
| aur/README.md | Adds maintainer/user documentation for AUR usage and setup. |
| apps/desktop/src-tauri/src/main.rs | Calls into the new Linux env setup at process start. |
| apps/desktop/src-tauri/src/linux_webkit_env.rs | Implements Wayland detection + env var defaulting and unit tests. |
| README.md | Adds AUR install instructions and updates Linux WebKit guidance. |
| CONTRIBUTING.md | Updates dev run instructions and documents AUR workflow for maintainers. |
| .github/workflows/aur-publish.yml | Adds a release-published workflow to update/publish the AUR package. |
| .github/ISSUE_TEMPLATE/bug_report.md | Updates troubleshooting prompt to match the new Wayland defaulting behavior. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| # Only the upstream repo publishes to the official AUR package; forks skip unless they add secrets. | ||
| if: github.repository == 'd0dg3r/NoSuckShell' |
There was a problem hiding this comment.
The job runs on the upstream repo even if AUR_SSH_PRIVATE_KEY is not configured, which will make the workflow fail on every published release until the secret is added. Consider extending the job if: condition to also require the secret to be present (skip publishing cleanly when it’s missing).
| # Only the upstream repo publishes to the official AUR package; forks skip unless they add secrets. | |
| if: github.repository == 'd0dg3r/NoSuckShell' | |
| # Only the upstream repo publishes to the official AUR package; skip cleanly if the deploy key secret is missing. | |
| if: github.repository == 'd0dg3r/NoSuckShell' && secrets.AUR_SSH_PRIVATE_KEY != '' |
| pkgbuild: aur/nosuckshell-bin/PKGBUILD | ||
| commit_username: NoSuckShell Bot | ||
| commit_email: bot@nosuckshell.dev | ||
| ssh_private_key: ${{ secrets.AUR_SSH_PRIVATE_KEY }} |
There was a problem hiding this comment.
The job runs on the upstream repo even if AUR_SSH_PRIVATE_KEY is not configured, which will make the workflow fail on every published release until the secret is added. Consider extending the job if: condition to also require the secret to be present (skip publishing cleanly when it’s missing).
| options=('!strip') | ||
| # Remote name avoids collisions; makepkg saves it as nosuckshell-bin-${pkgver}.deb | ||
| source=("${pkgname}-${pkgver}.deb::https://github.com/d0dg3r/NoSuckShell/releases/download/v${pkgver}/NoSuckShell_${pkgver}_amd64.deb") | ||
| sha256sums=('SKIP') |
There was a problem hiding this comment.
Shipping the PKGBUILD with sha256sums=('SKIP') disables source integrity verification for users building from AUR. Since pkgver is already set to a concrete release, prefer committing the real SHA-256 for that version (the workflow can still update it on new releases).
| sha256sums=('SKIP') | |
| sha256sums=('PUT_REAL_SHA256_FOR_NoSuckShell_0.3.3_amd64.deb_HERE') |
| # Align .desktop launcher with /usr/bin/nosuckshell | ||
| shopt -s nullglob | ||
| for f in "${pkgdir}/usr/share/applications/"*.desktop; do | ||
| sed -i 's/^Exec=.*/Exec=nosuckshell/' "$f" |
There was a problem hiding this comment.
This rewrites the entire Exec= line, which can drop important desktop-entry arguments/placeholders (e.g., %U, %F, --some-flag) and break file/url handling. Safer approach: only replace the executable token (e.g., Exec=NoSuckShell → Exec=nosuckshell) while preserving any existing arguments and placeholders.
| sed -i 's/^Exec=.*/Exec=nosuckshell/' "$f" | |
| sed -i 's|^Exec=NoSuckShell\([[:space:]]\|$\)|Exec=nosuckshell\1|' "$f" |
Summary
WEBKIT_DISABLE_DMABUF_RENDERER=1at process start when unset and the session looks like Wayland (WAYLAND_DISPLAYorXDG_SESSION_TYPE=wayland), so Arch installs and other bundles work without a manual env prefix. X11 unchanged; existing env wins.aur/nosuckshell-bin/PKGBUILD(repackage official.debfrom GitHub Releases),aur/README.md(maintainer setup), and.github/workflows/aur-publish.ymlto push updates after each published release whenAUR_SSH_PRIVATE_KEYis set (upstream repo only).Testing
cargo testinapps/desktop/src-tauri(Linux with suitable Rust).Maintainer follow-up
nosuckshell-binon the AUR with initial PKGBUILD +.SRCINFO.AUR_SSH_PRIVATE_KEY.