Package ewmh

import "github.com/BurntSushi/xgbutil/ewmh"
Overview
Index

Overview ▾

Package ewmh provides a comprehensive API to get and set properties specified by the EWMH spec, as well as perform actions specified by the EWMH spec.

Since there are so many functions and they adhere to an existing spec, this package file does not contain much documentation. Indeed, each method has only a single comment associated with it: the EWMH property name.

The idea is to provide a consistent interface to use all facilities described in the EWMH spec: http://standards.freedesktop.org/wm-spec/wm-spec-latest.html.

Naming scheme

Using "_NET_ACTIVE_WINDOW" as an example, functions "ActiveWindowGet" and "ActiveWindowSet" get and set the property, respectively. Both of these functions exist for most EWMH properties. Additionally, some EWMH properties support sending a client message event to request the window manager to perform some action. In the case of "_NET_ACTIVE_WINDOW", this request is used to set the active window.

These sorts of functions end in "Req". So for "_NET_ACTIVE_WINDOW", the method name is "ActiveWindowReq". Moreover, most requests include various parameters that don't need to be changed often (like the source indication). Thus, by default, functions ending in "Req" force these to sensible defaults. If you need access to all of the parameters, use the corresponding "ReqExtra" method. So for "_NET_ACTIVE_WINDOW", that would be "ActiveWindowReqExtra". (If no "ReqExtra" method exists, then the "Req" method covers all available parameters.)

This naming scheme has one exception: if a property's only use is through sending an event (like "_NET_CLOSE_WINDOW"), then the name will be "CloseWindow" for the short-hand version and "CloseWindowExtra" for access to all of the parameters. (Since there is no "_NET_CLOSE_WINDOW" property, there is no need for "CloseWindowGet" and "CloseWindowSet" functions.)

For properties that store more than just a simple integer, name or list of integers, structs have been created and exposed to organize the information returned in a sensible manner. For example, the "_NET_DESKTOP_GEOMETRY" property would typically return a slice of integers of length 2, where the first integer is the width and the second is the height. Xgbutil will wrap this in a struct with the obvious members. These structs are documented.

Finally, functions ending in "*Set" are typically only used when setting properties on clients *you've* created or when the window manager sets properties. Thus, it's unlikely that you should use them unless you're creating a top-level client or building a window manager.

Functions ending in "Get" or "Req[Extra]" are commonly used.

N.B. Not all properties have "*Req" functions.

Index ▾

