Skip to content

Releases: lazybrar/webos-terminal-emulator

v1.2.0: GPU-rendered terminal

Choose a tag to compare

@lazybrar lazybrar released this 13 Oct 03:54

The terminal now renders on the TV's GPU.

Install (on the TV, as root; needs the Homebrew Channel for the root exec service):

mkdir -p /media/developer/temp && cd /media/developer/temp
curl -sSfLO https://github.com/lazybrar/webos-terminal-emulator/releases/download/v1.2.0/org.tvwl.terminal_1.2.0_all.ipk
luna-send -i -f luna://com.webos.appInstallService/dev/install '{"id":"org.tvwl.terminal","ipkUrl":"/media/developer/temp/org.tvwl.terminal_1.2.0_all.ipk","subscribe":true}'

Then open Terminal from the home screen. Verify the download against SHA256SUMS. Upgrades in place from 1.1.x.

What's new

  • GPU renderer wlterm-gl: GLES2 on the TV's PowerVR (glyph atlas + one quad per cell). 32-bit ARM, links the TV's own libraries. The CPU renderer wlterm2 is still bundled.
  • renderer = auto|gl|cpu in /media/developer/wlterm.conf. auto (default) uses the GPU build and falls back to the CPU one if it fails to start.
  • Faster floods on both renderers: the terminal now drains the shell's output for a few ms before redrawing (a 200,000-line scroll went from 3-6 s to about 1.5 s).
  • Build tooling: make gl-term, scripts/make-sysroot32.sh (checksum-pinned 32-bit glibc from Debian), faster scripts/pull-sysroot.sh.

Measured on the TV (seq 1 200000): GPU ~1.47 s using ~1.0 s CPU; CPU renderer 1.4-2.5 s using 1.1-2.3 s CPU. The gain is lower, steadier CPU load, not a big wall-clock speedup.

Not yet verified on hardware: scrollback paging (Shift+PgUp/PgDn), full-screen apps such as vim/tmux/htop. Known gaps: no ligatures, no double-width (CJK) characters, no mouse or clipboard.

Modifies a TV's filesystem as root; use at your own risk (see README, Safety).

v1.1.0: self-contained ipk

Choose a tag to compare

@lazybrar lazybrar released this 13 Oct 03:31

First packaged release: a self-contained ipk for rooted LG webOS TVs (tested on webOS 7.5.8).

Install (on the TV, as root; needs the Homebrew Channel for the root exec service):

mkdir -p /media/developer/temp && cd /media/developer/temp
curl -sSfLO https://github.com/lazybrar/webos-terminal-emulator/releases/download/v1.1.0/org.tvwl.terminal_1.1.0_all.ipk
luna-send -i -f luna://com.webos.appInstallService/dev/install '{"id":"org.tvwl.terminal","ipkUrl":"/media/developer/temp/org.tvwl.terminal_1.1.0_all.ipk","subscribe":true}'

Then open Terminal from the home screen. Verify the download against SHA256SUMS.

What's new

  • The ipk now bundles wlterm2 (64-bit static) and its launcher; nothing to copy by hand. Fira Code is downloaded on first start (falls back to the TV's DroidSansMono offline).
  • Settings file /media/developer/wlterm.conf: shell, home, start directory, PATH, font, size, env. Command-line flags override it. Default home is now /media/developer/home.
  • Fixed: clicking the icon while the terminal was running dropped to the home screen. It now restarts the terminal.
  • Docs: getting fish, writing Wayland apps for webOS, GPU and system notes.

Known gaps: no ligatures, no double-width (CJK) characters, no mouse or clipboard. Scrollback, alternate-screen apps (vim/tmux/htop) are implemented but not yet verified on hardware.

Modifies a TV's filesystem as root; use at your own risk (see README, Safety).