1
0
Fork 0
forked from wry/wry

config: add get_connector_by_name

This commit is contained in:
Julian Orth 2026-03-18 12:12:33 +01:00
parent 52b91654ca
commit cf36da4077
4 changed files with 31 additions and 0 deletions

View file

@ -560,6 +560,12 @@ impl ConfigClient {
connector
}
pub fn get_connector_by_name(&self, name: &str) -> Connector {
let res = self.send_with_response(&ClientMessage::GetConnectorByName { name });
get_response!(res, Connector(0), GetConnector { connector });
connector
}
pub fn get_seat_cursor_workspace(&self, seat: Seat) -> Workspace {
let res = self.send_with_response(&ClientMessage::GetSeatCursorWorkspace { seat });
get_response!(res, Workspace(0), GetSeatCursorWorkspace { workspace });

View file

@ -849,6 +849,9 @@ pub enum ClientMessage<'a> {
ConnectorSupportsArbitraryModes {
connector: Connector,
},
GetConnectorByName {
name: &'a str,
},
}
#[derive(Serialize, Deserialize, Debug)]

View file

@ -454,6 +454,14 @@ pub fn get_connector(id: impl ToConnectorId) -> Connector {
get!(Connector(0)).get_connector(ty, idx)
}
/// Returns the connector with the given name.
///
/// Unlike [`get_connector`], this function can also be used for connectors whose names
/// don't follow the `<type>-<id>` pattern.
pub fn get_connector_by_name(name: &str) -> Connector {
get!(Connector(0)).get_connector_by_name(name)
}
/// A type that can be converted to a `(ConnectorType, idx)` tuple.
pub trait ToConnectorId {
fn to_connector_id(&self) -> Result<(ConnectorType, u32), String>;