Constants
func ActiveWindowGet(xu *xgbutil.XUtil) (xproto.Window, error)
func ActiveWindowReq(xu *xgbutil.XUtil, win xproto.Window) error
func ActiveWindowReqExtra(xu *xgbutil.XUtil, win xproto.Window, source int, time xproto.Timestamp, currentActive xproto.Window) error
func ActiveWindowSet(xu *xgbutil.XUtil, win xproto.Window) error
func ClientEvent(xu *xgbutil.XUtil, window xproto.Window, messageType string, data ...interface{}) error
func ClientListGet(xu *xgbutil.XUtil) ([]xproto.Window, error)
func ClientListSet(xu *xgbutil.XUtil, wins []xproto.Window) error
func ClientListStackingGet(xu *xgbutil.XUtil) ([]xproto.Window, error)
func ClientListStackingSet(xu *xgbutil.XUtil, wins []xproto.Window) error
func CloseWindow(xu *xgbutil.XUtil, win xproto.Window) error
func CloseWindowExtra(xu *xgbutil.XUtil, win xproto.Window, time xproto.Timestamp, source int) error
func CurrentDesktopGet(xu *xgbutil.XUtil) (uint, error)
func CurrentDesktopReq(xu *xgbutil.XUtil, desk int) error
func CurrentDesktopReqExtra(xu *xgbutil.XUtil, desk int, time xproto.Timestamp) error
func CurrentDesktopSet(xu *xgbutil.XUtil, desk uint) error
func DesktopGeometryReq(xu *xgbutil.XUtil, dg *DesktopGeometry) error
func DesktopGeometrySet(xu *xgbutil.XUtil, dg *DesktopGeometry) error
func DesktopLayoutSet(xu *xgbutil.XUtil, orientation, columns, rows, startingCorner uint) error
func DesktopNamesGet(xu *xgbutil.XUtil) ([]string, error)
func DesktopNamesSet(xu *xgbutil.XUtil, names []string) error
func DesktopViewportGet(xu *xgbutil.XUtil) ([]DesktopViewport, error)
func DesktopViewportReq(xu *xgbutil.XUtil, x, y int) error
func DesktopViewportSet(xu *xgbutil.XUtil, viewports []DesktopViewport) error
func FrameExtentsSet(xu *xgbutil.XUtil, win xproto.Window, extents *FrameExtents) error
func GetEwmhWM(xu *xgbutil.XUtil) (string, error)
func MoveWindow(xu *xgbutil.XUtil, win xproto.Window, x, y int) error
func MoveresizeWindow(xu *xgbutil.XUtil, win xproto.Window, x, y, w, h int) error
func MoveresizeWindowExtra(xu *xgbutil.XUtil, win xproto.Window, x, y, w, h, gravity, source int, usex, usey bool) error
func NumberOfDesktopsGet(xu *xgbutil.XUtil) (uint, error)
func NumberOfDesktopsReq(xu *xgbutil.XUtil, numDesks int) error
func NumberOfDesktopsSet(xu *xgbutil.XUtil, numDesks uint) error
func RequestFrameExtents(xu *xgbutil.XUtil, win xproto.Window) error
func ResizeWindow(xu *xgbutil.XUtil, win xproto.Window, w, h int) error
func RestackWindow(xu *xgbutil.XUtil, win xproto.Window) error
func RestackWindowExtra(xu *xgbutil.XUtil, win xproto.Window, stackMode int, sibling xproto.Window, source int) error
func ShowingDesktopGet(xu *xgbutil.XUtil) (bool, error)
func ShowingDesktopReq(xu *xgbutil.XUtil, show bool) error
func ShowingDesktopSet(xu *xgbutil.XUtil, show bool) error
func SupportedGet(xu *xgbutil.XUtil) ([]string, error)
func SupportedSet(xu *xgbutil.XUtil, atomNames []string) error
func SupportingWmCheckGet(xu *xgbutil.XUtil, win xproto.Window) (xproto.Window, error)
func SupportingWmCheckSet(xu *xgbutil.XUtil, win xproto.Window, wmWin xproto.Window) error
func VirtualRootsGet(xu *xgbutil.XUtil) ([]xproto.Window, error)
func VirtualRootsSet(xu *xgbutil.XUtil, wins []xproto.Window) error
func VisibleDesktopsGet(xu *xgbutil.XUtil) ([]uint, error)
func VisibleDesktopsSet(xu *xgbutil.XUtil, desktops []uint) error
func WmAllowedActionsGet(xu *xgbutil.XUtil, win xproto.Window) ([]string, error)
func WmAllowedActionsSet(xu *xgbutil.XUtil, win xproto.Window, atomNames []string) error
func WmDesktopGet(xu *xgbutil.XUtil, win xproto.Window) (uint, error)
func WmDesktopReq(xu *xgbutil.XUtil, win xproto.Window, desk uint) error
func WmDesktopReqExtra(xu *xgbutil.XUtil, win xproto.Window, desk uint, source int) error
func WmDesktopSet(xu *xgbutil.XUtil, win xproto.Window, desk uint) error
func WmFullscreenMonitorsReq(xu *xgbutil.XUtil, win xproto.Window, edges *WmFullscreenMonitors) error
func WmFullscreenMonitorsReqExtra(xu *xgbutil.XUtil, win xproto.Window, edges *WmFullscreenMonitors, source int) error
func WmFullscreenMonitorsSet(xu *xgbutil.XUtil, win xproto.Window, edges *WmFullscreenMonitors) error
func WmHandledIconsGet(xu *xgbutil.XUtil, win xproto.Window) (bool, error)
func WmHandledIconsSet(xu *xgbutil.XUtil, handle bool) error
func WmIconGeometrySet(xu *xgbutil.XUtil, win xproto.Window, geom *WmIconGeometry) error
func WmIconGet(xu *xgbutil.XUtil, win xproto.Window) ([]WmIcon, error)
func WmIconNameGet(xu *xgbutil.XUtil, win xproto.Window) (string, error)
func WmIconNameSet(xu *xgbutil.XUtil, win xproto.Window, name string) error
func WmIconSet(xu *xgbutil.XUtil, win xproto.Window, icons []WmIcon) error
func WmMoveresize(xu *xgbutil.XUtil, win xproto.Window, direction int) error
func WmMoveresizeExtra(xu *xgbutil.XUtil, win xproto.Window, direction, xRoot, yRoot, button, source int) error
func WmNameGet(xu *xgbutil.XUtil, win xproto.Window) (string, error)
func WmNameSet(xu *xgbutil.XUtil, win xproto.Window, name string) error
func WmOpaqueRegionGet(xu *xgbutil.XUtil, win xproto.Window) ([]WmOpaqueRegion, error)
func WmOpaqueRegionSet(xu *xgbutil.XUtil, win xproto.Window, regions []WmOpaqueRegion) error
func WmPidGet(xu *xgbutil.XUtil, win xproto.Window) (uint, error)
func WmPidSet(xu *xgbutil.XUtil, win xproto.Window, pid uint) error
func WmPing(xu *xgbutil.XUtil, win xproto.Window, response bool) error
func WmPingExtra(xu *xgbutil.XUtil, win xproto.Window, response bool, time xproto.Timestamp) error
func WmStateGet(xu *xgbutil.XUtil, win xproto.Window) ([]string, error)
func WmStateReq(xu *xgbutil.XUtil, win xproto.Window, action int, atomName string) error
func WmStateReqExtra(xu *xgbutil.XUtil, win xproto.Window, action int, first string, second string, source int) (err error)
func WmStateSet(xu *xgbutil.XUtil, win xproto.Window, atomNames []string) error
func WmStrutPartialSet(xu *xgbutil.XUtil, win xproto.Window, struts *WmStrutPartial) error
func WmStrutSet(xu *xgbutil.XUtil, win xproto.Window, struts *WmStrut) error
func WmSyncRequest(xu *xgbutil.XUtil, win xproto.Window, req_num uint64) error
func WmSyncRequestCounter(xu *xgbutil.XUtil, win xproto.Window) (uint, error)
func WmSyncRequestCounterSet(xu *xgbutil.XUtil, win xproto.Window, counter uint) error
func WmSyncRequestExtra(xu *xgbutil.XUtil, win xproto.Window, reqNum uint64, time xproto.Timestamp) error
func WmUserTimeGet(xu *xgbutil.XUtil, win xproto.Window) (uint, error)
func WmUserTimeSet(xu *xgbutil.XUtil, win xproto.Window, userTime uint) error
func WmUserTimeWindowGet(xu *xgbutil.XUtil, win xproto.Window) (xproto.Window, error)
func WmUserTimeWindowSet(xu *xgbutil.XUtil, win xproto.Window, timeWin xproto.Window) error
func WmVisibleIconNameGet(xu *xgbutil.XUtil, win xproto.Window) (string, error)
func WmVisibleIconNameSet(xu *xgbutil.XUtil, win xproto.Window, name string) error
func WmVisibleNameGet(xu *xgbutil.XUtil, win xproto.Window) (string, error)
func WmVisibleNameSet(xu *xgbutil.XUtil, win xproto.Window, name string) error
func WmWindowOpacityGet(xu *xgbutil.XUtil, win xproto.Window) (float64, error)
func WmWindowOpacitySet(xu *xgbutil.XUtil, win xproto.Window, opacity float64) error
func WmWindowTypeGet(xu *xgbutil.XUtil, win xproto.Window) ([]string, error)
func WmWindowTypeSet(xu *xgbutil.XUtil, win xproto.Window, atomNames []string) error
func WorkareaGet(xu *xgbutil.XUtil) ([]Workarea, error)
func WorkareaSet(xu *xgbutil.XUtil, workareas []Workarea) error
type DesktopGeometry
    func DesktopGeometryGet(xu *xgbutil.XUtil) (*DesktopGeometry, error)
