diff --git a/Cargo.lock b/Cargo.lock index 07b5270..659fd34 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -506,7 +506,7 @@ dependencies = [ [[package]] name = "gamescope-dbus" -version = "1.2.3" +version = "1.3.0" dependencies = [ "gamescope-wayland-client", "gamescope-x11-client", diff --git a/bindings/dbus-xml/org-shadowblip-gamescope-manager.xml b/bindings/dbus-xml/org-shadowblip-gamescope-manager.xml index 0ba489e..4129391 100644 --- a/bindings/dbus-xml/org-shadowblip-gamescope-manager.xml +++ b/bindings/dbus-xml/org-shadowblip-gamescope-manager.xml @@ -1,6 +1,21 @@ + + + + + + + + + + + + + + + @@ -25,19 +40,4 @@ - - - - - - - - - - - - - - - diff --git a/bindings/dbus-xml/org-shadowblip-gamescope-xwayland.xml b/bindings/dbus-xml/org-shadowblip-gamescope-xwayland.xml index 3d05a8e..268682f 100644 --- a/bindings/dbus-xml/org-shadowblip-gamescope-xwayland.xml +++ b/bindings/dbus-xml/org-shadowblip-gamescope-xwayland.xml @@ -73,6 +73,12 @@ + + + + @@ -99,42 +105,18 @@ --> - - - - - - - - - - + + - - - + + - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/manager.md b/docs/manager.md index 8b8b498..149859f 100644 --- a/docs/manager.md +++ b/docs/manager.md @@ -1,50 +1,19 @@ # Manager DBus Interface API -## org.freedesktop.DBus.Properties +## org.freedesktop.DBus.Introspectable ### Methods -#### Get - -##### Arguments - -| Name | Direction | Type | Description | -| --- | :---: | :---: | --- | -| **interface_name** | *in* | *s* | | -| **property_name** | *in* | *s* | | -| \*\*\*\* | *out* | *v* | | - -#### Set - -##### Arguments - -| Name | Direction | Type | Description | -| --- | :---: | :---: | --- | -| **interface_name** | *in* | *s* | | -| **property_name** | *in* | *s* | | -| **value** | *in* | *v* | | - -#### GetAll +#### Introspect ##### Arguments | Name | Direction | Type | Description | | --- | :---: | :---: | --- | -| **interface_name** | *in* | *s* | | -| \*\*\*\* | *out* | *a{sv}* | | +| \*\*\*\* | *out* | *s* | | ### Signals -#### PropertiesChanged - -##### Arguments - -| Name | Direction | Type | Description | -| --- | :---: | :---: | --- | -| **interface_name** | \*\* | *s* | | -| **changed_properties** | \*\* | *a{sv}* | | -| **invalidated_properties** | \*\* | *as* | | - ## org.shadowblip.Gamescope.Manager ### Properties @@ -73,16 +42,47 @@ ### Signals -## org.freedesktop.DBus.Introspectable +## org.freedesktop.DBus.Properties ### Methods -#### Introspect +#### Get ##### Arguments | Name | Direction | Type | Description | | --- | :---: | :---: | --- | -| \*\*\*\* | *out* | *s* | | +| **interface_name** | *in* | *s* | | +| **property_name** | *in* | *s* | | +| \*\*\*\* | *out* | *v* | | + +#### Set + +##### Arguments + +| Name | Direction | Type | Description | +| --- | :---: | :---: | --- | +| **interface_name** | *in* | *s* | | +| **property_name** | *in* | *s* | | +| **value** | *in* | *v* | | + +#### GetAll + +##### Arguments + +| Name | Direction | Type | Description | +| --- | :---: | :---: | --- | +| **interface_name** | *in* | *s* | | +| \*\*\*\* | *out* | *a{sv}* | | ### Signals + +#### PropertiesChanged + +##### Arguments + +| Name | Direction | Type | Description | +| --- | :---: | :---: | --- | +| **interface_name** | \*\* | *s* | | +| **changed_properties** | \*\* | *a{sv}* | | +| **invalidated_properties** | \*\* | *as* | | diff --git a/docs/xwayland.md b/docs/xwayland.md index 2d86972..0015446 100644 --- a/docs/xwayland.md +++ b/docs/xwayland.md @@ -92,6 +92,14 @@ | **window_id** | *in* | *u* | | | **app_id** | *in* | *u* | | +#### RemoveAppId + +##### Arguments + +| Name | Direction | Type | Description | +| --- | :---: | :---: | --- | +| **window_id** | *in* | *u* | | + #### HasAppId ##### Arguments @@ -112,51 +120,22 @@ | **window** | \*\* | *u* | | | **prop** | \*\* | *s* | | -## org.freedesktop.DBus.Properties +## org.freedesktop.DBus.Peer ### Methods -#### Get - -##### Arguments - -| Name | Direction | Type | Description | -| --- | :---: | :---: | --- | -| **interface_name** | *in* | *s* | | -| **property_name** | *in* | *s* | | -| \*\*\*\* | *out* | *v* | | - -#### Set - -##### Arguments - -| Name | Direction | Type | Description | -| --- | :---: | :---: | --- | -| **interface_name** | *in* | *s* | | -| **property_name** | *in* | *s* | | -| **value** | *in* | *v* | | +#### Ping -#### GetAll +#### GetMachineId ##### Arguments | Name | Direction | Type | Description | | --- | :---: | :---: | --- | -| **interface_name** | *in* | *s* | | -| \*\*\*\* | *out* | *a{sv}* | | +| \*\*\*\* | *out* | *s* | | ### Signals -#### PropertiesChanged - -##### Arguments - -| Name | Direction | Type | Description | -| --- | :---: | :---: | --- | -| **interface_name** | \*\* | *s* | | -| **changed_properties** | \*\* | *a{sv}* | | -| **invalidated_properties** | \*\* | *as* | | - ## org.freedesktop.DBus.Introspectable ### Methods @@ -171,22 +150,6 @@ ### Signals -## org.freedesktop.DBus.Peer - -### Methods - -#### Ping - -#### GetMachineId - -##### Arguments - -| Name | Direction | Type | Description | -| --- | :---: | :---: | --- | -| \*\*\*\* | *out* | *s* | | - -### Signals - ## org.shadowblip.Gamescope.XWayland.Primary ### Properties @@ -292,3 +255,56 @@ ### Signals #### BaselayerWindowUpdated + +#### WindowCreated + +##### Arguments + +| Name | Direction | Type | Description | +| --- | :---: | :---: | --- | +| **window_id** | \*\* | *u* | | + +## org.freedesktop.DBus.Properties + +### Methods + +#### Get + +##### Arguments + +| Name | Direction | Type | Description | +| --- | :---: | :---: | --- | +| **interface_name** | *in* | *s* | | +| **property_name** | *in* | *s* | | +| \*\*\*\* | *out* | *v* | | + +#### Set + +##### Arguments + +| Name | Direction | Type | Description | +| --- | :---: | :---: | --- | +| **interface_name** | *in* | *s* | | +| **property_name** | *in* | *s* | | +| **value** | *in* | *v* | | + +#### GetAll + +##### Arguments + +| Name | Direction | Type | Description | +| --- | :---: | :---: | --- | +| **interface_name** | *in* | *s* | | +| \*\*\*\* | *out* | *a{sv}* | | + +### Signals + +#### PropertiesChanged + +##### Arguments + +| Name | Direction | Type | Description | +| --- | :---: | :---: | --- | +| **interface_name** | \*\* | *s* | | +| **changed_properties** | \*\* | *a{sv}* | | +| **invalidated_properties** | \*\* | *as* | | diff --git a/src/gamescope/xwayland.rs b/src/gamescope/xwayland.rs index a0487f1..a5eeb68 100644 --- a/src/gamescope/xwayland.rs +++ b/src/gamescope/xwayland.rs @@ -266,6 +266,15 @@ impl DBusInterface { Ok(()) } + /// Removes the app ID on the given window + async fn remove_app_id(&self, window_id: u32) -> fdo::Result<()> { + self.ensure_connected().await; + self.xwayland + .remove_xprop(window_id, GamescopeAtom::SteamGame) + .map_err(|err| fdo::Error::Failed(err.to_string()))?; + Ok(()) + } + /// Returns whether or not the given window has an app ID set async fn has_app_id(&self, window_id: u32) -> fdo::Result { self.ensure_connected().await;