detached 162902b

Merge 48800da9adb0579d631006563138d4866e2dff4e into 26fa5a1cad1d2764ade51683f309f670de6e0c61

commit
162902b28bada1679d0fc46c4ac894d98d6a38ae
author
ermite · · 2026-10-22 05:39 UTC
merge of
26fa5a1 + 48800da · diff against the first parent
signature
unsigned
4 files · +26 -24
M .github/workflows/release.yml +3 -8
@@ -8,7 +8,10 @@ concurrency:
88 group: release-${{ github.ref }}
99 cancel-in-progress: false
1010 jobs:
11+ # Releases are published by ermite (git.bnema.dev); the GitHub mirror
12+ # receives the tags but must not publish a second release or AUR push.
1113 check:
14+ if: github.server_url != 'https://github.com'
1215 uses: ./.github/workflows/ci.yml
1316
1417 release:
@@ -16,8 +19,6 @@ jobs:
1619 runs-on: ubuntu-latest
1720 permissions:
1821 contents: write # create the release
19- id-token: write # sign the provenance attestation
20- attestations: write
2122 steps:
2223 - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
2324 with:
@@ -44,12 +45,6 @@ jobs:
4445 args: release --clean
4546 env:
4647 GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
47- - uses: actions/attest-build-provenance@4d101475d8b20a2381f78447822ac1eab6504dd8 # v4.2.2
48- with:
49- subject-path: |
50- dist/*.tar.gz
51- dist/*.deb
52- dist/checksums.txt
5348 - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
5449 with:
5550 name: aur-bin
@@ -8,7 +8,10 @@ concurrency:
8 group: release-${{ github.ref }}8 group: release-${{ github.ref }}
9 cancel-in-progress: false9 cancel-in-progress: false
10 jobs:10 jobs:
11+ # Releases are published by ermite (git.bnema.dev); the GitHub mirror
12+ # receives the tags but must not publish a second release or AUR push.
11 check:13 check:
14+ if: github.server_url != 'https://github.com'
12 uses: ./.github/workflows/ci.yml15 uses: ./.github/workflows/ci.yml
13 16
14 release:17 release:
@@ -16,8 +19,6 @@ jobs:
16 runs-on: ubuntu-latest19 runs-on: ubuntu-latest
17 permissions:20 permissions:
18 contents: write # create the release21 contents: write # create the release
19- id-token: write # sign the provenance attestation
20- attestations: write
21 steps:22 steps:
22 - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.123 - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
23 with:24 with:
@@ -44,12 +45,6 @@ jobs:
44 args: release --clean45 args: release --clean
45 env:46 env:
46 GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}47 GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
47- - uses: actions/attest-build-provenance@4d101475d8b20a2381f78447822ac1eab6504dd8 # v4.2.2
48- with:
49- subject-path: |
50- dist/*.tar.gz
51- dist/*.deb
52- dist/checksums.txt
53 - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.148 - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
54 with:49 with:
55 name: aur-bin50 name: aur-bin
M .goreleaser.yaml +19 -12
@@ -1,10 +1,18 @@
1-# Builds the GitHub release for a pushed v* tag (.github/workflows/release.yml)
1+# Builds the ermite release for a pushed v* tag (.github/workflows/release.yml)
22 # and generates the neferwl-bin PKGBUILD. The workflow verifies that PKGBUILD
33 # with makepkg before it pushes it to the AUR, so GoReleaser never uploads it.
44 version: 2
55
66 project_name: neferwl
77
8+# Releases are published on ermite. In CI the runner sets GITHUB_API_URL and
9+# GITHUB_SERVER_URL to an address the job can reach; the public URLs are the
10+# fallback for a local run.
11+github_urls:
12+ api: '{{ or (index .Env "GITHUB_API_URL") "https://git.bnema.dev/-/github/api" }}/'
13+ upload: '{{ or (index .Env "GITHUB_API_URL") "https://git.bnema.dev/-/github/api" }}/uploads/'
14+ download: '{{ or (index .Env "GITHUB_SERVER_URL") "https://git.bnema.dev" }}/'
15+
816 before:
917 hooks:
1018 - go mod verify
@@ -49,7 +57,7 @@ nfpms:
4957 file_name_template: "{{ .PackageName }}_{{ .Version }}_{{ .Arch }}"
5058 formats: [deb]
5159 vendor: bnema
52- homepage: https://github.com/bnema/neferwl
60+ homepage: https://git.bnema.dev/neferwl
5361 maintainer: "bnema <b@bnema.dev>"
5462 description: A Wayland compositor that spends its frames on your apps, not on itself
5563 license: GPL-3.0-only
@@ -108,7 +116,7 @@ git:
108116
109117 changelog:
110118 sort: asc
111- use: github
119+ use: git
112120 filters:
113121 exclude:
114122 - "^style(\\([^)]+\\))?:"
@@ -157,9 +165,9 @@ release:
157165 Linux amd64 and arm64. Replace `amd64` with `arm64` on ARM.
158166
159167 ```sh
160- gh release download {{ .Tag }} -R bnema/neferwl -p 'neferwl_{{ .Version }}_linux_amd64.tar.gz' -p checksums.txt
168+ curl -fLO https://git.bnema.dev/neferwl/releases/download/{{ .Tag }}/neferwl_{{ .Version }}_linux_amd64.tar.gz
169+ curl -fLO https://git.bnema.dev/neferwl/releases/download/{{ .Tag }}/checksums.txt
161170 sha256sum -c --ignore-missing checksums.txt
162- gh attestation verify neferwl_{{ .Version }}_linux_amd64.tar.gz -R bnema/neferwl
163171 ```
164172
165173 ### Install on Ubuntu 24.04 and 26.04
@@ -167,21 +175,20 @@ release:
167175 Replace `amd64` with `arm64` on ARM.
168176
169177 ```sh
170- gh release download {{ .Tag }} -R bnema/neferwl -p 'neferwl_{{ .Version }}_amd64.deb' -p checksums.txt
178+ curl -fLO https://git.bnema.dev/neferwl/releases/download/{{ .Tag }}/neferwl_{{ .Version }}_amd64.deb
179+ curl -fLO https://git.bnema.dev/neferwl/releases/download/{{ .Tag }}/checksums.txt
171180 sha256sum -c --ignore-missing checksums.txt
172181 sudo apt install ./neferwl_{{ .Version }}_amd64.deb
173182 ```
174183
175- The archive holds the `neferwl` binary, the session files from `packaging/` and `examples/config`. See the [README](https://github.com/bnema/neferwl#readme) for runtime dependencies and the session setup.
176- footer: |
177- ---
178-
179- **Full changelog**: https://github.com/bnema/neferwl/compare/{{ .PreviousTag }}...{{ .Tag }}
184+ The archive holds the `neferwl` binary, the session files from `packaging/` and `examples/config`. See the [README](https://git.bnema.dev/neferwl) for runtime dependencies and the session setup.
180185
181186 aurs:
182187 - name: neferwl-bin
183188 ids: [neferwl]
184- homepage: https://github.com/bnema/neferwl
189+ homepage: https://git.bnema.dev/neferwl
190+ # Public URL: github_urls.download is the CI-only relay address.
191+ url_template: 'https://git.bnema.dev/neferwl/releases/download/{{ .Tag }}/{{ .ArtifactName }}'
185192 description: A Wayland compositor that spends its frames on your apps, not on itself
186193 maintainers:
187194 - "bnema <b at bnema dot dev>"
@@ -1,10 +1,18 @@
1-# Builds the GitHub release for a pushed v* tag (.github/workflows/release.yml)1+# Builds the ermite release for a pushed v* tag (.github/workflows/release.yml)
2 # and generates the neferwl-bin PKGBUILD. The workflow verifies that PKGBUILD2 # and generates the neferwl-bin PKGBUILD. The workflow verifies that PKGBUILD
3 # with makepkg before it pushes it to the AUR, so GoReleaser never uploads it.3 # with makepkg before it pushes it to the AUR, so GoReleaser never uploads it.
4 version: 24 version: 2
5 5
6 project_name: neferwl6 project_name: neferwl
7 7
8+# Releases are published on ermite. In CI the runner sets GITHUB_API_URL and
9+# GITHUB_SERVER_URL to an address the job can reach; the public URLs are the
10+# fallback for a local run.
11+github_urls:
12+ api: '{{ or (index .Env "GITHUB_API_URL") "https://git.bnema.dev/-/github/api" }}/'
13+ upload: '{{ or (index .Env "GITHUB_API_URL") "https://git.bnema.dev/-/github/api" }}/uploads/'
14+ download: '{{ or (index .Env "GITHUB_SERVER_URL") "https://git.bnema.dev" }}/'
15+
8 before:16 before:
9 hooks:17 hooks:
10 - go mod verify18 - go mod verify
@@ -49,7 +57,7 @@ nfpms:
49 file_name_template: "{{ .PackageName }}_{{ .Version }}_{{ .Arch }}"57 file_name_template: "{{ .PackageName }}_{{ .Version }}_{{ .Arch }}"
50 formats: [deb]58 formats: [deb]
51 vendor: bnema59 vendor: bnema
52- homepage: https://github.com/bnema/neferwl60+ homepage: https://git.bnema.dev/neferwl
53 maintainer: "bnema <b@bnema.dev>"61 maintainer: "bnema <b@bnema.dev>"
54 description: A Wayland compositor that spends its frames on your apps, not on itself62 description: A Wayland compositor that spends its frames on your apps, not on itself
55 license: GPL-3.0-only63 license: GPL-3.0-only
@@ -108,7 +116,7 @@ git:
108 116
109 changelog:117 changelog:
110 sort: asc118 sort: asc
111- use: github119+ use: git
112 filters:120 filters:
113 exclude:121 exclude:
114 - "^style(\\([^)]+\\))?:"122 - "^style(\\([^)]+\\))?:"
@@ -157,9 +165,9 @@ release:
157 Linux amd64 and arm64. Replace `amd64` with `arm64` on ARM.165 Linux amd64 and arm64. Replace `amd64` with `arm64` on ARM.
158 166
159 ```sh167 ```sh
160- gh release download {{ .Tag }} -R bnema/neferwl -p 'neferwl_{{ .Version }}_linux_amd64.tar.gz' -p checksums.txt168+ curl -fLO https://git.bnema.dev/neferwl/releases/download/{{ .Tag }}/neferwl_{{ .Version }}_linux_amd64.tar.gz
169+ curl -fLO https://git.bnema.dev/neferwl/releases/download/{{ .Tag }}/checksums.txt
161 sha256sum -c --ignore-missing checksums.txt170 sha256sum -c --ignore-missing checksums.txt
162- gh attestation verify neferwl_{{ .Version }}_linux_amd64.tar.gz -R bnema/neferwl
163 ```171 ```
164 172
165 ### Install on Ubuntu 24.04 and 26.04173 ### Install on Ubuntu 24.04 and 26.04
@@ -167,21 +175,20 @@ release:
167 Replace `amd64` with `arm64` on ARM.175 Replace `amd64` with `arm64` on ARM.
168 176
169 ```sh177 ```sh
170- gh release download {{ .Tag }} -R bnema/neferwl -p 'neferwl_{{ .Version }}_amd64.deb' -p checksums.txt178+ curl -fLO https://git.bnema.dev/neferwl/releases/download/{{ .Tag }}/neferwl_{{ .Version }}_amd64.deb
179+ curl -fLO https://git.bnema.dev/neferwl/releases/download/{{ .Tag }}/checksums.txt
171 sha256sum -c --ignore-missing checksums.txt180 sha256sum -c --ignore-missing checksums.txt
172 sudo apt install ./neferwl_{{ .Version }}_amd64.deb181 sudo apt install ./neferwl_{{ .Version }}_amd64.deb
173 ```182 ```
174 183
175- The archive holds the `neferwl` binary, the session files from `packaging/` and `examples/config`. See the [README](https://github.com/bnema/neferwl#readme) for runtime dependencies and the session setup.184+ The archive holds the `neferwl` binary, the session files from `packaging/` and `examples/config`. See the [README](https://git.bnema.dev/neferwl) for runtime dependencies and the session setup.
176- footer: |
177- ---
178-
179- **Full changelog**: https://github.com/bnema/neferwl/compare/{{ .PreviousTag }}...{{ .Tag }}
180 185
181 aurs:186 aurs:
182 - name: neferwl-bin187 - name: neferwl-bin
183 ids: [neferwl]188 ids: [neferwl]
184- homepage: https://github.com/bnema/neferwl189+ homepage: https://git.bnema.dev/neferwl
190+ # Public URL: github_urls.download is the CI-only relay address.
191+ url_template: 'https://git.bnema.dev/neferwl/releases/download/{{ .Tag }}/{{ .ArtifactName }}'
185 description: A Wayland compositor that spends its frames on your apps, not on itself192 description: A Wayland compositor that spends its frames on your apps, not on itself
186 maintainers:193 maintainers:
187 - "bnema <b at bnema dot dev>"194 - "bnema <b at bnema dot dev>"
M README.md +2 -2
@@ -47,7 +47,7 @@ make install # build a package from HEAD and install it with pacman
4747
4848 ### Ubuntu 24.04 and later
4949
50-Download the `.deb` for your architecture (`amd64` or `arm64`) and `checksums.txt` from [Releases](https://github.com/bnema/neferwl/releases), then install it with apt, which pulls the runtime dependencies:
50+Download the `.deb` for your architecture (`amd64` or `arm64`) and `checksums.txt` from [Releases](https://git.bnema.dev/neferwl/releases), then install it with apt, which pulls the runtime dependencies:
5151
5252 ```sh
5353 sha256sum -c --ignore-missing checksums.txt
@@ -72,7 +72,7 @@ Copy `/usr/share/doc/neferwl/config.example` to `~/.config/neferwl/config` to st
7272
7373 ### Other distributions
7474
75-Download a `linux_amd64` or `linux_arm64` archive from [Releases](https://github.com/bnema/neferwl/releases) and verify it against `checksums.txt`. To build locally, run `make bin`; the binary is `bin/neferwl`.
75+Download a `linux_amd64` or `linux_arm64` archive from [Releases](https://git.bnema.dev/neferwl/releases) and verify it against `checksums.txt`. To build locally, run `make bin`; the binary is `bin/neferwl`.
7676
7777 ## Configuration
7878
@@ -47,7 +47,7 @@ make install # build a package from HEAD and install it with pacman
47 47
48 ### Ubuntu 24.04 and later48 ### Ubuntu 24.04 and later
49 49
50-Download the `.deb` for your architecture (`amd64` or `arm64`) and `checksums.txt` from [Releases](https://github.com/bnema/neferwl/releases), then install it with apt, which pulls the runtime dependencies:50+Download the `.deb` for your architecture (`amd64` or `arm64`) and `checksums.txt` from [Releases](https://git.bnema.dev/neferwl/releases), then install it with apt, which pulls the runtime dependencies:
51 51
52 ```sh52 ```sh
53 sha256sum -c --ignore-missing checksums.txt53 sha256sum -c --ignore-missing checksums.txt
@@ -72,7 +72,7 @@ Copy `/usr/share/doc/neferwl/config.example` to `~/.config/neferwl/config` to st
72 72
73 ### Other distributions73 ### Other distributions
74 74
75-Download a `linux_amd64` or `linux_arm64` archive from [Releases](https://github.com/bnema/neferwl/releases) and verify it against `checksums.txt`. To build locally, run `make bin`; the binary is `bin/neferwl`.75+Download a `linux_amd64` or `linux_arm64` archive from [Releases](https://git.bnema.dev/neferwl/releases) and verify it against `checksums.txt`. To build locally, run `make bin`; the binary is `bin/neferwl`.
76 76
77 ## Configuration77 ## Configuration
78 78
M packaging/aur/neferwl-git/PKGBUILD +2 -2
@@ -6,7 +6,7 @@ pkgver=0.1.0.r78.ge0b15ca
66 pkgrel=1
77 pkgdesc='A Wayland compositor that spends its frames on your apps, not on itself (git version)'
88 arch=('x86_64' 'aarch64')
9-url='https://github.com/bnema/neferwl'
9+url='https://git.bnema.dev/neferwl'
1010 license=('GPL-3.0-only')
1111 # Loaded at runtime (purego, no cgo): not seen by makepkg's library scan.
1212 depends=('glibc' 'libinput' 'libxkbcommon' 'seatd' 'systemd-libs' 'vulkan-icd-loader'
@@ -22,7 +22,7 @@ optdepends=('xwayland-satellite>=0.7: X11 apps'
2222 provides=('neferwl')
2323 conflicts=('neferwl' 'neferwl-bin')
2424 install=neferwl.install
25-source=('git+https://github.com/bnema/neferwl.git')
25+source=('git+https://git.bnema.dev/neferwl.git')
2626 sha256sums=('SKIP')
2727
2828 pkgver() {
@@ -6,7 +6,7 @@ pkgver=0.1.0.r78.ge0b15ca
6 pkgrel=16 pkgrel=1
7 pkgdesc='A Wayland compositor that spends its frames on your apps, not on itself (git version)'7 pkgdesc='A Wayland compositor that spends its frames on your apps, not on itself (git version)'
8 arch=('x86_64' 'aarch64')8 arch=('x86_64' 'aarch64')
9-url='https://github.com/bnema/neferwl'9+url='https://git.bnema.dev/neferwl'
10 license=('GPL-3.0-only')10 license=('GPL-3.0-only')
11 # Loaded at runtime (purego, no cgo): not seen by makepkg's library scan.11 # Loaded at runtime (purego, no cgo): not seen by makepkg's library scan.
12 depends=('glibc' 'libinput' 'libxkbcommon' 'seatd' 'systemd-libs' 'vulkan-icd-loader'12 depends=('glibc' 'libinput' 'libxkbcommon' 'seatd' 'systemd-libs' 'vulkan-icd-loader'
@@ -22,7 +22,7 @@ optdepends=('xwayland-satellite>=0.7: X11 apps'
22 provides=('neferwl')22 provides=('neferwl')
23 conflicts=('neferwl' 'neferwl-bin')23 conflicts=('neferwl' 'neferwl-bin')
24 install=neferwl.install24 install=neferwl.install
25-source=('git+https://github.com/bnema/neferwl.git')25+source=('git+https://git.bnema.dev/neferwl.git')
26 sha256sums=('SKIP')26 sha256sums=('SKIP')
27 27
28 pkgver() {28 pkgver() {

Keyboard shortcuts

Single-key shortcuts are on. ctrl k and esc work whatever this says.

ctrl k :
go to a section, branch, tag, file or repository
?
this list
j k
move the row cursor down / up
enter
open the row under the cursor; on Files, a directory opens or closes in place
↑ ↓ ← → home end
in the file tree (focus on a row): previous / next row, close / open a directory or go to its parent / first entry, first / last row. They never open a file
l h
on Files: open a directory or a file / close a directory or go up to its parent, then to the parent page. Elsewhere: into the side panel (on a merge request, its files) / back to the content; there j k move between its controls
g g G
first / last row
/
filter the list; on Files, find a file anywhere in the repository (esc clears, enter opens the best match)
b
switch branch or tag
g s g f g c g b g m g i g r g a
tabs: summary, files, commits, branches & tags, merge requests, issues, releases, actions (when available)
g h
home
w
wide mode: use the whole width of the screen, or not (remembered)
y
copy a permalink pinned to the commit
d u x
diff: split / unified / collapse or expand all
e E
diff: the whole file in view / every file, with the lines the hunks hide
n
merge request: next note in the diff
esc
close a dialog, leave a field

Branches 25

Tags 10

↑↓ moveenter openesc close