├── README.md ├── automation ├── scripts │ ├── aliendalvik │ ├── aliendalvik-config │ ├── aliendalvik-setup │ └── aliendalvik-user-dependencies └── systemd-services │ ├── system │ ├── aliendalvik-config.service │ ├── aliendalvik-setup.service │ ├── aliendalvik-user-dependencies.service │ └── aliendalvik.service │ └── user │ ├── alienaudio.service │ ├── alienkeyboard.service │ ├── apkd-bridge-user.service │ └── apkd-bridge.service ├── configure.txt ├── files.txt ├── other-docs ├── known-issues.txt ├── random-reverse-engineering-docs.txt ├── sailfish-changelogs │ ├── Changelog_from_3.3.0.16_to_3.4.0.24-FINAL.txt │ ├── Changelog_from_3.4.0.24_to_4.0.1.48.FINAL.txt │ ├── Changelog_from_4.0.1.48_to_4.1.0.24.final.txt │ ├── Changelog_from_4.1.0.24_to_4.2.0.21.final.txt │ ├── Changelog_from_4.2.0.21_to_4.3.0.12.md │ ├── Changelog_from_4.3.0.12_to_4.3.0.15.md │ ├── Changelog_from_4.3.0.15_to_4.4.0.58.md │ ├── Changelog_from_4.4.0.58_to_4.4.0.64_2.md │ ├── Changelog_from_4.4.0.64_to_4.4.0.68_2.md │ ├── Changelog_from_4.4.0.68_to_4.4.0.72.md │ ├── Changelog_from_4.4.0.72_to_4.5.0.16.md │ ├── Changelog_from_4.5.0.16_to_4.5.0.18.md │ ├── Changelog_from_4.5.0.18_to_4.5.0.19.md │ ├── Changelog_from_4.5.0.19_to_4.5.0.21.md │ └── Changelog_from_4.5.0.21_to_4.5.0.24.md └── systemd-status-dump.txt ├── patches ├── mobile-mutter │ ├── 0001-xdg-shell-disable-pinging-of-windows.patch │ ├── 0002-window-force-geometry-scale-for-alien-windows-to-1.patch │ ├── 0003-window-wayland-disable-xdg_toplevel_minimize.patch │ ├── 0004-wayland-text-input-small-improvements-which-are-hope.patch │ └── 0005-wayland-text-input-replace-focus-for-aliendalvik-wit.patch └── wayland │ ├── 0001-server-don-t-be-so-angry-about-client-errors.patch │ └── 0002-don-t-offer-zwp_text_input_v3-to-alien-clients.patch ├── running.txt ├── setup-environment.txt └── shimming ├── alienaudioservice ├── alienaudio-shim.conf ├── alienaudio-shim.py └── alienaudio-shim.service ├── alienkeyboardservice ├── alienkeyboard-maliit-shim ├── alienkeyboard-maliit-shim.service ├── dbussy.py ├── protocols │ ├── content_type_v1 │ │ ├── __init__.py │ │ ├── wp_content_type_manager_v1.py │ │ └── wp_content_type_v1.py │ ├── cursor_shape_v1 │ │ ├── __init__.py │ │ ├── wp_cursor_shape_device_v1.py │ │ └── wp_cursor_shape_manager_v1.py │ ├── drm_lease_v1 │ │ ├── __init__.py │ │ ├── wp_drm_lease_connector_v1.py │ │ ├── wp_drm_lease_device_v1.py │ │ ├── wp_drm_lease_request_v1.py │ │ └── wp_drm_lease_v1.py │ ├── ext_foreign_toplevel_list_v1 │ │ ├── __init__.py │ │ ├── ext_foreign_toplevel_handle_v1.py │ │ └── ext_foreign_toplevel_list_v1.py │ ├── ext_idle_notify_v1 │ │ ├── __init__.py │ │ ├── ext_idle_notification_v1.py │ │ └── ext_idle_notifier_v1.py │ ├── ext_session_lock_v1 │ │ ├── __init__.py │ │ ├── ext_session_lock_manager_v1.py │ │ ├── ext_session_lock_surface_v1.py │ │ └── ext_session_lock_v1.py │ ├── fractional_scale_v1 │ │ ├── __init__.py │ │ ├── wp_fractional_scale_manager_v1.py │ │ └── wp_fractional_scale_v1.py │ ├── fullscreen_shell_unstable_v1 │ │ ├── __init__.py │ │ ├── zwp_fullscreen_shell_mode_feedback_v1.py │ │ └── zwp_fullscreen_shell_v1.py │ ├── idle_inhibit_unstable_v1 │ │ ├── __init__.py │ │ ├── zwp_idle_inhibit_manager_v1.py │ │ └── zwp_idle_inhibitor_v1.py │ ├── input_method_unstable_v1 │ │ ├── __init__.py │ │ ├── zwp_input_method_context_v1.py │ │ ├── zwp_input_method_v1.py │ │ ├── zwp_input_panel_surface_v1.py │ │ └── zwp_input_panel_v1.py │ ├── input_timestamps_unstable_v1 │ │ ├── __init__.py │ │ ├── zwp_input_timestamps_manager_v1.py │ │ └── zwp_input_timestamps_v1.py │ ├── keyboard_shortcuts_inhibit_unstable_v1 │ │ ├── __init__.py │ │ ├── zwp_keyboard_shortcuts_inhibit_manager_v1.py │ │ └── zwp_keyboard_shortcuts_inhibitor_v1.py │ ├── linux_dmabuf_unstable_v1 │ │ ├── __init__.py │ │ ├── zwp_linux_buffer_params_v1.py │ │ ├── zwp_linux_dmabuf_feedback_v1.py │ │ └── zwp_linux_dmabuf_v1.py │ ├── pointer_constraints_unstable_v1 │ │ ├── __init__.py │ │ ├── zwp_confined_pointer_v1.py │ │ ├── zwp_locked_pointer_v1.py │ │ └── zwp_pointer_constraints_v1.py │ ├── pointer_gestures_unstable_v1 │ │ ├── __init__.py │ │ ├── zwp_pointer_gesture_hold_v1.py │ │ ├── zwp_pointer_gesture_pinch_v1.py │ │ ├── zwp_pointer_gesture_swipe_v1.py │ │ └── zwp_pointer_gestures_v1.py │ ├── presentation_time │ │ ├── __init__.py │ │ ├── wp_presentation.py │ │ └── wp_presentation_feedback.py │ ├── relative_pointer_unstable_v1 │ │ ├── __init__.py │ │ ├── zwp_relative_pointer_manager_v1.py │ │ └── zwp_relative_pointer_v1.py │ ├── single_pixel_buffer_v1 │ │ ├── __init__.py │ │ └── wp_single_pixel_buffer_manager_v1.py │ ├── tablet_unstable_v1 │ │ ├── __init__.py │ │ ├── zwp_tablet_manager_v1.py │ │ ├── zwp_tablet_seat_v1.py │ │ ├── zwp_tablet_tool_v1.py │ │ └── zwp_tablet_v1.py │ ├── tablet_unstable_v2 │ │ ├── __init__.py │ │ ├── zwp_tablet_manager_v2.py │ │ ├── zwp_tablet_pad_group_v2.py │ │ ├── zwp_tablet_pad_ring_v2.py │ │ ├── zwp_tablet_pad_strip_v2.py │ │ ├── zwp_tablet_pad_v2.py │ │ ├── zwp_tablet_seat_v2.py │ │ ├── zwp_tablet_tool_v2.py │ │ └── zwp_tablet_v2.py │ ├── tearing_control_v1 │ │ ├── __init__.py │ │ ├── wp_tearing_control_manager_v1.py │ │ └── wp_tearing_control_v1.py │ ├── text_input_unstable_v1 │ │ ├── __init__.py │ │ ├── zwp_text_input_manager_v1.py │ │ └── zwp_text_input_v1.py │ ├── text_input_unstable_v3 │ │ ├── __init__.py │ │ ├── __pycache__ │ │ │ ├── __init__.cpython-311.pyc │ │ │ ├── zwp_text_input_manager_v3.cpython-311.pyc │ │ │ └── zwp_text_input_v3.cpython-311.pyc │ │ ├── zwp_text_input_manager_v3.py │ │ └── zwp_text_input_v3.py │ ├── viewporter │ │ ├── __init__.py │ │ ├── wp_viewport.py │ │ └── wp_viewporter.py │ ├── wayland │ │ ├── __init__.py │ │ ├── __pycache__ │ │ │ ├── __init__.cpython-311.pyc │ │ │ ├── wl_buffer.cpython-311.pyc │ │ │ ├── wl_callback.cpython-311.pyc │ │ │ ├── wl_compositor.cpython-311.pyc │ │ │ ├── wl_data_device.cpython-311.pyc │ │ │ ├── wl_data_device_manager.cpython-311.pyc │ │ │ ├── wl_data_offer.cpython-311.pyc │ │ │ ├── wl_data_source.cpython-311.pyc │ │ │ ├── wl_display.cpython-311.pyc │ │ │ ├── wl_keyboard.cpython-311.pyc │ │ │ ├── wl_output.cpython-311.pyc │ │ │ ├── wl_pointer.cpython-311.pyc │ │ │ ├── wl_region.cpython-311.pyc │ │ │ ├── wl_registry.cpython-311.pyc │ │ │ ├── wl_seat.cpython-311.pyc │ │ │ ├── wl_shell.cpython-311.pyc │ │ │ ├── wl_shell_surface.cpython-311.pyc │ │ │ ├── wl_shm.cpython-311.pyc │ │ │ ├── wl_shm_pool.cpython-311.pyc │ │ │ ├── wl_subcompositor.cpython-311.pyc │ │ │ ├── wl_subsurface.cpython-311.pyc │ │ │ ├── wl_surface.cpython-311.pyc │ │ │ └── wl_touch.cpython-311.pyc │ │ ├── wl_buffer.py │ │ ├── wl_callback.py │ │ ├── wl_compositor.py │ │ ├── wl_data_device.py │ │ ├── wl_data_device_manager.py │ │ ├── wl_data_offer.py │ │ ├── wl_data_source.py │ │ ├── wl_display.py │ │ ├── wl_keyboard.py │ │ ├── wl_output.py │ │ ├── wl_pointer.py │ │ ├── wl_region.py │ │ ├── wl_registry.py │ │ ├── wl_seat.py │ │ ├── wl_shell.py │ │ ├── wl_shell_surface.py │ │ ├── wl_shm.py │ │ ├── wl_shm_pool.py │ │ ├── wl_subcompositor.py │ │ ├── wl_subsurface.py │ │ ├── wl_surface.py │ │ └── wl_touch.py │ ├── wp_primary_selection_unstable_v1 │ │ ├── __init__.py │ │ ├── zwp_primary_selection_device_manager_v1.py │ │ ├── zwp_primary_selection_device_v1.py │ │ ├── zwp_primary_selection_offer_v1.py │ │ └── zwp_primary_selection_source_v1.py │ ├── xdg_activation_v1 │ │ ├── __init__.py │ │ ├── xdg_activation_token_v1.py │ │ └── xdg_activation_v1.py │ ├── xdg_decoration_unstable_v1 │ │ ├── __init__.py │ │ ├── zxdg_decoration_manager_v1.py │ │ └── zxdg_toplevel_decoration_v1.py │ ├── xdg_foreign_unstable_v1 │ │ ├── __init__.py │ │ ├── zxdg_exported_v1.py │ │ ├── zxdg_exporter_v1.py │ │ ├── zxdg_imported_v1.py │ │ └── zxdg_importer_v1.py │ ├── xdg_foreign_unstable_v2 │ │ ├── __init__.py │ │ ├── zxdg_exported_v2.py │ │ ├── zxdg_exporter_v2.py │ │ ├── zxdg_imported_v2.py │ │ └── zxdg_importer_v2.py │ ├── xdg_output_unstable_v1 │ │ ├── __init__.py │ │ ├── zxdg_output_manager_v1.py │ │ └── zxdg_output_v1.py │ ├── xdg_shell │ │ ├── __init__.py │ │ ├── xdg_popup.py │ │ ├── xdg_positioner.py │ │ ├── xdg_surface.py │ │ ├── xdg_toplevel.py │ │ └── xdg_wm_base.py │ ├── xdg_shell_unstable_v5 │ │ ├── __init__.py │ │ ├── xdg_popup.py │ │ ├── xdg_shell.py │ │ └── xdg_surface.py │ ├── xdg_shell_unstable_v6 │ │ ├── __init__.py │ │ ├── zxdg_popup_v6.py │ │ ├── zxdg_positioner_v6.py │ │ ├── zxdg_shell_v6.py │ │ ├── zxdg_surface_v6.py │ │ └── zxdg_toplevel_v6.py │ ├── xwayland_keyboard_grab_unstable_v1 │ │ ├── __init__.py │ │ ├── zwp_xwayland_keyboard_grab_manager_v1.py │ │ └── zwp_xwayland_keyboard_grab_v1.py │ ├── xwayland_shell_v1 │ │ ├── __init__.py │ │ ├── xwayland_shell_v1.py │ │ └── xwayland_surface_v1.py │ └── zwp_linux_explicit_synchronization_unstable_v1 │ │ ├── __init__.py │ │ ├── zwp_linux_buffer_release_v1.py │ │ ├── zwp_linux_explicit_synchronization_v1.py │ │ └── zwp_linux_surface_synchronization_v1.py └── ravel.py └── apkd-bridge-user ├── apkd-bridge-user-connman-shim ├── apkd-bridge-user-connman-shim.service ├── connman-shim.conf └── net.connman-shim.service /README.md: -------------------------------------------------------------------------------- 1 | # Running Jolla AppSupport/aliendalvik on regular linux distros 2 | 3 | This is a small repo documenting the reverse enginieering of Jolla's Android AppSupport (aka Aliendalvik), including steps on how to run it on other linux distros than Sailfish OS. 4 | 5 | ## Note for everyone attempting this 6 | 7 | Aliendalvik is a complex piece of software and requires lots of setup to run. This is a very rough set of steps, it *won't* work on the first try, be prepared to solve problems. 8 | 9 | ## Steps to run outside of Sailfish OS 10 | 11 | 1. Get a supported phone with Sailfish OS and Android AppSupport (see https://shop.jolla.com/) and grab the necessary binaries 12 | - Start the phone, go through setup of Sailfish OS and setup Android AppSupport 13 | - Get all the necessary files from the phone via SSH, see files.txt 14 | 15 | 2. Set up dependencies on the target device 16 | - Install dependencies from the Arch ARM repos: lxc packagekit-qt5 mlite qt5-sensors qt5-location python-pywayland dbus-glib 17 | - Build necessary libraries that aren't in the Arch ARM repos: libglibutil libgbinder 18 | - Build custom libraries from forks: [libQtContacts](https://github.com/jonas2515/qtpim/tree/alien-everwhere), [libqtcontacts_folks](https://github.com/jonas2515/qtfolks), [libqtposition_geoclue2](https://github.com/jonas2515/qtpositioning/tree/alien-everwhere), [libqtsensors_iio-sensor-proxy](https://github.com/jonas2515/qtsensors/tree/alien-everywhere) 19 | - Install shimming services on the target device, see shimming/ 20 | - Build and install patched mobile-mutter and libwayland, see patches/ 21 | - Get the vanilla (not GApps) android system.img and vendor.img from Waydroid 22 | 23 | 3. Copy all the aliendalvik config, binaries and libraries to the target device, see files.txt again 24 | 25 | 4. Create necessary users, groups, and configure a few more things on the device, see setup-environment.txt 26 | 27 | 5. Edit the aliendalvik configuration on the device, see configure.txt 28 | 29 | 6. Do a manual test-run of aliendalvik to check if everything works, see running.txt 30 | 31 | 7. If you managed to run everything, there's some systemd services and scripts to automate startup of aliendalvik in the automation/ folder 32 | -------------------------------------------------------------------------------- /automation/scripts/aliendalvik: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | set -e 4 | 5 | active_wayland_user= 6 | 7 | for session in $(loginctl list-sessions --no-legend | awk '{ print $1 }'); do 8 | if [ "$(loginctl show-session --value -p Type ${session})" != "wayland" ]; then 9 | continue 10 | fi 11 | 12 | if [ "$(loginctl show-session --value -p Class ${session})" != "user" ]; then 13 | continue 14 | fi 15 | 16 | if [ "$(loginctl show-session --value -p Remote ${session})" != "no" ]; then 17 | continue 18 | fi 19 | 20 | if [ "$(loginctl show-session --value -p State ${session})" != "active" ]; then 21 | continue 22 | fi 23 | 24 | active_wayland_user="$(loginctl show-session --value -p Name ${session})" 25 | break 26 | done 27 | 28 | if [ "${active_wayland_user}" == "" ]; then 29 | echo "No active wayland session found" 30 | exit 1 31 | fi 32 | 33 | data_dir="/home/${active_wayland_user}/.local/share/aliendalvik/data/" 34 | 35 | rm -f ${data_dir}/alien_boot_completed 36 | 37 | ( 38 | while [ ! -f ${data_dir}/alien_boot_completed ]; do 39 | sleep 1; 40 | done 41 | 42 | if [ "$(cat ${data_dir}/alien_boot_completed)" = "1" ]; then 43 | echo "alien bootup finished, running post startup" 44 | 45 | # use the commands from alien-post-startup.sh script here 46 | lxc-attach --name=aliendalvik --lxcpath=/tmp/aliendalvik -- /system/bin/sh -c "" 47 | 48 | lxc-attach --name=aliendalvik --lxcpath=/tmp/aliendalvik -- /system/bin/sh -c "source /etc/mkshrc; 49 | # enable gesture navigation 50 | cmd overlay disable com.android.internal.systemui.navbar.gestural 51 | cmd overlay enable com.android.internal.systemui.navbar.gestural" 52 | 53 | systemd-notify --ready 54 | fi 55 | ) & 56 | 57 | lxc-start --rcfile=/tmp/aliendalvik/config/config --lxcpath=/tmp/aliendalvik -n aliendalvik -F 58 | 59 | if [ "$(cat ${data_dir}/alien_boot_completed)" = "2" ]; then 60 | echo "alien crashed" 61 | exit 1 62 | fi 63 | 64 | echo "alien graceful shutdown" 65 | exit 0 66 | 67 | -------------------------------------------------------------------------------- /automation/scripts/aliendalvik-config: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | set -e 4 | 5 | active_wayland_user= 6 | active_wayland_uid= 7 | 8 | while true; do 9 | for session in $(loginctl list-sessions --no-legend | awk '{ print $1 }'); do 10 | if [ "$(loginctl show-session --value -p Type ${session})" != "wayland" ]; then 11 | continue 12 | fi 13 | 14 | if [ "$(loginctl show-session --value -p Class ${session})" != "user" ]; then 15 | continue 16 | fi 17 | 18 | if [ "$(loginctl show-session --value -p Remote ${session})" != "no" ]; then 19 | continue 20 | fi 21 | 22 | if [ "$(loginctl show-session --value -p State ${session})" != "active" ]; then 23 | continue 24 | fi 25 | 26 | active_wayland_user="$(loginctl show-session --value -p Name ${session})" 27 | active_wayland_uid="$(loginctl show-session --value -p User ${session})" 28 | break 29 | done 30 | 31 | if [ "${active_wayland_user}" == "" ]; then 32 | echo "No active wayland session found, waiting for one" 33 | sleep 5 34 | continue 35 | fi 36 | 37 | if [ ! -S "/run/user/${active_wayland_uid}/wayland-0" ]; then 38 | echo "No wayland socket for user ${active_wayland_user} found, waiting a bit longer" 39 | sleep 2 40 | continue 41 | fi 42 | 43 | break 44 | done 45 | 46 | chown ${active_wayland_user}:aliendalvik-wayland /run/user/${active_wayland_uid}/wayland-0 47 | chmod 775 /run/user/${active_wayland_uid}/wayland-0 48 | 49 | rm -f /tmp/aliendalvik/config/* 50 | mkdir -p /tmp/aliendalvik/config/ 51 | cp -r /opt/alien/lxc-config/* /tmp/aliendalvik/config/ 52 | 53 | sed -i "s/__UID__/${active_wayland_uid}/g" /tmp/aliendalvik/config/10-bsp_config 54 | sed -i "s/__UID__/${active_wayland_uid}/g" /tmp/aliendalvik/config/20-privilege_config 55 | 56 | mkdir -p /home/${active_wayland_user}/.local/share/aliendalvik/data/ 57 | chown ${active_wayland_user}:${active_wayland_user} /home/${active_wayland_user}/.local/share/aliendalvik/ 58 | 59 | data_dir="/home/${active_wayland_user}/.local/share/aliendalvik/data/" 60 | chown aliendalvik-root:aliendalvik-root ${data_dir} 61 | 62 | sed -i "s|__DATA_DIR__|${data_dir}|g" /tmp/aliendalvik/config/10-bsp_config 63 | -------------------------------------------------------------------------------- /automation/scripts/aliendalvik-setup: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | set -e 4 | 5 | mkdir /tmp/from 6 | mkdir /tmp/to 7 | mkdir /tmp/work 8 | mount /opt/alien/system.img /tmp/from 9 | mount -t overlay -o lowerdir=/tmp/from,upperdir=/tmp/to,workdir=/tmp/work overlay /opt/alien/rootfs 10 | 11 | sed -i 's/setprop sys.use_memfd false/#setprop sys.use_memfd false/g' /opt/alien/rootfs/system/etc/init/hw/init.rc 12 | 13 | chmod 777 /dev/binder 14 | chmod 777 /dev/hwbinder 15 | chmod 777 /dev/vndbinder 16 | chmod 777 /dev/dri/card0 17 | 18 | mkdir /tmp/from2 19 | mkdir /tmp/to2 20 | mkdir /tmp/work2 21 | mkdir /tmp/waydroid-vendor 22 | mount /var/lib/waydroid/images/vendor.img /tmp/from2 23 | mount -t overlay -o lowerdir=/tmp/from2,upperdir=/tmp/to2,workdir=/tmp/work2 overlay /tmp/waydroid-vendor 24 | rm /tmp/waydroid-vendor/lib64/hw/android.hardware.gatekeeper@1.0-impl.so 25 | rm /tmp/waydroid-vendor/lib/hw/android.hardware.gatekeeper@1.0-impl.so 26 | 27 | mkdir /tmp/waydroid-system 28 | mount /var/lib/waydroid/images/system.img /tmp/waydroid-system 29 | cp /tmp/waydroid-system/system/product/app/webview/webview.apk /opt/alien/rootfs/system/app/webview/webview.apk 30 | cp -r /tmp/waydroid-system/system/product/overlay /opt/alien/rootfs/product/ 31 | -------------------------------------------------------------------------------- /automation/scripts/aliendalvik-user-dependencies: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | set -e 4 | 5 | USER_SERVICES="alienaudio.service alienkeyboard.service apkd-bridge.service apkd-bridge-user.service" 6 | 7 | active_wayland_user= 8 | 9 | for session in $(loginctl list-sessions --no-legend | awk '{ print $1 }'); do 10 | if [ "$(loginctl show-session --value -p Type ${session})" != "wayland" ]; then 11 | continue 12 | fi 13 | 14 | if [ "$(loginctl show-session --value -p Class ${session})" != "user" ]; then 15 | continue 16 | fi 17 | 18 | if [ "$(loginctl show-session --value -p Remote ${session})" != "no" ]; then 19 | continue 20 | fi 21 | 22 | if [ "$(loginctl show-session --value -p State ${session})" != "active" ]; then 23 | continue 24 | fi 25 | 26 | active_wayland_user="$(loginctl show-session --value -p Name ${session})" 27 | break 28 | done 29 | 30 | if [ "${active_wayland_user}" == "" ]; then 31 | echo "No active wayland session found" 32 | exit 1 33 | fi 34 | 35 | if [ "$1" == "start" ]; then 36 | # User services behave buggy if they're kept running while container is down 37 | # or started without hwservicemanager running in the container. 38 | # So start the services right after hwservicemanager is started in the container. 39 | # 40 | # systemd should ensure that we're always started and stopped in sync with 41 | # aliendalvik.service (because of BindsTo= dependency) 42 | while [ "$(lxc-attach --name=aliendalvik --lxcpath=/tmp/aliendalvik -- /system/bin/getprop hwservicemanager.ready)" != "true" ]; do 43 | echo "User services startup waiting for hwservicemanager in container" 44 | sleep 1 45 | done 46 | 47 | for SERVICE in $USER_SERVICES; do 48 | echo "Starting $SERVICE" 49 | systemctl --user -M ${active_wayland_user}@ start ${SERVICE} 50 | done 51 | elif [ "$1" == "stop" ]; then 52 | for SERVICE in $USER_SERVICES; do 53 | echo "Stopping $SERVICE" 54 | systemctl --user -M ${active_wayland_user}@ stop ${SERVICE} 55 | done 56 | fi 57 | 58 | -------------------------------------------------------------------------------- /automation/systemd-services/system/aliendalvik-config.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Aliendalvik config generator 3 | Requires=systemd-user-sessions.service aliendalvik-setup.service 4 | After=systemd-user-sessions.service aliendalvik-setup.service 5 | 6 | [Service] 7 | Type=oneshot 8 | ExecStart=/usr/bin/aliendalvik-config 9 | -------------------------------------------------------------------------------- /automation/systemd-services/system/aliendalvik-setup.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Aliendalvik setup 3 | After=multi-user.target 4 | 5 | [Service] 6 | Type=oneshot 7 | RemainAfterExit=yes 8 | ExecStart=/usr/bin/aliendalvik-setup 9 | 10 | [Install] 11 | WantedBy=graphical.target 12 | -------------------------------------------------------------------------------- /automation/systemd-services/system/aliendalvik-user-dependencies.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Aliendalvik user dependencies starter 3 | Requires=systemd-user-sessions.service aliendalvik-config.service 4 | BindsTo=aliendalvik.service 5 | After=systemd-user-sessions.service aliendalvik-config.service 6 | 7 | [Service] 8 | Type=oneshot 9 | RemainAfterExit=yes 10 | ExecStart=/usr/bin/aliendalvik-user-dependencies start 11 | # ExecStopPost because we also want to run on failure of aliendalvik.service 12 | ExecStopPost=/usr/bin/aliendalvik-user-dependencies stop 13 | -------------------------------------------------------------------------------- /automation/systemd-services/system/aliendalvik.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Aliendalvik container 3 | Requires=systemd-user-sessions.service network.target lxc-net.service aliendalvik-config.service 4 | BindsTo=aliendalvik-user-dependencies.service 5 | After=systemd-user-sessions.service network.target lxc-net.service aliendalvik-config.service 6 | 7 | [Service] 8 | Type=notify 9 | NotifyAccess=all 10 | TimeoutSec=180 11 | Restart=never 12 | RestartSec=3 13 | RestartPreventExitStatus=32 14 | ExecStart=/usr/bin/aliendalvik 15 | ExecStop=/usr/bin/lxc-attach --name=aliendalvik --lxcpath=/tmp/aliendalvik -- /system/bin/reboot -p 16 | 17 | [Install] 18 | WantedBy=graphical.target 19 | -------------------------------------------------------------------------------- /automation/systemd-services/user/alienaudio.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Aliendalvik audio bridge 3 | After=dbus.socket graphical-session.target 4 | Requires=dbus.socket graphical-session.target 5 | 6 | [Service] 7 | Restart=always 8 | RestartSec=5 9 | ExecStart=/usr/bin/alienaudioservice -d /dev/binder -n /dev/vndbinder -w /dev/hwbinder -p pulseaudio 10 | #ExecStartPost=false 11 | -------------------------------------------------------------------------------- /automation/systemd-services/user/alienkeyboard.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Aliendalvik keyboard bridge 3 | After=dbus.socket graphical-session.target alienkeyboard-maliit-shim.service 4 | Requires=dbus.socket graphical-session.target alienkeyboard-maliit-shim.service 5 | 6 | [Service] 7 | Restart=always 8 | RestartSec=5 9 | ExecStart=/usr/bin/alienkeyboardservice 10 | -------------------------------------------------------------------------------- /automation/systemd-services/user/apkd-bridge-user.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Aliendalvik main bridge 3 | After=dbus.socket graphical-session.target 4 | Requires=dbus.socket graphical-session.target 5 | 6 | [Service] 7 | Restart=always 8 | ExecStart=/usr/bin/apkd-bridge-user 9 | 10 | # looks like it doesn't clean up after itself 11 | ExecStopPost=/usr/bin/rm -f /tmp/apkd/ 12 | -------------------------------------------------------------------------------- /automation/systemd-services/user/apkd-bridge.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Aliendalvik control bridge 3 | After=dbus.socket graphical-session.target 4 | Requires=dbus.socket graphical-session.target 5 | 6 | [Service] 7 | Type=dbus 8 | BusName=com.jolla.apkd 9 | Restart=always 10 | Environment="QTCONTACTS_MANAGER_OVERRIDE=folks" 11 | ExecStart=/usr/bin/apkd-bridge 12 | -------------------------------------------------------------------------------- /configure.txt: -------------------------------------------------------------------------------- 1 | - remove the android settings app from blocklisted apps so it shows up in your apps for testing 2 | remove "com.android.settings" entry from /etc/apkd/app-blacklist 3 | 4 | - edit central aliendalvik configuration in /etc/appsupport.conf.d/00-defaults.conf 5 | comment out "RequiredDevNodes=ashmem" 6 | comment out "DevNodes=ion" 7 | 8 | - edit central aliendalvik configuration in /etc/appsupport.conf.d/10-hybris.conf 9 | comment out the 3 "Proxies=" entries (we don't have any libhybris android HALs running underneath that we can proxy into the container) 10 | comment out all the entries in "[Features]" block 11 | 12 | - edit central aliendalvik configuration in /etc/appsupport.conf.d/80-aas-config.conf 13 | set "DataRoot=/opt/alien/" 14 | set "StoragePath=/opt/alien/data/media/0" 15 | set "WaylandSocketPath=/run/user/100000/wayland-0" 16 | set "BinderDev=binder" 17 | set "HwBinderDev=hwbinder" 18 | set "VndBinderDev=vndbinder" 19 | set "PackageBlacklistFiles=/etc/apkd/app-blacklist" 20 | set "NotifBlacklistFiles=/etc/apkd/notif-blacklist" 21 | 22 | - edit LXC configuration in /opt/alien/lxc-config/config 23 | replace the paths with /tmp/aliendalvik/config/ 24 | 25 | - edit LXC configuration in /opt/alien/lxc-config/10-bsp_config 26 | replace "/dev/puddlejumper" with "/dev/binder" 27 | replace "/dev/hwpuddlejumper" with "/dev/hwbinder" 28 | replace "/dev/vndpuddlejumper" with "/dev/vndbinder" 29 | comment out the /dev/ashmem, /dev/ion, /dev/uhid and /dev/kgsl-3d0 mounts 30 | replace "/home/.android/data" with "__DATA_DIR__" 31 | replace "/run/display" mount with "/run/user/__UID__/wayland-0 run/display/wayland-0 none bind,nodev,nosuid,create=file 0 0" 32 | replace "/vendor" with "/tmp/waydroid-vendor" 33 | comment out /odm/lib, /odm/lib64, /system/etc/apns-conf.xml, /dev/alien_video32, /dev/alien_video33 and /dev/video mounts 34 | comment out /home/defaultuser, /home/defaultuser/android_storage and /run/media/defaultuser mounts 35 | 36 | - edit LXC configuration in /opt/alien/lxc-config/20-privilege_config 37 | # add a line to start properly on apparmor devices 38 | lxc.apparmor.profile = unconfined 39 | 40 | # replace "lxc.idmap = u 100000 100000 1" line with 41 | lxc.idmap = u 100000 __UID__ 1 42 | 43 | # replace "lxc.idmap = g 100000 100000 1" line with 44 | lxc.idmap = g 100000 __UID__ 1 45 | 46 | - edit LXC configuration in /opt/alien/lxc-config/30-net_config 47 | comment out tmpfs mount to "sys/fs/selinux" 48 | 49 | - edit android props in /opt/alien/lxc-config/generated_props 50 | comment out these props: ro.vendor.extension_library, ro.hardware.vulkan, ro.board.platform 51 | update these props "ro.alien.no_camera=1", "ro.alien.no_soundtrigger=1", "ro.com.android.mobiledata=false" 52 | when you're on a pinephone pro, set "ro.opengles.version=196609" 53 | add these props at the end: 54 | ro.alien.qti.c2.service=0 55 | ro.alien.qti.allocator.service=0 56 | debug.stagefright.ccodec=0 57 | ro.hardware.gralloc=gbm 58 | ro.hardware.egl=mesa 59 | sys.use_memfd=true 60 | ro.alien.logcatdump=1 61 | 62 | update DPI and display size values for your device 63 | ro.sf.lcd_density=DPI 64 | ro.alien.host.display_width=WIDTH 65 | ro.alien.host.display_height=HEIGHT 66 | ro.alien.host.dpi_x=DPI 67 | ro.alien.host.dpi_y=DPI 68 | 69 | -------------------------------------------------------------------------------- /files.txt: -------------------------------------------------------------------------------- 1 | note: a lot of these files are just symlinks, just copy the symlink in that case (in case of folders also copy the symlink, no need to copy what's inside) 2 | 3 | binaries: 4 | 5 | /usr/bin/alienaudioservice 6 | /usr/bin/alienkeyboardservice 7 | /usr/bin/apkd-bridge 8 | /usr/bin/apkd-bridge-user 9 | /usr/bin/apkd-harbour-rpm-post 10 | /usr/bin/apkd-harbour-rpm-preun 11 | /usr/bin/apkd-install 12 | /usr/bin/apkd-install-preload 13 | /usr/bin/apkd-launcher 14 | /usr/bin/apkd-uninstall 15 | 16 | 17 | libraries (some of those are open source, we can probably build them ourselves): 18 | 19 | /usr/lib/libalienaudioservice.so.1 20 | /usr/lib/libalienaudioservice.so.1.12 21 | /usr/lib/libalienaudioservice.so.1.12.0 22 | /usr/lib/libambermpris.so.1 23 | /usr/lib/libambermpris.so.1.1 24 | /usr/lib/libambermpris.so.1.1.10 25 | /usr/lib/libapkd.so.1 26 | /usr/lib/libapkd.so.1.0 27 | /usr/lib/libapkd.so.1.0.0 28 | /usr/lib/libconnman-qt5.so.1 29 | /usr/lib/libconnman-qt5.so.1.3 30 | /usr/lib/libconnman-qt5.so.1.3.0 31 | /usr/lib/libdbusaccess.so.1 32 | /usr/lib/libdbusaccess.so.1.0 33 | /usr/lib/libdbusaccess.so.1.0.18 34 | /usr/lib/libiphb.so.0 35 | /usr/lib/libiphb.so.0.0.0 36 | /usr/lib/libkeepalive.so.1 37 | /usr/lib/libkeepalive.so.1.8 38 | /usr/lib/libkeepalive.so.1.8.9 39 | /usr/lib/libkeepalive-glib.so.1 40 | /usr/lib/libkeepalive-glib.so.1.0.0 41 | /usr/lib/libnemonotifications-qt5.so.1 42 | /usr/lib/libnemonotifications-qt5.so.1.2 43 | /usr/lib/libnemonotifications-qt5.so.1.2.18 44 | /usr/lib/libngf0-0.24.so.0 45 | /usr/lib/libngf0-0.24.so.0.1.1 46 | /usr/lib/libprofile.so.0 47 | /usr/lib/libresource.so.0 48 | /usr/lib/libresource.so.0.0.18 49 | /usr/lib/libresource-glib.so.0 50 | /usr/lib/libresource-glib.so.0.0.18 51 | /usr/lib/libsailfishpolicy.so.0 52 | /usr/lib/libsailfishpolicy.so.0.4 53 | /usr/lib/libsailfishpolicy.so.0.4.17 54 | /usr/lib/qt5/qml/Sailfish/Policy/libsailfishpolicyplugin.so 55 | /usr/lib/alienaudioservice/pulseaudio.so 56 | /usr/lib/alienaudioservice/sailfish.so 57 | /usr/lib/apkd-bridge-user/available/libgeo-qtpositioning.so 58 | /usr/lib/apkd-bridge-user/libgeo-qtpositioning.so 59 | 60 | 61 | config: 62 | 63 | /etc/aas-seccomp-profile 64 | /etc/apkd/app-blacklist 65 | /etc/apkd/notif-blacklist 66 | /etc/appsupport.conf.d/00-defaults.conf 67 | /etc/appsupport.conf.d/10-hybris.conf 68 | /etc/appsupport.conf.d/80-aas-config.conf 69 | /etc/appsupport.conf.d/mount-hooks/10-mount-rootfs.sh 70 | /etc/appsupport.conf.d/property-post-hooks/50-config-properties.sh 71 | /etc/appsupport.conf.d/property-post-hooks/80-create-container-nodes.sh 72 | /etc/appsupport.conf.d/property-post-hooks/90-create-storage-directory.sh 73 | /etc/appsupport.conf.d/property-pre-hooks/10-codecs.sh 74 | /etc/appsupport.conf.d/property-pre-hooks/20-vulkan.sh 75 | /etc/appsupport.conf.d/property-pre-hooks/50-networking.sh 76 | /etc/appsupport.conf.d/property-pre-hooks/50-wait-lipstick.sh 77 | /etc/gbinder.conf 78 | /etc/gbinder.d/alien.conf 79 | 80 | 81 | aliendalvik build props + system and vendor image: 82 | 83 | /opt/alien/build.prop 84 | /opt/alien/system.img 85 | /opt/alien/vendor/etc/media_codecs.xml 86 | /opt/alien/vendor/etc/media_codecs_google_audio.xml 87 | /opt/alien/vendor/etc/media_codecs_google_telephony.xml 88 | /opt/alien/vendor/etc/media_codecs_google_video.xml 89 | /opt/alien/vendor/etc/media_codecs_vendor_audio.xml 90 | /opt/alien/vendor/etc/media_profiles_V1_0.xml 91 | /opt/alien/vendor/etc/video_system_specs.json 92 | /opt/alien/vendor/etc/vintf/manifest.xml 93 | /opt/alien/vendor/firmware 94 | /opt/alien/vendor/lib 95 | /opt/alien/vendor/lib64 96 | 97 | 98 | runtime generated LXC config: 99 | -> copy these files into /opt/alien/lxc-config/ on the new device 100 | 101 | /tmp/appsupport/aliendalvik/10-bsp_config 102 | /tmp/appsupport/aliendalvik/20-privilege_config 103 | /tmp/appsupport/aliendalvik/30-net_config 104 | /tmp/appsupport/aliendalvik/40-rootfs_config 105 | /tmp/appsupport/aliendalvik/alien.user 106 | /tmp/appsupport/aliendalvik/config 107 | /tmp/appsupport/aliendalvik/generated_props 108 | 109 | 110 | optional script with some commands to run inside android container after startup: 111 | 112 | /usr/libexec/appsupport/alien-post-startup.sh 113 | -------------------------------------------------------------------------------- /other-docs/known-issues.txt: -------------------------------------------------------------------------------- 1 | known issues (which are working on sailfish phone): 2 | 3 | - sometimes windows open into empty workspaces / don't get mapped 4 | - probably compositor bugs 5 | 6 | - videos in telegram don't play, only sound 7 | - in theory all the sw deconding codecs are here 8 | - not an issue on pine it seems 9 | 10 | - h264/h265 videos don't play sometimes 11 | - in theory all the sw deconding codecs are here 12 | 13 | - android isn't aware of cellular network 14 | - works via custom ofono plugin on sailfish, no chance 15 | 16 | - signal and whatsapp calls take long to establish / don't work sometimes 17 | - there's an error about focus for a surface, maybe compositor problem? 18 | 19 | - accelerometer and rotation sensors aren't forwarded to android 20 | - custom vibration patterns from android apps don't work 21 | 22 | - android apps in fullscreen don't actually fullscreen 23 | -------------------------------------------------------------------------------- /other-docs/sailfish-changelogs/Changelog_from_4.5.0.16_to_4.5.0.18.md: -------------------------------------------------------------------------------- 1 | ===================================== 2 | SAILFISH OS 3 | Changelog from 4.5.0.16 to 4.5.0.18 4 | 2023-02-16 5 | ===================================== 6 | 7 | # Packages modified (9) 8 | 9 | ### declarative-transferengine-qt5 10 | Updated : 1.1.3-1.9.1.jolla -- 1.1.4-1.10.1.jolla 11 | - [declarative-transferengine] Add plugins.qmltypes for Sailfish.Tranferengine. 12 | ### kf5bluezqt-bluez5 13 | Updated : 5.50.0+git4-1.8.1.jolla -- 5.50.0+git6-1.9.1.jolla 14 | - [kf5bluezqt] Add plugins.qmltypes. 15 | - [kf5bluezqt] Fix qmlplugindump crash. 16 | - [kf5bluezqt] Add qch to documentation package. 17 | - [kf5bluezqt] Force light mode in documentation. 18 | ### libxslt 19 | Updated : 1.1.37+git1-1.7.2.jolla -- 1.1.37+git2-1.9.1.jolla 20 | - [libxslt] Backport patch to add missing symbolic links. 21 | ### lipstick-jolla-home-qt5 22 | Updated : 1.25.13.2-1.14.1.jolla -- 1.25.13.3-1.15.1.jolla 23 | - [lipstick-jolla] Fix lock view ongoing call item being out of screen. 24 | ### mer-qdoc-template 25 | Updated : 0.0.6-1.6.1.jolla -- 0.0.7-1.7.1.jolla 26 | - [mer-qdoc-template] Add left margin. 27 | - [mer-qdoc-template] Use px for margin definition. 28 | ### sailfish-components-bluetooth-qt5 29 | Updated : 0.2.23.1-1.7.1.jolla -- 0.2.23.2-1.8.1.jolla 30 | - [components-bluetooth] Add plugins.qmltypes. 31 | ### sailfish-qdoc-template 32 | Updated : 0.3-1.3.1.jolla -- 0.4-1.4.1.jolla 33 | - [sailfish-qdoc-template] Add left margin. 34 | - [sailfish-qdoc-template] Use px in margin definition. 35 | ### sdk-setup 36 | Updated : 1.4.79-1.15.1.jolla -- 1.4.84-1.18.1.jolla 37 | - [sdk-info] Fix path to the 'ip' command. 38 | - [sdk-setup] Authenticate connections from sfdk. 39 | - [mb2] Use /usr/local/bin/git if available. 40 | - [sdk-init] Separate spec files per builder. 41 | - [sdk-make-qmltypes] Enable use with git submodules. 42 | ### xulrunner-qt5 43 | Updated : 78.15.1+git33-1.19.1.jolla -- 78.15.1+git33.1-1.20.1.jolla 44 | - [sailfishos][gecko] Backport support for ffmpeg 5.0. 45 | -------------------------------------------------------------------------------- /other-docs/sailfish-changelogs/Changelog_from_4.5.0.21_to_4.5.0.24.md: -------------------------------------------------------------------------------- 1 | 2 | SAILFISH OS: Changelog from 4.5.0.21 to 4.5.0.24 3 | 2023-09-07 4 | 5 | ## Packages modified (13) 6 | 7 | ### declarative-transferengine-qt5 8 | Updated : 1.1.4-1.10.1.jolla -- 1.1.5-1.11.1.jolla 9 | - [declarative-transferengine] Do not clip download ProgressBar. 10 | 11 | ### jolla-calculator 12 | Updated : 1.0.8-1.4.1.jolla -- 1.0.9-1.5.1.jolla 13 | - [calculator] Use page high dragging area. 14 | 15 | ### jolla-keyboard 16 | Updated : 0.9.5-1.9.1.jolla -- 0.9.6-1.10.1.jolla 17 | - [keyboard] Allow text field to prevent vkb hiding. 18 | 19 | ### jolla-sessions-qt5 20 | Updated : 1.4.22-1.4.1.jolla -- 1.4.24.1-1.6.1.jolla 21 | - [jolla-sessions-qt5] Revert SUW done files changes. 22 | - [jolla-sessions] Update license to BSD. 23 | - [base-jolla-sessions-qt5] Startupwizard done files dir change. 24 | 25 | ### jolla-settings-system 26 | Updated : 1.2.5.4-1.16.1.jolla -- 1.2.5.7-1.17.1.jolla 27 | Binaries removed : jolla-settings-system-about-font-licenses, jolla-settings-system-about-package-licenses 28 | - [settings-system] Allow to pick a separate ringtone for SIM2. 29 | - [settings-system] Disable user closing virtual keyboard on lock input. 30 | - [settings-system] Stop tone preview playback when entering subpage. 31 | - [jolla-settings-system] Add 'Licenses' button to About product. 32 | - [settings-system] Remove obsolete about-font-licenses subpackage. 33 | 34 | ### mapplauncherd-booster-browser 35 | Updated : 0.2.0-1.7.1.jolla -- 0.2.1-1.8.1.jolla 36 | - [packaging] Use pkgconfig for systemd build requirement. 37 | 38 | ### nemo-qml-plugin-systemsettings 39 | Updated : 0.10.2-1.14.1.jolla -- 0.10.3-1.15.1.jolla 40 | - [systemsettings] Support another ringtone for SIM2. 41 | 42 | ### sailfish-components-weather-qt5 43 | Updated : 1.1.16-1.7.3.jolla -- 1.1.19-1.8.1.jolla 44 | - [sailfish-weather] Handle unauthorized API key. 45 | - [components-weather] Migrate nemo import name. 46 | - [components-weather] Remove bad connman-qt5 usage from unused location detection. 47 | 48 | ### sailfish-content-tones-default 49 | Updated : 0.16.1-1.2.1.jolla -- 0.16.2-1.3.1.jolla 50 | - [ringtones] Support profiled config for SIM2 ringtone. 51 | 52 | ### sailfish-fonts 53 | Updated : 0.3.0-1.4.1.jolla -- 0.3.1-1.6.1.jolla 54 | - [packaging] Remove unneeded font license package dependency. 55 | 56 | ### sailfish-weather 57 | Updated : 1.0.11-1.6.2.jolla -- 1.0.14-1.8.1.jolla 58 | - [sailfish-weather] Add credential error message below main header. 59 | - [sailfish-weather] Handle unauthorized API key. 60 | - [weather] Migrate nemo configuration plugin import name. 61 | 62 | ### voicecall-qt5 63 | Updated : 0.8.0-1.9.1.jolla -- 0.8.1-1.10.1.jolla 64 | - [voicecall] Support playing app-requested ringtone file. 65 | 66 | ### voicecall-ui-jolla 67 | Updated : 1.15.0.1-1.8.1.jolla -- 1.15.0.2-1.9.1.jolla 68 | - [voicecall-ui] Use separate ringtone for SIM2. 69 | 70 | 71 | -------------------------------------------------------------------------------- /patches/mobile-mutter/0001-xdg-shell-disable-pinging-of-windows.patch: -------------------------------------------------------------------------------- 1 | From 3d6b0e30abb2c5629a503c5ef1e9b3bc36717361 Mon Sep 17 00:00:00 2001 2 | From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= 3 | Date: Wed, 20 Dec 2023 09:43:26 +0100 4 | Subject: [PATCH 1/5] xdg-shell: disable pinging of windows 5 | 6 | Pings are buggy in aliendalvik and cause surfaceflinger (which acts as the 7 | wayland client) to crash, let's disable pinging windows. 8 | --- 9 | src/wayland/meta-wayland-xdg-shell.c | 11 ++++++++++- 10 | 1 file changed, 10 insertions(+), 1 deletion(-) 11 | 12 | diff --git a/src/wayland/meta-wayland-xdg-shell.c b/src/wayland/meta-wayland-xdg-shell.c 13 | index 268a5e7c7..d47fedbdd 100644 14 | --- a/src/wayland/meta-wayland-xdg-shell.c 15 | +++ b/src/wayland/meta-wayland-xdg-shell.c 16 | @@ -1856,8 +1856,17 @@ meta_wayland_xdg_surface_ping (MetaWaylandShellSurface *shell_surface, 17 | MetaWaylandXdgSurface *xdg_surface = META_WAYLAND_XDG_SURFACE (shell_surface); 18 | MetaWaylandXdgSurfacePrivate *priv = 19 | meta_wayland_xdg_surface_get_instance_private (xdg_surface); 20 | +MetaWaylandSurface *surface = meta_wayland_surface_role_get_surface (shell_surface); 21 | + 22 | + MetaContext *context = 23 | + meta_wayland_compositor_get_context (surface->compositor); 24 | + 25 | + MetaDisplay *display = meta_context_get_display (context); 26 | + 27 | + 28 | +// xdg_wm_base_send_ping (priv->shell_client->resource, serial); 29 | + meta_display_pong_for_serial (display, serial); 30 | 31 | - xdg_wm_base_send_ping (priv->shell_client->resource, serial); 32 | } 33 | 34 | static void 35 | -- 36 | 2.43.0 37 | 38 | -------------------------------------------------------------------------------- /patches/mobile-mutter/0002-window-force-geometry-scale-for-alien-windows-to-1.patch: -------------------------------------------------------------------------------- 1 | From 962fedd7b3dc2abdb2c988c6aa040b187d001995 Mon Sep 17 00:00:00 2001 2 | From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= 3 | Date: Wed, 20 Dec 2023 09:44:50 +0100 4 | Subject: [PATCH 2/5] window: force geometry scale for alien windows to 1 5 | 6 | --- 7 | src/core/window.c | 2 ++ 8 | src/wayland/meta-window-wayland.c | 11 +++++++++++ 9 | src/wayland/meta-window-wayland.h | 2 ++ 10 | 3 files changed, 15 insertions(+) 11 | 12 | diff --git a/src/core/window.c b/src/core/window.c 13 | index 15d35864f..3ee584e46 100644 14 | --- a/src/core/window.c 15 | +++ b/src/core/window.c 16 | @@ -7333,6 +7333,8 @@ meta_window_set_wm_class (MetaWindow *window, 17 | window->res_name = g_strdup (wm_instance); 18 | window->res_class = g_strdup (wm_class); 19 | 20 | + meta_window_wayland_update_geometry_scale (window); 21 | + 22 | g_object_notify_by_pspec (G_OBJECT (window), obj_props[PROP_WM_CLASS]); 23 | } 24 | 25 | diff --git a/src/wayland/meta-window-wayland.c b/src/wayland/meta-window-wayland.c 26 | index f022fcf8d..b8d686f7d 100644 27 | --- a/src/wayland/meta-window-wayland.c 28 | +++ b/src/wayland/meta-window-wayland.c 29 | @@ -1088,9 +1088,20 @@ meta_window_wayland_get_geometry_scale (MetaWindow *window) 30 | if (!window->monitor) 31 | return 1; 32 | 33 | + if (g_str_has_prefix (window->res_class, "alien_")) 34 | + return 1; 35 | + 36 | return get_window_geometry_scale_for_logical_monitor (window->monitor); 37 | } 38 | 39 | +void 40 | +meta_window_wayland_update_geometry_scale (MetaWindow *window) 41 | +{ 42 | + MetaWindowWayland *wl_window = META_WINDOW_WAYLAND (window); 43 | + 44 | + set_geometry_scale_for_window (wl_window, meta_window_wayland_get_geometry_scale (window)); 45 | +} 46 | + 47 | static void 48 | calculate_position (MetaWaylandWindowConfiguration *configuration, 49 | MtkRectangle *geometry, 50 | diff --git a/src/wayland/meta-window-wayland.h b/src/wayland/meta-window-wayland.h 51 | index a02224e55..d23d9ea90 100644 52 | --- a/src/wayland/meta-window-wayland.h 53 | +++ b/src/wayland/meta-window-wayland.h 54 | @@ -43,6 +43,8 @@ void meta_window_wayland_finish_move_resize (MetaWindow *window, 55 | 56 | int meta_window_wayland_get_geometry_scale (MetaWindow *window); 57 | 58 | +void meta_window_wayland_update_geometry_scale (MetaWindow *window); 59 | + 60 | void meta_window_place_with_placement_rule (MetaWindow *window, 61 | MetaPlacementRule *placement_rule); 62 | 63 | -- 64 | 2.43.0 65 | 66 | -------------------------------------------------------------------------------- /patches/mobile-mutter/0003-window-wayland-disable-xdg_toplevel_minimize.patch: -------------------------------------------------------------------------------- 1 | From be9b9c35a5a5fb8476da760f097fcf24053661d2 Mon Sep 17 00:00:00 2001 2 | From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= 3 | Date: Wed, 20 Dec 2023 09:40:16 +0100 4 | Subject: [PATCH 3/5] window-wayland: disable xdg_toplevel_minimize 5 | 6 | Looks like the xdg toplevel implementation of aliendalvik uses this 7 | request quite extensively to hide windows when they go out of focus. 8 | That is not on user request and quite confusing, so force-disable the 9 | whole minimization behavior, we don't really need it anyway. 10 | --- 11 | src/wayland/meta-wayland-xdg-shell.c | 2 +- 12 | 1 file changed, 1 insertion(+), 1 deletion(-) 13 | 14 | diff --git a/src/wayland/meta-wayland-xdg-shell.c b/src/wayland/meta-wayland-xdg-shell.c 15 | index d47fedbdd..6a5044bbc 100644 16 | --- a/src/wayland/meta-wayland-xdg-shell.c 17 | +++ b/src/wayland/meta-wayland-xdg-shell.c 18 | @@ -538,7 +538,7 @@ xdg_toplevel_set_minimized (struct wl_client *client, 19 | if (!window) 20 | return; 21 | 22 | - meta_window_minimize (window); 23 | +// meta_window_minimize (window); 24 | } 25 | 26 | static const struct xdg_toplevel_interface meta_wayland_xdg_toplevel_interface = { 27 | -- 28 | 2.43.0 29 | 30 | -------------------------------------------------------------------------------- /patches/mobile-mutter/0004-wayland-text-input-small-improvements-which-are-hope.patch: -------------------------------------------------------------------------------- 1 | From 32a1f557572f79b7cd0d4f24c38852282ec938c5 Mon Sep 17 00:00:00 2001 2 | From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= 3 | Date: Wed, 20 Dec 2023 09:48:36 +0100 4 | Subject: [PATCH 4/5] wayland/text-input: small improvements which are 5 | hopefully correct 6 | 7 | --- 8 | src/wayland/meta-wayland-text-input.c | 5 +++-- 9 | 1 file changed, 3 insertions(+), 2 deletions(-) 10 | 11 | diff --git a/src/wayland/meta-wayland-text-input.c b/src/wayland/meta-wayland-text-input.c 12 | index 7befbcdb0..8d67e29be 100644 13 | --- a/src/wayland/meta-wayland-text-input.c 14 | +++ b/src/wayland/meta-wayland-text-input.c 15 | @@ -367,6 +367,8 @@ meta_wayland_text_input_set_focus (MetaWaylandTextInput *text_input, 16 | 17 | wl_resource_for_each (resource, &text_input->focus_resource_list) 18 | { 19 | +g_warning("MUTTER sending text input leave to surface %p res %p", text_input->surface, text_input->surface->resource); 20 | +if (text_input->surface->resource) 21 | zwp_text_input_v3_send_leave (resource, 22 | text_input->surface->resource); 23 | } 24 | @@ -740,8 +742,7 @@ meta_wayland_text_input_create_new_resource (MetaWaylandTextInput *text_input, 25 | &meta_text_input_interface, 26 | text_input, text_input_destructor); 27 | 28 | - if (text_input->surface && 29 | - wl_resource_get_client (text_input->surface->resource) == client) 30 | + if (client_matches_focus (text_input, client)) 31 | { 32 | wl_list_insert (&text_input->focus_resource_list, 33 | wl_resource_get_link (text_input_resource)); 34 | -- 35 | 2.43.0 36 | 37 | -------------------------------------------------------------------------------- /patches/wayland/0001-server-don-t-be-so-angry-about-client-errors.patch: -------------------------------------------------------------------------------- 1 | From 94b98f0e8e05e0fcd6398eefd15397f61b9acc85 Mon Sep 17 00:00:00 2001 2 | From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= 3 | Date: Wed, 20 Dec 2023 09:30:02 +0100 4 | Subject: [PATCH 1/2] server: don't be so angry about client errors 5 | 6 | It seems the aliendalvik sometimes doesn't comply to the protocols 7 | and cause protocol errors in libwayland. Things work fine if we just 8 | ignore them instead of terminating the connection to the compositor, 9 | so be a bit more gentle about those errors. 10 | --- 11 | src/wayland-server.c | 31 +++++++++++++++++++------------ 12 | 1 file changed, 19 insertions(+), 12 deletions(-) 13 | 14 | diff --git a/src/wayland-server.c b/src/wayland-server.c 15 | index e784ef6..b3a29eb 100644 16 | --- a/src/wayland-server.c 17 | +++ b/src/wayland-server.c 18 | @@ -381,10 +381,12 @@ wl_client_connection_data(int fd, uint32_t mask, void *data) 19 | resource = wl_map_lookup(&client->objects, p[0]); 20 | resource_flags = wl_map_lookup_flags(&client->objects, p[0]); 21 | if (resource == NULL) { 22 | - wl_resource_post_error(client->display_resource, 23 | - WL_DISPLAY_ERROR_INVALID_OBJECT, 24 | - "invalid object %u", p[0]); 25 | - break; 26 | +// wl_resource_post_error(client->display_resource, 27 | +// WL_DISPLAY_ERROR_INVALID_OBJECT, 28 | +// "invalid object %u", p[0]); 29 | + wl_log("DISCARDING request from buggy client: invalid object %u\n", p[0]); 30 | + wl_connection_consume(connection, size); 31 | + goto next; 32 | } 33 | 34 | object = &resource->object; 35 | @@ -421,14 +423,19 @@ wl_client_connection_data(int fd, uint32_t mask, void *data) 36 | break; 37 | } else if (closure == NULL || 38 | wl_closure_lookup_objects(closure, &client->objects) < 0) { 39 | - wl_resource_post_error(client->display_resource, 40 | - WL_DISPLAY_ERROR_INVALID_METHOD, 41 | - "invalid arguments for %s#%u.%s", 42 | - object->interface->name, 43 | - object->id, 44 | - message->name); 45 | +// wl_resource_post_error(client->display_resource, 46 | +// WL_DISPLAY_ERROR_INVALID_METHOD, 47 | +// "invalid arguments for %s#%u.%s", 48 | +// object->interface->name, 49 | +// object->id, 50 | +// message->name); 51 | + wl_log("DISCARDING: invalid arguments for %s#%u.%s\n", 52 | + object->interface->name, 53 | + object->id, 54 | + message->name); 55 | + 56 | wl_closure_destroy(closure); 57 | - break; 58 | + goto next; 59 | } 60 | 61 | log_closure(resource, closure, false); 62 | @@ -446,7 +453,7 @@ wl_client_connection_data(int fd, uint32_t mask, void *data) 63 | 64 | if (client->error) 65 | break; 66 | - 67 | +next: 68 | len = wl_connection_pending_input(connection); 69 | } 70 | 71 | -- 72 | 2.43.0 73 | 74 | -------------------------------------------------------------------------------- /patches/wayland/0002-don-t-offer-zwp_text_input_v3-to-alien-clients.patch: -------------------------------------------------------------------------------- 1 | From a76eb21146fe9c24373eacd0bce41eaac73e4d19 Mon Sep 17 00:00:00 2001 2 | From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= 3 | Date: Wed, 20 Dec 2023 09:28:15 +0100 4 | Subject: [PATCH 2/2] don't offer zwp_text_input_v3 to alien clients 5 | 6 | their implementation is extremely buggy, we want the thing to connect to 7 | maliit via dbus instead for text input, and it will only do that if it 8 | doesn't get offered zwp_text_input. 9 | 10 | So (very very crudely) detect that the client is aliendalvik and then 11 | remove the zwp_text_input protocol from the ones the server offers. 12 | --- 13 | src/wayland-server.c | 17 +++++++++++++++++ 14 | 1 file changed, 17 insertions(+) 15 | 16 | diff --git a/src/wayland-server.c b/src/wayland-server.c 17 | index b3a29eb..f61cf5f 100644 18 | --- a/src/wayland-server.c 19 | +++ b/src/wayland-server.c 20 | @@ -212,6 +212,7 @@ handle_array(struct wl_resource *resource, uint32_t opcode, 21 | { 22 | struct wl_closure *closure; 23 | struct wl_object *object = &resource->object; 24 | + static const char *disable_protocol = NULL; 25 | 26 | if (resource->client->error) 27 | return; 28 | @@ -229,6 +230,22 @@ handle_array(struct wl_resource *resource, uint32_t opcode, 29 | return; 30 | } 31 | 32 | + 33 | + if (resource->client->uid >= 500000) { 34 | + fprintf(stderr, "client has high UID %d, assuming it's aliendalvik", resource->client->uid); 35 | + disable_protocol = "zwp_text_input_manager_v3"; 36 | + } else { 37 | + disable_protocol = ""; 38 | + } 39 | + 40 | + if (strcmp (object->interface->name, "wl_registry") == 0 && 41 | + strcmp (closure->message->name, "global") == 0 && 42 | + strcmp (closure->args[1].s, disable_protocol) == 0) { 43 | + fprintf(stderr, "found disabled proto queu %s\n", closure->args[1].s); 44 | + wl_closure_destroy(closure); 45 | + return; 46 | + } 47 | + 48 | log_closure(resource, closure, true); 49 | 50 | if (send_func(closure, resource->client->connection)) 51 | -- 52 | 2.43.0 53 | 54 | -------------------------------------------------------------------------------- /setup-environment.txt: -------------------------------------------------------------------------------- 1 | - enable systemd-resolved to actually answer queries on port 53 so that android can ask dns queries 2 | # add this line to /etc/systemd/resolved.conf 3 | DNSStubListenerExtra=127.0.0.1^ 4 | # then restart systemd-resolved 5 | sudo systemctl restart systemd-resolved 6 | 7 | - setup users/groups needed for aliendalvik 8 | # create user+group that gets permissions for wayland-socket 9 | useradd -u 501000 -U aliendalvik-wayland 10 | groupmod -g 501000 aliendalvik-wayland 11 | 12 | # create aliendalvik-root user with UID and GID 500000 13 | useradd -u 500000 -U aliendalvik-root 14 | groupmod -g 500000 aliendalvik-root 15 | 16 | # own data directory 17 | mkdir -p /opt/alien/data/ 18 | chown -R aliendalvik-root:aliendalvik-root /opt/alien/data/ 19 | 20 | # set subuids (no clue how correct this actually is, but works) 21 | # might have to create those files 22 | touch /etc/subuid 23 | touch /etc/subgid 24 | usermod --add-subuids 100000-100000 --add-subgids 100000-100000 root 25 | usermod --add-subuids 100000-100000 --add-subgids 100000-100000 aliendalvik-root 26 | usermod --add-subuids 500000-599999 --add-subgids 500000-599999 root 27 | usermod --add-subuids 500000-599999 --add-subgids 500000-599999 aliendalvik-root 28 | usermod --add-subuids 600001-700000 --add-subgids 600001-700000 root 29 | usermod --add-subuids 600001-700000 --add-subgids 600001-700000 aliendalvik-root 30 | 31 | usermod --add-subuids YOUR_UID-YOUR_UID --add-subgids YOUR_UID-YOUR_UID root 32 | 33 | - symlink from /usr/lib to /usr/lib64 (alienaudioservice hardcodes some paths to lib64 :/) 34 | ln -s /usr/lib /usr/lib64 35 | 36 | - make sure pulseaudio is used instead of pipewire (pipewire for some reason stops working after a few minutes) 37 | systemctl --user mask pipewire 38 | systemctl --user disable --now pipewire.socket 39 | systemctl --user enable --now pulseaudio 40 | 41 | - modify alienkeyboardservice binary to use the correct binder device 42 | use a hex editor to replace the NULL-terminated string /dev/puddlejumper with /dev/binder 43 | -------------------------------------------------------------------------------- /shimming/alienaudioservice/alienaudio-shim.conf: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /shimming/alienaudioservice/alienaudio-shim.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Aliendalvik audio DBus shim provider 3 | After=dbus.socket graphical-session.target 4 | Requires=dbus.socket graphical-session.target 5 | 6 | [Service] 7 | Type=simple 8 | Restart=always 9 | RestartSec=5 10 | ExecStart=/usr/bin/alienaudio-shim 11 | -------------------------------------------------------------------------------- /shimming/alienkeyboardservice/alienkeyboard-maliit-shim.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Aliendalvik keyboard DBus shim provider 3 | After=dbus.socket graphical-session.target 4 | Requires=dbus.socket graphical-session.target 5 | 6 | [Service] 7 | Type=simple 8 | Restart=always 9 | RestartSec=5 10 | ExecStart=/usr/bin/alienkeyboard-maliit-shim/alienkeyboard-maliit-shim 11 | -------------------------------------------------------------------------------- /shimming/alienkeyboardservice/protocols/content_type_v1/__init__.py: -------------------------------------------------------------------------------- 1 | # This file has been autogenerated by the pywayland scanner 2 | 3 | # Copyright © 2021 Emmanuel Gil Peyrot 4 | # Copyright © 2022 Xaver Hugl 5 | # 6 | # Permission is hereby granted, free of charge, to any person obtaining a 7 | # copy of this software and associated documentation files (the "Software"), 8 | # to deal in the Software without restriction, including without limitation 9 | # the rights to use, copy, modify, merge, publish, distribute, sublicense, 10 | # and/or sell copies of the Software, and to permit persons to whom the 11 | # Software is furnished to do so, subject to the following conditions: 12 | # 13 | # The above copyright notice and this permission notice (including the next 14 | # paragraph) shall be included in all copies or substantial portions of the 15 | # Software. 16 | # 17 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 20 | # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 22 | # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 23 | # DEALINGS IN THE SOFTWARE. 24 | 25 | from .wp_content_type_manager_v1 import WpContentTypeManagerV1 # noqa: F401 26 | from .wp_content_type_v1 import WpContentTypeV1 # noqa: F401 27 | -------------------------------------------------------------------------------- /shimming/alienkeyboardservice/protocols/content_type_v1/wp_content_type_manager_v1.py: -------------------------------------------------------------------------------- 1 | # This file has been autogenerated by the pywayland scanner 2 | 3 | # Copyright © 2021 Emmanuel Gil Peyrot 4 | # Copyright © 2022 Xaver Hugl 5 | # 6 | # Permission is hereby granted, free of charge, to any person obtaining a 7 | # copy of this software and associated documentation files (the "Software"), 8 | # to deal in the Software without restriction, including without limitation 9 | # the rights to use, copy, modify, merge, publish, distribute, sublicense, 10 | # and/or sell copies of the Software, and to permit persons to whom the 11 | # Software is furnished to do so, subject to the following conditions: 12 | # 13 | # The above copyright notice and this permission notice (including the next 14 | # paragraph) shall be included in all copies or substantial portions of the 15 | # Software. 16 | # 17 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 20 | # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 22 | # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 23 | # DEALINGS IN THE SOFTWARE. 24 | 25 | from __future__ import annotations 26 | 27 | import enum 28 | 29 | from pywayland.protocol_core import ( 30 | Argument, 31 | ArgumentType, 32 | Global, 33 | Interface, 34 | Proxy, 35 | Resource, 36 | ) 37 | from ..wayland import WlSurface 38 | from .wp_content_type_v1 import WpContentTypeV1 39 | 40 | 41 | class WpContentTypeManagerV1(Interface): 42 | """Surface content type manager 43 | 44 | This interface allows a client to describe the kind of content a surface 45 | will display, to allow the compositor to optimize its behavior for it. 46 | 47 | Warning! The protocol described in this file is currently in the testing 48 | phase. Backward compatible changes may be added together with the 49 | corresponding interface version bump. Backward incompatible changes can 50 | only be done by creating a new major version of the extension. 51 | """ 52 | 53 | name = "wp_content_type_manager_v1" 54 | version = 1 55 | 56 | class error(enum.IntEnum): 57 | already_constructed = 0 58 | 59 | 60 | class WpContentTypeManagerV1Proxy(Proxy[WpContentTypeManagerV1]): 61 | interface = WpContentTypeManagerV1 62 | 63 | @WpContentTypeManagerV1.request() 64 | def destroy(self) -> None: 65 | """Destroy the content type manager object 66 | 67 | Destroy the content type manager. This doesn't destroy objects created 68 | with the manager. 69 | """ 70 | self._marshal(0) 71 | self._destroy() 72 | 73 | @WpContentTypeManagerV1.request( 74 | Argument(ArgumentType.NewId, interface=WpContentTypeV1), 75 | Argument(ArgumentType.Object, interface=WlSurface), 76 | ) 77 | def get_surface_content_type(self, surface: WlSurface) -> Proxy[WpContentTypeV1]: 78 | """Create a new toplevel decoration object 79 | 80 | Create a new content type object associated with the given surface. 81 | 82 | Creating a :class:`~pywayland.protocol.content_type_v1.WpContentTypeV1` 83 | from a :class:`~pywayland.protocol.wayland.WlSurface` which already has 84 | one attached is a client error: already_constructed. 85 | 86 | :param surface: 87 | :type surface: 88 | :class:`~pywayland.protocol.wayland.WlSurface` 89 | :returns: 90 | :class:`~pywayland.protocol.content_type_v1.WpContentTypeV1` 91 | """ 92 | id = self._marshal_constructor(1, WpContentTypeV1, surface) 93 | return id 94 | 95 | 96 | class WpContentTypeManagerV1Resource(Resource): 97 | interface = WpContentTypeManagerV1 98 | 99 | 100 | class WpContentTypeManagerV1Global(Global): 101 | interface = WpContentTypeManagerV1 102 | 103 | 104 | WpContentTypeManagerV1._gen_c() 105 | WpContentTypeManagerV1.proxy_class = WpContentTypeManagerV1Proxy 106 | WpContentTypeManagerV1.resource_class = WpContentTypeManagerV1Resource 107 | WpContentTypeManagerV1.global_class = WpContentTypeManagerV1Global 108 | -------------------------------------------------------------------------------- /shimming/alienkeyboardservice/protocols/content_type_v1/wp_content_type_v1.py: -------------------------------------------------------------------------------- 1 | # This file has been autogenerated by the pywayland scanner 2 | 3 | # Copyright © 2021 Emmanuel Gil Peyrot 4 | # Copyright © 2022 Xaver Hugl 5 | # 6 | # Permission is hereby granted, free of charge, to any person obtaining a 7 | # copy of this software and associated documentation files (the "Software"), 8 | # to deal in the Software without restriction, including without limitation 9 | # the rights to use, copy, modify, merge, publish, distribute, sublicense, 10 | # and/or sell copies of the Software, and to permit persons to whom the 11 | # Software is furnished to do so, subject to the following conditions: 12 | # 13 | # The above copyright notice and this permission notice (including the next 14 | # paragraph) shall be included in all copies or substantial portions of the 15 | # Software. 16 | # 17 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 20 | # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 22 | # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 23 | # DEALINGS IN THE SOFTWARE. 24 | 25 | from __future__ import annotations 26 | 27 | import enum 28 | 29 | from pywayland.protocol_core import ( 30 | Argument, 31 | ArgumentType, 32 | Global, 33 | Interface, 34 | Proxy, 35 | Resource, 36 | ) 37 | 38 | 39 | class WpContentTypeV1(Interface): 40 | """Content type object for a surface 41 | 42 | The content type object allows the compositor to optimize for the kind of 43 | content shown on the surface. A compositor may for example use it to set 44 | relevant drm properties like "content type". 45 | 46 | The client may request to switch to another content type at any time. When 47 | the associated surface gets destroyed, this object becomes inert and the 48 | client should destroy it. 49 | """ 50 | 51 | name = "wp_content_type_v1" 52 | version = 1 53 | 54 | class type(enum.IntEnum): 55 | none = 0 56 | photo = 1 57 | video = 2 58 | game = 3 59 | 60 | 61 | class WpContentTypeV1Proxy(Proxy[WpContentTypeV1]): 62 | interface = WpContentTypeV1 63 | 64 | @WpContentTypeV1.request() 65 | def destroy(self) -> None: 66 | """Destroy the content type object 67 | 68 | Switch back to not specifying the content type of this surface. This is 69 | equivalent to setting the content type to none, including double 70 | buffering semantics. See set_content_type for details. 71 | """ 72 | self._marshal(0) 73 | self._destroy() 74 | 75 | @WpContentTypeV1.request( 76 | Argument(ArgumentType.Uint), 77 | ) 78 | def set_content_type(self, content_type: int) -> None: 79 | """Specify the content type 80 | 81 | Set the surface content type. This informs the compositor that the 82 | client believes it is displaying buffers matching this content type. 83 | 84 | This is purely a hint for the compositor, which can be used to adjust 85 | its behavior or hardware settings to fit the presented content best. 86 | 87 | The content type is double-buffered state, see 88 | :func:`WlSurface.commit() 89 | ` for details. 90 | 91 | :param content_type: 92 | the content type 93 | :type content_type: 94 | `ArgumentType.Uint` 95 | """ 96 | self._marshal(1, content_type) 97 | 98 | 99 | class WpContentTypeV1Resource(Resource): 100 | interface = WpContentTypeV1 101 | 102 | 103 | class WpContentTypeV1Global(Global): 104 | interface = WpContentTypeV1 105 | 106 | 107 | WpContentTypeV1._gen_c() 108 | WpContentTypeV1.proxy_class = WpContentTypeV1Proxy 109 | WpContentTypeV1.resource_class = WpContentTypeV1Resource 110 | WpContentTypeV1.global_class = WpContentTypeV1Global 111 | -------------------------------------------------------------------------------- /shimming/alienkeyboardservice/protocols/cursor_shape_v1/__init__.py: -------------------------------------------------------------------------------- 1 | # This file has been autogenerated by the pywayland scanner 2 | 3 | # Copyright 2018 The Chromium Authors 4 | # Copyright 2023 Simon Ser 5 | # 6 | # Permission is hereby granted, free of charge, to any person obtaining a 7 | # copy of this software and associated documentation files (the "Software"), 8 | # to deal in the Software without restriction, including without limitation 9 | # the rights to use, copy, modify, merge, publish, distribute, sublicense, 10 | # and/or sell copies of the Software, and to permit persons to whom the 11 | # Software is furnished to do so, subject to the following conditions: 12 | # The above copyright notice and this permission notice (including the next 13 | # paragraph) shall be included in all copies or substantial portions of the 14 | # Software. 15 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 18 | # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 20 | # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 21 | # DEALINGS IN THE SOFTWARE. 22 | 23 | from .wp_cursor_shape_device_v1 import WpCursorShapeDeviceV1 # noqa: F401 24 | from .wp_cursor_shape_manager_v1 import WpCursorShapeManagerV1 # noqa: F401 25 | -------------------------------------------------------------------------------- /shimming/alienkeyboardservice/protocols/drm_lease_v1/__init__.py: -------------------------------------------------------------------------------- 1 | # This file has been autogenerated by the pywayland scanner 2 | 3 | # Copyright © 2018 NXP 4 | # Copyright © 2019 Status Research & Development GmbH. 5 | # Copyright © 2021 Xaver Hugl 6 | # 7 | # Permission is hereby granted, free of charge, to any person obtaining a 8 | # copy of this software and associated documentation files (the "Software"), 9 | # to deal in the Software without restriction, including without limitation 10 | # the rights to use, copy, modify, merge, publish, distribute, sublicense, 11 | # and/or sell copies of the Software, and to permit persons to whom the 12 | # Software is furnished to do so, subject to the following conditions: 13 | # 14 | # The above copyright notice and this permission notice (including the next 15 | # paragraph) shall be included in all copies or substantial portions of the 16 | # Software. 17 | # 18 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 21 | # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 22 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 23 | # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 24 | # DEALINGS IN THE SOFTWARE. 25 | 26 | from .wp_drm_lease_connector_v1 import WpDrmLeaseConnectorV1 # noqa: F401 27 | from .wp_drm_lease_device_v1 import WpDrmLeaseDeviceV1 # noqa: F401 28 | from .wp_drm_lease_request_v1 import WpDrmLeaseRequestV1 # noqa: F401 29 | from .wp_drm_lease_v1 import WpDrmLeaseV1 # noqa: F401 30 | -------------------------------------------------------------------------------- /shimming/alienkeyboardservice/protocols/ext_foreign_toplevel_list_v1/__init__.py: -------------------------------------------------------------------------------- 1 | # This file has been autogenerated by the pywayland scanner 2 | 3 | # Copyright © 2018 Ilia Bozhinov 4 | # Copyright © 2020 Isaac Freund 5 | # Copyright © 2022 wb9688 6 | # Copyright © 2023 i509VCB 7 | # 8 | # Permission to use, copy, modify, distribute, and sell this 9 | # software and its documentation for any purpose is hereby granted 10 | # without fee, provided that the above copyright notice appear in 11 | # all copies and that both that copyright notice and this permission 12 | # notice appear in supporting documentation, and that the name of 13 | # the copyright holders not be used in advertising or publicity 14 | # pertaining to distribution of the software without specific, 15 | # written prior permission. The copyright holders make no 16 | # representations about the suitability of this software for any 17 | # purpose. It is provided "as is" without express or implied 18 | # warranty. 19 | # 20 | # THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS 21 | # SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND 22 | # FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY 23 | # SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 24 | # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN 25 | # AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, 26 | # ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF 27 | # THIS SOFTWARE. 28 | 29 | from .ext_foreign_toplevel_handle_v1 import ExtForeignToplevelHandleV1 # noqa: F401 30 | from .ext_foreign_toplevel_list_v1 import ExtForeignToplevelListV1 # noqa: F401 31 | -------------------------------------------------------------------------------- /shimming/alienkeyboardservice/protocols/ext_idle_notify_v1/__init__.py: -------------------------------------------------------------------------------- 1 | # This file has been autogenerated by the pywayland scanner 2 | 3 | # Copyright © 2015 Martin Gräßlin 4 | # Copyright © 2022 Simon Ser 5 | # 6 | # Permission is hereby granted, free of charge, to any person obtaining a 7 | # copy of this software and associated documentation files (the "Software"), 8 | # to deal in the Software without restriction, including without limitation 9 | # the rights to use, copy, modify, merge, publish, distribute, sublicense, 10 | # and/or sell copies of the Software, and to permit persons to whom the 11 | # Software is furnished to do so, subject to the following conditions: 12 | # 13 | # The above copyright notice and this permission notice (including the next 14 | # paragraph) shall be included in all copies or substantial portions of the 15 | # Software. 16 | # 17 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 20 | # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 22 | # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 23 | # DEALINGS IN THE SOFTWARE. 24 | 25 | from .ext_idle_notification_v1 import ExtIdleNotificationV1 # noqa: F401 26 | from .ext_idle_notifier_v1 import ExtIdleNotifierV1 # noqa: F401 27 | -------------------------------------------------------------------------------- /shimming/alienkeyboardservice/protocols/ext_idle_notify_v1/ext_idle_notification_v1.py: -------------------------------------------------------------------------------- 1 | # This file has been autogenerated by the pywayland scanner 2 | 3 | # Copyright © 2015 Martin Gräßlin 4 | # Copyright © 2022 Simon Ser 5 | # 6 | # Permission is hereby granted, free of charge, to any person obtaining a 7 | # copy of this software and associated documentation files (the "Software"), 8 | # to deal in the Software without restriction, including without limitation 9 | # the rights to use, copy, modify, merge, publish, distribute, sublicense, 10 | # and/or sell copies of the Software, and to permit persons to whom the 11 | # Software is furnished to do so, subject to the following conditions: 12 | # 13 | # The above copyright notice and this permission notice (including the next 14 | # paragraph) shall be included in all copies or substantial portions of the 15 | # Software. 16 | # 17 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 20 | # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 22 | # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 23 | # DEALINGS IN THE SOFTWARE. 24 | 25 | from __future__ import annotations 26 | 27 | 28 | from pywayland.protocol_core import Global, Interface, Proxy, Resource 29 | 30 | 31 | class ExtIdleNotificationV1(Interface): 32 | """Idle notification 33 | 34 | This interface is used by the compositor to send idle notification events 35 | to clients. 36 | 37 | Initially the notification object is not idle. The notification object 38 | becomes idle when no user activity has happened for at least the timeout 39 | duration, starting from the creation of the notification object. User 40 | activity may include input events or a presence sensor, but is compositor- 41 | specific. If an idle inhibitor is active (e.g. another client has created a 42 | :class:`~pywayland.protocol.idle_inhibit_unstable_v1.ZwpIdleInhibitorV1` on 43 | a visible surface), the compositor must not make the notification object 44 | idle. 45 | 46 | When the notification object becomes idle, an idled event is sent. When 47 | user activity starts again, the notification object stops being idle, a 48 | resumed event is sent and the timeout is restarted. 49 | """ 50 | 51 | name = "ext_idle_notification_v1" 52 | version = 1 53 | 54 | 55 | class ExtIdleNotificationV1Proxy(Proxy[ExtIdleNotificationV1]): 56 | interface = ExtIdleNotificationV1 57 | 58 | @ExtIdleNotificationV1.request() 59 | def destroy(self) -> None: 60 | """Destroy the notification object 61 | 62 | Destroy the notification object. 63 | """ 64 | self._marshal(0) 65 | self._destroy() 66 | 67 | 68 | class ExtIdleNotificationV1Resource(Resource): 69 | interface = ExtIdleNotificationV1 70 | 71 | @ExtIdleNotificationV1.event() 72 | def idled(self) -> None: 73 | """Notification object is idle 74 | 75 | This event is sent when the notification object becomes idle. 76 | 77 | It's a compositor protocol error to send this event twice without a 78 | resumed event in-between. 79 | """ 80 | self._post_event(0) 81 | 82 | @ExtIdleNotificationV1.event() 83 | def resumed(self) -> None: 84 | """Notification object is no longer idle 85 | 86 | This event is sent when the notification object stops being idle. 87 | 88 | It's a compositor protocol error to send this event twice without an 89 | idled event in-between. It's a compositor protocol error to send this 90 | event prior to any idled event. 91 | """ 92 | self._post_event(1) 93 | 94 | 95 | class ExtIdleNotificationV1Global(Global): 96 | interface = ExtIdleNotificationV1 97 | 98 | 99 | ExtIdleNotificationV1._gen_c() 100 | ExtIdleNotificationV1.proxy_class = ExtIdleNotificationV1Proxy 101 | ExtIdleNotificationV1.resource_class = ExtIdleNotificationV1Resource 102 | ExtIdleNotificationV1.global_class = ExtIdleNotificationV1Global 103 | -------------------------------------------------------------------------------- /shimming/alienkeyboardservice/protocols/ext_session_lock_v1/__init__.py: -------------------------------------------------------------------------------- 1 | # This file has been autogenerated by the pywayland scanner 2 | 3 | # Copyright 2021 Isaac Freund 4 | # 5 | # Permission is hereby granted, free of charge, to any person obtaining a 6 | # copy of this software and associated documentation files (the "Software"), 7 | # to deal in the Software without restriction, including without limitation 8 | # the rights to use, copy, modify, merge, publish, distribute, sublicense, 9 | # and/or sell copies of the Software, and to permit persons to whom the 10 | # Software is furnished to do so, subject to the following conditions: 11 | # 12 | # The above copyright notice and this permission notice shall be included in 13 | # all copies or substantial portions of the Software. 14 | # 15 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 18 | # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | # THE SOFTWARE. 22 | 23 | from .ext_session_lock_manager_v1 import ExtSessionLockManagerV1 # noqa: F401 24 | from .ext_session_lock_surface_v1 import ExtSessionLockSurfaceV1 # noqa: F401 25 | from .ext_session_lock_v1 import ExtSessionLockV1 # noqa: F401 26 | -------------------------------------------------------------------------------- /shimming/alienkeyboardservice/protocols/ext_session_lock_v1/ext_session_lock_manager_v1.py: -------------------------------------------------------------------------------- 1 | # This file has been autogenerated by the pywayland scanner 2 | 3 | # Copyright 2021 Isaac Freund 4 | # 5 | # Permission is hereby granted, free of charge, to any person obtaining a 6 | # copy of this software and associated documentation files (the "Software"), 7 | # to deal in the Software without restriction, including without limitation 8 | # the rights to use, copy, modify, merge, publish, distribute, sublicense, 9 | # and/or sell copies of the Software, and to permit persons to whom the 10 | # Software is furnished to do so, subject to the following conditions: 11 | # 12 | # The above copyright notice and this permission notice shall be included in 13 | # all copies or substantial portions of the Software. 14 | # 15 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 18 | # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | # THE SOFTWARE. 22 | 23 | from __future__ import annotations 24 | 25 | 26 | from pywayland.protocol_core import ( 27 | Argument, 28 | ArgumentType, 29 | Global, 30 | Interface, 31 | Proxy, 32 | Resource, 33 | ) 34 | from .ext_session_lock_v1 import ExtSessionLockV1 35 | 36 | 37 | class ExtSessionLockManagerV1(Interface): 38 | """Used to lock the session 39 | 40 | This interface is used to request that the session be locked. 41 | """ 42 | 43 | name = "ext_session_lock_manager_v1" 44 | version = 1 45 | 46 | 47 | class ExtSessionLockManagerV1Proxy(Proxy[ExtSessionLockManagerV1]): 48 | interface = ExtSessionLockManagerV1 49 | 50 | @ExtSessionLockManagerV1.request() 51 | def destroy(self) -> None: 52 | """Destroy the session lock manager object 53 | 54 | This informs the compositor that the session lock manager object will 55 | no longer be used. Existing objects created through this interface 56 | remain valid. 57 | """ 58 | self._marshal(0) 59 | self._destroy() 60 | 61 | @ExtSessionLockManagerV1.request( 62 | Argument(ArgumentType.NewId, interface=ExtSessionLockV1), 63 | ) 64 | def lock(self) -> Proxy[ExtSessionLockV1]: 65 | """Attempt to lock the session 66 | 67 | This request creates a session lock and asks the compositor to lock the 68 | session. The compositor will send either the 69 | :func:`ExtSessionLockV1.locked() 70 | ` or 71 | :func:`ExtSessionLockV1.finished() 72 | ` 73 | event on the created object in response to this request. 74 | 75 | :returns: 76 | :class:`~pywayland.protocol.ext_session_lock_v1.ExtSessionLockV1` 77 | """ 78 | id = self._marshal_constructor(1, ExtSessionLockV1) 79 | return id 80 | 81 | 82 | class ExtSessionLockManagerV1Resource(Resource): 83 | interface = ExtSessionLockManagerV1 84 | 85 | 86 | class ExtSessionLockManagerV1Global(Global): 87 | interface = ExtSessionLockManagerV1 88 | 89 | 90 | ExtSessionLockManagerV1._gen_c() 91 | ExtSessionLockManagerV1.proxy_class = ExtSessionLockManagerV1Proxy 92 | ExtSessionLockManagerV1.resource_class = ExtSessionLockManagerV1Resource 93 | ExtSessionLockManagerV1.global_class = ExtSessionLockManagerV1Global 94 | -------------------------------------------------------------------------------- /shimming/alienkeyboardservice/protocols/fractional_scale_v1/__init__.py: -------------------------------------------------------------------------------- 1 | # This file has been autogenerated by the pywayland scanner 2 | 3 | # Copyright © 2022 Kenny Levinsen 4 | # 5 | # Permission is hereby granted, free of charge, to any person obtaining a 6 | # copy of this software and associated documentation files (the "Software"), 7 | # to deal in the Software without restriction, including without limitation 8 | # the rights to use, copy, modify, merge, publish, distribute, sublicense, 9 | # and/or sell copies of the Software, and to permit persons to whom the 10 | # Software is furnished to do so, subject to the following conditions: 11 | # 12 | # The above copyright notice and this permission notice (including the next 13 | # paragraph) shall be included in all copies or substantial portions of the 14 | # Software. 15 | # 16 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 19 | # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 21 | # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 22 | # DEALINGS IN THE SOFTWARE. 23 | 24 | from .wp_fractional_scale_manager_v1 import WpFractionalScaleManagerV1 # noqa: F401 25 | from .wp_fractional_scale_v1 import WpFractionalScaleV1 # noqa: F401 26 | -------------------------------------------------------------------------------- /shimming/alienkeyboardservice/protocols/fractional_scale_v1/wp_fractional_scale_v1.py: -------------------------------------------------------------------------------- 1 | # This file has been autogenerated by the pywayland scanner 2 | 3 | # Copyright © 2022 Kenny Levinsen 4 | # 5 | # Permission is hereby granted, free of charge, to any person obtaining a 6 | # copy of this software and associated documentation files (the "Software"), 7 | # to deal in the Software without restriction, including without limitation 8 | # the rights to use, copy, modify, merge, publish, distribute, sublicense, 9 | # and/or sell copies of the Software, and to permit persons to whom the 10 | # Software is furnished to do so, subject to the following conditions: 11 | # 12 | # The above copyright notice and this permission notice (including the next 13 | # paragraph) shall be included in all copies or substantial portions of the 14 | # Software. 15 | # 16 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 19 | # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 21 | # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 22 | # DEALINGS IN THE SOFTWARE. 23 | 24 | from __future__ import annotations 25 | 26 | 27 | from pywayland.protocol_core import ( 28 | Argument, 29 | ArgumentType, 30 | Global, 31 | Interface, 32 | Proxy, 33 | Resource, 34 | ) 35 | 36 | 37 | class WpFractionalScaleV1(Interface): 38 | """Fractional scale interface to a :class:`~pywayland.protocol.wayland.WlSurface` 39 | 40 | An additional interface to a :class:`~pywayland.protocol.wayland.WlSurface` 41 | object which allows the compositor to inform the client of the preferred 42 | scale. 43 | """ 44 | 45 | name = "wp_fractional_scale_v1" 46 | version = 1 47 | 48 | 49 | class WpFractionalScaleV1Proxy(Proxy[WpFractionalScaleV1]): 50 | interface = WpFractionalScaleV1 51 | 52 | @WpFractionalScaleV1.request() 53 | def destroy(self) -> None: 54 | """Remove surface scale information for surface 55 | 56 | Destroy the fractional scale object. When this object is destroyed, 57 | preferred_scale events will no longer be sent. 58 | """ 59 | self._marshal(0) 60 | self._destroy() 61 | 62 | 63 | class WpFractionalScaleV1Resource(Resource): 64 | interface = WpFractionalScaleV1 65 | 66 | @WpFractionalScaleV1.event( 67 | Argument(ArgumentType.Uint), 68 | ) 69 | def preferred_scale(self, scale: int) -> None: 70 | """Notify of new preferred scale 71 | 72 | Notification of a new preferred scale for this surface that the 73 | compositor suggests that the client should use. 74 | 75 | The sent scale is the numerator of a fraction with a denominator of 76 | 120. 77 | 78 | :param scale: 79 | the new preferred scale 80 | :type scale: 81 | `ArgumentType.Uint` 82 | """ 83 | self._post_event(0, scale) 84 | 85 | 86 | class WpFractionalScaleV1Global(Global): 87 | interface = WpFractionalScaleV1 88 | 89 | 90 | WpFractionalScaleV1._gen_c() 91 | WpFractionalScaleV1.proxy_class = WpFractionalScaleV1Proxy 92 | WpFractionalScaleV1.resource_class = WpFractionalScaleV1Resource 93 | WpFractionalScaleV1.global_class = WpFractionalScaleV1Global 94 | -------------------------------------------------------------------------------- /shimming/alienkeyboardservice/protocols/fullscreen_shell_unstable_v1/__init__.py: -------------------------------------------------------------------------------- 1 | # This file has been autogenerated by the pywayland scanner 2 | 3 | # Copyright © 2016 Yong Bakos 4 | # Copyright © 2015 Jason Ekstrand 5 | # Copyright © 2015 Jonas Ådahl 6 | # 7 | # Permission is hereby granted, free of charge, to any person obtaining a 8 | # copy of this software and associated documentation files (the "Software"), 9 | # to deal in the Software without restriction, including without limitation 10 | # the rights to use, copy, modify, merge, publish, distribute, sublicense, 11 | # and/or sell copies of the Software, and to permit persons to whom the 12 | # Software is furnished to do so, subject to the following conditions: 13 | # 14 | # The above copyright notice and this permission notice (including the next 15 | # paragraph) shall be included in all copies or substantial portions of the 16 | # Software. 17 | # 18 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 21 | # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 22 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 23 | # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 24 | # DEALINGS IN THE SOFTWARE. 25 | 26 | from .zwp_fullscreen_shell_mode_feedback_v1 import ZwpFullscreenShellModeFeedbackV1 # noqa: F401 27 | from .zwp_fullscreen_shell_v1 import ZwpFullscreenShellV1 # noqa: F401 28 | -------------------------------------------------------------------------------- /shimming/alienkeyboardservice/protocols/fullscreen_shell_unstable_v1/zwp_fullscreen_shell_mode_feedback_v1.py: -------------------------------------------------------------------------------- 1 | # This file has been autogenerated by the pywayland scanner 2 | 3 | # Copyright © 2016 Yong Bakos 4 | # Copyright © 2015 Jason Ekstrand 5 | # Copyright © 2015 Jonas Ådahl 6 | # 7 | # Permission is hereby granted, free of charge, to any person obtaining a 8 | # copy of this software and associated documentation files (the "Software"), 9 | # to deal in the Software without restriction, including without limitation 10 | # the rights to use, copy, modify, merge, publish, distribute, sublicense, 11 | # and/or sell copies of the Software, and to permit persons to whom the 12 | # Software is furnished to do so, subject to the following conditions: 13 | # 14 | # The above copyright notice and this permission notice (including the next 15 | # paragraph) shall be included in all copies or substantial portions of the 16 | # Software. 17 | # 18 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 21 | # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 22 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 23 | # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 24 | # DEALINGS IN THE SOFTWARE. 25 | 26 | from __future__ import annotations 27 | 28 | 29 | from pywayland.protocol_core import Global, Interface, Proxy, Resource 30 | 31 | 32 | class ZwpFullscreenShellModeFeedbackV1(Interface): 33 | name = "zwp_fullscreen_shell_mode_feedback_v1" 34 | version = 1 35 | 36 | 37 | class ZwpFullscreenShellModeFeedbackV1Proxy(Proxy[ZwpFullscreenShellModeFeedbackV1]): 38 | interface = ZwpFullscreenShellModeFeedbackV1 39 | 40 | 41 | class ZwpFullscreenShellModeFeedbackV1Resource(Resource): 42 | interface = ZwpFullscreenShellModeFeedbackV1 43 | 44 | @ZwpFullscreenShellModeFeedbackV1.event() 45 | def mode_successful(self) -> None: 46 | """Mode switch succeeded 47 | 48 | This event indicates that the attempted mode switch operation was 49 | successful. A surface of the size requested in the mode switch will 50 | fill the output without scaling. 51 | 52 | Upon receiving this event, the client should destroy the 53 | wl_fullscreen_shell_mode_feedback object. 54 | """ 55 | self._post_event(0) 56 | 57 | @ZwpFullscreenShellModeFeedbackV1.event() 58 | def mode_failed(self) -> None: 59 | """Mode switch failed 60 | 61 | This event indicates that the attempted mode switch operation failed. 62 | This may be because the requested output mode is not possible or it may 63 | mean that the compositor does not want to allow it. 64 | 65 | Upon receiving this event, the client should destroy the 66 | wl_fullscreen_shell_mode_feedback object. 67 | """ 68 | self._post_event(1) 69 | 70 | @ZwpFullscreenShellModeFeedbackV1.event() 71 | def present_cancelled(self) -> None: 72 | """Mode switch cancelled 73 | 74 | This event indicates that the attempted mode switch operation was 75 | cancelled. Most likely this is because the client requested a second 76 | mode switch before the first one completed. 77 | 78 | Upon receiving this event, the client should destroy the 79 | wl_fullscreen_shell_mode_feedback object. 80 | """ 81 | self._post_event(2) 82 | 83 | 84 | class ZwpFullscreenShellModeFeedbackV1Global(Global): 85 | interface = ZwpFullscreenShellModeFeedbackV1 86 | 87 | 88 | ZwpFullscreenShellModeFeedbackV1._gen_c() 89 | ZwpFullscreenShellModeFeedbackV1.proxy_class = ZwpFullscreenShellModeFeedbackV1Proxy 90 | ZwpFullscreenShellModeFeedbackV1.resource_class = ZwpFullscreenShellModeFeedbackV1Resource 91 | ZwpFullscreenShellModeFeedbackV1.global_class = ZwpFullscreenShellModeFeedbackV1Global 92 | -------------------------------------------------------------------------------- /shimming/alienkeyboardservice/protocols/idle_inhibit_unstable_v1/__init__.py: -------------------------------------------------------------------------------- 1 | # This file has been autogenerated by the pywayland scanner 2 | 3 | # Copyright © 2015 Samsung Electronics Co., Ltd 4 | # 5 | # Permission is hereby granted, free of charge, to any person obtaining a 6 | # copy of this software and associated documentation files (the "Software"), 7 | # to deal in the Software without restriction, including without limitation 8 | # the rights to use, copy, modify, merge, publish, distribute, sublicense, 9 | # and/or sell copies of the Software, and to permit persons to whom the 10 | # Software is furnished to do so, subject to the following conditions: 11 | # 12 | # The above copyright notice and this permission notice (including the next 13 | # paragraph) shall be included in all copies or substantial portions of the 14 | # Software. 15 | # 16 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 19 | # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 21 | # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 22 | # DEALINGS IN THE SOFTWARE. 23 | 24 | from .zwp_idle_inhibit_manager_v1 import ZwpIdleInhibitManagerV1 # noqa: F401 25 | from .zwp_idle_inhibitor_v1 import ZwpIdleInhibitorV1 # noqa: F401 26 | -------------------------------------------------------------------------------- /shimming/alienkeyboardservice/protocols/idle_inhibit_unstable_v1/zwp_idle_inhibitor_v1.py: -------------------------------------------------------------------------------- 1 | # This file has been autogenerated by the pywayland scanner 2 | 3 | # Copyright © 2015 Samsung Electronics Co., Ltd 4 | # 5 | # Permission is hereby granted, free of charge, to any person obtaining a 6 | # copy of this software and associated documentation files (the "Software"), 7 | # to deal in the Software without restriction, including without limitation 8 | # the rights to use, copy, modify, merge, publish, distribute, sublicense, 9 | # and/or sell copies of the Software, and to permit persons to whom the 10 | # Software is furnished to do so, subject to the following conditions: 11 | # 12 | # The above copyright notice and this permission notice (including the next 13 | # paragraph) shall be included in all copies or substantial portions of the 14 | # Software. 15 | # 16 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 19 | # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 21 | # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 22 | # DEALINGS IN THE SOFTWARE. 23 | 24 | from __future__ import annotations 25 | 26 | 27 | from pywayland.protocol_core import Global, Interface, Proxy, Resource 28 | 29 | 30 | class ZwpIdleInhibitorV1(Interface): 31 | """Context object for inhibiting idle behavior 32 | 33 | An idle inhibitor prevents the output that the associated surface is 34 | visible on from being set to a state where it is not visually usable due to 35 | lack of user interaction (e.g. blanked, dimmed, locked, set to power save, 36 | etc.) Any screensaver processes are also blocked from displaying. 37 | 38 | If the surface is destroyed, unmapped, becomes occluded, loses visibility, 39 | or otherwise becomes not visually relevant for the user, the idle inhibitor 40 | will not be honored by the compositor; if the surface subsequently regains 41 | visibility the inhibitor takes effect once again. Likewise, the inhibitor 42 | isn't honored if the system was already idled at the time the inhibitor was 43 | established, although if the system later de-idles and re-idles the 44 | inhibitor will take effect. 45 | """ 46 | 47 | name = "zwp_idle_inhibitor_v1" 48 | version = 1 49 | 50 | 51 | class ZwpIdleInhibitorV1Proxy(Proxy[ZwpIdleInhibitorV1]): 52 | interface = ZwpIdleInhibitorV1 53 | 54 | @ZwpIdleInhibitorV1.request() 55 | def destroy(self) -> None: 56 | """Destroy the idle inhibitor object 57 | 58 | Remove the inhibitor effect from the associated 59 | :class:`~pywayland.protocol.wayland.WlSurface`. 60 | """ 61 | self._marshal(0) 62 | self._destroy() 63 | 64 | 65 | class ZwpIdleInhibitorV1Resource(Resource): 66 | interface = ZwpIdleInhibitorV1 67 | 68 | 69 | class ZwpIdleInhibitorV1Global(Global): 70 | interface = ZwpIdleInhibitorV1 71 | 72 | 73 | ZwpIdleInhibitorV1._gen_c() 74 | ZwpIdleInhibitorV1.proxy_class = ZwpIdleInhibitorV1Proxy 75 | ZwpIdleInhibitorV1.resource_class = ZwpIdleInhibitorV1Resource 76 | ZwpIdleInhibitorV1.global_class = ZwpIdleInhibitorV1Global 77 | -------------------------------------------------------------------------------- /shimming/alienkeyboardservice/protocols/input_method_unstable_v1/__init__.py: -------------------------------------------------------------------------------- 1 | # This file has been autogenerated by the pywayland scanner 2 | 3 | # Copyright © 2012, 2013 Intel Corporation 4 | # 5 | # Permission is hereby granted, free of charge, to any person obtaining a 6 | # copy of this software and associated documentation files (the "Software"), 7 | # to deal in the Software without restriction, including without limitation 8 | # the rights to use, copy, modify, merge, publish, distribute, sublicense, 9 | # and/or sell copies of the Software, and to permit persons to whom the 10 | # Software is furnished to do so, subject to the following conditions: 11 | # 12 | # The above copyright notice and this permission notice (including the next 13 | # paragraph) shall be included in all copies or substantial portions of the 14 | # Software. 15 | # 16 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 19 | # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 21 | # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 22 | # DEALINGS IN THE SOFTWARE. 23 | 24 | from .zwp_input_method_context_v1 import ZwpInputMethodContextV1 # noqa: F401 25 | from .zwp_input_method_v1 import ZwpInputMethodV1 # noqa: F401 26 | from .zwp_input_panel_surface_v1 import ZwpInputPanelSurfaceV1 # noqa: F401 27 | from .zwp_input_panel_v1 import ZwpInputPanelV1 # noqa: F401 28 | -------------------------------------------------------------------------------- /shimming/alienkeyboardservice/protocols/input_method_unstable_v1/zwp_input_method_v1.py: -------------------------------------------------------------------------------- 1 | # This file has been autogenerated by the pywayland scanner 2 | 3 | # Copyright © 2012, 2013 Intel Corporation 4 | # 5 | # Permission is hereby granted, free of charge, to any person obtaining a 6 | # copy of this software and associated documentation files (the "Software"), 7 | # to deal in the Software without restriction, including without limitation 8 | # the rights to use, copy, modify, merge, publish, distribute, sublicense, 9 | # and/or sell copies of the Software, and to permit persons to whom the 10 | # Software is furnished to do so, subject to the following conditions: 11 | # 12 | # The above copyright notice and this permission notice (including the next 13 | # paragraph) shall be included in all copies or substantial portions of the 14 | # Software. 15 | # 16 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 19 | # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 21 | # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 22 | # DEALINGS IN THE SOFTWARE. 23 | 24 | from __future__ import annotations 25 | 26 | 27 | from pywayland.protocol_core import ( 28 | Argument, 29 | ArgumentType, 30 | Global, 31 | Interface, 32 | Proxy, 33 | Resource, 34 | ) 35 | from .zwp_input_method_context_v1 import ZwpInputMethodContextV1 36 | 37 | 38 | class ZwpInputMethodV1(Interface): 39 | """Input method 40 | 41 | An input method object is responsible for composing text in response to 42 | input from hardware or virtual keyboards. There is one input method object 43 | per seat. On activate there is a new input method context object created 44 | which allows the input method to communicate with the text input. 45 | """ 46 | 47 | name = "zwp_input_method_v1" 48 | version = 1 49 | 50 | 51 | class ZwpInputMethodV1Proxy(Proxy[ZwpInputMethodV1]): 52 | interface = ZwpInputMethodV1 53 | 54 | 55 | class ZwpInputMethodV1Resource(Resource): 56 | interface = ZwpInputMethodV1 57 | 58 | @ZwpInputMethodV1.event( 59 | Argument(ArgumentType.NewId, interface=ZwpInputMethodContextV1), 60 | ) 61 | def activate(self, id: ZwpInputMethodContextV1) -> None: 62 | """Activate event 63 | 64 | A text input was activated. Creates an input method context object 65 | which allows communication with the text input. 66 | 67 | :param id: 68 | :type id: 69 | :class:`~pywayland.protocol.input_method_unstable_v1.ZwpInputMethodContextV1` 70 | """ 71 | self._post_event(0, id) 72 | 73 | @ZwpInputMethodV1.event( 74 | Argument(ArgumentType.Object, interface=ZwpInputMethodContextV1), 75 | ) 76 | def deactivate(self, context: ZwpInputMethodContextV1) -> None: 77 | """Deactivate event 78 | 79 | The text input corresponding to the context argument was deactivated. 80 | The input method context should be destroyed after deactivation is 81 | handled. 82 | 83 | :param context: 84 | :type context: 85 | :class:`~pywayland.protocol.input_method_unstable_v1.ZwpInputMethodContextV1` 86 | """ 87 | self._post_event(1, context) 88 | 89 | 90 | class ZwpInputMethodV1Global(Global): 91 | interface = ZwpInputMethodV1 92 | 93 | 94 | ZwpInputMethodV1._gen_c() 95 | ZwpInputMethodV1.proxy_class = ZwpInputMethodV1Proxy 96 | ZwpInputMethodV1.resource_class = ZwpInputMethodV1Resource 97 | ZwpInputMethodV1.global_class = ZwpInputMethodV1Global 98 | -------------------------------------------------------------------------------- /shimming/alienkeyboardservice/protocols/input_method_unstable_v1/zwp_input_panel_surface_v1.py: -------------------------------------------------------------------------------- 1 | # This file has been autogenerated by the pywayland scanner 2 | 3 | # Copyright © 2012, 2013 Intel Corporation 4 | # 5 | # Permission is hereby granted, free of charge, to any person obtaining a 6 | # copy of this software and associated documentation files (the "Software"), 7 | # to deal in the Software without restriction, including without limitation 8 | # the rights to use, copy, modify, merge, publish, distribute, sublicense, 9 | # and/or sell copies of the Software, and to permit persons to whom the 10 | # Software is furnished to do so, subject to the following conditions: 11 | # 12 | # The above copyright notice and this permission notice (including the next 13 | # paragraph) shall be included in all copies or substantial portions of the 14 | # Software. 15 | # 16 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 19 | # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 21 | # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 22 | # DEALINGS IN THE SOFTWARE. 23 | 24 | from __future__ import annotations 25 | 26 | import enum 27 | 28 | from pywayland.protocol_core import ( 29 | Argument, 30 | ArgumentType, 31 | Global, 32 | Interface, 33 | Proxy, 34 | Resource, 35 | ) 36 | from ..wayland import WlOutput 37 | 38 | 39 | class ZwpInputPanelSurfaceV1(Interface): 40 | name = "zwp_input_panel_surface_v1" 41 | version = 1 42 | 43 | class position(enum.IntEnum): 44 | center_bottom = 0 45 | 46 | 47 | class ZwpInputPanelSurfaceV1Proxy(Proxy[ZwpInputPanelSurfaceV1]): 48 | interface = ZwpInputPanelSurfaceV1 49 | 50 | @ZwpInputPanelSurfaceV1.request( 51 | Argument(ArgumentType.Object, interface=WlOutput), 52 | Argument(ArgumentType.Uint), 53 | ) 54 | def set_toplevel(self, output: WlOutput, position: int) -> None: 55 | """Set the surface type as a keyboard 56 | 57 | Set the input_panel_surface type to keyboard. 58 | 59 | A keyboard surface is only shown when a text input is active. 60 | 61 | :param output: 62 | :type output: 63 | :class:`~pywayland.protocol.wayland.WlOutput` 64 | :param position: 65 | :type position: 66 | `ArgumentType.Uint` 67 | """ 68 | self._marshal(0, output, position) 69 | 70 | @ZwpInputPanelSurfaceV1.request() 71 | def set_overlay_panel(self) -> None: 72 | """Set the surface type as an overlay panel 73 | 74 | Set the input_panel_surface to be an overlay panel. 75 | 76 | This is shown near the input cursor above the application window when a 77 | text input is active. 78 | """ 79 | self._marshal(1) 80 | 81 | 82 | class ZwpInputPanelSurfaceV1Resource(Resource): 83 | interface = ZwpInputPanelSurfaceV1 84 | 85 | 86 | class ZwpInputPanelSurfaceV1Global(Global): 87 | interface = ZwpInputPanelSurfaceV1 88 | 89 | 90 | ZwpInputPanelSurfaceV1._gen_c() 91 | ZwpInputPanelSurfaceV1.proxy_class = ZwpInputPanelSurfaceV1Proxy 92 | ZwpInputPanelSurfaceV1.resource_class = ZwpInputPanelSurfaceV1Resource 93 | ZwpInputPanelSurfaceV1.global_class = ZwpInputPanelSurfaceV1Global 94 | -------------------------------------------------------------------------------- /shimming/alienkeyboardservice/protocols/input_method_unstable_v1/zwp_input_panel_v1.py: -------------------------------------------------------------------------------- 1 | # This file has been autogenerated by the pywayland scanner 2 | 3 | # Copyright © 2012, 2013 Intel Corporation 4 | # 5 | # Permission is hereby granted, free of charge, to any person obtaining a 6 | # copy of this software and associated documentation files (the "Software"), 7 | # to deal in the Software without restriction, including without limitation 8 | # the rights to use, copy, modify, merge, publish, distribute, sublicense, 9 | # and/or sell copies of the Software, and to permit persons to whom the 10 | # Software is furnished to do so, subject to the following conditions: 11 | # 12 | # The above copyright notice and this permission notice (including the next 13 | # paragraph) shall be included in all copies or substantial portions of the 14 | # Software. 15 | # 16 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 19 | # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 21 | # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 22 | # DEALINGS IN THE SOFTWARE. 23 | 24 | from __future__ import annotations 25 | 26 | 27 | from pywayland.protocol_core import ( 28 | Argument, 29 | ArgumentType, 30 | Global, 31 | Interface, 32 | Proxy, 33 | Resource, 34 | ) 35 | from ..wayland import WlSurface 36 | from .zwp_input_panel_surface_v1 import ZwpInputPanelSurfaceV1 37 | 38 | 39 | class ZwpInputPanelV1(Interface): 40 | """Interface for implementing keyboards 41 | 42 | Only one client can bind this interface at a time. 43 | """ 44 | 45 | name = "zwp_input_panel_v1" 46 | version = 1 47 | 48 | 49 | class ZwpInputPanelV1Proxy(Proxy[ZwpInputPanelV1]): 50 | interface = ZwpInputPanelV1 51 | 52 | @ZwpInputPanelV1.request( 53 | Argument(ArgumentType.NewId, interface=ZwpInputPanelSurfaceV1), 54 | Argument(ArgumentType.Object, interface=WlSurface), 55 | ) 56 | def get_input_panel_surface(self, surface: WlSurface) -> Proxy[ZwpInputPanelSurfaceV1]: 57 | """get_input_panel_surface 58 | 59 | :param surface: 60 | :type surface: 61 | :class:`~pywayland.protocol.wayland.WlSurface` 62 | :returns: 63 | :class:`~pywayland.protocol.input_method_unstable_v1.ZwpInputPanelSurfaceV1` 64 | """ 65 | id = self._marshal_constructor(0, ZwpInputPanelSurfaceV1, surface) 66 | return id 67 | 68 | 69 | class ZwpInputPanelV1Resource(Resource): 70 | interface = ZwpInputPanelV1 71 | 72 | 73 | class ZwpInputPanelV1Global(Global): 74 | interface = ZwpInputPanelV1 75 | 76 | 77 | ZwpInputPanelV1._gen_c() 78 | ZwpInputPanelV1.proxy_class = ZwpInputPanelV1Proxy 79 | ZwpInputPanelV1.resource_class = ZwpInputPanelV1Resource 80 | ZwpInputPanelV1.global_class = ZwpInputPanelV1Global 81 | -------------------------------------------------------------------------------- /shimming/alienkeyboardservice/protocols/input_timestamps_unstable_v1/__init__.py: -------------------------------------------------------------------------------- 1 | # This file has been autogenerated by the pywayland scanner 2 | 3 | # Copyright © 2017 Collabora, Ltd. 4 | # 5 | # Permission is hereby granted, free of charge, to any person obtaining a 6 | # copy of this software and associated documentation files (the "Software"), 7 | # to deal in the Software without restriction, including without limitation 8 | # the rights to use, copy, modify, merge, publish, distribute, sublicense, 9 | # and/or sell copies of the Software, and to permit persons to whom the 10 | # Software is furnished to do so, subject to the following conditions: 11 | # 12 | # The above copyright notice and this permission notice (including the next 13 | # paragraph) shall be included in all copies or substantial portions of the 14 | # Software. 15 | # 16 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 19 | # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 21 | # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 22 | # DEALINGS IN THE SOFTWARE. 23 | 24 | from .zwp_input_timestamps_manager_v1 import ZwpInputTimestampsManagerV1 # noqa: F401 25 | from .zwp_input_timestamps_v1 import ZwpInputTimestampsV1 # noqa: F401 26 | -------------------------------------------------------------------------------- /shimming/alienkeyboardservice/protocols/keyboard_shortcuts_inhibit_unstable_v1/__init__.py: -------------------------------------------------------------------------------- 1 | # This file has been autogenerated by the pywayland scanner 2 | 3 | # Copyright © 2017 Red Hat Inc. 4 | # 5 | # Permission is hereby granted, free of charge, to any person obtaining a 6 | # copy of this software and associated documentation files (the "Software"), 7 | # to deal in the Software without restriction, including without limitation 8 | # the rights to use, copy, modify, merge, publish, distribute, sublicense, 9 | # and/or sell copies of the Software, and to permit persons to whom the 10 | # Software is furnished to do so, subject to the following conditions: 11 | # 12 | # The above copyright notice and this permission notice (including the next 13 | # paragraph) shall be included in all copies or substantial portions of the 14 | # Software. 15 | # 16 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 19 | # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 21 | # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 22 | # DEALINGS IN THE SOFTWARE. 23 | 24 | from .zwp_keyboard_shortcuts_inhibit_manager_v1 import ZwpKeyboardShortcutsInhibitManagerV1 # noqa: F401 25 | from .zwp_keyboard_shortcuts_inhibitor_v1 import ZwpKeyboardShortcutsInhibitorV1 # noqa: F401 26 | -------------------------------------------------------------------------------- /shimming/alienkeyboardservice/protocols/linux_dmabuf_unstable_v1/__init__.py: -------------------------------------------------------------------------------- 1 | # This file has been autogenerated by the pywayland scanner 2 | 3 | # Copyright © 2014, 2015 Collabora, Ltd. 4 | # 5 | # Permission is hereby granted, free of charge, to any person obtaining a 6 | # copy of this software and associated documentation files (the "Software"), 7 | # to deal in the Software without restriction, including without limitation 8 | # the rights to use, copy, modify, merge, publish, distribute, sublicense, 9 | # and/or sell copies of the Software, and to permit persons to whom the 10 | # Software is furnished to do so, subject to the following conditions: 11 | # 12 | # The above copyright notice and this permission notice (including the next 13 | # paragraph) shall be included in all copies or substantial portions of the 14 | # Software. 15 | # 16 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 19 | # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 21 | # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 22 | # DEALINGS IN THE SOFTWARE. 23 | 24 | from .zwp_linux_buffer_params_v1 import ZwpLinuxBufferParamsV1 # noqa: F401 25 | from .zwp_linux_dmabuf_feedback_v1 import ZwpLinuxDmabufFeedbackV1 # noqa: F401 26 | from .zwp_linux_dmabuf_v1 import ZwpLinuxDmabufV1 # noqa: F401 27 | -------------------------------------------------------------------------------- /shimming/alienkeyboardservice/protocols/pointer_constraints_unstable_v1/__init__.py: -------------------------------------------------------------------------------- 1 | # This file has been autogenerated by the pywayland scanner 2 | 3 | # Copyright © 2014 Jonas Ådahl 4 | # Copyright © 2015 Red Hat Inc. 5 | # 6 | # Permission is hereby granted, free of charge, to any person obtaining a 7 | # copy of this software and associated documentation files (the "Software"), 8 | # to deal in the Software without restriction, including without limitation 9 | # the rights to use, copy, modify, merge, publish, distribute, sublicense, 10 | # and/or sell copies of the Software, and to permit persons to whom the 11 | # Software is furnished to do so, subject to the following conditions: 12 | # 13 | # The above copyright notice and this permission notice (including the next 14 | # paragraph) shall be included in all copies or substantial portions of the 15 | # Software. 16 | # 17 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 20 | # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 22 | # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 23 | # DEALINGS IN THE SOFTWARE. 24 | 25 | from .zwp_confined_pointer_v1 import ZwpConfinedPointerV1 # noqa: F401 26 | from .zwp_locked_pointer_v1 import ZwpLockedPointerV1 # noqa: F401 27 | from .zwp_pointer_constraints_v1 import ZwpPointerConstraintsV1 # noqa: F401 28 | -------------------------------------------------------------------------------- /shimming/alienkeyboardservice/protocols/pointer_gestures_unstable_v1/__init__.py: -------------------------------------------------------------------------------- 1 | # This file has been autogenerated by the pywayland scanner 2 | 3 | # Copyright 2015 Sean Vig 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | from .zwp_pointer_gesture_hold_v1 import ZwpPointerGestureHoldV1 # noqa: F401 18 | from .zwp_pointer_gesture_pinch_v1 import ZwpPointerGesturePinchV1 # noqa: F401 19 | from .zwp_pointer_gesture_swipe_v1 import ZwpPointerGestureSwipeV1 # noqa: F401 20 | from .zwp_pointer_gestures_v1 import ZwpPointerGesturesV1 # noqa: F401 21 | -------------------------------------------------------------------------------- /shimming/alienkeyboardservice/protocols/presentation_time/__init__.py: -------------------------------------------------------------------------------- 1 | # This file has been autogenerated by the pywayland scanner 2 | 3 | # Copyright © 2013-2014 Collabora, Ltd. 4 | # 5 | # Permission is hereby granted, free of charge, to any person obtaining a 6 | # copy of this software and associated documentation files (the "Software"), 7 | # to deal in the Software without restriction, including without limitation 8 | # the rights to use, copy, modify, merge, publish, distribute, sublicense, 9 | # and/or sell copies of the Software, and to permit persons to whom the 10 | # Software is furnished to do so, subject to the following conditions: 11 | # 12 | # The above copyright notice and this permission notice (including the next 13 | # paragraph) shall be included in all copies or substantial portions of the 14 | # Software. 15 | # 16 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 19 | # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 21 | # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 22 | # DEALINGS IN THE SOFTWARE. 23 | 24 | from .wp_presentation import WpPresentation # noqa: F401 25 | from .wp_presentation_feedback import WpPresentationFeedback # noqa: F401 26 | -------------------------------------------------------------------------------- /shimming/alienkeyboardservice/protocols/relative_pointer_unstable_v1/__init__.py: -------------------------------------------------------------------------------- 1 | # This file has been autogenerated by the pywayland scanner 2 | 3 | # Copyright © 2014 Jonas Ådahl 4 | # Copyright © 2015 Red Hat Inc. 5 | # 6 | # Permission is hereby granted, free of charge, to any person obtaining a 7 | # copy of this software and associated documentation files (the "Software"), 8 | # to deal in the Software without restriction, including without limitation 9 | # the rights to use, copy, modify, merge, publish, distribute, sublicense, 10 | # and/or sell copies of the Software, and to permit persons to whom the 11 | # Software is furnished to do so, subject to the following conditions: 12 | # 13 | # The above copyright notice and this permission notice (including the next 14 | # paragraph) shall be included in all copies or substantial portions of the 15 | # Software. 16 | # 17 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 20 | # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 22 | # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 23 | # DEALINGS IN THE SOFTWARE. 24 | 25 | from .zwp_relative_pointer_manager_v1 import ZwpRelativePointerManagerV1 # noqa: F401 26 | from .zwp_relative_pointer_v1 import ZwpRelativePointerV1 # noqa: F401 27 | -------------------------------------------------------------------------------- /shimming/alienkeyboardservice/protocols/relative_pointer_unstable_v1/zwp_relative_pointer_manager_v1.py: -------------------------------------------------------------------------------- 1 | # This file has been autogenerated by the pywayland scanner 2 | 3 | # Copyright © 2014 Jonas Ådahl 4 | # Copyright © 2015 Red Hat Inc. 5 | # 6 | # Permission is hereby granted, free of charge, to any person obtaining a 7 | # copy of this software and associated documentation files (the "Software"), 8 | # to deal in the Software without restriction, including without limitation 9 | # the rights to use, copy, modify, merge, publish, distribute, sublicense, 10 | # and/or sell copies of the Software, and to permit persons to whom the 11 | # Software is furnished to do so, subject to the following conditions: 12 | # 13 | # The above copyright notice and this permission notice (including the next 14 | # paragraph) shall be included in all copies or substantial portions of the 15 | # Software. 16 | # 17 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 20 | # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 22 | # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 23 | # DEALINGS IN THE SOFTWARE. 24 | 25 | from __future__ import annotations 26 | 27 | 28 | from pywayland.protocol_core import ( 29 | Argument, 30 | ArgumentType, 31 | Global, 32 | Interface, 33 | Proxy, 34 | Resource, 35 | ) 36 | from ..wayland import WlPointer 37 | from .zwp_relative_pointer_v1 import ZwpRelativePointerV1 38 | 39 | 40 | class ZwpRelativePointerManagerV1(Interface): 41 | """Get relative pointer objects 42 | 43 | A global interface used for getting the relative pointer object for a given 44 | pointer. 45 | """ 46 | 47 | name = "zwp_relative_pointer_manager_v1" 48 | version = 1 49 | 50 | 51 | class ZwpRelativePointerManagerV1Proxy(Proxy[ZwpRelativePointerManagerV1]): 52 | interface = ZwpRelativePointerManagerV1 53 | 54 | @ZwpRelativePointerManagerV1.request() 55 | def destroy(self) -> None: 56 | """Destroy the relative pointer manager object 57 | 58 | Used by the client to notify the server that it will no longer use this 59 | relative pointer manager object. 60 | """ 61 | self._marshal(0) 62 | self._destroy() 63 | 64 | @ZwpRelativePointerManagerV1.request( 65 | Argument(ArgumentType.NewId, interface=ZwpRelativePointerV1), 66 | Argument(ArgumentType.Object, interface=WlPointer), 67 | ) 68 | def get_relative_pointer(self, pointer: WlPointer) -> Proxy[ZwpRelativePointerV1]: 69 | """Get a relative pointer object 70 | 71 | Create a relative pointer interface given a 72 | :class:`~pywayland.protocol.wayland.WlPointer` object. See the 73 | wp_relative_pointer interface for more details. 74 | 75 | :param pointer: 76 | :type pointer: 77 | :class:`~pywayland.protocol.wayland.WlPointer` 78 | :returns: 79 | :class:`~pywayland.protocol.relative_pointer_unstable_v1.ZwpRelativePointerV1` 80 | """ 81 | id = self._marshal_constructor(1, ZwpRelativePointerV1, pointer) 82 | return id 83 | 84 | 85 | class ZwpRelativePointerManagerV1Resource(Resource): 86 | interface = ZwpRelativePointerManagerV1 87 | 88 | 89 | class ZwpRelativePointerManagerV1Global(Global): 90 | interface = ZwpRelativePointerManagerV1 91 | 92 | 93 | ZwpRelativePointerManagerV1._gen_c() 94 | ZwpRelativePointerManagerV1.proxy_class = ZwpRelativePointerManagerV1Proxy 95 | ZwpRelativePointerManagerV1.resource_class = ZwpRelativePointerManagerV1Resource 96 | ZwpRelativePointerManagerV1.global_class = ZwpRelativePointerManagerV1Global 97 | -------------------------------------------------------------------------------- /shimming/alienkeyboardservice/protocols/single_pixel_buffer_v1/__init__.py: -------------------------------------------------------------------------------- 1 | # This file has been autogenerated by the pywayland scanner 2 | 3 | # Copyright © 2022 Simon Ser 4 | # 5 | # Permission is hereby granted, free of charge, to any person obtaining a 6 | # copy of this software and associated documentation files (the "Software"), 7 | # to deal in the Software without restriction, including without limitation 8 | # the rights to use, copy, modify, merge, publish, distribute, sublicense, 9 | # and/or sell copies of the Software, and to permit persons to whom the 10 | # Software is furnished to do so, subject to the following conditions: 11 | # 12 | # The above copyright notice and this permission notice (including the next 13 | # paragraph) shall be included in all copies or substantial portions of the 14 | # Software. 15 | # 16 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 19 | # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 21 | # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 22 | # DEALINGS IN THE SOFTWARE. 23 | 24 | from .wp_single_pixel_buffer_manager_v1 import WpSinglePixelBufferManagerV1 # noqa: F401 25 | -------------------------------------------------------------------------------- /shimming/alienkeyboardservice/protocols/tablet_unstable_v1/__init__.py: -------------------------------------------------------------------------------- 1 | # This file has been autogenerated by the pywayland scanner 2 | 3 | # Copyright 2014 © Stephen "Lyude" Chandler Paul 4 | # Copyright 2015-2016 © Red Hat, Inc. 5 | # 6 | # Permission is hereby granted, free of charge, to any person 7 | # obtaining a copy of this software and associated documentation files 8 | # (the "Software"), to deal in the Software without restriction, 9 | # including without limitation the rights to use, copy, modify, merge, 10 | # publish, distribute, sublicense, and/or sell copies of the Software, 11 | # and to permit persons to whom the Software is furnished to do so, 12 | # subject to the following conditions: 13 | # 14 | # The above copyright notice and this permission notice (including the 15 | # next paragraph) shall be included in all copies or substantial 16 | # portions of the Software. 17 | # 18 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 19 | # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 20 | # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 21 | # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS 22 | # BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN 23 | # ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 24 | # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 25 | # SOFTWARE. 26 | 27 | from .zwp_tablet_manager_v1 import ZwpTabletManagerV1 # noqa: F401 28 | from .zwp_tablet_seat_v1 import ZwpTabletSeatV1 # noqa: F401 29 | from .zwp_tablet_tool_v1 import ZwpTabletToolV1 # noqa: F401 30 | from .zwp_tablet_v1 import ZwpTabletV1 # noqa: F401 31 | -------------------------------------------------------------------------------- /shimming/alienkeyboardservice/protocols/tablet_unstable_v1/zwp_tablet_manager_v1.py: -------------------------------------------------------------------------------- 1 | # This file has been autogenerated by the pywayland scanner 2 | 3 | # Copyright 2014 © Stephen "Lyude" Chandler Paul 4 | # Copyright 2015-2016 © Red Hat, Inc. 5 | # 6 | # Permission is hereby granted, free of charge, to any person 7 | # obtaining a copy of this software and associated documentation files 8 | # (the "Software"), to deal in the Software without restriction, 9 | # including without limitation the rights to use, copy, modify, merge, 10 | # publish, distribute, sublicense, and/or sell copies of the Software, 11 | # and to permit persons to whom the Software is furnished to do so, 12 | # subject to the following conditions: 13 | # 14 | # The above copyright notice and this permission notice (including the 15 | # next paragraph) shall be included in all copies or substantial 16 | # portions of the Software. 17 | # 18 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 19 | # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 20 | # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 21 | # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS 22 | # BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN 23 | # ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 24 | # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 25 | # SOFTWARE. 26 | 27 | from __future__ import annotations 28 | 29 | 30 | from pywayland.protocol_core import ( 31 | Argument, 32 | ArgumentType, 33 | Global, 34 | Interface, 35 | Proxy, 36 | Resource, 37 | ) 38 | from ..wayland import WlSeat 39 | from .zwp_tablet_seat_v1 import ZwpTabletSeatV1 40 | 41 | 42 | class ZwpTabletManagerV1(Interface): 43 | """Controller object for graphic tablet devices 44 | 45 | An object that provides access to the graphics tablets available on this 46 | system. All tablets are associated with a seat, to get access to the actual 47 | tablets, use wp_tablet_manager.get_tablet_seat. 48 | """ 49 | 50 | name = "zwp_tablet_manager_v1" 51 | version = 1 52 | 53 | 54 | class ZwpTabletManagerV1Proxy(Proxy[ZwpTabletManagerV1]): 55 | interface = ZwpTabletManagerV1 56 | 57 | @ZwpTabletManagerV1.request( 58 | Argument(ArgumentType.NewId, interface=ZwpTabletSeatV1), 59 | Argument(ArgumentType.Object, interface=WlSeat), 60 | ) 61 | def get_tablet_seat(self, seat: WlSeat) -> Proxy[ZwpTabletSeatV1]: 62 | """Get the tablet seat 63 | 64 | Get the wp_tablet_seat object for the given seat. This object provides 65 | access to all graphics tablets in this seat. 66 | 67 | :param seat: 68 | The :class:`~pywayland.protocol.wayland.WlSeat` object to retrieve 69 | the tablets for 70 | :type seat: 71 | :class:`~pywayland.protocol.wayland.WlSeat` 72 | :returns: 73 | :class:`~pywayland.protocol.tablet_unstable_v1.ZwpTabletSeatV1` 74 | """ 75 | tablet_seat = self._marshal_constructor(0, ZwpTabletSeatV1, seat) 76 | return tablet_seat 77 | 78 | @ZwpTabletManagerV1.request() 79 | def destroy(self) -> None: 80 | """Release the memory for the tablet manager object 81 | 82 | Destroy the wp_tablet_manager object. Objects created from this object 83 | are unaffected and should be destroyed separately. 84 | """ 85 | self._marshal(1) 86 | self._destroy() 87 | 88 | 89 | class ZwpTabletManagerV1Resource(Resource): 90 | interface = ZwpTabletManagerV1 91 | 92 | 93 | class ZwpTabletManagerV1Global(Global): 94 | interface = ZwpTabletManagerV1 95 | 96 | 97 | ZwpTabletManagerV1._gen_c() 98 | ZwpTabletManagerV1.proxy_class = ZwpTabletManagerV1Proxy 99 | ZwpTabletManagerV1.resource_class = ZwpTabletManagerV1Resource 100 | ZwpTabletManagerV1.global_class = ZwpTabletManagerV1Global 101 | -------------------------------------------------------------------------------- /shimming/alienkeyboardservice/protocols/tablet_unstable_v2/__init__.py: -------------------------------------------------------------------------------- 1 | # This file has been autogenerated by the pywayland scanner 2 | 3 | # Copyright 2014 © Stephen "Lyude" Chandler Paul 4 | # Copyright 2015-2016 © Red Hat, Inc. 5 | # 6 | # Permission is hereby granted, free of charge, to any person 7 | # obtaining a copy of this software and associated documentation files 8 | # (the "Software"), to deal in the Software without restriction, 9 | # including without limitation the rights to use, copy, modify, merge, 10 | # publish, distribute, sublicense, and/or sell copies of the Software, 11 | # and to permit persons to whom the Software is furnished to do so, 12 | # subject to the following conditions: 13 | # 14 | # The above copyright notice and this permission notice (including the 15 | # next paragraph) shall be included in all copies or substantial 16 | # portions of the Software. 17 | # 18 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 19 | # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 20 | # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 21 | # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS 22 | # BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN 23 | # ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 24 | # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 25 | # SOFTWARE. 26 | 27 | from .zwp_tablet_manager_v2 import ZwpTabletManagerV2 # noqa: F401 28 | from .zwp_tablet_pad_group_v2 import ZwpTabletPadGroupV2 # noqa: F401 29 | from .zwp_tablet_pad_ring_v2 import ZwpTabletPadRingV2 # noqa: F401 30 | from .zwp_tablet_pad_strip_v2 import ZwpTabletPadStripV2 # noqa: F401 31 | from .zwp_tablet_pad_v2 import ZwpTabletPadV2 # noqa: F401 32 | from .zwp_tablet_seat_v2 import ZwpTabletSeatV2 # noqa: F401 33 | from .zwp_tablet_tool_v2 import ZwpTabletToolV2 # noqa: F401 34 | from .zwp_tablet_v2 import ZwpTabletV2 # noqa: F401 35 | -------------------------------------------------------------------------------- /shimming/alienkeyboardservice/protocols/tablet_unstable_v2/zwp_tablet_manager_v2.py: -------------------------------------------------------------------------------- 1 | # This file has been autogenerated by the pywayland scanner 2 | 3 | # Copyright 2014 © Stephen "Lyude" Chandler Paul 4 | # Copyright 2015-2016 © Red Hat, Inc. 5 | # 6 | # Permission is hereby granted, free of charge, to any person 7 | # obtaining a copy of this software and associated documentation files 8 | # (the "Software"), to deal in the Software without restriction, 9 | # including without limitation the rights to use, copy, modify, merge, 10 | # publish, distribute, sublicense, and/or sell copies of the Software, 11 | # and to permit persons to whom the Software is furnished to do so, 12 | # subject to the following conditions: 13 | # 14 | # The above copyright notice and this permission notice (including the 15 | # next paragraph) shall be included in all copies or substantial 16 | # portions of the Software. 17 | # 18 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 19 | # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 20 | # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 21 | # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS 22 | # BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN 23 | # ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 24 | # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 25 | # SOFTWARE. 26 | 27 | from __future__ import annotations 28 | 29 | 30 | from pywayland.protocol_core import ( 31 | Argument, 32 | ArgumentType, 33 | Global, 34 | Interface, 35 | Proxy, 36 | Resource, 37 | ) 38 | from ..wayland import WlSeat 39 | from .zwp_tablet_seat_v2 import ZwpTabletSeatV2 40 | 41 | 42 | class ZwpTabletManagerV2(Interface): 43 | """Controller object for graphic tablet devices 44 | 45 | An object that provides access to the graphics tablets available on this 46 | system. All tablets are associated with a seat, to get access to the actual 47 | tablets, use wp_tablet_manager.get_tablet_seat. 48 | """ 49 | 50 | name = "zwp_tablet_manager_v2" 51 | version = 1 52 | 53 | 54 | class ZwpTabletManagerV2Proxy(Proxy[ZwpTabletManagerV2]): 55 | interface = ZwpTabletManagerV2 56 | 57 | @ZwpTabletManagerV2.request( 58 | Argument(ArgumentType.NewId, interface=ZwpTabletSeatV2), 59 | Argument(ArgumentType.Object, interface=WlSeat), 60 | ) 61 | def get_tablet_seat(self, seat: WlSeat) -> Proxy[ZwpTabletSeatV2]: 62 | """Get the tablet seat 63 | 64 | Get the wp_tablet_seat object for the given seat. This object provides 65 | access to all graphics tablets in this seat. 66 | 67 | :param seat: 68 | The :class:`~pywayland.protocol.wayland.WlSeat` object to retrieve 69 | the tablets for 70 | :type seat: 71 | :class:`~pywayland.protocol.wayland.WlSeat` 72 | :returns: 73 | :class:`~pywayland.protocol.tablet_unstable_v2.ZwpTabletSeatV2` 74 | """ 75 | tablet_seat = self._marshal_constructor(0, ZwpTabletSeatV2, seat) 76 | return tablet_seat 77 | 78 | @ZwpTabletManagerV2.request() 79 | def destroy(self) -> None: 80 | """Release the memory for the tablet manager object 81 | 82 | Destroy the wp_tablet_manager object. Objects created from this object 83 | are unaffected and should be destroyed separately. 84 | """ 85 | self._marshal(1) 86 | self._destroy() 87 | 88 | 89 | class ZwpTabletManagerV2Resource(Resource): 90 | interface = ZwpTabletManagerV2 91 | 92 | 93 | class ZwpTabletManagerV2Global(Global): 94 | interface = ZwpTabletManagerV2 95 | 96 | 97 | ZwpTabletManagerV2._gen_c() 98 | ZwpTabletManagerV2.proxy_class = ZwpTabletManagerV2Proxy 99 | ZwpTabletManagerV2.resource_class = ZwpTabletManagerV2Resource 100 | ZwpTabletManagerV2.global_class = ZwpTabletManagerV2Global 101 | -------------------------------------------------------------------------------- /shimming/alienkeyboardservice/protocols/tearing_control_v1/__init__.py: -------------------------------------------------------------------------------- 1 | # This file has been autogenerated by the pywayland scanner 2 | 3 | # Copyright © 2021 Xaver Hugl 4 | # 5 | # Permission is hereby granted, free of charge, to any person obtaining a 6 | # copy of this software and associated documentation files (the "Software"), 7 | # to deal in the Software without restriction, including without limitation 8 | # the rights to use, copy, modify, merge, publish, distribute, sublicense, 9 | # and/or sell copies of the Software, and to permit persons to whom the 10 | # Software is furnished to do so, subject to the following conditions: 11 | # 12 | # The above copyright notice and this permission notice (including the next 13 | # paragraph) shall be included in all copies or substantial portions of the 14 | # Software. 15 | # 16 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 19 | # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 21 | # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 22 | # DEALINGS IN THE SOFTWARE. 23 | 24 | from .wp_tearing_control_manager_v1 import WpTearingControlManagerV1 # noqa: F401 25 | from .wp_tearing_control_v1 import WpTearingControlV1 # noqa: F401 26 | -------------------------------------------------------------------------------- /shimming/alienkeyboardservice/protocols/tearing_control_v1/wp_tearing_control_v1.py: -------------------------------------------------------------------------------- 1 | # This file has been autogenerated by the pywayland scanner 2 | 3 | # Copyright © 2021 Xaver Hugl 4 | # 5 | # Permission is hereby granted, free of charge, to any person obtaining a 6 | # copy of this software and associated documentation files (the "Software"), 7 | # to deal in the Software without restriction, including without limitation 8 | # the rights to use, copy, modify, merge, publish, distribute, sublicense, 9 | # and/or sell copies of the Software, and to permit persons to whom the 10 | # Software is furnished to do so, subject to the following conditions: 11 | # 12 | # The above copyright notice and this permission notice (including the next 13 | # paragraph) shall be included in all copies or substantial portions of the 14 | # Software. 15 | # 16 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 19 | # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 21 | # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 22 | # DEALINGS IN THE SOFTWARE. 23 | 24 | from __future__ import annotations 25 | 26 | import enum 27 | 28 | from pywayland.protocol_core import ( 29 | Argument, 30 | ArgumentType, 31 | Global, 32 | Interface, 33 | Proxy, 34 | Resource, 35 | ) 36 | 37 | 38 | class WpTearingControlV1(Interface): 39 | """Per-surface tearing control interface 40 | 41 | An additional interface to a :class:`~pywayland.protocol.wayland.WlSurface` 42 | object, which allows the client to hint to the compositor if the content on 43 | the surface is suitable for presentation with tearing. The default 44 | presentation hint is vsync. See presentation_hint for more details. 45 | """ 46 | 47 | name = "wp_tearing_control_v1" 48 | version = 1 49 | 50 | class presentation_hint(enum.IntEnum): 51 | vsync = 0 52 | async_ = 1 53 | 54 | 55 | class WpTearingControlV1Proxy(Proxy[WpTearingControlV1]): 56 | interface = WpTearingControlV1 57 | 58 | @WpTearingControlV1.request( 59 | Argument(ArgumentType.Uint), 60 | ) 61 | def set_presentation_hint(self, hint: int) -> None: 62 | """Set presentation hint 63 | 64 | Set the presentation hint for the associated 65 | :class:`~pywayland.protocol.wayland.WlSurface`. This state is double- 66 | buffered and is applied on the next :func:`WlSurface.commit() 67 | `. 68 | 69 | The compositor is free to dynamically respect or ignore this hint based 70 | on various conditions like hardware capabilities, surface state and 71 | user preferences. 72 | 73 | :param hint: 74 | :type hint: 75 | `ArgumentType.Uint` 76 | """ 77 | self._marshal(0, hint) 78 | 79 | @WpTearingControlV1.request() 80 | def destroy(self) -> None: 81 | """Destroy tearing control object 82 | 83 | Destroy this surface tearing object and revert the presentation hint to 84 | vsync. The change will be applied on the next :func:`WlSurface.commit() 85 | `. 86 | """ 87 | self._marshal(1) 88 | self._destroy() 89 | 90 | 91 | class WpTearingControlV1Resource(Resource): 92 | interface = WpTearingControlV1 93 | 94 | 95 | class WpTearingControlV1Global(Global): 96 | interface = WpTearingControlV1 97 | 98 | 99 | WpTearingControlV1._gen_c() 100 | WpTearingControlV1.proxy_class = WpTearingControlV1Proxy 101 | WpTearingControlV1.resource_class = WpTearingControlV1Resource 102 | WpTearingControlV1.global_class = WpTearingControlV1Global 103 | -------------------------------------------------------------------------------- /shimming/alienkeyboardservice/protocols/text_input_unstable_v1/__init__.py: -------------------------------------------------------------------------------- 1 | # This file has been autogenerated by the pywayland scanner 2 | 3 | # Copyright © 2012, 2013 Intel Corporation 4 | # 5 | # Permission is hereby granted, free of charge, to any person obtaining a 6 | # copy of this software and associated documentation files (the "Software"), 7 | # to deal in the Software without restriction, including without limitation 8 | # the rights to use, copy, modify, merge, publish, distribute, sublicense, 9 | # and/or sell copies of the Software, and to permit persons to whom the 10 | # Software is furnished to do so, subject to the following conditions: 11 | # 12 | # The above copyright notice and this permission notice (including the next 13 | # paragraph) shall be included in all copies or substantial portions of the 14 | # Software. 15 | # 16 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 19 | # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 21 | # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 22 | # DEALINGS IN THE SOFTWARE. 23 | 24 | from .zwp_text_input_manager_v1 import ZwpTextInputManagerV1 # noqa: F401 25 | from .zwp_text_input_v1 import ZwpTextInputV1 # noqa: F401 26 | -------------------------------------------------------------------------------- /shimming/alienkeyboardservice/protocols/text_input_unstable_v1/zwp_text_input_manager_v1.py: -------------------------------------------------------------------------------- 1 | # This file has been autogenerated by the pywayland scanner 2 | 3 | # Copyright © 2012, 2013 Intel Corporation 4 | # 5 | # Permission is hereby granted, free of charge, to any person obtaining a 6 | # copy of this software and associated documentation files (the "Software"), 7 | # to deal in the Software without restriction, including without limitation 8 | # the rights to use, copy, modify, merge, publish, distribute, sublicense, 9 | # and/or sell copies of the Software, and to permit persons to whom the 10 | # Software is furnished to do so, subject to the following conditions: 11 | # 12 | # The above copyright notice and this permission notice (including the next 13 | # paragraph) shall be included in all copies or substantial portions of the 14 | # Software. 15 | # 16 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 19 | # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 21 | # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 22 | # DEALINGS IN THE SOFTWARE. 23 | 24 | from __future__ import annotations 25 | 26 | 27 | from pywayland.protocol_core import ( 28 | Argument, 29 | ArgumentType, 30 | Global, 31 | Interface, 32 | Proxy, 33 | Resource, 34 | ) 35 | from .zwp_text_input_v1 import ZwpTextInputV1 36 | 37 | 38 | class ZwpTextInputManagerV1(Interface): 39 | """Text input manager 40 | 41 | A factory for text_input objects. This object is a global singleton. 42 | """ 43 | 44 | name = "zwp_text_input_manager_v1" 45 | version = 1 46 | 47 | 48 | class ZwpTextInputManagerV1Proxy(Proxy[ZwpTextInputManagerV1]): 49 | interface = ZwpTextInputManagerV1 50 | 51 | @ZwpTextInputManagerV1.request( 52 | Argument(ArgumentType.NewId, interface=ZwpTextInputV1), 53 | ) 54 | def create_text_input(self) -> Proxy[ZwpTextInputV1]: 55 | """Create text input 56 | 57 | Creates a new text_input object. 58 | 59 | :returns: 60 | :class:`~pywayland.protocol.text_input_unstable_v1.ZwpTextInputV1` 61 | """ 62 | id = self._marshal_constructor(0, ZwpTextInputV1) 63 | return id 64 | 65 | 66 | class ZwpTextInputManagerV1Resource(Resource): 67 | interface = ZwpTextInputManagerV1 68 | 69 | 70 | class ZwpTextInputManagerV1Global(Global): 71 | interface = ZwpTextInputManagerV1 72 | 73 | 74 | ZwpTextInputManagerV1._gen_c() 75 | ZwpTextInputManagerV1.proxy_class = ZwpTextInputManagerV1Proxy 76 | ZwpTextInputManagerV1.resource_class = ZwpTextInputManagerV1Resource 77 | ZwpTextInputManagerV1.global_class = ZwpTextInputManagerV1Global 78 | -------------------------------------------------------------------------------- /shimming/alienkeyboardservice/protocols/text_input_unstable_v3/__init__.py: -------------------------------------------------------------------------------- 1 | # This file has been autogenerated by the pywayland scanner 2 | 3 | # Copyright © 2012, 2013 Intel Corporation 4 | # Copyright © 2015, 2016 Jan Arne Petersen 5 | # Copyright © 2017, 2018 Red Hat, Inc. 6 | # Copyright © 2018 Purism SPC 7 | # 8 | # Permission to use, copy, modify, distribute, and sell this 9 | # software and its documentation for any purpose is hereby granted 10 | # without fee, provided that the above copyright notice appear in 11 | # all copies and that both that copyright notice and this permission 12 | # notice appear in supporting documentation, and that the name of 13 | # the copyright holders not be used in advertising or publicity 14 | # pertaining to distribution of the software without specific, 15 | # written prior permission. The copyright holders make no 16 | # representations about the suitability of this software for any 17 | # purpose. It is provided "as is" without express or implied 18 | # warranty. 19 | # 20 | # THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS 21 | # SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND 22 | # FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY 23 | # SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 24 | # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN 25 | # AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, 26 | # ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF 27 | # THIS SOFTWARE. 28 | 29 | from .zwp_text_input_manager_v3 import ZwpTextInputManagerV3 # noqa: F401 30 | from .zwp_text_input_v3 import ZwpTextInputV3 # noqa: F401 31 | -------------------------------------------------------------------------------- /shimming/alienkeyboardservice/protocols/text_input_unstable_v3/__pycache__/__init__.cpython-311.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonas2515/alien-everywhere/e4cadd53427bae5763fcba14aa8d1407837bd217/shimming/alienkeyboardservice/protocols/text_input_unstable_v3/__pycache__/__init__.cpython-311.pyc -------------------------------------------------------------------------------- /shimming/alienkeyboardservice/protocols/text_input_unstable_v3/__pycache__/zwp_text_input_manager_v3.cpython-311.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonas2515/alien-everywhere/e4cadd53427bae5763fcba14aa8d1407837bd217/shimming/alienkeyboardservice/protocols/text_input_unstable_v3/__pycache__/zwp_text_input_manager_v3.cpython-311.pyc -------------------------------------------------------------------------------- /shimming/alienkeyboardservice/protocols/text_input_unstable_v3/__pycache__/zwp_text_input_v3.cpython-311.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonas2515/alien-everywhere/e4cadd53427bae5763fcba14aa8d1407837bd217/shimming/alienkeyboardservice/protocols/text_input_unstable_v3/__pycache__/zwp_text_input_v3.cpython-311.pyc -------------------------------------------------------------------------------- /shimming/alienkeyboardservice/protocols/text_input_unstable_v3/zwp_text_input_manager_v3.py: -------------------------------------------------------------------------------- 1 | # This file has been autogenerated by the pywayland scanner 2 | 3 | # Copyright © 2012, 2013 Intel Corporation 4 | # Copyright © 2015, 2016 Jan Arne Petersen 5 | # Copyright © 2017, 2018 Red Hat, Inc. 6 | # Copyright © 2018 Purism SPC 7 | # 8 | # Permission to use, copy, modify, distribute, and sell this 9 | # software and its documentation for any purpose is hereby granted 10 | # without fee, provided that the above copyright notice appear in 11 | # all copies and that both that copyright notice and this permission 12 | # notice appear in supporting documentation, and that the name of 13 | # the copyright holders not be used in advertising or publicity 14 | # pertaining to distribution of the software without specific, 15 | # written prior permission. The copyright holders make no 16 | # representations about the suitability of this software for any 17 | # purpose. It is provided "as is" without express or implied 18 | # warranty. 19 | # 20 | # THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS 21 | # SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND 22 | # FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY 23 | # SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 24 | # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN 25 | # AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, 26 | # ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF 27 | # THIS SOFTWARE. 28 | 29 | from __future__ import annotations 30 | 31 | 32 | from pywayland.protocol_core import ( 33 | Argument, 34 | ArgumentType, 35 | Global, 36 | Interface, 37 | Proxy, 38 | Resource, 39 | ) 40 | from ..wayland import WlSeat 41 | from .zwp_text_input_v3 import ZwpTextInputV3 42 | 43 | 44 | class ZwpTextInputManagerV3(Interface): 45 | """Text input manager 46 | 47 | A factory for text-input objects. This object is a global singleton. 48 | """ 49 | 50 | name = "zwp_text_input_manager_v3" 51 | version = 1 52 | 53 | 54 | class ZwpTextInputManagerV3Proxy(Proxy[ZwpTextInputManagerV3]): 55 | interface = ZwpTextInputManagerV3 56 | 57 | @ZwpTextInputManagerV3.request() 58 | def destroy(self) -> None: 59 | """Destroy the wp_text_input_manager 60 | 61 | Destroy the wp_text_input_manager object. 62 | """ 63 | self._marshal(0) 64 | self._destroy() 65 | 66 | @ZwpTextInputManagerV3.request( 67 | Argument(ArgumentType.NewId, interface=ZwpTextInputV3), 68 | Argument(ArgumentType.Object, interface=WlSeat), 69 | ) 70 | def get_text_input(self, seat: WlSeat) -> Proxy[ZwpTextInputV3]: 71 | """Create a new text input object 72 | 73 | Creates a new text-input object for a given seat. 74 | 75 | :param seat: 76 | :type seat: 77 | :class:`~pywayland.protocol.wayland.WlSeat` 78 | :returns: 79 | :class:`~pywayland.protocol.text_input_unstable_v3.ZwpTextInputV3` 80 | """ 81 | id = self._marshal_constructor(1, ZwpTextInputV3, seat) 82 | return id 83 | 84 | 85 | class ZwpTextInputManagerV3Resource(Resource): 86 | interface = ZwpTextInputManagerV3 87 | 88 | 89 | class ZwpTextInputManagerV3Global(Global): 90 | interface = ZwpTextInputManagerV3 91 | 92 | 93 | ZwpTextInputManagerV3._gen_c() 94 | ZwpTextInputManagerV3.proxy_class = ZwpTextInputManagerV3Proxy 95 | ZwpTextInputManagerV3.resource_class = ZwpTextInputManagerV3Resource 96 | ZwpTextInputManagerV3.global_class = ZwpTextInputManagerV3Global 97 | -------------------------------------------------------------------------------- /shimming/alienkeyboardservice/protocols/viewporter/__init__.py: -------------------------------------------------------------------------------- 1 | # This file has been autogenerated by the pywayland scanner 2 | 3 | # Copyright © 2013-2016 Collabora, Ltd. 4 | # 5 | # Permission is hereby granted, free of charge, to any person obtaining a 6 | # copy of this software and associated documentation files (the "Software"), 7 | # to deal in the Software without restriction, including without limitation 8 | # the rights to use, copy, modify, merge, publish, distribute, sublicense, 9 | # and/or sell copies of the Software, and to permit persons to whom the 10 | # Software is furnished to do so, subject to the following conditions: 11 | # 12 | # The above copyright notice and this permission notice (including the next 13 | # paragraph) shall be included in all copies or substantial portions of the 14 | # Software. 15 | # 16 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 19 | # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 21 | # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 22 | # DEALINGS IN THE SOFTWARE. 23 | 24 | from .wp_viewport import WpViewport # noqa: F401 25 | from .wp_viewporter import WpViewporter # noqa: F401 26 | -------------------------------------------------------------------------------- /shimming/alienkeyboardservice/protocols/viewporter/wp_viewporter.py: -------------------------------------------------------------------------------- 1 | # This file has been autogenerated by the pywayland scanner 2 | 3 | # Copyright © 2013-2016 Collabora, Ltd. 4 | # 5 | # Permission is hereby granted, free of charge, to any person obtaining a 6 | # copy of this software and associated documentation files (the "Software"), 7 | # to deal in the Software without restriction, including without limitation 8 | # the rights to use, copy, modify, merge, publish, distribute, sublicense, 9 | # and/or sell copies of the Software, and to permit persons to whom the 10 | # Software is furnished to do so, subject to the following conditions: 11 | # 12 | # The above copyright notice and this permission notice (including the next 13 | # paragraph) shall be included in all copies or substantial portions of the 14 | # Software. 15 | # 16 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 19 | # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 21 | # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 22 | # DEALINGS IN THE SOFTWARE. 23 | 24 | from __future__ import annotations 25 | 26 | import enum 27 | 28 | from pywayland.protocol_core import ( 29 | Argument, 30 | ArgumentType, 31 | Global, 32 | Interface, 33 | Proxy, 34 | Resource, 35 | ) 36 | from ..wayland import WlSurface 37 | from .wp_viewport import WpViewport 38 | 39 | 40 | class WpViewporter(Interface): 41 | """Surface cropping and scaling 42 | 43 | The global interface exposing surface cropping and scaling capabilities is 44 | used to instantiate an interface extension for a 45 | :class:`~pywayland.protocol.wayland.WlSurface` object. This extended 46 | interface will then allow cropping and scaling the surface contents, 47 | effectively disconnecting the direct relationship between the buffer and 48 | the surface size. 49 | """ 50 | 51 | name = "wp_viewporter" 52 | version = 1 53 | 54 | class error(enum.IntEnum): 55 | viewport_exists = 0 56 | 57 | 58 | class WpViewporterProxy(Proxy[WpViewporter]): 59 | interface = WpViewporter 60 | 61 | @WpViewporter.request() 62 | def destroy(self) -> None: 63 | """Unbind from the cropping and scaling interface 64 | 65 | Informs the server that the client will not be using this protocol 66 | object anymore. This does not affect any other objects, 67 | :class:`~pywayland.protocol.viewporter.WpViewport` objects included. 68 | """ 69 | self._marshal(0) 70 | self._destroy() 71 | 72 | @WpViewporter.request( 73 | Argument(ArgumentType.NewId, interface=WpViewport), 74 | Argument(ArgumentType.Object, interface=WlSurface), 75 | ) 76 | def get_viewport(self, surface: WlSurface) -> Proxy[WpViewport]: 77 | """Extend surface interface for crop and scale 78 | 79 | Instantiate an interface extension for the given 80 | :class:`~pywayland.protocol.wayland.WlSurface` to crop and scale its 81 | content. If the given :class:`~pywayland.protocol.wayland.WlSurface` 82 | already has a :class:`~pywayland.protocol.viewporter.WpViewport` object 83 | associated, the viewport_exists protocol error is raised. 84 | 85 | :param surface: 86 | the surface 87 | :type surface: 88 | :class:`~pywayland.protocol.wayland.WlSurface` 89 | :returns: 90 | :class:`~pywayland.protocol.viewporter.WpViewport` -- the new 91 | viewport interface id 92 | """ 93 | id = self._marshal_constructor(1, WpViewport, surface) 94 | return id 95 | 96 | 97 | class WpViewporterResource(Resource): 98 | interface = WpViewporter 99 | 100 | 101 | class WpViewporterGlobal(Global): 102 | interface = WpViewporter 103 | 104 | 105 | WpViewporter._gen_c() 106 | WpViewporter.proxy_class = WpViewporterProxy 107 | WpViewporter.resource_class = WpViewporterResource 108 | WpViewporter.global_class = WpViewporterGlobal 109 | -------------------------------------------------------------------------------- /shimming/alienkeyboardservice/protocols/wayland/__init__.py: -------------------------------------------------------------------------------- 1 | # This file has been autogenerated by the pywayland scanner 2 | 3 | # Copyright © 2008-2011 Kristian Høgsberg 4 | # Copyright © 2010-2011 Intel Corporation 5 | # Copyright © 2012-2013 Collabora, Ltd. 6 | # 7 | # Permission is hereby granted, free of charge, to any person 8 | # obtaining a copy of this software and associated documentation files 9 | # (the "Software"), to deal in the Software without restriction, 10 | # including without limitation the rights to use, copy, modify, merge, 11 | # publish, distribute, sublicense, and/or sell copies of the Software, 12 | # and to permit persons to whom the Software is furnished to do so, 13 | # subject to the following conditions: 14 | # 15 | # The above copyright notice and this permission notice (including the 16 | # next paragraph) shall be included in all copies or substantial 17 | # portions of the Software. 18 | # 19 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 20 | # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 21 | # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 22 | # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS 23 | # BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN 24 | # ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 25 | # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 26 | # SOFTWARE. 27 | 28 | from .wl_buffer import WlBuffer # noqa: F401 29 | from .wl_callback import WlCallback # noqa: F401 30 | from .wl_compositor import WlCompositor # noqa: F401 31 | from .wl_data_device import WlDataDevice # noqa: F401 32 | from .wl_data_device_manager import WlDataDeviceManager # noqa: F401 33 | from .wl_data_offer import WlDataOffer # noqa: F401 34 | from .wl_data_source import WlDataSource # noqa: F401 35 | from .wl_display import WlDisplay # noqa: F401 36 | from .wl_keyboard import WlKeyboard # noqa: F401 37 | from .wl_output import WlOutput # noqa: F401 38 | from .wl_pointer import WlPointer # noqa: F401 39 | from .wl_region import WlRegion # noqa: F401 40 | from .wl_registry import WlRegistry # noqa: F401 41 | from .wl_seat import WlSeat # noqa: F401 42 | from .wl_shell import WlShell # noqa: F401 43 | from .wl_shell_surface import WlShellSurface # noqa: F401 44 | from .wl_shm import WlShm # noqa: F401 45 | from .wl_shm_pool import WlShmPool # noqa: F401 46 | from .wl_subcompositor import WlSubcompositor # noqa: F401 47 | from .wl_subsurface import WlSubsurface # noqa: F401 48 | from .wl_surface import WlSurface # noqa: F401 49 | from .wl_touch import WlTouch # noqa: F401 50 | -------------------------------------------------------------------------------- /shimming/alienkeyboardservice/protocols/wayland/__pycache__/__init__.cpython-311.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonas2515/alien-everywhere/e4cadd53427bae5763fcba14aa8d1407837bd217/shimming/alienkeyboardservice/protocols/wayland/__pycache__/__init__.cpython-311.pyc -------------------------------------------------------------------------------- /shimming/alienkeyboardservice/protocols/wayland/__pycache__/wl_buffer.cpython-311.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonas2515/alien-everywhere/e4cadd53427bae5763fcba14aa8d1407837bd217/shimming/alienkeyboardservice/protocols/wayland/__pycache__/wl_buffer.cpython-311.pyc -------------------------------------------------------------------------------- /shimming/alienkeyboardservice/protocols/wayland/__pycache__/wl_callback.cpython-311.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonas2515/alien-everywhere/e4cadd53427bae5763fcba14aa8d1407837bd217/shimming/alienkeyboardservice/protocols/wayland/__pycache__/wl_callback.cpython-311.pyc -------------------------------------------------------------------------------- /shimming/alienkeyboardservice/protocols/wayland/__pycache__/wl_compositor.cpython-311.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonas2515/alien-everywhere/e4cadd53427bae5763fcba14aa8d1407837bd217/shimming/alienkeyboardservice/protocols/wayland/__pycache__/wl_compositor.cpython-311.pyc -------------------------------------------------------------------------------- /shimming/alienkeyboardservice/protocols/wayland/__pycache__/wl_data_device.cpython-311.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonas2515/alien-everywhere/e4cadd53427bae5763fcba14aa8d1407837bd217/shimming/alienkeyboardservice/protocols/wayland/__pycache__/wl_data_device.cpython-311.pyc -------------------------------------------------------------------------------- /shimming/alienkeyboardservice/protocols/wayland/__pycache__/wl_data_device_manager.cpython-311.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonas2515/alien-everywhere/e4cadd53427bae5763fcba14aa8d1407837bd217/shimming/alienkeyboardservice/protocols/wayland/__pycache__/wl_data_device_manager.cpython-311.pyc -------------------------------------------------------------------------------- /shimming/alienkeyboardservice/protocols/wayland/__pycache__/wl_data_offer.cpython-311.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonas2515/alien-everywhere/e4cadd53427bae5763fcba14aa8d1407837bd217/shimming/alienkeyboardservice/protocols/wayland/__pycache__/wl_data_offer.cpython-311.pyc -------------------------------------------------------------------------------- /shimming/alienkeyboardservice/protocols/wayland/__pycache__/wl_data_source.cpython-311.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonas2515/alien-everywhere/e4cadd53427bae5763fcba14aa8d1407837bd217/shimming/alienkeyboardservice/protocols/wayland/__pycache__/wl_data_source.cpython-311.pyc -------------------------------------------------------------------------------- /shimming/alienkeyboardservice/protocols/wayland/__pycache__/wl_display.cpython-311.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonas2515/alien-everywhere/e4cadd53427bae5763fcba14aa8d1407837bd217/shimming/alienkeyboardservice/protocols/wayland/__pycache__/wl_display.cpython-311.pyc -------------------------------------------------------------------------------- /shimming/alienkeyboardservice/protocols/wayland/__pycache__/wl_keyboard.cpython-311.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonas2515/alien-everywhere/e4cadd53427bae5763fcba14aa8d1407837bd217/shimming/alienkeyboardservice/protocols/wayland/__pycache__/wl_keyboard.cpython-311.pyc -------------------------------------------------------------------------------- /shimming/alienkeyboardservice/protocols/wayland/__pycache__/wl_output.cpython-311.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonas2515/alien-everywhere/e4cadd53427bae5763fcba14aa8d1407837bd217/shimming/alienkeyboardservice/protocols/wayland/__pycache__/wl_output.cpython-311.pyc -------------------------------------------------------------------------------- /shimming/alienkeyboardservice/protocols/wayland/__pycache__/wl_pointer.cpython-311.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonas2515/alien-everywhere/e4cadd53427bae5763fcba14aa8d1407837bd217/shimming/alienkeyboardservice/protocols/wayland/__pycache__/wl_pointer.cpython-311.pyc -------------------------------------------------------------------------------- /shimming/alienkeyboardservice/protocols/wayland/__pycache__/wl_region.cpython-311.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonas2515/alien-everywhere/e4cadd53427bae5763fcba14aa8d1407837bd217/shimming/alienkeyboardservice/protocols/wayland/__pycache__/wl_region.cpython-311.pyc -------------------------------------------------------------------------------- /shimming/alienkeyboardservice/protocols/wayland/__pycache__/wl_registry.cpython-311.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonas2515/alien-everywhere/e4cadd53427bae5763fcba14aa8d1407837bd217/shimming/alienkeyboardservice/protocols/wayland/__pycache__/wl_registry.cpython-311.pyc -------------------------------------------------------------------------------- /shimming/alienkeyboardservice/protocols/wayland/__pycache__/wl_seat.cpython-311.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonas2515/alien-everywhere/e4cadd53427bae5763fcba14aa8d1407837bd217/shimming/alienkeyboardservice/protocols/wayland/__pycache__/wl_seat.cpython-311.pyc -------------------------------------------------------------------------------- /shimming/alienkeyboardservice/protocols/wayland/__pycache__/wl_shell.cpython-311.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonas2515/alien-everywhere/e4cadd53427bae5763fcba14aa8d1407837bd217/shimming/alienkeyboardservice/protocols/wayland/__pycache__/wl_shell.cpython-311.pyc -------------------------------------------------------------------------------- /shimming/alienkeyboardservice/protocols/wayland/__pycache__/wl_shell_surface.cpython-311.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonas2515/alien-everywhere/e4cadd53427bae5763fcba14aa8d1407837bd217/shimming/alienkeyboardservice/protocols/wayland/__pycache__/wl_shell_surface.cpython-311.pyc -------------------------------------------------------------------------------- /shimming/alienkeyboardservice/protocols/wayland/__pycache__/wl_shm.cpython-311.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonas2515/alien-everywhere/e4cadd53427bae5763fcba14aa8d1407837bd217/shimming/alienkeyboardservice/protocols/wayland/__pycache__/wl_shm.cpython-311.pyc -------------------------------------------------------------------------------- /shimming/alienkeyboardservice/protocols/wayland/__pycache__/wl_shm_pool.cpython-311.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonas2515/alien-everywhere/e4cadd53427bae5763fcba14aa8d1407837bd217/shimming/alienkeyboardservice/protocols/wayland/__pycache__/wl_shm_pool.cpython-311.pyc -------------------------------------------------------------------------------- /shimming/alienkeyboardservice/protocols/wayland/__pycache__/wl_subcompositor.cpython-311.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonas2515/alien-everywhere/e4cadd53427bae5763fcba14aa8d1407837bd217/shimming/alienkeyboardservice/protocols/wayland/__pycache__/wl_subcompositor.cpython-311.pyc -------------------------------------------------------------------------------- /shimming/alienkeyboardservice/protocols/wayland/__pycache__/wl_subsurface.cpython-311.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonas2515/alien-everywhere/e4cadd53427bae5763fcba14aa8d1407837bd217/shimming/alienkeyboardservice/protocols/wayland/__pycache__/wl_subsurface.cpython-311.pyc -------------------------------------------------------------------------------- /shimming/alienkeyboardservice/protocols/wayland/__pycache__/wl_surface.cpython-311.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonas2515/alien-everywhere/e4cadd53427bae5763fcba14aa8d1407837bd217/shimming/alienkeyboardservice/protocols/wayland/__pycache__/wl_surface.cpython-311.pyc -------------------------------------------------------------------------------- /shimming/alienkeyboardservice/protocols/wayland/__pycache__/wl_touch.cpython-311.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonas2515/alien-everywhere/e4cadd53427bae5763fcba14aa8d1407837bd217/shimming/alienkeyboardservice/protocols/wayland/__pycache__/wl_touch.cpython-311.pyc -------------------------------------------------------------------------------- /shimming/alienkeyboardservice/protocols/wayland/wl_callback.py: -------------------------------------------------------------------------------- 1 | # This file has been autogenerated by the pywayland scanner 2 | 3 | # Copyright © 2008-2011 Kristian Høgsberg 4 | # Copyright © 2010-2011 Intel Corporation 5 | # Copyright © 2012-2013 Collabora, Ltd. 6 | # 7 | # Permission is hereby granted, free of charge, to any person 8 | # obtaining a copy of this software and associated documentation files 9 | # (the "Software"), to deal in the Software without restriction, 10 | # including without limitation the rights to use, copy, modify, merge, 11 | # publish, distribute, sublicense, and/or sell copies of the Software, 12 | # and to permit persons to whom the Software is furnished to do so, 13 | # subject to the following conditions: 14 | # 15 | # The above copyright notice and this permission notice (including the 16 | # next paragraph) shall be included in all copies or substantial 17 | # portions of the Software. 18 | # 19 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 20 | # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 21 | # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 22 | # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS 23 | # BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN 24 | # ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 25 | # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 26 | # SOFTWARE. 27 | 28 | from __future__ import annotations 29 | 30 | 31 | from pywayland.protocol_core import ( 32 | Argument, 33 | ArgumentType, 34 | Global, 35 | Interface, 36 | Proxy, 37 | Resource, 38 | ) 39 | 40 | 41 | class WlCallback(Interface): 42 | """Callback object 43 | 44 | Clients can handle the 'done' event to get notified when the related 45 | request is done. 46 | 47 | Note, because :class:`WlCallback` objects are created from multiple 48 | independent factory interfaces, the :class:`WlCallback` interface is frozen 49 | at version 1. 50 | """ 51 | 52 | name = "wl_callback" 53 | version = 1 54 | 55 | 56 | class WlCallbackProxy(Proxy[WlCallback]): 57 | interface = WlCallback 58 | 59 | 60 | class WlCallbackResource(Resource): 61 | interface = WlCallback 62 | 63 | @WlCallback.event( 64 | Argument(ArgumentType.Uint), 65 | ) 66 | def done(self, callback_data: int) -> None: 67 | """Done event 68 | 69 | Notify the client when the related request is done. 70 | 71 | :param callback_data: 72 | request-specific data for the callback 73 | :type callback_data: 74 | `ArgumentType.Uint` 75 | """ 76 | self._post_event(0, callback_data) 77 | 78 | 79 | class WlCallbackGlobal(Global): 80 | interface = WlCallback 81 | 82 | 83 | WlCallback._gen_c() 84 | WlCallback.proxy_class = WlCallbackProxy 85 | WlCallback.resource_class = WlCallbackResource 86 | WlCallback.global_class = WlCallbackGlobal 87 | -------------------------------------------------------------------------------- /shimming/alienkeyboardservice/protocols/wayland/wl_compositor.py: -------------------------------------------------------------------------------- 1 | # This file has been autogenerated by the pywayland scanner 2 | 3 | # Copyright © 2008-2011 Kristian Høgsberg 4 | # Copyright © 2010-2011 Intel Corporation 5 | # Copyright © 2012-2013 Collabora, Ltd. 6 | # 7 | # Permission is hereby granted, free of charge, to any person 8 | # obtaining a copy of this software and associated documentation files 9 | # (the "Software"), to deal in the Software without restriction, 10 | # including without limitation the rights to use, copy, modify, merge, 11 | # publish, distribute, sublicense, and/or sell copies of the Software, 12 | # and to permit persons to whom the Software is furnished to do so, 13 | # subject to the following conditions: 14 | # 15 | # The above copyright notice and this permission notice (including the 16 | # next paragraph) shall be included in all copies or substantial 17 | # portions of the Software. 18 | # 19 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 20 | # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 21 | # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 22 | # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS 23 | # BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN 24 | # ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 25 | # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 26 | # SOFTWARE. 27 | 28 | from __future__ import annotations 29 | 30 | 31 | from pywayland.protocol_core import ( 32 | Argument, 33 | ArgumentType, 34 | Global, 35 | Interface, 36 | Proxy, 37 | Resource, 38 | ) 39 | from .wl_region import WlRegion 40 | from .wl_surface import WlSurface 41 | 42 | 43 | class WlCompositor(Interface): 44 | """The compositor singleton 45 | 46 | A compositor. This object is a singleton global. The compositor is in 47 | charge of combining the contents of multiple surfaces into one displayable 48 | output. 49 | """ 50 | 51 | name = "wl_compositor" 52 | version = 6 53 | 54 | 55 | class WlCompositorProxy(Proxy[WlCompositor]): 56 | interface = WlCompositor 57 | 58 | @WlCompositor.request( 59 | Argument(ArgumentType.NewId, interface=WlSurface), 60 | ) 61 | def create_surface(self) -> Proxy[WlSurface]: 62 | """Create new surface 63 | 64 | Ask the compositor to create a new surface. 65 | 66 | :returns: 67 | :class:`~pywayland.protocol.wayland.WlSurface` -- the new surface 68 | """ 69 | id = self._marshal_constructor(0, WlSurface) 70 | return id 71 | 72 | @WlCompositor.request( 73 | Argument(ArgumentType.NewId, interface=WlRegion), 74 | ) 75 | def create_region(self) -> Proxy[WlRegion]: 76 | """Create new region 77 | 78 | Ask the compositor to create a new region. 79 | 80 | :returns: 81 | :class:`~pywayland.protocol.wayland.WlRegion` -- the new region 82 | """ 83 | id = self._marshal_constructor(1, WlRegion) 84 | return id 85 | 86 | 87 | class WlCompositorResource(Resource): 88 | interface = WlCompositor 89 | 90 | 91 | class WlCompositorGlobal(Global): 92 | interface = WlCompositor 93 | 94 | 95 | WlCompositor._gen_c() 96 | WlCompositor.proxy_class = WlCompositorProxy 97 | WlCompositor.resource_class = WlCompositorResource 98 | WlCompositor.global_class = WlCompositorGlobal 99 | -------------------------------------------------------------------------------- /shimming/alienkeyboardservice/protocols/wayland/wl_shell.py: -------------------------------------------------------------------------------- 1 | # This file has been autogenerated by the pywayland scanner 2 | 3 | # Copyright © 2008-2011 Kristian Høgsberg 4 | # Copyright © 2010-2011 Intel Corporation 5 | # Copyright © 2012-2013 Collabora, Ltd. 6 | # 7 | # Permission is hereby granted, free of charge, to any person 8 | # obtaining a copy of this software and associated documentation files 9 | # (the "Software"), to deal in the Software without restriction, 10 | # including without limitation the rights to use, copy, modify, merge, 11 | # publish, distribute, sublicense, and/or sell copies of the Software, 12 | # and to permit persons to whom the Software is furnished to do so, 13 | # subject to the following conditions: 14 | # 15 | # The above copyright notice and this permission notice (including the 16 | # next paragraph) shall be included in all copies or substantial 17 | # portions of the Software. 18 | # 19 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 20 | # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 21 | # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 22 | # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS 23 | # BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN 24 | # ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 25 | # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 26 | # SOFTWARE. 27 | 28 | from __future__ import annotations 29 | 30 | import enum 31 | 32 | from pywayland.protocol_core import ( 33 | Argument, 34 | ArgumentType, 35 | Global, 36 | Interface, 37 | Proxy, 38 | Resource, 39 | ) 40 | from .wl_shell_surface import WlShellSurface 41 | from .wl_surface import WlSurface 42 | 43 | 44 | class WlShell(Interface): 45 | """Create desktop-style surfaces 46 | 47 | This interface is implemented by servers that provide desktop-style user 48 | interfaces. 49 | 50 | It allows clients to associate a 51 | :class:`~pywayland.protocol.wayland.WlShellSurface` with a basic surface. 52 | 53 | Note! This protocol is deprecated and not intended for production use. For 54 | desktop-style user interfaces, use 55 | :class:`~pywayland.protocol.xdg_shell_unstable_v5.XdgShell`. Compositors 56 | and clients should not implement this interface. 57 | """ 58 | 59 | name = "wl_shell" 60 | version = 1 61 | 62 | class error(enum.IntEnum): 63 | role = 0 64 | 65 | 66 | class WlShellProxy(Proxy[WlShell]): 67 | interface = WlShell 68 | 69 | @WlShell.request( 70 | Argument(ArgumentType.NewId, interface=WlShellSurface), 71 | Argument(ArgumentType.Object, interface=WlSurface), 72 | ) 73 | def get_shell_surface(self, surface: WlSurface) -> Proxy[WlShellSurface]: 74 | """Create a shell surface from a surface 75 | 76 | Create a shell surface for an existing surface. This gives the 77 | :class:`~pywayland.protocol.wayland.WlSurface` the role of a shell 78 | surface. If the :class:`~pywayland.protocol.wayland.WlSurface` already 79 | has another role, it raises a protocol error. 80 | 81 | Only one shell surface can be associated with a given surface. 82 | 83 | :param surface: 84 | surface to be given the shell surface role 85 | :type surface: 86 | :class:`~pywayland.protocol.wayland.WlSurface` 87 | :returns: 88 | :class:`~pywayland.protocol.wayland.WlShellSurface` -- shell 89 | surface to create 90 | """ 91 | id = self._marshal_constructor(0, WlShellSurface, surface) 92 | return id 93 | 94 | 95 | class WlShellResource(Resource): 96 | interface = WlShell 97 | 98 | 99 | class WlShellGlobal(Global): 100 | interface = WlShell 101 | 102 | 103 | WlShell._gen_c() 104 | WlShell.proxy_class = WlShellProxy 105 | WlShell.resource_class = WlShellResource 106 | WlShell.global_class = WlShellGlobal 107 | -------------------------------------------------------------------------------- /shimming/alienkeyboardservice/protocols/wp_primary_selection_unstable_v1/__init__.py: -------------------------------------------------------------------------------- 1 | # This file has been autogenerated by the pywayland scanner 2 | 3 | # Copyright © 2015, 2016 Red Hat 4 | # 5 | # Permission is hereby granted, free of charge, to any person obtaining a 6 | # copy of this software and associated documentation files (the "Software"), 7 | # to deal in the Software without restriction, including without limitation 8 | # the rights to use, copy, modify, merge, publish, distribute, sublicense, 9 | # and/or sell copies of the Software, and to permit persons to whom the 10 | # Software is furnished to do so, subject to the following conditions: 11 | # 12 | # The above copyright notice and this permission notice (including the next 13 | # paragraph) shall be included in all copies or substantial portions of the 14 | # Software. 15 | # 16 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 19 | # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 21 | # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 22 | # DEALINGS IN THE SOFTWARE. 23 | 24 | from .zwp_primary_selection_device_manager_v1 import ZwpPrimarySelectionDeviceManagerV1 # noqa: F401 25 | from .zwp_primary_selection_device_v1 import ZwpPrimarySelectionDeviceV1 # noqa: F401 26 | from .zwp_primary_selection_offer_v1 import ZwpPrimarySelectionOfferV1 # noqa: F401 27 | from .zwp_primary_selection_source_v1 import ZwpPrimarySelectionSourceV1 # noqa: F401 28 | -------------------------------------------------------------------------------- /shimming/alienkeyboardservice/protocols/xdg_activation_v1/__init__.py: -------------------------------------------------------------------------------- 1 | # This file has been autogenerated by the pywayland scanner 2 | 3 | # Copyright © 2020 Aleix Pol Gonzalez 4 | # Copyright © 2020 Carlos Garnacho 5 | # 6 | # Permission is hereby granted, free of charge, to any person obtaining a 7 | # copy of this software and associated documentation files (the "Software"), 8 | # to deal in the Software without restriction, including without limitation 9 | # the rights to use, copy, modify, merge, publish, distribute, sublicense, 10 | # and/or sell copies of the Software, and to permit persons to whom the 11 | # Software is furnished to do so, subject to the following conditions: 12 | # 13 | # The above copyright notice and this permission notice (including the next 14 | # paragraph) shall be included in all copies or substantial portions of the 15 | # Software. 16 | # 17 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 20 | # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 22 | # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 23 | # DEALINGS IN THE SOFTWARE. 24 | 25 | from .xdg_activation_token_v1 import XdgActivationTokenV1 # noqa: F401 26 | from .xdg_activation_v1 import XdgActivationV1 # noqa: F401 27 | -------------------------------------------------------------------------------- /shimming/alienkeyboardservice/protocols/xdg_decoration_unstable_v1/__init__.py: -------------------------------------------------------------------------------- 1 | # This file has been autogenerated by the pywayland scanner 2 | 3 | # Copyright © 2018 Simon Ser 4 | # 5 | # Permission is hereby granted, free of charge, to any person obtaining a 6 | # copy of this software and associated documentation files (the "Software"), 7 | # to deal in the Software without restriction, including without limitation 8 | # the rights to use, copy, modify, merge, publish, distribute, sublicense, 9 | # and/or sell copies of the Software, and to permit persons to whom the 10 | # Software is furnished to do so, subject to the following conditions: 11 | # 12 | # The above copyright notice and this permission notice (including the next 13 | # paragraph) shall be included in all copies or substantial portions of the 14 | # Software. 15 | # 16 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 19 | # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 21 | # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 22 | # DEALINGS IN THE SOFTWARE. 23 | 24 | from .zxdg_decoration_manager_v1 import ZxdgDecorationManagerV1 # noqa: F401 25 | from .zxdg_toplevel_decoration_v1 import ZxdgToplevelDecorationV1 # noqa: F401 26 | -------------------------------------------------------------------------------- /shimming/alienkeyboardservice/protocols/xdg_foreign_unstable_v1/__init__.py: -------------------------------------------------------------------------------- 1 | # This file has been autogenerated by the pywayland scanner 2 | 3 | # Copyright © 2015-2016 Red Hat Inc. 4 | # 5 | # Permission is hereby granted, free of charge, to any person obtaining a 6 | # copy of this software and associated documentation files (the "Software"), 7 | # to deal in the Software without restriction, including without limitation 8 | # the rights to use, copy, modify, merge, publish, distribute, sublicense, 9 | # and/or sell copies of the Software, and to permit persons to whom the 10 | # Software is furnished to do so, subject to the following conditions: 11 | # 12 | # The above copyright notice and this permission notice (including the next 13 | # paragraph) shall be included in all copies or substantial portions of the 14 | # Software. 15 | # 16 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 19 | # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 21 | # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 22 | # DEALINGS IN THE SOFTWARE. 23 | 24 | from .zxdg_exported_v1 import ZxdgExportedV1 # noqa: F401 25 | from .zxdg_exporter_v1 import ZxdgExporterV1 # noqa: F401 26 | from .zxdg_imported_v1 import ZxdgImportedV1 # noqa: F401 27 | from .zxdg_importer_v1 import ZxdgImporterV1 # noqa: F401 28 | -------------------------------------------------------------------------------- /shimming/alienkeyboardservice/protocols/xdg_foreign_unstable_v1/zxdg_exported_v1.py: -------------------------------------------------------------------------------- 1 | # This file has been autogenerated by the pywayland scanner 2 | 3 | # Copyright © 2015-2016 Red Hat Inc. 4 | # 5 | # Permission is hereby granted, free of charge, to any person obtaining a 6 | # copy of this software and associated documentation files (the "Software"), 7 | # to deal in the Software without restriction, including without limitation 8 | # the rights to use, copy, modify, merge, publish, distribute, sublicense, 9 | # and/or sell copies of the Software, and to permit persons to whom the 10 | # Software is furnished to do so, subject to the following conditions: 11 | # 12 | # The above copyright notice and this permission notice (including the next 13 | # paragraph) shall be included in all copies or substantial portions of the 14 | # Software. 15 | # 16 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 19 | # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 21 | # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 22 | # DEALINGS IN THE SOFTWARE. 23 | 24 | from __future__ import annotations 25 | 26 | 27 | from pywayland.protocol_core import ( 28 | Argument, 29 | ArgumentType, 30 | Global, 31 | Interface, 32 | Proxy, 33 | Resource, 34 | ) 35 | 36 | 37 | class ZxdgExportedV1(Interface): 38 | """An exported surface handle 39 | 40 | An xdg_exported object represents an exported reference to a surface. The 41 | exported surface may be referenced as long as the xdg_exported object not 42 | destroyed. Destroying the xdg_exported invalidates any relationship the 43 | importer may have established using xdg_imported. 44 | """ 45 | 46 | name = "zxdg_exported_v1" 47 | version = 1 48 | 49 | 50 | class ZxdgExportedV1Proxy(Proxy[ZxdgExportedV1]): 51 | interface = ZxdgExportedV1 52 | 53 | @ZxdgExportedV1.request() 54 | def destroy(self) -> None: 55 | """Unexport the exported surface 56 | 57 | Revoke the previously exported surface. This invalidates any 58 | relationship the importer may have set up using the xdg_imported 59 | created given the handle sent via xdg_exported.handle. 60 | """ 61 | self._marshal(0) 62 | self._destroy() 63 | 64 | 65 | class ZxdgExportedV1Resource(Resource): 66 | interface = ZxdgExportedV1 67 | 68 | @ZxdgExportedV1.event( 69 | Argument(ArgumentType.String), 70 | ) 71 | def handle(self, handle: str) -> None: 72 | """The exported surface handle 73 | 74 | The handle event contains the unique handle of this exported surface 75 | reference. It may be shared with any client, which then can use it to 76 | import the surface by calling xdg_importer.import. A handle may be used 77 | to import the surface multiple times. 78 | 79 | :param handle: 80 | the exported surface handle 81 | :type handle: 82 | `ArgumentType.String` 83 | """ 84 | self._post_event(0, handle) 85 | 86 | 87 | class ZxdgExportedV1Global(Global): 88 | interface = ZxdgExportedV1 89 | 90 | 91 | ZxdgExportedV1._gen_c() 92 | ZxdgExportedV1.proxy_class = ZxdgExportedV1Proxy 93 | ZxdgExportedV1.resource_class = ZxdgExportedV1Resource 94 | ZxdgExportedV1.global_class = ZxdgExportedV1Global 95 | -------------------------------------------------------------------------------- /shimming/alienkeyboardservice/protocols/xdg_foreign_unstable_v1/zxdg_exporter_v1.py: -------------------------------------------------------------------------------- 1 | # This file has been autogenerated by the pywayland scanner 2 | 3 | # Copyright © 2015-2016 Red Hat Inc. 4 | # 5 | # Permission is hereby granted, free of charge, to any person obtaining a 6 | # copy of this software and associated documentation files (the "Software"), 7 | # to deal in the Software without restriction, including without limitation 8 | # the rights to use, copy, modify, merge, publish, distribute, sublicense, 9 | # and/or sell copies of the Software, and to permit persons to whom the 10 | # Software is furnished to do so, subject to the following conditions: 11 | # 12 | # The above copyright notice and this permission notice (including the next 13 | # paragraph) shall be included in all copies or substantial portions of the 14 | # Software. 15 | # 16 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 19 | # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 21 | # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 22 | # DEALINGS IN THE SOFTWARE. 23 | 24 | from __future__ import annotations 25 | 26 | 27 | from pywayland.protocol_core import ( 28 | Argument, 29 | ArgumentType, 30 | Global, 31 | Interface, 32 | Proxy, 33 | Resource, 34 | ) 35 | from ..wayland import WlSurface 36 | from .zxdg_exported_v1 import ZxdgExportedV1 37 | 38 | 39 | class ZxdgExporterV1(Interface): 40 | """Interface for exporting surfaces 41 | 42 | A global interface used for exporting surfaces that can later be imported 43 | using xdg_importer. 44 | """ 45 | 46 | name = "zxdg_exporter_v1" 47 | version = 1 48 | 49 | 50 | class ZxdgExporterV1Proxy(Proxy[ZxdgExporterV1]): 51 | interface = ZxdgExporterV1 52 | 53 | @ZxdgExporterV1.request() 54 | def destroy(self) -> None: 55 | """Destroy the xdg_exporter object 56 | 57 | Notify the compositor that the xdg_exporter object will no longer be 58 | used. 59 | """ 60 | self._marshal(0) 61 | self._destroy() 62 | 63 | @ZxdgExporterV1.request( 64 | Argument(ArgumentType.NewId, interface=ZxdgExportedV1), 65 | Argument(ArgumentType.Object, interface=WlSurface), 66 | ) 67 | def export(self, surface: WlSurface) -> Proxy[ZxdgExportedV1]: 68 | """Export a surface 69 | 70 | The export request exports the passed surface so that it can later be 71 | imported via xdg_importer. When called, a new xdg_exported object will 72 | be created and xdg_exported.handle will be sent immediately. See the 73 | corresponding interface and event for details. 74 | 75 | A surface may be exported multiple times, and each exported handle may 76 | be used to create an xdg_imported multiple times. Only 77 | :class:`~pywayland.protocol.xdg_shell.XdgSurface` surfaces may be 78 | exported. 79 | 80 | :param surface: 81 | the surface to export 82 | :type surface: 83 | :class:`~pywayland.protocol.wayland.WlSurface` 84 | :returns: 85 | :class:`~pywayland.protocol.xdg_foreign_unstable_v1.ZxdgExportedV1` 86 | -- the new xdg_exported object 87 | """ 88 | id = self._marshal_constructor(1, ZxdgExportedV1, surface) 89 | return id 90 | 91 | 92 | class ZxdgExporterV1Resource(Resource): 93 | interface = ZxdgExporterV1 94 | 95 | 96 | class ZxdgExporterV1Global(Global): 97 | interface = ZxdgExporterV1 98 | 99 | 100 | ZxdgExporterV1._gen_c() 101 | ZxdgExporterV1.proxy_class = ZxdgExporterV1Proxy 102 | ZxdgExporterV1.resource_class = ZxdgExporterV1Resource 103 | ZxdgExporterV1.global_class = ZxdgExporterV1Global 104 | -------------------------------------------------------------------------------- /shimming/alienkeyboardservice/protocols/xdg_foreign_unstable_v1/zxdg_imported_v1.py: -------------------------------------------------------------------------------- 1 | # This file has been autogenerated by the pywayland scanner 2 | 3 | # Copyright © 2015-2016 Red Hat Inc. 4 | # 5 | # Permission is hereby granted, free of charge, to any person obtaining a 6 | # copy of this software and associated documentation files (the "Software"), 7 | # to deal in the Software without restriction, including without limitation 8 | # the rights to use, copy, modify, merge, publish, distribute, sublicense, 9 | # and/or sell copies of the Software, and to permit persons to whom the 10 | # Software is furnished to do so, subject to the following conditions: 11 | # 12 | # The above copyright notice and this permission notice (including the next 13 | # paragraph) shall be included in all copies or substantial portions of the 14 | # Software. 15 | # 16 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 19 | # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 21 | # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 22 | # DEALINGS IN THE SOFTWARE. 23 | 24 | from __future__ import annotations 25 | 26 | 27 | from pywayland.protocol_core import ( 28 | Argument, 29 | ArgumentType, 30 | Global, 31 | Interface, 32 | Proxy, 33 | Resource, 34 | ) 35 | from ..wayland import WlSurface 36 | 37 | 38 | class ZxdgImportedV1(Interface): 39 | """An imported surface handle 40 | 41 | An xdg_imported object represents an imported reference to surface exported 42 | by some client. A client can use this interface to manipulate relationships 43 | between its own surfaces and the imported surface. 44 | """ 45 | 46 | name = "zxdg_imported_v1" 47 | version = 1 48 | 49 | 50 | class ZxdgImportedV1Proxy(Proxy[ZxdgImportedV1]): 51 | interface = ZxdgImportedV1 52 | 53 | @ZxdgImportedV1.request() 54 | def destroy(self) -> None: 55 | """Destroy the xdg_imported object 56 | 57 | Notify the compositor that it will no longer use the xdg_imported 58 | object. Any relationship that may have been set up will at this point 59 | be invalidated. 60 | """ 61 | self._marshal(0) 62 | self._destroy() 63 | 64 | @ZxdgImportedV1.request( 65 | Argument(ArgumentType.Object, interface=WlSurface), 66 | ) 67 | def set_parent_of(self, surface: WlSurface) -> None: 68 | """Set as the parent of some surface 69 | 70 | Set the imported surface as the parent of some surface of the client. 71 | The passed surface must be a toplevel 72 | :class:`~pywayland.protocol.xdg_shell.XdgSurface`. Calling this 73 | function sets up a surface to surface relation with the same stacking 74 | and positioning semantics as :func:`XdgSurface.set_parent() 75 | `. 76 | 77 | :param surface: 78 | the child surface 79 | :type surface: 80 | :class:`~pywayland.protocol.wayland.WlSurface` 81 | """ 82 | self._marshal(1, surface) 83 | 84 | 85 | class ZxdgImportedV1Resource(Resource): 86 | interface = ZxdgImportedV1 87 | 88 | @ZxdgImportedV1.event() 89 | def destroyed(self) -> None: 90 | """The imported surface handle has been destroyed 91 | 92 | The imported surface handle has been destroyed and any relationship set 93 | up has been invalidated. This may happen for various reasons, for 94 | example if the exported surface or the exported surface handle has been 95 | destroyed, if the handle used for importing was invalid. 96 | """ 97 | self._post_event(0) 98 | 99 | 100 | class ZxdgImportedV1Global(Global): 101 | interface = ZxdgImportedV1 102 | 103 | 104 | ZxdgImportedV1._gen_c() 105 | ZxdgImportedV1.proxy_class = ZxdgImportedV1Proxy 106 | ZxdgImportedV1.resource_class = ZxdgImportedV1Resource 107 | ZxdgImportedV1.global_class = ZxdgImportedV1Global 108 | -------------------------------------------------------------------------------- /shimming/alienkeyboardservice/protocols/xdg_foreign_unstable_v1/zxdg_importer_v1.py: -------------------------------------------------------------------------------- 1 | # This file has been autogenerated by the pywayland scanner 2 | 3 | # Copyright © 2015-2016 Red Hat Inc. 4 | # 5 | # Permission is hereby granted, free of charge, to any person obtaining a 6 | # copy of this software and associated documentation files (the "Software"), 7 | # to deal in the Software without restriction, including without limitation 8 | # the rights to use, copy, modify, merge, publish, distribute, sublicense, 9 | # and/or sell copies of the Software, and to permit persons to whom the 10 | # Software is furnished to do so, subject to the following conditions: 11 | # 12 | # The above copyright notice and this permission notice (including the next 13 | # paragraph) shall be included in all copies or substantial portions of the 14 | # Software. 15 | # 16 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 19 | # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 21 | # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 22 | # DEALINGS IN THE SOFTWARE. 23 | 24 | from __future__ import annotations 25 | 26 | 27 | from pywayland.protocol_core import ( 28 | Argument, 29 | ArgumentType, 30 | Global, 31 | Interface, 32 | Proxy, 33 | Resource, 34 | ) 35 | from .zxdg_imported_v1 import ZxdgImportedV1 36 | 37 | 38 | class ZxdgImporterV1(Interface): 39 | """Interface for importing surfaces 40 | 41 | A global interface used for importing surfaces exported by xdg_exporter. 42 | With this interface, a client can create a reference to a surface of 43 | another client. 44 | """ 45 | 46 | name = "zxdg_importer_v1" 47 | version = 1 48 | 49 | 50 | class ZxdgImporterV1Proxy(Proxy[ZxdgImporterV1]): 51 | interface = ZxdgImporterV1 52 | 53 | @ZxdgImporterV1.request() 54 | def destroy(self) -> None: 55 | """Destroy the xdg_importer object 56 | 57 | Notify the compositor that the xdg_importer object will no longer be 58 | used. 59 | """ 60 | self._marshal(0) 61 | self._destroy() 62 | 63 | @ZxdgImporterV1.request( 64 | Argument(ArgumentType.NewId, interface=ZxdgImportedV1), 65 | Argument(ArgumentType.String), 66 | ) 67 | def import_(self, handle: str) -> Proxy[ZxdgImportedV1]: 68 | """Import a surface 69 | 70 | The import request imports a surface from any client given a handle 71 | retrieved by exporting said surface using xdg_exporter.export. When 72 | called, a new xdg_imported object will be created. This new object 73 | represents the imported surface, and the importing client can 74 | manipulate its relationship using it. See xdg_imported for details. 75 | 76 | :param handle: 77 | the exported surface handle 78 | :type handle: 79 | `ArgumentType.String` 80 | :returns: 81 | :class:`~pywayland.protocol.xdg_foreign_unstable_v1.ZxdgImportedV1` 82 | -- the new xdg_imported object 83 | """ 84 | id = self._marshal_constructor(1, ZxdgImportedV1, handle) 85 | return id 86 | 87 | 88 | class ZxdgImporterV1Resource(Resource): 89 | interface = ZxdgImporterV1 90 | 91 | 92 | class ZxdgImporterV1Global(Global): 93 | interface = ZxdgImporterV1 94 | 95 | 96 | ZxdgImporterV1._gen_c() 97 | ZxdgImporterV1.proxy_class = ZxdgImporterV1Proxy 98 | ZxdgImporterV1.resource_class = ZxdgImporterV1Resource 99 | ZxdgImporterV1.global_class = ZxdgImporterV1Global 100 | -------------------------------------------------------------------------------- /shimming/alienkeyboardservice/protocols/xdg_foreign_unstable_v2/__init__.py: -------------------------------------------------------------------------------- 1 | # This file has been autogenerated by the pywayland scanner 2 | 3 | # Copyright © 2015-2016 Red Hat Inc. 4 | # 5 | # Permission is hereby granted, free of charge, to any person obtaining a 6 | # copy of this software and associated documentation files (the "Software"), 7 | # to deal in the Software without restriction, including without limitation 8 | # the rights to use, copy, modify, merge, publish, distribute, sublicense, 9 | # and/or sell copies of the Software, and to permit persons to whom the 10 | # Software is furnished to do so, subject to the following conditions: 11 | # 12 | # The above copyright notice and this permission notice (including the next 13 | # paragraph) shall be included in all copies or substantial portions of the 14 | # Software. 15 | # 16 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 19 | # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 21 | # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 22 | # DEALINGS IN THE SOFTWARE. 23 | 24 | from .zxdg_exported_v2 import ZxdgExportedV2 # noqa: F401 25 | from .zxdg_exporter_v2 import ZxdgExporterV2 # noqa: F401 26 | from .zxdg_imported_v2 import ZxdgImportedV2 # noqa: F401 27 | from .zxdg_importer_v2 import ZxdgImporterV2 # noqa: F401 28 | -------------------------------------------------------------------------------- /shimming/alienkeyboardservice/protocols/xdg_foreign_unstable_v2/zxdg_exported_v2.py: -------------------------------------------------------------------------------- 1 | # This file has been autogenerated by the pywayland scanner 2 | 3 | # Copyright © 2015-2016 Red Hat Inc. 4 | # 5 | # Permission is hereby granted, free of charge, to any person obtaining a 6 | # copy of this software and associated documentation files (the "Software"), 7 | # to deal in the Software without restriction, including without limitation 8 | # the rights to use, copy, modify, merge, publish, distribute, sublicense, 9 | # and/or sell copies of the Software, and to permit persons to whom the 10 | # Software is furnished to do so, subject to the following conditions: 11 | # 12 | # The above copyright notice and this permission notice (including the next 13 | # paragraph) shall be included in all copies or substantial portions of the 14 | # Software. 15 | # 16 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 19 | # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 21 | # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 22 | # DEALINGS IN THE SOFTWARE. 23 | 24 | from __future__ import annotations 25 | 26 | 27 | from pywayland.protocol_core import ( 28 | Argument, 29 | ArgumentType, 30 | Global, 31 | Interface, 32 | Proxy, 33 | Resource, 34 | ) 35 | 36 | 37 | class ZxdgExportedV2(Interface): 38 | """An exported surface handle 39 | 40 | An xdg_exported object represents an exported reference to a surface. The 41 | exported surface may be referenced as long as the xdg_exported object not 42 | destroyed. Destroying the xdg_exported invalidates any relationship the 43 | importer may have established using xdg_imported. 44 | """ 45 | 46 | name = "zxdg_exported_v2" 47 | version = 1 48 | 49 | 50 | class ZxdgExportedV2Proxy(Proxy[ZxdgExportedV2]): 51 | interface = ZxdgExportedV2 52 | 53 | @ZxdgExportedV2.request() 54 | def destroy(self) -> None: 55 | """Unexport the exported surface 56 | 57 | Revoke the previously exported surface. This invalidates any 58 | relationship the importer may have set up using the xdg_imported 59 | created given the handle sent via xdg_exported.handle. 60 | """ 61 | self._marshal(0) 62 | self._destroy() 63 | 64 | 65 | class ZxdgExportedV2Resource(Resource): 66 | interface = ZxdgExportedV2 67 | 68 | @ZxdgExportedV2.event( 69 | Argument(ArgumentType.String), 70 | ) 71 | def handle(self, handle: str) -> None: 72 | """The exported surface handle 73 | 74 | The handle event contains the unique handle of this exported surface 75 | reference. It may be shared with any client, which then can use it to 76 | import the surface by calling xdg_importer.import_toplevel. A handle 77 | may be used to import the surface multiple times. 78 | 79 | :param handle: 80 | the exported surface handle 81 | :type handle: 82 | `ArgumentType.String` 83 | """ 84 | self._post_event(0, handle) 85 | 86 | 87 | class ZxdgExportedV2Global(Global): 88 | interface = ZxdgExportedV2 89 | 90 | 91 | ZxdgExportedV2._gen_c() 92 | ZxdgExportedV2.proxy_class = ZxdgExportedV2Proxy 93 | ZxdgExportedV2.resource_class = ZxdgExportedV2Resource 94 | ZxdgExportedV2.global_class = ZxdgExportedV2Global 95 | -------------------------------------------------------------------------------- /shimming/alienkeyboardservice/protocols/xdg_foreign_unstable_v2/zxdg_exporter_v2.py: -------------------------------------------------------------------------------- 1 | # This file has been autogenerated by the pywayland scanner 2 | 3 | # Copyright © 2015-2016 Red Hat Inc. 4 | # 5 | # Permission is hereby granted, free of charge, to any person obtaining a 6 | # copy of this software and associated documentation files (the "Software"), 7 | # to deal in the Software without restriction, including without limitation 8 | # the rights to use, copy, modify, merge, publish, distribute, sublicense, 9 | # and/or sell copies of the Software, and to permit persons to whom the 10 | # Software is furnished to do so, subject to the following conditions: 11 | # 12 | # The above copyright notice and this permission notice (including the next 13 | # paragraph) shall be included in all copies or substantial portions of the 14 | # Software. 15 | # 16 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 19 | # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 21 | # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 22 | # DEALINGS IN THE SOFTWARE. 23 | 24 | from __future__ import annotations 25 | 26 | import enum 27 | 28 | from pywayland.protocol_core import ( 29 | Argument, 30 | ArgumentType, 31 | Global, 32 | Interface, 33 | Proxy, 34 | Resource, 35 | ) 36 | from ..wayland import WlSurface 37 | from .zxdg_exported_v2 import ZxdgExportedV2 38 | 39 | 40 | class ZxdgExporterV2(Interface): 41 | """Interface for exporting surfaces 42 | 43 | A global interface used for exporting surfaces that can later be imported 44 | using xdg_importer. 45 | """ 46 | 47 | name = "zxdg_exporter_v2" 48 | version = 1 49 | 50 | class error(enum.IntEnum): 51 | invalid_surface = 0 52 | 53 | 54 | class ZxdgExporterV2Proxy(Proxy[ZxdgExporterV2]): 55 | interface = ZxdgExporterV2 56 | 57 | @ZxdgExporterV2.request() 58 | def destroy(self) -> None: 59 | """Destroy the xdg_exporter object 60 | 61 | Notify the compositor that the xdg_exporter object will no longer be 62 | used. 63 | """ 64 | self._marshal(0) 65 | self._destroy() 66 | 67 | @ZxdgExporterV2.request( 68 | Argument(ArgumentType.NewId, interface=ZxdgExportedV2), 69 | Argument(ArgumentType.Object, interface=WlSurface), 70 | ) 71 | def export_toplevel(self, surface: WlSurface) -> Proxy[ZxdgExportedV2]: 72 | """Export a toplevel surface 73 | 74 | The export_toplevel request exports the passed surface so that it can 75 | later be imported via xdg_importer. When called, a new xdg_exported 76 | object will be created and xdg_exported.handle will be sent 77 | immediately. See the corresponding interface and event for details. 78 | 79 | A surface may be exported multiple times, and each exported handle may 80 | be used to create an xdg_imported multiple times. Only 81 | :class:`~pywayland.protocol.xdg_shell.XdgToplevel` equivalent surfaces 82 | may be exported, otherwise an invalid_surface protocol error is sent. 83 | 84 | :param surface: 85 | the surface to export 86 | :type surface: 87 | :class:`~pywayland.protocol.wayland.WlSurface` 88 | :returns: 89 | :class:`~pywayland.protocol.xdg_foreign_unstable_v2.ZxdgExportedV2` 90 | -- the new xdg_exported object 91 | """ 92 | id = self._marshal_constructor(1, ZxdgExportedV2, surface) 93 | return id 94 | 95 | 96 | class ZxdgExporterV2Resource(Resource): 97 | interface = ZxdgExporterV2 98 | 99 | 100 | class ZxdgExporterV2Global(Global): 101 | interface = ZxdgExporterV2 102 | 103 | 104 | ZxdgExporterV2._gen_c() 105 | ZxdgExporterV2.proxy_class = ZxdgExporterV2Proxy 106 | ZxdgExporterV2.resource_class = ZxdgExporterV2Resource 107 | ZxdgExporterV2.global_class = ZxdgExporterV2Global 108 | -------------------------------------------------------------------------------- /shimming/alienkeyboardservice/protocols/xdg_foreign_unstable_v2/zxdg_importer_v2.py: -------------------------------------------------------------------------------- 1 | # This file has been autogenerated by the pywayland scanner 2 | 3 | # Copyright © 2015-2016 Red Hat Inc. 4 | # 5 | # Permission is hereby granted, free of charge, to any person obtaining a 6 | # copy of this software and associated documentation files (the "Software"), 7 | # to deal in the Software without restriction, including without limitation 8 | # the rights to use, copy, modify, merge, publish, distribute, sublicense, 9 | # and/or sell copies of the Software, and to permit persons to whom the 10 | # Software is furnished to do so, subject to the following conditions: 11 | # 12 | # The above copyright notice and this permission notice (including the next 13 | # paragraph) shall be included in all copies or substantial portions of the 14 | # Software. 15 | # 16 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 19 | # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 21 | # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 22 | # DEALINGS IN THE SOFTWARE. 23 | 24 | from __future__ import annotations 25 | 26 | 27 | from pywayland.protocol_core import ( 28 | Argument, 29 | ArgumentType, 30 | Global, 31 | Interface, 32 | Proxy, 33 | Resource, 34 | ) 35 | from .zxdg_imported_v2 import ZxdgImportedV2 36 | 37 | 38 | class ZxdgImporterV2(Interface): 39 | """Interface for importing surfaces 40 | 41 | A global interface used for importing surfaces exported by xdg_exporter. 42 | With this interface, a client can create a reference to a surface of 43 | another client. 44 | """ 45 | 46 | name = "zxdg_importer_v2" 47 | version = 1 48 | 49 | 50 | class ZxdgImporterV2Proxy(Proxy[ZxdgImporterV2]): 51 | interface = ZxdgImporterV2 52 | 53 | @ZxdgImporterV2.request() 54 | def destroy(self) -> None: 55 | """Destroy the xdg_importer object 56 | 57 | Notify the compositor that the xdg_importer object will no longer be 58 | used. 59 | """ 60 | self._marshal(0) 61 | self._destroy() 62 | 63 | @ZxdgImporterV2.request( 64 | Argument(ArgumentType.NewId, interface=ZxdgImportedV2), 65 | Argument(ArgumentType.String), 66 | ) 67 | def import_toplevel(self, handle: str) -> Proxy[ZxdgImportedV2]: 68 | """Import a toplevel surface 69 | 70 | The import_toplevel request imports a surface from any client given a 71 | handle retrieved by exporting said surface using 72 | xdg_exporter.export_toplevel. When called, a new xdg_imported object 73 | will be created. This new object represents the imported surface, and 74 | the importing client can manipulate its relationship using it. See 75 | xdg_imported for details. 76 | 77 | :param handle: 78 | the exported surface handle 79 | :type handle: 80 | `ArgumentType.String` 81 | :returns: 82 | :class:`~pywayland.protocol.xdg_foreign_unstable_v2.ZxdgImportedV2` 83 | -- the new xdg_imported object 84 | """ 85 | id = self._marshal_constructor(1, ZxdgImportedV2, handle) 86 | return id 87 | 88 | 89 | class ZxdgImporterV2Resource(Resource): 90 | interface = ZxdgImporterV2 91 | 92 | 93 | class ZxdgImporterV2Global(Global): 94 | interface = ZxdgImporterV2 95 | 96 | 97 | ZxdgImporterV2._gen_c() 98 | ZxdgImporterV2.proxy_class = ZxdgImporterV2Proxy 99 | ZxdgImporterV2.resource_class = ZxdgImporterV2Resource 100 | ZxdgImporterV2.global_class = ZxdgImporterV2Global 101 | -------------------------------------------------------------------------------- /shimming/alienkeyboardservice/protocols/xdg_output_unstable_v1/__init__.py: -------------------------------------------------------------------------------- 1 | # This file has been autogenerated by the pywayland scanner 2 | 3 | # Copyright © 2017 Red Hat Inc. 4 | # 5 | # Permission is hereby granted, free of charge, to any person obtaining a 6 | # copy of this software and associated documentation files (the "Software"), 7 | # to deal in the Software without restriction, including without limitation 8 | # the rights to use, copy, modify, merge, publish, distribute, sublicense, 9 | # and/or sell copies of the Software, and to permit persons to whom the 10 | # Software is furnished to do so, subject to the following conditions: 11 | # 12 | # The above copyright notice and this permission notice (including the next 13 | # paragraph) shall be included in all copies or substantial portions of the 14 | # Software. 15 | # 16 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 19 | # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 21 | # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 22 | # DEALINGS IN THE SOFTWARE. 23 | 24 | from .zxdg_output_manager_v1 import ZxdgOutputManagerV1 # noqa: F401 25 | from .zxdg_output_v1 import ZxdgOutputV1 # noqa: F401 26 | -------------------------------------------------------------------------------- /shimming/alienkeyboardservice/protocols/xdg_output_unstable_v1/zxdg_output_manager_v1.py: -------------------------------------------------------------------------------- 1 | # This file has been autogenerated by the pywayland scanner 2 | 3 | # Copyright © 2017 Red Hat Inc. 4 | # 5 | # Permission is hereby granted, free of charge, to any person obtaining a 6 | # copy of this software and associated documentation files (the "Software"), 7 | # to deal in the Software without restriction, including without limitation 8 | # the rights to use, copy, modify, merge, publish, distribute, sublicense, 9 | # and/or sell copies of the Software, and to permit persons to whom the 10 | # Software is furnished to do so, subject to the following conditions: 11 | # 12 | # The above copyright notice and this permission notice (including the next 13 | # paragraph) shall be included in all copies or substantial portions of the 14 | # Software. 15 | # 16 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 19 | # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 21 | # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 22 | # DEALINGS IN THE SOFTWARE. 23 | 24 | from __future__ import annotations 25 | 26 | 27 | from pywayland.protocol_core import ( 28 | Argument, 29 | ArgumentType, 30 | Global, 31 | Interface, 32 | Proxy, 33 | Resource, 34 | ) 35 | from ..wayland import WlOutput 36 | from .zxdg_output_v1 import ZxdgOutputV1 37 | 38 | 39 | class ZxdgOutputManagerV1(Interface): 40 | """Manage xdg_output objects 41 | 42 | A global factory interface for xdg_output objects. 43 | """ 44 | 45 | name = "zxdg_output_manager_v1" 46 | version = 3 47 | 48 | 49 | class ZxdgOutputManagerV1Proxy(Proxy[ZxdgOutputManagerV1]): 50 | interface = ZxdgOutputManagerV1 51 | 52 | @ZxdgOutputManagerV1.request() 53 | def destroy(self) -> None: 54 | """Destroy the xdg_output_manager object 55 | 56 | Using this request a client can tell the server that it is not going to 57 | use the xdg_output_manager object anymore. 58 | 59 | Any objects already created through this instance are not affected. 60 | """ 61 | self._marshal(0) 62 | self._destroy() 63 | 64 | @ZxdgOutputManagerV1.request( 65 | Argument(ArgumentType.NewId, interface=ZxdgOutputV1), 66 | Argument(ArgumentType.Object, interface=WlOutput), 67 | ) 68 | def get_xdg_output(self, output: WlOutput) -> Proxy[ZxdgOutputV1]: 69 | """Create an xdg output from a :class:`~pywayland.protocol.wayland.WlOutput` 70 | 71 | This creates a new xdg_output object for the given 72 | :class:`~pywayland.protocol.wayland.WlOutput`. 73 | 74 | :param output: 75 | :type output: 76 | :class:`~pywayland.protocol.wayland.WlOutput` 77 | :returns: 78 | :class:`~pywayland.protocol.xdg_output_unstable_v1.ZxdgOutputV1` 79 | """ 80 | id = self._marshal_constructor(1, ZxdgOutputV1, output) 81 | return id 82 | 83 | 84 | class ZxdgOutputManagerV1Resource(Resource): 85 | interface = ZxdgOutputManagerV1 86 | 87 | 88 | class ZxdgOutputManagerV1Global(Global): 89 | interface = ZxdgOutputManagerV1 90 | 91 | 92 | ZxdgOutputManagerV1._gen_c() 93 | ZxdgOutputManagerV1.proxy_class = ZxdgOutputManagerV1Proxy 94 | ZxdgOutputManagerV1.resource_class = ZxdgOutputManagerV1Resource 95 | ZxdgOutputManagerV1.global_class = ZxdgOutputManagerV1Global 96 | -------------------------------------------------------------------------------- /shimming/alienkeyboardservice/protocols/xdg_shell/__init__.py: -------------------------------------------------------------------------------- 1 | # This file has been autogenerated by the pywayland scanner 2 | 3 | # Copyright © 2008-2013 Kristian Høgsberg 4 | # Copyright © 2013 Rafael Antognolli 5 | # Copyright © 2013 Jasper St. Pierre 6 | # Copyright © 2010-2013 Intel Corporation 7 | # Copyright © 2015-2017 Samsung Electronics Co., Ltd 8 | # Copyright © 2015-2017 Red Hat Inc. 9 | # 10 | # Permission is hereby granted, free of charge, to any person obtaining a 11 | # copy of this software and associated documentation files (the "Software"), 12 | # to deal in the Software without restriction, including without limitation 13 | # the rights to use, copy, modify, merge, publish, distribute, sublicense, 14 | # and/or sell copies of the Software, and to permit persons to whom the 15 | # Software is furnished to do so, subject to the following conditions: 16 | # 17 | # The above copyright notice and this permission notice (including the next 18 | # paragraph) shall be included in all copies or substantial portions of the 19 | # Software. 20 | # 21 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 22 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 23 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 24 | # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 25 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 26 | # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 27 | # DEALINGS IN THE SOFTWARE. 28 | 29 | from .xdg_popup import XdgPopup # noqa: F401 30 | from .xdg_positioner import XdgPositioner # noqa: F401 31 | from .xdg_surface import XdgSurface # noqa: F401 32 | from .xdg_toplevel import XdgToplevel # noqa: F401 33 | from .xdg_wm_base import XdgWmBase # noqa: F401 34 | -------------------------------------------------------------------------------- /shimming/alienkeyboardservice/protocols/xdg_shell_unstable_v5/__init__.py: -------------------------------------------------------------------------------- 1 | # This file has been autogenerated by the pywayland scanner 2 | 3 | # Copyright © 2008-2013 Kristian Høgsberg 4 | # Copyright © 2013 Rafael Antognolli 5 | # Copyright © 2013 Jasper St. Pierre 6 | # Copyright © 2010-2013 Intel Corporation 7 | # 8 | # Permission is hereby granted, free of charge, to any person obtaining a 9 | # copy of this software and associated documentation files (the "Software"), 10 | # to deal in the Software without restriction, including without limitation 11 | # the rights to use, copy, modify, merge, publish, distribute, sublicense, 12 | # and/or sell copies of the Software, and to permit persons to whom the 13 | # Software is furnished to do so, subject to the following conditions: 14 | # 15 | # The above copyright notice and this permission notice (including the next 16 | # paragraph) shall be included in all copies or substantial portions of the 17 | # Software. 18 | # 19 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 22 | # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 24 | # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 25 | # DEALINGS IN THE SOFTWARE. 26 | 27 | from .xdg_popup import XdgPopup # noqa: F401 28 | from .xdg_shell import XdgShell # noqa: F401 29 | from .xdg_surface import XdgSurface # noqa: F401 30 | -------------------------------------------------------------------------------- /shimming/alienkeyboardservice/protocols/xdg_shell_unstable_v6/__init__.py: -------------------------------------------------------------------------------- 1 | # This file has been autogenerated by the pywayland scanner 2 | 3 | # Copyright © 2008-2013 Kristian Høgsberg 4 | # Copyright © 2013 Rafael Antognolli 5 | # Copyright © 2013 Jasper St. Pierre 6 | # Copyright © 2010-2013 Intel Corporation 7 | # 8 | # Permission is hereby granted, free of charge, to any person obtaining a 9 | # copy of this software and associated documentation files (the "Software"), 10 | # to deal in the Software without restriction, including without limitation 11 | # the rights to use, copy, modify, merge, publish, distribute, sublicense, 12 | # and/or sell copies of the Software, and to permit persons to whom the 13 | # Software is furnished to do so, subject to the following conditions: 14 | # 15 | # The above copyright notice and this permission notice (including the next 16 | # paragraph) shall be included in all copies or substantial portions of the 17 | # Software. 18 | # 19 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 22 | # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 24 | # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 25 | # DEALINGS IN THE SOFTWARE. 26 | 27 | from .zxdg_popup_v6 import ZxdgPopupV6 # noqa: F401 28 | from .zxdg_positioner_v6 import ZxdgPositionerV6 # noqa: F401 29 | from .zxdg_shell_v6 import ZxdgShellV6 # noqa: F401 30 | from .zxdg_surface_v6 import ZxdgSurfaceV6 # noqa: F401 31 | from .zxdg_toplevel_v6 import ZxdgToplevelV6 # noqa: F401 32 | -------------------------------------------------------------------------------- /shimming/alienkeyboardservice/protocols/xwayland_keyboard_grab_unstable_v1/__init__.py: -------------------------------------------------------------------------------- 1 | # This file has been autogenerated by the pywayland scanner 2 | 3 | # Copyright © 2017 Red Hat Inc. 4 | # 5 | # Permission is hereby granted, free of charge, to any person obtaining a 6 | # copy of this software and associated documentation files (the "Software"), 7 | # to deal in the Software without restriction, including without limitation 8 | # the rights to use, copy, modify, merge, publish, distribute, sublicense, 9 | # and/or sell copies of the Software, and to permit persons to whom the 10 | # Software is furnished to do so, subject to the following conditions: 11 | # 12 | # The above copyright notice and this permission notice (including the next 13 | # paragraph) shall be included in all copies or substantial portions of the 14 | # Software. 15 | # 16 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 19 | # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 21 | # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 22 | # DEALINGS IN THE SOFTWARE. 23 | 24 | from .zwp_xwayland_keyboard_grab_manager_v1 import ZwpXwaylandKeyboardGrabManagerV1 # noqa: F401 25 | from .zwp_xwayland_keyboard_grab_v1 import ZwpXwaylandKeyboardGrabV1 # noqa: F401 26 | -------------------------------------------------------------------------------- /shimming/alienkeyboardservice/protocols/xwayland_keyboard_grab_unstable_v1/zwp_xwayland_keyboard_grab_v1.py: -------------------------------------------------------------------------------- 1 | # This file has been autogenerated by the pywayland scanner 2 | 3 | # Copyright © 2017 Red Hat Inc. 4 | # 5 | # Permission is hereby granted, free of charge, to any person obtaining a 6 | # copy of this software and associated documentation files (the "Software"), 7 | # to deal in the Software without restriction, including without limitation 8 | # the rights to use, copy, modify, merge, publish, distribute, sublicense, 9 | # and/or sell copies of the Software, and to permit persons to whom the 10 | # Software is furnished to do so, subject to the following conditions: 11 | # 12 | # The above copyright notice and this permission notice (including the next 13 | # paragraph) shall be included in all copies or substantial portions of the 14 | # Software. 15 | # 16 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 19 | # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 21 | # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 22 | # DEALINGS IN THE SOFTWARE. 23 | 24 | from __future__ import annotations 25 | 26 | 27 | from pywayland.protocol_core import Global, Interface, Proxy, Resource 28 | 29 | 30 | class ZwpXwaylandKeyboardGrabV1(Interface): 31 | """Interface for grabbing the keyboard 32 | 33 | A global interface used for grabbing the keyboard. 34 | """ 35 | 36 | name = "zwp_xwayland_keyboard_grab_v1" 37 | version = 1 38 | 39 | 40 | class ZwpXwaylandKeyboardGrabV1Proxy(Proxy[ZwpXwaylandKeyboardGrabV1]): 41 | interface = ZwpXwaylandKeyboardGrabV1 42 | 43 | @ZwpXwaylandKeyboardGrabV1.request() 44 | def destroy(self) -> None: 45 | """Destroy the grabbed keyboard object 46 | 47 | Destroy the grabbed keyboard object. If applicable, the compositor will 48 | ungrab the keyboard. 49 | """ 50 | self._marshal(0) 51 | self._destroy() 52 | 53 | 54 | class ZwpXwaylandKeyboardGrabV1Resource(Resource): 55 | interface = ZwpXwaylandKeyboardGrabV1 56 | 57 | 58 | class ZwpXwaylandKeyboardGrabV1Global(Global): 59 | interface = ZwpXwaylandKeyboardGrabV1 60 | 61 | 62 | ZwpXwaylandKeyboardGrabV1._gen_c() 63 | ZwpXwaylandKeyboardGrabV1.proxy_class = ZwpXwaylandKeyboardGrabV1Proxy 64 | ZwpXwaylandKeyboardGrabV1.resource_class = ZwpXwaylandKeyboardGrabV1Resource 65 | ZwpXwaylandKeyboardGrabV1.global_class = ZwpXwaylandKeyboardGrabV1Global 66 | -------------------------------------------------------------------------------- /shimming/alienkeyboardservice/protocols/xwayland_shell_v1/__init__.py: -------------------------------------------------------------------------------- 1 | # This file has been autogenerated by the pywayland scanner 2 | 3 | # Copyright © 2022 Joshua Ashton 4 | # 5 | # Permission is hereby granted, free of charge, to any person obtaining a 6 | # copy of this software and associated documentation files (the "Software"), 7 | # to deal in the Software without restriction, including without limitation 8 | # the rights to use, copy, modify, merge, publish, distribute, sublicense, 9 | # and/or sell copies of the Software, and to permit persons to whom the 10 | # Software is furnished to do so, subject to the following conditions: 11 | # 12 | # The above copyright notice and this permission notice (including the next 13 | # paragraph) shall be included in all copies or substantial portions of the 14 | # Software. 15 | # 16 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 19 | # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 21 | # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 22 | # DEALINGS IN THE SOFTWARE. 23 | 24 | from .xwayland_shell_v1 import XwaylandShellV1 # noqa: F401 25 | from .xwayland_surface_v1 import XwaylandSurfaceV1 # noqa: F401 26 | -------------------------------------------------------------------------------- /shimming/alienkeyboardservice/protocols/zwp_linux_explicit_synchronization_unstable_v1/__init__.py: -------------------------------------------------------------------------------- 1 | # This file has been autogenerated by the pywayland scanner 2 | 3 | # Copyright 2016 The Chromium Authors. 4 | # Copyright 2017 Intel Corporation 5 | # Copyright 2018 Collabora, Ltd 6 | # 7 | # Permission is hereby granted, free of charge, to any person obtaining a 8 | # copy of this software and associated documentation files (the "Software"), 9 | # to deal in the Software without restriction, including without limitation 10 | # the rights to use, copy, modify, merge, publish, distribute, sublicense, 11 | # and/or sell copies of the Software, and to permit persons to whom the 12 | # Software is furnished to do so, subject to the following conditions: 13 | # 14 | # The above copyright notice and this permission notice (including the next 15 | # paragraph) shall be included in all copies or substantial portions of the 16 | # Software. 17 | # 18 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 21 | # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 22 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 23 | # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 24 | # DEALINGS IN THE SOFTWARE. 25 | 26 | from .zwp_linux_buffer_release_v1 import ZwpLinuxBufferReleaseV1 # noqa: F401 27 | from .zwp_linux_explicit_synchronization_v1 import ZwpLinuxExplicitSynchronizationV1 # noqa: F401 28 | from .zwp_linux_surface_synchronization_v1 import ZwpLinuxSurfaceSynchronizationV1 # noqa: F401 29 | -------------------------------------------------------------------------------- /shimming/apkd-bridge-user/apkd-bridge-user-connman-shim.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Aliendalvik main bridge connman DBus shim 3 | After=dbus.socket 4 | Requires=dbus.socket 5 | 6 | [Service] 7 | Type=dbus 8 | BusName=net.connman 9 | Restart=always 10 | ExecStart=/usr/bin/apkd-bridge-user-connman-shim 11 | -------------------------------------------------------------------------------- /shimming/apkd-bridge-user/connman-shim.conf: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /shimming/apkd-bridge-user/net.connman-shim.service: -------------------------------------------------------------------------------- 1 | [D-BUS Service] 2 | Name=net.connman 3 | Exec=/bin/false 4 | User=root 5 | SystemdService=apkd-bridge-user-connman-shim.service 6 | --------------------------------------------------------------------------------