class WingoCommands
def __init__( | self) |
def AddWorkspace( | self, Name) |
Adds a new workspace to Wingo with a name Name. Note that a workspace name must be unique with respect to other workspaces and must have non-zero length.
The name of the workspace that was added is returned.
def And( | self, Op1, Op2) |
Returns the logical AND of Op1 and Op2.
If Op1 or Op2 is not in {0, 1}, then a warning is logged and nil is returned.
def AutoCycle( | self, Workspace) |
Cycles to the next automatic tiling layout in the workspace specified by Workspace.
Note that this command has no effect if the workspace is not visible.
Workspace may be a workspace index (integer) starting at 0, or a workspace name.
def AutoMakeMaster( | self, Workspace) |
Switches the current window with the first master in the layout for the workspace specified by Workspace.
Note that this command has no effect if the workspace is not visible.
Workspace may be a workspace index (integer) starting at 0, or a workspace name.
def AutoMaster( | self, Workspace) |
Focuses the (first) master window in the layout for the workspace specified by Workspace.
Note that this command has no effect if the workspace is not visible.
Workspace may be a workspace index (integer) starting at 0, or a workspace name.
def AutoMastersFewer( | self, Workspace) |
Allows one fewer master window to fit into the master split.
Workspace may be a workspace index (integer) starting at 0, or a workspace name.
def AutoMastersMore( | self, Workspace) |
Allows one more master window to fit into the master split.
Workspace may be a workspace index (integer) starting at 0, or a workspace name.
def AutoNext( | self, Workspace) |
Moves focus to the next client in the layout.
Note that this command has no effect if the workspace is not visible.
Workspace may be a workspace index (integer) starting at 0, or a workspace name.
def AutoPrev( | self, Workspace) |
Moves focus to the next client in the layout.
Note that this command has no effect if the workspace is not visible.
Workspace may be a workspace index (integer) starting at 0, or a workspace name.
def AutoResizeMaster( | self, Workspace, Amount) |
Increases or decreases the size of the master split by Amount in the layout on the workspace specified by Workspace.
Amount should be a ratio between 0.0 and 1.0.
Workspace may be a workspace index (integer) starting at 0, or a workspace name.
def AutoResizeWindow( | self, Workspace, Amount) |
Increases or decreases the size of the current window by Amount in the layout on the workspace specified by Workspace.
Amount should be a ratio between 0.0 and 1.0.
Workspace may be a workspace index (integer) starting at 0, or a workspace name.
def AutoSwitchNext( | self, Workspace) |
Switches the current window with the next window in the layout.
Note that this command has no effect if the workspace is not visible.
Workspace may be a workspace index (integer) starting at 0, or a workspace name.
def AutoSwitchPrev( | self, Workspace) |
Switches the current window with the previous window in the layout.
Note that this command has no effect if the workspace is not visible.
Workspace may be a workspace index (integer) starting at 0, or a workspace name.
def AutoTile( | self, Workspace) |
Initiates automatic tiling on the workspace specified by Workspace. If tiling is already active, the layout will be re-placed.
Note that this command has no effect if the workspace is not visible.
Workspace may be a workspace index (integer) starting at 0, or a workspace name.
def AutoUntile( | self, Workspace) |
Stops automatic tiling on the workspace specified by Workspace, and restores windows to their position and geometry before being tiled. If tiling is not active on the specified workspace, this command has no effect.
Note that this command has no effect if the workspace is not visible.
Workspace may be a workspace index (integer) starting at 0, or a workspace name.
def Close( | self, Client) |
Closes the window specified by Client.
Client may be the window id or a substring that matches a window name.
def CycleClientChoose( | self) |
Activates the current choice in a cycle prompt.
def CycleClientHide( | self) |
Hides (i.e., cancels) the current cycle prompt.
def CycleClientNext( | self, OnlyActiveWorkspace, OnlyVisible, ShowIconified) |
Shows the cycle prompt for clients and advances the selection to the next client. If the cycle prompt is already visible, then the selection is advanced to the next client.
OnlyActiveWorkspace specifies that only clients on the current workspace should be listed. Valid values are "yes" or "no".
OnlyVisible specifies that only clients on visible workspaces should be listed. Valid values are "yes" or "no".
ShowIconified specifies that iconified clients will be shown. Valid values are "yes" or "no".
def CycleClientPrev( | self, OnlyActiveWorkspace, OnlyVisible, ShowIconified) |
Shows the cycle prompt for clients and advances the selection to the previous client. If the cycle prompt is already visible, then the selection is advanced to the previous client.
OnlyActiveWorkspace specifies that only clients on the current workspace should be listed. Valid values are "yes" or "no".
OnlyVisible specifies that only clients on visible workspaces should be listed. Valid values are "yes" or "no".
ShowIconified specifies that iconified clients will be shown. Valid values are "yes" or "no".
def Dale( | self) |
Make sure "audio_play_cmd" is set to a program that can play wav files.
def Deiconify( | self, Client) |
Deiconifies (unminimizes) the window specified by Client. If the window is already deiconified, this command has no effect.
Client may be the window id or a substring that matches a window name.
def False( | self) |
Always returns 0.
def Float( | self, Client) |
Floats the window specified by Client. If the window is already floating, this command has no effect.
Client may be the window id or a substring that matches a window name.
def Focus( | self, Client) |
Focuses the window specified by Client.
Client may be the window id or a substring that matches a window name.
def FocusRaise( | self, Client) |
Focuses and raises the window specified by Client.
Client may be the window id or a substring that matches a window name.
def FrameBorders( | self, Client) |
Set the decorations of the window specified by Client to the "Borders" frame.
Client may be the window id or a substring that matches a window name.
def FrameFull( | self, Client) |
Set the decorations of the window specified by Client to the "Full" frame.
Client may be the window id or a substring that matches a window name.
def FrameNada( | self, Client) |
Set the decorations of the window specified by Client to the "Nada" frame.
Client may be the window id or a substring that matches a window name.
def FrameSlim( | self, Client) |
Set the decorations of the window specified by Client to the "Slim" frame.
Client may be the window id or a substring that matches a window name.
def GetActive( | self) |
Returns the id of the currently active window. If there is no active window, 0 is returned.
def GetAllClients( | self) |
Returns a list of all client ids separated by new lines. Clients are listed in the order in which they were managed, starting with the oldest client.
def GetClientHeight( | self, Client) |
Returns the height of the window specified by Client, including decorations. If the client id is invalid, 0 is returned.
Client may be the window id or a substring that matches a window name.
def GetClientList( | self, Workspace) |
Returns a list of client ids separated by new lines on the workspace specified by Workspace. Clients are listed in their focus orderering, from most recently focused to least recently focused.
Workspace may be a workspace index (integer) starting at 0, or a workspace name.
def GetClientName( | self, Client) |
Returns the name of the window specified by Client active window.
Client may be the window id or a substring that matches a window name.
def GetClientStatesList( | self, Client) |
Returns a list of states that the client is in. These states are in correspondence with the possible values of the _NET_WM_STATE property. The following states may appear in the list: STICKY, MAXIMIZED_VERT, MAXIMIZED_HORZ, SKIP_TASKBAR, SKIP_PAGER, HIDDEN, FULLSCREEN, ABOVE, BELOW, DEMANDS_ATTENTION and FOCUSED.
More details can be found here: http://goo.gl/FHdjl
Client may be the window id or a substring that matches a window name.
def GetClientType( | self, Client) |
Returns the type of the window specified by Client active window. A window type will either be "desktop", "dock" or "normal".
Client may be the window id or a substring that matches a window name.
def GetClientWidth( | self, Client) |
Returns the width of the window specified by Client, including decorations. If the client id is invalid, 0 is returned.
Client may be the window id or a substring that matches a window name.
def GetClientWorkspace( | self, Client) |
Returns the workspace of the window specified by Client active window.
Client may be the window id or a substring that matches a window name.
def GetClientX( | self, Client) |
Returns the relative X position of the window specified by Client, where the X position refers to the left-most region of the window, including decorations. Note that "relative" in this case refers to the workspace that the client is on.
Relative positions can be used as arguments to MoveRelative.
If the client id is invalid, or the client is not visible, -9999 is returned.
Client may be the window id or a substring that matches a window name.
def GetClientY( | self, Client) |
Returns the relative Y position of the window specified by Client, where the Y position refers to the left-most region of the window, including decorations. Note that "relative" in this case refers to the workspace that the client is on.
Relative positions can be used as arguments to MoveRelative.
If the client id is invalid, or the client is not visible, -9999 is returned.
Client may be the window id or a substring that matches a window name.
def GetHead( | self) |
Returns the index of the current head. Indexing starts at 0. Heads are ordered by their physical position: left to right and then top to bottom.
def GetHeadHeight( | self, Head) |
Gets the workable height of the head indexed at Head. If the head specified is not visible, then 0 is returned.
Indexing starts at 0. Heads are ordered by their physical position: left to right and then top to bottom.
def GetHeadWidth( | self, Head) |
Gets the workable width of the head indexed at Head. If the head specified is not visible, then 0 is returned.
Indexing starts at 0. Heads are ordered by their physical position: left to right and then top to bottom.
def GetHeadWorkspace( | self, Head) |
Returns the name of the workspace currently visible on the monitor indexed by Head. Indexing starts at 0. Heads are ordered by their physical position: left to right and then top to bottom.
def GetLayout( | self, Workspace) |
Returns the name of the currently active (or "default") layout on the workspace specified by Workspace. Note that when a workspace is set to a tiling layout, it is still possible for clients to be floating.
Workspace may be a workspace index (integer) starting at 0, or a workspace name.
def GetNumHeads( | self) |
Returns the number of active Heads.
def GetNumHeadsConnected( | self) |
Returns the number of Heads connected. This number may be greater than the number returned by GetNumHeads.
def GetWorkspace( | self) |
Returns the name of the current workspace.
def GetWorkspaceId( | self, Workspace) |
Returns the id (the index) of the workspace specified by Workspace.
Workspace may be a workspace index (integer) starting at 0, or a workspace name.
def GetWorkspaceList( | self) |
Returns a list of all workspaces, in the order that they were added.
The special "Sticky" workspace is not included.
def GetWorkspaceNext( | self) |
Returns the name of the "next" workspace. The ordering of workspaces is the order in which they were added. This might cause confusing behavior in multi-head setups, since multiple workspaces can be viewable at one time.
def GetWorkspacePrefix( | self, Prefix) |
Returns the first non-visible workspace starting with Prefix. If the current workspace starts with Prefix, then the first workspace after the current workspace starting with Prefix will be returned.
def GetWorkspacePrev( | self) |
Returns the name of the "previous" workspace. The ordering of workspaces is the order in which they were added. This might cause confusing behavior in multi-head setups, since multiple workspaces can be viewable at one time.
def HeadCycle( | self) |
Cycles focus to the next head, ordered by index. Heads are ordered by their physical position: left to right and then top to bottom.
def HeadFocus( | self, Head) |
Focuses the head indexed at Head. Indexing starts at 0. Heads are ordered by their physical position: left to right and then top to bottom.
def HeadFocusWithClient( | self, Head, Client) |
Focuses the head indexed at Head, and move the Client specified by client to that head. Indexing of heads starts at 0. Heads are ordered by their physical position: left to right and then top to bottom.
Client may be the window id or a substring that matches a window name.
def HideClientFromPanels( | self, Client) |
Sets the appropriate flags so that the window specified by Client is hidden from panels and pagers.
Client may be the window id or a substring that matches a window name.
def Iconify( | self, Client) |
Iconifies (minimizes) the window specified by Client. If the window is already iconified, this command has no effect.
Client may be the window id or a substring that matches a window name.
def Input( | self, Label) |
Shows a centered prompt window that allows the user to type in text. If the user presses the Confirm Key (i.e., enter), then the text typed into the input box will be returned.
Label will be shown next to the input box.
This command may be used as a sub-command to pass user provided arguments to another command.
def MatchClientClass( | self, Client, Class) |
Returns 1 if the "class" part of the WM_CLASS property on the window specified by Client contains the substring specified by Class, and otherwise returns 0. The search is done case insensitively.
Client may be the window id or a substring that matches a window name.
def MatchClientInstance( | self, Client, Instance) |
Returns 1 if the "instance" part of the WM_CLASS property on the window specified by Client contains the substring specified by Instance, and otherwise returns 0. The search is done case insensitively.
Client may be the window id or a substring that matches a window name.
def MatchClientIsTransient( | self, Client) |
Returns 1 if the window specified by Client is a transient window, and otherwise returns 0. A transient window usually corresponds to some kind of dialog window.
Client may be the window id or a substring that matches a window name.
def MatchClientMapped( | self, Client) |
Returns 1 if the window specified by Client is mapped or not.
Client may be the window id or a substring that matches a window name.
def MatchClientName( | self, Client, Name) |
Returns 1 if the name of the window specified by Client contains the substring specified by Name, and otherwise returns 0. The search is done case insensitively.
Client may be the window id or a substring that matches a window name.
def MatchClientType( | self, Client, Type) |
Returns 1 if the type of the window specified by Client matches the type named by Type, and otherwise returns 0.
Valid window types are "Normal", "Dock" or "Desktop".
Client may be the window id or a substring that matches a window name.
def Maximize( | self, Client) |
Maximizes the window specified by Client. If the window is already maximized, this command has no effect.
Client may be the window id or a substring that matches a window name.
def Message( | self, Text) |
Shows a centered prompt window with the text specified by Text. The message will not disappear until it loses focus or when the confirm or cancel key is pressed.
def MouseMove( | self) |
Initiates a drag that allows a window to be moved with the mouse.
This is a special command that can only be assigned in Wingo's mouse configuration file. Invoking this command in any other way has no effect.
def MouseResize( | self, Direction) |
Initiates a drag that allows a window to be resized with the mouse.
Direction specifies how the window should be resized, and what the pointer should look like. For example, if Direction is set to "BottomRight", then only the width and height of the window can change---but not the x or y position.
Valid values for Direction are: Infer, Top, Bottom, Left, Right, TopLeft, TopRight, BottomLeft and BottomRight. When "Infer" is used, the direction is determined based on where the pointer is on the window when the drag is initiated.
This is a special command that can only be assigned in Wingo's mouse configuration file. Invoking this command in any other way has no effect.
def Move( | self, Client, X, Y) |
Moves the window specified by Client to the x and y position specified by X and Y. Note that the origin is located in the top left corner.
X and Y may either be pixels (integers) or ratios in the range 0.0 to 1.0 (specifically, (0.0, 1.0]). Ratios are measured with respect to the window's workspace's geometry.
Client may be the window id or a substring that matches a window name.
def MovePointer( | self, X, Y) |
Moves the pointer to the x and y position specified by X and Y. Note the the origin is located in the top left corner.
def MovePointerRelative( | self, X, Y) |
Moves the pointer to the x and y position specified by X and Y relative to the current workspace. Note the the origin is located in the top left corner of the current workspace.
X and Y may either be pixels (integers) or ratios in the range 0.0 to 1.0 (specifically, (0.0, 1.0]). Ratios are measured with respect to the workspace's geometry.
def MoveRelative( | self, Client, X, Y) |
Moves the window specified by Client to the x and y position specified by X and Y, relative to its workspace. Note that the origin is located in the top left corner of the client's workspace.
X and Y may either be pixels (integers) or ratios in the range 0.0 to 1.0 (specifically, (0.0, 1.0]). Ratios are measured with respect to the window's workspace's geometry.
Client may be the window id or a substring that matches a window name.
def Not( | self, Op) |
Returns the negation of Op. When Op is 0, Not returns 1. When Op is 1, Not returns 0.
If Op is not in {0, 1}, then a warning is logged and nil is returned.
def Or( | self, Op1, Op2) |
Returns the logical OR of Op1 and Op2.
If Op1 or Op2 is not in {0, 1}, then a warning is logged and nil is returned.
def Quit( | self) |
Stops Wingo.
def Raise( | self, Client) |
Raises the window specified by Client to the top of its layer.
Client may be the window id or a substring that matches a window name.
def RemoveWorkspace( | self, Workspace) |
Removes the workspace specified by Workspace. Note that a workspace can only be removed if it is empty (i.e., does not contain any windows).
Workspace may be a workspace index (integer) starting at 0, or a workspace name.
def RenameWorkspace( | self, Workspace, NewName) |
Renames the workspace specified by Workspace to the name in NewName.
Workspace may be a workspace index (integer) starting at 0, or a workspace name. NewName can only be a string.
def Resize( | self, Client, Width, Height) |
Resizes the window specified by Client to some width and height specified by Width and Height.
Width and Height may either be pixels (integers) or ratios in the range 0.0 to 1.0 (specifically, (0.0, 1.0]). Ratios are measured with respect to the window's workspace's geometry.
Client may be the window id or a substring that matches a window name.
def Restart( | self) |
Restarts Wingo in place using exec. This should be used to reload Wingo after you've made changes to its configuration.
def Script( | self, Command) |
Executes a script in $XDG_CONFIG_HOME/wingo/scripts. The command may include arguments.
def ScriptConfig( | self, ScriptName) |
Returns the path to a script's configuration file.
def SelectClient( | self, TabCompletion, OnlyActiveWorkspace, OnlyVisible, ShowIconified) |
Shows a centered prompt window with a list of clients satisfying the arguments provided.
OnlyActiveWorkspace specifies that only clients on the current workspace should be listed. Valid values are "yes" or "no".
OnlyVisible specifies that only clients on visible workspaces should be listed. Valid values are "yes" or "no".
ShowIconified specifies that iconified clients will be shown. Valid values are "yes" or "no".
TabCompletetion can be set to either "Prefix", "Any" or "Multiple". When it's set to "Prefix", the clients can be searched by a prefix matching string. When it's set to "Any", the clients can be searched by a substring matching string. When it's set to "Multiple", the clients can be searched by multiple space- separated substring matching strings.
This command may be used as a sub-command to pass a particular client to another command.
def SelectWorkspace( | self, TabCompletion) |
Shows a centered prompt window with a list of all workspaces.
TabCompletetion can be set to either "Prefix", "Any" or "Multiple". When it's set to "Prefix", the clients can be searched by a prefix matching string. When it's set to "Any", the clients can be searched by a substring matching string. When it's set to "Multiple", the clients can be searched by multiple space- separated substring matching strings.
This command may be used as a sub-command to pass a particular workspace to another command.
def SetLayout( | self, Workspace, Name) |
Sets the current layout of the workspace specified by Workspace to the layout named by Name. If a layout with name Name does not exist, this command has no effect.
Note that this command has no effect if the workspace is not visible.
Workspace may be a workspace index (integer) starting at 0, or a workspace name.
def SetOpacity( | self, Client, Opacity) |
Sets the opacity of the window specified by Client to the opacity level specified by Opacity.
This command won't have any effect unless you're running a compositing manager like compton or cairo-compmgr.
Client may be the window id or a substring that matches a window name.
Opacity should be a float in the range 0.0 to 1.0, inclusive, where 0.0 is completely transparent and 1.0 is completely opaque.
def Shell( | self, Command) |
Attempts to execute the shell command specified by Command. If an error occurs, it will be logged to Wingo's stderr.
def ShowClientInPanels( | self, Client) |
Sets the appropriate flags so that the window specified by Client is shown on panels and pagers.
Client may be the window id or a substring that matches a window name.
def TagGet( | self, Client, Name) |
Retrieves the tag with name Name for the client specified by Client.
Client may be the window id or a substring that matches a window name.
Tag names may only contain the following characters: [-a-zA-Z0-9_].
def TagSet( | self, Client, Name, Value) |
Sets the tag with name Name to value Value for the client specified by Client.
Client may be the window id or a substring that matches a window name.
Tag names may only contain the following characters: [-a-zA-Z0-9_].
def ToggleFloating( | self, Client) |
Toggles whether the window specified by Client should be forced into the floating layout. A window forced into the floating layout CANNOT be tiled.
Client may be the window id or a substring that matches a window name.
def ToggleIconify( | self, Client) |
Iconifies (minimizes) or deiconifies (unminimizes) the window specified by Client.
Client may be the window id or a substring that matches a window name.
def ToggleMaximize( | self, Client) |
Maximizes or restores the window specified by Client.
Client may be the window id or a substring that matches a window name.
def ToggleStackAbove( | self, Client) |
Toggles the layer of the window specified by Client from normal to above. When a window is in the "above" layer, it will always be above other (normal) clients.
Client may be the window id or a substring that matches a window name.
def ToggleStackBelow( | self, Client) |
Toggles the layer of the window specified by Client from normal to below. When a window is in the "below" layer, it will always be below other (normal) clients.
Client may be the window id or a substring that matches a window name.
def ToggleSticky( | self, Client) |
Toggles the sticky status of the window specified by Client. When a window is sticky, it will always be visible unless iconified. (i.e., it does not belong to any particular workspace.)
Client may be the window id or a substring that matches a window name.
def True( | self) |
Always returns 1.
def Unfloat( | self, Client) |
Unfloats the window specified by Client. If the window is not floating, this command has no effect.
Client may be the window id or a substring that matches a window name.
def Unmaximize( | self, Client) |
Unmaximizes the window specified by Client. If the window is not maximized, this command has no effect.
Client may be the window id or a substring that matches a window name.
def WingoExec( | self, Commands) |
Executes a series of Wingo commands specified by Commands. If an error occurs while executing the command, it will be shown in a popup message.
def WingoHelp( | self, CommandName) |
Shows the usage information for a particular command specified by CommandName.
def Workspace( | self, Workspace) |
Sets the current workspace to the one specified by Workspace.
Workspace may be a workspace index (integer) starting at 0, or a workspace name.
def WorkspaceGreedy( | self, Workspace) |
Sets the current workspace to the one specified by Workspace in a greedy fashion.
A greedy switch always brings the specified workspace to the currently focused head. (N.B. Greedy is only different when switching between two visible workspaces.)
Workspace may be a workspace index (integer) starting at 0, or a workspace name.
def WorkspaceGreedyWithClient( | self, Workspace, Client) |
Sets the current workspace to the workspace specified by Workspace in a greedy fashion, and moves the window specified by Client to that workspace.
A greedy switch always brings the specified workspace to the currently focused head. (N.B. Greedy is only different when switching between two visible workspaces.)
Workspace may be a workspace index (integer) starting at 0, or a workspace name.
Client may be the window id or a substring that matches a window name.
def WorkspaceHead( | self, Workspace) |
Retrieves the head index of the workspace specified by Workspace. If the workspace is not visible, then -1 is returned.
Head indexing starts at 0. Heads are ordered by their physical position: left to right and then top to bottom.
Workspace may be a workspace index (integer) starting at 0, or a workspace name.
def WorkspaceSendClient( | self, Workspace, Client) |
Sends the window specified by Client to the workspace specified by Workspace.
Workspace may be a workspace index (integer) starting at 0, or a workspace name.
Client may be the window id or a substring that matches a window name.
def WorkspaceToHead( | self, Head, Workspace) |
Sets the workspace specified by Workspace to appear on the head specified by the Head index.
Workspace may be a workspace index (integer) starting at 0, or a workspace name.
Head indexing starts at 0. Heads are ordered by their physical position: left to right and then top to bottom.
def WorkspaceWithClient( | self, Workspace, Client) |
Sets the current workspace to the workspace specified by Workspace, and moves the window specified by Client to that workspace.
Workspace may be a workspace index (integer) starting at 0, or a workspace name.
Client may be the window id or a substring that matches a window name.