Skip to content

FeelUsM/linux-punto-switcher

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

linux-punto-switcher

punto-switcher for linux

реализованные функции:

  • исправление раскладки последнего слова по нажатию Pause (можно настроить) (эта фича не требует наличия графического интерфейса. Почти полная аналогия easy-switcher)
  • изменение раскладки выделенного текста по Alt+Pause(можно настроить) (пока только для KDE)
  • изменение регистра выделенного текста по Shift+Pause(можно настроить) (пока только для KDE)

настройки находятся в ~/.config/linux-punto-config.yaml

как собрать и установить

зависимости: sudo apt install libdbus-1-dev libudev-dev

make
sudo make install
make user-setup # без sudo

редактируем ~/.config/linux-punto-config.yaml
перезапускаем systemctl --user restart linux-punto-switcher.service

запуск без установки:

редактируем ./linux-punto-setup.yaml

sudo chown root linux-punto-switcher
sudo chmod u+s linux-punto-switcher
./linux-punto-switcher
удаление:
make uninstall-user # без sudo
sudo make uninstall-system

как оно работает:

  • неотступно следит за нажатием и отпусканием всех клавиш клавиатуры
  • при нажатии Pause (или что там у вас для fix-last-word в настройках)
    • несколько раз нажимает backspace,
    • потом нажимает CapsLock (или что там у вас для change-layout в настройках),
    • потом нажимает те же клавиши, которыми было набрано это слово.
  • при нажатии Alt+Pause или Shift+Pause (или что там у вас для fix-selected и swapcase-selected в настройках)
    • ждёт когда Alt и Shift будут отпущены
    • запоминает старое содержимое буфера обмена
    • нажимает Ctrl+X, ждёт 0.3 сек или пока содержимое буфера обмена не поменяется
    • считывает новое содержимое буфера обмена, конвертирует его
    • устанавливает новое содержимое буфера обмена
    • нажимает Ctrl+V
    • восстанавливает исходное содержимое буфера обмена
    • нажимает CapsLock (или что там у вас для change-layout в настройках)

системные компоненты:

  • для отслеживания клавиатуры используется linux/input - требует root-прав
  • для эмуляции нажатий на клавиатуру используется linux/uinput - требует root-прав
  • для работы с буфером обмена используется dbus (который сейчас настроен на работу с KDE) - требует работу от имени пользователя

todo

  • сделать буфер обмена через dbus для gnome, xfce, ...
  • сделать буфер обмена для всех X11
  • сделать буфер обмена для всех wayland через внешний wl-clipboard
  • deb-пакет
  • из программки keyview сделать создавалку файла настроек
  • сделать реакцию на нажатия мышки (сброс буфера)
  • сделать задержку после смены раскладки (для Gnome)
  • потестировать автоопределение клавиатуры на устройствах без физической клавиатуры (tablet pc)
  • сделать буфер обмена для всех wayland нативно как в wl-clipboard

done

  • автоопределение клавиатуры 25-07-24
  • сделать автоподключение устройств 25-07-27
  • сделать настройки в json или yaml файле 25-07-28

About

punto-switcher for linux in one .c file

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published