type DesktopLayout
    func DesktopLayoutGet(xu *xgbutil.XUtil) (dl *DesktopLayout, err error)
type DesktopViewport
type FrameExtents
    func FrameExtentsGet(xu *xgbutil.XUtil, win xproto.Window) (*FrameExtents, error)
type WmFullscreenMonitors
    func WmFullscreenMonitorsGet(xu *xgbutil.XUtil, win xproto.Window) (*WmFullscreenMonitors, error)
type WmIcon
type WmIconGeometry
    func WmIconGeometryGet(xu *xgbutil.XUtil, win xproto.Window) (*WmIconGeometry, error)
type WmOpaqueRegion
type WmStrut
    func WmStrutGet(xu *xgbutil.XUtil, win xproto.Window) (*WmStrut, error)
type WmStrutPartial
    func WmStrutPartialGet(xu *xgbutil.XUtil, win xproto.Window) (*WmStrutPartial, error)
type Workarea

Package files

doc.go ewmh.go winman.go

Constants

const (
    OrientHorz = iota
    OrientVert
)

_NET_DESKTOP_LAYOUT constants for orientation

const (
    TopLeft = iota
    TopRight
    BottomRight
    BottomLeft
)

_NET_DESKTOP_LAYOUT constants for starting corner

const (
    SizeTopLeft = iota
    SizeTop
    SizeTopRight
    SizeRight
    SizeBottomRight
    SizeBottom
    SizeBottomLeft
    SizeLeft
    Move
    SizeKeyboard
    MoveKeyboard
    Cancel
    Infer // special for Wingo. DO NOT USE.
)

