# Configuration file for libinput-gestures. # # 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 # pinch in # pinch out # # 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 xdotool, or wmctrl. 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. # 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 4 xdotool key alt+control+Left # Browser go back (works only for Xorg, and Xwayland clients) gesture swipe right 4 xdotool key alt+control+Right # 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 across using swipe up/down/left/right to # navigate in fixed planes. Must match how you have configured your # virtual desktops. # gesture swipe up _internal --col=2 ws_up # gesture swipe down _internal --col=2 ws_down # gesture swipe left _internal --row=4 ws_up # gesture swipe right _internal --row=4 ws_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 # gesture pinch anticlockwise ############################################################################### # 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, use the corresponding full path link under # /dev/input/by-path/*. # # 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