config/libinput-gestures.conf (view raw)
1# Configuration file for libinput-gestures.
2#
3# The default configuration file exists at /etc/libinput-gestures.conf
4# but a user can create a personal custom configuration file at
5# ~/.config/libinput-gestures.conf.
6#
7# Lines starting with '#' and blank lines are ignored. Currently
8# "gesture" and "device" configuration keywords are supported as
9# described below. The keyword can optionally be appended with a ":" (to
10# maintain compatibility with original format configuration files).
11#
12# Each gesture line has 3 [or 4] arguments separated by whitespace:
13#
14# action motion [finger_count] command
15#
16# where action and motion is either:
17# swipe up
18# swipe down
19# swipe left
20# swipe right
21# pinch in
22# pinch out
23#
24# command is the remainder of the line and is any valid shell command +
25# arguments.
26#
27# finger_count is a single numeric digit and is optional (and is
28# typically 3 or 4). If specified then the command is executed when
29# exactly that number of fingers is used in the gesture. If not
30# specified then the command is executed when that gesture is executed
31# with any number of fingers. Gesture lines specified with finger_count
32# have priority over the same gesture specified without any
33# finger_count.
34#
35# Typically command will be xdotool, or wmctrl. See "man xdotool" for
36# the many things you can action with that tool. Note that unfortunately
37# xdotool does not work with native Wayland clients.
38
39###############################################################################
40# SWIPE GESTURES:
41###############################################################################
42
43# Note the default is an "internal" command that uses wmctrl to switch
44# workspaces and, unlike xdotool, works on both Xorg and Wayland (via
45# XWayland). It also can be configured for vertical and horizontal
46# switching over tabular workspaces, as per the example below. You can
47# also add "-w" to the internal command to allow wrapping workspaces.
48
49# Move to next workspace (works for GNOME/KDE/etc on Wayland and Xorg)
50# gesture swipe up _internal ws_up
51gesture swipe right 3 _internal ws_up
52
53# NOTE ABOUT FINGER COUNT:
54# The above command will configure this command for all fingers (i.e. 3
55# for 4) but to configure it for 3 fingers only, change it to:
56# gesture swipe up 3 _internal ws_up
57# Then you can configure something else for 4 fingers or leave 4 fingers
58# unconfigured. You can configure an explicit finger count like this for
59# all example commands in this configuration file.
60#
61# gesture swipe up xdotool key super+Page_Down
62
63# Move to prev workspace (works for GNOME/KDE/etc on Wayland and Xorg)
64gesture swipe left 3 _internal ws_down
65# gesture swipe down xdotool key super+Page_Up
66
67# Browser go forward (works only for Xorg, and Xwayland clients)
68gesture swipe left 4 xdotool key alt+Right
69
70# Browser go back (works only for Xorg, and Xwayland clients)
71gesture swipe right 4 xdotool key alt+Left
72
73# NOTE: If you don't use "natural" scrolling direction for your touchpad
74# then you may want to swap the above default left/right and up/down
75# configurations.
76# gesture swipe up 3 xdotool key super+W
77# Optional extended swipe gestures, e.g. for browser tab navigation:
78#
79# Jump to next open browser tab
80# gesture swipe right_up xdotool key control+Tab
81#
82# Jump to previous open browser tab
83# gesture swipe left_up xdotool key control+shift+Tab
84#
85# Close current browser tab
86# gesture swipe left_down xdotool key control+w
87#
88# Reopen and jump to last closed browser tab
89# gesture swipe right_down xdotool key control+shift+t
90
91# Example of 8 static workspaces, e.g. using KDE virtual-desktops,
92# arranged in 2 rows of 4 across using swipe up/down/left/right to
93# navigate in fixed planes. Must match how you have configured your
94# virtual desktops.
95# gesture swipe up _internal --col=2 ws_up
96# gesture swipe down _internal --col=2 ws_down
97# gesture swipe left _internal --row=4 ws_up
98# gesture swipe right _internal --row=4 ws_down
99
100# Example virtual desktop switching for Ubuntu Unity/Compiz. The
101# _internal command does not work for Compiz but you can explicitly
102# configure the swipe commands to work for a Compiz virtual 2
103# dimensional desktop as follows:
104# gesture swipe up xdotool key ctrl+alt+Up
105# gesture swipe down xdotool key ctrl+alt+Down
106# gesture swipe left xdotool key ctrl+alt+Left
107# gesture swipe right xdotool key ctrl+alt+Right
108
109# Example to change audio volume:
110# Note this only works on an Xorg desktop (not Wayland).
111# gesture swipe up xdotool key XF86AudioRaiseVolume
112# gesture swipe down xdotool key XF86AudioLowerVolume
113
114###############################################################################
115# PINCH GESTURES:
116###############################################################################
117
118# GNOME SHELL open/close overview (works for GNOME on Xorg only)
119gesture pinch in xdotool key super+s
120gesture pinch out xdotool key super+s
121
122# GNOME SHELL open/close overview (works for GNOME on Wayland and Xorg)
123# Note since GNOME 3.24 on Wayland this is implemented natively so no
124# real point configuring for Wayland.
125# gesture pinch in dbus-send --session --type=method_call --dest=org.gnome.Shell /org/gnome/Shell org.gnome.Shell.Eval string:'Main.overview.toggle();'
126# gesture pinch out dbus-send --session --type=method_call --dest=org.gnome.Shell /org/gnome/Shell org.gnome.Shell.Eval string:'Main.overview.toggle();'
127
128# Optional extended pinch gestures:
129# gesture pinch clockwise <whatever command>
130# gesture pinch anticlockwise <whatever command>
131
132###############################################################################
133# This application normally determines your touchpad device
134# automatically. Some users may have multiple touchpads but by default
135# we use only the first one found. However, you can choose to specify
136# the explicit device name to use. Run "libinput list-devices" to work
137# out the name of your device (from the "Device:" field). Then add a
138# device line specifying that name, e.g:
139#
140# device DLL0665:01 06CB:76AD Touchpad
141#
142# If the device name starts with a '/' then it is instead considered as
143# the explicit device path although since device paths can change
144# through reboots this is best to be a symlink. E.g. instead of specifying
145# /dev/input/event12, use the corresponding full path link under
146# /dev/input/by-path/*.
147#
148# You can choose to use ALL touchpad devices by setting the device name
149# to "all". E.g. Do this if you have multiple touchpads which you want
150# to use in parallel. This reduces performance slightly so only set this
151# if you have to.
152#
153# device all