ewmh

package
v0.0.0-...-f294442 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 25, 2021 License: Unlicense Imports: 5 Imported by: 0

Documentation

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

View Source
const (
	OrientHorz = iota
	OrientVert
)

_NET_DESKTOP_LAYOUT constants for orientation

View Source
const (
	TopLeft = iota
	TopRight
	BottomRight
	BottomLeft
)

_NET_DESKTOP_LAYOUT constants for starting corner

View Source
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

View Source
const (
	StateRemove = iota
	StateAdd
	StateToggle
)

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

Variables

This section is empty.

Functions

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 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 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 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 WorkareaSet

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

_NET_WORKAREA set

Types

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.)

func DesktopViewportGet

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

_NET_DESKTOP_VIEWPORT get

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.

func WmIconGet

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

_NET_WM_ICON get

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.

func WmOpaqueRegionGet

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

_NET_WM_OPAQUE_REGION get

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.

func WorkareaGet

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

_NET_WORKAREA get

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL