Functions - bakkeby/dusk GitHub Wiki
The term Function
in the context of the window manager refers to features that can be triggered
via keybindings or via external commands.
One way to think of them are as actionable features.
Not all functions have default keybindings, but these can be added in the keys
section
of the config.h file if need be. Alternatively such functions can be called by
external commands.
Not all functions can be called by external commands, but for functions where this is supported
they are generally triggered with the run_command
subcommand like this:
$ duskc run_command <function> <?arg?>
where the presence of an argument and the value passed depends on the function.
The command will return an error if there is anything wrong with the function name or the argument passed.
If the command returns {"result":"success"}
then this means that the function was called, but
ultimately this does not in any way suggest that the evaluation of the function had a positive
outcome.
The output of the command can be silenced with the --ignore-reply
flag.
Topic | Function | Description |
---|---|---|
Attach | setattachdefault | Changes the default attach method for new client windows |
Bar | focuswin | Allows focusing on clients by left-clicking window titles in the bar |
Bar | hidebar | Combines with showbar to hide the bar when a key combination is released |
Bar | setstatus | Used externally to set custom statuses |
Bar | showbar | Combines with hidebar to temporarily show a bar while a key combination is held down |
Bar | statusclick | Handles button clicks for statuses on the bar |
Bar | togglebar | Toggles the display of the bar on and off for the current monitor |
Bar | togglebarpadding | Helper function to toggle the bar padding on and off |
Bar | togglecompact | Helper function to toggle compact view on and off |
Flags | toggleclientflag | Manually toggle client flags for testing purposes |
Floating | floatpos | Used to control the size and position of floating windows |
Floating | maximize | Maximize a window in the window area |
Floating | maximizevert | Maximize a window vertically in the window area |
Floating | maximizehorz | Maximize a window horizontally in the window area |
Floating | movemouse | Move floating windows around using the mouse |
Floating | moveorplace | Move or place the window depending on whether it is floating or not |
Floating | resizemouse | Change the size of floating windows using the mouse |
Floating | resizeorcfacts | Resize the window depending on whether it if floating or not |
Floating | rioresize | Resize the current window using slop |
Floating | unfloatvisible | Makes all floating windows on the current workspace tiled |
Floating | togglefloating | Makes clients switch between tiled and floating mode |
Floating | togglesticky | Toggles the Sticky flag for the selected client |
Focus | focusdir | Directional focus on clients rather than just up and down the stack |
Focus | focusmaster | Change focus to the first tiled client on the active workspace |
Focus | focusmon | Changes which monitor has focus |
Focus | focushidden | Change focus between hidden clients on the current workspace |
Focus | focusstack | Focus on clients up and down the stack across workspaces |
Focus | focusurgent | Focus on the first client marked as being urgent |
Focus | stackfocus | Focus clients at specific positions in the client stack on a workspace |
Focus | switchcol | Changes focus between the master area and the stack area |
Fullscreen | togglefullscreen | Moves the current client into and out of fullscreen mode |
Fullscreen | togglefakefullscreen | Enables or disables fake fullscreen for the current client |
Functionality | enable | Enables optional features |
Functionality | disable | Disables optional features |
Functionality | toggle | Toggles optional features |
Gaps | defaultgaps | Resets the gaps for the current monitor back to the default configuration |
Gaps | incrgaps | Increments or decrements all gaps |
Gaps | incrigaps | Increments or decrements all inner gaps |
Gaps | incrogaps | Increments or decrements all outer gaps |
Gaps | incrohgaps | Increments or decrements outer horizontal gaps |
Gaps | incrovgaps | Increments or decrements outer vertical gaps |
Gaps | incrihgaps | Increments or decrements inner horizontal gaps |
Gaps | incrivgaps | Increments or decrements inner vertical gaps |
Gaps | togglegaps | Enables or disables gaps on the current workspace |
Gaps | setgapsex | External function that allows for all gaps to be specified in one call |
Layout | cyclelayout | Cycles through the predefined layouts |
Layout | mirrorlayout | Creates a reversed view (mirror) of the current layout |
Layout | rotatelayoutaxis | Cycles through the various layout axes in a flextile-deluxe layout |
Layout | setlayoutaxisex | Sets flextile-deluxe layout split or arrangements externally |
Layout | setlayout | Internal function to set the layout via index |
Layout | layoutconvert | Switches between horizontal and vertical orientation of the layout |
Marking | mark | Marks the selected client for group action |
Marking | markall | Marks all clients on the current workspace for group action |
Marking | markmouse | Allows for clients to be marked and unmarked using the mouse |
Marking | togglemark | Toggles the marked status for the current client |
Marking | unmark | Unmarkes the selected client |
Marking | unmarkall | Unmarks all marked clients across all workspaces |
Monitor | clienttomon | Move the selected window to an adjacent monitor |
Monitor | clientstomon | Move all windows on the current workspace to an adjacent monitor |
Scratchpads | removescratch | Removes scratchpad assignment for the selected client |
Scratchpads | setscratch | Adds scratchpad assignment for the selected client |
Scratchpads | togglescratch | Toggles scratchpad clients into or out of view |
Swallow | swallow | Force all marked clients to be swallowed by the selected client |
Swallow | swallowmouse | Allows for one window to swallow another using the mouse |
Swallow | unswallow | Force the selected client to unswallow the most recently swallowed client |
System | restart | Seamlessly restarts the window manager |
System | quit | Exits the window manager |
Tiled | dragcfact | Adjusts the tiled size of a client window compared to other clients within the same area |
Tiled | dragmfact | Adjusts the master area size of the layout compared to the stack area(s) |
Tiled | incnmaster | Increases or decreases the number of clients in the master area |
Tiled | incnstack | Increases or decreases the number of clients in the primary stack area for dual stack layouts |
Tiled | rotatestack | Rotate all clients around to have the desired client become the master window |
Tiled | inplacerotate | Rotates all clients around within their respective area (master or stack) |
Tiled | placedir | Directional movement of clients rather than just up and down the stack |
Tiled | placemouse | Change the tiled position of a window using the mouse |
Tiled | pushup | Push a client up the client stack on a workspace |
Tiled | pushdown | Push a client down the client stack on a workspace |
Tiled | setcfact | Increases or decreases the the size of the client respective to other client windows in the same area |
Tiled | setmfact | Increases or decreases the the size of the master area |
Tiled | stackpush | Push clients to specific positions in the client stack on a workspace |
Tiled | stackswap | Swap clients at specific positions in the client stack on a workspace |
Tiled | transfer | Move a client between master and stack areas while adjusting nmaster |
Tiled | transferall | Swap all clients between master and stack areas while adjusting nmaster |
Tiled | zoom | Moves the currently selected client to become the new master |
Window | changeopacity | Changes the opacity of a window during runtime |
Window | killclient | Kills the selected client on the current workspace |
Window | killunsel | Kills all but the selected client on the current workspace |
Window | riospawn | Draw the area where a window will spawn using a selection tool |
Window | setborderpx | Changes the border size for all clients on the current workspace |
Window | setclientborderpx | Changes the border size on a per client basis |
Window | settitle | Sets an alternative window title for the selected client |
Window | showhideclient | Allows for hiding clients or revealing hidden clients |
Window | setwintitle | Sets an alternative window title for a specified client |
Window | spawn | Used to start new processes like dmenu or a new terminal |
Window | togglekeybindings | Enables or disables dusk keybindings |
Window | togglenomodbuttons | Enables or disables the use of button bindings that have no modifiers |
Window | unhideall | Reveals all hidden clients on the current workspace |
Window | unhidepop | Reveals the most recently hidden client on the current workspace |
Workspaces | enablews | Enables or disables a workspace by right-clicking the workspace icon on the bar |
Workspaces | enablewsbyindex | Enables the nth workspace on the current monitor in addition to the current workspace |
Workspaces | enablewsbyname | Enables the workspace with a given name in addition to the current workspace |
Workspaces | comboviewwsbyindex | Changes the view to one or more workspace with a given index on the current monitor |
Workspaces | comboviewwsbyname | Changes the view to one or more workspaces with a given name |
Workspaces | movews | Move a client window to another workspace by clicking on the workspace icon on the bar |
Workspaces | movewsdir | Move a client to the workspace on the immediate left or right of the active workspace |
Workspaces | movetowsbyindex | Moves the currently active window to the workspace with a given name |
Workspaces | movetowsbyname | Moves the currently active window to the nth workspace on the current monitor |
Workspaces | sendtowsbyindex | Moves the currently active window to the workspace with a given name while inverting ViewOnWs functionality |
Workspaces | sendtowsbyname | Moves the currently active window to the nth workspace on the current monitor while inverting ViewOnWs functionality |
Workspaces | movealltowsbyindex | Moves all windows on the current workspace to the nth workspace on the current monitor |
Workspaces | movealltowsbyname | Moves all windows on the current workspace to a workspace with a given name |
Workspaces | moveallfromwsbyindex | Moves all windows from the nth workspace on the current monitor to the current workspace |
Workspaces | moveallfromwsbyname | Moves all windows from a workspace with a given name to the current workspace |
Workspaces | swapws | Swaps all clients on the current workspace with all clients on another workspace by clicking on the workspace icon on the bar |
Workspaces | swapwsbyindex | Swaps all clients on the current workspace with all clients on the nth workspace on the current monitor |
Workspaces | swapwsbyname | Swaps all clients on the current workspace with all clients on the workspace with a given name |
Workspaces | togglepinnedws | Used to pin or unpin the current workspace to / from the current monitor |
Workspaces | togglews | Toggle to the previously viewed workspace on the current monitor |
Workspaces | viewallwsonmon | View all workspaces assigned to the current monitor |
Workspaces | viewalloccwsonmon | View all workspaces assigned to the current monitor that have clients |
Workspaces | viewselws | Change the view to only show the workspace of the selected client |
Workspaces | viewws | View a workspace by left-clicking on the workspace icon on the bar |
Workspaces | viewwsbyindex | Changes the view to the the nth workspace on the current monitor |
Workspaces | viewwsbyname | Changes the view to the the workspace with a given name |
Workspaces | viewwsdir | View the workspace on the immediate left or right of the active workspace |
Xresources | xrdb | Reload X resources during runtime |
Back to Features.