# Fusuma [![Gem Version](https://badge.fury.io/rb/fusuma.svg)](https://badge.fury.io/rb/fusuma) [![Build Status](https://travis-ci.org/iberianpig/fusuma.svg?branch=master)](https://travis-ci.org/iberianpig/fusuma) Fusuma is multitouch gesture recognizer. This gem makes your linux PC able to recognize swipes or pinchs and assign commands to them. [![https://gyazo.com/757fef526310b9d68f68e80eb1e4540f](https://i.gyazo.com/757fef526310b9d68f68e80eb1e4540f.png)](https://gyazo.com/757fef526310b9d68f68e80eb1e4540f) 襖(Fusuma) means sliding door used to partition off rooms in a Japanese house. ## Installation IMPORTANT: You must be a member of the _input_ group to have permission to read the touchpad device: $ sudo gpasswd -a $USER input **You must log out and back in or restart** to assign this group. You need libinput release 1.0 or later. Install libinput-tools: $ sudo apt-get install libinput-tools For sending shortcuts(optional): $ sudo apt-get install xdotool Install Fusuma: $ gem install fusuma ### Touchpad not working in GNOME Ensure the touchpad events are being sent to the GNOME desktop by running the following command: $ gsettings set org.gnome.desktop.peripherals.touchpad send-events enabled ## Usage $ fusuma ## Update $ gem update fusuma ## Customize You can customize the settings for gestures to put and edit `~/.config/fusuma/config.yml`. *NOTE*: You will need to create the `~/.config/fusuma` directory if it doesn't exist yet. ### `Command: ` property On fusuma version 1.0 `Command: ` property is available! You can assign any command each gestures. **`shortcut: ` property is deprecated**, **it will be removed on fusuma version 1.0**. You need to replace to `command: ` property. #### before ```yaml swipe: 3: left: shortcut: 'alt+Left' right: shortcut: 'alt+Right' ``` #### after ```yaml swipe: 3: left: command: 'xdotool key alt+Left' right: command: 'xdotool key alt+Right' ``` ### Sample (default keymap for Elementary OS) ```yaml swipe: 3: left: command: 'xdotool key alt+Left' right: command: 'xdotool key alt+Right' up: command: 'xdotool key ctrl+t' down: command: 'xdotool key ctrl+w' 4: left: command: 'xdotool key super+Left' right: command: 'xdotool key super+Right' up: command: 'xdotool key super+a' down: command: 'xdotool key super+s' pinch: in: command: 'xdotool key ctrl+plus' out: command: 'xdotool key ctrl+minus' threshold: swipe: 1 pinch: 1 interval: swipe: 1 pinch: 1 ``` if `command: ` properties are blank, the swipe/pinch doesn't trigger command. `threshold:` is sensitivity to swipe/pinch. Default value is 1. If the swipe's threshold is `0.5`, shorten swipe-length by half. `interval:` is delay between swipes/pinches. Default value is 1. If the swipe's interval is `0.5`, shorten swipe-interval by half to recognize a next swipe. ## Options * `-v`, `--verbose` : Shows details about the results of running fusuma * `-c`, `--config=path/to/file` : Use an alternative config file ## Contributing Bug reports and pull requests are welcome on GitHub at https://github.com/iberianpig/fusuma. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct. ## License The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).