🌍 🌏 🌎
Flag of Russia

Tapper

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

Current version is 0.7.4-0.vdb.1, released on 2023-02-01. See NEWS.md for list of user-visible changes.

Desktops

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:

Installing

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.

Fedora

$ sudo dnf copr enable vandebugger/tapper
$ sudo dnf install tapper

Arch

See kbd-tapper package by sirocco in AUR. See Arch User Repository for instruction how to build and install AUR packages.

Mageia

$ su -c "dnf copr enable vandebugger/tapper"
$ su -c "dnf install tapper"

OpenMandriva

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

openSUSE

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

All/Others

Build Tapper from sources. See INSTALL.md for build and install instructions.

Configuring

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.

Running

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.

GNOME

Use Tweaks app (command gnome-tweaks) to add Tapper to Startup Applications.

KDE

Use System Settings app (command systemsettings5), follow to Startup and Shutdown to add Tapper to Autostart.

Reporting bugs

See BUGS.md.

Footnotes


  1. 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).β†©οΈŽ

  2. 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).β†©οΈŽ

  3. The assigned key always activates the same layout. Tapper never toggles layouts, there is a dedicated key for each layout.β†©οΈŽ

  4. 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.β†©οΈŽ

  5. Tapper works for all listed desktops, but not all listed desktops work on top of Wayland. See the β€œDesktops” section.β†©οΈŽ

  6. Tapper requires glibc, compilation will fail with musl C standard library.β†©οΈŽ

  7. 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.β†©οΈŽ

  8. 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".β†©οΈŽ

  9. 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.β†©οΈŽ

  10. Probably, you will have to install it first (in case of Fedora, run sudo dnf install dconf-editor).β†©οΈŽ

0.7.4-0.vdb.1
Source Forge
2023-02-01