Skip to content

Enable the wayland-data-control for arboard - #46938

Merged
jdm merged 1 commit into
servo:mainfrom
TheZoq2:clipboard-feature
Aug 8, 2026
Merged

jdm merged 1 commit into
servo:mainfrom
TheZoq2:clipboard-feature

Conversation

@TheZoq2

@TheZoq2 TheZoq2 commented Aug 2, 2026

Copy link
Copy Markdown
Contributor

Addresses #45470 by enabling the wayland-data-control feature as suggested by Gae24. I am not entirely sure what the interaction of this is with the ext-data-control-v1 and wlr-data-control-unstable-v1 features is, I checked the compatibility list and noticed that one of the two isn't supported on kwin, but clipboard does work with kwin on my system.

I also tested this on Niri where clipboard did not work before, and works with this change. I don't have any other wayland WMs to test with ready, but if you want further testing i'm happy to install some.

@servo-highfive servo-highfive added the S-awaiting-review There is new code that needs to be reviewed. label Aug 2, 2026
@mrobinson mrobinson changed the title Enable clipboard on wayland Enable the wayland-data-control for arboard Aug 2, 2026
@TheZoq2
TheZoq2 force-pushed the clipboard-feature branch from aec1be1 to b6122e3 Compare August 2, 2026 17:42
@Narfinger

Copy link
Copy Markdown
Contributor

You probably need to add the double dependencies that ./mach test-tidy finds into deny.toml. Because this only happens on desktop platform, I think the extra duplications are worth while.

@yezhizhen yezhizhen left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

servo/deny.toml

Lines 91 to 92 in bffc115

