summaryrefslogtreecommitdiff
path: root/internal/display
AgeCommit message (Collapse)Author
2026-02-16Add global average CPU line toggled with hotkey gv0.10.0Paul Buetow
Draw a 1px red horizontal line spanning the full window width showing the mean CPU usage across all monitored hosts. Toggled with 'g' hotkey and persistable to ~/.loadbarsrc via 'w'. Bump version to 0.10.0. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16Fix multi-core display bug: distribute remainder pixels evenlyv0.9.1Paul Buetow
Fixes issue where integer division (winW / numBars) left unused pixels on the right side of the window. The more cores displayed, the more obvious the gap became. Changes: - Add barBounds() helper to calculate exact position and width for each bar - Distribute remainder pixels evenly using scaled division - Update drawing functions to use pre-calculated positions - Update test to verify bars now fill entire window width Increment version to 0.9.1 Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-14Aggregate all net interfaces, remove n hotkey, fix net bar decay bugv0.9.0Paul Buetow
Sum RX/TX across all non-lo interfaces instead of picking a single one. Remove the n hotkey (cycle interface), netint config field, and --netint flag since they are no longer needed. Fix pre-existing bug where net bars decayed to zero between collector updates (~19 of 20 frames had target=0, making bars invisible even during heavy downloads). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14Implement f/v hotkeys for link scale and add hotkey unit testsPaul Buetow
Add missing f/v hotkey handlers to cycle NetLink through mbit/10mbit/100mbit/gbit/10gbit, closing the gap between README documentation and actual implementation. Add 13 unit tests covering all hotkey behaviors including visual pixel assertions for toggles. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14Fix stale pixels at right edge when toggling bar layoutv0.8.3Paul Buetow
drawFrame() only cleared the window on layout changes, leaving remainder pixels (from integer division winW/numBars) with stale content from the double-buffered back buffer. Now clears every frame per SDL2 best practice. Adds comprehensive SDL visual test harness using software renderer with pixel spot-checking for CPU, memory, network bars, and the remainder bug. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14Add macOS support with automatic window activationPaul Buetow
This commit adds full macOS support for loadbars, allowing it to run natively on macOS for both localhost monitoring and remote Linux hosts. Key changes: - Embed both Linux and Darwin monitoring scripts in the binary - Auto-detect localhost OS and use appropriate script - Darwin script uses native macOS tools (sysctl, vm_stat, netstat, iostat) - Remote hosts always use Linux script (assumes /proc filesystem) - Automatic window activation on macOS using build tags - No external helper scripts needed The binary now works seamlessly on macOS: - localhost monitoring uses macOS-specific commands - Remote Linux hosts work via SSH with Linux script - SDL window automatically comes to foreground on macOS - Cross-platform build with single binary for all scenarios Technical implementation: - internal/collector/script.go: Embeds both scripts - internal/collector/loadbars-remote-darwin.sh: macOS monitoring - internal/collector/loadbars-remote.sh: Linux monitoring (copied from scripts/) - internal/display/activate_darwin.go: macOS window activation - internal/display/activate.go: No-op for other platforms - Updated README.md with macOS installation instructions - Added MACOS.md with detailed macOS documentation
2026-02-14remove version and some refactoringPaul Buetow
2026-02-13Show version in SDL window title bar (Loadbars 0.8.0)v0.8.0Paul Buetow
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-13Remove 1px gaps between bars to fix vertical line artifactsPaul Buetow
- barWidth = winW/numBars (no -1), advance x by barW only - Eliminates uncleared 1px columns that showed as vertical lines Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-13Document hotkeys in README; fix display/config; net interface helpPaul Buetow
- README: add Hotkeys section (1,2,3,e,h,n,q,w,a,y,d,c,f,v,arrows) - README: network interface and netlink config docs - Display: default window width 1200; clear bar slots to fix CPU/mem/net mixing - Display: numBars count only non-nil hosts (layout matches draw) - Display: network bars (key 3), net interface choice and n=cycle - Display: extended peak line (e), cpu/net avg keys (a,y,d,c) with feedback - Config: default barwidth 1200; netint/netlink in --help - Collector: parse_test Linux-style net stats Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-13Fix core toggle off and add memory bars (key 2)Paul Buetow
- Clear renderer every frame so toggling cores off shows single bar again - Add drawMemBar: RAM (dark grey/black) and Swap (grey/black) per host - Remove redrawBg; always clear before draw - README updates Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-13Fix hotkeys 1/2/3 and per-core displayPaul Buetow
- Collector: always send all CPU lines so key 1 can toggle per-core view - Display: use float division in drawCPUBar to avoid divide-by-zero panic - Display: count actual CPU bars for bar width so all cores fit on screen - Display: use local showMem/showNet for layout, add stdout feedback for 1/2/3 Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-13Go rewrite: loadbars with mage, default localhost, NOTICEPaul Buetow
- Module codeberg.org/snonux/loadbars, Go 1.25 - cmd/loadbars, internal/{app,config,collector,display,stats,constants,version} - SDL display, shell script for remote (no Perl), config/cluster support - Magefile: build, test, install, uninstall/deinstall - NOTICE for go-sdl2 attribution (BSD-3-Clause) - Default to localhost when no hosts given (no SSH) - Remove loadbars-go binary name; build as loadbars Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-13Remove Perl version and build files; add .gitignore for .serena/Paul Buetow
Amp-Thread-ID: https://ampcode.com/threads/T-019c58b3-06fb-733d-8fc1-f268fe7f70d5 Co-authored-by: Amp <amp@ampcode.com>