detached c196c81

Merge pull request #4 from bnema/fix/fade-all-outputs

fix(visual): fade every output instead of one
commit
c196c81d2f8c4f6ae92c611d6aa28c7ab77de444
author
bnema · · 2026-10-01 05:45 UTC
committer
GitHub · · 2026-10-01 05:45 UTC
merge of
271e247 + 32ff60a · diff against the first parent
signature
GPG UnverifiedB5690EEEBB952194 The key is unknown
refs
tag: v0.2.1
4 files · +9 -5
M go.mod +1 -1
@@ -3,7 +3,7 @@ module github.com/bnema/neferafk
33 go 1.27
44
55 require (
6- github.com/bnema/nefergui v0.3.0
6+ github.com/bnema/nefergui v0.4.0
77 github.com/bnema/purego-pam v0.1.0
88 github.com/bnema/wlturbo v0.5.0
99 github.com/bnema/zerowrap v1.4.1
@@ -3,7 +3,7 @@ module github.com/bnema/neferafk
3 go 1.273 go 1.27
4 4
5 require (5 require (
6- github.com/bnema/nefergui v0.3.06+ github.com/bnema/nefergui v0.4.0
7 github.com/bnema/purego-pam v0.1.07 github.com/bnema/purego-pam v0.1.0
8 github.com/bnema/wlturbo v0.5.08 github.com/bnema/wlturbo v0.5.0
9 github.com/bnema/zerowrap v1.4.19 github.com/bnema/zerowrap v1.4.1
M go.sum +2 -2 generated file: collapsed
M internal/adapters/visual/fade.go +3 -1
@@ -140,9 +140,11 @@ func (guiFader) RunFade(ctx context.Context, m *fadeModel) error {
140140 return err
141141 }
142142
143-// fadeLayer: overlay, all anchors, no keyboard, fully click-through.
143+// fadeLayer: overlay on every output, all anchors, no keyboard, fully
144+// click-through.
144145 func fadeLayer() nefergui.LayerConfig {
145146 return nefergui.LayerConfig{
147+ AllOutputs: true,
146148 Namespace: "neferafk-fade",
147149 Level: nefergui.LayerOverlay,
148150 Anchors: nefergui.AnchorTop | nefergui.AnchorBottom | nefergui.AnchorLeft | nefergui.AnchorRight,
@@ -140,9 +140,11 @@ func (guiFader) RunFade(ctx context.Context, m *fadeModel) error {
140 return err140 return err
141 }141 }
142 142
143-// fadeLayer: overlay, all anchors, no keyboard, fully click-through.143+// fadeLayer: overlay on every output, all anchors, no keyboard, fully
144+// click-through.
144 func fadeLayer() nefergui.LayerConfig {145 func fadeLayer() nefergui.LayerConfig {
145 return nefergui.LayerConfig{146 return nefergui.LayerConfig{
147+ AllOutputs: true,
146 Namespace: "neferafk-fade",148 Namespace: "neferafk-fade",
147 Level: nefergui.LayerOverlay,149 Level: nefergui.LayerOverlay,
148 Anchors: nefergui.AnchorTop | nefergui.AnchorBottom | nefergui.AnchorLeft | nefergui.AnchorRight,150 Anchors: nefergui.AnchorTop | nefergui.AnchorBottom | nefergui.AnchorLeft | nefergui.AnchorRight,
M internal/adapters/visual/view_test.go +3 -1
@@ -20,8 +20,10 @@ func TestFadeAlphaInterpolatesAndArrives(t *testing.T) {
2020 require.True(t, done)
2121 }
2222
23-func TestFadeLayerIsClickThroughOverlay(t *testing.T) {
23+func TestFadeLayerIsClickThroughOverlayOnEveryOutput(t *testing.T) {
2424 l := fadeLayer()
25+ require.True(t, l.AllOutputs)
26+ require.Empty(t, l.Output)
2527 require.Equal(t, nefergui.LayerOverlay, l.Level)
2628 require.Equal(t, nefergui.KeyboardNone, l.Keyboard)
2729 require.NotNil(t, l.InputRects)
@@ -20,8 +20,10 @@ func TestFadeAlphaInterpolatesAndArrives(t *testing.T) {
20 require.True(t, done)20 require.True(t, done)
21 }21 }
22 22
23-func TestFadeLayerIsClickThroughOverlay(t *testing.T) {23+func TestFadeLayerIsClickThroughOverlayOnEveryOutput(t *testing.T) {
24 l := fadeLayer()24 l := fadeLayer()
25+ require.True(t, l.AllOutputs)
26+ require.Empty(t, l.Output)
25 require.Equal(t, nefergui.LayerOverlay, l.Level)27 require.Equal(t, nefergui.LayerOverlay, l.Level)
26 require.Equal(t, nefergui.KeyboardNone, l.Keyboard)28 require.Equal(t, nefergui.KeyboardNone, l.Keyboard)
27 require.NotNil(t, l.InputRects)29 require.NotNil(t, l.InputRects)

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 2

Tags 9

↑↓ moveenter openesc close