Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package cosmic-randr for openSUSE:Factory 
checked in at 2025-05-08 18:24:09
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/cosmic-randr (Old)
 and      /work/SRC/openSUSE:Factory/.cosmic-randr.new.30101 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "cosmic-randr"

Thu May  8 18:24:09 2025 rev:6 rq:1275565 version:1.0.0~alpha7+0

Changes:
--------
--- /work/SRC/openSUSE:Factory/cosmic-randr/cosmic-randr.changes        
2025-03-05 13:40:23.312216935 +0100
+++ /work/SRC/openSUSE:Factory/.cosmic-randr.new.30101/cosmic-randr.changes     
2025-05-08 18:26:33.100412050 +0200
@@ -1,0 +2,8 @@
+Thu Apr 24 18:01:38 UTC 2025 - Richard Rahl <rra...@opensuse.org>
+
+- Update to version 1.0.0~alpha7+0:
+  * fix: kdl for xwayland_primary
+  * feat: support xwayland primary-output
+  * chore: update cosmic-protocols
+
+-------------------------------------------------------------------

Old:
----
  cosmic-randr-1.0.0~alpha6+0.obscpio

New:
----
  cosmic-randr-1.0.0~alpha7+0.obscpio

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ cosmic-randr.spec ++++++
--- /var/tmp/diff_new_pack.GPDjOn/_old  2025-05-08 18:26:33.876444414 +0200
+++ /var/tmp/diff_new_pack.GPDjOn/_new  2025-05-08 18:26:33.876444414 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           cosmic-randr
-Version:        1.0.0~alpha6+0
+Version:        1.0.0~alpha7+0
 Release:        0
 Summary:        Library and utility for displaying and configuring Wayland 
outputs
 License:        MPL-2.0

++++++ _service ++++++
--- /var/tmp/diff_new_pack.GPDjOn/_old  2025-05-08 18:26:33.928446583 +0200
+++ /var/tmp/diff_new_pack.GPDjOn/_new  2025-05-08 18:26:33.932446750 +0200
@@ -5,7 +5,7 @@
     <param name="scm">git</param>
     <param name="revision">master</param>
     <param name="versionrewrite-pattern">epoch-(.*)\+0</param>
-    <param name="versionformat">1.0.0~alpha6+@TAG_OFFSET@</param>
+    <param name="versionformat">1.0.0~alpha7+@TAG_OFFSET@</param>
     <param name="versionrewrite-replacement">\1</param>
     <param name="package-meta">yes</param>
     <param name="filename">cosmic-randr</param>

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.GPDjOn/_old  2025-05-08 18:26:33.956447751 +0200
+++ /var/tmp/diff_new_pack.GPDjOn/_new  2025-05-08 18:26:33.960447917 +0200
@@ -1,6 +1,6 @@
 <servicedata>
 <service name="tar_scm">
                 <param 
name="url">https://github.com/pop-os/cosmic-randr.git</param>
-              <param 
name="changesrevision">c247019230c5d820dd1c3d47bc4e3c52fb03b42f</param></service></servicedata>
+              <param 
name="changesrevision">c32d0d6bfd1dc7a268642d2276db74c15c285ebb</param></service></servicedata>
 (No newline at EOF)
 

++++++ cosmic-randr-1.0.0~alpha6+0.obscpio -> 
cosmic-randr-1.0.0~alpha7+0.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cosmic-randr-1.0.0~alpha6+0/.git/ORIG_HEAD 
new/cosmic-randr-1.0.0~alpha7+0/.git/ORIG_HEAD
--- old/cosmic-randr-1.0.0~alpha6+0/.git/ORIG_HEAD      2025-02-20 
15:02:53.000000000 +0100
+++ new/cosmic-randr-1.0.0~alpha7+0/.git/ORIG_HEAD      2025-04-15 
14:03:43.000000000 +0200
@@ -1 +1 @@
-c247019230c5d820dd1c3d47bc4e3c52fb03b42f
+c32d0d6bfd1dc7a268642d2276db74c15c285ebb
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cosmic-randr-1.0.0~alpha6+0/.git/config 
new/cosmic-randr-1.0.0~alpha7+0/.git/config
--- old/cosmic-randr-1.0.0~alpha6+0/.git/config 2025-02-20 15:02:53.000000000 
+0100
+++ new/cosmic-randr-1.0.0~alpha7+0/.git/config 2025-04-15 14:03:43.000000000 
+0200
@@ -1,15 +1,11 @@
 [core]
