GtkGestureSwipe on Macbook

GTK4 ページを作ろうとしていますが、進んでいない。
てゆーか GtkGestureSwipe が Macbook で動作しません。

1

そもそも Eye of GNOME にて上記が動作がしません。
ちなみに X11 でログインすると拡大や回転もできなくなります。

2

Macbook Air 2011 でも Wayland がデフォルトになります。
この状態でスワイプ以外は全部動く、やはり X11 ではズームできません。

#!/usr/bin/env python3

import gi, sys
gi.require_version('Gtk', '4.0')
from gi.repository import Gtk

class Win(Gtk.ApplicationWindow):
    '''
        Fedora 34 on Macbook Air 2011
    '''
    def __init__(self, app):
        Gtk.ApplicationWindow.__init__(self, application=app)
        # var
        self.mem_pan = -1
        # touch || mouse button
        click = Gtk.GestureClick()
        click.connect('released', self.on_gesture_click_released)
        # long press
        lpress = Gtk.GestureLongPress()
        lpress.connect('pressed', self.on_gesture_long_press_pressed)
        # pan
        pan = Gtk.GesturePan(orientation=Gtk.Orientation.VERTICAL)
        pan.connect('pan', self.on_gesture_pan)
        # swipe (no...)
        swipe = Gtk.GestureSwipe(touch_only=True)
        swipe.connect('swipe', self.on_gesture_swipe_swipe)
        # zoom
        zoom = Gtk.GestureZoom()
        zoom.connect('scale-changed', self.on_gesture_scale_change)
        #
        self.label = Gtk.Label(label='start')
        self.label.add_controller(click)
        self.label.add_controller(lpress)
        self.label.add_controller(pan)
        self.label.add_controller(swipe)
        self.label.add_controller(zoom)
        # resize
        self.set_child(self.label)
        self.set_default_size(600, 600)

    def on_gesture_pan(self, ges, direction, offset):
        if direction != self.mem_pan:
            self.mem_pan = direction
            if direction == Gtk.PanDirection.UP:
                self.label.props.label += '\npan up'
            else:
                self.label.props.label += '\npan down'

    def on_gesture_long_press_pressed(self, ges, x, y):
        self.label.props.label += '\nlong press'

    def on_gesture_click_released(self, ges, n_press, x, y):
        if n_press == 2:
            self.label.props.label += '\ndouble clicked'

    def on_gesture_swipe_swipe(self, ges, x, y):
        self.label.props.label += f'\nswipe x={round(x)} y={round(y)}'

    def on_gesture_scale_change(self, zoom, scale):
        w = round(600 * scale)
        h = round(600 * scale)
        self.set_default_size(w, h)

class App(Gtk.Application):
    def __init__(self):
        Gtk.Application.__init__(self)

    def do_startup(self):
        Gtk.Application.do_startup(self)
        Win(self)

    def do_activate(self):
        self.props.active_window.present()

app = App()
app.run(sys.argv)

3

ちなみに Macbook に Fedora 34 を入れた場合。
以下のトラックパッドジェスチャがデフォルト状態の GNOME 40 で可能。

三本指の上スワイプでアクティビティ画面。
もう一度同じ動作でアプリケーションランチャ。
三本指の横スワイプで仮想デスクトップの異動。
Eye of GNOME にて画像の拡大縮小と回転。

探せばジェスチャを追加できるサードパーティ拡張もあるんだけど。
上記のデフォルトとコンフリクトすると思う、試していないけど。
X11 でログインするとやはり何も動作しません。

考えてみれば二本指ジェスチャってスクロール動作と同じだし。
スワイプジェスチャと両立している macOS ってスゲェんだなって。
サーフェスとかは触ったことすら無いので知らない。

しかし本当に思う、やっぱり Macbook は macOS で使うのが一番だよ。
Fedora で使うと command と control キーの違いをどうしても間違えるし。