_NET_WM_MOVERESIZE constants

const (
    StateRemove = iota
    StateAdd
    StateToggle
)

_NET_WM_STATE constants for state toggling These correspond to the "action" parameter.

func ActiveWindowGet

func ActiveWindowGet(xu *xgbutil.XUtil) (xproto.Window, error)

_NET_ACTIVE_WINDOW get

func ActiveWindowReq

func ActiveWindowReq(xu *xgbutil.XUtil, win xproto.Window) error

_NET_ACTIVE_WINDOW req

func ActiveWindowReqExtra

func ActiveWindowReqExtra(xu *xgbutil.XUtil, win xproto.Window, source int,
    time xproto.Timestamp, currentActive xproto.Window) error

_NET_ACTIVE_WINDOW req extra

func ActiveWindowSet

func ActiveWindowSet(xu *xgbutil.XUtil, win xproto.Window) error

_NET_ACTIVE_WINDOW set

func ClientEvent

func ClientEvent(xu *xgbutil.XUtil, window xproto.Window, messageType string,
    data ...interface{}) error

ClientEvent is a convenience function that sends ClientMessage events to the root window as specified by the EWMH spec.

func ClientListGet

func ClientListGet(xu *xgbutil.XUtil) ([]xproto.Window, error)

_NET_CLIENT_LIST get

func ClientListSet

func ClientListSet(xu *xgbutil.XUtil, wins []xproto.Window) error

_NET_CLIENT_LIST set

func ClientListStackingGet

func ClientListStackingGet(xu *xgbutil.XUtil) ([]xproto.Window, error)

_NET_CLIENT_LIST_STACKING get

func ClientListStackingSet

func ClientListStackingSet(xu *xgbutil.XUtil, wins []xproto.Window) error

_NET_CLIENT_LIST_STACKING set

func CloseWindow

func CloseWindow(xu *xgbutil.XUtil, win xproto.Window) error

_NET_CLOSE_WINDOW req

func CloseWindowExtra

func CloseWindowExtra(xu *xgbutil.XUtil, win xproto.Window,
    time xproto.Timestamp, source int) error

_NET_CLOSE_WINDOW req extra

func CurrentDesktopGet

func CurrentDesktopGet(xu *xgbutil.XUtil) (uint, error)

_NET_CURRENT_DESKTOP get

func CurrentDesktopReq

func CurrentDesktopReq(xu *xgbutil.XUtil, desk int) error

_NET_CURRENT_DESKTOP req

func CurrentDesktopReqExtra

func CurrentDesktopReqExtra(xu *xgbutil.XUtil, desk int,
    time xproto.Timestamp) error

_NET_CURRENT_DESKTOP req extra

func CurrentDesktopSet

func CurrentDesktopSet(xu *xgbutil.XUtil, desk uint) error

_NET_CURRENT_DESKTOP set

func DesktopGeometryReq

func DesktopGeometryReq(xu *xgbutil.XUtil, dg *DesktopGeometry) error

_NET_DESKTOP_GEOMETRY req

func DesktopGeometrySet

func DesktopGeometrySet(xu *xgbutil.XUtil, dg *DesktopGeometry) error

_NET_DESKTOP_GEOMETRY set

func DesktopLayoutSet

func DesktopLayoutSet(xu *xgbutil.XUtil, orientation, columns, rows,
    startingCorner uint) error

_NET_DESKTOP_LAYOUT set

func DesktopNamesGet

func DesktopNamesGet(xu *xgbutil.XUtil) ([]string, error)

_NET_DESKTOP_NAMES get

func DesktopNamesSet

func DesktopNamesSet(xu *xgbutil.XUtil, names []string) error

_NET_DESKTOP_NAMES set

func DesktopViewportGet

func DesktopViewportGet(xu *xgbutil.XUtil) ([]DesktopViewport, error)

_NET_DESKTOP_VIEWPORT get

func DesktopViewportReq

func DesktopViewportReq(xu *xgbutil.XUtil, x, y int) error

_NET_DESKTOP_VIEWPORT req

func DesktopViewportSet

func DesktopViewportSet(xu *xgbutil.XUtil, viewports []DesktopViewport) error

_NET_DESKTOP_VIEWPORT set

func FrameExtentsSet

func FrameExtentsSet(xu *xgbutil.XUtil, win xproto.Window,
    extents *FrameExtents) error

_NET_FRAME_EXTENTS set

func GetEwmhWM

func GetEwmhWM(xu *xgbutil.XUtil) (string, error)

