- Added server list sidebar (GtkPaned) showing saved servers with
name, user@host:port detail. Double-click to connect.
- Added '+' button in sidebar to add new servers
- Added notification bar (animated GtkRevealer) for status messages:
'Server saved', 'Server connected', 'Server disconnected',
'Server removed', 'Key generated', 'Key imported', 'Key deleted'
Auto-hides after 4 seconds.
- Changed icon to terminal-style PNG + SVG (scalable)
- Server list updates automatically when servers are added/removed
Layout: [Sidebar: Servers] | [Notebook: Terminal Tabs]
The build_toolbar() method created a local GtkBox (hbox) and packed all
buttons into it, but never added hbox to the window's vbox. The toolbar
was created then immediately garbage collected.
Fix: Inline all UI construction directly into build_ui() and pack the
toolbar box into the vbox with gtk_box_pack_start().
Bug fixes:
- Fixed PTY bridge: IO thread now uses pty_slave_ instead of pty_master_
(remote output was never reaching the terminal)
- Fixed double-delete crash on tab close by removing page-removed callback
- Fixed port being ignored in password dialog (always used port 22)
- Added EINTR handling in select() for IO thread
- Added mutex for thread-safe cleanup
- Added try/catch for std::stoi in server config parsing
- VtePty lifecycle now managed properly (no double-close)
- Redundant ssh_channel_poll_timeout call removed
New:
- Added .desktop file for system-wide application menu entry
- Makefile.am installs desktop file to $(datadir)/applications
- Makefile.am installs icon to $(datadir)/icons/hicolor/256x256/apps