|
|
|
@ -0,0 +1,194 @@
|
|
|
|
|
# Configuration file for libinput-gestures.
|
|
|
|
|
# Mark Blakeney, Sep 2015
|
|
|
|
|
#
|
|
|
|
|
# The default configuration file exists at /etc/libinput-gestures.conf
|
|
|
|
|
# but a user can create a personal custom configuration file at
|
|
|
|
|
# ~/.config/libinput-gestures.conf.
|
|
|
|
|
#
|
|
|
|
|
# Lines starting with '#' and blank lines are ignored. Currently
|
|
|
|
|
# "gesture" and "device" configuration keywords are supported as
|
|
|
|
|
# described below. The keyword can optionally be appended with a ":" (to
|
|
|
|
|
# maintain compatibility with original format configuration files).
|
|
|
|
|
#
|
|
|
|
|
# Each gesture line has 3 [or 4] arguments separated by whitespace:
|
|
|
|
|
#
|
|
|
|
|
# action motion [finger_count] command
|
|
|
|
|
#
|
|
|
|
|
# where action and motion is either:
|
|
|
|
|
# swipe up
|
|
|
|
|
# swipe down
|
|
|
|
|
# swipe left
|
|
|
|
|
# swipe right
|
|
|
|
|
# swipe left_up
|
|
|
|
|
# swipe left_down
|
|
|
|
|
# swipe right_up
|
|
|
|
|
# swipe right_down
|
|
|
|
|
# pinch in
|
|
|
|
|
# pinch out
|
|
|
|
|
# pinch clockwise
|
|
|
|
|
# pinch anticlockwise
|
|
|
|
|
#
|
|
|
|
|
# command is the remainder of the line and is any valid shell command +
|
|
|
|
|
# arguments.
|
|
|
|
|
#
|
|
|
|
|
# finger_count is a single numeric digit and is optional (and is
|
|
|
|
|
# typically 3 or 4). If specified then the command is executed when
|
|
|
|
|
# exactly that number of fingers is used in the gesture. If not
|
|
|
|
|
# specified then the command is executed when that gesture is executed
|
|
|
|
|
# with any number of fingers. Gesture lines specified with finger_count
|
|
|
|
|
# have priority over the same gesture specified without any
|
|
|
|
|
# finger_count.
|
|
|
|
|
#
|
|
|
|
|
# Typically command will be _internal, or xdotool. See "man xdotool" for
|
|
|
|
|
# the many things you can action with that tool. Note that unfortunately
|
|
|
|
|
# xdotool does not work with native Wayland clients.
|
|
|
|
|
|
|
|
|
|
###############################################################################
|
|
|
|
|
# SWIPE GESTURES:
|
|
|
|
|
###############################################################################
|
|
|
|
|
|
|
|
|
|
# Note the default is an "internal" command that uses wmctrl to switch
|
|
|
|
|
# workspaces and, unlike xdotool, works on both Xorg and Wayland (via
|
|
|
|
|
# XWayland). It also can be configured for vertical and horizontal
|
|
|
|
|
# switching over tabular workspaces, as per the example below. You can
|
|
|
|
|
# also add "-w" to the internal command to allow wrapping workspaces.
|
|
|
|
|
# Ensure you install wmctrl if you use _internal.
|
|
|
|
|
|
|
|
|
|
# Move to next workspace (works for GNOME/KDE/etc on Wayland and Xorg)
|
|
|
|
|
# gesture swipe up _internal ws_up
|
|
|
|
|
|
|
|
|
|
# NOTE ABOUT FINGER COUNT:
|
|
|
|
|
# The above command will configure this command for all fingers (i.e. 3
|
|
|
|
|
# for 4) but to configure it for 3 fingers only, change it to:
|
|
|
|
|
# gesture swipe up 3 _internal ws_up
|
|
|
|
|
# Then you can configure something else for 4 fingers or leave 4 fingers
|
|
|
|
|
# unconfigured. You can configure an explicit finger count like this for
|
|
|
|
|
# all example commands in this configuration file.
|
|
|
|
|
#
|
|
|
|
|
# gesture swipe up xdotool key super+Page_Down
|
|
|
|
|
|
|
|
|
|
# Move to prev workspace (works for GNOME/KDE/etc on Wayland and Xorg)
|
|
|
|
|
# gesture swipe down _internal ws_down
|
|
|
|
|
# gesture swipe down xdotool key super+Page_Up
|
|
|
|
|
|
|
|
|
|
# Browser go forward (works only for Xorg, and Xwayland clients)
|
|
|
|
|
gesture swipe left swaymsg workspace next
|
|
|
|
|
|
|
|
|
|
# Browser go back (works only for Xorg, and Xwayland clients)
|
|
|
|
|
gesture swipe right swaymsg workspace prev
|
|
|
|
|
|
|
|
|
|
# NOTE: If you don't use "natural" scrolling direction for your touchpad
|
|
|
|
|
# then you may want to swap the above default left/right and up/down
|
|
|
|
|
# configurations.
|
|
|
|
|
|
|
|
|
|
# Optional extended swipe gestures, e.g. for browser tab navigation:
|
|
|
|
|
#
|
|
|
|
|
# Jump to next open browser tab
|
|
|
|
|
# gesture swipe right_up xdotool key control+Tab
|
|
|
|
|
#
|
|
|
|
|
# Jump to previous open browser tab
|
|
|
|
|
# gesture swipe left_up xdotool key control+shift+Tab
|
|
|
|
|
#
|
|
|
|
|
# Close current browser tab
|
|
|
|
|
# gesture swipe left_down xdotool key control+w
|
|
|
|
|
#
|
|
|
|
|
# Reopen and jump to last closed browser tab
|
|
|
|
|
# gesture swipe right_down xdotool key control+shift+t
|
|
|
|
|
|
|
|
|
|
# Example of 8 static workspaces, e.g. using KDE virtual-desktops,
|
|
|
|
|
# arranged in 2 rows of 4 columns across using swipe up/down/left/right
|
|
|
|
|
# to navigate in fixed planes. You can also add the "-w/--wrap" option
|
|
|
|
|
# to allow wrapping in any direction. You must configure your virtual
|
|
|
|
|
# desktops with the same column dimension.
|
|
|
|
|
# gesture swipe up _internal --cols 4 ws_up
|
|
|
|
|
# gesture swipe down _internal --cols 4 ws_down
|
|
|
|
|
# gesture swipe left _internal --cols 4 ws_left
|
|
|
|
|
# gesture swipe right _internal --cols 4 ws_right
|
|
|
|
|
#
|
|
|
|
|
# Example of 16 static workspaces, e.g. using KDE virtual-desktops,
|
|
|
|
|
# arranged in 4 rows of 4 columns across using swipe up/down/left/right
|
|
|
|
|
# to navigate in fixed planes, and also using swipe
|
|
|
|
|
# left_up/left_down/right_up/right_down to navigate diagonally. You can
|
|
|
|
|
# also add the "-w/--wrap" option to allow wrapping in any direction
|
|
|
|
|
# and/or diagonally. You must configure your virtual desktops with the
|
|
|
|
|
# same column dimension.
|
|
|
|
|
# gesture swipe up _internal --cols 4 ws_up
|
|
|
|
|
# gesture swipe down _internal --cols 4 ws_down
|
|
|
|
|
# gesture swipe left _internal --cols 4 ws_left
|
|
|
|
|
# gesture swipe right _internal --cols 4 ws_right
|
|
|
|
|
# gesture swipe left_up _internal --cols 4 ws_left_up
|
|
|
|
|
# gesture swipe left_down _internal --cols 4 ws_left_down
|
|
|
|
|
# gesture swipe right_up _internal --cols 4 ws_right_up
|
|
|
|
|
# gesture swipe right_down _internal --cols 4 ws_right_down
|
|
|
|
|
|
|
|
|
|
# Example virtual desktop switching for Ubuntu Unity/Compiz. The
|
|
|
|
|
# _internal command does not work for Compiz but you can explicitly
|
|
|
|
|
# configure the swipe commands to work for a Compiz virtual 2
|
|
|
|
|
# dimensional desktop as follows:
|
|
|
|
|
# gesture swipe up xdotool key ctrl+alt+Up
|
|
|
|
|
# gesture swipe down xdotool key ctrl+alt+Down
|
|
|
|
|
# gesture swipe left xdotool key ctrl+alt+Left
|
|
|
|
|
# gesture swipe right xdotool key ctrl+alt+Right
|
|
|
|
|
|
|
|
|
|
# Example to change audio volume:
|
|
|
|
|
# Note this only works on an Xorg desktop (not Wayland).
|
|
|
|
|
# gesture swipe up xdotool key XF86AudioRaiseVolume
|
|
|
|
|
# gesture swipe down xdotool key XF86AudioLowerVolume
|
|
|
|
|
|
|
|
|
|
###############################################################################
|
|
|
|
|
# PINCH GESTURES:
|
|
|
|
|
###############################################################################
|
|
|
|
|
|
|
|
|
|
# GNOME SHELL open/close overview (works for GNOME on Xorg only)
|
|
|
|
|
# gesture pinch in xdotool key super+s
|
|
|
|
|
# gesture pinch out xdotool key super+s
|
|
|
|
|
|
|
|
|
|
# KDE Plasma open/close overview
|
|
|
|
|
# gesture pinch in xdotool key ctrl+F9
|
|
|
|
|
# gesture pinch out xdotool key ctrl+F9
|
|
|
|
|
|
|
|
|
|
# GNOME SHELL open/close overview (works for GNOME on Wayland and Xorg)
|
|
|
|
|
# Note since GNOME 3.24 on Wayland this is implemented natively so no
|
|
|
|
|
# real point configuring for Wayland.
|
|
|
|
|
# gesture pinch in dbus-send --session --type=method_call --dest=org.gnome.Shell /org/gnome/Shell org.gnome.Shell.Eval string:'Main.overview.toggle();'
|
|
|
|
|
# gesture pinch out dbus-send --session --type=method_call --dest=org.gnome.Shell /org/gnome/Shell org.gnome.Shell.Eval string:'Main.overview.toggle();'
|
|
|
|
|
|
|
|
|
|
# Optional extended pinch gestures:
|
|
|
|
|
# gesture pinch clockwise <whatever command>
|
|
|
|
|
# gesture pinch anticlockwise <whatever command>
|
|
|
|
|
|
|
|
|
|
###############################################################################
|
|
|
|
|
# This application normally determines your touchpad device
|
|
|
|
|
# automatically. Some users may have multiple touchpads but by default
|
|
|
|
|
# we use only the first one found. However, you can choose to specify
|
|
|
|
|
# the explicit device name to use. Run "libinput list-devices" to work
|
|
|
|
|
# out the name of your device (from the "Device:" field). Then add a
|
|
|
|
|
# device line specifying that name, e.g:
|
|
|
|
|
#
|
|
|
|
|
# device DLL0665:01 06CB:76AD Touchpad
|
|
|
|
|
#
|
|
|
|
|
# If the device name starts with a '/' then it is instead considered as
|
|
|
|
|
# the explicit device path although since device paths can change
|
|
|
|
|
# through reboots this is best to be a symlink. E.g. instead of specifying
|
|
|
|
|
# /dev/input/event12, you should use the corresponding full path link
|
|
|
|
|
# under /dev/input/by-path/ or /dev/input/by-id/.
|
|
|
|
|
#
|
|
|
|
|
# You can choose to use ALL touchpad devices by setting the device name
|
|
|
|
|
# to "all". E.g. Do this if you have multiple touchpads which you want
|
|
|
|
|
# to use in parallel. This reduces performance slightly so only set this
|
|
|
|
|
# if you have to.
|
|
|
|
|
#
|
|
|
|
|
# device all
|
|
|
|
|
|
|
|
|
|
###############################################################################
|
|
|
|
|
# You can set a minimum travel distance threshold before swipe gestures
|
|
|
|
|
# are actioned using the swipe_threshold configuration command.
|
|
|
|
|
# Specify this value in dots. The default is 0.
|
|
|
|
|
# E.g. set it to 100 dots with "swipe_threshold 100".
|
|
|
|
|
# swipe_threshold 0
|
|
|
|
|
|
|
|
|
|
###############################################################################
|
|
|
|
|
# You can set a timeout on gestures from start to end. The default is
|
|
|
|
|
# the value commented below. It can be any value in float secs >= 0.
|
|
|
|
|
# 0 = no timeout. E.g. set it to 2 secs with "timeout 2".
|
|
|
|
|
# timeout 1.5
|