Tapper is a keyboard layout switcher for X Window System and Wayland1. Tapper runs in background, when an assigned key is tapped2, Tapper activates the corresponding keyboard layout3. Tapper key feature is using modifier keys for switching keyboard layouts without losing modifierβs functionality4. Tapper works5 for GNOME, GNOME Classic, Cinnamon, i3, KDE, LXDE, LXQt, Mate, Xfce. There are prebult RPM packages for Fedora, Mageia, OpenMandriva, openSUSE, recent versions of RHEL and its clones. Source tarball for configure && make
is also available, it should work for any GNU/Linux distro, including (but not limited to) Alt, Arch, Debian, Ubuntu and Void6. Tapper is freeβ software.
Current version is 0.7.4-0.vdb.1, released on 2023-02-01. See NEWS.md for list of user-visible changes.
Important note: Starting from version 0.6.0, Tapper requires the Agism GNOME Shell extension to work for GNOME, GNOME Classic, and Ubuntu7 desktops.
Tapper is known to work for the following desktops (and window managers):
Desktop | X Window System | Wayland |
---|---|---|
Cinnamon | β | |
GNOME | β | β |
GNOME Classic | β | β |
i3 | β | |
KDE | β | β |
LXDE | β | |
LXQt | β | |
Mate | β | |
Ubuntu | β | β |
Xfce | β |
Empty cell in the "Wayland" column means that Tapper has not been tested in this configuration (due to the lack of easy-to-use distros8 that runs the desktop in a Wayland session out of the box).
If your desktop (or window manager) is not listed in the table:
Important note: Starting from version 0.6.0, Tapper requires the Agism GNOME Shell extension to work for the GNOME, GNOME Classic, and Ubuntu desktops. If you install the Tapper RPM from the vandebugger/tapper
Copr repository as described below, Agism will be installed automatically, otherwise you will have to install it yourself.
Important note: Regardless of how you install Agism, you must enable Agism to let Tapper work in GNOME, GNOME Classic, and Ubuntu desktops.
$ sudo dnf copr enable vandebugger/tapper
$ sudo dnf install tapper
See kbd-tapper package by sirocco in AUR. See Arch User Repository for instruction how to build and install AUR packages.
$ su -c "dnf copr enable vandebugger/tapper"
$ su -c "dnf install tapper"
Replace $VER
with the version of your system, e. g. cooker
or rolling
:
$ sudo wget -O /etc/yum/repos.d/vandebugger-tapper.repo https://copr.fedorainfracloud.org/coprs/vandebugger/tapper/repo/openmandriva-$VER
$ sudo dnf install tapper
Replace $VER
with the version of your system, e. g. leap-15.4
or tumbleweed
:
$ sudo zypper addrepo https://copr.fedorainfracloud.org/coprs/vandebugger/tapper/repo/opensuse-$VER/vandebugger-tapper-opensuse-$VER.repo
$ sudo zypper install tapper
Build Tapper from sources. See INSTALL.md for build and install instructions.
By default Tapper selects listener, emitter and layouter automatically, assigns the left Ctrl
key to activate the first layout, the right Ctrl
key to activate the second layout, does not ring the bell when it activates a layout.
Run tapper with --dconf-editor
option to open dconf Editor10 app (command dconf-editor
) to edit Tapper settings:
$ tapper --dconf-editor
Alternatively, configure Tapper using command line options and arguments in combination with --save-settings
option. See tapper(1) man page for help on Tapper terms (e. g. listener, layouter and emitter), command line options and usage examples.
Configure your system to run Tapper automatically each time you log in the graphical session. The following command should work for any desktop respecting the Desktop Application Autostart Specification:
$ tapper --autostart
It can be done using the grahpical tools, but in such case the specific steps depend on your desktop.
Use Tweaks app (command gnome-tweaks
) to add Tapper to Startup Applications.
Use System Settings app (command systemsettings5
), follow to Startup and Shutdown to add Tapper to Autostart.
See BUGS.md.
Copyright π― 2014, 2016β2017, 2019β2023 Van de Bugger. License is GPLv3+, see LICENSE.md for details.
Tapper works in graphical desktop session only, in either X Window System or Wayland. Tapper does not work in the text console (donβt confuse text console with a terminal emulator running in graphical session, though).β©οΈ
A tap means that a single key is pressed and quickly released, so: (1) no other keys are pressed or released at this time, and (2) period between pressing the key and releasing it is shorter than keyboard repeat delay (the amount of time you have to hold down a key before it starts repeating; usually 0.5 second, but it depends on your desktop settings).β©οΈ
The assigned key always activates the same layout. Tapper never toggles layouts, there is a dedicated key for each layout.β©οΈ
If a modifier key is assigned to activate a layout, it continues to be a modifier key. For example, if the left Ctrl
key is assigned to activate the first layout, only tap on the the left Ctrl
activates the first layout, Ctrl
+C
is still interpreted as ^C
.β©οΈ
Tapper works for all listed desktops, but not all listed desktops work on top of Wayland. See the βDesktopsβ section.β©οΈ
Tapper requires glibc, compilation will fail with musl C standard library.β©οΈ
Ubuntu OS pretends to run Ubuntu desktop: in Ubuntu graphical session, the environment variable XDG_SESSION_DESKTOP
value is ubuntu
. However, the Ubuntu desktop is actually the GNOME Shell with few Ubuntu-specific extensions.β©οΈ
Easy-to-use distro in this context means "there is a live CD or DVD image to run the distro in a virtual machine without tedious and time-consuming installation".β©οΈ
Mutter, the GNOME window manager, is an example of a window manager that does weird things, see section βXkb layouter does not work in GNOMEβ in the tapper(1) man page. However, that seems to be the only example.β©οΈ
Probably, you will have to install it first (in case of Fedora, run sudo dnf install dconf-editor
).β©οΈ