A modern, floating, resizable, and always-on-top virtual keyboard for Linux. Designed for mouse input, featuring a sleek interface with Dark/Light modes and window focus management.
- Always on Top: Stays above other windows for easy access.
- Resizable: Dynamically resize the keyboard to fit your screen. Double-click the title bar to reset to default size.
- Theme Support: Switch between Dark Mode (default) and Light Mode instantly.
- Window Focus Management: Select a target window to send keystrokes to, ensuring input goes where you want it.
- Compact Design: Minimalist interface with auto-hiding controls and optimized layout.
- System Integration: Uses
xdotoolto simulate natural keystrokes.
This application is built for Linux systems running X11. It relies on xdotool to simulate keyboard input.
You need to install xdotool on your system.
Debian/Ubuntu:
sudo apt-get update
sudo apt-get install xdotoolFedora:
sudo dnf install xdotoolArch Linux:
sudo pacman -S xdotoolFollow these steps to set up the environment using Conda.
If you haven't already, install Miniconda or Anaconda.
Create a new Conda environment with Python 3.13.
conda create -n zorin-keyboard python=3.13conda activate zorin-keyboardThe application uses standard Python libraries (tkinter, subprocess, threading). However, tkinter is sometimes not installed by default in minimal environments.
# In most Conda setups, tk is included or can be installed:
conda install tkAlternatively, on Debian/Ubuntu systems, you might need the system package if the Conda one isn't sufficient:
sudo apt-get install python3-tk-
Activate the environment (if not already active):
conda activate zorin-keyboard
-
Run the application:
python floating_keyboard.py
-
Using the Keyboard:
- Select Window: Click "Select Window" and click on the window you want to type into. The status bar will update to show the target.
- Type: Click keys on the virtual keyboard.
- Resize: Drag the bottom-right corner to resize. Double-click the title bar to reset.
- Theme: Click the
☀/🌙button to toggle Dark/Light mode. - Minimize: Click
-to minimize to the bottom bar. - Close: Click
Xto exit.
You can also use the provided start_app.sh script to easily launch the application without manually activating the environment each time.
Make the script executable:
chmod +x start_app.shRun it:
./start_app.sh- "Error: xdotool not found": Ensure you installed
xdotoolvia your system package manager (apt, dnf, pacman). - "ModuleNotFoundError: No module named 'tkinter'": Install
tkin your conda env (conda install tk) or via system (sudo apt-get install python3-tk).

