summaryrefslogtreecommitdiffstats
path: root/CONTEXT.md
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--CONTEXT.md52
1 files changed, 52 insertions, 0 deletions
diff --git a/CONTEXT.md b/CONTEXT.md
index 48cb3a4..9fccbe4 100644
--- a/CONTEXT.md
+++ b/CONTEXT.md
@@ -77,6 +77,58 @@ Two-phase model matching output:
77The framebuffer address stays valid after `ExitBootServices` — the GPU's 77The framebuffer address stays valid after `ExitBootServices` — the GPU's
78linear frame buffer is system memory that we own once boot services are gone. 78linear frame buffer is system memory that we own once boot services are gone.
79 79
80## Window
81
82A rectangular display surface owned by exactly one task and composited
83onto the 800×600 canvas by the window manager. The global console (vt)
84becomes the first window, owned by the shell; further windows are spawned
85per task (a terminal, a drawing canvas, …). Windows may overlap, so they
86carry a z-order. Every window is a pixel surface: a terminal window is a
87text grid rendered into its own pixels, a drawing canvas draws pixels
88directly. The ruling constraint is "stupid simple".
89
90## Chrome
91
92Window-manager-owned UI drawn on the canvas but not a window: the
93background/desktop fill, per-window title bars, and (later) a
94launcher/menu. Chrome is not focusable and does not take input as a
95window.
96
97## Title bar
98
99Per-window chrome strip at the top of a window showing the window's title
100and its minimize and close buttons. Drawn by the window manager, not the
101app.
102
103## Minimized
104
105A window state in which the window is not rendered (hidden); the app keeps
106running. The inverse of the normal visible state.
107
108## Close
109
110The action that destroys a window and ends its app.
111
112## App
113
114A task that owns exactly one window and receives input events through its
115message queue. A GUI program is an app; there is no separate "process"
116concept — the app is its task plus its window. The console is app 0
117(window 0).
118
119## Focus
120
121The single window (if any) that receives keyboard and mouse input. Focus
122is set by clicking a window, which also raises it; input is delivered to
123the focused app's message queue. With no focused window, a click only
124sets focus.
125
126## Keybinding
127
128A global keyboard shortcut handled by the window manager before input is
129routed to the focused window. It triggers a WM action (spawn a terminal,
130focus/restore the next window, close, …) and is never delivered to an app.
131
80## Keyboard layout 132## Keyboard layout
81 133
82Scancode set 1, US QWERTY layout. Hardcoded scancode→ASCII table. 134Scancode set 1, US QWERTY layout. Hardcoded scancode→ASCII table.