Class pinnacle.window
​
Window management.
This module helps you deal with setting windows to fullscreen and maximized, setting their size, moving them between tags, and various other actions.
Functions ​
function get_all ​
function pinnacle.window.get_all()
-> windows: pinnacle.window.WindowHandle[]
Gets all windows.
Returns ​
windows
:pinnacle.window.WindowHandle[]
- Handles to all windows
function get_focused ​
function pinnacle.window.get_focused()
-> window: pinnacle.window.WindowHandle | nil
Gets the currently focused window.
Returns ​
window
:pinnacle.window.WindowHandle | nil
- A handle to the currently focused window
function begin_move ​
function pinnacle.window.begin_move(button: pinnacle.input.MouseButton)
Begins moving this window using the specified mouse button.
The button must be pressed at the time this method is called. If the button is lifted, the move will end.
Example ​
Input.mousebind({ "super" }, "btn_left", function()
Window.begin_move("btn_left")
end)
Parameters ​
button
: pinnacle.input.MouseButton
- The button that will initiate the move
function begin_resize ​
function pinnacle.window.begin_resize(button: pinnacle.input.MouseButton)
Begins resizing this window using the specified mouse button.
The button must be pressed at the time this method is called. If the button is lifted, the resize will end.
Example ​
Input.mousebind({ "super" }, "btn_right", function()
Window.begin_resize("btn_right")
end)
Parameters ​
button
: pinnacle.input.MouseButton
- The button that will initiate the resize
function connect_signal ​
function pinnacle.window.connect_signal(signals: pinnacle.window.WindowSignal)
-> signal_handles: pinnacle.signal.SignalHandles
Connects to a window signal.
signals
is a table containing the signal(s) you want to connect to along with a corresponding callback that will be called when the signal is signalled.
This function returns a table of signal handles with each handle stored at the same key used to connect to the signal. See SignalHandles
for more information.
Example ​
Window.connect_signal({
pointer_enter = function(window)
print("Pointer entered", window:app_id())
end
})
Parameters ​
signals
: pinnacle.window.WindowSignal
- The signal you want to connect to
Returns ​
signal_handles
:pinnacle.signal.SignalHandles
- Handles to every signal you connected to wrapped in a table, with keys being the same as the connected signal.
See also ​
pinnacle.signal.SignalHandles.disconnect_all
: - To disconnect from these signals
function add_window_rule ​
function pinnacle.window.add_window_rule(rule: fun(window: pinnacle.window.WindowHandle))
Adds a window rule.
Instead of using a declarative window rule system with match conditions, you supply a closure that acts on a newly opened window. You can use standard if
statements and apply properties using the same methods that are used everywhere else in this API.
Note: this function is special in that if it is called, Pinnacle will wait for the provided closure to finish running before it sends windows an initial configure event. Do not block here. At best, short blocks will increase the time it takes for a window to open. At worst, a complete deadlock will prevent windows from opening at all.
Example ​
Window.add_window_rule(function(window)
if window:app_id() == "Alacritty" then
window:set_tag(Tag.get("Terminal"), true)
end
end)
Parameters ​
rule
: fun(window: pinnacle.window.WindowHandle)
- A function that will run with all new, unmapped windows.