diff options
author | Joan Bruguera | 2021-09-26 21:48:30 +0200 |
---|---|---|
committer | Joan Bruguera | 2021-09-26 21:50:02 +0200 |
commit | b73ba6934670d5eaead1afe068ff31a26b2d3118 (patch) | |
tree | 3a02db2933ee556014e7c99a23e82f5cd4226216 | |
download | aur-b73ba6934670d5eaead1afe068ff31a26b2d3118.tar.gz |
Initial commit.
-rw-r--r-- | .SRCINFO | 36 | ||||
-rw-r--r-- | PKGBUILD | 55 | ||||
-rw-r--r-- | spice-extra-mouse-buttons.patch | 90 | ||||
-rw-r--r-- | spice-gtk.install | 8 |
4 files changed, 189 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 000000000000..65446bec819b --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,36 @@ +pkgbase = spice-gtk-extra-mouse-buttons + pkgdesc = GTK+ client library for SPICE (with support for extra mouse buttons) + pkgver = 0.39 + pkgrel = 3 + url = https://www.spice-space.org/ + install = spice-gtk.install + arch = x86_64 + license = LGPL2.1 + makedepends = gobject-introspection + makedepends = meson + makedepends = spice-protocol + makedepends = usbutils + makedepends = vala + depends = gtk3 + depends = libcacard + depends = libjpeg-turbo + depends = opus + depends = phodav + depends = usbredir + depends = gst-plugins-base + depends = gst-plugins-good + provides = spice-glib=0.39 + provides = spice-gtk3=0.39 + provides = spice-gtk + conflicts = spice-gtk + replaces = spice-glib + replaces = spice-gtk3 + source = https://www.spice-space.org/download/gtk/spice-gtk-0.39.tar.xz + source = https://www.spice-space.org/download/gtk/spice-gtk-0.39.tar.xz.sig + source = spice-extra-mouse-buttons.patch + validpgpkeys = 206D3B352F566F3B0E6572E997D9123DE37A484F + sha256sums = 23acbee197eaaec9bce6e6bfd885bd8f79708332639243ff04833020865713cd + sha256sums = SKIP + sha256sums = 8b8ed51d76f7170aea7d5d9af3b60ab17d43d4437b07979ac297589ef65ec05b + +pkgname = spice-gtk-extra-mouse-buttons diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 000000000000..6c26c9c2501a --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,55 @@ +# Maintainer: Joan Bruguera Micó <joanbrugueram@gmail.com> +# Maintainer: Balló György <ballogyor+arch at gmail dot com> +# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com> +# Contributor: Stefano Facchini <stefano.facchini@gmail.com> +# Contributor: Jonathan Lestrelin <zanko@daemontux.org> +# Contributor: Lucio Zara <pennega@gmail.com> + +pkgname=spice-gtk +pkgver=0.39 +pkgrel=3 +pkgdesc="GTK+ client library for SPICE" +arch=('x86_64') +url="https://www.spice-space.org/" +license=('LGPL2.1') +depends=('gtk3' 'libcacard' 'libjpeg-turbo' 'opus' 'phodav' 'usbredir' 'gst-plugins-base' 'gst-plugins-good') +makedepends=('gobject-introspection' 'meson' 'spice-protocol' 'usbutils' 'vala') +provides=("spice-glib=$pkgver" "spice-gtk3=$pkgver") +replaces=('spice-glib' 'spice-gtk3') +source=("https://www.spice-space.org/download/gtk/$pkgname-$pkgver.tar.xz"{,.sig}) +install=spice-gtk.install +sha256sums=('23acbee197eaaec9bce6e6bfd885bd8f79708332639243ff04833020865713cd' + 'SKIP') +validpgpkeys=('206D3B352F566F3B0E6572E997D9123DE37A484F') # Victor Toso de Carvalho <me@victortoso.com> + +build() { + arch-meson $pkgname-$pkgver build -D celt051=disabled + ninja -C build +} + +check() { + meson test -C build --print-errorlogs +} + +package() { + DESTDIR="$pkgdir" meson install -C build +} + +# Support for extra mouse buttons (typically "Back" and "Forward" in e.g. Firefox) by Kevin Pouget: +# https://lists.freedesktop.org/archives/spice-devel/2020-May/051651.html +# His patches have been rebased on top of this commit to spice-protocol: +# https://gitlab.freedesktop.org/spice/spice-protocol/-/commit/cbe7b2c28543f4c5e57d1db1b753b73a64104162 +provides+=(spice-gtk) +conflicts+=(spice-gtk) + +source+=("spice-extra-mouse-buttons.patch") +sha256sums+=('8b8ed51d76f7170aea7d5d9af3b60ab17d43d4437b07979ac297589ef65ec05b') + +_pkgname=$pkgname +pkgname+="-extra-mouse-buttons" +pkgdesc+=" (with support for extra mouse buttons)" +eval "$(declare -f build | sed 's/$pkgname/$_pkgname/g')" + +prepare() { + patch -d"$_pkgname-$pkgver" -Np1 -i "${srcdir}"/spice-extra-mouse-buttons.patch +} diff --git a/spice-extra-mouse-buttons.patch b/spice-extra-mouse-buttons.patch new file mode 100644 index 000000000000..e066014e9e9c --- /dev/null +++ b/spice-extra-mouse-buttons.patch @@ -0,0 +1,90 @@ +From c67a35580039c3e81c5b59085f3cf7a94fbbf5d4 Mon Sep 17 00:00:00 2001 +From: Kevin Pouget <kpouget@redhat.com> +Date: Thu, 14 May 2020 16:00:59 +0200 +Subject: [PATCH] Capture and forward mouse buttons 8 and 9 + +These buttons are not mapped by GTK +(`/usr/include/gtk-3.0/gdk/gdktypes.h`) but still exposed, so I +hardcoded their values: + + #define _GTK_BUTTON_PREV_MASK (1 << 15) /* button 9 */ + #define _GTK_BUTTON_NEXT_MASK (1 << 16) /* button 8 */ +--- + src/channel-inputs.c | 12 ++++++++++++ + src/spice-widget.c | 16 ++++++++++++++++ + 2 files changed, 28 insertions(+) + +diff --git a/src/channel-inputs.c b/src/channel-inputs.c +index 5e6c7b4a..293344ed 100644 +--- a/src/channel-inputs.c ++++ b/src/channel-inputs.c +@@ -426,6 +426,12 @@ void spice_inputs_channel_button_press(SpiceInputsChannel *channel, gint button, + case SPICE_MOUSE_BUTTON_RIGHT: + button_state |= SPICE_MOUSE_BUTTON_MASK_RIGHT; + break; ++ case SPICE_MOUSE_BUTTON_SIDE: ++ button_state |= SPICE_MOUSE_BUTTON_MASK_SIDE; ++ break; ++ case SPICE_MOUSE_BUTTON_EXTRA: ++ button_state |= SPICE_MOUSE_BUTTON_MASK_EXTRA; ++ break; + } + + c->bs = button_state; +@@ -491,6 +497,12 @@ void spice_inputs_channel_button_release(SpiceInputsChannel *channel, gint butto + case SPICE_MOUSE_BUTTON_RIGHT: + button_state &= ~SPICE_MOUSE_BUTTON_MASK_RIGHT; + break; ++ case SPICE_MOUSE_BUTTON_SIDE: ++ button_state &= ~SPICE_MOUSE_BUTTON_MASK_SIDE; ++ break; ++ case SPICE_MOUSE_BUTTON_EXTRA: ++ button_state &= ~SPICE_MOUSE_BUTTON_MASK_EXTRA; ++ break; + } + + c->bs = button_state; +diff --git a/src/spice-widget.c b/src/spice-widget.c +index 5cef966b..85d0f4db 100644 +--- a/src/spice-widget.c ++++ b/src/spice-widget.c +@@ -1997,6 +1997,10 @@ static int button_gdk_to_spice(guint gdk) + [ 3 ] = SPICE_MOUSE_BUTTON_RIGHT, + [ 4 ] = SPICE_MOUSE_BUTTON_UP, + [ 5 ] = SPICE_MOUSE_BUTTON_DOWN, ++ [ 6 ] = 0, ++ [ 7 ] = 0, ++ [ 8 ] = SPICE_MOUSE_BUTTON_EXTRA, ++ [ 9 ] = SPICE_MOUSE_BUTTON_SIDE, + }; + + if (gdk < SPICE_N_ELEMENTS(map)) { +@@ -2011,6 +2015,10 @@ static int button_gdk_to_spice_mask(guint gdk) + [1] = SPICE_MOUSE_BUTTON_MASK_LEFT, + [2] = SPICE_MOUSE_BUTTON_MASK_MIDDLE, + [3] = SPICE_MOUSE_BUTTON_MASK_RIGHT, ++ [6] = 0, ++ [7] = 0, ++ [8] = SPICE_MOUSE_BUTTON_EXTRA, ++ [9] = SPICE_MOUSE_BUTTON_SIDE, + }; + + if (gdk < SPICE_N_ELEMENTS(map)) { +@@ -2029,6 +2037,14 @@ static int button_mask_gdk_to_spice(int gdk) + spice |= SPICE_MOUSE_BUTTON_MASK_MIDDLE; + if (gdk & GDK_BUTTON3_MASK) + spice |= SPICE_MOUSE_BUTTON_MASK_RIGHT; ++ /* Mouse buttons above 5 are not defined by GDK */ ++#define _GTK_BUTTON_PREV_MASK (1 << 15) /* button 9 */ ++#define _GTK_BUTTON_NEXT_MASK (1 << 16) /* button 8 */ ++ if (gdk & _GTK_BUTTON_PREV_MASK) ++ spice |= SPICE_MOUSE_BUTTON_MASK_EXTRA; ++ if (gdk & _GTK_BUTTON_NEXT_MASK) ++ spice |= SPICE_MOUSE_BUTTON_MASK_SIDE; ++ + return spice; + } + +-- +GitLab + diff --git a/spice-gtk.install b/spice-gtk.install new file mode 100644 index 000000000000..f788c95b5e48 --- /dev/null +++ b/spice-gtk.install @@ -0,0 +1,8 @@ +post_install() { +# this is executed by make install, but doesn't work since setcap can only be run as root + setcap CAP_FOWNER=+ep /usr/lib/spice-client-glib-usb-acl-helper +} + +post_upgrade() { + post_install +} |