Input-leap fedora 39 GNOME Wayland

I would like to use input-leap as a server on a GNOME Wayland Fedora Workstation 39, and as a client on a GNOME-Wayland Fedora Silverblue 39 workstation, as well as as a client on a macos installation.

I Installed the ei-enabled package from this COPR ofourdan/input-leap-ei-enabled

I got this output:

❯ input-leaps --debug DEBUG2 --no-daemon --name i --use-ei --config ~/.config/input-leap/default.conf
[2023-11-14T08:06:33] DEBUG: opening configuration "/home/bennyp/.config/input-leap/default.conf"
[2023-11-14T08:06:33] DEBUG: configuration read successfully
[2023-11-14T08:06:33] DEBUG1: starting server
[2023-11-14T08:06:33] DEBUG1: thread 0x00000002 entry
[2023-11-14T08:06:33] FATAL: An error occurred: Missing libportal InputCapture portal support

[2023-11-14T08:06:33] DEBUG1: caught cancel on thread 0x00000002

If i uninstall and use the non-copr version

❯ sudo dnf remove input-leap && sudo dnf install input-leap-2.4.0^20230918git004a54fb-1.fc39

in that case I get the same error as above

Then, running the GUI:

❯ input-leap --debug DEBUG2

I see in the input-leap log window

[2023-11-14T08:10:06] INFO: starting server
[2023-11-14T08:10:06] INFO: config file: /tmp/InputLeap.bnGzFW
[2023-11-14T08:10:06] INFO: log level: INFO
[2023-11-14T08:10:06] FATAL: An error occurred: Missing libportal InputCapture portal support
[2023-11-14T08:10:07] ERROR: process exited with error code: 1
[2023-11-14T08:10:07] INFO: detected process not running, auto restarting

cross-post: FATAL: An error occurred: Missing libportal InputCapture portal support · Issue #1728 · input-leap/input-leap · GitHub

Did you install libportal from that COPR as well? Fedora’s libportal doesn’t yet have

Thanks for the tip!

I performed the following on the server

sudo dnf remove input-leap
sudo dnf copr enable ofourdan/input-leap-ei-enabled
sudo dnf install input-leap --repo copr:copr.fedorainfracloud.org:ofourdan:input-leap-ei-enabled
sudo dnf reinstall libportal --repo copr:copr.fedorainfracloud.org:ofourdan:input-leap-ei-enabled

Then i logged out and started input-leap, and that was enough to get a session working between fedora and mac os :tada:

I then performed the same steps on the silverblue client (in a toolbox), but the copy linked doesn’t have an aarch64 build, so i guess ill have to sit on my hands for that one. @ofourdan would you be willing to add an aarch64 build to your copr? anything I could do to help?

This is already a huge improvement though

So I’ve installed input-leap and libportal from @ofourdan’s COPR repo and when I configure it and try to start the server I gets asked to allow reading input and click the Share button but then gnome-shell crashes.

Is @ofourdan’s COPR repo already out of date with Fedora 39?

Yeah, Neal has updated input-leap in Fedora (rawhide and F39) to enable EI support, best is to use the “official” input-leap package from Fedora instead of my build in copr.

So today I updated my Fedora Workstation 39 GNOME input-leap server from the first package to the second package

1st package:

Name         : input-leap
Version      : 2.4.0^20230914git4ecedf1d
Release      : 1.fc39
Architecture : src
Size         : 4.9 M
Source       : None
Repository   : copr:copr.fedorainfracloud.org:ofourdan:input-leap-ei-enabled

2nd package:

Name         : input-leap
Version      : 2.4.0^20230918git004a54fb
Release      : 1.fc39
Architecture : x86_64
Size         : 805 k
Source       : input-leap-2.4.0^20230918git004a54fb-1.fc39.src.rpm
Repository   : fedora

input-leap no longer works, and clicking the “stop” button crashes my GNOME session. This is exactly what I had prior to installing the COPR packages.

I reverted the action with this command

sudo dnf remove input-leap && sudo dnf install input-leap  --repo copr:copr.fedorainfracloud.org:ofourdan:input-leap-ei-enabled

and found that input-leap immediately started working again

Hi,

The official package doesn’t work for me either in F39.

The solution shared by @bennyp works (but I had to install avahi-compat-libdns_sd also)

Do some of you know if input-leap can be started without having the wayland error message to close, and/or having the capture input to manually turn on?

Developer/maintainer of Input Leap here. I recently made a change to the GUI, which removes the Wayland error, and replaces it with an info message instead, just to keep our issue tracker tidy.

What I may do is add a compile-time option, so it can be disabled. But currently, it’ll only display the message when the QPA platformType is matched to wayland, and doesn’t show the message when running under X11.

