From ef6cfaccc8b87b37c6e96fd8feccfc7e4191a6cc Mon Sep 17 00:00:00 2001 From: claude Date: Sat, 24 Oct 2026 11:40:49 +0200 Subject: [PATCH] =?UTF-8?q?Sk=C3=A4rmdumpar=20p=C3=A5=20osynlig=20sk=C3=A4?= =?UTF-8?q?rm=20och=20deterministiska=20bildrutor?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - tools/shots/headless.go: startar en egen headless Wayfire (wlroots headless-backend + Xwayland) och kör spelet där, så att inga fönster syns eller tar fokus från det man gör på datorn; snäll avstängning och städning av sockets; METRO_HEADLESS=0 använder skärmen - skriptläget ritar scenen synkront vid shot så att bilden alltid speglar exakt den uppdateringen oavsett FPS (två körningar ger identiska PNG:er) - README/roadmap: hur den osynliga skärmen fungerar och används manuellt Co-Authored-By: Claude Fable 5.1 --- README.md | 2 +- doc/img/items.png | Bin 17032 -> 14517 bytes doc/img/map.png | Bin 17032 -> 15174 bytes doc/img/result.png | Bin 26637 -> 26646 bytes doc/img/ride.png | Bin 20907 -> 20895 bytes doc/img/skills.png | Bin 17032 -> 16062 bytes doc/img/ticket.png | Bin 21734 -> 21734 bytes doc/img/words.png | Bin 17032 -> 16169 bytes doc/roadmap.md | 9 +++ internal/game/script.go | 1 + tools/shots/headless.go | 128 ++++++++++++++++++++++++++++++++++++++++ tools/shots/main.go | 16 +++++ 12 files changed, 155 insertions(+), 1 deletion(-) create mode 100644 tools/shots/headless.go diff --git a/README.md b/README.md index e2f3c1b..a354208 100644 --- a/README.md +++ b/README.md @@ -171,7 +171,7 @@ Y = hjälp, X = ordlista, Back/Select = karta. | `go run ./tools/build …` | bygger (se ovan) | | `go run ./tools/genart` | genererar placeholder-grafiken `resources/sprites/tiles.png` och `player.png` | | `go run ./tools/gensound` | genererar placeholder-ljuden `resources/sound/*.wav` (avgångsmelodi, dörrsignal) | -| `go run ./tools/shots` | tar dokumentationens skärmdumpar till `doc/img/` – **kör efter varje grafik-/UI-ändring och committa bilderna** | +| `go run ./tools/shots` | tar dokumentationens skärmdumpar till `doc/img/` – **kör efter varje grafik-/UI-ändring och committa bilderna**. På Linux körs spelet på en osynlig skärm (headless Wayfire + Xwayland) så att inget fönster syns eller tar fokus; `METRO_HEADLESS=0` använder skärmen | ## Beroenden diff --git a/doc/img/items.png b/doc/img/items.png index 37e4466c4a6c6855d823936e431b4fd9e3082a60..a219c8e8f838a4d996bd067b30e1fee2f978ac9b 100644 GIT binary patch literal 14517 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 C5CH!G diff --git a/doc/img/map.png b/doc/img/map.png index 37e4466c4a6c6855d823936e431b4fd9e3082a60..dbb80bfcd04d0ea5b04f5a90a0d9a08488a79139 100644 GIT binary patch literal 15174 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 literal 17032 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 C5CH!G diff --git a/doc/img/result.png b/doc/img/result.png index 16a17cec9ab519ba92f13873126e85a2771e75ea..6c896583a51809322bdc9eec29011612d96eb2ab 100644 GIT binary patch delta 19010 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 C8Tc^( delta 19465 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 KpUXO@geCy1tPw?z5qdW;Ldnl9<{ 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 delta 11639 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 z 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