GetEwmhWM uses the EWMH spec to find if a conforming window manager is currently running or not. If it is, then its name will be returned. Otherwise, an error will be returned explaining why one couldn't be found.

func MoveWindow

func MoveWindow(xu *xgbutil.XUtil, win xproto.Window, x, y int) error

_NET_MOVERESIZE_WINDOW req move only

func MoveresizeWindow

func MoveresizeWindow(xu *xgbutil.XUtil, win xproto.Window,
    x, y, w, h int) error

_NET_MOVERESIZE_WINDOW req If 'w' or 'h' are 0, then they are not sent. If you need to resize a window without moving it, use the ReqExtra variant, or Resize.

func MoveresizeWindowExtra

func MoveresizeWindowExtra(xu *xgbutil.XUtil, win xproto.Window, x, y, w, h,
    gravity, source int, usex, usey bool) error

_NET_MOVERESIZE_WINDOW req extra If 'w' or 'h' are 0, then they are not sent. To not set 'x' or 'y', 'usex' or 'usey' need to be set to false.

func NumberOfDesktopsGet

func NumberOfDesktopsGet(xu *xgbutil.XUtil) (uint, error)

_NET_NUMBER_OF_DESKTOPS get

func NumberOfDesktopsReq

func NumberOfDesktopsReq(xu *xgbutil.XUtil, numDesks int) error

_NET_NUMBER_OF_DESKTOPS req

func NumberOfDesktopsSet

func NumberOfDesktopsSet(xu *xgbutil.XUtil, numDesks uint) error

_NET_NUMBER_OF_DESKTOPS set

func RequestFrameExtents

func RequestFrameExtents(xu *xgbutil.XUtil, win xproto.Window) error

_NET_REQUEST_FRAME_EXTENTS req

func ResizeWindow

func ResizeWindow(xu *xgbutil.XUtil, win xproto.Window, w, h int) error

_NET_MOVERESIZE_WINDOW req resize only

func RestackWindow

func RestackWindow(xu *xgbutil.XUtil, win xproto.Window) error

_NET_RESTACK_WINDOW req The shortcut here is to just raise the window to the top of the window stack.

func RestackWindowExtra

func RestackWindowExtra(xu *xgbutil.XUtil, win xproto.Window, stackMode int,
    sibling xproto.Window, source int) error

_NET_RESTACK_WINDOW req extra

func ShowingDesktopGet

func ShowingDesktopGet(xu *xgbutil.XUtil) (bool, error)

_NET_SHOWING_DESKTOP get

func ShowingDesktopReq

func ShowingDesktopReq(xu *xgbutil.XUtil, show bool) error

_NET_SHOWING_DESKTOP req

func ShowingDesktopSet

func ShowingDesktopSet(xu *xgbutil.XUtil, show bool) error

_NET_SHOWING_DESKTOP set

func SupportedGet

func SupportedGet(xu *xgbutil.XUtil) ([]string, error)

_NET_SUPPORTED get

func SupportedSet

func SupportedSet(xu *xgbutil.XUtil, atomNames []string) error

_NET_SUPPORTED set This will create any atoms in the argument if they don't already exist.

func SupportingWmCheckGet

func SupportingWmCheckGet(xu *xgbutil.XUtil,
    win xproto.Window) (xproto.Window, error)

_NET_SUPPORTING_WM_CHECK get

func SupportingWmCheckSet

func SupportingWmCheckSet(xu *xgbutil.XUtil, win xproto.Window,
    wmWin xproto.Window) error

_NET_SUPPORTING_WM_CHECK set

func VirtualRootsGet

func VirtualRootsGet(xu *xgbutil.XUtil) ([]xproto.Window, error)

_NET_VIRTUAL_ROOTS get

func VirtualRootsSet

func VirtualRootsSet(xu *xgbutil.XUtil, wins []xproto.Window) error

_NET_VIRTUAL_ROOTS set

func VisibleDesktopsGet

func VisibleDesktopsGet(xu *xgbutil.XUtil) ([]uint, error)

