Baike.dev
All toolsAI codingTrendingOpen sourceNewsSubmit
Log in
< Back to tools
T

touchegg

> 编程语言
Open source

Linux multi-touch gesture recognizer

4.1K stars0 likes0 views
WebsiteGitHub

About

Linux multi-touch gesture recognizer

**Follow Touchégg on...** [](https://twitter.com/Jose__Exposito) # Touchégg Touchégg is an app that runs in the background and transform the gestures you make on your touchpad or touchscreen into visible actions in your desktop. For example, you can swipe up with 3 fingers to maximize a window or swipe left with 4 finger to switch to the next desktop. Many more actions and gestures are available and everything is easily configurable.

:movie_camera: Ubuntu demo
:movie_camera: elementary OS demo
:movie_camera: Touchscreen demo

# Table of contents * [Installation](#installation) * [Ubuntu, Debian and derivatives](#ubuntu-debian-and-derivatives) * [Fedora, CentOS, RHEL and derivatives](#fedora-centos-rhel-and-derivatives) * [Arch Linux, Manjaro and derivatives](#arch-linux-manjaro-and-derivatives) * [openSUSE](#opensuse) * [Alpine Linux](#alpine-linux) * [Void Linux](#void-linux) * [NixOS](#nixos) * [GNOME](#gnome) * [Configuration](#configuration) * [Using Touché](#using-touché) * [Manual configuration](#manual-configuration) * [Global settings](#global-settings) * [Available gestures](#available-gestures) * [Swipe](#swipe) * [Pinch](#pinch) * [Tap](#tap) * [Available actions](#available-actions) * [Maximize or restore a window](#maximize-or-restore-a-window-maximize_restore_window) * [Minimize a window](#minimize-a-window-minimize_window) * [Tile/snap a window](#tilesnap-a-window-tile_window) * [Fullscreen a window](#fullscreen-a-window-fullscreen_window) * [Close a window](#close-a-window-close_window) * [Switch desktops/workspaces](#switch-desktopsworkspaces-change_desktop) * [Show desktop](#show-desktop-show_desktop) * [Keyboard shortcut](#keyboard-shortcut-send_keys) * [Execute a command](#execute-a-command-run_command) * [Mouse click](#mouse-click-mouse_click) * [Custom animations](#custom-animations) * [Daemon configuration](#daemon-configuration) * [FAQ](#faq) * [Copyright](#copyright) # Installation On the [releases](https://github.com/JoseExposito/touchegg/releases) page you will find a package for your distribution. Otherwise you can compile the source code yourself by following the instructions available in the [HACKING.md](HACKING.md) file. ## Ubuntu, Debian and derivatives On Ubuntu, it is recommended to use the [official PPA](https://launchpad.net/~touchegg/+archive/ubuntu/stable) to install Touchégg and receive updates: ```bash $ sudo add-apt-repository ppa:touchegg/stable $ sudo apt update $ sudo apt install touchegg ``` Running `add-apt-repository` may fail because of temporary server issues; try again a few times, it should work. The PPA is signed with key [7EA12677D47B593CE22727D4C0FCE32AF6B96252](https://keyserver.ubuntu.com/pks/lookup?search=7EA12677D47B593CE22727D4C0FCE32AF6B96252&hash=on&exact=on&op=index) in case you want to install it manually. If PPAs are not available on your operating system, [download](https://github.com/JoseExposito/touchegg/releases) the `.deb` package and install it. Double click on the package may work, otherwise install it from the terminal: ```bash $ cd ~/Downloads # Or to the path where the deb package is placed at $ sudo apt-get install ./touchegg_*.deb # Install the package ``` Run Touchégg manually by running the command `touchegg` or reboot to get started. Included by default on elementary OS 6, Zorin OS 16, Pop!\_OS 21.04+ and Linux Mint 21.2 ## Fedora, CentOS, RHEL and derivatives On Fedora, Touchegg is available in the [official repository](https://src.fedoraproject.org/rpms/touchegg): ```bash $ dnf install touchegg # You may also need to manually start the service $ sudo systemctl start touchegg $ sudo systemctl enable touchegg ``` On CentOS (EPEL) it is recommended to use the [official COPR](https://copr.fedorainfracloud.org/coprs/joseexposito/touchegg/) to install Touchégg and receive updates. ```bash $ sudo dnf copr enable joseexposito/touchegg $ sudo dnf install touchegg ``` On other RPM based operating systems, [download](https://github.com/JoseExposito/touchegg/releases) the `.rpm` package and install it. Double click on the package may work, otherwise install it from the terminal: ```bash $ cd ~/Downloads # Or to the path where the rpm package is placed at $ sudo dnf install touchegg-*.rpm # Install the package ``` Run Touchégg manually by running the command `touchegg` or reboot to get started. ## Arch Linux, Manjaro and derivatives Install the `touchegg` package from [Arch Linux Packages Registry](https://archlinux.org/packages/extra/x86_64/touchegg/). Notice that on Arch services are not enabled or started by default, so you'll have to do it manually: ```bash $ sudo systemctl enable touchegg.service $ sudo systemctl start touchegg ``` Once the service is enabled, run Touchégg manually by running the command `touchegg` or reboot to get started. A version for Arch based distributions without systemd support, like Artix, is also available on [AUR](https://aur.archlinux.org/packages/touchegg-nosystemd/) ## openSUSE Touchégg is available in the [official repositories](https://software.opensuse.org/package/touchegg). ```bash $ sudo zypper install touchegg $ sudo systemctl enable touchegg.service $ sudo systemctl start touchegg ``` If the version of Touchégg included for your distro is too old (v1.x) it is recommended to use the [official COPR](https://copr.fedorainfracloud.org/coprs/joseexposito/touchegg/) to install Touchégg and receive updates. ## Alpine Linux Uncomment the url for the testing repository in /etc/apk/repositories, then install: ```bash $ sudo apk update $ sudo apk add touchegg ``` The Touchégg package includes an Openrc init script for starting the Touchégg daemon at boot. To enable: ```bash $ sudo rc-update add touchegg ``` The init script can also be used to manually start and stop the Touchégg daemon as required: ```bash $ sudo rc-service touchegg start $ sudo rc-service touchegg stop ``` ## Void Linux Touchégg is available from the main repository. To use it, you have to enable its service after installing. ```bash $ sudo xbps-install touchegg $ sudo ln -s /etc/sv/touchegg /var/service ``` ## NixOS Add the `touchegg` package in your `configuration.nix` file and enable the services. ``` # configuration.nix ... environment.systemPackages = with pkgs; [ touchegg ]; services.touchegg.enable = true; ... ``` ## GNOME If you are using the GNOME Desktop Environment it is recommended to also install this extension: https://github.com/JoseExposito/gnome-shell-extension-x11gestures Both Touchégg and the extension need to installed, so don't forget to follow the install instructions for your distro! # Configuration After [installing](#installation) Touchégg you'll notice that you can start using multi-touch gestures. However, you are not forced to use the gestures and actions that come out of the box, you can configure the gestures you'd like to use and the actions they'll trigger. ## Using Touché [Touché](https://github.com/JoseExposito/touche) is a desktop application to easily configure your touchpad and touchscreen multi-touch gestures. Follow the instructions on [the project page](https://github.com/JoseExposito/touche) to install it. ## Manual configuration [Touché](https://github.com/JoseExposito/touche) is the recommended way of configuring your gestures. However, you can also manually configure Touchégg by editing an XML file. Start by copying the default configuration from `/usr/share/touchegg/touchegg.conf` to `~/.config/touchegg/touchegg.conf`. You can do it using your file manager or by running this command in your terminal: ```bash $ mkdir -p ~/.config/touchegg && cp -n /usr/share/touchegg/touchegg.conf ~/.config/touchegg/touchegg.conf ``` Now open `~/.config/touchegg/touchegg.conf` with your favorite text editor. It is a XML document with 3 main sections: * [Global settings](#global-settings) * Global gestures: `...` * Application specific gestures: `` The application name can be obtained by running this command and clicking on the target application window: ```bash $ xprop | grep WM_CLASS ``` Find more information in the sections below. ## Global settings | Option | Value | Default | Description | Example | - | - | - | - | - | | animation_delay | Number | 150 | Delay, in milliseconds, since the gesture starts before the animation is displayed | Use the MAXIMIZE_RESTORE_WINDOW action. You will notice that no animation is displayed if you complete the action quick enough. This property configures that time | | action_execute_threshold | Number | 20 | Percentage of the gesture to be completed to apply the action. Set to 0 to execute actions unconditionally | Use the MAXIMIZE_RESTORE_WINDOW action. You will notice that, even if the animation is displayed, the action is not executed if you did not move your fingers far enough. This property configures the percentage of the gesture that must be reached to execute the action | | color | Hex color | 3E9FED | Color of the animation | `#909090` | borderColor | Hex color | 3E9FED | Color of the animation | `FFFFFF` ## Available gestures ### Swipe From [libinput documentation](https://wayland.freedesktop.org/libinput/doc/latest/gestures.html#swipe-gestures): Swipe gestures are executed when three or more fingers are moved synchronously in the same direction. Note that **three** is the minimum number of fingers that Touchégg allows for swipe gestures on touchpads and **two** on touchscreens. Example: ```xml true ``` ### Pinch From [libinput documentation](https://wayland.freedesktop.org/libinput/doc/latest/gestures.html#pinch-gestures): Pinch gestures are executed when two or more fingers are located on the touchpad and are either changing the relative distance to each other (pinching) or are changing the relative angle (rotate). Example: ```xml true F84A53 F84A53 ``` ### Tap Tap gestures are executed when two or more fingers "click" on the touchscreen. **Only available on touchscreens** Example: ```xml 3 begin ``` ## Available actions ### Maximize or restore a window (MAXIMIZE_RESTORE_WINDOW) Maximize the window under the pointer. If it is already maximized, restore it. Options: | Option | Value | Description | | - | - | - | | animate | `true`/`false` | Set it to `true` to display the animation. `false` otherwise. | | color | Hex color | Color of the animation. For example: `909090` | | borderColor | Hex color | Border color of the animation. For example: `#FFFFFF` | Example: ```xml true 3E9FED 3E9FED ``` ### Minimize a window (MINIMIZE_WINDOW) Minimize the window under the pointer. Options: | Option | Value | Description | | - | - | - | | animate | `true`/`false` | Set it to `true` to display the animation. `false` otherwise. | | color | Hex color | Color of the animation. For

GitHub Issues· 0 open

View all on GitHub

No open issues yet, or sync has not completed.

Highlights

  • •Installation
  • •Ubuntu, Debian and derivatives
  • •Fedora, CentOS, RHEL and derivatives
  • •Arch Linux, Manjaro and derivatives
  • •openSUSE
  • •Alpine Linux
  • •Void Linux
  • •Configuration
  • •Using Touché
  • •Manual configuration

> Tags

C++gesture-recognitionlibinputlinuxmulti-touch

No comments yet. Be the first to share.

> Details

PublishedAug 1, 2026
UpdatedSep 17, 2026
Category编程语言
PricingOpen source

> Related tools

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言