Thanks for taking a look. Screen Mask is a small, focused tool, and it stays that way on purpose, but bug reports, fixes, and well-scoped features are all welcome.
- The tool is Windows-only. Every source file carries
//go:build windows. You can still develop and cross-compile from Linux or macOS; you just can't run the result there. - There are no external dependencies. It talks to Win32 through the standard
syscallpackage. Please keep it that way unless there's a strong reason not to.
make build # GOOS=windows cross-compile to screenmask.exe
make vet # go vet for the windows target
gofmt -l . # should print nothingRun gofmt -w . before committing. CI runs go vet and a gofmt check on the
Windows target, so a formatted, vet-clean tree is the bar for a merge.
- Keep each PR to one idea. Small diffs get reviewed fast.
- Match the surrounding style: the Win32 layer in
win32.gois deliberately thin and typed; drawing code lives with the pane it draws. - If you change runtime behavior, describe how you tested it on an actual Windows machine. This project has no automated GUI tests, so a human walkthrough is the verification.
- New public behavior should get a line in
CHANGELOG.mdunderUnreleased.
Open an issue with your Windows version, whether you're on a single or multi-monitor setup, and the steps to reproduce. A screenshot of the control window helps a lot.
Human contributions only, please. PRs that are obviously unreviewed machine output will be closed.