A small keyboard based on Python/Tkinter for inserting special characters. Dependencies: xclip, xdotool for clipboard handling and auto-insertion.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
FedorSarafanov 2fffcec548 Update Readme 3 months ago
README.md Update Readme 3 months ago
a4_prepare.py Scan, prepare and main program 3 months ago
a4keyboard_scan.jpg Scan, prepare and main program 3 months ago
background_image.png Press Esc to exit 3 months ago
rectangles.json Scan, prepare and main program 3 months ago
speckb.py Press Esc to exit 3 months ago

README.md

SFG Special Symbols Keyboard

Описание

Этот проект представляет собой интерактивную клавиатуру для ввода специальных символов. Клавиатура отображается с использованием графического интерфейса, созданного на базе Tkinter, и позволяет быстро копировать специальные символы в буфер обмена.

Логика работы

  • Обработка изображения:

    • Скрипт a4_prepare.py анализирует изображение клавиатуры (например, скан клавиатуры a4keyboard_scan.jpg), выделяет прямоугольные области клавиш. Подписи на клавишах закрываются прямоугольником с средним цветом фона с добавлением шума для естественности. Выходной файл с пустыми клавишами сохраняется в background_image.png.
    • Позиции прямоугольников клавиш сохраняются в файле rectangles.json.
  • Графический интерфейс:

    • Скрипт speckb.py отображает виртуальную клавиатуру с метками клавиш и соответствующими специальными символами.
    • При нажатии на клавишу физической клавиатуры:
      • Происходит подсветка соответствующей клавиши виртуальной клавиатуры.
      • Спецсимвол копируется в буфер обмена.
      • Окно автоматически закрывается через 100 мс.
      • Спецсимвол через 20 мс после закрытия виртуальной клавиатуры вставляется в текущее активное окно.

Зависимости

  • Python 3.8+
  • Библиотеки:
    • cv2 (OpenCV)
    • numpy
    • Pillow
    • Tkinter
    • pyperclip
  • Bash и xdotool (для автоматизации вставки символов)

Установка и запуск

pip install opencv-python numpy pillow pyperclip
sudo apt install xclip xdotool

Подготовьте изображение клавиатуры:

python a4_prepare.py

Запустите интерфейс:

python speckb.py

Возможные улучшения

  • Добавление поддержки пользовательских настроек для отображения символов.
  • Улучшение алгоритма распознавания для более точного определения клавиш.
  • Добавление поддержки клика мышкой по клавишам.