mirror of
https://github.com/AvengeMedia/DankMaterialShell.git
synced 2026-01-24 21:42:51 -05:00
core/wayland: thread-safety meta fixes + cleanups + hypr workaround
- fork go-wayland/client and modify to make it thread-safe internally - use sync.Map and atomic values in many places to cut down on mutex boilerplate - do not create extworkspace client unless explicitly requested
This commit is contained in:
25
core/pkg/go-wayland/README.md
Normal file
25
core/pkg/go-wayland/README.md
Normal file
@@ -0,0 +1,25 @@
|
||||
# Wayland implementation in Go
|
||||
|
||||
[](https://pkg.go.dev/github.com/AvengeMedia/DankMaterialShell/core/pkg/go-wayland/wayland)
|
||||
|
||||
This module contains pure Go implementation of the Wayland protocol.
|
||||
Currently only wayland-client functionality is supported.
|
||||
|
||||
Go code is generated from protocol XML files using
|
||||
[`go-wayland-scanner`](cmd/go-wayland-scanner/scanner.go).
|
||||
|
||||
To load cursor, minimal port of `wayland-cursor` & `xcursor` in pure Go
|
||||
is located at [`wayland/cursor`](wayland/cursor) & [`wayland/cursor/xcursor`](wayland/cursor/xcursor)
|
||||
respectively.
|
||||
|
||||
To demonstrate the functionality of this module
|
||||
[`examples/imageviewer`](examples/imageviewer) contains a simple image
|
||||
viewer. It demos displaying a top-level window, resizing of window,
|
||||
cursor themes, pointer and keyboard. Because it's in pure Go, it can be
|
||||
compiled without CGO. You can try it using the following commands:
|
||||
|
||||
```sh
|
||||
CGO_ENABLED=0 go install github.com/AvengeMedia/DankMaterialShell/core/pkg/go-wayland/examples/imageviewer@latest
|
||||
|
||||
imageviewer file.jpg
|
||||
```
|
||||
Reference in New Issue
Block a user