This action will force synchronization from mirrors_iberianpig/fusuma, which will overwrite any changes that you have made since you forked the repository, and can not be recovered!!!
Synchronous operation will process in the background and will refresh the page when finishing processing. Please be patient.
Fusuma is multitouch gesture recognizer. This gem makes your linux able to recognize swipes or pinchs and assign commands to them.
襖(Fusuma) means sliding door used to partition off rooms in a Japanese house.
IMPORTANT: You MUST be a member of the INPUT group to read touchpad by Fusuma.
sudo gpasswd -a $USER input
Then, You apply the change with no logout or reboot.
newgrp input
You need libinput
release 1.0 or later.
sudo apt-get install libinput-tools
Fusuma runs in Ruby, so you must install it first.
sudo apt-get install ruby
sudo gem install fusuma
For sending shortcuts:
sudo apt-get install xdotool
You need libinput
release 1.0 or later. This is most probably installed by default on Manjaro
sudo pacman -S libinput
Fusuma runs in Ruby, so you must install it first.
sudo pacman -S ruby
Note: By default in Arch Linux, when running gem
, gems are installed per-user (into ~/.gem/ruby/
), instead of system-wide (into /usr/lib/ruby/gems/
). This is considered the best way to manage gems on Arch, because otherwise they might interfere with gems installed by Pacman. (From Arch Wiki)
To install gems system-wide, see any of the methods listed on Arch Wiki
sudo gem install fusuma
For sending shortcuts:
sudo pacman -S xdotool
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
fusuma
sudo gem update fusuma
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.
mkdir -p ~/.config/fusuma # create config directory
nano ~/.config/fusuma/config.yml # edit config file.
3:
, 4:
fingersleft:
, right:
, up:
, down:
directionsbegin:
, update:
, end:
events2:
, 3:
, 4:
fingersin:
, out:
directionsbegin:
, update:
, end:
events2:
, 3:
, 4:
fingersclockwise:
,counterclockwise:
directionsbegin:
, update:
, end:
events1:
, 2:
, 3:
, 4:
fingersbegin:
, end:
, cancelled:
events#
character.https://github.com/iberianpig/fusuma/wiki/Ubuntu
swipe:
3:
left:
command: "xdotool key alt+Right" # History forward
right:
command: "xdotool key alt+Left" # History back
up:
command: "xdotool key super" # Activity
down:
command: "xdotool key super" # Activity
4:
left:
command: "xdotool key ctrl+alt+Down" # Switch to next workspace
right:
command: "xdotool key ctrl+alt+Up" # Switch to previous workspace
up:
command: "xdotool key ctrl+alt+Down" # Switch to next workspace
down:
command: "xdotool key ctrl+alt+Up" # Switch to previous workspace
pinch:
in:
command: "xdotool keydown ctrl click 4 keyup ctrl" # Zoom in
out:
command: "xdotool keydown ctrl click 5 keyup ctrl" # Zoom out
hold:
4:
command: "xdotool key super" # Activity
The following wiki pages can be edited by everyone.
If you have a nice configuration, please share ~/.config/fusuma/config.yml
with everyone.
if command:
properties are blank, the swipe/pinch/hold doesn't execute command.
threshold:
is sensitivity to swipe/pinch/hold. Default value is 1.
If the swipe's threshold is 0.5
, shorten swipe-length by half.
interval:
is delay between swipes/pinches/hold. Default value is 1.
If the swipe's interval is 0.5
, shorten swipe-interval by half to recognize a next swipe.
threshold:
/ interval:
settingsswipe:
3:
left:
command: 'xdotool key alt+Right' # threshold: 0.5, interval: 0.75
threshold: 0.5
right:
command: 'xdotool key alt+Left' # threshold: 0.5, interval: 0.75
threshold: 0.5
up:
command: 'xdotool key super' # threshold: 1, interval: 0.75
down:
command: 'xdotool key super' # threshold: 1, interval: 0.75
pinch:
2:
in:
command: "xdotool keydown ctrl click 4 keyup ctrl" # threshold: 0.5, interval: 0.5
out:
command: "xdotool keydown ctrl click 5 keyup ctrl" # threshold: 0.5, interval: 0.5
threshold:
pinch: 0.5
interval:
swipe: 0.75
pinch: 0.5
There are three priorities of threshold:
and interval:
.
The individual threshold:
and interval:
settings (under "direction") have a higher priority than the global one (under "root")
command:
property for assigning commandsOn fusuma version 0.4 command:
property is available!
You can assign any command each gestures.
shortcut:
property is deprecated, it was removed on fusuma version 1.0.
You need to replace to command:
property.
swipe:
3:
left:
- shortcut: 'alt+Left'
+ command: 'xdotool key alt+Left'
right:
- shortcut: 'alt+Right'
+ command: 'xdotool key alt+Right'
NOTE: xdotool has some issues
xte
sudo apt install xautomation
xdotool
with ydotool
in fusuma conf.-c
, --config=path/to/file
: Use an alternative config file-d
, --daemon
: Daemonize process-l
, --list-devices
: List available devices-v
, --verbose
: Show details about the results of running fusuma--version
: Show fusuma version--log-file=path/to/file
: Set path of log fileSet the following options to recognize multi-touch gestures only for the specified touchpad device.
plugin:
filters:
libinput_device_filter:
keep_device_names:
- "BUILT-IN TOUCHPAD NAME"
- "EXTERNAL TOUCHPAD NAME"
which fusuma
gnome-session-properties
-d
option at the end of the command input fieldFollowing features are provided as plugins.
Fusuma plugins are provided with the fusuma-plugin-XXXXX
naming convention and hosted on RubyGems.
Name | Version | About |
---|---|---|
fusuma-plugin-sendkey | Emulates keyboard events | |
fusuma-plugin-wmctrl | Manages Window and Workspace | |
fusuma-plugin-keypress | Detects gestures while pressing multiple keys | |
fusuma-plugin-tap | Detects Tap and Hold gestures | |
fusuma-plugin-appmatcher | Configure app-specific gestures |
# install fusuma-plugin-XXXX
sudo gem install fusuma-plugin-XXXXX`
# update
sudo gem list fusuma-plugin- | cut -d' ' -f1 | xargs --no-run-if-empty sudo gem update
Multitouch Touchpad Gestures in Linux with Fusuma by Eric Adams
I'm a Freelance Engineer in Japan and working on these products after finishing my regular work or on my holidays. Currently, my open-source contribution times is not enough. If you like my work and want to contribute and become a sponsor, I will be able to focus on my projects.
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 code of conduct.
The gem is available as open source under the terms of the MIT License.
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。