-       repositoryformatversion = 1
+       repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true
 [remote "origin"]
        url = https://github.com/pop-os/cosmic-randr.git
        fetch = +refs/heads/*:refs/remotes/origin/*
-       promisor = true
-       partialclonefilter = tree:0
 [branch "master"]
        remote = origin
        merge = refs/heads/master
-[extensions]
-       partialClone = origin
Binary files old/cosmic-randr-1.0.0~alpha6+0/.git/index and 
new/cosmic-randr-1.0.0~alpha7+0/.git/index differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cosmic-randr-1.0.0~alpha6+0/.git/logs/HEAD 
new/cosmic-randr-1.0.0~alpha7+0/.git/logs/HEAD
--- old/cosmic-randr-1.0.0~alpha6+0/.git/logs/HEAD      2025-02-20 
15:02:53.000000000 +0100
+++ new/cosmic-randr-1.0.0~alpha7+0/.git/logs/HEAD      2025-04-15 
14:03:43.000000000 +0200
@@ -1,3 +1,3 @@
-0000000000000000000000000000000000000000 
c247019230c5d820dd1c3d47bc4e3c52fb03b42f Richard Rahl <rra...@opensuse.org> 
1740195078 +0100  clone: from https://github.com/pop-os/cosmic-randr.git
-c247019230c5d820dd1c3d47bc4e3c52fb03b42f 
c247019230c5d820dd1c3d47bc4e3c52fb03b42f Richard Rahl <rra...@opensuse.org> 
1740195078 +0100  checkout: moving from master to master
-c247019230c5d820dd1c3d47bc4e3c52fb03b42f 
c247019230c5d820dd1c3d47bc4e3c52fb03b42f Richard Rahl <rra...@opensuse.org> 
1740195078 +0100  reset: moving to master
+0000000000000000000000000000000000000000 
c32d0d6bfd1dc7a268642d2276db74c15c285ebb Richard Rahl 
<u...@luke.velociraptor-ling.ts.net> 1745517698 +0200   clone: from 
https://github.com/pop-os/cosmic-randr.git
+c32d0d6bfd1dc7a268642d2276db74c15c285ebb 
c32d0d6bfd1dc7a268642d2276db74c15c285ebb Richard Rahl 
<u...@luke.velociraptor-ling.ts.net> 1745517698 +0200   checkout: moving from 
master to master
+c32d0d6bfd1dc7a268642d2276db74c15c285ebb 
c32d0d6bfd1dc7a268642d2276db74c15c285ebb Richard Rahl 
<u...@luke.velociraptor-ling.ts.net> 1745517698 +0200   reset: moving to master
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/cosmic-randr-1.0.0~alpha6+0/.git/logs/refs/heads/master 
new/cosmic-randr-1.0.0~alpha7+0/.git/logs/refs/heads/master
--- old/cosmic-randr-1.0.0~alpha6+0/.git/logs/refs/heads/master 2025-02-20 
15:02:53.000000000 +0100
+++ new/cosmic-randr-1.0.0~alpha7+0/.git/logs/refs/heads/master 2025-04-15 
14:03:43.000000000 +0200
@@ -1 +1 @@
-0000000000000000000000000000000000000000 
c247019230c5d820dd1c3d47bc4e3c52fb03b42f Richard Rahl <rra...@opensuse.org> 
1740195078 +0100  clone: from https://github.com/pop-os/cosmic-randr.git
+0000000000000000000000000000000000000000 
c32d0d6bfd1dc7a268642d2276db74c15c285ebb Richard Rahl 
<u...@luke.velociraptor-ling.ts.net> 1745517698 +0200   clone: from 
https://github.com/pop-os/cosmic-randr.git
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/cosmic-randr-1.0.0~alpha6+0/.git/logs/refs/remotes/origin/HEAD 
new/cosmic-randr-1.0.0~alpha7+0/.git/logs/refs/remotes/origin/HEAD
--- old/cosmic-randr-1.0.0~alpha6+0/.git/logs/refs/remotes/origin/HEAD  
2025-02-20 15:02:53.000000000 +0100
+++ new/cosmic-randr-1.0.0~alpha7+0/.git/logs/refs/remotes/origin/HEAD  
2025-04-15 14:03:43.000000000 +0200
@@ -1 +1 @@
-0000000000000000000000000000000000000000 
c247019230c5d820dd1c3d47bc4e3c52fb03b42f Richard Rahl <rra...@opensuse.org> 
1740195078 +0100  clone: from https://github.com/pop-os/cosmic-randr.git
+0000000000000000000000000000000000000000 
c32d0d6bfd1dc7a268642d2276db74c15c285ebb Richard Rahl 
<u...@luke.velociraptor-ling.ts.net> 1745517698 +0200   clone: from 
https://github.com/pop-os/cosmic-randr.git
Binary files 
old/cosmic-randr-1.0.0~alpha6+0/.git/objects/pack/pack-4edd8edb85b288f158e8a7f09b985a7ea49d72e5.idx
 and 
new/cosmic-randr-1.0.0~alpha7+0/.git/objects/pack/pack-4edd8edb85b288f158e8a7f09b985a7ea49d72e5.idx
 differ
Binary files 
old/cosmic-randr-1.0.0~alpha6+0/.git/objects/pack/pack-4edd8edb85b288f158e8a7f09b985a7ea49d72e5.pack
 and 
new/cosmic-randr-1.0.0~alpha7+0/.git/objects/pack/pack-4edd8edb85b288f158e8a7f09b985a7ea49d72e5.pack
 differ
Binary files 
old/cosmic-randr-1.0.0~alpha6+0/.git/objects/pack/pack-4edd8edb85b288f158e8a7f09b985a7ea49d72e5.rev
 and 
new/cosmic-randr-1.0.0~alpha7+0/.git/objects/pack/pack-4edd8edb85b288f158e8a7f09b985a7ea49d72e5.rev
 differ
Binary files 
old/cosmic-randr-1.0.0~alpha6+0/.git/objects/pack/pack-573343167cdef7fa70dc348ef4f4fd6e3cb6fcfe.idx
 and 
new/cosmic-randr-1.0.0~alpha7+0/.git/objects/pack/pack-573343167cdef7fa70dc348ef4f4fd6e3cb6fcfe.idx
 differ
Binary files 
old/cosmic-randr-1.0.0~alpha6+0/.git/objects/pack/pack-573343167cdef7fa70dc348ef4f4fd6e3cb6fcfe.pack
 and 
new/cosmic-randr-1.0.0~alpha7+0/.git/objects/pack/pack-573343167cdef7fa70dc348ef4f4fd6e3cb6fcfe.pack
 differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/cosmic-randr-1.0.0~alpha6+0/.git/objects/pack/pack-573343167cdef7fa70dc348ef4f4fd6e3cb6fcfe.promisor
 
new/cosmic-randr-1.0.0~alpha7+0/.git/objects/pack/pack-573343167cdef7fa70dc348ef4f4fd6e3cb6fcfe.promisor
--- 
old/cosmic-randr-1.0.0~alpha6+0/.git/objects/pack/pack-573343167cdef7fa70dc348ef4f4fd6e3cb6fcfe.promisor
    2025-02-20 15:02:53.000000000 +0100
+++ 
new/cosmic-randr-1.0.0~alpha7+0/.git/objects/pack/pack-573343167cdef7fa70dc348ef4f4fd6e3cb6fcfe.promisor
    1970-01-01 01:00:00.000000000 +0100
@@ -1,10 +0,0 @@
-c247019230c5d820dd1c3d47bc4e3c52fb03b42f HEAD
-c247019230c5d820dd1c3d47bc4e3c52fb03b42f refs/heads/master
-6411dee11f01c6480a2e861f56de372b63525588 refs/heads/scale
-71fabbb382fa8cf750f50fb77c4ba014bff80056 refs/tags/epoch-1.0.0-alpha.1
-71fabbb382fa8cf750f50fb77c4ba014bff80056 refs/tags/epoch-1.0.0-alpha.2
-8d0938029f223016fde11aef4c5233ddbfdb2796 refs/tags/epoch-1.0.0-alpha.3
-311b944d3f549af21a57fd348d0ede8219dd7f9c refs/tags/epoch-1.0.0-alpha.4
-311b944d3f549af21a57fd348d0ede8219dd7f9c refs/tags/epoch-1.0.0-alpha.5
-da7df14acdf18d9ae36d1fec15a8a91e0be6a192 refs/tags/epoch-1.0.0-alpha.5.1
-c247019230c5d820dd1c3d47bc4e3c52fb03b42f refs/tags/epoch-1.0.0-alpha.6
Binary files 
old/cosmic-randr-1.0.0~alpha6+0/.git/objects/pack/pack-573343167cdef7fa70dc348ef4f4fd6e3cb6fcfe.rev
 and 
new/cosmic-randr-1.0.0~alpha7+0/.git/objects/pack/pack-573343167cdef7fa70dc348ef4f4fd6e3cb6fcfe.rev
 differ
Binary files 
old/cosmic-randr-1.0.0~alpha6+0/.git/objects/pack/pack-7f5901be02eead911ddfe855ed00f3c668dbad25.idx
 and 
new/cosmic-randr-1.0.0~alpha7+0/.git/objects/pack/pack-7f5901be02eead911ddfe855ed00f3c668dbad25.idx
 differ
Binary files 
old/cosmic-randr-1.0.0~alpha6+0/.git/objects/pack/pack-7f5901be02eead911ddfe855ed00f3c668dbad25.pack
 and 
new/cosmic-randr-1.0.0~alpha7+0/.git/objects/pack/pack-7f5901be02eead911ddfe855ed00f3c668dbad25.pack
 differ
Binary files 
old/cosmic-randr-1.0.0~alpha6+0/.git/objects/pack/pack-7f5901be02eead911ddfe855ed00f3c668dbad25.rev
 and 
new/cosmic-randr-1.0.0~alpha7+0/.git/objects/pack/pack-7f5901be02eead911ddfe855ed00f3c668dbad25.rev
 differ
Binary files 
old/cosmic-randr-1.0.0~alpha6+0/.git/objects/pack/pack-d71b32e58edf96bffd438237289b7b77ff2e1edd.idx
 and 
new/cosmic-randr-1.0.0~alpha7+0/.git/objects/pack/pack-d71b32e58edf96bffd438237289b7b77ff2e1edd.idx
 differ
Binary files 
old/cosmic-randr-1.0.0~alpha6+0/.git/objects/pack/pack-d71b32e58edf96bffd438237289b7b77ff2e1edd.pack
 and 
new/cosmic-randr-1.0.0~alpha7+0/.git/objects/pack/pack-d71b32e58edf96bffd438237289b7b77ff2e1edd.pack
 differ
Binary files 
old/cosmic-randr-1.0.0~alpha6+0/.git/objects/pack/pack-d71b32e58edf96bffd438237289b7b77ff2e1edd.rev
 and 
new/cosmic-randr-1.0.0~alpha7+0/.git/objects/pack/pack-d71b32e58edf96bffd438237289b7b77ff2e1edd.rev
 differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cosmic-randr-1.0.0~alpha6+0/.git/packed-refs 
new/cosmic-randr-1.0.0~alpha7+0/.git/packed-refs
--- old/cosmic-randr-1.0.0~alpha6+0/.git/packed-refs    2025-02-20 
15:02:53.000000000 +0100
+++ new/cosmic-randr-1.0.0~alpha7+0/.git/packed-refs    2025-04-15 
14:03:43.000000000 +0200
@@ -1,5 +1,5 @@
 # pack-refs with: peeled fully-peeled sorted 
-c247019230c5d820dd1c3d47bc4e3c52fb03b42f refs/remotes/origin/master
+c32d0d6bfd1dc7a268642d2276db74c15c285ebb refs/remotes/origin/master
 6411dee11f01c6480a2e861f56de372b63525588 refs/remotes/origin/scale
 71fabbb382fa8cf750f50fb77c4ba014bff80056 refs/tags/epoch-1.0.0-alpha.1
 71fabbb382fa8cf750f50fb77c4ba014bff80056 refs/tags/epoch-1.0.0-alpha.2
@@ -8,3 +8,4 @@
 311b944d3f549af21a57fd348d0ede8219dd7f9c refs/tags/epoch-1.0.0-alpha.5
 da7df14acdf18d9ae36d1fec15a8a91e0be6a192 refs/tags/epoch-1.0.0-alpha.5.1
 c247019230c5d820dd1c3d47bc4e3c52fb03b42f refs/tags/epoch-1.0.0-alpha.6
+c32d0d6bfd1dc7a268642d2276db74c15c285ebb refs/tags/epoch-1.0.0-alpha.7
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cosmic-randr-1.0.0~alpha6+0/.git/refs/heads/master 
new/cosmic-randr-1.0.0~alpha7+0/.git/refs/heads/master
--- old/cosmic-randr-1.0.0~alpha6+0/.git/refs/heads/master      2025-02-20 
15:02:53.000000000 +0100
+++ new/cosmic-randr-1.0.0~alpha7+0/.git/refs/heads/master      2025-04-15 
14:03:43.000000000 +0200
@@ -1 +1 @@
-c247019230c5d820dd1c3d47bc4e3c52fb03b42f
+c32d0d6bfd1dc7a268642d2276db74c15c285ebb
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cosmic-randr-1.0.0~alpha6+0/Cargo.lock 
new/cosmic-randr-1.0.0~alpha7+0/Cargo.lock
--- old/cosmic-randr-1.0.0~alpha6+0/Cargo.lock  2025-02-20 15:02:53.000000000 
+0100
+++ new/cosmic-randr-1.0.0~alpha7+0/Cargo.lock  2025-04-15 14:03:43.000000000 
+0200
@@ -182,7 +182,7 @@
 [[package]]
 name = "cosmic-protocols"
 version = "0.1.0"
-source = 
"git+https://github.com/pop-os/cosmic-protocols.git#d218c76b58c7a3b20dd5e7943f93fc306a1b81b8";
+source = 
"git+https://github.com/pop-os/cosmic-protocols.git#67df697105486fa4c9dd6ce00889c8b0526c9bb4";
 dependencies = [
  "bitflags",
  "wayland-backend",
@@ -267,7 +267,7 @@
 checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d"
 dependencies = [
  "libc",
- "windows-sys 0.59.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -679,7 +679,7 @@
  "errno",
  "libc",
  "linux-raw-sys",
- "windows-sys 0.59.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cosmic-randr-1.0.0~alpha6+0/cli/src/main.rs 
new/cosmic-randr-1.0.0~alpha7+0/cli/src/main.rs
--- old/cosmic-randr-1.0.0~alpha6+0/cli/src/main.rs     2025-02-20 
15:02:53.000000000 +0100
+++ new/cosmic-randr-1.0.0~alpha7+0/cli/src/main.rs     2025-04-15 
14:03:43.000000000 +0200
@@ -102,6 +102,17 @@
         #[arg(long)]
         test: bool,
     },
+
+    /// Xwayland compatibility options
+    #[command(arg_required_else_help = true)]
+    Xwayland {
+        /// Set output as primary
+        #[arg(long, value_name = "OUTPUT")]
+        primary: Option<String>,
+        /// Unset primary output
+        #[arg(long, conflicts_with = "primary")]
+        no_primary: bool,
+    },
 }
 
 #[derive(Clone, Copy, Debug, Eq, PartialEq, PartialOrd, Ord, ValueEnum)]
@@ -235,6 +246,8 @@
         Commands::Mode(mode) => app.mode(mode).await,
 
         Commands::Position { output, x, y, test } => app.set_position(&output, 
x, y, test).await,
+
+        Commands::Xwayland { primary, .. } => 
app.set_xwayland_primary(primary.as_deref()).await,
     }
 }
 
@@ -345,6 +358,16 @@
         self.auto_correct_offsets(output, test).await
     }
 
+    async fn set_xwayland_primary(
+        &mut self,
+        output: Option<&str>,
+    ) -> Result<(), Box<dyn std::error::Error>> {
+        self.dispatch_until_manager_done().await?;
+        self.context.set_xwayland_primary(output)?;
+        self.dispatch_until_manager_done().await?;
+        Ok(())
+    }
+
     // Offset outputs in case of negative positioning.
     async fn auto_correct_offsets(
         &mut self,
@@ -558,17 +581,25 @@
                 (Color::Yellow.bold().paint("\n  Adaptive Sync: "))
                 (match sync {
                     AdaptiveSyncStateExt::Always => {
-                        Color::Green.paint("true\n")
+                        Color::Green.paint("true")
                     },
                     AdaptiveSyncStateExt::Automatic => {
-                        Color::Green.paint("automatic\n")
+                        Color::Green.paint("automatic")
                     },
                     _ => {
-                        Color::Red.paint("false\n")
+                        Color::Red.paint("false")
                     }
                 })
             }
-            (Color::Yellow.bold().paint("\n  Modes:"))
+            if let Some(xwayland_primary) = head.xwayland_primary {
+                (Color::Yellow.bold().paint("\n  Xwayland primary: "))
+                (if xwayland_primary {
+                    Color::Green.paint("true")
+                } else {
+                    Color::Red.paint("false")
+                })
+            }
+            (Color::Yellow.bold().paint("\n\n  Modes:"))
         );
 
         for mode in head.modes.values() {
@@ -643,6 +674,15 @@
                 })
                 "\"\n"
             }
+            if let Some(xwayland_primary) = head.xwayland_primary {
+                "  xwayland_primary "
+                (if xwayland_primary {
+                    "#true"
+                } else {
+                    "#false"
+                })
+                "\n"
+            }
             if !head.serial_number.is_empty() {
                 "  serial_number=\"" (head.serial_number) "\"\n"
             }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cosmic-randr-1.0.0~alpha6+0/lib/src/context.rs 
new/cosmic-randr-1.0.0~alpha7+0/lib/src/context.rs
--- old/cosmic-randr-1.0.0~alpha6+0/lib/src/context.rs  2025-02-20 
15:02:53.000000000 +0100
+++ new/cosmic-randr-1.0.0~alpha7+0/lib/src/context.rs  2025-04-15 
14:03:43.000000000 +0200
@@ -8,7 +8,9 @@
 };
 use 
cosmic_protocols::output_management::v1::client::zcosmic_output_configuration_v1::ZcosmicOutputConfigurationV1;
 use 
cosmic_protocols::output_management::v1::client::zcosmic_output_head_v1::AdaptiveSyncStateExt;
-use 
cosmic_protocols::output_management::v1::client::zcosmic_output_manager_v1::ZcosmicOutputManagerV1;
+use 
cosmic_protocols::output_management::v1::client::zcosmic_output_manager_v1::{
+    self, ZcosmicOutputManagerV1,
+};
 use std::collections::HashMap;
 use std::fmt;
 use tachyonix::Sender;
@@ -78,6 +80,7 @@
     PositionForMirroredOutput,
     MirroringItself,
     UnsupportedVrrState,
+    UnsupportedXwaylandPrimary,
 }
 
 impl fmt::Display for ConfigurationError {
@@ -86,12 +89,15 @@
             Self::OutputAlreadyConfigured => f.write_str("Output configured 
twice"),
             Self::UnknownOutput => f.write_str("Unknown output"),
             Self::ModeNotFound => f.write_str("Unknown or unsupported mode"),
-            Self::NoCosmicExtension => f.write_str("Mirroring isn't available 
outside COSMIC"),
+            Self::NoCosmicExtension => f.write_str("Feature isn't available 
outside COSMIC"),
             Self::PositionForMirroredOutput => f.write_str("You cannot 
position a mirrored output"),
             Self::MirroringItself => f.write_str("Output mirroring itself"),
             Self::UnsupportedVrrState => {
                 f.write_str("Automatic VRR state management isn't available 
outside COSMIC")
             }
+            Self::UnsupportedXwaylandPrimary => f.write_str(
+                "Xwayland compatibility options not available outside or on 
this version of COSMIC",
+            ),
         }
     }
 }
@@ -348,6 +354,32 @@
         }
     }
 
+    pub fn set_xwayland_primary(&self, output: Option<&str>) -> Result<(), 
ConfigurationError> {
+        let Some(cosmic_output_manager) = self.cosmic_output_manager.as_ref() 
else {
+            return Err(ConfigurationError::NoCosmicExtension);
+        };
+        if cosmic_output_manager.version()
+            < zcosmic_output_manager_v1::REQ_SET_XWAYLAND_PRIMARY_SINCE
+        {
+            return Err(ConfigurationError::UnsupportedXwaylandPrimary);
+        }
+
+        match output {
+            None => cosmic_output_manager.set_xwayland_primary(None),
+            Some(name) => {
+                let head = self
+                    .output_heads
+                    .values()
+                    .filter(|head| head.cosmic_head.is_some())
+                    .find(|head| head.name == name)
+                    .ok_or(ConfigurationError::UnknownOutput)?;
+                
cosmic_output_manager.set_xwayland_primary(Some(head.cosmic_head.as_ref().unwrap()))
+            }
+        };
+
+        Ok(())
+    }
+
     pub fn connect(sender: Sender<Message>) -> Result<(Self, 
EventQueue<Self>), Error> {
         let connection = Connection::connect_to_env()?;
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cosmic-randr-1.0.0~alpha6+0/lib/src/output_head.rs 
new/cosmic-randr-1.0.0~alpha7+0/lib/src/output_head.rs
--- old/cosmic-randr-1.0.0~alpha6+0/lib/src/output_head.rs      2025-02-20 
15:02:53.000000000 +0100
+++ new/cosmic-randr-1.0.0~alpha7+0/lib/src/output_head.rs      2025-04-15 
14:03:43.000000000 +0200
@@ -40,7 +40,9 @@
     pub serial_number: String,
     pub transform: Option<Transform>,
     pub mirroring: Option<String>,
+    pub xwayland_primary: Option<bool>,
     pub wlr_head: ZwlrOutputHeadV1,
+    pub cosmic_head: Option<ZcosmicOutputHeadV1>,
 }
 
 impl Dispatch<ZwlrOutputHeadV1, ()> for Context {
@@ -54,8 +56,8 @@
     ) {
         let head = state
             .output_heads
-            .entry(proxy.id())
-            .or_insert_with(|| OutputHead::new(proxy.clone()));
+            .get_mut(&proxy.id())
+            .expect("Inert WlrOutputHead");
 
         match event {
             ZwlrOutputHeadEvent::Name { name } => {
@@ -166,6 +168,9 @@
             ZcosmicOutputHeadEvent::AdaptiveSyncExt { state } => {
                 head.adaptive_sync = state.into_result().ok();
             }
+            ZcosmicOutputHeadEvent::XwaylandPrimary { state } => {
+                head.xwayland_primary = Some(state != 0);
+            }
             _ => tracing::debug!(?event, "unknown event"),
         }
     }
@@ -173,7 +178,7 @@
 
 impl OutputHead {
     #[must_use]
-    pub fn new(wlr_head: ZwlrOutputHeadV1) -> Self {
+    pub fn new(wlr_head: ZwlrOutputHeadV1, cosmic_head: 
Option<ZcosmicOutputHeadV1>) -> Self {
         Self {
             adaptive_sync: None,
             adaptive_sync_support: None,
@@ -192,7 +197,9 @@
             serial_number: String::new(),
             transform: None,
             mirroring: None,
+            xwayland_primary: None,
             wlr_head,
+            cosmic_head,
         }
     }
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/cosmic-randr-1.0.0~alpha6+0/lib/src/output_manager.rs 
new/cosmic-randr-1.0.0~alpha7+0/lib/src/output_manager.rs
--- old/cosmic-randr-1.0.0~alpha6+0/lib/src/output_manager.rs   2025-02-20 
15:02:53.000000000 +0100
+++ new/cosmic-randr-1.0.0~alpha7+0/lib/src/output_manager.rs   2025-04-15 
14:03:43.000000000 +0200
@@ -23,15 +23,21 @@
     ) {
         match event {
             ZwlrOutputManagerEvent::Head { head } => {
-                if let Some(cosmic_extension) = 
state.cosmic_output_manager.as_ref() {
-                    cosmic_extension.get_head(&head, handle, head.id());
+                let cosmic_head =
+                    if let Some(cosmic_extension) = 
state.cosmic_output_manager.as_ref() {
+                        let cosmic_head = cosmic_extension.get_head(&head, 
handle, head.id());
 
-                    // Use `sync` callback to wait until `get_head` is 
processed and
-                    // we also have cosmic extension events.
-                    let callback = conn.display().sync(handle, ());
-                    state.cosmic_manager_sync_callback = Some(callback);
-                }
-                state.output_heads.insert(head.id(), OutputHead::new(head));
+                        // Use `sync` callback to wait until `get_head` is 
processed and
+                        // we also have cosmic extension events.
+                        let callback = conn.display().sync(handle, ());
+                        state.cosmic_manager_sync_callback = Some(callback);
+                        Some(cosmic_head)
+                    } else {
+                        None
+                    };
+                state
+                    .output_heads
+                    .insert(head.id(), OutputHead::new(head, cosmic_head));
             }
 
             ZwlrOutputManagerEvent::Done { serial } => {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cosmic-randr-1.0.0~alpha6+0/lib/src/wl_registry.rs 
new/cosmic-randr-1.0.0~alpha7+0/lib/src/wl_registry.rs
--- old/cosmic-randr-1.0.0~alpha6+0/lib/src/wl_registry.rs      2025-02-20 
15:02:53.000000000 +0100
+++ new/cosmic-randr-1.0.0~alpha7+0/lib/src/wl_registry.rs      2025-04-15 
14:03:43.000000000 +0200
@@ -45,7 +45,7 @@
             if "zcosmic_output_manager_v1" == &interface[..] {
                 state.cosmic_output_manager = 
Some(registry.bind::<ZcosmicOutputManagerV1, _, _>(
                     name,
-                    version.min(2),
+                    version.min(3),
                     handle,
                     (),
                 ))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cosmic-randr-1.0.0~alpha6+0/shell/src/lib.rs 
new/cosmic-randr-1.0.0~alpha7+0/shell/src/lib.rs
--- old/cosmic-randr-1.0.0~alpha6+0/shell/src/lib.rs    2025-02-20 
15:02:53.000000000 +0100
+++ new/cosmic-randr-1.0.0~alpha7+0/shell/src/lib.rs    2025-04-15 
14:03:43.000000000 +0200
@@ -52,6 +52,7 @@
     pub current: Option<ModeKey>,
     pub adaptive_sync: Option<AdaptiveSyncState>,
     pub adaptive_sync_availability: Option<AdaptiveSyncAvailability>,
+    pub xwayland_primary: Option<bool>,
 }
 
 impl Output {
@@ -71,6 +72,7 @@
             current: None,
             adaptive_sync: None,
             adaptive_sync_availability: None,
+            xwayland_primary: None,
         }
     }
 }
@@ -373,6 +375,14 @@
                         }
                     }
                 }
+
+                "xwayland_primary" => {
+                    if let Some(entry) = node.entries().first() {
+                        if let Some(val) = entry.value().as_bool() {
+                            output.xwayland_primary = Some(val);
+                        }
+                    }
+                }
 
                 _ => (),
             }

++++++ cosmic-randr.obsinfo ++++++
--- /var/tmp/diff_new_pack.GPDjOn/_old  2025-05-08 18:26:34.104453923 +0200
+++ /var/tmp/diff_new_pack.GPDjOn/_new  2025-05-08 18:26:34.108454090 +0200
@@ -1,5 +1,5 @@
 name: cosmic-randr
-version: 1.0.0~alpha6+0
-mtime: 1740060173
-commit: c247019230c5d820dd1c3d47bc4e3c52fb03b42f
+version: 1.0.0~alpha7+0
+mtime: 1744718623
+commit: c32d0d6bfd1dc7a268642d2276db74c15c285ebb
 

++++++ vendor.tar.zst ++++++
/work/SRC/openSUSE:Factory/cosmic-randr/vendor.tar.zst 
/work/SRC/openSUSE:Factory/.cosmic-randr.new.30101/vendor.tar.zst differ: char 
10, line 1

Reply via email to