Dark Mode

Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

TechxArtisanStudio/Openterface_QT

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

1,200 Commits

Repository files navigation

Welcome to Openterface Mini-KVM QT version (For Linux & Windows)

This is a preview version of the source code and presently, it does not support all the features found in the macOS version. We are in the process of optimizing the code and refining the building methods. Your feedback is invaluable to us. If you have any suggestions or recommendations, feel free to reach out to the project team via email. Alternatively, you can join our Discord channel for direct discussions.

Table of Contents

  • Welcome to Openterface Mini-KVM QT version (For Linux & Windows)
  • Table of Contents
    • Features
    • Supported OS
    • Download & installing
      • For Windows users
      • For Linux users
    • Build from source
      • For Windows
      • For Linux
    • FAQ
    • Asking questions and reporting issues
    • License Information
      • Third-Party Libraries and Their Licenses
      • Static Linking
      • License Compliance Details

Features

  • Basic KVM operations
  • Mouse control absolute mode
  • Mouse relative mode
  • Audio playing from target
  • Paste text to Target device
  • OCR text from Target device
  • Other feature request? Please join the Discord channel and tell me

For a detailed list of features, please refer to the Features Documentation.

Supported OS

  • Window (10/11)
  • Ubuntu 22.04 (You need to upgrade QT to >=6.4)
  • Ubuntu 24.04
  • Linux Mint 21.3 (Need to upgrade QT to >=6.4)
  • openSUSE Tumbleweed, built by community
  • Raspberry Pi OS (64-bit), working good
  • Raspberry Pi OS (32-bit), Not supported, because the QT version is too old

Download & installing

For Windows users

  1. Download the package from GitHub release page, and find the latest version to download according to your OS and CPU architecture.
  2. Run the installer and it will install all required drivers and application to your windows. You can run the application from start menu.

Note: Users have reported that the Windows installer is unable to automate driver installation correctly on Windows 11 Version 22H2. You may need to manually download and install the driver from the WCH website. For more details, please refer to this issue. We are also actively working on a solution to improve driver installation for this version.

For Linux users

Option 1: One-Line Installation Script (Recommended)

For a quick and automated installation, run this single command:

curl -fsSL https://raw.githubusercontent.com/TechxArtisanStudio/Openter face_QT/main/build-script/install-linux.sh | bash

Note: By default, this script automatically builds the stable version (currently v0.3.19) defined in the source code. If you want to try the latest development version with the newest features, replace main with dev_20250804_add_oneline_buildscript in the URL above.

This script will automatically:

  • Install all required dependencies (Qt6, FFmpeg, build tools)
  • Set up user permissions for hardware access
  • Configure device permissions (udev rules)
  • Clone and build the stable version of the source code
  • Install the application system-wide with desktop integration
  • Create proper Qt environment wrappers to avoid plugin issues

To install a specific version:

