From 37bb3aabd7a418dacf9350e35d22d956708b4c74 Mon Sep 17 00:00:00 2001 From: KingKDot Date: Fri, 3 Apr 2026 13:24:49 -0500 Subject: [PATCH] add image capturing for linux --- .../cmd/agent/capture/capture_linux.go | 14 +++++++-- .../cmd/agent/capture/monitors_linux.go | 30 +++++++++++++++++++ .../cmd/agent/capture/monitors_stub.go | 2 +- 3 files changed, 42 insertions(+), 4 deletions(-) create mode 100644 Overlord-Client/cmd/agent/capture/monitors_linux.go diff --git a/Overlord-Client/cmd/agent/capture/capture_linux.go b/Overlord-Client/cmd/agent/capture/capture_linux.go index 9134198..f38be42 100644 --- a/Overlord-Client/cmd/agent/capture/capture_linux.go +++ b/Overlord-Client/cmd/agent/capture/capture_linux.go @@ -4,10 +4,18 @@ package capture import ( "image" + + "github.com/kbinani/screenshot" ) -var activeDisplays = func() int { return 0 } +var activeDisplays = func() int { + return screenshot.NumActiveDisplays() +} -var captureDisplayFn = func(int) (*image.RGBA, error) { return nil, nil } +var captureDisplayFn = func(display int) (*image.RGBA, error) { + return screenshot.CaptureDisplay(display) +} -func displayCount() int { return 0 } +func displayCount() int { + return screenshot.NumActiveDisplays() +} diff --git a/Overlord-Client/cmd/agent/capture/monitors_linux.go b/Overlord-Client/cmd/agent/capture/monitors_linux.go new file mode 100644 index 0000000..9038a8b --- /dev/null +++ b/Overlord-Client/cmd/agent/capture/monitors_linux.go @@ -0,0 +1,30 @@ +//go:build linux + +package capture + +import ( + "image" + + "github.com/kbinani/screenshot" +) + +func displayBounds(idx int) image.Rectangle { + return screenshot.GetDisplayBounds(idx) +} + +func displayScale(idx int) float64 { + return 1.0 +} + +func MonitorInfos() []MonitorInfo { + n := screenshot.NumActiveDisplays() + infos := make([]MonitorInfo, 0, n) + for i := 0; i < n; i++ { + b := screenshot.GetDisplayBounds(i) + infos = append(infos, MonitorInfo{ + Width: b.Dx(), + Height: b.Dy(), + }) + } + return infos +} diff --git a/Overlord-Client/cmd/agent/capture/monitors_stub.go b/Overlord-Client/cmd/agent/capture/monitors_stub.go index 04ffb89..262b935 100644 --- a/Overlord-Client/cmd/agent/capture/monitors_stub.go +++ b/Overlord-Client/cmd/agent/capture/monitors_stub.go @@ -1,4 +1,4 @@ -//go:build !windows +//go:build !windows && !linux package capture