Предожение сделать удобную программу или скриптик (или хотя бы подсказать как работь с мышиным буфером)

Модератор: Модераторы разделов

Аватара пользователя
AlexYeCu
Сообщения: 1137
ОС: fedora

Предожение сделать удобную программу или скриптик

Сообщение AlexYeCu »

Как я это вижу.
Програмка висит в памяти.
При выделении средней кнопкой мыши текста и последующим нажатием хоткея конвертирует содержимое буфера из одной раскладки в другую, затем вставляет вместо выделенного.
Как дополнительная функция — исправление последствий нажатия caps_lock/shift+caps_lock
Хотел попробовать написать сам в рамках знакомства с python, но нигде не нашёл информации по работе с мышиным буфером. Вообще единственный известный мне аналог со столь удобно реализованным ручным исправлением раскладки — это ныне покойный Arum Switcher для win32 (не работающая с GTK-приложениями к тому же). Во всех прочих, включая PuntoSwither, это реализовано неудобно. Xneur тоже никуда не годится со своей автоматикой.
Если кто решит сам такое написать, да ещё и прикрутить простенькую морду (по мне так лишняя, но многим может пригодиться), возможность прятаться в трей разных DE/WM — окажу посильную помощь, скажем с иконкой или с дизом морды (что выносить и т.д.).
Спасибо сказали:
Аватара пользователя
sirocco
Сообщения: 782
Статус: Задвинутый соучастник

Re: Предожение сделать удобную программу или скриптик

Сообщение sirocco »

AlexYeCu писал(а):
18.02.2009 10:26
Xneur тоже никуда не годится со своей автоматикой.

Автоматика выключается. Хоткеи есть...
Спасибо сказали:
Аватара пользователя
rm_
Сообщения: 3340
Статус: It's the GNU Age
ОС: Debian

Re: Предожение сделать удобную программу или скриптик

Сообщение rm_ »

С мышинным буфером можно работать посредством вызова инструмента xsel.
Спасибо сказали:
Аватара пользователя
BlackStar
Сообщения: 1338
Статус: We are all Kosh
ОС: Fedora 10

Re: Предожение сделать удобную программу или скриптик

Сообщение BlackStar »

Вот отрывок из моего проекта (SLog) реагирующий на выделения слова:

Код:

# -*- mode: python; coding: utf-7; -*- import gtk, gtk.gdk as gdk import gobject import re class Spy: def __init__(self): self.timer = 0; self.prev_selection = "" self.clipboard = gtk.clipboard_get(gdk.SELECTION_PRIMARY) self.spy_view = None def __on_clipboard_text_received(self, clipboard, text, data): """ Обработчик события появления текста в буффере обмена.""" if text is None: return selection = text.lower().strip() if selection == "" or selection == self.prev_selection: return self.prev_selection = selection word = selection .... def __on_timer_timeout(self): if self.timer == 0: return False display = gdk.display_get_default() screen, x, y, mask = display.get_pointer() mask = mask & ((1<<13)-1) # Учёт клавиши модификатора if mask & self.conf.get_mod_key(): if self.spy_view.get_property("visible") is False: self.clipboard.request_text(self.__on_clipboard_text_received) else: if self.spy_view.get_property("visible"): self.spy_view.hide() return True def start(self): self.spy_view = SpyView() self.clipboard.set_text("") self.prev_selection = "" self.timer = gobject.timeout_add(300, self.__on_timer_timeout) def stop(self): self.timer = 0 self.spy_view.destroy() class SpyView(gtk.Window): ....
LightLang Team
Спасибо сказали:
Аватара пользователя
AlexYeCu
Сообщения: 1137
ОС: fedora

Re: Предожение сделать удобную программу или скриптик

Сообщение AlexYeCu »

sirocco когда я его видел, был жутко неудобен
rm_, BlackStar — спасибо, посмотрю
Спасибо сказали: