Commit e0993a5e authored by Daiki Ueno's avatar Daiki Ueno
Browse files

Add eekboard-inscript.

parent 4eb59ba7
EXTRA_DIST = gen-inscript-keyboard.py
\ No newline at end of file
bin_SCRIPTS = eekboard-inscript
keyboarddir = $(pkgdatadir)/keyboards
dist_keyboard_DATA = inscript2.xml
EXTRA_DIST = gen-inscript-keyboard.py
eekboard-inscript: eekboard-inscript.in
$(AM_V_GEN) sed 's!@EEKBOARD_INSCRIPT_PATH@!'$(pkgdatadir)/keyboards/inscript2.xml'!' < $< > $@
#!/usr/bin/env python
# Copyright (C) 2011 Daiki Ueno <ueno@unixuser.org>
# Copyright (C) 2011 Red Hat, Inc.
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public License
# as published by the Free Software Foundation; either version 2 of
# the License, or (at your option) any later version.
# This library is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details.
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
# 02110-1301 USA
import eekboard, virtkey
GROUPS = (
"as-inscript2",
"bn-inscript2",
"brx-inscript2-deva",
"doi-inscript2-deva",
"gu-inscript2",
"hi-inscript2",
"kn-inscript2",
"kok-inscript2-deva",
"mai-inscript2",
"ml-inscript2",
"mni-inscript2-beng",
"mni-inscript2-mtei",
"mr-inscript2",
"ne-inscript2-deva",
"or-inscript2",
"pa-inscript2-guru",
"sa-inscript2",
"sat-inscript2-deva",
"sat-inscript2-olck",
"sd-inscript2-deva",
"ta-inscript2",
"te-inscript2")
class InscriptKeyboard(object):
def __init__(self, client_name, path):
self.__keyboard = eekboard.XmlKeyboard(path,
eekboard.MODIFIER_BEHAVIOR_LATCH)
self.__eekboard = eekboard.Eekboard()
self.__context = self.__eekboard.create_context(client_name)
keyboard_id = self.__context.add_keyboard(self.__keyboard)
self.__context.set_keyboard(keyboard_id)
self.__keyboard.connect('key-pressed', self.__key_pressed_cb)
self.__keyboard.connect('key-released', self.__key_released_cb)
self.__virtkey = virtkey.virtkey()
def enable(self):
self.__eekboard.push_context(self.__context)
def disable(self):
self.__eekboard.pop_context(self.__context)
def show(self):
self.__context.show_keyboard()
def set_group(self, group):
self.__context.set_group(group)
def __key_pressed_cb(self, keyboard, key):
symbol = key.get_symbol()
if isinstance(symbol, eekboard.Keysym):
xkeysym = symbol.get_xkeysym()
self.__virtkey.press_keysym(xkeysym)
def __key_released_cb(self, keyboard, key):
symbol = key.get_symbol()
if isinstance(symbol, eekboard.Keysym):
xkeysym = symbol.get_xkeysym()
self.__virtkey.release_keysym(xkeysym)
if __name__ == "__main__":
import gtk
from optparse import OptionParser
import sys
parser = OptionParser()
parser.add_option("-n", "--name=LANGCODE", dest="langcode",
help="Specify language code to LANGCODE",
metavar="LANGCODE")
(options, args) = parser.parse_args()
group = 0
if options.langcode:
group = None
for index, langcode in enumerate(GROUPS):
if langcode.startswith(options.langcode):
group = index
if group is None:
print >> sys.stderr, "Unknown langcode %s" % options.langcode
exit(1)
inscript = InscriptKeyboard("eekboard-inscript", "@EEKBOARD_INSCRIPT_PATH@")
inscript.set_group(group)
inscript.enable()
inscript.show()
gtk.main()
This diff is collapsed.
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment