Utility for miscellaneous wlroots extensions
5790d5eb — Ronan Pigott a month ago
update README with a warning, example, and links
a9f56992 — Jan Beich a month ago
keyboard: unbreak build without memfd_create
6859ba5a — Ronan Pigott a month ago
support foreign toplevel v3



You can also use your local clone with git send-email.


wlrctl is a command line utility for miscellaneous wlroots Wayland extensions.

At this time, wlrctl supports the foreign-toplevel-mangement (window/toplevel command), virtual-keyboard (keyboard command), and virtual-pointer (pointer command) protocols.


At the time of this writing, the release version of wlroots has serious session breaking bugs and crashes related to these protocols. If you want to use wlrctl with wlroots/sway you will need a wlroots 0.12+ or sway 1.6+ version.


There is an AUR package for wlrctl here. And an openSUSE package here.

Otherwise, build with meson/ninja e.g.

$ meson setup --prefix=/usr/local build
$ ninja -C build install

#Features and Examples

wlrctl is still experimental, and has just a few basic features. Check the man page wlrctl(1) for full details.

Some example uses are:

$ wlrctl keyboard type 'Hello, world!'

... to type some text using a virtual keyboard.

$ wlrctl pointer move 50 -70

... to move the cursor 50 pixels right and 70 pixels up.

$ wlrctl window focus firefox || swaymsg exec firefox

... to focus firefox if it is running, otherwise start firefox.

$ wlrctl toplevel waitfor mpv state:fullscreen && makoctl dismiss

... to dismiss desktop notifications when mpv becomes fullscreen


You can send patches to the mailing list or submit an issue on the issue tracker.