Multitouch Gestures no Ubuntu com fusuma
Tags: ubuntu, fusuma, touchpad, gestures
Published: 2022-02-06 23:52:22

---
title: Multitouch Gestures no Ubuntu com fusuma
published: true
description: Configurando multitouch gestures no Ubuntu usando fusuma
tags: ubuntu, fusuma, touchpad, gestures
cover_image: https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fic3gqmsty5ww0hf1lcl.jpg
---

Ao trabalhar com duas máquinas diferentes, podemos ficar acostumados com atalhos de uma não presentes na outra. No meu caso, trabalhando com Mac e Ubuntu, senti muita falta das gestures do trackpad do Mac na minha máquina Linux. Por exemplo, ao deslizar três dedos para cima no Mac, acessa-se o Mission Control, mostrando todas as janelas abertas. E eu também queria ter esse tipo de controle no Ubuntu.

Para resolver isso, instalei e configurei o [fusuma](https://github.com/iberianpig/fusuma), um projeto open-source para habilitar multitouch gestures no Linux. O README do fusuma é bem completo, mas vou deixar aqui o meu passo a passo e configurações.

> Isso foi feito no Ubuntu 21.10 e fusuma v2.3.0.

* Adicionar seu usuário ao grupo `input` (sem precisar de logout):
```
$ sudo gpasswd -a $USER input
$ newgrp input
```

* Instalar o `libinput` (>=1.0):
```
$ sudo apt-get install libinput-tools
```

* O projeto é feito em Ruby, então é necessário instalar o Ruby, se ainda não estiver instalado:
```
$ sudo apt-get install ruby
```

* Instalar o fusuma como uma `gem`:
```
$ sudo gem install fusuma
```

* Instalar o `xdotool`:
```
$ sudo apt-get install xdotool
```

* Criar o arquivo de configuração do fusuma:
```
$ mkdir ~/.config/fusuma
$ cd ~/.config/fusuma
$ vim config.yml
```

> Aqui fica um alerta: o arquivo deve ser nomeado exatamente `config.yml`. Na primeira vez, achei que `config.yaml` também seria aceito (em muitos lugares é), mas não foi.

* Adicionar suas configurações no `config.yml`. As minhas ficaram da seguinte forma para emular um ambiente Mac:
```yaml
swipe:
  3: 
    left:
      command: 'xdotool key super+Page_Down'
    right:
      command: 'xdotool key super+Page_Up'
    up: 
      command: 'xdotool key super'
    down:
      command: 'xdotool key alt+Escape'
  4:
    left: 
      command: 'xdotool key shift+super+Page_Down'
    right: 
      command: 'xdotool key shift+super+Page_Up'
    up: 
      command: 'xdotool key shift+super+Left'
    down: 
      command: 'xdotool key shift+super+Right'
pinch:
  in:
    command: 'xdotool key ctrl+plus'
  out:
     command: 'xdotool key ctrl+minus'

threshold:
  swipe: 0.4
  pinch: 0.4

interval:
  swipe: 0.8
  pinch: 0.1
```

O que faz:

**3 dedos swipe left**: Vai para workspace da esquerda.
**3 dedos swipe right**: Vai para workspace da direita.
**3 dedos swipe up**: Mostra todas janelas (equivalente a `super+S`).
**3 dedos swipe down**: Troca para última janela aberta.

**4 dedos swipe left**: Move janela para workspace da direita (se achar, contra-intuitivo, só modificar).
**4 dedos swipe right**: Move janela para workspace da esquerda.
**4 dedos swipe up**: Move janela para monitor da direita.
**4 dedos swipe down**: Move janela para monitor da esquerda.

**pinch in (juntar os dedos como uma pinça)**: Zoom Out (tira o zoom).
**pinch out (afastar os dedos)**: Zoom In (aumenta o zoom).

> Se quiser saber como configurar alguma tecla específica, verifique [aqui](https://cgit.freedesktop.org/xorg/proto/x11proto/plain/keysymdef.h).

* Reiniciar a máquina. Sim, sem fazer isso, as permissões de leitura do input não eram atualizadas e o fusuma não funcionava no meu usuário, apesar de funcionar como root.

* Rodar o fusuma:
```
$ fusuma
```

* Adicionar fusuma à lista de aplicações que rodam durante startup:
  * `super+A` para abrir a busca por aplicações.
  * `Startup Applications Preferences`
  * Adicione o fusuma como no screenshot:
![fusuma on startup applications preferences](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yfslxnhaqlwyhk14ndcn.png)

E é isso!

### Referências

* [Fusuma](https://github.com/iberianpig/fusuma)
* [How to map three finger swipe up to view all open windows](https://askubuntu.com/questions/1036165/how-to-map-three-finger-swipe-up-to-view-all-open-windows)
* [Outra resposta no askubuntu](https://askubuntu.com/a/1044184/846886)
* [Código com os aliases das teclas](https://cgit.freedesktop.org/xorg/proto/x11proto/plain/keysymdef.h)