Show keys you typed on screen.

Description

Show keys you typed on screen, so your audiences can see what you do clearly while you are streaming or recording.

This is a screenkey alternative, and works not only on X11 but also Wayland.

Your desktop must support composition and you may need to set "always on top" and "show on all workspaces" manually so be sure your desktop supports them.

Feature

Release

Please go to GitHub Release Page.

Installation

This section does not always get updated, please read Install section of README first.

Distribution Package (Recommended)

Arch Linux

Install From AUR

            $ yay showmethekey
          

Or use other AUR helpers.

Install From archlinuxcn

First add archlinuxcn repo to your system.

            # pacman -S showmethekey
          

openSUSE

Install from OBS

Packages can be found in my OBS project.

            # zypper ar https://download.opensuse.org/repositories/home:/AZhou/openSUSE_Tumbleweed/home:AZhou.repo
            # zypper in showmethekey showmethekey-lang
          

Leap users please replace URL for Tumbleweed with URL for your Leap version.

Other Distributions

Please help package showmethekey to your distribution!

Build From Source

Dependencies

  • libevdev
  • udev (or systemd)
  • libinput
  • glib2
  • gtk4
  • libadwaita
  • json-glib
  • cairo
  • pango
  • libxkbcommon
  • polkit
  • meson
  • ninja
  • gcc

Build

            $ git clone https://github.com/AlynxZhou/showmethekey.git
            $ cd showmethekey
            $ mkdir build && cd build && meson setup --prefix=/usr . .. && meson compile && meson install
            $ showmethekey-gtk
          

Usage

For detailed usage please run usage dialog from app menu!

You need to toggle the switch to start it manually and need to input admin password to pkexec's dialog, because we need superuser permission to read keyboard events (this program does not handle your password so it is safe). Wayland does not allow a client to set its position, so this program does not set its position in preference, and you can click the "Clickable Area" in titlebar and drag the floating window to anywhere you want.

Users in `wheel` group can skip password authentication.

FAQ

Why your program needs root permission? screenkey never asks for it!

If you debug with libinput, you'll find it needs root permission, too. Because this program support both Wayland and X11, it does not get input events via display protocol, actually it's reading directly from evdev interface under /dev. And if you want to interact with files under /dev, you need root permission. screenkey does not needs root permission because it's heavily X11-based, it gets input events from X server instead of /dev, which already done it. And because of this it will never support Wayland.

I am using Sway/Wayfire/[not DEs], and I always get AUTHENTICATION FAILED in terminal!

This is a pkexec bug that it's tty authentication does not work, see https://gitlab.freedesktop.org/polkit/polkit/-/issues/17. Most DEs have their own authentication agents, but if you are not using them, pkexec will try to make itself an agent, and you get this bug.

A possible workaround is https://github.com/AlynxZhou/showmethekey/issues/2#issuecomment-1019439959, actually you can use any agents, not only the gnome one.

Screenshots

screenshot.gif screenshot.png