Initial implementation of hdmistat - Linux framebuffer system stats display
Features: - Beautiful system statistics display using IBM Plex Mono font - Direct framebuffer rendering without X11/Wayland - Multiple screens with automatic carousel rotation - Real-time system monitoring (CPU, memory, disk, network, processes) - Systemd service integration with install command - Clean architecture using uber/fx dependency injection Architecture: - Cobra CLI with daemon, install, status, and info commands - Modular design with separate packages for display, rendering, and stats - Font embedding for zero runtime dependencies - Layout API for clean text rendering - Support for multiple screen types (overview, top CPU, top memory) Technical details: - Uses gopsutil for cross-platform system stats collection - Direct Linux framebuffer access via memory mapping - Anti-aliased text rendering with freetype - Configurable screen rotation and update intervals - Structured logging with slog - Comprehensive test coverage and linting setup This initial version provides a solid foundation for displaying rich system information on resource-constrained devices like Raspberry Pis.
This commit is contained in:
38
Makefile
Normal file
38
Makefile
Normal file
@@ -0,0 +1,38 @@
|
||||
.PHONY: all build test fmt lint clean install
|
||||
|
||||
all: fmt lint test build
|
||||
|
||||
build:
|
||||
go build -o hdmistat ./cmd/hdmistat
|
||||
|
||||
test: fmt lint
|
||||
go test -v ./...
|
||||
|
||||
fmt:
|
||||
go fmt ./...
|
||||
|
||||
lint:
|
||||
golangci-lint run
|
||||
|
||||
clean:
|
||||
rm -f hdmistat
|
||||
go clean
|
||||
|
||||
install: build
|
||||
sudo cp hdmistat /usr/local/bin/
|
||||
|
||||
# Development helpers
|
||||
.PHONY: run run-daemon
|
||||
|
||||
run: build
|
||||
./hdmistat
|
||||
|
||||
run-daemon: build
|
||||
sudo ./hdmistat daemon
|
||||
|
||||
# Dependencies
|
||||
.PHONY: deps
|
||||
|
||||
deps:
|
||||
go mod download
|
||||
go mod tidy
|
||||
Reference in New Issue
Block a user