L=%Aa1wkClIGUdjiD4P>Reiq|PVyqo8Zugid41 zY-pe!$-Xkq(RvdQCf>GpNOSQFdmJhA(Am97S)!4s$V8snX(Ym(R9cj))aS z;b!|LDvmtNWr81>B7$6-QCrfmk65K1jAFANVZ{?tx*D*q!f3YyiZu#m7vmUi5XI1; z>p~CjplD3S&$M#JN>{61O}$3ze@rI0Jy?;Ir$!DM`xL8_yPb{h>wkYr3j1bo^G% z@Vef;o^-V94=q=olX@j~gpHgLmP|XNb7+fc;=oV)G(+DHTJ3r6cL3i^;Y}-d^en_j z0={)B?Uuy_t%}O`5=9GrA*@DJgXt zP`PO_QTE*05+N+Ri&UqFlN?2NCaKh>e?I!p_=!h_N-UZ(1_2| zJo>Mn?_CV8gKb@u;hG4V?Mr@$gAQ1ZS=<|)O%M^Wy5m>Lwb zgSBTx{Zsco%VWkI$ze0Q=Y(5Dl_VOCo_lyM_SL!Ak2ob9>#q^R{;>p);?5i}1vqq% zf27xNKjyu5|5YZ_fcerNC!XS~Q=EO1^4PV)xiM?~O*!fb?F8laj*mP5+Ylx9%}o17f|dd-XZm?<56Q z3@RQ`JGdVS!y5zKycs*ilq@~oU%Gdp=sw<4)E7PPbO_tLU3o_$u_8+)=MPi^C5R7f zY0<-2NDrDLjJ z>QXpf!i^;T(5yMCmF^Y{IUuHX3Q9Q{(d*O?I4 zy^>TMn^3}m>hld$;llu;Q`gmpnM@`@RB9Ja9|nmY?A2+`X&WDHqT9>L?--VeEar6t z8)O>(lVCrK=)ynQgL;~H)k@YgFRe)qgp1Fctwcnz2=7I zz~qj4Hr2A%^?PDd$-ekt>YML}6Wo2ocaJ7(Lkx`_7_zl2cK0p z1K)ub*GPTGUP!rq4~>_65fu z9(_D=Szph;2fQ?3BwiN++@T;?9A_U2JsotYDC_63gNEr%PfgGa0GgMln_Tg@VoWct z4}&A7)Qjm^zy&3nea=~w)lzsRB+4=5>3|-%T!*@U^dpF&ig=<6XpYxcW&vRMY<`Qu zXSvxX>wF`hlP5af!snt_w#BIjz6ErE6v-Z06is+;o_{fm|IubM_*ti!22z2_-Gx7V z*l~Ab{h%wkwh=OG-@%j=t-r!&Cl?Txd&h)0WtY;+ zY#)uq1A>1fD<{*`0uG2|8W}NfeJeg_>}+A|=L%@|jmktpOdZ%X0KrD` zR4Uv`|3G@>ZiVh2D@qmQpq2E2LAOaRPKE`KW_`U@sGvDD~}Ju*it{?h}! zdIhDfYangLkrC;(?J2~qWGp|-UhQb`$N*3^U?ADnI1RkirKzZ9aKO zcoXx2d|X9^_wi!nIkl*{XlV{O?LhP9(i+NEFwE@wpLFoQ@e0RUZJ9gV&oa{dnVA2; zj@_}8Ir&kAC@~xgxa(&FkM)_U{ntnj0+UxSR*!SE#RFdr_=r1;37-O5fDcd>Vr4l3 lrvm6RC}K4&QaNTlRp-u)4gV}qe6poo)zsH0R=fS={{e8N-){f_ diff --git a/doc/img/skills.png b/doc/img/skills.png index 91be59d5f5acb4b9bab0f215dae90ccd9846deb4..33ad79e6b9c09228031722f6b947cefe0e4f68ea 100644 GIT binary patch literal 16062 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

r1(Aqu4}7Z$~Jp9 zr`;+|)=k!=6|%W>ilX)8b)N5xKea%4G%%9$=0Nz|^LN62zuYCv z;pLQ+q&K#H;mEWPp%X9G^ChL3FG5^E4RdB&x8h8VTJ#6_`D5Su%+)PY`iVMfK$14D z;5m{gH4`)|)(HP3fK54N5;-PrRp@t< zMDgofn<%_Wz2-8LQ8Pf^4OfEi$b=Hpnn{_mc0u z86RvU2TtqFDT139`!k_!vq1_FwKSI%k_U7UNGKR2d#Fv}+k{q(%}xBvB^edfaHl9N|%{|_(AQJeq( diff --git a/doc/img/ticket.png b/doc/img/ticket.png index 27231f4d1459eee099a4000aa53e9279c5399faf..eb8bb883cb6c217bfdcf12d60ce696c3a54dde33 100644 GIT binary patch delta 1248 zcmaF1lJVI}#tntOZut#I&KVmVJiz3%g4rplm9w+4{h{Fmtr-(mom(kjk@#`$f@9N* zU+viT`{(~@!8L_^vmP$b-{+;Hqr(jbCm z{%%wKSerR)FuKQB3NyzS$^nb&?FubgwdGVhy>`19w9H?8iUKX*uIa-g{| z(?X8Pj3FXEvRoyF&!5yq$k)t@e}7@l(~nv@(dz&1cq)CI9w0RP@jO5Mi4|e*Pg=Sa z`#);2G|$QNyYpcdNNl;d=tRa%5jsKBdkvqtJwLekc;e)X9>PptW=!%B6Q8l^P~bE> zr8&3VTRQbc1t)Sot=M|%uGeHfLAA*b0$Cpna z;u>*n^WB`om*#zZ_p{*Frs=+S`!3?QYig&ult-xF5^jkVt-Bd*jAy(Fo6^)Z`@v zi&z?GJeb2}ARv(Tpj^X3@_xHoh} zL>s77e)54JR+haSjmstr2#Rt{FwPgWEZaap7#!~VNIX|CngFUNma zue`SUqt5)g_43)9ww-zT^J=wP?vjtkYc}PHWh*HwD{uZfGi|l(`LuuGUz*R@$UnC@ zZh21gsO97ffg-?I7vunWrKa!D!pQ|e@{>YDCxx&|=kIY4f7c%J@9%%y1ga33@6<(PcIQ>4DCk?HT-A5WCN zIi2}F-~91=6`+%J=C7H3bk+$FSYvrPXX|50WFH1|ev#f?*1@D8!ICI)Fh^+1%su~S z_JsK-%t{H=+5N$%{syy+-SL*gL_wj)*IShPi|&6uzDU|U@6L{u1&e{+lUDe<&4Jkj z6@6iM;D5d6dF-Rv({%kO8~O=P-ry<7ysNlza-f?N=R1}chW%RiOXViN56%_8&&+VN W+;bySbm}q&Ann>&i|E4Ah2D3@_%E|`cqu)U$l!p{rlRz;m+RY zH)oeW+_-wW(D4rY7@@Vzix>0Rr*67=<^J-G5pO=n-~E%6H6_YO_E5DC&FX^hGk4uDH(IvnqFTf4=|!n;);M$n-p0 zdgR#=!y>cidyXto|LFg2%D#W~bJT0+ZS4Jie#<@kbB}G#6>omN)54zr^tGRLWn$Af zOqhBdlrJDt{H`btnY_-Ez5ZRmf^KW|?}vXqxcsN8{h3aGc;Zc~kI(&tI`_9sx*_wu zq^k4C<|_YlhO?@L)X(fpEG~Z3cD)8DX0>-k2hW6~NfUSF^cb33@yprrd9z40x-AgQ zK&FnnEYOq@;p1X&Z9e4qa6v(Ug$9Uwe2Qq_rZ0jI1@G7?`P8iJ=7#I8G zKu?j$4ncyG6$H8KFGfC$c$Oz}(p$tVX@>L}-e<>_ob8>lYSp2l`8QjZPk;QwjQ@F| z-1C_?EBDpr{+&3bTmI|P$-BQFN=EiJG!THk$LbOtk-kMbhc?Z7nBMTzZc? zXVcfP?9BYfx;^F_E=5!^5&kKW4<&fogXiVFyIe1Qv}>|pfb^tbPA`2Ytij^GQnc@2f~tMPrd2-gP5&!S z&A+d1w79c41qjL%Ha|%ZF$g{XyF&i`X4&_jzuf37UCA@~V~}u+w%P^E*k*5Cyn^fa z!-MxD(*1P*n*Q@!^)<`p^z!?!kI!18TU=K7d7`Iu<{!iPYi1vvbpi--YM0&2I=*@4 zf6>1x#^;Y)o-6Dt_A2Bi_EhNxDb={M#(Q z+VI$$FEX<8kAwZmWGg?pFi?yyHO%6jHUCDjq;>hbH!4jo43M6z5WvaQEiiebr%1iH z#szynzx7G_NB->DBVDhasob0XGv%(%H5WG^NIN?-ZME!q0i@JD&uhW`n_Hbl7!E3M zEapg?yx{DUzvol7R54vv=}x-Yn*Qss+=GvnYBIz@!ToA7l~aDtvlqL&qww)D-&X0# z2Rx+}Uu=~*ep4+|`y1yl-QVSReDw8`x+&TIyLw>INd?I-A1y6~|8$5a9 l-o>D6L^FpNt~KK?IR^1tUfyqy9$v%%1fH&bF6*2UngDaNdl3Kt diff --git a/doc/img/words.png b/doc/img/words.png index 37e4466c4a6c6855d823936e431b4fd9e3082a60..3889a13d2b38a0d1a938d0c91c31737ca3aece7d 100644 GIT binary patch literal 16169 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 C5CH!G diff --git a/doc/roadmap.md b/doc/roadmap.md index b2b3c7a..cb3aaf2 100644 --- a/doc/roadmap.md +++ b/doc/roadmap.md @@ -107,6 +107,15 @@ go run ./tools/shots # bygger debug, kör spelet med -script, skriver doc/img committa `doc/img/` i samma commit, så visar README och wiki alltid aktuell grafik. Nya vyer läggs till i listan i `tools/shots/main.go`. +**Osynlig skärm:** på Linux startar `tools/shots` en egen headless +wlroots-kompositor (Wayfire med `WLR_BACKENDS=headless` och Xwayland) och +kör spelet där, så att skärmdumparna varken syns eller tar fokus från det +man själv gör på datorn. Bilderna är pixelidentiska med riktiga skärmen +(mjukvarurendering, nearest-filter). `METRO_HEADLESS=0` stänger av det; +saknas `wayfire` används skärmen. Samma knep för manuella körningar: +`DISPLAY=:N WAYLAND_DISPLAY=wayland-N ./metro-puzzle-jp …` mot en startad +headless-instans. + ### CI `.gitea/workflows/release.yaml` kör `go vet` + `go test`, bygger diff --git a/internal/game/script.go b/internal/game/script.go index 9d69eef..f3aa2ad 100644 --- a/internal/game/script.go +++ b/internal/game/script.go @@ -206,6 +206,7 @@ func (s *script) tick(g *Game, frame *ebiten.Image) error { s.advance() } case "shot": + g.scene.Draw(g, frame) // rita nu, så att bilden speglar exakt denna uppdatering oavsett FPS if err := saveShot(frame, st.arg); err != nil { return err } diff --git a/tools/shots/headless.go b/tools/shots/headless.go new file mode 100644 index 0000000..457c4f1 --- /dev/null +++ b/tools/shots/headless.go @@ -0,0 +1,128 @@ +package main + +import ( + "bufio" + "fmt" + "os" + "os/exec" + "path/filepath" + "regexp" + "runtime" + "strings" + "syscall" + "time" +) + +// Headless skärm för skärmdumparna (Linux): en egen wlroots-kompositor +// (Wayfire) med headless-backend och Xwayland, så att spelfönstren varken +// syns eller tar fokus från det Björn gör på datorn. Finns inte wayfire, +// eller sätts METRO_HEADLESS=0, används den vanliga skärmen. + +type headless struct { + cmd *exec.Cmd + wayland string // t.ex. wayland-1 + x11 string // t.ex. :1 +} + +var ( + reSocket = regexp.MustCompile(`Using socket name (wayland-\d+)`) + reXwayland = regexp.MustCompile(`Starting Xwayland on (:\d+)`) +) + +// startHeadless startar kompositorn och väntar på socket + Xwayland. +// Returnerar nil (utan fel) när headless inte är tillgängligt. +func startHeadless(buildDir string) (*headless, error) { + if runtime.GOOS != "linux" || os.Getenv("METRO_HEADLESS") == "0" { + return nil, nil + } + bin, err := exec.LookPath("wayfire") + if err != nil { + return nil, nil + } + ini := filepath.Join(buildDir, "wayfire-headless.ini") + if err := os.WriteFile(ini, []byte("[core]\nplugins = \nxwayland = true\npreferred_decoration_mode = server\nvwidth = 1\nvheight = 1\n"), 0o644); err != nil { + return nil, err + } + cmd := exec.Command(bin, "-c", ini) + cmd.Env = append(os.Environ(), "WLR_BACKENDS=headless", "WLR_LIBINPUT_NO_DEVICES=1", "WLR_RENDERER=pixman") + logf, err := os.Create(filepath.Join(buildDir, "wayfire-headless.log")) + if err != nil { + return nil, err + } + pr, pw, err := os.Pipe() + if err != nil { + return nil, err + } + cmd.Stdout, cmd.Stderr = pw, pw + if err := cmd.Start(); err != nil { + return nil, err + } + pw.Close() + h := &headless{cmd: cmd} + done := make(chan struct{}) + go func() { + sc := bufio.NewScanner(pr) + for sc.Scan() { + line := sc.Text() + fmt.Fprintln(logf, line) + if m := reSocket.FindStringSubmatch(line); m != nil { + h.wayland = m[1] + } + if m := reXwayland.FindStringSubmatch(line); m != nil { + h.x11 = m[1] + } + if h.wayland != "" && h.x11 != "" { + select { + case <-done: + default: + close(done) + } + } + } + }() + select { + case <-done: + case <-time.After(10 * time.Second): + h.stop() + return nil, fmt.Errorf("headless-kompositorn startade inte inom 10 s (se %s)", logf.Name()) + } + time.Sleep(500 * time.Millisecond) // låt Xwayland bli redo + return h, nil +} + +// env ger miljön som pekar spelet mot den osynliga skärmen. +func (h *headless) env() []string { + var out []string + for _, e := range os.Environ() { + if strings.HasPrefix(e, "DISPLAY=") || strings.HasPrefix(e, "WAYLAND_DISPLAY=") { + continue + } + out = append(out, e) + } + return append(out, "DISPLAY="+h.x11, "WAYLAND_DISPLAY="+h.wayland) +} + +// stop stänger kompositorn snällt (SIGTERM, så att den tar bort sina +// sockets) och städar det som ändå blir kvar. +func (h *headless) stop() { + if h == nil || h.cmd == nil || h.cmd.Process == nil { + return + } + _ = h.cmd.Process.Signal(syscall.SIGTERM) + done := make(chan struct{}) + go func() { _, _ = h.cmd.Process.Wait(); close(done) }() + select { + case <-done: + case <-time.After(3 * time.Second): + _ = h.cmd.Process.Kill() + <-done + } + if rt := os.Getenv("XDG_RUNTIME_DIR"); rt != "" && h.wayland != "" { + os.Remove(filepath.Join(rt, h.wayland)) + os.Remove(filepath.Join(rt, h.wayland+".lock")) + } + if h.x11 != "" { + os.Remove(filepath.Join("/tmp/.X11-unix", "X"+strings.TrimPrefix(h.x11, ":"))) + } + h.cmd = nil +} diff --git a/tools/shots/main.go b/tools/shots/main.go index d3d6d35..79656b2 100644 --- a/tools/shots/main.go +++ b/tools/shots/main.go @@ -6,6 +6,10 @@ // PNG:er till doc/img/. Vägarna genom banorna räknas ut med BFS från // bandatan. Kör om detta när grafik, UI eller banor ändrats, och committa // bilderna – README och wikin pekar på dem. +// +// På Linux körs spelet på en osynlig skärm (headless Wayfire + Xwayland, +// se headless.go) så att inget fönster syns eller tar fokus. METRO_HEADLESS=0 +// stänger av det. package main import ( @@ -164,6 +168,14 @@ func main() { if runtime.GOOS == "windows" { exe += ".exe" } + hl, err := startHeadless(filepath.Join(root, "build")) + must(err) + if hl != nil { + fmt.Printf("» osynlig skärm: %s / %s (inget syns på skrivbordet)\n", hl.wayland, hl.x11) + defer hl.stop() + } else { + fmt.Println("» ingen headless-kompositor (wayfire saknas eller METRO_HEADLESS=0): använder skärmen") + } _ = demo for _, s := range shots { args := []string{"-mute", "-nosave", "-script", strings.ReplaceAll(s.script, "$OUT", out)} @@ -175,7 +187,11 @@ func main() { } run := exec.Command(exe, args...) run.Dir, run.Stdout, run.Stderr = filepath.Dir(exe), os.Stdout, os.Stderr + if hl != nil { + run.Env = hl.env() + } if err := run.Run(); err != nil { + hl.stop() fail(fmt.Errorf("%s: %w", s.script, err)) } }