<feed xmlns='http://www.w3.org/2005/Atom'>
<title>sl0pboy.git/web/play.html, branch master</title>
<subtitle>sl0pboy - a Game Boy Color emulator (companion to the gbos OS)</subtitle>
<id>https://git.sl0p.foo/sl0pboy.git/atom/web/play.html?h=master</id>
<link rel='self' href='https://git.sl0p.foo/sl0pboy.git/atom/web/play.html?h=master'/>
<link rel='alternate' type='text/html' href='https://git.sl0p.foo/sl0pboy.git/'/>
<updated>2026-09-22T17:54:55Z</updated>
<entry>
<title>web: selecting a Game Boy puts the caret in its console</title>
<updated>2026-09-22T17:54:55Z</updated>
<author>
<name>gbc dev</name>
<email>gbc@localhost</email>
</author>
<published>2026-09-22T17:54:55Z</published>
<link rel='alternate' type='text/html' href='https://git.sl0p.foo/sl0pboy.git/commit/?id=ff3b97be10ad5f8cf87a43dadd71daf5e284a82f'/>
<id>urn:sha1:ff3b97be10ad5f8cf87a43dadd71daf5e284a82f</id>
<content type='text'>
Typing commands is the main thing you do in the lab, so selecting a machine
now focuses its input instead of making you click twice. Clicking anywhere on
a card selects it; the input takes the caret.

The catch is that the console swallows the keyboard - 'z' and 'x' are letters
before they are A and B - so there are two ways back to the joypad: esc, or
clicking the Game Boy's screen (which is where you'd reach for it anyway).
Both are spelled out in the header and the input's placeholder.

Switching machines also releases any button still held on the one you left,
which previously could stick down across a focus change.

Also lands the page swap: the network lab is the landing page and the
single-Game-Boy player moved to /play.html, with /net.html 301'd in nginx.

Verified in headless Chrome: focus follows add and click, the screen and esc
both blur back, SELECT still opens the on-screen keyboard afterwards
(20 -&gt; 491 lit pixels), and typing 'uptime' into a card still answers.
</content>
</entry>
</feed>
