Class DisplayConfiguration

Nested Relationships

Nested Types

Class Documentation

class DisplayConfiguration

Enable display configuration. The config file (miral::MirRunner::display_config_file()) is located via the XDG Base Directory Specification. Vis: ($XDG_CONFIG_HOME or $HOME/.config followed by $XDG_CONFIG_DIRS)

Remark

Since MirAL 2.4

Note

From MirAL 3.8 will monitor the configuration file or, if none found, for the creation of a file in $XDG_CONFIG_HOME or $HOME/.config. Changes to this file will be reloaded. In addition, the selected layout may be overridden using a corresponding file: display_config_file() + “-layout” which will also be monitored and changes reloaded

Public Functions

explicit DisplayConfiguration(MirRunner const &mir_runner)
auto layout_option() -> ConfigurationOption

Provide the default ‘display-layout’ configuration option.

void select_layout(std::string const &layout)

Select a layout from the configuration.

auto list_layouts() -> std::vector<std::string>

List all layouts found in the config file.

void add_output_attribute(std::string const &key)

Enable a custom output attribute in the .display YAML.

Remark

Since MirAL 3.8

auto layout_userdata(std::string const &key) const -> std::optional<std::any const>

Retrieve the user data associated with the active layout for this provided key. Callers should provide this user data via [layout_userdata_builder].

Remark

Since MirAL 5.3

void layout_userdata_builder(std::string const &key, std::function<std::any(Node const &value)> const &builder) const

Enable a custom layout attribute in the .display YAML. The caller must provides the key of this custom attribute in addition to a function that will be used to build the custom payload that is associated with the layer. This function is provided with the raw details of the node at the provided key. The function must return any piece of data that may later be retrieved via [layout_userdata].

Remark

Since MirAL 5.3

void operator()(mir::Server &server) const
~DisplayConfiguration()
DisplayConfiguration(DisplayConfiguration const&)
auto operator=(DisplayConfiguration const&) -> DisplayConfiguration&
class Node

A class providing access to an arbitrary piece of data from the [DisplayConfiguration]. This is specifically useful when a user wants to extend the based display configuration with some sort of custom payload (e.g. a user may want to extend the layout configuration with information describing the position and size of specific applications).

Remark

Since MirAL 5.3

Public Types

enum class Type

Values:

enumerator integer
enumerator string
enumerator sequence
enumerator map
enumerator unknown

Public Functions

auto type() const -> Type
auto as_string() const -> std::string
auto as_int() const -> int
void for_each(std::function<void(Node const&)> const &f) const
auto has(std::string const &key) const -> bool
auto at(std::string const &key) const -> std::optional<Node>
Node(Node&&) noexcept = default
Node &operator=(Node&&) noexcept = default
Node(Node const&) = delete
Node &operator=(Node const&) = delete
~Node()