detached fdd661a

.goreleaser.yaml RawHistoryFolder

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 PKGBUILD
3# with makepkg before it pushes it to the AUR, so GoReleaser never uploads it.
4version: 2
5
6project_name: neferwl
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.
11github_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
16before:
17  hooks:
18    - go mod verify
19
20builds:
21  - id: neferwl
22    main: ./cmd/neferwl
23    binary: neferwl
24    env:
25      - CGO_ENABLED=0
26    goos: [linux]
27    goarch: [amd64, arm64]
28    flags:
29      - -trimpath
30      - -buildmode=pie
31    ldflags:
32      - -s -w -X main.version={{ .Version }}
33    # Same inputs give the same binary.
34    mod_timestamp: "{{ .CommitTimestamp }}"
35
36archives:
37  - id: neferwl
38    ids: [neferwl]
39    name_template: "{{ .ProjectName }}_{{ .Version }}_{{ .Os }}_{{ .Arch }}"
40    formats: [tar.gz]
41    # Everything the PKGBUILD package() installs, at the paths of the repo.
42    files:
43      - LICENSE
44      - README.md
45      - examples/config
46      - examples/capture-allow
47      - packaging/neferwl-session
48      - packaging/neferwl.service
49      - packaging/neferwl-shutdown.target
50      - packaging/neferwl.desktop
51      - packaging/neferwl-portals.conf
52
53nfpms:
54  - id: neferwl
55    ids: [neferwl]
56    package_name: neferwl
57    file_name_template: "{{ .PackageName }}_{{ .Version }}_{{ .Arch }}"
58    formats: [deb]
59    vendor: bnema
60    homepage: https://git.bnema.dev/neferwl
61    maintainer: "bnema <b@bnema.dev>"
62    description: A Wayland compositor that spends its frames on your apps, not on itself
63    license: AGPL-3.0-only
64    section: x11
65    bindir: /usr/bin
66    # Loaded at runtime (purego, no cgo): dpkg-shlibdeps cannot see them.
67    dependencies:
68      - libc6
69      - libinput10
70      - libseat1
71      - libudev1
72      - libxkbcommon0
73      - libvulkan1
74      - mesa-vulkan-drivers | vulkan-icd
75      - dbus
76      - libcap2-bin
77    suggests:
78      - xwayland-satellite
79      - foot
80      - fuzzel
81      - xdg-desktop-portal-gtk
82      - xdg-desktop-portal-gnome
83      - pipewire
84    scripts:
85      postinstall: packaging/deb/postinst
86    contents:
87      - src: packaging/neferwl-session
88        dst: /usr/bin/neferwl-session
89        file_info: {mode: 0755}
90      - src: packaging/neferwl.service
91        dst: /usr/lib/systemd/user/neferwl.service
92      - src: packaging/neferwl-shutdown.target
93        dst: /usr/lib/systemd/user/neferwl-shutdown.target
94      - src: packaging/neferwl.desktop
95        dst: /usr/share/wayland-sessions/neferwl.desktop
96      - src: packaging/neferwl-portals.conf
97        dst: /usr/share/xdg-desktop-portal/neferwl-portals.conf
98      - src: examples/config
99        dst: /usr/share/doc/neferwl/config.example
100      - src: examples/capture-allow
101        dst: /usr/share/doc/neferwl/capture-allow.example
102      - src: README.md
103        dst: /usr/share/doc/neferwl/README.md
104      - src: LICENSE
105        dst: /usr/share/doc/neferwl/copyright
106
107checksum:
108  name_template: checksums.txt
109  algorithm: sha256
110
111snapshot:
112  version_template: "{{ incpatch .Version }}-next"
113
114git:
115  tag_sort: -version:refname
116
117changelog:
118  sort: asc
119  use: git
120  filters:
121    exclude:
122      - "^style(\\([^)]+\\))?:"
123      - "^test(\\([^)]+\\))?:"
124  groups:
125    - title: Added
126      regexp: "^feat(\\([^)]+\\))?!?:"
127      order: 0
128    - title: Fixed
129      regexp: "^fix(\\([^)]+\\))?!?:"
130      order: 1
131    - title: Performance
132      regexp: "^perf(\\([^)]+\\))?!?:"
133      order: 2
134    - title: Changed
135      regexp: "^(refactor|build)(\\([^)]+\\))?!?:"
136      order: 3
137    - title: Documentation
138      regexp: "^docs(\\([^)]+\\))?!?:"
139      order: 4
140    - title: Maintenance
141      regexp: "^(chore|ci)(\\([^)]+\\))?!?:"
142      order: 5
143    - title: Other changes
144      order: 999
145
146release:
147  github:
148    owner: bnema
149    name: neferwl
150  draft: false
151  prerelease: auto
152  mode: replace
153  header: |
154    ## NeferWL {{ .Tag }}
155
156    ### Install on Arch Linux
157
158    ```sh
159    paru -S neferwl-bin   # this release, pre-built (x86_64, aarch64)
160    paru -S neferwl-git   # latest main, built from source
161    ```
162
163    ### Install the pre-built archive
164
165    Linux amd64 and arm64. Replace `amd64` with `arm64` on ARM.
166
167    ```sh
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
170    sha256sum -c --ignore-missing checksums.txt
171    ```
172
173    ### Install on Ubuntu 24.04 and 26.04
174
175    Replace `amd64` with `arm64` on ARM.
176
177    ```sh
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
180    sha256sum -c --ignore-missing checksums.txt
181    sudo apt install ./neferwl_{{ .Version }}_amd64.deb
182    ```
183
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.
185
186aurs:
187  - name: neferwl-bin
188    ids: [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 }}'
192    description: A Wayland compositor that spends its frames on your apps, not on itself
193    maintainers:
194      - "bnema <b at bnema dot dev>"
195    license: AGPL-3.0-only
196    # The release workflow verifies and publishes the generated PKGBUILD.
197    skip_upload: true
198    # publish.sh ships the file next to the PKGBUILD.
199    install: ./packaging/neferwl.install
200    provides: [neferwl]
201    conflicts: [neferwl, neferwl-git]
202    # Loaded at runtime (purego, no cgo): not seen by makepkg's library scan.
203    depends:
204      - glibc
205      - libinput
206      - libxkbcommon
207      - seatd
208      - systemd-libs
209      - vulkan-icd-loader
210      - vulkan-driver
211      - wayland
212      - dbus
213      - libcap
214    optdepends:
215      - "xwayland-satellite>=0.7: X11 apps"
216      - "foot: default terminal"
217      - "fuzzel: launcher"
218      - "xdg-desktop-portal-gtk: file pickers and settings for apps"
219      - "xdg-desktop-portal-gnome: screen sharing and screenshots through the portal"
220      - "pipewire: screen sharing streams"
221      - "nefercap: screenshots and screen recording"
222    package: |-
223      install -Dm755 ./neferwl "${pkgdir}/usr/bin/neferwl"
224      install -Dm755 ./packaging/neferwl-session "${pkgdir}/usr/bin/neferwl-session"
225      install -Dm644 ./packaging/neferwl.service "${pkgdir}/usr/lib/systemd/user/neferwl.service"
226      install -Dm644 ./packaging/neferwl-shutdown.target "${pkgdir}/usr/lib/systemd/user/neferwl-shutdown.target"
227      install -Dm644 ./packaging/neferwl.desktop "${pkgdir}/usr/share/wayland-sessions/neferwl.desktop"
228      install -Dm644 ./packaging/neferwl-portals.conf "${pkgdir}/usr/share/xdg-desktop-portal/neferwl-portals.conf"
229      install -Dm644 ./examples/config "${pkgdir}/usr/share/doc/neferwl/config.example"
230      install -Dm644 ./examples/capture-allow "${pkgdir}/usr/share/doc/neferwl/capture-allow.example"
231      install -Dm644 ./README.md "${pkgdir}/usr/share/doc/neferwl/README.md"
232      install -Dm644 ./LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"

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