# List of crates to skip for the duplicate check:
skip = [

As suggested by Chris, you can add "petgraph" and "fixedbitset" to the list

@TheZoq2
TheZoq2 force-pushed the clipboard-feature branch from b6122e3 to f6884a3 Compare August 8, 2026 07:47
@TheZoq2
TheZoq2 requested a review from atbrakhi as a code owner August 8, 2026 07:47
@TheZoq2

TheZoq2 commented Aug 8, 2026

Copy link
Copy Markdown
Contributor Author

Thanks! I added them at the bottom of the file with a comment mentioning arboard.

I also tried the mach command but it errored with

 ➤  Checking config file (./servo-tidy.toml)...
 ➤  Checking directories for correct file extensions...
 ➤  Checking files for tidiness...
 ➤  Checking type annotations in python files ...
 ➤  Skipping WPT lint checks, because no relevant files changed.
 ➤  Running `cargo-deny` checks...
Error running mach:

    ['test-tidy']

The error occurred in code that was called by the mach command. This is either
a bug in the called code itself or in the way that mach is calling it.

If filing a bug, please include the full output of mach, including this error
message.

The details of the failure are as follows:

FileNotFoundError: [Errno 2] No such file or directory: 'cargo-deny'

  File "/home/frans/Documents/rust/servo/python/servo/testing_commands.py", line 319, in test_tidy
    tidy_failed = tidy.scan(not all_files, not no_progress, github_annotations)
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/frans/Documents/rust/servo/python/tidy/tidy.py", line 1139, in scan
    for error in errors:
  File "/home/frans/Documents/rust/servo/python/tidy/tidy.py", line 500, in run_cargo_deny_lints
    result = subprocess.run(
             ^^^^^^^^^^^^^^^
  File "/home/frans/.local/share/uv/python/cpython-3.11.13-linux-x86_64-gnu/lib/python3.11/subprocess.py", line 548, in run
    with Popen(*popenargs, **kwargs) as process:
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/frans/.local/share/uv/python/cpython-3.11.13-linux-x86_64-gnu/lib/python3.11/subprocess.py", line 1026, in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
  File "/home/frans/.local/share/uv/python/cpython-3.11.13-linux-x86_64-gnu/lib/python3.11/subprocess.py", line 1955, in _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)

@Gae24

Gae24 commented Aug 8, 2026

Copy link
Copy Markdown
Contributor

Thanks! I added them at the bottom of the file with a comment mentioning arboard.

I also tried the mach command but it errored with

 ➤  Checking config file (./servo-tidy.toml)...
 ➤  Checking directories for correct file extensions...
 ➤  Checking files for tidiness...
 ➤  Checking type annotations in python files ...
 ➤  Skipping WPT lint checks, because no relevant files changed.
 ➤  Running `cargo-deny` checks...
Error running mach:

    ['test-tidy']

The error occurred in code that was called by the mach command. This is either
a bug in the called code itself or in the way that mach is calling it.

If filing a bug, please include the full output of mach, including this error
message.

The details of the failure are as follows:

FileNotFoundError: [Errno 2] No such file or directory: 'cargo-deny'

  File "/home/frans/Documents/rust/servo/python/servo/testing_commands.py", line 319, in test_tidy
    tidy_failed = tidy.scan(not all_files, not no_progress, github_annotations)
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/frans/Documents/rust/servo/python/tidy/tidy.py", line 1139, in scan
    for error in errors:
  File "/home/frans/Documents/rust/servo/python/tidy/tidy.py", line 500, in run_cargo_deny_lints
    result = subprocess.run(
             ^^^^^^^^^^^^^^^
  File "/home/frans/.local/share/uv/python/cpython-3.11.13-linux-x86_64-gnu/lib/python3.11/subprocess.py", line 548, in run
    with Popen(*popenargs, **kwargs) as process:
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/frans/.local/share/uv/python/cpython-3.11.13-linux-x86_64-gnu/lib/python3.11/subprocess.py", line 1026, in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
  File "/home/frans/.local/share/uv/python/cpython-3.11.13-linux-x86_64-gnu/lib/python3.11/subprocess.py", line 1955, in _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)

You need cargo deny, ./mach bootstrap should've installed it.

@TheZoq2
TheZoq2 force-pushed the clipboard-feature branch from f6884a3 to d8e0b49 Compare August 8, 2026 18:34
Signed-off-by: TheZoq2 <mail@fransskarman.com>
Change-Id: Ib83acd729291eb6a2df71071b1ee59c76a6a6964
@TheZoq2
TheZoq2 force-pushed the clipboard-feature branch from d8e0b49 to c2e1b69 Compare August 8, 2026 18:34
@TheZoq2

TheZoq2 commented Aug 8, 2026

Copy link
Copy Markdown
Contributor Author

Yep, that did it, thanks!

@servo-highfive servo-highfive removed the S-awaiting-review There is new code that needs to be reviewed. label Aug 8, 2026
@jdm
jdm added this pull request to the merge queue Aug 8, 2026
@servo-highfive servo-highfive added the S-awaiting-merge The PR is in the process of compiling and running tests on the automated CI. label Aug 8, 2026
Merged via the queue into servo:main with commit ba14b47 Aug 8, 2026
33 checks passed
@servo-highfive servo-highfive removed the S-awaiting-merge The PR is in the process of compiling and running tests on the automated CI. label Aug 8, 2026
pull Bot pushed a commit to AKJUS/servo that referenced this pull request Aug 9, 2026
The dependencies introduced in servo#46938 weren't updated to the latest
releases so it is possible to update them to remove the petgraph and
fixedbitset duplicate dependencies.

Testing: No tests for Cargo.lock update.

Signed-off-by: Alex Touchet <26315797+atouchet@users.noreply.github.com>
RichardTjokroutomo pushed a commit to RichardTjokroutomo/servo that referenced this pull request Oct 6, 2026
Addresses servo#45470 by enabling the `wayland-data-control` feature as
suggested by Gae24. I am not entirely sure what the interaction of this
is with the
[ext-data-control-v1](https://wayland.app/protocols/ext-data-control-v1)
and
[wlr-data-control-unstable-v1](https://wayland.app/protocols/wlr-data-control-unstable-v1)
features is, I checked the compatibility list and noticed that one of
the two isn't supported on kwin, but clipboard does work with kwin on my
system.

I also tested this on Niri where clipboard did not work before, and
works with this change. I don't have any other wayland WMs to test with
ready, but if you want further testing i'm happy to install some.

Signed-off-by: TheZoq2 <mail@fransskarman.com>
RichardTjokroutomo pushed a commit to RichardTjokroutomo/servo that referenced this pull request Oct 6, 2026
The dependencies introduced in servo#46938 weren't updated to the latest
releases so it is possible to update them to remove the petgraph and
fixedbitset duplicate dependencies.

Testing: No tests for Cargo.lock update.

Signed-off-by: Alex Touchet <26315797+atouchet@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants