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.
38 lines
459 B
Makefile
38 lines
459 B
Makefile
.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
|