Module: cwc.screen

Low-Level API to manage output and the tag/workspace system

See also:

Info:

  • Copyright: 2024
  • License: GPLv3
  • Originally authored by: Dwi Asmoro Bangun
    (Full contributors list available on our github project)

Static module functions

cwc.screen.get () -> cwc_screen[] Get all screen in the server.
cwc.screen.focused () -> cwc_screen Get current focused screen.
cwc.screen.at (x, y) -> cwc_screen Get screen at specified coordinates.
cwc.screen.get_max_workspace () -> integer Get maximum workspace the compositor can handle.

Config functions

cwc.screen.set_useless_gaps () Set useless gaps width.

Object properties

geometry table The screen coordinates in the global position. Read only
width integer The screen width. Read only
height integer The screen height. Read only
refresh integer The screen refresh rate in mHz (may be zero). Read only
phys_width integer The screen physical width in mm. Read only
phys_height integer The screen physical height in mm. Read only
scale number The screen scale. Read only
name string The name of the screen. Read only
description string The description of the screen (may be empty). Read only
make string The make of the screen (may be empty). Read only
model string The model of the screen (may be empty). Read only
serial string The serial of the screen (may be empty). Read only
non_desktop boolean The screen is non desktop or not. Read only
restored boolean The screen is restored or not. Read only
selected_tag cwc_tag The current selected tag of the screen. Read only
workarea table The workarea/usable area of the screen. Read only
enabled boolean The screen enabled state.
dpms boolean The screen dpms state.
allow_tearing boolean Whether to allow screen to tear or not.
active_tag integer Bitfield of currently activated tags.
active_workspace integer The index of the selected_tag.
max_general_workspace integer Maximum general workspace (workspaces that will be shown in the bar).

Object methods

:get_containers (visible) -> cwc_container[] Get containers in this screen.
:get_clients (visible) -> cwc_client[] Get toplevels/clients in this screen.
:get_focus_stack (visible) -> cwc_client[] get focus stack in the output
:get_minimized (visible) -> cwc_client[] get minimized stack in the output.
:get_tag (idx) -> cwc_tag Get tag with using the specified index.
:get_nearest (direction) -> cwc_screen Get nearest screen relative to this screen.
:set_position (x, y) Set the screen position in the global coordinate.
:set_mode (width, height, refresh) Set the screen mode.
:set_adaptive_sync (enable) Set adaptive sync.
:set_enabled (enable) Set output enabled state.
:set_scale (scale) Set output scale.
:set_transform (enum) Set output transform rotation.
:focus () Focus this screen.
:destroy () Destroy this screen.

Signals

screen::new Emitted when a screen is added.
screen::destroy Emitted when a screen is about to be removed.
screen::mouse_enter Emitted when a pointer enter this screen area.
screen::mouse_leave Emitted when a pointer leave this screen area.
screen::focus Emitted when a screen gains focus.
screen::unfocus Emitted when a screen lost focus.
screen::prop::active_tag Property signal.
screen::prop::active_workspace Property signal.
screen::prop::selected_tag Property signal.


Static module functions

🔗 cwc.screen.get () -> cwc_screen[]
Get all screen in the server.

Returns:

    cwc_screen[]
🔗 cwc.screen.focused () -> cwc_screen
Get current focused screen.

Returns:

    cwc_screen
🔗 cwc.screen.at (x, y) -> cwc_screen
Get screen at specified coordinates.

Parameters:

Name Type(s) Description
x integer X coordinates
y integer Y coordinates

Returns:

    cwc_screen
🔗 cwc.screen.get_max_workspace () -> integer
Get maximum workspace the compositor can handle.

Returns:

    integer count

Config functions

🔗 cwc.screen.set_useless_gaps ()
Set useless gaps width.

Object properties

🔗 geometry table · read only
The screen coordinates in the global position.

Constraints:

Table keys:
x (integer)
y (integer)
width (integer)
height (integer)
🔗 width integer · read only
The screen width.

Constraints:

Default value : Extracted from wlr_output.
Negative allowed : false
🔗 height integer · read only
The screen height.

Constraints:

Default value : Extracted from wlr_output.
Negative allowed : false
🔗 refresh integer · read only
The screen refresh rate in mHz (may be zero).

Constraints:

Default value : Extracted from wlr_output.
Negative allowed : false
🔗 phys_width integer · read only
The screen physical width in mm.

Constraints:

Default value : Extracted from wlr_output.
Negative allowed : false
🔗 phys_height integer · read only
The screen physical height in mm.

Constraints:

Default value : Extracted from wlr_output.
Negative allowed : false
🔗 scale number · read only
The screen scale.

Constraints:

Default value : Extracted from wlr_output.
Negative allowed : false
🔗 name string · read only
The name of the screen.

Constraints:

Default value : screen name extracted from wlr_output.
🔗 description string · read only
The description of the screen (may be empty).

Constraints:

Default value : screen description extracted from wlr_output.
🔗 make string · read only
The make of the screen (may be empty).

Constraints:

Default value : screen make extracted from wlr_output.
🔗 model string · read only
The model of the screen (may be empty).

Constraints:

Default value : screen model extracted from wlr_output.
🔗 serial string · read only
The serial of the screen (may be empty).

Constraints:

Default value : screen serial extracted from wlr_output.
🔗 non_desktop boolean · read only
The screen is non desktop or not.

Constraints:

Default value : Extracted from wlr_output.
Valid values : true or false.
🔗 restored boolean · read only
The screen is restored or not.

Constraints:

Default value : false
Valid values : true or false.
🔗 selected_tag cwc_tag · read only
The current selected tag of the screen.

