(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)

This commit is contained in:
2026-07-18 22:00:45 +05:30
parent eedde29e03
commit c646c7a18b
2 changed files with 4 additions and 6 deletions

View File

@@ -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)

View File

@@ -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()