| Age | Commit message (Collapse) | Author |
|
- Fix struct field alignment in Config and runState
- Move parseBool() after Config methods (group methods together)
- Move interface satisfaction checks after type definitions in store.go
- Move linkScales var to top of display.go with other declarations
- Clean up orphaned comment and blank line
- Bump version to 0.10.1
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
|
Draw 1px yellow vertical lines between hosts when monitoring multiple
servers, making it easy to see where one host's bars end and the next
begins. Toggled with hotkey 's', persisted via 'w' to ~/.loadbarsrc.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
|
Expand the smoothed CPU array from [9] to [10] elements to include
GuestNice (index 9). Drawn in lime green above Nice (green) in the
CPU bar stack. Rename normalizePcts9 to normalizePcts.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
|
Add a pink 1px line drawn from the top showing mean iowait+IRQ+softIRQ
across all hosts, toggled with hotkey i and persistable to ~/.loadbarsrc.
Also add m as alias for 2 (memory toggle) and n as alias for 3 (network
toggle) for easier single-hand operation.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
Remove non-functional macOS monitoring code that used native tools (sysctl, vm_stat, netstat, iostat). Now loadbars exits with an error when attempting local stats gathering on non-Linux systems. macOS can still be used as a client to monitor remote Linux servers via SSH.
|
|
Crop window decoration borders from the recording and update the
README image reference from loadbars.png to loadbars.gif.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
|
Supports Wayland (grim + slurp for frame capture) and X11 (ffmpeg
x11grab + xdotool). Converts to GIF via gifski or ffmpeg palettegen
fallback. Includes cleanup trap, dependency checks, and configurable
duration/fps/output.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
|
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>
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
Co-authored-by: Cursor <cursoragent@cursor.com>
|
|
Co-authored-by: Cursor <cursoragent@cursor.com>
|
|
|
|
Co-authored-by: Cursor <cursoragent@cursor.com>
|
|
|
|
|
|
|
|
Co-authored-by: Cursor <cursoragent@cursor.com>
|
|
- 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>
|
|
- 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>
|
|
- 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>
|
|
- 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>
|
|
- 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>
|
|
Amp-Thread-ID: https://ampcode.com/threads/T-019c58b3-06fb-733d-8fc1-f268fe7f70d5
Co-authored-by: Amp <amp@ampcode.com>
|
|
This reverts commit 79627ce3c419a6a6d6e03c83e7c62333b60345d8.
|
|
Major refactoring to fix SDL threading crashes on modern Linux with
sdl12-compat. Perl threads are incompatible with SDL 1.2 compatibility
layer, causing segfaults in TTF_RenderText_Solid.
Changes:
- Replace threads::create with fork() for process-based concurrency
- Implement IPC using pipes instead of threads::shared memory
- Add read_from_processes() to handle pipe-based data transfer
- Update signal handling for SIGTERM and SIGUSR1 in child processes
- Remove all :shared attributes from variables
- Update process termination to use waitpid() instead of thread joins
This allows loadbars to monitor multiple remote hosts simultaneously
without SDL threading conflicts. Each host runs in its own forked
process with completely separate memory space.
Tested successfully with 3 remote hosts on Fedora 43.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
|
|
- Rename justfile to Justfile (conventional naming)
- Remove documentation target from Justfile
- Deprecated manpage functionality in favor of README.md
|
|
- Convert all POD files to Markdown format
- Replace Makefile with justfile for build automation
- Remove deprecated Debian packaging files and related directories
- Update copyright year from 2013 to 2026 in Constants.pm and loadbars
- Remove obsolete docs directory (bugs, wishlist, and generated files)
- Fix sum() function in Utils.pm to handle undef values properly
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|