If there are 2 or more activated tags, the compositor will use this tag to get information such as gaps, layout mode or master factor.

Constraints:

Default value : the last tag that set by view_only.

See also:

active_workspace The index of the selected_tag. object properties
cwc_tag:view_only Set this tag as the only selected tag. (cwc_tag) object methods
🔗 workarea table · read only
The workarea/usable area of the screen.

Constraints:

Default value : screen dimension.
Table keys:
x (integer)
y (integer)
width (integer)
height (integer)
Negative allowed : false
🔗 enabled boolean
The screen enabled state.

unlike dpms this property will remove output from the output layout.

Constraints:

Default value : true
Valid values : true or false.

See also:

dpms The screen dpms state. object properties
🔗 dpms boolean
The screen dpms state.

Constraints:

Default value : true
Valid values : true or false.

See also:

enabled The screen enabled state. object properties
🔗 allow_tearing boolean
Whether to allow screen to tear or not.

Constraints:

Default value : false
Valid values : true or false.

See also:

cwc.client.allow_tearing Allow the client to tear output. (cwc.client) object properties
🔗 active_tag integer
Bitfield of currently activated tags.

Constraints:

Default value : Current active tags.
Negative allowed : false
🔗 active_workspace integer
The index of the selected_tag.

Constraints:

Default value : Current active workspace.
Negative allowed : false

See also:

selected_tag The current selected tag of the screen. object properties
🔗 max_general_workspace integer
Maximum general workspace (workspaces that will be shown in the bar).

Constraints:

Default value : 9
Minimum value : 1

Object methods

🔗 :get_containers (visible) -> cwc_container[]
Get containers in this screen.

Ordered by time the container created (first item is newest to oldest).

Parameters:

Name Type(s) Description Default value
visible Optional bool Whether get only the visible containers false

Returns:

    cwc_container[] array of container
🔗 :get_clients (visible) -> cwc_client[]
Get toplevels/clients in this screen.

Ordered by time the toplevel mapped (first item is newest to oldest).

Parameters:

Name Type(s) Description Default value
visible Optional bool Whether get only the visible toplevel false

Returns:

    cwc_client[] array of toplevels
🔗 :get_focus_stack (visible) -> cwc_client[]
get focus stack in the output

Parameters:

Name Type(s) Description Default value
visible Optional bool Whether get only the visible toplevel false

Returns:

    cwc_client[] array of toplevels
🔗 :get_minimized (visible) -> cwc_client[]
get minimized stack in the output.

The order is newest minimized to oldest.

Parameters:

Name Type(s) Description Default value
visible Optional bool Whether to use active_tag as filter false

Returns:

    cwc_client[] array of toplevels
🔗 :get_tag (idx) -> cwc_tag
Get tag with using the specified index.

Parameters:

Name Type(s) Description
idx integer Index of the tag.

Returns:

    cwc_tag
🔗 :get_nearest (direction) -> cwc_screen
Get nearest screen relative to this screen.

Parameters:

Name Type(s) Description
direction integer Direction enum

Returns:

    cwc_screen

See also:

cuteful.enum.direction Extracted from wlr_direction wlr_output_layout.h (cuteful.enum) tables
🔗 :set_position (x, y)
Set the screen position in the global coordinate.

Parameters:

Name Type(s) Description
x integer Horizontal position
y integer Vertical position
🔗 :set_mode (width, height, refresh)
Set the screen mode.

Parameters:

Name Type(s) Description Default value
width integer Not applicable
height integer Not applicable
refresh Optional integer Monitor refresh rate in hz 0
🔗 :set_adaptive_sync (enable)
Set adaptive sync.

Parameters:

Name Type(s) Description
enable boolean True to enable
🔗 :set_enabled (enable)
Set output enabled state.

Parameters:

Name Type(s) Description
enable boolean True to enable
🔗 :set_scale (scale)
Set output scale.

Parameters:

Name Type(s) Description
scale number
🔗 :set_transform (enum)
Set output transform rotation.

Parameters:

Name Type(s) Description
enum integer Output transform enum

See also:

cuteful.enum.output_transform Extracted from wayland-server-protocol.h (cuteful.enum) tables
🔗 :focus ()
Focus this screen.
🔗 :destroy ()
Destroy this screen.

used for debugging.

See also:

enabled The screen enabled state. object properties
dpms The screen dpms state. object properties

Signals

🔗 screen::new
Emitted when a screen is added.

Arguments:

Name Type(s) Description
s cwc_screen The screen object.
🔗 screen::destroy
Emitted when a screen is about to be removed.

Arguments:

Name Type(s) Description
s cwc_screen The screen object.
🔗 screen::mouse_enter
Emitted when a pointer enter this screen area.

Arguments:

Name Type(s) Description
s cwc_screen The screen object.
🔗 screen::mouse_leave
Emitted when a pointer leave this screen area.

Arguments:

Name Type(s) Description
s cwc_screen The screen object.
🔗 screen::focus
Emitted when a screen gains focus.

Arguments:

Name Type(s) Description
s cwc_screen The screen object.
🔗 screen::unfocus
Emitted when a screen lost focus.

Arguments:

Name Type(s) Description
s cwc_screen The screen object.
🔗 screen::prop::active_tag
Property signal.

Arguments:

Name Type(s) Description
s cwc_screen The screen object.
🔗 screen::prop::active_workspace
Property signal.

Arguments:

Name Type(s) Description
s cwc_screen The screen object.
🔗 screen::prop::selected_tag
Property signal.

Arguments:

Name Type(s) Description
s cwc_screen The screen object.
generated by LDoc 1.5.0 based on AwesomeWM template