# Install a specific version/tag
BUILD_VERSION="v1.0.0" bash <(curl -fsSL https://raw.githubusercontent.com/TechxArtisanStudio/Openterface_QT/refs/heads/main/build-script/install-linux.sh)

# Install latest development version
BUILD_VERSION="main" bash <(curl -fsSL https://raw.githubusercontent.com/TechxArtisanStudio/Openterface_QT/refs/heads/main/build-script/install-linux.sh)

For interactive installation with customization options:

# Download the script first
curl -o install-linux.sh https://raw.githubusercontent.com/TechxArtisanStudio/Openterface_QT/refs/heads/main/build-script/install-linux.sh

# Make it executable and run interactively
chmod +x install-linux.sh
./install-linux.sh

Option 2: Manual Installation from Release Package

  1. Download the package from GitHub release page, and find the latest version to download according to your OS and CPU architecture.
  2. Install the dependency
  3. Setup dialout for Serial permissions and the hidraw permission for Switchable USB device
  4. Install the package.
# Setup the QT 6.4.2 or later runtime and other dependencies
sudo apt install -y \
libqt6core6 \
libqt6dbus6 \
libqt6gui6 \
libqt6network6 \
libqt6multimedia6 \
libqt6multimediawidgets6 \
libqt6serialport6 \
libqt6svg6 \
libqt6concurrent6t64 \
libusb-1.0-0-dev \
libssl-dev \
libavutil58 \
libavformat60 \
libavdevice60 \
libturbojpeg0 \
libva1 \
libva-drm2 \
libva-x11-2 \
libgstreamer1.0-0 \
# Setup the dialout permission for Serial port
sudo usermod -a -G dialout $USER
# On some distros (e.g. Arch Linux) this might be called uucp
sudo usermod -a -G uucp $USER
# Setup the hidraw and serial port permissions
echo 'SUBSYSTEM=="usb", ATTRS{idVendor}=="534d", ATTRS{idProduct}=="2109", TAG+="uaccess"
SUBSYSTEM=="hidraw", ATTRS{idVendor}=="534d", ATTRS{idProduct}=="2109", TAG+="uaccess"
SUBSYSTEM=="ttyUSB", ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="7523", TAG+="uaccess"
SUBSYSTEM=="usb", ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="7523", TAG+="uaccess"
' | sudo tee /etc/udev/rules.d/51-openterface.rules
sudo udevadm control --reload-rules
sudo udevadm trigger
# Unzip the package and install
unzip openterfaceQT.deb.zip
sudo dpkg -i openterfaceQT.deb
# Run from terminal
openterfaceQT

Build from source

For Windows

  • Using QT Creator
    1. Install QT for opensource, recommended version 6.4.3
    2. Use Qt Maintenance Tool to add following components
    3. Download the source and import the project
    4. Now you can run the project

For Linux

Option 1: Automated Build Script (Recommended)

Use our automated installation script that handles the entire build process. It takes 5 - 30 minutes (Raspberry PI take longer) to complete the whole process.

curl -fsSL https://raw.githubusercontent.com/TechxArtisanStudio/Openter face_QT/main/build-script/install-linux.sh | bash

Note: By default, the script builds the stable version (currently v0.3.19) automatically detected from the source code. To build the latest development version instead, use: BUILD_VERSION="main" before the command.

This script automatically handles dependency installation, environment setup, building, and system integration.

To build a specific version:

# Build latest development version
BUILD_VERSION="main" bash <(curl -fsSL https://raw.githubusercontent.com/TechxArtisanStudio/Openterface_QT/main/build-script/install-linux.sh)

# Build a specific tag/version
BUILD_VERSION="v1.0.0" bash <(curl -fsSL https://raw.githubusercontent.com/TechxArtisanStudio/Openterface_QT/main/build-script/install-linux.sh)

Option 2: Manual Build Process

If you prefer to build manually or need to customize the build process:

# Build environment preparation
sudo apt-get update -y
sudo apt-get install -y \
build-essential \
cmake \
qt6-base-dev \
qt6-multimedia-dev \
qt6-serialport-dev \
qt6-svg-dev \
libusb-1.0-0-dev \
qt6-tools-dev \
libudev-dev \
libgstreamer1.0-dev \
libgstreamer-plugins-base1.0-dev \
pkg-config \
libx11-dev \
libxrandr-dev \
libxrender-dev \
libexpat1-dev \
libfreetype6-dev \
libfontconfig1-dev \
libbz2-dev \
libturbojpeg0-dev \
libva-dev \
libavformat-dev \
libavcodec-dev \
libavdevice-dev \
libavutil-dev \
libswresample-dev \
libswscale-dev \
ffmpeg \
libssl-dev
# Setup the dialout permission for Serial port
sudo usermod -a -G dialout $USER
# On some distros (e.g. Arch Linux) this might be called uucp
sudo usermod -a -G uucp $USER

# Setup the hidraw and serial port permissions
echo 'SUBSYSTEM=="usb", ATTRS{idVendor}=="534d", ATTRS{idProduct}=="2109", TAG+="uaccess"
SUBSYSTEM=="hidraw", ATTRS{idVendor}=="534d", ATTRS{idProduct}=="2109", TAG+="uaccess"
SUBSYSTEM=="ttyUSB", ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="7523", TAG+="uaccess"
SUBSYSTEM=="usb", ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="7523", TAG+="uaccess"
' | sudo tee /etc/udev/rules.d/51-openterface.rules
sudo udevadm control --reload-rules
sudo udevadm trigger
# Get the source
git clone https://github.com/TechxArtisanStudio/Openterface_QT.git
cd Openterface_QT

# Generate language files (The lrelease path may vary depending on your system)
/usr/lib/qt6/bin/lrelease openterfaceQT.pro

# Build the project with CMake
mkdir build
cd build

# For ARM64/aarch64 systems (like Raspberry Pi), use:
# cmake .. \
# -DCMAKE_BUILD_TYPE=Release \
# -DCMAKE_PREFIX_PATH=/usr/lib/aarch64-linux-gnu/cmake/Qt6 \
# -DFFMPEG_LIBRARIES="/usr/lib/aarch64-linux-gnu/libavformat.a;/usr/lib/aarch64-linux-gnu/libavcodec.a;/usr/lib/aarch64-linux-gnu/libavutil.a;/usr/lib/aarch64-linux-gnu/libswresample.a;/usr/lib/aarch64-linux-gnu/libswscale.a"

# For x86_64 systems, use:
cmake .. \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_PREFIX_PATH=/usr/lib/x86_64-linux-gnu/cmake/Qt6 \
-DFFMPEG_LIBRARIES="/usr/lib/x86_64-linux-gnu/libavformat.a;/usr/lib/x86_64-linux-gnu/libavcodec.a;/usr/lib/x86_64-linux-gnu/libavutil.a;/usr/lib/x86_64-linux-gnu/libswresample.a;/usr/lib/x86_64-linux-gnu/libswscale.a"

make -j$(nproc)
# Run
./openterfaceQT
# If you can't control the mouse and keyboard (with high probability that did not correctly recognize the serial port)

# solution
sudo apt remove brltty
# after run this plug out the openterface and plug in again
ls /dev/ttyUSB*
# if you can list the usb the serial port correctly recognized
# Then we need give the permissions to user for control serial port you can do this:
sudo ./openterfaceQT
# or (dialout/uucp)
sudo usermod -a -G dialout $USER
sudo reboot
# back to the build floder
./openterfaceQT

FAQ

  • Keyboard and Mouse not responding in Windows
    • The CH340 serial chip driver wasn't installed properly during setup, you have two options:
      1. Download and install the driver directly from the WCH website
      2. Install the driver from our source repository by running this command as Administrator:
      pnputil -a CH341SER.INF
  • Keyboard and Mouse not responding in Linux
    • Likely the CH340 serial chip driver is missing in your OS, you should

      1. Download the driver: Visit the driver website and download the appropriate driver for Linux.

      2. Install the driver:

        • Extract the downloaded file.
        • Open a terminal and navigate to the extracted folder.
        • Run the following commands to compile and install the driver:
          make
          sudo make install
      3. Load the driver: After installation, load the driver using:

        sudo modprobe ch341
      4. Reconnect the device: Unplug and reconnect the OpenTouch interface to see if the mouse and keyboard inputs are now being sent to the target.

      If the issue persists, it could also be related to permissions or udev rules. Ensure that your user has the necessary permissions to access the device. Please refer to For Linux users

Asking questions and reporting issues

We encourage you to engage with us.

License Information

The Openterface Mini-KVM QT project is licensed under the AGPL-3.0 (Affero General Public License). This license allows you to use, modify, and redistribute the software under the following conditions:

  1. Source Code Availability: If you distribute the software, you must make the source code available to the recipients under the same AGPL-3.0 license.
  2. Modification: You are free to modify the software, but you must also distribute your modifications under the AGPL-3.0 license.
  3. No Warranty: The software is provided "as is", without warranty of any kind.

For more details, please refer to the full text of the AGPL-3.0 license: GNU AGPL v3.0.

Third-Party Libraries and Their Licenses

This project uses the following third-party libraries, each with its own licensing terms:

  • Qt Framework: LGPL v3
  • libusb (1.0.26): LGPL v2.1
  • FreeType (2.13.2): FreeType License (BSD-style) / GPL v2
  • Fontconfig (2.14.2): MIT License
  • D-Bus: AFL v2.1 or GPL v2
  • PulseAudio (16.1): LGPL v2.1+
  • libxkbcommon (1.7.0): MIT License
  • xproto, libXdmcp, libXau, xcb, xcb-util: Generally under permissive licenses

Static Linking

Most of the libraries used in this project are compatible with AGPL, especially if you provide the source code or object files for LGPL libraries. Ensure compliance with the terms of each license, especially for LGPL libraries.

License Compliance Details

  1. Complete source code is available in this repository.
  2. Build instructions are provided above.
  3. You have the right to modify and redistribute the code under the terms of the AGPL-3.0.
  4. You have the right to relink with different versions of the LGPL libraries.
  5. For any modifications to the code, you must make the source code available under AGPL-3.0.

The full text of all licenses can be found in the license file of this repository.

For more information about the licenses:

About

Openterface Mini-KVM: Host Applications for Windows and Linux

Topics

Resources

Readme

License

AGPL-3.0 license

Stars

Watchers

Forks

Packages

Contributors