# Lios native Aen frontend
Lios is the `lios` Cargo package in KnottTerminal. The `aen` feature builds the
same executable with native KnottCompositor application windows:
```sh
cargo build --locked --no-default-features --features aen --bin lios
cargo install --git https://github.com/Tknott95/KnottTerminal --locked --no-default-features --features aen
```
The feature is included in Lios 0.1.88 and newer on crates.io:
`cargo install lios --locked --no-default-features --features aen`.
Rust 1.88 or newer and a monospace font
(DejaVu Sans Mono by default) are required. No GTK/VTE library or other display
transport is selected by this feature. The Aen SDK is bundled as the package's
client library so a Cargo package needs no unpublished path dependency. SDK source
must match `KnottCompositor/crates/aen-window`; only the compositor enables its
server implementation.
`lios --check` inspects the build, font and endpoint without connecting.
`lios -- command arguments...` executes an exact argument vector; `-e STRING`
executes a shell command string. `--working-directory`, `--width`, `--height`,
`--font-file`, `--font-size`, `--scrollback`, `--socket` and `--hold` are supported.
Connection and initial configuration must succeed before Lios starts a child.
The child has a real controlling PTY, `TERM=xterm-256color`, truecolor identity,
and native Aen endpoint inheritance. The VT engine handles UTF-8 cells, combining
characters, wide characters, cursor movement, erasing, scroll regions, wrapping,
alternate screens, 256/truecolor attributes and terminal queries. The renderer
uses antialiased font glyphs, bold/italic variants, underline, inverse and selection.
The compositor owns the window, input, focus, workspaces, geometry and tiling.
Lios submits one bounded BGRA frame at a time. Input is accepted only for the exact
adopted frame. A pending resize retains the old complete compositor image; the PTY
receives its new row/column size and SIGWINCH when the matching frame is adopted.
Native disconnect, cooperative close or Ctrl+Shift+Q closes the terminal and
cleans up its child. PTY input/replies, terminal strings, history and glyph caches
have explicit bounds. Terminal OSC clipboard and window-resize requests cannot
take control of the desktop.
Shift+PageUp/PageDown and the wheel scroll history. Pointer drag selects text;
Ctrl+Shift+C/V copies and pastes through KnottCompositor's shared native text
clipboard, including bracketed paste mode. The selection is bounded to 64 KiB;
the worker uses the control socket matching the selected window endpoint and
never blocks the UI loop. Focus changes invalidate delayed paste completions.
Keystrokes following a paste request, including Enter, follow its result in PTY
order. A failed or stale paste releases those keystrokes without clipboard data.
CR/CRLF is normalized, ESC/C0/C1 controls except LF/TAB are removed, and bounded
queues stream a full selection plus bracketed-paste framing. Terminal OSC cannot
write or read the clipboard. The committed selection survives Lios close until
replacement, explicit `knottxctl clipboard clear`, or compositor exit. Application
cursor keys, modified navigation/function keys, control characters, Alt prefixes
and native repeat events are supported. Translated keysyms honor the compositor's
keyboard remaps, including Escape, Backspace, Return and Shift+PageUp/PageDown.
The compositor resolves configured XKB Compose sequences and sends bounded UTF-8
text commits through Aen v3. Lios queues each commit once as its exact bytes while
physical key events continue to drive terminal controls. A touch drag uses one
captured contact for text selection; unrelated contacts cannot move it, and focus
loss or touch cancellation ends the drag. Keypad navigation follows
NumLock's translated symbols, while keypad digits and operators arrive as text
commits. F1–F35 use xterm-256color function-key sequences. Applications can request mouse tracking, including SGR encoding.
Image/MIME clipboard offers, primary selection, IME, accessibility, Sixel/images,
tabs and existing GTK Lios theme
or plugin UI have not yet been ported to this frontend. These limitations remain
release work; this feature does not claim GTK frontend parity or hardware acceptance.
Run `scripts/check-aen-build.py` to inspect the selected dependency graph. Run the
compositor's `scripts/test-native-lios.sh` for explicit private native-only software
acceptance: real Lios/PTY, punctuation and Unicode input through configured keyboard
layouts, rendered pixels, cross-window copy/paste, focus
cancellation, paste-before-Enter ordering, tiling resize, workspace
transition and cooperative close. It uses no graphics/input devices or host bus.