DEV Community

Cover image for Multitouch Gestures no Ubuntu com fusuma
Kazuki Yokoyama
Kazuki Yokoyama

Posted on

Multitouch Gestures no Ubuntu com fusuma

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, 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
Enter fullscreen mode Exit fullscreen mode
  • Instalar o libinput (>=1.0):
$ sudo apt-get install libinput-tools
Enter fullscreen mode Exit fullscreen mode
  • O projeto é feito em Ruby, então é necessário instalar o Ruby, se ainda não estiver instalado:
$ sudo apt-get install ruby
Enter fullscreen mode Exit fullscreen mode
  • Instalar o fusuma como uma gem:
$ sudo gem install fusuma
Enter fullscreen mode Exit fullscreen mode
  • Instalar o xdotool:
$ sudo apt-get install xdotool
Enter fullscreen mode Exit fullscreen mode
  • Criar o arquivo de configuração do fusuma:
$ mkdir ~/.config/fusuma
$ cd ~/.config/fusuma
$ vim config.yml
Enter fullscreen mode Exit fullscreen mode

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:
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
Enter fullscreen mode Exit fullscreen mode

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.

  • 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
Enter fullscreen mode Exit fullscreen mode
  • 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

E é isso!

Referências

Discussion (0)