-
-
Notifications
You must be signed in to change notification settings - Fork 2
Open
Labels
enhancementNew feature or requestNew feature or requesthelp wantedExtra attention is neededExtra attention is needed
Description
Description
The current layout of the TUI provides basic functionality but lacks a cohesive structure that enhances clarity, usability, and overall user experience. Improving the layout will make the application easier to navigate, more intuitive for end-users, and aligned with the long-term vision of berth.
Goals
- Refactor the TUI into well-defined visual sections
- Standardize screen elements across all tabs (containers, images, volumes, etc.)
- Create a consistent command/help area and notification zone
- Prepare the UI foundation for future features like log streaming, stats, and filters
Proposed Layout Changes
Based on the provided wireframe (see image below):
-
Top Section
-
Display app title and active container engine (e.g., "Podman")
-
Horizontal menu with tab keys:
1 - Containers2 - Images3 - Volumes4 - SystemQ - Quit0 - Settings
-
-
Right Sidebar
-
Show container statistics:
- Number of containers, images, volumes, networks
- Disk usage or system info (optional)
-
-
Main Content Area
- Dynamic view based on active tab
- Should support tables, live logs, details view, etc.
-
Bottom Bar
-
Tab-specific command hints:
- e.g.,
ESC - Back,s - Start,x - Stop,i - Inspect,l - Logs
- e.g.,
-
Notification/message area:
- Used for loading states, errors, success messages, etc.
-
Suggested Improvements
- Introduce a screen state enum (e.g.
screenContainers,screenLogs,screenSettings) - Use [Bubbletea’s](https://github.com/charmbracelet/bubbletea)
viewportorflexlayout for responsive UI sections - Add clear separation between content and controls (e.g. use horizontal rules or spacing)
- Standardize footer messages using a
statusBarfield in the model
Benefits
- Better UX and clarity for end users
- Easier to maintain and extend UI logic
- Paves the way for features like log viewers, stats, and settings
Mockup / Reference
Tasks
- Define screen layout structure in
Model - Refactor
View()to use consistent layout sections - Implement tab switching in top navigation
- Create footer message system
- Integrate right-side stats box
- Ensure layout works on narrow terminals (responsive)
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or requesthelp wantedExtra attention is neededExtra attention is needed