Qt clipboard text changer for Linux (qtctcl)

Повторяет функции Punto Switcher в ручном режиме - исправляет текст ошибочно набранный в другой раскладке или в неправильном регистре по команде с клавиатуры:
    1 временно сохраняет содержимое буфера обмена
    2 копирует текущее выделение (ctrl+ins)
    3 конвертирует
        Shift+Pause - переключение раскладки (только английский <-> русский)
        Alt+Pause - переключение регистра
    4 вставляет (shift+ins)
    5 восстанавливает содержимое буфера обмена

Зачем программа вообще нужна если есть xneur.
    1 я ее сделал для себя в качестве тренировки
    2 xneur у меня работает не всегда хорошо. Ситуация как раз наоборот - xneur работает в mozillе и иже с ним (этот текст я набираю в kompozer и он отлично все исправляет) но в kde-шных приложениях часто путает порядок букв. Моя же программа стабильно работает в KDE а в mozillе иногда не срабатывает
    3 на windows я использовал Punto Switcher только в ручном режиме а xneur в ручном режиме у меня даже в mozillе плохо работает
    4 возможность задать другие преобразования над содержимым буфера обмена большого размера т.к. я заметил что чем длиннее текст тем больше вероятность что xneur перепутает порядок букв.

Сборка и установка
    Для работы теоретически нужна только библиотека Qt, фактически программа делалась и проверялась только на MOPSLinux5 (Slackware 11), KDE 3.5.4, Qt 3.3.6, XLib 6.9.0
    1 в начале файла .cpp поправить код клавиши переключения раскладок какая у вас используется (чтобы посмотреть коды клавиш можно в терминале запустить xev и в окне xev понажимать нужные клавиши)
    2 qmake
    3 должен появиться Makefile - в нем заменить LIBS = ... -lXext на -lXtst
    4 make
    5 получившийся исполняемый файл можно скопировать куда нибудь и либо вставить в автозагрузку KDE (создать ~/.kde/Autostart/qtctcl.desktop), либо если в KDE восстанавливается последняя сессия достаточно просто один раз запустить.

Баги/todo
    1 иногда виснет из-за "XLib: unexpected async reply" (если отсутствует реакция на горячие клавиши то это скорее всего оно и есть)
    2 не получилось сделать так чтобы программа перехватывала Pause/Break только с модификаторами alt или shift а "чистое" нажатие проходило бы другим приложениям, поэтому если программа запущена то Pause/Break не работает вообще
    3 иногда очень редко в mozille срабатывает не с первого раза (также в thunderbird, kompozer и наверно других аналогичных)
    4 не проверяет что может быть уже запущена - т.е. если случайно запустить две копии то они друг другу мешаются

26 декабря 2006 новая версия - борьба с "XLib: unexpected async reply", исключение обработки данных в буфере обмена в формате "_RDESKTOP_NATIVE" которое вызывает segmentation fault в rdesktop-е.

6 января 2007 продолжается (и похоже успешно) борьба с "XLib: unexpected async reply"

Скачать qtctcl.tar.gz

Гостевая книга

© bdimych@narod.ru 2006


Сайт создан в системе uCoz