The InputCapture authorization hasn’t changed yet, but we are aware.

Note to inform people: Sway/wlroots-based WMs are not supported by our Wayland backend. I can’t see this changing.

Thank you @shymega

For those following along from home, today I build input-leap from git with the following:

1. `libportal`'s InputCapture portal stuff was merged but has not yet been release, so we need to clone and build the latest libportal.
~/Developer 
❯ git clone git@github.com:flatpak/libportal.git
~/Developer took 2s 
❯ cd libportal

libportal on  main [?] is 📦 v0.7.1 
❯ pip install jinja2 pygments typogrify

libportal on  main [?] is 📦 v0.7.1 took 7s 
❯ meson _build

libportal on  main [?] is 📦 v0.7.1 took 35s 
❯ ninja -C _build
ninja: Entering directory `_build'
[31/31] Generating doc/libportal-doc with a custom command
WARNING: Unknown namespace Gtk
use [class@Gtk.FileChooserNative] instead of [method@Portal.open_file].
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~

libportal on  main [?] is 📦 v0.7.1 
❯ cd _build

libportal/_build on  main [?] via C v13.2.1-gcc 
❯ sudo meson install
ninja: Entering directory `/home/bennyp/Developer/libportal/_build'
ninja: no work to do.
Installing libportal/portal-enums.h to /usr/local/include/libportal
Installing libportal/libportal.so.1.0.0 to /usr/local/lib64
Installing libportal/Xdp-1.0.gir to /usr/local/share/gir-1.0
Installing libportal/Xdp-1.0.typelib to /usr/local/lib64/girepository-1.0
Installing libportal/libportal.vapi to /usr/local/share/vala/vapi
Installing /home/bennyp/Developer/libportal/_build/doc/libportal-1/libportal.html to /usr/local/share/doc/libportal-1
Installing /home/bennyp/Developer/libportal/_build/doc/libportal-1/classes_hierarchy.html to /usr/local/share/doc/libportal-1
...
Installing /home/bennyp/Developer/libportal/_build/doc/libportal-1/favicon-128x128.png to /usr/local/share/doc/libportal-1
Installing /home/bennyp/Developer/libportal/libportal/portal.h to /usr/local/include/libportal
Installing /home/bennyp/Developer/libportal/libportal/portal-helpers.h to /usr/local/include/libportal
Installing /home/bennyp/Developer/libportal/libportal/account.h to /usr/local/include/libportal
Installing /home/bennyp/Developer/libportal/libportal/background.h to /usr/local/include/libportal
Installing /home/bennyp/Developer/libportal/libportal/camera.h to /usr/local/include/libportal
Installing /home/bennyp/Developer/libportal/libportal/dynamic-launcher.h to /usr/local/include/libportal
Installing /home/bennyp/Developer/libportal/libportal/email.h to /usr/local/include/libportal
Installing /home/bennyp/Developer/libportal/libportal/filechooser.h to /usr/local/include/libportal
Installing /home/bennyp/Developer/libportal/libportal/inhibit.h to /usr/local/include/libportal
Installing /home/bennyp/Developer/libportal/libportal/inputcapture.h to /usr/local/include/libportal
Installing /home/bennyp/Developer/libportal/libportal/inputcapture-zone.h to /usr/local/include/libportal
Installing /home/bennyp/Developer/libportal/libportal/inputcapture-pointerbarrier.h to /usr/local/include/libportal
Installing /home/bennyp/Developer/libportal/libportal/location.h to /usr/local/include/libportal
Installing /home/bennyp/Developer/libportal/libportal/notification.h to /usr/local/include/libportal
Installing /home/bennyp/Developer/libportal/libportal/openuri.h to /usr/local/include/libportal
Installing /home/bennyp/Developer/libportal/libportal/parent.h to /usr/local/include/libportal
Installing /home/bennyp/Developer/libportal/libportal/print.h to /usr/local/include/libportal
Installing /home/bennyp/Developer/libportal/libportal/remote.h to /usr/local/include/libportal
Installing /home/bennyp/Developer/libportal/libportal/screenshot.h to /usr/local/include/libportal
Installing /home/bennyp/Developer/libportal/libportal/session.h to /usr/local/include/libportal
Installing /home/bennyp/Developer/libportal/libportal/spawn.h to /usr/local/include/libportal
Installing /home/bennyp/Developer/libportal/libportal/trash.h to /usr/local/include/libportal
Installing /home/bennyp/Developer/libportal/libportal/types.h to /usr/local/include/libportal
Installing /home/bennyp/Developer/libportal/libportal/updates.h to /usr/local/include/libportal
Installing /home/bennyp/Developer/libportal/libportal/wallpaper.h to /usr/local/include/libportal
Installing /home/bennyp/Developer/libportal/_build/meson-private/libportal.pc to /usr/local/lib64/pkgconfig
Installing /home/bennyp/Developer/libportal/_build/meson-private/libportal.deps to /usr/local/share/vala/vapi
Installing symlink pointing to libportal.so.1.0.0 to /usr/local/lib64/libportal.so.1
Installing symlink pointing to libportal.so.1 to /usr/local/lib64/libportal.so
2. Then we'll need to get the latest input-leap sources
libportal/_build on  main [?] via C v13.2.1-gcc took 6m42s 
❯ cd ~/Developer

