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
- Key events reading via libinput.
- Configurable floating window size.
- Click-through but draggable floating window.
- Pausing support: Press both alt keys anywhere to temporary hide input like password.
- Keymap handling via xkbcommon.
- Mouse button support.
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
$ paru 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.