_NET_VISIBLE_DESKTOPS get This is not part of the EWMH spec, but is a property of my own creation. It allows the window manager to report that it has multiple desktops viewable at the same time. (This conflicts with other EWMH properties, so I don't think this will ever be added to the official spec.)

func VisibleDesktopsSet

func VisibleDesktopsSet(xu *xgbutil.XUtil, desktops []uint) error

_NET_VISIBLE_DESKTOPS set

func WmAllowedActionsGet

func WmAllowedActionsGet(xu *xgbutil.XUtil,
    win xproto.Window) ([]string, error)

_NET_WM_ALLOWED_ACTIONS get

func WmAllowedActionsSet

func WmAllowedActionsSet(xu *xgbutil.XUtil, win xproto.Window,
    atomNames []string) error

_NET_WM_ALLOWED_ACTIONS set

func WmDesktopGet

func WmDesktopGet(xu *xgbutil.XUtil, win xproto.Window) (uint, error)

_NET_WM_DESKTOP get

func WmDesktopReq

func WmDesktopReq(xu *xgbutil.XUtil, win xproto.Window, desk uint) error

_NET_WM_DESKTOP req

func WmDesktopReqExtra

func WmDesktopReqExtra(xu *xgbutil.XUtil, win xproto.Window, desk uint,
    source int) error

_NET_WM_DESKTOP req extra

func WmDesktopSet

func WmDesktopSet(xu *xgbutil.XUtil, win xproto.Window, desk uint) error

_NET_WM_DESKTOP set

func WmFullscreenMonitorsReq

func WmFullscreenMonitorsReq(xu *xgbutil.XUtil, win xproto.Window,
    edges *WmFullscreenMonitors) error

_NET_WM_FULLSCREEN_MONITORS req

func WmFullscreenMonitorsReqExtra

func WmFullscreenMonitorsReqExtra(xu *xgbutil.XUtil, win xproto.Window,
    edges *WmFullscreenMonitors, source int) error

_NET_WM_FULLSCREEN_MONITORS req extra

func WmFullscreenMonitorsSet

func WmFullscreenMonitorsSet(xu *xgbutil.XUtil, win xproto.Window,
    edges *WmFullscreenMonitors) error

_NET_WM_FULLSCREEN_MONITORS set

func WmHandledIconsGet

func WmHandledIconsGet(xu *xgbutil.XUtil, win xproto.Window) (bool, error)

_NET_WM_HANDLED_ICONS get

func WmHandledIconsSet

func WmHandledIconsSet(xu *xgbutil.XUtil, handle bool) error

_NET_WM_HANDLED_ICONS set

func WmIconGeometrySet

func WmIconGeometrySet(xu *xgbutil.XUtil, win xproto.Window,
    geom *WmIconGeometry) error

_NET_WM_ICON_GEOMETRY set

func WmIconGet

func WmIconGet(xu *xgbutil.XUtil, win xproto.Window) ([]WmIcon, error)

_NET_WM_ICON get

func WmIconNameGet

func WmIconNameGet(xu *xgbutil.XUtil, win xproto.Window) (string, error)

_NET_WM_ICON_NAME get

func WmIconNameSet

func WmIconNameSet(xu *xgbutil.XUtil, win xproto.Window, name string) error

_NET_WM_ICON_NAME set

func WmIconSet

func WmIconSet(xu *xgbutil.XUtil, win xproto.Window, icons []WmIcon) error

_NET_WM_ICON set

func WmMoveresize

func WmMoveresize(xu *xgbutil.XUtil, win xproto.Window, direction int) error

_NET_WM_MOVERESIZE req

func WmMoveresizeExtra

func WmMoveresizeExtra(xu *xgbutil.XUtil, win xproto.Window, direction,
    xRoot, yRoot, button, source int) error

_NET_WM_MOVERESIZE req extra

func WmNameGet

func WmNameGet(xu *xgbutil.XUtil, win xproto.Window) (string, error)

_NET_WM_NAME get

func WmNameSet

func WmNameSet(xu *xgbutil.XUtil, win xproto.Window, name string) error

_NET_WM_NAME set

func WmOpaqueRegionGet

func WmOpaqueRegionGet(xu *xgbutil.XUtil,
    win xproto.Window) ([]WmOpaqueRegion, error)

_NET_WM_OPAQUE_REGION get

func WmOpaqueRegionSet

func WmOpaqueRegionSet(xu *xgbutil.XUtil, win xproto.Window,
    regions []WmOpaqueRegion) error

_NET_WM_OPAQUE_REGION set

func WmPidGet

func WmPidGet(xu *xgbutil.XUtil, win xproto.Window) (uint, error)

_NET_WM_PID get

func WmPidSet

func WmPidSet(xu *xgbutil.XUtil, win xproto.Window, pid uint) error

_NET_WM_PID set

func WmPing

func WmPing(xu *xgbutil.XUtil, win xproto.Window, response bool) error

_NET_WM_PING req

func WmPingExtra

func WmPingExtra(xu *xgbutil.XUtil, win xproto.Window, response bool,
    time xproto.Timestamp) error

_NET_WM_PING req extra

func WmStateGet

func WmStateGet(xu *xgbutil.XUtil, win xproto.Window) ([]string, error)

_NET_WM_STATE get

func WmStateReq

func WmStateReq(xu *xgbutil.XUtil, win xproto.Window, action int,
    atomName string) error

_NET_WM_STATE req

func WmStateReqExtra

func WmStateReqExtra(xu *xgbutil.XUtil, win xproto.Window, action int,
    first string, second string, source int) (err error)

_NET_WM_STATE req extra

func WmStateSet

func WmStateSet(xu *xgbutil.XUtil, win xproto.Window,
    atomNames []string) error

_NET_WM_STATE set

func WmStrutPartialSet

func WmStrutPartialSet(xu *xgbutil.XUtil, win xproto.Window,
    struts *WmStrutPartial) error

_NET_WM_STRUT_PARTIAL set

func WmStrutSet

func WmStrutSet(xu *xgbutil.XUtil, win xproto.Window, struts *WmStrut) error

_NET_WM_STRUT set

func WmSyncRequest

func WmSyncRequest(xu *xgbutil.XUtil, win xproto.Window, req_num uint64) error

_NET_WM_SYNC_REQUEST req

func WmSyncRequestCounter

func WmSyncRequestCounter(xu *xgbutil.XUtil, win xproto.Window) (uint, error)

_NET_WM_SYNC_REQUEST_COUNTER get I'm pretty sure this needs 64 bit integers, but I'm not quite sure how to go about that yet. Any ideas?

func WmSyncRequestCounterSet

func WmSyncRequestCounterSet(xu *xgbutil.XUtil, win xproto.Window,
    counter uint) error

_NET_WM_SYNC_REQUEST_COUNTER set I'm pretty sure this needs 64 bit integers, but I'm not quite sure how to go about that yet. Any ideas?

func WmSyncRequestExtra

func WmSyncRequestExtra(xu *xgbutil.XUtil, win xproto.Window, reqNum uint64,
    time xproto.Timestamp) error

_NET_WM_SYNC_REQUEST req extra

func WmUserTimeGet

func WmUserTimeGet(xu *xgbutil.XUtil, win xproto.Window) (uint, error)

_NET_WM_USER_TIME get

func WmUserTimeSet

func WmUserTimeSet(xu *xgbutil.XUtil, win xproto.Window, userTime uint) error

_NET_WM_USER_TIME set

func WmUserTimeWindowGet

func WmUserTimeWindowGet(xu *xgbutil.XUtil,
    win xproto.Window) (xproto.Window, error)

_NET_WM_USER_TIME_WINDOW get

func WmUserTimeWindowSet

func WmUserTimeWindowSet(xu *xgbutil.XUtil, win xproto.Window,
    timeWin xproto.Window) error

_NET_WM_USER_TIME set

func WmVisibleIconNameGet

func WmVisibleIconNameGet(xu *xgbutil.XUtil,
    win xproto.Window) (string, error)

_NET_WM_VISIBLE_ICON_NAME get

func WmVisibleIconNameSet

func WmVisibleIconNameSet(xu *xgbutil.XUtil, win xproto.Window,
    name string) error

_NET_WM_VISIBLE_ICON_NAME set

func WmVisibleNameGet

func WmVisibleNameGet(xu *xgbutil.XUtil, win xproto.Window) (string, error)

_NET_WM_VISIBLE_NAME get

func WmVisibleNameSet

func WmVisibleNameSet(xu *xgbutil.XUtil, win xproto.Window, name string) error

_NET_WM_VISIBLE_NAME set

func WmWindowOpacityGet

func WmWindowOpacityGet(xu *xgbutil.XUtil, win xproto.Window) (float64, error)

_NET_WM_WINDOW_OPACITY get This isn't part of the EWMH spec, but is widely used by drop in compositing managers (i.e., xcompmgr, cairo-compmgr, etc.). This property is typically set not on a client window, but the *parent* of a client window in reparenting window managers. The float returned will be in the range [0.0, 1.0] where 0.0 is completely transparent and 1.0 is completely opaque.

func WmWindowOpacitySet

func WmWindowOpacitySet(xu *xgbutil.XUtil, win xproto.Window,
    opacity float64) error

_NET_WM_WINDOW_OPACITY set

func WmWindowTypeGet

func WmWindowTypeGet(xu *xgbutil.XUtil, win xproto.Window) ([]string, error)

_NET_WM_WINDOW_TYPE get

func WmWindowTypeSet

func WmWindowTypeSet(xu *xgbutil.XUtil, win xproto.Window,
    atomNames []string) error

_NET_WM_WINDOW_TYPE set This will create any atoms used in 'atomNames' if they don't already exist.

func WorkareaGet

func WorkareaGet(xu *xgbutil.XUtil) ([]Workarea, error)

_NET_WORKAREA get

func WorkareaSet

func WorkareaSet(xu *xgbutil.XUtil, workareas []Workarea) error

_NET_WORKAREA set

type DesktopGeometry

type DesktopGeometry struct {
    Width  int
    Height int
}

DesktopGeometry is a struct that houses the width and height of a _NET_DESKTOP_GEOMETRY property reply.

func DesktopGeometryGet

func DesktopGeometryGet(xu *xgbutil.XUtil) (*DesktopGeometry, error)

_NET_DESKTOP_GEOMETRY get

type DesktopLayout

type DesktopLayout struct {
    Orientation    int
    Columns        int
    Rows           int
    StartingCorner int
}

DesktopLayout is a struct that organizes information pertaining to the _NET_DESKTOP_LAYOUT property. Namely, the orientation, the number of columns, the number of rows, and the starting corner.

func DesktopLayoutGet

func DesktopLayoutGet(xu *xgbutil.XUtil) (dl *DesktopLayout, err error)

_NET_DESKTOP_LAYOUT get

type DesktopViewport

type DesktopViewport struct {
    X int
    Y int
}

DesktopViewport is a struct that contains a pairing of x,y coordinates representing the top-left corner of each desktop. (There will typically be one struct here for each desktop in existence.)

type FrameExtents

type FrameExtents struct {
    Left   int
    Right  int
    Top    int
    Bottom int
}

FrameExtents is a struct that organizes information associated with the _NET_FRAME_EXTENTS property. Namely, the left, right, top and bottom decoration sizes.

func FrameExtentsGet

func FrameExtentsGet(xu *xgbutil.XUtil,
    win xproto.Window) (*FrameExtents, error)

_NET_FRAME_EXTENTS get

type WmFullscreenMonitors

type WmFullscreenMonitors struct {
    Top    uint
    Bottom uint
    Left   uint
    Right  uint
}

WmFullscreenMonitors is a struct that organizes information related to the _NET_WM_FULLSCREEN_MONITORS property. Namely, the top, bottom, left and right monitor edges for a particular window.

func WmFullscreenMonitorsGet

func WmFullscreenMonitorsGet(xu *xgbutil.XUtil,
    win xproto.Window) (*WmFullscreenMonitors, error)

_NET_WM_FULLSCREEN_MONITORS get

type WmIcon

type WmIcon struct {
    Width  uint
    Height uint
    Data   []uint
}

WmIcon is a struct that contains data for a single icon. The WmIcon method will return a list of these, since a single client can specify multiple icons of varying sizes.

type WmIconGeometry

type WmIconGeometry struct {
    X      int
    Y      int
    Width  uint
    Height uint
}

WmIconGeometry struct organizes the information pertaining to the _NET_WM_ICON_GEOMETRY property. Namely, x, y, width and height.

func WmIconGeometryGet

func WmIconGeometryGet(xu *xgbutil.XUtil,
    win xproto.Window) (*WmIconGeometry, error)

_NET_WM_ICON_GEOMETRY get

type WmOpaqueRegion

type WmOpaqueRegion struct {
    X      int
    Y      int
    Width  uint
    Height uint
}

WmOpaqueRegion organizes information related to the _NET_WM_OPAQUE_REGION property. Namely, the x, y, width and height of an opaque rectangle relative to the client window.

type WmStrut

type WmStrut struct {
    Left   uint
    Right  uint
    Top    uint
    Bottom uint
}

WmStrut struct organizes information for the _NET_WM_STRUT property. Namely, it encapsulates its four values: left, right, top and bottom.

func WmStrutGet

func WmStrutGet(xu *xgbutil.XUtil, win xproto.Window) (*WmStrut, error)

_NET_WM_STRUT get

type WmStrutPartial

type WmStrutPartial struct {
    Left, Right, Top, Bottom                     uint
    LeftStartY, LeftEndY, RightStartY, RightEndY uint
    TopStartX, TopEndX, BottomStartX, BottomEndX uint
}

WmStrutPartial struct organizes information for the _NET_WM_STRUT_PARTIAL property. Namely, it encapsulates its twelve values: left, right, top, bottom, left_start_y, left_end_y, right_start_y, right_end_y, top_start_x, top_end_x, bottom_start_x, and bottom_end_x.

func WmStrutPartialGet

func WmStrutPartialGet(xu *xgbutil.XUtil,
    win xproto.Window) (*WmStrutPartial, error)

_NET_WM_STRUT_PARTIAL get

type Workarea

type Workarea struct {
    X      int
    Y      int
    Width  uint
    Height uint
}

Workarea is a struct that represents a rectangle as a bounding box of a single desktop. So there should be as many Workarea structs as there are desktops.