~/Developer 
❯ rm -rf input-leap/ && git clone git@github.com:input-leap/input-leap &&  cd input-leap

input-leap on  master via △ v3.27.7 
❯ git submodule update --init --recursive
3. turn on libei support
input-leap on  master [$] via △ v3.27.7 
❯ sed -ir 's/INPUTLEAP_BUILD_LIBEI\(.*\)OFF/INPUTLEAP_BUILD_LIBEI\1ON/' CMakeLists.txt
4. install and build
input-leap on  master [$!?] via △ v3.27.7 took 4s 
❯ ./clean_build.sh
/usr/bin/ninja
Starting Input Leap Debug build in 'build'...
-- The C compiler identification is GNU 13.2.1
-- The CXX compiler identification is GNU 13.2.1
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Full InputLeap version string is '2.4.0-release-release'
-- Found PkgConfig: /usr/bin/pkg-config (found version "1.9.5") 
-- Looking for include file sys/socket.h
-- Looking for include file sys/socket.h - found
-- Looking for include file sys/utsname.h
-- Looking for include file sys/utsname.h - found
-- Looking for getpwuid_r
-- Looking for getpwuid_r - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE  
-- Found CURL: /usr/lib64/libcurl.so (found version "8.2.1")  
-- Checking for module 'avahi-compat-libdns_sd'
--   Found avahi-compat-libdns_sd, version 0.8
-- Checking for modules 'x11;xext;xrandr;xinerama;xtst;xi'
--   Found x11, version 1.8.7
--   Found xext, version 1.3.5
--   Found xrandr, version 1.5.4
--   Found xinerama, version 1.1.5
--   Found xtst, version 1.2.4
--   Found xi, version 1.8.1
-- Checking for modules 'ice;sm'
--   Found ice, version 1.0.10
--   Found sm, version 1.2.3
-- Checking for module 'libei-1.0 >= 0.99.1'
--   Found libei-1.0 , version 1.2.0
-- Checking for module 'xkbcommon'
--   Found xkbcommon, version 1.6.0
-- Checking for modules 'glib-2.0;gio-2.0'
--   Found glib-2.0, version 2.78.3
--   Found gio-2.0, version 2.78.3
-- Checking for module 'libportal'
--   Found libportal, version 0.7.1
-- Looking for xdp_session_connect_to_eis
-- Looking for xdp_session_connect_to_eis - found
-- Looking for xdp_input_capture_session_connect_to_eis
-- Looking for xdp_input_capture_session_connect_to_eis - found
-- Performing Test HAVE_LIBPORTAL_OUTPUT_NONE
-- Performing Test HAVE_LIBPORTAL_OUTPUT_NONE - Success
-- Looking for include file dns_sd.h
-- Looking for include file dns_sd.h - found
-- Configuring directory /home/bennyp/Developer/input-leap/build/rpm
-- Configuring file input-leap.spec
-- Using Qt 5
-- Configuring done (3.7s)
-- Generating done (0.1s)
-- Build files have been written to: /home/bennyp/Developer/input-leap/build
[254/254] Linking CXX executable bin/input-leap
Build completed successfully

input-leap on  master [$!?] via △ v3.27.7 took 1m24s 
❯ sudo cmake --install build
-- Install configuration: "Debug"
-- Installing: /usr/local/bin/input-leap-flatpak
-- Installing: /usr/local/share/man/man1/input-leapc.1
-- Installing: /usr/local/share/man/man1/input-leaps.1
-- Installing: /usr/local/share/metainfo/io.github.input_leap.InputLeap.appdata.xml
-- Installing: /usr/local/share/icons/hicolor/scalable/apps/io.github.input_leap.InputLeap.svg
-- Installing: /usr/local/share/applications/io.github.input_leap.InputLeap.desktop
-- Installing: /usr/local/bin/input-leapc
-- Set runtime path of "/usr/local/bin/input-leapc" to ""
-- Installing: /usr/local/bin/input-leaps
-- Set runtime path of "/usr/local/bin/input-leaps" to ""
-- Installing: /usr/local/bin/input-leap
-- Set runtime path of "/usr/local/bin/input-leap" to ""