Documentation
¶
Overview ¶
Package wayland provides a pure Go implementation of a Wayland compositor.
This package allows you to create Wayland servers that can host Wayland clients (such as browsers, terminals, and other applications) and render their output to your own display surface.
Basic Usage ¶
To create a Wayland compositor, you need to:
- Create a socket listener with MakeSocketListener
- Accept client connections
- Handle frame requests and render client surfaces
Minimal Example ¶
First, implement the args interface to provide the display name:
type Args struct {
DisplayName string
}
func (a *Args) WaylandDisplayName() string {
return a.DisplayName // empty string auto-generates a name
}
Create the socket listener and start accepting connections:
args := &Args{DisplayName: ""}
listener, err := wayland.MakeSocketListener(args)
if err != nil {
log.Fatal(err)
}
go listener.MainLoopThenClose()
// Track connected clients
var clients []*wayland.Client
var mu sync.Mutex
// Accept new client connections
go func() {
for conn := range listener.OnConnection {
client := wayland.MakeClient(conn)
mu.Lock()
clients = append(clients, client)
mu.Unlock()
go client.MainLoop()
go handleFrameRequests(client)
}
}()
Handle frame callbacks to know when clients want to redraw:
func handleFrameRequests(client *wayland.Client) {
for callbackID := range client.FrameDrawRequests {
protocols.WlCallback_done(client, callbackID, uint32(time.Now().UnixMilli()))
if client.Status != wayland.ClientStatus_Connected {
break
}
// Signal your render loop that a redraw is needed
}
}
Create a desktop for compositing and render in your main loop:
desktop := wayland.MakeDesktop(
wayland.Size{Width: 800, Height: 600},
false, // useLinuxDMABuf
iconPNG, // icon data for the desktop
)
// In your render loop:
desktop.DrawClients(clients)
// desktop.Buffer now contains RGBA pixel data
// desktop.Stride is the row stride in bytes
Forward input events to clients:
// Mouse movement (x, y in surface coordinates) wayland.SendPointerMotion(clients, float32(x), float32(y)) // Mouse buttons (use Linux BTN_LEFT=0x110, BTN_RIGHT=0x111, etc.) wayland.SendPointerButton(clients, 0x110, true) // pressed wayland.SendPointerButton(clients, 0x110, false) // released // Mouse scroll (axis: protocols.WlPointerAxis_enum_vertical_scroll) wayland.SendPointerAxis(clients, protocols.WlPointerAxis_enum_vertical_scroll, 15.0) // Keyboard (use Linux evdev keycodes, e.g., 30 for 'A') wayland.SendKeyboardKey(clients, 30, true) // key down wayland.SendKeyboardKey(clients, 30, false) // key up
Launch a Wayland client with the correct environment:
cmd := exec.Command("weston-terminal")
cmd.Env = append(os.Environ(),
"WAYLAND_DISPLAY="+listener.WaylandDisplayName,
"XDG_SESSION_TYPE=wayland",
)
cmd.Start()
Assuming surface.Role has a Data field that can be set to nil
Index ¶
- Constants
- Variables
- func AddObject[T any](cs protocols.ClientState, id protocols.ObjectID[T], v *T)
- func AreSame[T comparable](a, b *T) bool
- func CopyBufferToWlSurfaceTexture(s protocols.ClientState, surfaceID protocols.ObjectID[protocols.WlSurface], ...)
- func DecodeIconToNRGBA(data []byte) *image.NRGBA
- func GetMessageAndFileDescriptors(conn *net.UnixConn, buf []byte) (n int, fds []int, err error)
- func GetNextEventSerial() uint32
- func GetSocketPathFromName(socketName string) string
- func GetSurfaceIDFromRole[T RoleOrXDGSurfaceObjectID](cs protocols.ClientState, id T) *protocols.ObjectID[protocols.WlSurface]
- func GetWaylandDisplayName(args HasDisplayName) string
- func ListenToWaylandSocket(socketName string, socketPath string) (listner *net.UnixListener, fd int, e error)
- func MakeWLDisplay() *protocols.WlDisplay
- func MakeWLSeat() *protocols.WlSeat
- func MakeWlCompositor() *protocols.WlCompositor
- func MakeWlDataDevice(seat protocols.ObjectID[protocols.WlSeat]) *wl_data_device
- func MakeWlDataDeviceManager() *protocols.WlDataDeviceManager
- func MakeWlDataSource() *protocols.WlDataSource
- func MakeWlKeyboard() *protocols.WlKeyboard
- func MakeWlOutput() *protocols.WlOutput
- func MakeWlPointer() *protocols.WlPointer
- func MakeWlRegion() *protocols.WlRegion
- func MakeWlRegistry() *protocols.WlRegistry
- func MakeWlShm() *protocols.WlShm
- func MakeWlShmPool(client protocols.ClientState, ...) *protocols.WlShmPool
- func MakeWlSubcompositor() *protocols.WlSubcompositor
- func MakeWlSubsurface(parent protocols.ObjectID[protocols.WlSurface]) *protocols.WlSubsurface
- func MakeWlSurface() *protocols.WlSurface
- func MakeWlTouch() *protocols.WlTouch
- func MakeXdgPopup(version uint32, parent *protocols.ObjectID[protocols.XdgSurface], ...) *protocols.XdgPopup
- func MakeXdgPositioner() *protocols.XdgPositioner
- func MakeXdgSurface(version uint32, xdg_surface_id protocols.ObjectID[protocols.XdgSurface]) *protocols.XdgSurface
- func MakeXdgToplevel() *protocols.XdgToplevel
- func MakeXdgWmBase() *protocols.XdgWmBase
- func MakeXwaylandShellV1() *protocols.XwaylandShellV1
- func MakeXwaylandSurfaceV1() *protocols.XwaylandSurfaceV1
- func MakeZwpXwaylandKeyboardGrabManagerV1() *protocols.ZwpXwaylandKeyboardGrabManagerV1
- func MakeZwpXwaylandKeyboardGrabV1() *protocols.ZwpXwaylandKeyboardGrabV1
- func MakeZxdgDecorationManagerV1() *protocols.ZxdgDecorationManagerV1
- func MakeZxdgToplevelDecorationV1(xdgToplevel protocols.ObjectID[protocols.XdgToplevel]) *protocols.ZxdgToplevelDecorationV1
- func RegisterRoleToSurface[T RoleOrXDGSurfaceObjectID](cs protocols.ClientState, roleID T, ...)
- func RemoveObject[T any](cs protocols.ClientState, id protocols.ObjectID[T])
- func RgbaToBgra(src *image.NRGBA) *image.NRGBA
- func SendError[T any, U ~uint32 | ~uint8](cs protocols.ClientState, id protocols.ObjectID[T], code U, message string)
- func SendKeyboardKey(clients []*Client, key uint32, pressed bool)
- func SendMessageAndFileDescriptors(conn *net.UnixConn, buf []byte, fds []int) error
- func SendPointerAxis(clients []*Client, axis protocols.WlPointerAxis_enum, value float32)
- func SendPointerButton(clients []*Client, button uint32, pressed bool)
- func SendPointerMotion(clients []*Client, x, y float32)
- func ToBytes[T ~uint8 | ~uint32](a []T) []byte
- func UnregisterRoleToSurface[T RoleOrXDGSurfaceObjectID](cs protocols.ClientState, id T)
- type BufferInfo
- type ChildPosition
- type Client
- func (c *Client) AddFrameDrawRequest(cb protocols.ObjectID[protocols.WlCallback])
- func (c *Client) AddGlobalWlDataDeviceBind(objectID protocols.ObjectID[protocols.WlDataDevice], version protocols.Version)
- func (c *Client) AddGlobalWlKeyboardBind(objectID protocols.ObjectID[protocols.WlKeyboard], version protocols.Version)
- func (c *Client) AddGlobalWlOutputBind(objectID protocols.ObjectID[protocols.WlOutput], version protocols.Version)
- func (c *Client) AddGlobalWlPointerBind(objectID protocols.ObjectID[protocols.WlPointer], version protocols.Version)
- func (c *Client) AddGlobalWlSeatBind(objectID protocols.ObjectID[protocols.WlSeat], version protocols.Version)
- func (c *Client) AddGlobalWlShmBind(objectID protocols.ObjectID[protocols.WlShm], version protocols.Version)
- func (c *Client) AddGlobalWlTouchBind(objectID protocols.ObjectID[protocols.WlTouch], version protocols.Version)
- func (c *Client) AddGlobalZwpXwaylandKeyboardGrabManagerV1Bind(objectID protocols.ObjectID[protocols.ZwpXwaylandKeyboardGrabManagerV1], ...)
- func (c *Client) AddObject(id protocols.AnyObjectID, v any)
- func (c *Client) ClaimFileDescriptor() *protocols.FileDescriptor
- func (c *Client) DrawableSurfaces() map[protocols.ObjectID[protocols.WlSurface]]bool
- func (c *Client) FindDescendantSurface(surfaceID protocols.ObjectID[protocols.WlSurface], ...) bool
- func (c *Client) GetCompositorVersion() uint32
- func (c *Client) GetGlobalBinds(globalID protocols.GlobalID) any
- func (c *Client) GetGlobalObjectByID(globalID uint32) any
- func (c *Client) GetObject(id protocols.AnyObjectID) any
- func (c *Client) GetSurfaceFromRole(roleObjectID protocols.AnyObjectID) any
- func (c *Client) GetSurfaceIDFromRole(roleObjectID protocols.AnyObjectID) *protocols.ObjectID[protocols.WlSurface]
- func (c *Client) MainLoop() error
- func (c *Client) ParseMessages(n int, fds []int) error
- func (c *Client) RegisterRoleToSurface(roleID protocols.AnyObjectID, ...)
- func (c *Client) RemoveGlobalWlDataDeviceBind(objectID protocols.ObjectID[protocols.WlDataDevice])
- func (c *Client) RemoveGlobalWlKeyboardBind(objectID protocols.ObjectID[protocols.WlKeyboard])
- func (c *Client) RemoveGlobalWlOutputBind(objectID protocols.ObjectID[protocols.WlOutput])
- func (c *Client) RemoveGlobalWlPointerBind(objectID protocols.ObjectID[protocols.WlPointer])
- func (c *Client) RemoveGlobalWlSeatBind(objectID protocols.ObjectID[protocols.WlSeat])
- func (c *Client) RemoveGlobalWlShmBind(objectID protocols.ObjectID[protocols.WlShm])
- func (c *Client) RemoveGlobalWlTouchBind(objectID protocols.ObjectID[protocols.WlTouch])
- func (c *Client) RemoveGlobalZwpXwaylandKeyboardGrabManagerV1Bind(objectID protocols.ObjectID[protocols.ZwpXwaylandKeyboardGrabManagerV1])
- func (c *Client) RemoveObject(id protocols.AnyObjectID)
- func (c *Client) Send(ev protocols.OutgoingEvent)
- func (c *Client) SendError(objectID protocols.AnyObjectID, code uint32, message string)
- func (c *Client) SendPendingMessage(ev protocols.OutgoingEvent) error
- func (c *Client) SetCompositorVersion(v uint32)
- func (c *Client) TopLevelSurfaces() map[protocols.ObjectID[protocols.XdgToplevel]]bool
- func (c *Client) UnregisterRoleToSurface(roleID protocols.AnyObjectID)
- type ClientStatus
- type CursorHotspot
- type Desktop
- type HasDisplayName
- type MapState
- type MemMapInfo
- type MessageDecoder
- type PendingBufferUpdates
- type PendingToplevelState
- type PixelSize
- type Pixels
- type Point
- type Rect
- type RoleOrXDGSurfaceObjectID
- type Size
- type SocketListener
- type SortedSurfaceEntry
- type SortedSurfaceEntryParentLocation
- type SurfaceRole
- type SurfaceRoleCursor
- type SurfaceRoleCursorData
- type SurfaceRoleSubSurface
- type SurfaceRoleWaylandSurfaceData
- type SurfaceRoleXWaylandSurface
- type SurfaceRoleXdgPopup
- type SurfaceRoleXdgToplevel
- type SurfaceUpdate
- type Texture
- type ToplevelPendingState
- type WlCompositor
- func (c *WlCompositor) OnBind(s protocols.ClientState, _ protocols.AnyObjectID, _ string, ...)
- func (c *WlCompositor) WlCompositor_create_region(s protocols.ClientState, _ protocols.ObjectID[protocols.WlCompositor], ...)
- func (c *WlCompositor) WlCompositor_create_surface(s protocols.ClientState, _ protocols.ObjectID[protocols.WlCompositor], ...)
- type WlDataDeviceManagerImpl
- func (w *WlDataDeviceManagerImpl) OnBind(s protocols.ClientState, _ protocols.AnyObjectID, _ string, ...)
- func (w *WlDataDeviceManagerImpl) WlDataDeviceManager_create_data_source(s protocols.ClientState, ...)
- func (w *WlDataDeviceManagerImpl) WlDataDeviceManager_get_data_device(s protocols.ClientState, ...)
- type WlDataSource
- func (w *WlDataSource) OnBind(s protocols.ClientState, _ protocols.AnyObjectID, _ string, ...)
- func (w *WlDataSource) WlDataSource_destroy(s protocols.ClientState, object_id protocols.ObjectID[protocols.WlDataSource]) bool
- func (w *WlDataSource) WlDataSource_offer(s protocols.ClientState, object_id protocols.ObjectID[protocols.WlDataSource], ...)
- func (w *WlDataSource) WlDataSource_set_actions(s protocols.ClientState, object_id protocols.ObjectID[protocols.WlDataSource], ...)
- type WlKeyboard
- func (o *WlKeyboard) AfterGetKeyboard(s protocols.ClientState, object_id protocols.ObjectID[protocols.WlKeyboard])
- func (o *WlKeyboard) OnBind(s protocols.ClientState, _ protocols.AnyObjectID, _ string, ...)
- func (o *WlKeyboard) WlKeyboard_release(s protocols.ClientState, _ protocols.ObjectID[protocols.WlKeyboard]) bool
- type WlOutput
- type WlPointer
- func (p *WlPointer) AfterGetPointer(_ protocols.ClientState, _ protocols.ObjectID[protocols.WlPointer])
- func (p *WlPointer) OnBind(s protocols.ClientState, _ protocols.AnyObjectID, _ string, ...)
- func (p *WlPointer) WlPointer_release(_ protocols.ClientState, _ protocols.ObjectID[protocols.WlPointer]) bool
- func (p *WlPointer) WlPointer_set_cursor(s protocols.ClientState, object_id protocols.ObjectID[protocols.WlPointer], ...)
- type WlRegion
- func (r *WlRegion) OnBind(s protocols.ClientState, _ protocols.AnyObjectID, _ string, ...)
- func (r *WlRegion) WlRegion_add(_ protocols.ClientState, _ protocols.ObjectID[protocols.WlRegion], x int32, ...)
- func (r *WlRegion) WlRegion_destroy(s protocols.ClientState, id protocols.ObjectID[protocols.WlRegion]) bool
- func (r *WlRegion) WlRegion_subtract(_ protocols.ClientState, _ protocols.ObjectID[protocols.WlRegion], _x int32, ...)
- type WlRegistryDelegateImpl
- type WlSeat
- func (w *WlSeat) OnBind(s protocols.ClientState, _ protocols.AnyObjectID, _ string, ...)
- func (w *WlSeat) WlSeat_get_keyboard(s protocols.ClientState, _ protocols.ObjectID[protocols.WlSeat], ...)
- func (w *WlSeat) WlSeat_get_pointer(s protocols.ClientState, _ protocols.ObjectID[protocols.WlSeat], ...)
- func (w *WlSeat) WlSeat_get_touch(s protocols.ClientState, object_id protocols.ObjectID[protocols.WlSeat], ...)
- func (w *WlSeat) WlSeat_release(_ protocols.ClientState, _ protocols.ObjectID[protocols.WlSeat]) bool
- type WlShm
- func (s *WlShm) OnBind(cs protocols.ClientState, _ protocols.AnyObjectID, _ string, ...)
- func (s *WlShm) WlShm_create_pool(cs protocols.ClientState, _objectID protocols.ObjectID[protocols.WlShm], ...)
- func (s *WlShm) WlShm_release(_cs protocols.ClientState, _objectID protocols.ObjectID[protocols.WlShm]) bool
- type WlShmPool
- func (p *WlShmPool) OnBind(s protocols.ClientState, _ protocols.AnyObjectID, _ string, ...)
- func (p *WlShmPool) OnDestroyShmPool(s protocols.ClientState, objectID protocols.ObjectID[protocols.WlShmPool])
- func (p *WlShmPool) WlBuffer_destroy(s protocols.ClientState, bufferObjectID protocols.ObjectID[protocols.WlBuffer]) bool
- func (p *WlShmPool) WlShmPool_create_buffer(s protocols.ClientState, _objectID protocols.ObjectID[protocols.WlShmPool], ...)
- func (p *WlShmPool) WlShmPool_destroy(s protocols.ClientState, objectID protocols.ObjectID[protocols.WlShmPool]) bool
- func (p *WlShmPool) WlShmPool_on_bind(_s protocols.ClientState, _name protocols.ObjectID[protocols.WlShmPool], ...)
- func (p *WlShmPool) WlShmPool_resize(s protocols.ClientState, objectID protocols.ObjectID[protocols.WlShmPool], ...)
- type WlSubcompositor
- func (sc *WlSubcompositor) OnBind(_ protocols.ClientState, _ protocols.AnyObjectID, _ string, ...)
- func (sc *WlSubcompositor) WlSubcompositor_destroy(_ protocols.ClientState, _ protocols.ObjectID[protocols.WlSubcompositor]) bool
- func (sc *WlSubcompositor) WlSubcompositor_get_subsurface(s protocols.ClientState, ...)
- type WlSubsurface
- func (ss *WlSubsurface) OnBind(cs protocols.ClientState, _ protocols.AnyObjectID, _ string, ...)
- func (ss *WlSubsurface) PlaceSubsurface(s protocols.ClientState, object_id protocols.ObjectID[protocols.WlSubsurface], ...)
- func (ss *WlSubsurface) WlSubsurface_destroy(s protocols.ClientState, object_id protocols.ObjectID[protocols.WlSubsurface]) bool
- func (ss *WlSubsurface) WlSubsurface_place_above(s protocols.ClientState, object_id protocols.ObjectID[protocols.WlSubsurface], ...)
- func (ss *WlSubsurface) WlSubsurface_place_below(s protocols.ClientState, object_id protocols.ObjectID[protocols.WlSubsurface], ...)
- func (ss *WlSubsurface) WlSubsurface_set_desync(_ protocols.ClientState, _ protocols.ObjectID[protocols.WlSubsurface])
- func (ss *WlSubsurface) WlSubsurface_set_position(s protocols.ClientState, object_id protocols.ObjectID[protocols.WlSubsurface], ...)
- func (ss *WlSubsurface) WlSubsurface_set_sync(_ protocols.ClientState, _ protocols.ObjectID[protocols.WlSubsurface])
- type WlSurface
- func (w *WlSurface) ClearRoleData()
- func (w *WlSurface) HasRoleData() bool
- func (w *WlSurface) OnBind(cs protocols.ClientState, _ protocols.AnyObjectID, _ string, ...)
- func (w *WlSurface) ResetPendingUpdate()
- func (w *WlSurface) WlSurface_attach(s protocols.ClientState, object_id protocols.ObjectID[protocols.WlSurface], ...)
- func (w *WlSurface) WlSurface_commit(s protocols.ClientState, object_id protocols.ObjectID[protocols.WlSurface])
- func (w *WlSurface) WlSurface_damage(_ protocols.ClientState, _ protocols.ObjectID[protocols.WlSurface], x int32, ...)
- func (w *WlSurface) WlSurface_damage_buffer(_ protocols.ClientState, _ protocols.ObjectID[protocols.WlSurface], x int32, ...)
- func (w *WlSurface) WlSurface_destroy(s protocols.ClientState, object_id protocols.ObjectID[protocols.WlSurface]) bool
- func (w *WlSurface) WlSurface_frame(s protocols.ClientState, _ protocols.ObjectID[protocols.WlSurface], ...)
- func (w *WlSurface) WlSurface_offset(_ protocols.ClientState, _ protocols.ObjectID[protocols.WlSurface], x int32, ...)
- func (w *WlSurface) WlSurface_set_buffer_scale(_ protocols.ClientState, _ protocols.ObjectID[protocols.WlSurface], ...)
- func (w *WlSurface) WlSurface_set_buffer_transform(_ protocols.ClientState, _ protocols.ObjectID[protocols.WlSurface], ...)
- func (w *WlSurface) WlSurface_set_input_region(_ protocols.ClientState, _ protocols.ObjectID[protocols.WlSurface], ...)
- func (w *WlSurface) WlSurface_set_opaque_region(_ protocols.ClientState, _ protocols.ObjectID[protocols.WlSurface], ...)
- type WlTouchDelegate
- type XWaylandSurfaceV1Serial
- type XdgPopup
- func (x *XdgPopup) OnBind(cs protocols.ClientState, _ protocols.AnyObjectID, _ string, ...)
- func (x *XdgPopup) XdgPopup_destroy(s protocols.ClientState, object_id protocols.ObjectID[protocols.XdgPopup]) bool
- func (x *XdgPopup) XdgPopup_grab(_ protocols.ClientState, _ protocols.ObjectID[protocols.XdgPopup], ...)
- func (x *XdgPopup) XdgPopup_reposition(s protocols.ClientState, object_id protocols.ObjectID[protocols.XdgPopup], ...)
- type XdgPositioner
- func (x *XdgPositioner) OnBind(cs protocols.ClientState, _ protocols.AnyObjectID, _ string, ...)
- func (x *XdgPositioner) XdgPositioner_destroy(s protocols.ClientState, id protocols.ObjectID[protocols.XdgPositioner]) bool
- func (x *XdgPositioner) XdgPositioner_set_anchor(_ protocols.ClientState, _ protocols.ObjectID[protocols.XdgPositioner], ...)
- func (x *XdgPositioner) XdgPositioner_set_anchor_rect(_ protocols.ClientState, _ protocols.ObjectID[protocols.XdgPositioner], ...)
- func (x *XdgPositioner) XdgPositioner_set_constraint_adjustment(_ protocols.ClientState, _ protocols.ObjectID[protocols.XdgPositioner], ...)
- func (x *XdgPositioner) XdgPositioner_set_gravity(_ protocols.ClientState, _ protocols.ObjectID[protocols.XdgPositioner], ...)
- func (x *XdgPositioner) XdgPositioner_set_offset(_ protocols.ClientState, _ protocols.ObjectID[protocols.XdgPositioner], ...)
- func (x *XdgPositioner) XdgPositioner_set_parent_configure(_ protocols.ClientState, _ protocols.ObjectID[protocols.XdgPositioner], ...)
- func (x *XdgPositioner) XdgPositioner_set_parent_size(_ protocols.ClientState, _ protocols.ObjectID[protocols.XdgPositioner], ...)
- func (x *XdgPositioner) XdgPositioner_set_reactive(_ protocols.ClientState, _ protocols.ObjectID[protocols.XdgPositioner])
- func (x *XdgPositioner) XdgPositioner_set_size(_ protocols.ClientState, _ protocols.ObjectID[protocols.XdgPositioner], ...)
- type XdgPositionerState
- type XdgSurface
- func (x *XdgSurface) OnBind(cs protocols.ClientState, _ protocols.AnyObjectID, _ string, ...)
- func (x *XdgSurface) XdgSurface_ack_configure(_ protocols.ClientState, _ protocols.ObjectID[protocols.XdgSurface], ...)
- func (x *XdgSurface) XdgSurface_destroy(s protocols.ClientState, objectID protocols.ObjectID[protocols.XdgSurface]) bool
- func (x *XdgSurface) XdgSurface_get_popup(s protocols.ClientState, ...)
- func (x *XdgSurface) XdgSurface_get_toplevel(s protocols.ClientState, ...)
- func (x *XdgSurface) XdgSurface_set_window_geometry(s protocols.ClientState, objectID protocols.ObjectID[protocols.XdgSurface], ...)
- type XdgToplevel
- func (t *XdgToplevel) OnBind(cs protocols.ClientState, _ protocols.AnyObjectID, _ string, ...)
- func (t *XdgToplevel) XdgToplevel_destroy(s protocols.ClientState, objectID protocols.ObjectID[protocols.XdgToplevel]) bool
- func (t *XdgToplevel) XdgToplevel_move(_ protocols.ClientState, _ protocols.ObjectID[protocols.XdgToplevel], ...)
- func (t *XdgToplevel) XdgToplevel_resize(_ protocols.ClientState, _ protocols.ObjectID[protocols.XdgToplevel], ...)
- func (t *XdgToplevel) XdgToplevel_set_app_id(_ protocols.ClientState, _ protocols.ObjectID[protocols.XdgToplevel], ...)
- func (t *XdgToplevel) XdgToplevel_set_fullscreen(s protocols.ClientState, objectID protocols.ObjectID[protocols.XdgToplevel], ...)
- func (t *XdgToplevel) XdgToplevel_set_max_size(_ protocols.ClientState, _ protocols.ObjectID[protocols.XdgToplevel], ...)
- func (t *XdgToplevel) XdgToplevel_set_maximized(s protocols.ClientState, objectID protocols.ObjectID[protocols.XdgToplevel])
- func (t *XdgToplevel) XdgToplevel_set_min_size(_ protocols.ClientState, _ protocols.ObjectID[protocols.XdgToplevel], ...)
- func (t *XdgToplevel) XdgToplevel_set_minimized(_ protocols.ClientState, _ protocols.ObjectID[protocols.XdgToplevel])
- func (t *XdgToplevel) XdgToplevel_set_parent(_ protocols.ClientState, _ protocols.ObjectID[protocols.XdgToplevel], ...)
- func (t *XdgToplevel) XdgToplevel_set_title(_ protocols.ClientState, _ protocols.ObjectID[protocols.XdgToplevel], ...)
- func (t *XdgToplevel) XdgToplevel_show_window_menu(_ protocols.ClientState, _ protocols.ObjectID[protocols.XdgToplevel], ...)
- func (t *XdgToplevel) XdgToplevel_unset_fullscreen(s protocols.ClientState, objectID protocols.ObjectID[protocols.XdgToplevel])
- func (t *XdgToplevel) XdgToplevel_unset_maximized(s protocols.ClientState, objectID protocols.ObjectID[protocols.XdgToplevel])
- type XdgWindowGeometry
- type XdgWmBase
- func (x *XdgWmBase) OnBind(_ protocols.ClientState, _ protocols.AnyObjectID, _ string, ...)
- func (x *XdgWmBase) XdgWmBase_create_positioner(s protocols.ClientState, _ protocols.ObjectID[protocols.XdgWmBase], ...)
- func (x *XdgWmBase) XdgWmBase_destroy(_ protocols.ClientState, _ protocols.ObjectID[protocols.XdgWmBase]) bool
- func (x *XdgWmBase) XdgWmBase_get_xdg_surface(s protocols.ClientState, objectID protocols.ObjectID[protocols.XdgWmBase], ...)
- func (x *XdgWmBase) XdgWmBase_pong(_ protocols.ClientState, _ protocols.ObjectID[protocols.XdgWmBase], _ uint32)
- type XwaylandShellV1
- type XwaylandSurfaceV1
- func (x *XwaylandSurfaceV1) OnBind(cs protocols.ClientState, _ protocols.AnyObjectID, _ string, ...)
- func (x *XwaylandSurfaceV1) XwaylandSurfaceV1_destroy(s protocols.ClientState, ...) bool
- func (x *XwaylandSurfaceV1) XwaylandSurfaceV1_on_bind(_s protocols.ClientState, _name protocols.AnyObjectID, _interface_ string, ...)
- func (x *XwaylandSurfaceV1) XwaylandSurfaceV1_set_serial(_s protocols.ClientState, ...)
- type ZOrder
- type ZOrderSubsurface
- type ZwpXwaylandKeyboardGrabManagerV1
- func (m *ZwpXwaylandKeyboardGrabManagerV1) OnBind(_s protocols.ClientState, _name protocols.AnyObjectID, _interface_ string, ...)
- func (m *ZwpXwaylandKeyboardGrabManagerV1) ZwpXwaylandKeyboardGrabManagerV1_destroy(s protocols.ClientState, ...) bool
- func (m *ZwpXwaylandKeyboardGrabManagerV1) ZwpXwaylandKeyboardGrabManagerV1_grab_keyboard(s protocols.ClientState, ...)
- type ZwpXwaylandKeyboardGrabV1
- type ZxdgDecorationManagerV1
- func (z *ZxdgDecorationManagerV1) OnBind(_ protocols.ClientState, _ protocols.AnyObjectID, _ string, ...)
- func (z *ZxdgDecorationManagerV1) ZxdgDecorationManagerV1_destroy(s protocols.ClientState, ...) bool
- func (z *ZxdgDecorationManagerV1) ZxdgDecorationManagerV1_get_toplevel_decoration(s protocols.ClientState, ...)
- type ZxdgToplevelDecorationV1
- func (z *ZxdgToplevelDecorationV1) OnBind(_ protocols.ClientState, _ protocols.AnyObjectID, _ string, ...)
- func (z *ZxdgToplevelDecorationV1) ZxdgToplevelDecorationV1_destroy(_ protocols.ClientState, ...) bool
- func (z *ZxdgToplevelDecorationV1) ZxdgToplevelDecorationV1_set_mode(s protocols.ClientState, ...)
- func (z *ZxdgToplevelDecorationV1) ZxdgToplevelDecorationV1_unset_mode(s protocols.ClientState, ...)
Constants ¶
const ( GetMessage_timeout = 1 * time.Millisecond GetMessage_maxFDsInCmsg = 10 // matches C++: CMSG_SPACE(sizeof(int) * 10) GetMessage_hardFDLimit = 255 // matches C++ guard in the copy loop GetMessage_intSizeBytes = 4 // sizeof(int) on Linux )
Variables ¶
var GlobalEnterSerial uint32 = 0
var Global_WlCompositor = MakeWlCompositor()
var Global_WlDataDevice = Global_WlSeat
var Global_WlDataDeviceManager = MakeWlDataDeviceManager()
var Global_WlDisplay = MakeWLDisplay()
var Global_WlKeyboard = MakeWlKeyboard()
var Global_WlOutput = MakeWlOutput()
var Global_WlPointer = &protocols.WlPointer{ Delegate: &Pointer, }
var Global_WlSeat = MakeWLSeat()
var Global_WlShm = MakeWlShm()
var Global_WlSubcompositor = MakeWlSubcompositor()
var Global_WlTouch = MakeWlTouch()
var Global_XdgWmBase = MakeXdgWmBase()
var Global_XwaylandShellV1 = MakeXwaylandShellV1()
var Global_ZwpXwaylandKeyboardGrabManagerV1 = MakeZwpXwaylandKeyboardGrabManagerV1()
var Global_ZxdgDecorationManagerV1 = MakeZxdgDecorationManagerV1()
var Pointer = WlPointer{ PointerSurfaceID: make(map[protocols.ClientState]*protocols.ObjectID[protocols.WlSurface]), }
var VirtualMonitorSize = PixelSize{
Width: 640,
Height: 480,
}
Functions ¶
func AreSame ¶
func AreSame[T comparable](a, b *T) bool
func DecodeIconToNRGBA ¶
func GetNextEventSerial ¶
func GetNextEventSerial() uint32
func GetSocketPathFromName ¶
func GetSurfaceIDFromRole ¶
func GetSurfaceIDFromRole[T RoleOrXDGSurfaceObjectID](cs protocols.ClientState, id T) *protocols.ObjectID[protocols.WlSurface]
func GetWaylandDisplayName ¶
func GetWaylandDisplayName(args HasDisplayName) string
func ListenToWaylandSocket ¶
func MakeWLDisplay ¶
func MakeWLSeat ¶
func MakeWlCompositor ¶
func MakeWlCompositor() *protocols.WlCompositor
func MakeWlDataDevice ¶
func MakeWlDataDeviceManager ¶
func MakeWlDataDeviceManager() *protocols.WlDataDeviceManager
func MakeWlDataSource ¶
func MakeWlDataSource() *protocols.WlDataSource
func MakeWlKeyboard ¶
func MakeWlKeyboard() *protocols.WlKeyboard
func MakeWlOutput ¶
func MakeWlPointer ¶
func MakeWlRegion ¶
func MakeWlRegistry ¶
func MakeWlRegistry() *protocols.WlRegistry
func MakeWlShm ¶
Helper to construct a protocol object with this delegate (like static make() in TS)
func MakeWlShmPool ¶
func MakeWlSubcompositor ¶
func MakeWlSubcompositor() *protocols.WlSubcompositor
func MakeWlSubsurface ¶
Constructor (literal to TS `static make(parent)` style)
func MakeWlTouch ¶
func MakeXdgPopup ¶
func MakeXdgPopup( version uint32, parent *protocols.ObjectID[protocols.XdgSurface], state XdgPositionerState, ) *protocols.XdgPopup
func MakeXdgPositioner ¶
func MakeXdgPositioner() *protocols.XdgPositioner
func MakeXdgSurface ¶
func MakeXdgSurface(version uint32, xdg_surface_id protocols.ObjectID[protocols.XdgSurface]) *protocols.XdgSurface
func MakeXdgToplevel ¶
func MakeXdgToplevel() *protocols.XdgToplevel
func MakeXdgWmBase ¶
func MakeXwaylandShellV1 ¶
func MakeXwaylandShellV1() *protocols.XwaylandShellV1
func MakeXwaylandSurfaceV1 ¶
func MakeXwaylandSurfaceV1() *protocols.XwaylandSurfaceV1
func MakeZwpXwaylandKeyboardGrabManagerV1 ¶
func MakeZwpXwaylandKeyboardGrabManagerV1() *protocols.ZwpXwaylandKeyboardGrabManagerV1
func MakeZwpXwaylandKeyboardGrabV1 ¶
func MakeZwpXwaylandKeyboardGrabV1() *protocols.ZwpXwaylandKeyboardGrabV1
func MakeZxdgDecorationManagerV1 ¶
func MakeZxdgDecorationManagerV1() *protocols.ZxdgDecorationManagerV1
func MakeZxdgToplevelDecorationV1 ¶
func MakeZxdgToplevelDecorationV1(xdgToplevel protocols.ObjectID[protocols.XdgToplevel]) *protocols.ZxdgToplevelDecorationV1
func RegisterRoleToSurface ¶
func RegisterRoleToSurface[T RoleOrXDGSurfaceObjectID](cs protocols.ClientState, roleID T, surfaceID protocols.ObjectID[protocols.WlSurface])
func RemoveObject ¶
func RemoveObject[T any](cs protocols.ClientState, id protocols.ObjectID[T])
func SendKeyboardKey ¶
func SendPointerAxis ¶
func SendPointerAxis(clients []*Client, axis protocols.WlPointerAxis_enum, value float32)
func SendPointerButton ¶
func SendPointerMotion ¶
func UnregisterRoleToSurface ¶
func UnregisterRoleToSurface[T RoleOrXDGSurfaceObjectID](cs protocols.ClientState, id T)
Types ¶
type BufferInfo ¶
type ChildPosition ¶
ChildPosition mirrors { child: Object_ID<wl_surface>; x: number; y: number }
type Client ¶
type Client struct {
Status ClientStatus
UnixConnection *net.UnixConn
CompositorVersion uint32
DisplayID protocols.ObjectID[protocols.WlDisplay]
OutgoingChannel chan protocols.OutgoingEvent
Decoder *MessageDecoder
UnclaimedFDs []protocols.FileDescriptor
Objects map[protocols.AnyObjectID]any
RolesToSurfaces map[protocols.AnyObjectID]protocols.ObjectID[protocols.WlSurface]
FrameDrawRequests chan protocols.ObjectID[protocols.WlCallback]
GlobalBinds map[protocols.GlobalID]any
LastGetMessageTime time.Time
Access sync.Mutex
// contains filtered or unexported fields
}
func MakeClient ¶
func (*Client) AddFrameDrawRequest ¶
func (c *Client) AddFrameDrawRequest(cb protocols.ObjectID[protocols.WlCallback])
func (*Client) AddGlobalWlDataDeviceBind ¶
func (*Client) AddGlobalWlKeyboardBind ¶
func (*Client) AddGlobalWlOutputBind ¶
func (*Client) AddGlobalWlPointerBind ¶
func (*Client) AddGlobalWlSeatBind ¶
func (*Client) AddGlobalWlShmBind ¶
func (*Client) AddGlobalWlTouchBind ¶
func (*Client) AddGlobalZwpXwaylandKeyboardGrabManagerV1Bind ¶
func (*Client) ClaimFileDescriptor ¶
func (c *Client) ClaimFileDescriptor() *protocols.FileDescriptor
func (*Client) DrawableSurfaces ¶
func (*Client) FindDescendantSurface ¶
func (c *Client) FindDescendantSurface(surfaceID protocols.ObjectID[protocols.WlSurface], maybeDescendantID protocols.ObjectID[protocols.WlSurface]) bool
*
- Seed if maybe_desceneding_id is a descendant of surface_id
- @param s
- @param surface_id
- @param maybe_descendant_id
func (*Client) GetCompositorVersion ¶
func (*Client) GetGlobalObjectByID ¶
func (*Client) GetSurfaceFromRole ¶
func (c *Client) GetSurfaceFromRole(roleObjectID protocols.AnyObjectID) any
func (*Client) GetSurfaceIDFromRole ¶
func (*Client) RegisterRoleToSurface ¶
func (*Client) RemoveGlobalWlDataDeviceBind ¶
func (c *Client) RemoveGlobalWlDataDeviceBind(objectID protocols.ObjectID[protocols.WlDataDevice])
func (*Client) RemoveGlobalWlKeyboardBind ¶
func (c *Client) RemoveGlobalWlKeyboardBind(objectID protocols.ObjectID[protocols.WlKeyboard])
func (*Client) RemoveGlobalWlOutputBind ¶
func (*Client) RemoveGlobalWlPointerBind ¶
func (*Client) RemoveGlobalWlSeatBind ¶
func (*Client) RemoveGlobalWlShmBind ¶
func (*Client) RemoveGlobalWlTouchBind ¶
func (*Client) RemoveGlobalZwpXwaylandKeyboardGrabManagerV1Bind ¶
func (c *Client) RemoveGlobalZwpXwaylandKeyboardGrabManagerV1Bind(objectID protocols.ObjectID[protocols.ZwpXwaylandKeyboardGrabManagerV1])
func (*Client) RemoveObject ¶
func (c *Client) RemoveObject(id protocols.AnyObjectID)
func (*Client) Send ¶
func (c *Client) Send(ev protocols.OutgoingEvent)
func (*Client) SendError ¶
func (c *Client) SendError(objectID protocols.AnyObjectID, code uint32, message string)
func (*Client) SendPendingMessage ¶
func (c *Client) SendPendingMessage(ev protocols.OutgoingEvent) error
*
* * @param message * @returns Returns if we should continue listening or sending on this socket any more * returns falsy mostly if the client has disconnected
func (*Client) SetCompositorVersion ¶
func (*Client) TopLevelSurfaces ¶
func (*Client) UnregisterRoleToSurface ¶
func (c *Client) UnregisterRoleToSurface(roleID protocols.AnyObjectID)
type ClientStatus ¶
type ClientStatus int
const ( ClientStatus_Connected ClientStatus = 0 ClientStatus_Disconnected ClientStatus = 2 )
type CursorHotspot ¶
type CursorHotspot struct {
X, Y int32
}
type Desktop ¶
type Desktop struct {
Width int
Height int
Stride int // bytes per row (Width * 4)
// Back buffer as image.RGBA (Pix backed by Buffer)
Buffer []byte
RGBA *image.RGBA
IconImg *image.NRGBA
CreatedAt time.Time
WillShowAppRightAtStartup bool
}
func MakeDesktop ¶
func (*Desktop) AfterOpeningTimeout ¶
* If we will show an app right at startup,
- we want to wait a bit before potentially
- drawing the icon. Otherwise it will
- flash the icon, and the show the app
- content which is annoying. *
func (*Desktop) DrawClients ¶
type HasDisplayName ¶
type HasDisplayName interface {
WaylandDisplayName() string
}
type MemMapInfo ¶
type MemMapInfo struct {
Bytes []byte
Addr unsafe.Pointer
Size C.size_t
FileDescriptor C.int
UnMapped bool
}
func NewMemMapInfo ¶
func NewMemMapInfo(fd int, size uint64) (MemMapInfo, error)
func (*MemMapInfo) Unmap ¶
func (m *MemMapInfo) Unmap()
type MessageDecoder ¶
type MessageDecoder struct {
// contains filtered or unexported fields
}
func MakeMessageDecoder ¶
func MakeMessageDecoder() *MessageDecoder
type PendingBufferUpdates ¶
type PendingBufferUpdates struct {
Surface protocols.ObjectID[protocols.WlSurface]
Buffer *protocols.ObjectID[protocols.WlBuffer]
ZIndex int
}
func ApplyWlSurfaceDoubleBufferedState ¶
func ApplyWlSurfaceDoubleBufferedState( s protocols.ClientState, surfaceObjectID protocols.ObjectID[protocols.WlSurface], syncSetByParent bool, accumulator []PendingBufferUpdates, zIndex int, ) []PendingBufferUpdates
type PendingToplevelState ¶
type RoleOrXDGSurfaceObjectID ¶
type RoleOrXDGSurfaceObjectID interface {
protocols.ObjectID[protocols.XdgSurface] |
protocols.ObjectID[protocols.XdgPopup] |
protocols.ObjectID[protocols.WlSubsurface] |
protocols.ObjectID[protocols.XdgToplevel] |
protocols.ObjectID[protocols.XwaylandSurfaceV1]
}
type SocketListener ¶
type SocketListener struct {
WaylandDisplayName string
SocketPath string
Listener *net.UnixListener
OnConnection chan *net.UnixConn
}
SocketListener listens for new Wayland client connections on a Unix socket. It provides a channel to receive new connections. Whoevere reads from the channel is responsible for closing the connections when done.
func MakeSocketListener ¶
func MakeSocketListener(args HasDisplayName) (*SocketListener, error)
func (*SocketListener) Close ¶
func (w *SocketListener) Close() error
func (*SocketListener) MainLoop ¶
func (w *SocketListener) MainLoop() error
func (*SocketListener) MainLoopThenClose ¶
func (w *SocketListener) MainLoopThenClose() error
type SortedSurfaceEntry ¶
type SortedSurfaceEntryParentLocation ¶
type SortedSurfaceEntryParentLocation struct {
// contains filtered or unexported fields
}
type SurfaceRole ¶
type SurfaceRole interface {
HasData() bool
ClearData()
// contains filtered or unexported methods
}
*
- Surface roles can be thought of as type.
- [source ](https://wayland.app/protocols/wayland#wl_surface)
- Things you may do:
- 1. if unset you may assign it a role
- 2. if assigned a role you may *not* change it to another role
- 3. if assigned a role you may *may* assign it the *same* role
- 4. The role may destroyed, allowing you assign it to the role again (maybe with different data), but not a different role.
- 5. If the surface is destroyed before the role is destroyed, that is an error.
type SurfaceRoleCursor ¶
type SurfaceRoleCursor struct {
Data *SurfaceRoleCursorData
}
func (*SurfaceRoleCursor) ClearData ¶
func (r *SurfaceRoleCursor) ClearData()
func (*SurfaceRoleCursor) HasData ¶
func (r *SurfaceRoleCursor) HasData() bool
type SurfaceRoleCursorData ¶
type SurfaceRoleCursorData struct {
Hotspot CursorHotspot
}
type SurfaceRoleSubSurface ¶
type SurfaceRoleSubSurface struct {
Data *protocols.ObjectID[protocols.WlSubsurface]
}
func (*SurfaceRoleSubSurface) ClearData ¶
func (r *SurfaceRoleSubSurface) ClearData()
func (*SurfaceRoleSubSurface) HasData ¶
func (r *SurfaceRoleSubSurface) HasData() bool
type SurfaceRoleWaylandSurfaceData ¶
type SurfaceRoleWaylandSurfaceData struct {
Serial *XWaylandSurfaceV1Serial
}
type SurfaceRoleXWaylandSurface ¶
type SurfaceRoleXWaylandSurface struct {
Data *SurfaceRoleWaylandSurfaceData
}
func (*SurfaceRoleXWaylandSurface) ClearData ¶
func (r *SurfaceRoleXWaylandSurface) ClearData()
func (*SurfaceRoleXWaylandSurface) HasData ¶
func (r *SurfaceRoleXWaylandSurface) HasData() bool
type SurfaceRoleXdgPopup ¶
func (*SurfaceRoleXdgPopup) ClearData ¶
func (r *SurfaceRoleXdgPopup) ClearData()
func (*SurfaceRoleXdgPopup) HasData ¶
func (r *SurfaceRoleXdgPopup) HasData() bool
type SurfaceRoleXdgToplevel ¶
type SurfaceRoleXdgToplevel struct {
Data *protocols.ObjectID[protocols.XdgToplevel]
}
func (*SurfaceRoleXdgToplevel) ClearData ¶
func (r *SurfaceRoleXdgToplevel) ClearData()
func (*SurfaceRoleXdgToplevel) HasData ¶
func (r *SurfaceRoleXdgToplevel) HasData() bool
type SurfaceUpdate ¶
type SurfaceUpdate struct {
Offset *Point
Damage []Rect
DamageBuffer []Rect
BufferScale *int32
BufferTransform *protocols.WlOutputTransform_enum
InputRegion *protocols.ObjectID[protocols.WlRegion]
OpaqueRegion *protocols.ObjectID[protocols.WlRegion]
Buffer *protocols.ObjectID[protocols.WlBuffer]
/**
* You should unshift when adding to
* this array so that the objects will
* be added in the correct order. (ie
* the ones added last will be on top)
*/
AddSubSurface []protocols.ObjectID[protocols.WlSurface]
XdgSurfaceWindowGeometry *XdgWindowGeometry
/**
* set_child_position and z_oder_subsurfaces
* take place whenever the parent surface is committed,
* thus they are part of the SurfaceUpdate of the parent
*/
SetChildPosition []ChildPosition
/**
* null means above or below the parent.
*/
ZOrderSubsurfaces []ZOrderSubsurface
XwaylandSurfarfaceV1Serial *XWaylandSurfaceV1Serial
}
type ToplevelPendingState ¶
type WlCompositor ¶
type WlCompositor struct{}
func (*WlCompositor) OnBind ¶
func (c *WlCompositor) OnBind( s protocols.ClientState, _ protocols.AnyObjectID, _ string, _ protocols.AnyObjectID, version uint32, )
func (*WlCompositor) WlCompositor_create_region ¶
func (c *WlCompositor) WlCompositor_create_region( s protocols.ClientState, _ protocols.ObjectID[protocols.WlCompositor], id protocols.ObjectID[protocols.WlRegion], )
func (*WlCompositor) WlCompositor_create_surface ¶
func (c *WlCompositor) WlCompositor_create_surface( s protocols.ClientState, _ protocols.ObjectID[protocols.WlCompositor], id protocols.ObjectID[protocols.WlSurface], )
type WlDataDeviceManagerImpl ¶
type WlDataDeviceManagerImpl struct{}
func (*WlDataDeviceManagerImpl) OnBind ¶
func (w *WlDataDeviceManagerImpl) OnBind( s protocols.ClientState, _ protocols.AnyObjectID, _ string, _ protocols.AnyObjectID, version uint32, )
func (*WlDataDeviceManagerImpl) WlDataDeviceManager_create_data_source ¶
func (w *WlDataDeviceManagerImpl) WlDataDeviceManager_create_data_source(s protocols.ClientState, _object_id protocols.ObjectID[protocols.WlDataDeviceManager], id protocols.ObjectID[protocols.WlDataSource])
func (*WlDataDeviceManagerImpl) WlDataDeviceManager_get_data_device ¶
func (w *WlDataDeviceManagerImpl) WlDataDeviceManager_get_data_device(s protocols.ClientState, _object_id protocols.ObjectID[protocols.WlDataDeviceManager], id protocols.ObjectID[protocols.WlDataDevice], seat protocols.ObjectID[protocols.WlSeat])
type WlDataSource ¶
type WlDataSource struct {
MimeTypes []string
Actions protocols.WlDataDeviceManagerDndAction_enum
}
func (*WlDataSource) OnBind ¶
func (w *WlDataSource) OnBind( s protocols.ClientState, _ protocols.AnyObjectID, _ string, _ protocols.AnyObjectID, version uint32, )
func (*WlDataSource) WlDataSource_destroy ¶
func (w *WlDataSource) WlDataSource_destroy( s protocols.ClientState, object_id protocols.ObjectID[protocols.WlDataSource], ) bool
func (*WlDataSource) WlDataSource_offer ¶
func (w *WlDataSource) WlDataSource_offer( s protocols.ClientState, object_id protocols.ObjectID[protocols.WlDataSource], mime_type string, )
func (*WlDataSource) WlDataSource_set_actions ¶
func (w *WlDataSource) WlDataSource_set_actions( s protocols.ClientState, object_id protocols.ObjectID[protocols.WlDataSource], dnd_actions protocols.WlDataDeviceManagerDndAction_enum, )
type WlKeyboard ¶
type WlKeyboard struct {
Key_map_fd protocols.FileDescriptor
Key_map_size uint32
// let's prevent the garbage collector from closing the file descriptor
File *os.File
}
func (*WlKeyboard) AfterGetKeyboard ¶
func (o *WlKeyboard) AfterGetKeyboard( s protocols.ClientState, object_id protocols.ObjectID[protocols.WlKeyboard], )
func (*WlKeyboard) OnBind ¶
func (o *WlKeyboard) OnBind( s protocols.ClientState, _ protocols.AnyObjectID, _ string, _ protocols.AnyObjectID, version uint32, )
func (*WlKeyboard) WlKeyboard_release ¶
func (o *WlKeyboard) WlKeyboard_release(s protocols.ClientState, _ protocols.ObjectID[protocols.WlKeyboard]) bool
type WlOutput ¶
type WlOutput struct {
Version uint32
}
func (*WlOutput) OnBind ¶
func (o *WlOutput) OnBind( s protocols.ClientState, _ protocols.AnyObjectID, _ string, newId_any protocols.AnyObjectID, version uint32, )
func (*WlOutput) WlOutput_release ¶
type WlPointer ¶
type WlPointer struct {
// Last cursor surface set via set_cursor
PointerSurfaceID map[protocols.ClientState]*protocols.ObjectID[protocols.WlSurface]
WindowX float32
WindowY float32
}
func GetWlPointerObject ¶
func (*WlPointer) AfterGetPointer ¶
func (*WlPointer) OnBind ¶
func (p *WlPointer) OnBind( s protocols.ClientState, _ protocols.AnyObjectID, _ string, newId_any protocols.AnyObjectID, version uint32, )
func (*WlPointer) WlPointer_release ¶
type WlRegion ¶
type WlRegion struct {
}
func (*WlRegion) OnBind ¶
func (r *WlRegion) OnBind( s protocols.ClientState, _ protocols.AnyObjectID, _ string, newId_any protocols.AnyObjectID, version uint32, )
func (*WlRegion) WlRegion_add ¶
func (*WlRegion) WlRegion_destroy ¶
type WlRegistryDelegateImpl ¶
type WlRegistryDelegateImpl struct{}
func (*WlRegistryDelegateImpl) OnBind ¶
func (w *WlRegistryDelegateImpl) OnBind( s protocols.ClientState, _ protocols.AnyObjectID, _ string, newId_any protocols.AnyObjectID, version uint32, )
func (*WlRegistryDelegateImpl) WlRegistry_bind ¶
func (w *WlRegistryDelegateImpl) WlRegistry_bind(s protocols.ClientState, object_id protocols.ObjectID[protocols.WlRegistry], name uint32, idInterface string, idVersion uint32, idID protocols.AnyObjectID)
type WlSeat ¶
type WlSeat struct {
Version uint32
}
func (*WlSeat) OnBind ¶
func (w *WlSeat) OnBind( s protocols.ClientState, _ protocols.AnyObjectID, _ string, newIdAny protocols.AnyObjectID, version uint32, )
func (*WlSeat) WlSeat_get_keyboard ¶
func (*WlSeat) WlSeat_get_pointer ¶
func (*WlSeat) WlSeat_get_touch ¶
func (*WlSeat) WlSeat_release ¶
type WlShm ¶
type WlShm struct{}
func (*WlShm) OnBind ¶
func (s *WlShm) OnBind( cs protocols.ClientState, _ protocols.AnyObjectID, _ string, newId_any protocols.AnyObjectID, version uint32, )
func (*WlShm) WlShm_create_pool ¶
func (*WlShm) WlShm_release ¶
func (s *WlShm) WlShm_release( _cs protocols.ClientState, _objectID protocols.ObjectID[protocols.WlShm], ) bool
*
- Here's what this does according to the docs:
- Using this request a client can tell the server that it is not going to use the shm object anymore.
- Objects created via this interface remain unaffected. *
- So I guess remove the object from the client, but leave all pools alone?
- @param s
- @param _object_id
type WlShmPool ¶
type WlShmPool struct {
MapState MapState
Buffers map[protocols.ObjectID[protocols.WlBuffer]]BufferInfo
MemMaps map[protocols.ObjectID[protocols.WlShmPool]]MemMapInfo
WlShmPoolObjectID protocols.ObjectID[protocols.WlShmPool]
}
func (*WlShmPool) OnBind ¶
func (p *WlShmPool) OnBind( s protocols.ClientState, _ protocols.AnyObjectID, _ string, newId_any protocols.AnyObjectID, version uint32, )
func (*WlShmPool) OnDestroyShmPool ¶
func (*WlShmPool) WlBuffer_destroy ¶
func (*WlShmPool) WlShmPool_create_buffer ¶
func (*WlShmPool) WlShmPool_destroy ¶
func (p *WlShmPool) WlShmPool_destroy( s protocols.ClientState, objectID protocols.ObjectID[protocols.WlShmPool], ) bool
*
- This can be called by either on the buffer delegate or the pool delegate
- @param s
- @param _object_id Check This!! to see if it is the buffer id or the pool id
- @returns false because wl_shm_pool hndles remove objet by itself
func (*WlShmPool) WlShmPool_on_bind ¶
func (p *WlShmPool) WlShmPool_on_bind( _s protocols.ClientState, _name protocols.ObjectID[protocols.WlShmPool], _interface_ string, newID protocols.ObjectID[protocols.WlShmPool], version uint32, )
*
- This can be called by either on the buffer delegate or the pool delegate
- check the name and compare to object id
- @param _s
- @param _name
- @param new_id
- @param version
func (*WlShmPool) WlShmPool_resize ¶
type WlSubcompositor ¶
type WlSubcompositor struct{}
func (*WlSubcompositor) OnBind ¶
func (sc *WlSubcompositor) OnBind( _ protocols.ClientState, _ protocols.AnyObjectID, _ string, _ protocols.AnyObjectID, _ uint32, )
func (*WlSubcompositor) WlSubcompositor_destroy ¶
func (sc *WlSubcompositor) WlSubcompositor_destroy( _ protocols.ClientState, _ protocols.ObjectID[protocols.WlSubcompositor], ) bool
func (*WlSubcompositor) WlSubcompositor_get_subsurface ¶
func (sc *WlSubcompositor) WlSubcompositor_get_subsurface( s protocols.ClientState, object_id protocols.ObjectID[protocols.WlSubcompositor], id protocols.ObjectID[protocols.WlSubsurface], surface_id protocols.ObjectID[protocols.WlSurface], parent_surface_id protocols.ObjectID[protocols.WlSurface], )
type WlSubsurface ¶
type WlSubsurface struct {
Parent protocols.ObjectID[protocols.WlSurface]
Sync bool
Position Point
}
func GetWlSubsurfaceObject ¶
func GetWlSubsurfaceObject(cs protocols.ClientState, id protocols.ObjectID[protocols.WlSubsurface]) *WlSubsurface
func (*WlSubsurface) OnBind ¶
func (ss *WlSubsurface) OnBind( cs protocols.ClientState, _ protocols.AnyObjectID, _ string, newId_any protocols.AnyObjectID, version uint32, )
func (*WlSubsurface) PlaceSubsurface ¶
func (ss *WlSubsurface) PlaceSubsurface( s protocols.ClientState, object_id protocols.ObjectID[protocols.WlSubsurface], sibling_or_parent_id protocols.ObjectID[protocols.WlSurface], aboveOrBelow ZOrder, )
func (*WlSubsurface) WlSubsurface_destroy ¶
func (ss *WlSubsurface) WlSubsurface_destroy( s protocols.ClientState, object_id protocols.ObjectID[protocols.WlSubsurface], ) bool
func (*WlSubsurface) WlSubsurface_place_above ¶
func (ss *WlSubsurface) WlSubsurface_place_above( s protocols.ClientState, object_id protocols.ObjectID[protocols.WlSubsurface], sibling_or_parent_id protocols.ObjectID[protocols.WlSurface], )
func (*WlSubsurface) WlSubsurface_place_below ¶
func (ss *WlSubsurface) WlSubsurface_place_below( s protocols.ClientState, object_id protocols.ObjectID[protocols.WlSubsurface], sibling_or_parent_id protocols.ObjectID[protocols.WlSurface], )
func (*WlSubsurface) WlSubsurface_set_desync ¶
func (ss *WlSubsurface) WlSubsurface_set_desync( _ protocols.ClientState, _ protocols.ObjectID[protocols.WlSubsurface], )
func (*WlSubsurface) WlSubsurface_set_position ¶
func (ss *WlSubsurface) WlSubsurface_set_position( s protocols.ClientState, object_id protocols.ObjectID[protocols.WlSubsurface], x int32, y int32, )
func (*WlSubsurface) WlSubsurface_set_sync ¶
func (ss *WlSubsurface) WlSubsurface_set_sync( _ protocols.ClientState, _ protocols.ObjectID[protocols.WlSubsurface], )
type WlSurface ¶
type WlSurface struct {
Position struct {
X int32
Y int32
Z int32
}
Texture *Texture
/**
* xdg_surface is not a role,
* but have to keep track anyway.
*/
XdgSurfaceState *protocols.ObjectID[protocols.XdgSurface]
/**
* nil represents to draw the current surface.
* By index, 0 is the bottom, and the last index is the top.
*/
ChildrenInDrawOrder []*protocols.ObjectID[protocols.WlSurface]
Role SurfaceRole
BufferTransform protocols.WlOutputTransform_enum
BufferScale int32
/**
* Null means infinite, (ie we can accept input from everywhere)
*/
InputRegion *protocols.ObjectID[protocols.WlRegion]
/**
* Unlink opaque region, null means empty!
*/
OpaqueRegion *protocols.ObjectID[protocols.WlRegion]
PendingUpdate SurfaceUpdate
Offset Point
/**
* Don't care about regions for now.
* Just need to clear this when the surface has
* been drawn.
*/
Damaged bool
}
func GetSurfaceFromRole ¶
func GetSurfaceFromRole[T RoleOrXDGSurfaceObjectID](cs protocols.ClientState, id T) *WlSurface
func GetWlSurfaceObject ¶
func (*WlSurface) ClearRoleData ¶
func (w *WlSurface) ClearRoleData()
func (*WlSurface) HasRoleData ¶
func (*WlSurface) OnBind ¶
func (w *WlSurface) OnBind( cs protocols.ClientState, _ protocols.AnyObjectID, _ string, newId_any protocols.AnyObjectID, version uint32, )
func (*WlSurface) ResetPendingUpdate ¶
func (w *WlSurface) ResetPendingUpdate()
func (*WlSurface) WlSurface_attach ¶
func (*WlSurface) WlSurface_commit ¶
func (*WlSurface) WlSurface_damage ¶
func (*WlSurface) WlSurface_damage_buffer ¶
func (*WlSurface) WlSurface_destroy ¶
func (*WlSurface) WlSurface_frame ¶
func (*WlSurface) WlSurface_offset ¶
func (*WlSurface) WlSurface_set_buffer_scale ¶
func (*WlSurface) WlSurface_set_buffer_transform ¶
func (*WlSurface) WlSurface_set_input_region ¶
type WlTouchDelegate ¶
type WlTouchDelegate struct {
}
func (*WlTouchDelegate) OnBind ¶
func (w *WlTouchDelegate) OnBind(s protocols.ClientState, name protocols.AnyObjectID, interface_ string, new_id protocols.AnyObjectID, version_number uint32)
func (*WlTouchDelegate) WlTouch_release ¶
func (w *WlTouchDelegate) WlTouch_release(s protocols.ClientState, object_id protocols.ObjectID[protocols.WlTouch]) bool
type XWaylandSurfaceV1Serial ¶
type XdgPopup ¶
type XdgPopup struct {
Version uint32
Parent *protocols.ObjectID[protocols.XdgSurface]
State XdgPositionerState
// contains filtered or unexported fields
}
func (*XdgPopup) OnBind ¶
func (x *XdgPopup) OnBind( cs protocols.ClientState, _ protocols.AnyObjectID, _ string, newId_any protocols.AnyObjectID, version uint32, )
func (*XdgPopup) XdgPopup_destroy ¶
func (*XdgPopup) XdgPopup_grab ¶
func (*XdgPopup) XdgPopup_reposition ¶
type XdgPositioner ¶
type XdgPositioner struct {
// contains filtered or unexported fields
}
func GetXdgPositionerObject ¶
func GetXdgPositionerObject(cs protocols.ClientState, id protocols.ObjectID[protocols.XdgPositioner]) *XdgPositioner
func (*XdgPositioner) OnBind ¶
func (x *XdgPositioner) OnBind( cs protocols.ClientState, _ protocols.AnyObjectID, _ string, newId_any protocols.AnyObjectID, version uint32, )
func (*XdgPositioner) XdgPositioner_destroy ¶
func (x *XdgPositioner) XdgPositioner_destroy( s protocols.ClientState, id protocols.ObjectID[protocols.XdgPositioner], ) bool
func (*XdgPositioner) XdgPositioner_set_anchor ¶
func (x *XdgPositioner) XdgPositioner_set_anchor( _ protocols.ClientState, _ protocols.ObjectID[protocols.XdgPositioner], anchor protocols.XdgPositionerAnchor_enum, )
func (*XdgPositioner) XdgPositioner_set_anchor_rect ¶
func (x *XdgPositioner) XdgPositioner_set_anchor_rect( _ protocols.ClientState, _ protocols.ObjectID[protocols.XdgPositioner], ax int32, ay int32, aw int32, ah int32, )
func (*XdgPositioner) XdgPositioner_set_constraint_adjustment ¶
func (x *XdgPositioner) XdgPositioner_set_constraint_adjustment( _ protocols.ClientState, _ protocols.ObjectID[protocols.XdgPositioner], adj protocols.XdgPositionerConstraintAdjustment_enum, )
func (*XdgPositioner) XdgPositioner_set_gravity ¶
func (x *XdgPositioner) XdgPositioner_set_gravity( _ protocols.ClientState, _ protocols.ObjectID[protocols.XdgPositioner], gravity protocols.XdgPositionerGravity_enum, )
func (*XdgPositioner) XdgPositioner_set_offset ¶
func (x *XdgPositioner) XdgPositioner_set_offset( _ protocols.ClientState, _ protocols.ObjectID[protocols.XdgPositioner], ox int32, oy int32, )
func (*XdgPositioner) XdgPositioner_set_parent_configure ¶
func (x *XdgPositioner) XdgPositioner_set_parent_configure( _ protocols.ClientState, _ protocols.ObjectID[protocols.XdgPositioner], serial uint32, )
func (*XdgPositioner) XdgPositioner_set_parent_size ¶
func (x *XdgPositioner) XdgPositioner_set_parent_size( _ protocols.ClientState, _ protocols.ObjectID[protocols.XdgPositioner], parentWidth int32, parentHeight int32, )
func (*XdgPositioner) XdgPositioner_set_reactive ¶
func (x *XdgPositioner) XdgPositioner_set_reactive( _ protocols.ClientState, _ protocols.ObjectID[protocols.XdgPositioner], )
func (*XdgPositioner) XdgPositioner_set_size ¶
func (x *XdgPositioner) XdgPositioner_set_size( _ protocols.ClientState, _ protocols.ObjectID[protocols.XdgPositioner], width int32, height int32, )
type XdgPositionerState ¶
type XdgPositionerState struct {
Width int32
Height int32
AnchorRect anchorRect
Anchor protocols.XdgPositionerAnchor_enum
Gravity protocols.XdgPositionerGravity_enum
ConstraintAdjustment protocols.XdgPositionerConstraintAdjustment_enum
Offset offset
Reactive bool
ParentSize Size
ParentConfigureSerial uint32
}
type XdgSurface ¶
type XdgSurface struct {
Version uint32
XdgSurfaceID protocols.ObjectID[protocols.XdgSurface]
OnConfigure map[uint32]chan uint32
LatestSerial uint32
WindowGeometry XdgWindowGeometry
}
func GetXdgSurfaceObject ¶
func GetXdgSurfaceObject(cs protocols.ClientState, id protocols.ObjectID[protocols.XdgSurface]) *XdgSurface
func (*XdgSurface) OnBind ¶
func (x *XdgSurface) OnBind( cs protocols.ClientState, _ protocols.AnyObjectID, _ string, newId_any protocols.AnyObjectID, version uint32, )
func (*XdgSurface) XdgSurface_ack_configure ¶
func (x *XdgSurface) XdgSurface_ack_configure( _ protocols.ClientState, _ protocols.ObjectID[protocols.XdgSurface], serial uint32, )
func (*XdgSurface) XdgSurface_destroy ¶
func (x *XdgSurface) XdgSurface_destroy( s protocols.ClientState, objectID protocols.ObjectID[protocols.XdgSurface], ) bool
func (*XdgSurface) XdgSurface_get_popup ¶
func (x *XdgSurface) XdgSurface_get_popup( s protocols.ClientState, xdgSurfaceObjectID protocols.ObjectID[protocols.XdgSurface], id protocols.ObjectID[protocols.XdgPopup], parent *protocols.ObjectID[protocols.XdgSurface], positionerID protocols.ObjectID[protocols.XdgPositioner], )
func (*XdgSurface) XdgSurface_get_toplevel ¶
func (x *XdgSurface) XdgSurface_get_toplevel( s protocols.ClientState, xdgSurfaceObjectID protocols.ObjectID[protocols.XdgSurface], id protocols.ObjectID[protocols.XdgToplevel], )
func (*XdgSurface) XdgSurface_set_window_geometry ¶
func (x *XdgSurface) XdgSurface_set_window_geometry( s protocols.ClientState, objectID protocols.ObjectID[protocols.XdgSurface], wx int32, wy int32, ww int32, wh int32, )
type XdgToplevel ¶
type XdgToplevel struct {
Parent *protocols.ObjectID[protocols.XdgToplevel]
Title *string
AppID string
Maximized bool
Fullscreen bool
MinSize *Size
MaxSize *Size
PendingState *PendingToplevelState
}
func GetXdgToplevelObject ¶
func GetXdgToplevelObject(cs protocols.ClientState, id protocols.ObjectID[protocols.XdgToplevel]) *XdgToplevel
func (*XdgToplevel) OnBind ¶
func (t *XdgToplevel) OnBind( cs protocols.ClientState, _ protocols.AnyObjectID, _ string, newId_any protocols.AnyObjectID, version uint32, )
func (*XdgToplevel) XdgToplevel_destroy ¶
func (t *XdgToplevel) XdgToplevel_destroy( s protocols.ClientState, objectID protocols.ObjectID[protocols.XdgToplevel], ) bool
func (*XdgToplevel) XdgToplevel_move ¶
func (t *XdgToplevel) XdgToplevel_move( _ protocols.ClientState, _ protocols.ObjectID[protocols.XdgToplevel], _ protocols.ObjectID[protocols.WlSeat], _ uint32, )
func (*XdgToplevel) XdgToplevel_resize ¶
func (t *XdgToplevel) XdgToplevel_resize( _ protocols.ClientState, _ protocols.ObjectID[protocols.XdgToplevel], _ protocols.ObjectID[protocols.WlSeat], _ uint32, _ protocols.XdgToplevelResizeEdge_enum, )
func (*XdgToplevel) XdgToplevel_set_app_id ¶
func (t *XdgToplevel) XdgToplevel_set_app_id( _ protocols.ClientState, _ protocols.ObjectID[protocols.XdgToplevel], appID string, )
func (*XdgToplevel) XdgToplevel_set_fullscreen ¶
func (t *XdgToplevel) XdgToplevel_set_fullscreen( s protocols.ClientState, objectID protocols.ObjectID[protocols.XdgToplevel], _ *protocols.ObjectID[protocols.WlOutput], )
func (*XdgToplevel) XdgToplevel_set_max_size ¶
func (t *XdgToplevel) XdgToplevel_set_max_size( _ protocols.ClientState, _ protocols.ObjectID[protocols.XdgToplevel], width int32, height int32, )
func (*XdgToplevel) XdgToplevel_set_maximized ¶
func (t *XdgToplevel) XdgToplevel_set_maximized( s protocols.ClientState, objectID protocols.ObjectID[protocols.XdgToplevel], )
func (*XdgToplevel) XdgToplevel_set_min_size ¶
func (t *XdgToplevel) XdgToplevel_set_min_size( _ protocols.ClientState, _ protocols.ObjectID[protocols.XdgToplevel], width int32, height int32, )
func (*XdgToplevel) XdgToplevel_set_minimized ¶
func (t *XdgToplevel) XdgToplevel_set_minimized( _ protocols.ClientState, _ protocols.ObjectID[protocols.XdgToplevel], )
func (*XdgToplevel) XdgToplevel_set_parent ¶
func (t *XdgToplevel) XdgToplevel_set_parent( _ protocols.ClientState, _ protocols.ObjectID[protocols.XdgToplevel], parent *protocols.ObjectID[protocols.XdgToplevel], )
func (*XdgToplevel) XdgToplevel_set_title ¶
func (t *XdgToplevel) XdgToplevel_set_title( _ protocols.ClientState, _ protocols.ObjectID[protocols.XdgToplevel], title string, )
func (*XdgToplevel) XdgToplevel_show_window_menu ¶
func (t *XdgToplevel) XdgToplevel_show_window_menu( _ protocols.ClientState, _ protocols.ObjectID[protocols.XdgToplevel], _ protocols.ObjectID[protocols.WlSeat], _ uint32, _ int32, _ int32, )
func (*XdgToplevel) XdgToplevel_unset_fullscreen ¶
func (t *XdgToplevel) XdgToplevel_unset_fullscreen( s protocols.ClientState, objectID protocols.ObjectID[protocols.XdgToplevel], )
func (*XdgToplevel) XdgToplevel_unset_maximized ¶
func (t *XdgToplevel) XdgToplevel_unset_maximized( s protocols.ClientState, objectID protocols.ObjectID[protocols.XdgToplevel], )
type XdgWmBase ¶
type XdgWmBase struct {
Version uint32
}
func (*XdgWmBase) OnBind ¶
func (x *XdgWmBase) OnBind( _ protocols.ClientState, _ protocols.AnyObjectID, _ string, _ protocols.AnyObjectID, version uint32, )
func (*XdgWmBase) XdgWmBase_create_positioner ¶
func (*XdgWmBase) XdgWmBase_destroy ¶
func (*XdgWmBase) XdgWmBase_get_xdg_surface ¶
func (*XdgWmBase) XdgWmBase_pong ¶
type XwaylandShellV1 ¶
type XwaylandShellV1 struct {
}
func (*XwaylandShellV1) OnBind ¶
func (x *XwaylandShellV1) OnBind( _s protocols.ClientState, _name protocols.AnyObjectID, _interface_ string, _new_id protocols.AnyObjectID, _version_number uint32, )
func (*XwaylandShellV1) XwaylandShellV1_destroy ¶
func (x *XwaylandShellV1) XwaylandShellV1_destroy( s protocols.ClientState, object_id protocols.ObjectID[protocols.XwaylandShellV1], ) bool
func (*XwaylandShellV1) XwaylandShellV1_get_xwayland_surface ¶
func (x *XwaylandShellV1) XwaylandShellV1_get_xwayland_surface( s protocols.ClientState, object_id protocols.ObjectID[protocols.XwaylandShellV1], id protocols.ObjectID[protocols.XwaylandSurfaceV1], surface_id protocols.ObjectID[protocols.WlSurface], )
type XwaylandSurfaceV1 ¶
type XwaylandSurfaceV1 struct {
}
func (*XwaylandSurfaceV1) OnBind ¶
func (x *XwaylandSurfaceV1) OnBind( cs protocols.ClientState, _ protocols.AnyObjectID, _ string, newId_any protocols.AnyObjectID, version uint32, )
func (*XwaylandSurfaceV1) XwaylandSurfaceV1_destroy ¶
func (x *XwaylandSurfaceV1) XwaylandSurfaceV1_destroy( s protocols.ClientState, object_id protocols.ObjectID[protocols.XwaylandSurfaceV1], ) bool
func (*XwaylandSurfaceV1) XwaylandSurfaceV1_on_bind ¶
func (x *XwaylandSurfaceV1) XwaylandSurfaceV1_on_bind( _s protocols.ClientState, _name protocols.AnyObjectID, _interface_ string, _new_id protocols.AnyObjectID, _version_number uint32, )
func (*XwaylandSurfaceV1) XwaylandSurfaceV1_set_serial ¶
func (x *XwaylandSurfaceV1) XwaylandSurfaceV1_set_serial( _s protocols.ClientState, _object_id protocols.ObjectID[protocols.XwaylandSurfaceV1], _serial_lo uint32, _serial_hi uint32, )
type ZOrderSubsurface ¶
type ZwpXwaylandKeyboardGrabManagerV1 ¶
type ZwpXwaylandKeyboardGrabManagerV1 struct {
}
func (*ZwpXwaylandKeyboardGrabManagerV1) OnBind ¶
func (m *ZwpXwaylandKeyboardGrabManagerV1) OnBind( _s protocols.ClientState, _name protocols.AnyObjectID, _interface_ string, _new_id protocols.AnyObjectID, _version_number uint32, )
func (*ZwpXwaylandKeyboardGrabManagerV1) ZwpXwaylandKeyboardGrabManagerV1_destroy ¶
func (m *ZwpXwaylandKeyboardGrabManagerV1) ZwpXwaylandKeyboardGrabManagerV1_destroy( s protocols.ClientState, object_id protocols.ObjectID[protocols.ZwpXwaylandKeyboardGrabManagerV1], ) bool
func (*ZwpXwaylandKeyboardGrabManagerV1) ZwpXwaylandKeyboardGrabManagerV1_grab_keyboard ¶
func (m *ZwpXwaylandKeyboardGrabManagerV1) ZwpXwaylandKeyboardGrabManagerV1_grab_keyboard( s protocols.ClientState, _object_id protocols.ObjectID[protocols.ZwpXwaylandKeyboardGrabManagerV1], id protocols.ObjectID[protocols.ZwpXwaylandKeyboardGrabV1], _surface protocols.ObjectID[protocols.WlSurface], _seat protocols.ObjectID[protocols.WlSeat], )
type ZwpXwaylandKeyboardGrabV1 ¶
type ZwpXwaylandKeyboardGrabV1 struct {
}
func (*ZwpXwaylandKeyboardGrabV1) OnBind ¶
func (g *ZwpXwaylandKeyboardGrabV1) OnBind( _ protocols.ClientState, _ protocols.AnyObjectID, _ string, _ protocols.AnyObjectID, _ uint32, )
func (*ZwpXwaylandKeyboardGrabV1) ZwpXwaylandKeyboardGrabV1_destroy ¶
func (g *ZwpXwaylandKeyboardGrabV1) ZwpXwaylandKeyboardGrabV1_destroy( _ protocols.ClientState, _ protocols.ObjectID[protocols.ZwpXwaylandKeyboardGrabV1], ) bool
type ZxdgDecorationManagerV1 ¶
type ZxdgDecorationManagerV1 struct{}
func (*ZxdgDecorationManagerV1) OnBind ¶
func (z *ZxdgDecorationManagerV1) OnBind( _ protocols.ClientState, _ protocols.AnyObjectID, _ string, _ protocols.AnyObjectID, _ uint32, )
func (*ZxdgDecorationManagerV1) ZxdgDecorationManagerV1_destroy ¶
func (z *ZxdgDecorationManagerV1) ZxdgDecorationManagerV1_destroy( s protocols.ClientState, object_id protocols.ObjectID[protocols.ZxdgDecorationManagerV1], ) bool
func (*ZxdgDecorationManagerV1) ZxdgDecorationManagerV1_get_toplevel_decoration ¶
func (z *ZxdgDecorationManagerV1) ZxdgDecorationManagerV1_get_toplevel_decoration( s protocols.ClientState, _ protocols.ObjectID[protocols.ZxdgDecorationManagerV1], decoration_id protocols.ObjectID[protocols.ZxdgToplevelDecorationV1], toplevel protocols.ObjectID[protocols.XdgToplevel], )
type ZxdgToplevelDecorationV1 ¶
type ZxdgToplevelDecorationV1 struct {
XdgToplevel protocols.ObjectID[protocols.XdgToplevel]
}
func (*ZxdgToplevelDecorationV1) OnBind ¶
func (z *ZxdgToplevelDecorationV1) OnBind( _ protocols.ClientState, _ protocols.AnyObjectID, _ string, _ protocols.AnyObjectID, _ uint32, )
func (*ZxdgToplevelDecorationV1) ZxdgToplevelDecorationV1_destroy ¶
func (z *ZxdgToplevelDecorationV1) ZxdgToplevelDecorationV1_destroy( _ protocols.ClientState, _ protocols.ObjectID[protocols.ZxdgToplevelDecorationV1], ) bool
func (*ZxdgToplevelDecorationV1) ZxdgToplevelDecorationV1_set_mode ¶
func (z *ZxdgToplevelDecorationV1) ZxdgToplevelDecorationV1_set_mode( s protocols.ClientState, _ protocols.ObjectID[protocols.ZxdgToplevelDecorationV1], _mode protocols.ZxdgToplevelDecorationV1Mode_enum, )
func (*ZxdgToplevelDecorationV1) ZxdgToplevelDecorationV1_unset_mode ¶
func (z *ZxdgToplevelDecorationV1) ZxdgToplevelDecorationV1_unset_mode( s protocols.ClientState, _ protocols.ObjectID[protocols.ZxdgToplevelDecorationV1], )
Source Files
¶
- ApplyWlSurfaceDoubleBufferedState.go
- Client.go
- ClientGlobal.go
- CopyBufferToWlSurfaceTexture.go
- Desktop.go
- GetMessageAnd_fileDescriptors.go
- Globals.go
- InputEvents.go
- ListenToWaylandSocket.go
- MemMap.go
- MessageDecoder.go
- SendMessageAndFileDescriptors.go
- SocketListener.go
- SurfaceRole.go
- SurfaceUpdate.go
- VirtualMonitorSize.go
- doc.go
- generate.go
- types.go
- wayland.xml.helper.go
- wl_compositor.go
- wl_data_device.go
- wl_data_device_manager.go
- wl_data_source.go
- wl_display.go
- wl_keyboard.go
- wl_output.go
- wl_pointer.go
- wl_region.go
- wl_registry.go
- wl_seat.go
- wl_shm.go
- wl_shm_pool.go
- wl_subcompositor.go
- wl_subsurface.go
- wl_surface.go
- wl_tough.go
- xdg-decoration-unstable-v1.xml.helper.go
- xdg-shell.xml.helper.go
- xdg_popup.go
- xdg_positioner.go
- xdg_surface.go
- xdg_toplevel.go
- xdg_wm_base.go
- xwayland-keyboard-grab-unstable-v1.xml.helper.go
- xwayland-shell-v1.xml.helper.go
- xwayland_shell_v1.go
- xwayland_surface_v1.go
- zwp_xwayland_keyboard_grab_manager_v1.go
- zwp_xwayland_keyboard_grab_v1.go
- zxdg_decoration_manager_v1.go
- zxdg_toplevel_decoration_v1.go