moonshot

technical

kakel

kakel puts more than one thing on the screen at once. it divides punkt's full-screen console into a tiled grid of up to four windows, each with its own skalman session.

layout

boot starts with one full-screen window above a one-row status bar. each split adds a window, up to a 2×2 grid, and close removes the focused one. the status bar at the bottom shows uptime, running tasks, disk and memory use, with a meter that turns amber and then red as the disk or memory fills.

focus

keyboard input goes to the window with focus. Alt+Tab moves focus through the windows in reading order, and a left click gives focus to the window under the pointer. that click does only that, so the first click on a browser does not follow a link. the next click belongs to the program.

tavla

a graphical ring-3 program gets a tavla, an ordinary tile with a one-row title strip the program cannot draw over. the strip names the program, is bright when the window has focus and dim when it does not, and offers the way out, alt+w closes the tavla and stops the program. while a tavla has focus every key goes to its program, except alt+w and Alt+Tab, so a tavla can always be left or closed.

when the layout changes, a program in a tavla finds out through win_info() and redraws its own window. every ring-3 program started with start gets a window of its own, and whatever it prints lands there.