Class pinnacle.output
Output management.
An output is the Wayland term for a monitor. It presents windows, your cursor, and other UI elements.
Outputs are uniquely identified by their name, a.k.a. the name of the connector they're plugged in to.
Functions
function get_all
function pinnacle.output.get_all()
-> pinnacle.output.OutputHandle[]
Gets all outputs.
Returns
function get_all_enabled
function pinnacle.output.get_all_enabled()
-> pinnacle.output.OutputHandle[]
Gets all enabled outputs.
Returns
function get_by_name
function pinnacle.output.get_by_name(name: string)
-> pinnacle.output.OutputHandle | nil
Gets an output by its name (the connector it's plugged into).
Parameters
name
: string
- The name of the connector the output is connected to
Returns
function get_focused
function pinnacle.output.get_focused()
-> pinnacle.output.OutputHandle | nil
Gets the currently focused output.
This is currently defined as the most recent one that has had pointer motion.
Returns
function for_each_output
function pinnacle.output.for_each_output(for_each: fun(output: pinnacle.output.OutputHandle))
Runs a closure on all current and future outputs.
When called, this will do two things:
- Immediately run
for_each
with all currently connected outputs. - Call
for_each
with any newly connected outputs.
Note that for_each
will not run with outputs that have been unplugged and replugged. This is to prevent duplicate setup. Instead, the compositor keeps track of any tags and state the output had when unplugged and restores them on replug. This may change in the future.
Example
-- Add tags "1" through "5" to all outputs
require("pinnacle.output").for_each_output(function(output)
local tags = Tag.add(output, "1", "2", "3", "4", "5")
tags[1]:toggle_active()
end)
Parameters
for_each
: fun(output: pinnacle.output.OutputHandle)
function connect_signal
function pinnacle.output.connect_signal(signals: pinnacle.output.OutputSignal)
-> signal_handles: pinnacle.signal.SignalHandles
Connects to an output 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
Output.connect_signal({
connect = function(output)
print("New output connected:", output.name)
end
})
Parameters
signals
: pinnacle.output.OutputSignal
- 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