From c646c7a18b1e0347cf6fa8e1028067365019df9c Mon Sep 17 00:00:00 2001 From: Zane Walker Date: Sat, 18 Jul 2026 22:00:45 +0530 Subject: [PATCH] (Fix): removed the non-functional automata background overlay from `View()` (the `Frame()` was never called, and the black-space placeholder caused `EEEE` garbage characters on some terminals) --- CHANGELOG.md | 5 +++-- src/login/login.go | 5 +---- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 86a6e5f..5fbaec1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -35,11 +35,12 @@ first public release - **missing `extra/` directory** — added `extra/config.toml`, `extra/xsetup.sh`, `extra/lemurs.pam`, and `extra/lemurs.service` so `make install` can find them - **makefile `deps` target** — added `make deps` to automatically install `libpam0g-dev` and `build-essential`, and verify go is present - **readme overhaul** — rewrote for clarity: added "what problem does this solve", "how it works", known issues, simpler install instructions, and proper dependency listing +- **view cleanup** — removed the non-functional automata background overlay from `View()` (the `Frame()` was never called, and the black-space placeholder caused `EEEE` garbage characters on some terminals). also removed a hardcoded 80-char width on the top bar so it adapts to the terminal ### What's Missing - no tests -- session spawning uses `ForkExec` which is less clean than the original fork-then-exec model +- session leader is the latchd process, not the desktop — pam session tracking via systemd-logind may be imperfect - not all config options affect the rendering yet - occasional terminal state corruption on abrupt exit -- automata background can flicker on rapid terminal resizes +- automata background rendered as tick-only visual (not wired into the view yet) diff --git a/src/login/login.go b/src/login/login.go index f9e06ec..4c229cd 100644 --- a/src/login/login.go +++ b/src/login/login.go @@ -461,11 +461,9 @@ func (m *Model) View() string { content := m.renderLayout() - if m.automata != nil && m.width > 0 && m.height > 0 { + if m.width > 0 && m.height > 0 { return lipgloss.Place(m.width, m.height, lipgloss.Center, lipgloss.Center, content, - lipgloss.WithWhitespaceChars(" "), - lipgloss.WithWhitespaceForeground(lipgloss.Color("0")), ) } return content @@ -474,7 +472,6 @@ func (m *Model) View() string { func (m *Model) renderLayout() string { // top bar: power hints top := m.renderPowerHints() - top = lipgloss.NewStyle().Width(80).Align(lipgloss.Left).Render(top) // avatar + form side by side avatar := m.renderAvatar()