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;