[smc-discuss] [Git][smc/ibus-braille][master] 14 commits: Language arabic added

Nalin x GNU gitlab at mg.gitlab.com
Sun Sep 4 10:05:02 PDT 2016


Nalin x GNU pushed to branch master at SMC / ibus-braille


Commits:
bd0af5fc by anwar3746 at 2016-07-26T15:46:44+05:30
Language arabic added

- - - - -
54d22c0a by Anwar3746 at 2016-07-30T14:58:31+05:30
8-Dot Braille enabled

- - - - -
4c6d2e3c by Anwar3746 at 2016-08-01T23:51:13+05:30
Language braille added for directly typing braille unicode patterns

- - - - -
089edca7 by Anwar3746 at 2016-08-10T15:30:12+05:30
Conventional Braille Mode enabled

- - - - -
da0f0309 by Anwar3746 at 2016-08-11T09:44:52+05:30
handle configure parser exceptions

- - - - -
076da093 by Anwar3746 at 2016-08-14T21:51:56+05:30
Malayalam problem with chill solved

- - - - -
6826982f by Anwar3746 at 2016-02-11T22:08:50+05:30
Liblouis integration step 1

- - - - -
46ec83a1 by anwar3746 at 2016-08-16T14:01:45+05:30
UI refined

- - - - -
7032cf7b by anwar3746 at 2016-08-16T15:47:00+05:30
setting liblouis language enabled

- - - - -
beb8d517 by anwar3746 at 2016-08-17T20:29:45+05:30
list liblouis tables in sorted order

- - - - -
dda2bd83 by anwar3746 at 2016-08-23T08:52:59+05:30
One-Hand-Mode enabled

- - - - -
3e0544ad by anwar3746 at 2016-08-23T10:04:40+05:30
Dot-7 and Dot-8 key press event connected

- - - - -
680598b3 by anwar3746 at 2016-08-25T10:12:34+05:30
One-Hand-Mode auto switching to middle list enabled and all contractions disabled

- - - - -
d94b7c09 by anwar3746 at 2016-09-01T04:21:31+05:30
handle keyerror exception

- - - - -


24 changed files:

- braille/Makefile.am
- + braille/arabic/Makefile.am
- + braille/arabic/abbreviations.txt
- + braille/arabic/abbreviations_default.txt
- + braille/arabic/beginning.txt
- + braille/arabic/help.txt
- + braille/arabic/middle.txt
- + braille/arabic/punctuations.txt
- + braille/braille/Makefile.am
- + braille/braille/abbreviations.txt
- + braille/braille/abbreviations_default.txt
- + braille/braille/beginning.txt
- + braille/braille/help.txt
- + braille/braille/middle.txt
- + braille/braille/punctuations.txt
- braille/configure.ac
- braille/languages.txt
- braille/malayalam/beginning.txt
- braille/malayalam/middle.txt
- configure.ac
- engine/engine.py
- language-editor/main.py
- preferences/main.py
- preferences/ui.glade


Changes:

=====================================
braille/Makefile.am
=====================================
--- a/braille/Makefile.am
+++ b/braille/Makefile.am
@@ -25,7 +25,9 @@ SUBDIRS = english \
 	numerical \
 	spanish \
 	tamil \
-	french
+	french \
+	arabic \
+	braille
 
 braille_DATA = \
 	languages.txt \


=====================================
braille/arabic/Makefile.am
=====================================
--- /dev/null
+++ b/braille/arabic/Makefile.am
@@ -0,0 +1,36 @@
+# vim:set noet ts=4:
+#
+# ibus-sharada-braille - The braille ibus engine
+#
+# Copyright (c) 2007-2011 Peng Huang <shawn.p.huang at gmail.com>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program 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 General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+braille_arabic_DATA = \
+	abbreviations.txt \
+	abbreviations_default.txt \
+	beginning.txt \
+	help.txt \
+	middle.txt \
+	punctuations.txt \
+	$(NULL)
+
+braille_arabicdir = $(pkgdatadir)/braille/arabic
+
+		
+CLEANFILES = \
+	*~ \
+	$(NULL)
+


=====================================
braille/arabic/abbreviations.txt
=====================================
--- /dev/null
+++ b/braille/arabic/abbreviations.txt


=====================================
braille/arabic/abbreviations_default.txt
=====================================
--- /dev/null
+++ b/braille/arabic/abbreviations_default.txt


=====================================
braille/arabic/beginning.txt
=====================================
--- /dev/null
+++ b/braille/arabic/beginning.txt
@@ -0,0 +1,42 @@
+12 ب
+2345 ت
+1456 ث
+245 ج
+145 د
+1235 ر
+1356 ز
+234 س
+146 ش
+12346 ص
+1246 ض
+12356 ع
+126 غ
+124 ف
+12345 ق
+13 ك
+123 ل
+125 ه
+2456 و
+1256 ؤ
+24 ي
+16 ة
+345 آ
+34 أ
+2 َ
+136 ُ
+26 ٌ
+35 ً
+6 ّ
+1346 خ
+2346 ذ
+23456 ط
+156 ح
+123456 ظ
+134 م
+1345 ن
+13456 ئ
+1236 ﻻ
+3 ء
+15 ِ
+23 ً
+25 ْ


=====================================
braille/arabic/help.txt
=====================================
--- /dev/null
+++ b/braille/arabic/help.txt
@@ -0,0 +1,153 @@
+Sharada braille writer is a text editor using a six key approach for producing print materials in different 
+languages. It is written in python3 with gtk3 framework. It uses letters 
+f, d, s, j, k, and l in the keyboard to represent 1, 2, 3, 4, 5 and 6 of the braille 
+dots respectively. One can use different combinations of braille to produce text. For example key 'f'
+will produce 'a', 'f' and 'd' will produce 'b' and 'f' and 'j' will produce 'c' and like. The combination of keys 
+should be pressed and released together.
+
+What is new in Sharada braille writer 2.0.
+1 - Now using Python3 with gtk3,
+2 - Auto new line,
+3 - Layout independent,
+4 - work with different distribution of Linux,
+5 - Easy to add new language,
+6 - List switcher using Alt,
+7 - separate abbreviation and punctuation list for each language,
+8 - Common text manipulation keys activated,
+9 - Simple Mode,
+10 - Python espeak no longer required,
+11 - Version independent,
+12 - Open with SBW enabled,
+13 - Delete event cancel problem solved,
+14 - Options moved to main window,
+15 - No garbage printing and no longer hang.
+
+Features
+	
+Languages : - This version comes with six languages English, Malayalam, Hindi, Kannada, Tamil, and Spanish.
+English is the default language, and one can switch to other languages by pressing f2 for Hindi, f3 for Kannada,
+f4 for malayalam, f5 for Spanish and f6 Tamil. One can go back too English using f1 key. One can select the
+language by using language menu as well. 
+
+Orca support : - Sbw is fully orca supported and one can use the orca preferences for changing voices, punctuation levels 
+to be pronounced, key echo  by character etc. In order to activate orca preferences for sbw one should 
+press insert+control+space together after opening the program. After the installation of the program, 
+we recommend you to open the orca preferences for sbw and check the echo by character and uncheck the 
+key echo to get a better speech support. To get speech support for Kannada and Tamil one should change 
+the language to that language using the orca preferences for sbw.
+
+Contractions : - All the grade 2 and grade 3 contractions in English and Malayalam is available in sbw. 
+In order to activate contractions one should uncheck the simple mode.To produce contraction, press the combination of
+letters after pressing the contraction key, Dot 5, 5-6, 4-5-6, 4, 3, 3-6, 6, 3, 1-5-6 are the contraction signs.
+For example, press f and d together after pressing 'j' will produce word "better" and like. Along with these contractions,
+we have provided some contractions in the simple mode itself. For this purpose we have used the combinations which
+are not used for alphabets. Contraction guide is provided in the end.
+
+
+Abbreviations : - One major feature of sbw is the facility to add new abbreviations. In order to add the abbreviation
+1 - press alt+shift+o or go to the abbreviation menu in the menu-bar and open.
+2 - type the abbreviated word and then press space twice and then type the word or words to be expanded.
+3 - press alt+shift+s to save the combination.
+Alt+shift+r will  delete all newly added abbreviations and restore the list to the default position.
+We have already provided all the grade 3 abbreviations in the package. letter 'a' is the abbreviation 
+key and one should press 'a'  after typing the abbreviation. list of default abbreviations are given 
+at the end.
+
+Numerals : - By pressing f7 key one can select numeral mode. Nemeth code approach is accepted here. In this mode, 
+d, s, k, l representing 2, 3, 5, 6 of the braille dots are used for numbers that is d for 1 and d, 
+s together for 2 etc. Other letters are written as in braille mode.f, k, l combination is used to produce 
+underscore an this combination can be used  to produce line in any text. Numeral mode is used for handling 
+mathematics.
+
+
+Punctuations : - To produce any punctuation one should press semicolon in the ordinary keyboard and then press necessary 
+combinations. In order to meet certain situations we have made some changes in the list. 
+Please not that we have selected some combinations which are different from conventional braille.
+d , coma, 
+ds ; semicolon, 
+dk : colon, 
+dkl . fulstop, 
+dl " double quote, 
+sk ' apostrophe or single-quote, 
+fl - hyphen, 
+fds ( left-paren, 
+jkl ) right-paren, 
+dsk ! exclamation-mark, 
+dsl ? question-mark, 
+fdsj % percent, 
+fsk < less-than, 
+djl > greater-than,
+fdl [ left-bracket, 
+sjk ] right-bracket, 
+fsj { left-brace, 
+fjl } right-brace, 
+dsjk @
+fdsjkl = equals, 
+kl ° degrees, 
+s . dot, 
+fsl _ underline, 
+fdjl $
+fdsk ^
+djkl √
+fdjkl Rupees Sign
+press these key combinations after pressing semicolon in the key-board.	
+
+
+Beginning list and middle list : - Left alt and right alt are used to switch bitween beginning list and middle list. 
+This will help the user to write any letter anywhere. for example  one can write a vowel in hindi inside a word. 
+To write a full vowel instead of a sign, one should press left alt and then type the combination needed for the vowel.
+
+Fond and fond size : - Now we can change the fond and size of the text. To change the fond and size, press tab once and 
+enter in the fond menu. Here one can select fond by using down arrow and change size by selecting size using tab key. 
+again go to select button using tab and enter. To continue writing, tab again to text.
+
+Fond and background colour : - Now one can change the colour of the fond and background.
+use the tab key to select the colour as in the case of fond.
+
+Spell checker : - Sbw has a spell checker and at present it will support English.
+
+Audio converter : - audio converter in the tools menu will help one to convert text in to wave format and then can 
+be used in other mobile devices to listen to.
+
+Simple-Mode : - sbw is installed as the simple mode checked. This is done to avoid complications for a beginner. 
+An advanced user can uncheck the simple mode using the tab key and can use contractions and abbreviations.
+
+Auto-New-Line : - One can select line limit using the tab key.After selecting the number of characters needed on a line, 
+orca will announce the fact when one cross the limit. Anyhow the program is installed auto new line as default. 
+In this mode the program itself will select the new line when one cross the limit and press the space.
+
+
+Navigation : - Ctrl+home,ctrl+end will help to move to the top and end of the file. Arrow keys will help to navigate
+through text line by line and letter by letter. Ctrl+right arrow will help to navigate between words.
+control+i will help to go to a line.
+
+
+Text Manipulation : - Letter 'g' is used to produce capital letter in English and chillu in malayalam. 
+press letter 'g' before typing the braille combination to make a letter capital and press 'g' after typing 
+the braille combination to make a letter chillu in malayalam. If 'g' is pressed before using a contracted 
+word, whole letters will be in capital. Letter 'h' will delete the last letter typed and 'g' and 'h' pressed together 
+will delete the last word. Backspace and delete button also will function to delete the selected area. 
+control+shift+right arrow will select the word and Ctrl+c will copy the file.
+
+
+Copyright (c) 2011-2013 LIOS Development Team 
+
+    All rights reserved . Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 
+
+    Redistributions of source code must retain the below copyright notice, 
+
+    this list of conditions and the following disclaimer. 
+
+    Redistributions in binary form must reproduce the below copyright notice, 
+
+    this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 
+
+    Neither the name of the nor the Lios team names of its 
+
+    contributors may be used to endorse or promote products derived from this software without specific prior written permission. 
+
+    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." 
+
+FREE SOFTWARE FREE SOCIETY
+
+


=====================================
braille/arabic/middle.txt
=====================================
--- /dev/null
+++ b/braille/arabic/middle.txt
@@ -0,0 +1,42 @@
+12 ب
+2345 ت
+1456 ث
+245 ج
+145 د
+1235 ر
+1356 ز
+234 س
+146 ش
+12346 ص
+1246 ض
+12356 ع
+126 غ
+124 ف
+12345 ق
+13 ك
+123 ل
+125 ه
+2456 و
+1256 ؤ
+24 ي
+16 ة
+345 آ
+34 أ
+2 َ
+136 ُ
+26 ٌ
+35 ً
+6 ّ
+1346 خ
+2346 ذ
+23456 ط
+156 ح
+123456 ظ
+134 م
+1345 ن
+13456 ئ
+1236 ﻻ
+3 ء
+15 ِ
+23 ً
+25 ْ


=====================================
braille/arabic/punctuations.txt
=====================================
--- /dev/null
+++ b/braille/arabic/punctuations.txt


=====================================
braille/braille/Makefile.am
=====================================
--- /dev/null
+++ b/braille/braille/Makefile.am
@@ -0,0 +1,36 @@
+# vim:set noet ts=4:
+#
+# ibus-sharada-braille - The braille ibus engine
+#
+# Copyright (c) 2007-2011 Peng Huang <shawn.p.huang at gmail.com>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program 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 General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+braille_braille_DATA = \
+	abbreviations.txt \
+	abbreviations_default.txt \
+	beginning.txt \
+	help.txt \
+	middle.txt \
+	punctuations.txt \
+	$(NULL)
+
+braille_brailledir = $(pkgdatadir)/braille/braille
+
+		
+CLEANFILES = \
+	*~ \
+	$(NULL)
+


=====================================
braille/braille/abbreviations.txt
=====================================
--- /dev/null
+++ b/braille/braille/abbreviations.txt


=====================================
braille/braille/abbreviations_default.txt
=====================================
--- /dev/null
+++ b/braille/braille/abbreviations_default.txt


=====================================
braille/braille/beginning.txt
=====================================
--- /dev/null
+++ b/braille/braille/beginning.txt
@@ -0,0 +1,255 @@
+1 ⠁
+2 ⠂
+12 ⠃
+3 ⠄
+13 ⠅
+23 ⠆
+123 ⠇
+4 ⠈
+14 ⠉
+24 ⠊
+124 ⠋
+34 ⠌
+134 ⠍
+234 ⠎
+1234 ⠏
+5 ⠐
+15 ⠑
+25 ⠒
+125 ⠓
+35 ⠔
+135 ⠕
+235 ⠖
+1235 ⠗
+45 ⠘
+145 ⠙
+245 ⠚
+1245 ⠛
+345 ⠜
+1345 ⠝
+2345 ⠞
+12345 ⠟
+6 ⠠
+16 ⠡
+26 ⠢
+126 ⠣
+36 ⠤
+136 ⠥
+236 ⠦
+1236 ⠧
+46 ⠨
+146 ⠩
+246 ⠪
+1246 ⠫
+346 ⠬
+1346 ⠭
+2346 ⠮
+12346 ⠯
+56 ⠰
+156 ⠱
+256 ⠲
+1256 ⠳
+356 ⠴
+1356 ⠵
+2356 ⠶
+12356 ⠷
+456 ⠸
+1456 ⠹
+2456 ⠺
+12456 ⠻
+3456 ⠼
+13456 ⠽
+23456 ⠾
+123456 ⠿
+7 ⡀
+17 ⡁
+27 ⡂
+127 ⡃
+37 ⡄
+137 ⡅
+237 ⡆
+1237 ⡇
+47 ⡈
+147 ⡉
+247 ⡊
+1247 ⡋
+347 ⡌
+1347 ⡍
+2347 ⡎
+12347 ⡏
+57 ⡐
+157 ⡑
+257 ⡒
+1257 ⡓
+357 ⡔
+1357 ⡕
+2357 ⡖
+12357 ⡗
+457 ⡘
+1457 ⡙
+2457 ⡚
+12457 ⡛
+3457 ⡜
+13457 ⡝
+23457 ⡞
+123457 ⡟
+67 ⡠
+167 ⡡
+267 ⡢
+1267 ⡣
+367 ⡤
+1367 ⡥
+2367 ⡦
+12367 ⡧
+467 ⡨
+1467 ⡩
+2467 ⡪
+12467 ⡫
+3467 ⡬
+13467 ⡭
+23467 ⡮
+123467 ⡯
+567 ⡰
+1567 ⡱
+2567 ⡲
+12567 ⡳
+3567 ⡴
+13567 ⡵
+23567 ⡶
+123567 ⡷
+4567 ⡸
+14567 ⡹
+24567 ⡺
+124567 ⡻
+34567 ⡼
+134567 ⡽
+234567 ⡾
+1234567 ⡿
+8 ⢀
+18 ⢁
+28 ⢂
+128 ⢃
+38 ⢄
+138 ⢅
+238 ⢆
+1238 ⢇
+48 ⢈
+148 ⢉
+248 ⢊
+1248 ⢋
+348 ⢌
+1348 ⢍
+2348 ⢎
+12348 ⢏
+58 ⢐
+158 ⢑
+258 ⢒
+1258 ⢓
+358 ⢔
+1358 ⢕
+2358 ⢖
+12358 ⢗
+458 ⢘
+1458 ⢙
+2458 ⢚
+12458 ⢛
+3458 ⢜
+13458 ⢝
+23458 ⢞
+123458 ⢟
+68 ⢠
+168 ⢡
+268 ⢢
+1268 ⢣
+368 ⢤
+1368 ⢥
+2368 ⢦
+12368 ⢧
+468 ⢨
+1468 ⢩
+2468 ⢪
+12468 ⢫
+3468 ⢬
+13468 ⢭
+23468 ⢮
+123468 ⢯
+568 ⢰
+1568 ⢱
+2568 ⢲
+12568 ⢳
+3568 ⢴
+13568 ⢵
+23568 ⢶
+123568 ⢷
+4568 ⢸
+14568 ⢹
+24568 ⢺
+124568 ⢻
+34568 ⢼
+134568 ⢽
+234568 ⢾
+1234568 ⢿
+78 ⣀
+178 ⣁
+278 ⣂
+1278 ⣃
+378 ⣄
+1378 ⣅
+2378 ⣆
+12378 ⣇
+478 ⣈
+1478 ⣉
+2478 ⣊
+12478 ⣋
+3478 ⣌
+13478 ⣍
+23478 ⣎
+123478 ⣏
+578 ⣐
+1578 ⣑
+2578 ⣒
+12578 ⣓
+3578 ⣔
+13578 ⣕
+23578 ⣖
+123578 ⣗
+4578 ⣘
+14578 ⣙
+24578 ⣚
+124578 ⣛
+34578 ⣜
+134578 ⣝
+234578 ⣞
+1234578 ⣟
+678 ⣠
+1678 ⣡
+2678 ⣢
+12678 ⣣
+3678 ⣤
+13678 ⣥
+23678 ⣦
+123678 ⣧
+4678 ⣨
+14678 ⣩
+24678 ⣪
+124678 ⣫
+34678 ⣬
+134678 ⣭
+234678 ⣮
+1234678 ⣯
+5678 ⣰
+15678 ⣱
+25678 ⣲
+125678 ⣳
+35678 ⣴
+135678 ⣵
+235678 ⣶
+1235678 ⣷
+45678 ⣸
+145678 ⣹
+245678 ⣺
+1245678 ⣻
+345678 ⣼
+1345678 ⣽
+2345678 ⣾
+12345678 ⣿


=====================================
braille/braille/help.txt
=====================================
--- /dev/null
+++ b/braille/braille/help.txt
@@ -0,0 +1,153 @@
+Sharada braille writer is a text editor using a six key approach for producing print materials in different 
+languages. It is written in python3 with gtk3 framework. It uses letters 
+f, d, s, j, k, and l in the keyboard to represent 1, 2, 3, 4, 5 and 6 of the braille 
+dots respectively. One can use different combinations of braille to produce text. For example key 'f'
+will produce 'a', 'f' and 'd' will produce 'b' and 'f' and 'j' will produce 'c' and like. The combination of keys 
+should be pressed and released together.
+
+What is new in Sharada braille writer 2.0.
+1 - Now using Python3 with gtk3,
+2 - Auto new line,
+3 - Layout independent,
+4 - work with different distribution of Linux,
+5 - Easy to add new language,
+6 - List switcher using Alt,
+7 - separate abbreviation and punctuation list for each language,
+8 - Common text manipulation keys activated,
+9 - Simple Mode,
+10 - Python espeak no longer required,
+11 - Version independent,
+12 - Open with SBW enabled,
+13 - Delete event cancel problem solved,
+14 - Options moved to main window,
+15 - No garbage printing and no longer hang.
+
+Features
+	
+Languages : - This version comes with six languages English, Malayalam, Hindi, Kannada, Tamil, and Spanish.
+English is the default language, and one can switch to other languages by pressing f2 for Hindi, f3 for Kannada,
+f4 for malayalam, f5 for Spanish and f6 Tamil. One can go back too English using f1 key. One can select the
+language by using language menu as well. 
+
+Orca support : - Sbw is fully orca supported and one can use the orca preferences for changing voices, punctuation levels 
+to be pronounced, key echo  by character etc. In order to activate orca preferences for sbw one should 
+press insert+control+space together after opening the program. After the installation of the program, 
+we recommend you to open the orca preferences for sbw and check the echo by character and uncheck the 
+key echo to get a better speech support. To get speech support for Kannada and Tamil one should change 
+the language to that language using the orca preferences for sbw.
+
+Contractions : - All the grade 2 and grade 3 contractions in English and Malayalam is available in sbw. 
+In order to activate contractions one should uncheck the simple mode.To produce contraction, press the combination of
+letters after pressing the contraction key, Dot 5, 5-6, 4-5-6, 4, 3, 3-6, 6, 3, 1-5-6 are the contraction signs.
+For example, press f and d together after pressing 'j' will produce word "better" and like. Along with these contractions,
+we have provided some contractions in the simple mode itself. For this purpose we have used the combinations which
+are not used for alphabets. Contraction guide is provided in the end.
+
+
+Abbreviations : - One major feature of sbw is the facility to add new abbreviations. In order to add the abbreviation
+1 - press alt+shift+o or go to the abbreviation menu in the menu-bar and open.
+2 - type the abbreviated word and then press space twice and then type the word or words to be expanded.
+3 - press alt+shift+s to save the combination.
+Alt+shift+r will  delete all newly added abbreviations and restore the list to the default position.
+We have already provided all the grade 3 abbreviations in the package. letter 'a' is the abbreviation 
+key and one should press 'a'  after typing the abbreviation. list of default abbreviations are given 
+at the end.
+
+Numerals : - By pressing f7 key one can select numeral mode. Nemeth code approach is accepted here. In this mode, 
+d, s, k, l representing 2, 3, 5, 6 of the braille dots are used for numbers that is d for 1 and d, 
+s together for 2 etc. Other letters are written as in braille mode.f, k, l combination is used to produce 
+underscore an this combination can be used  to produce line in any text. Numeral mode is used for handling 
+mathematics.
+
+
+Punctuations : - To produce any punctuation one should press semicolon in the ordinary keyboard and then press necessary 
+combinations. In order to meet certain situations we have made some changes in the list. 
+Please not that we have selected some combinations which are different from conventional braille.
+d , coma, 
+ds ; semicolon, 
+dk : colon, 
+dkl . fulstop, 
+dl " double quote, 
+sk ' apostrophe or single-quote, 
+fl - hyphen, 
+fds ( left-paren, 
+jkl ) right-paren, 
+dsk ! exclamation-mark, 
+dsl ? question-mark, 
+fdsj % percent, 
+fsk < less-than, 
+djl > greater-than,
+fdl [ left-bracket, 
+sjk ] right-bracket, 
+fsj { left-brace, 
+fjl } right-brace, 
+dsjk @
+fdsjkl = equals, 
+kl ° degrees, 
+s . dot, 
+fsl _ underline, 
+fdjl $
+fdsk ^
+djkl √
+fdjkl Rupees Sign
+press these key combinations after pressing semicolon in the key-board.	
+
+
+Beginning list and middle list : - Left alt and right alt are used to switch bitween beginning list and middle list. 
+This will help the user to write any letter anywhere. for example  one can write a vowel in hindi inside a word. 
+To write a full vowel instead of a sign, one should press left alt and then type the combination needed for the vowel.
+
+Fond and fond size : - Now we can change the fond and size of the text. To change the fond and size, press tab once and 
+enter in the fond menu. Here one can select fond by using down arrow and change size by selecting size using tab key. 
+again go to select button using tab and enter. To continue writing, tab again to text.
+
+Fond and background colour : - Now one can change the colour of the fond and background.
+use the tab key to select the colour as in the case of fond.
+
+Spell checker : - Sbw has a spell checker and at present it will support English.
+
+Audio converter : - audio converter in the tools menu will help one to convert text in to wave format and then can 
+be used in other mobile devices to listen to.
+
+Simple-Mode : - sbw is installed as the simple mode checked. This is done to avoid complications for a beginner. 
+An advanced user can uncheck the simple mode using the tab key and can use contractions and abbreviations.
+
+Auto-New-Line : - One can select line limit using the tab key.After selecting the number of characters needed on a line, 
+orca will announce the fact when one cross the limit. Anyhow the program is installed auto new line as default. 
+In this mode the program itself will select the new line when one cross the limit and press the space.
+
+
+Navigation : - Ctrl+home,ctrl+end will help to move to the top and end of the file. Arrow keys will help to navigate
+through text line by line and letter by letter. Ctrl+right arrow will help to navigate between words.
+control+i will help to go to a line.
+
+
+Text Manipulation : - Letter 'g' is used to produce capital letter in English and chillu in malayalam. 
+press letter 'g' before typing the braille combination to make a letter capital and press 'g' after typing 
+the braille combination to make a letter chillu in malayalam. If 'g' is pressed before using a contracted 
+word, whole letters will be in capital. Letter 'h' will delete the last letter typed and 'g' and 'h' pressed together 
+will delete the last word. Backspace and delete button also will function to delete the selected area. 
+control+shift+right arrow will select the word and Ctrl+c will copy the file.
+
+
+Copyright (c) 2011-2013 LIOS Development Team 
+
+    All rights reserved . Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 
+
+    Redistributions of source code must retain the below copyright notice, 
+
+    this list of conditions and the following disclaimer. 
+
+    Redistributions in binary form must reproduce the below copyright notice, 
+
+    this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 
+
+    Neither the name of the nor the Lios team names of its 
+
+    contributors may be used to endorse or promote products derived from this software without specific prior written permission. 
+
+    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." 
+
+FREE SOFTWARE FREE SOCIETY
+
+


=====================================
braille/braille/middle.txt
=====================================
--- /dev/null
+++ b/braille/braille/middle.txt
@@ -0,0 +1,255 @@
+1 ⠁
+2 ⠂
+12 ⠃
+3 ⠄
+13 ⠅
+23 ⠆
+123 ⠇
+4 ⠈
+14 ⠉
+24 ⠊
+124 ⠋
+34 ⠌
+134 ⠍
+234 ⠎
+1234 ⠏
+5 ⠐
+15 ⠑
+25 ⠒
+125 ⠓
+35 ⠔
+135 ⠕
+235 ⠖
+1235 ⠗
+45 ⠘
+145 ⠙
+245 ⠚
+1245 ⠛
+345 ⠜
+1345 ⠝
+2345 ⠞
+12345 ⠟
+6 ⠠
+16 ⠡
+26 ⠢
+126 ⠣
+36 ⠤
+136 ⠥
+236 ⠦
+1236 ⠧
+46 ⠨
+146 ⠩
+246 ⠪
+1246 ⠫
+346 ⠬
+1346 ⠭
+2346 ⠮
+12346 ⠯
+56 ⠰
+156 ⠱
+256 ⠲
+1256 ⠳
+356 ⠴
+1356 ⠵
+2356 ⠶
+12356 ⠷
+456 ⠸
+1456 ⠹
+2456 ⠺
+12456 ⠻
+3456 ⠼
+13456 ⠽
+23456 ⠾
+123456 ⠿
+7 ⡀
+17 ⡁
+27 ⡂
+127 ⡃
+37 ⡄
+137 ⡅
+237 ⡆
+1237 ⡇
+47 ⡈
+147 ⡉
+247 ⡊
+1247 ⡋
+347 ⡌
+1347 ⡍
+2347 ⡎
+12347 ⡏
+57 ⡐
+157 ⡑
+257 ⡒
+1257 ⡓
+357 ⡔
+1357 ⡕
+2357 ⡖
+12357 ⡗
+457 ⡘
+1457 ⡙
+2457 ⡚
+12457 ⡛
+3457 ⡜
+13457 ⡝
+23457 ⡞
+123457 ⡟
+67 ⡠
+167 ⡡
+267 ⡢
+1267 ⡣
+367 ⡤
+1367 ⡥
+2367 ⡦
+12367 ⡧
+467 ⡨
+1467 ⡩
+2467 ⡪
+12467 ⡫
+3467 ⡬
+13467 ⡭
+23467 ⡮
+123467 ⡯
+567 ⡰
+1567 ⡱
+2567 ⡲
+12567 ⡳
+3567 ⡴
+13567 ⡵
+23567 ⡶
+123567 ⡷
+4567 ⡸
+14567 ⡹
+24567 ⡺
+124567 ⡻
+34567 ⡼
+134567 ⡽
+234567 ⡾
+1234567 ⡿
+8 ⢀
+18 ⢁
+28 ⢂
+128 ⢃
+38 ⢄
+138 ⢅
+238 ⢆
+1238 ⢇
+48 ⢈
+148 ⢉
+248 ⢊
+1248 ⢋
+348 ⢌
+1348 ⢍
+2348 ⢎
+12348 ⢏
+58 ⢐
+158 ⢑
+258 ⢒
+1258 ⢓
+358 ⢔
+1358 ⢕
+2358 ⢖
+12358 ⢗
+458 ⢘
+1458 ⢙
+2458 ⢚
+12458 ⢛
+3458 ⢜
+13458 ⢝
+23458 ⢞
+123458 ⢟
+68 ⢠
+168 ⢡
+268 ⢢
+1268 ⢣
+368 ⢤
+1368 ⢥
+2368 ⢦
+12368 ⢧
+468 ⢨
+1468 ⢩
+2468 ⢪
+12468 ⢫
+3468 ⢬
+13468 ⢭
+23468 ⢮
+123468 ⢯
+568 ⢰
+1568 ⢱
+2568 ⢲
+12568 ⢳
+3568 ⢴
+13568 ⢵
+23568 ⢶
+123568 ⢷
+4568 ⢸
+14568 ⢹
+24568 ⢺
+124568 ⢻
+34568 ⢼
+134568 ⢽
+234568 ⢾
+1234568 ⢿
+78 ⣀
+178 ⣁
+278 ⣂
+1278 ⣃
+378 ⣄
+1378 ⣅
+2378 ⣆
+12378 ⣇
+478 ⣈
+1478 ⣉
+2478 ⣊
+12478 ⣋
+3478 ⣌
+13478 ⣍
+23478 ⣎
+123478 ⣏
+578 ⣐
+1578 ⣑
+2578 ⣒
+12578 ⣓
+3578 ⣔
+13578 ⣕
+23578 ⣖
+123578 ⣗
+4578 ⣘
+14578 ⣙
+24578 ⣚
+124578 ⣛
+34578 ⣜
+134578 ⣝
+234578 ⣞
+1234578 ⣟
+678 ⣠
+1678 ⣡
+2678 ⣢
+12678 ⣣
+3678 ⣤
+13678 ⣥
+23678 ⣦
+123678 ⣧
+4678 ⣨
+14678 ⣩
+24678 ⣪
+124678 ⣫
+34678 ⣬
+134678 ⣭
+234678 ⣮
+1234678 ⣯
+5678 ⣰
+15678 ⣱
+25678 ⣲
+125678 ⣳
+35678 ⣴
+135678 ⣵
+235678 ⣶
+1235678 ⣷
+45678 ⣸
+145678 ⣹
+245678 ⣺
+1245678 ⣻
+345678 ⣼
+1345678 ⣽
+2345678 ⣾
+12345678 ⣿


=====================================
braille/braille/punctuations.txt
=====================================
--- /dev/null
+++ b/braille/braille/punctuations.txt


=====================================
braille/configure.ac
=====================================
--- a/braille/configure.ac
+++ b/braille/configure.ac
@@ -31,6 +31,8 @@ numerical/Makefile
 spanish/Makefile
 tamil/Makefile
 french/Makefile
+arabic/Makefile
+braille/Makefile
 
 )
 


=====================================
braille/languages.txt
=====================================
--- a/braille/languages.txt
+++ b/braille/languages.txt
@@ -6,3 +6,5 @@ malayalam-ml
 spanish-es
 tamil-ta
 numerical-en
+arabic-en
+braille-en


=====================================
braille/malayalam/beginning.txt
=====================================
--- a/braille/malayalam/beginning.txt
+++ b/braille/malayalam/beginning.txt
@@ -1,4 +1,5 @@
 4 ്
+3 ്
 235 ഫ
 8 ്‍
 124 ഋ


=====================================
braille/malayalam/middle.txt
=====================================
--- a/braille/malayalam/middle.txt
+++ b/braille/malayalam/middle.txt
@@ -1,4 +1,5 @@
 4 ്
+3 ്
 8 ്‍
 124 ൃ
 345 ാ


=====================================
configure.ac
=====================================
--- a/configure.ac
+++ b/configure.ac
@@ -80,6 +80,8 @@ braille/malayalam/Makefile
 braille/numerical/Makefile
 braille/spanish/Makefile
 braille/tamil/Makefile
+braille/arabic/Makefile
+braille/braille/Makefile
 preferences/Makefile
 preferences/ibus-braille-preferences
 abbreviation-editor/Makefile


=====================================
engine/engine.py
=====================================
--- a/engine/engine.py
+++ b/engine/engine.py
@@ -28,6 +28,13 @@ import configparser
 from gi.repository import GLib
 from gi.repository import IBus
 from gi.repository import Pango
+
+#Liblouis
+import louis
+
+# For 3 dot system
+from threading import Timer
+
  
 keysyms = IBus
 
@@ -79,23 +86,44 @@ class EngineSharadaBraille(IBus.Engine):
 		self.pressed_keys = u""
 		
 		Config = configparser.ConfigParser()
-		if (Config.read("{}/isb.cfg".format(home_dir)) == []):
-			self.checked_languages = ["english-en","hindi-hi"]
-			self.simple_mode =  0
-			self.keycode_map = {33:"1",32:"2",31:"3",36:"4",37:"5",38:"6",30:"7",34:"8",35:"9",39:"0"}
-			self.key_to_switch_between_languages = 119
-			self.list_switch_key = 56
-			self.language_iter = 0
-		else:
+		try:
+			Config.read("{}/isb.cfg".format(home_dir))
 			self.checked_languages = Config.get('cfg',"checked_languages").split(",")
 			self.simple_mode = int(Config.get('cfg',"simple-mode"))
 			self.keycode_map = {}
-			for key,value in {"dot-1":"1","dot-2":"2","dot-3":"3","dot-4":"4","dot-5":"5","dot-6":"6","punctuation_key":"0","capitol_switch_key":"8","letter_deletion_key":"9","abbreviation_key":"7"}.items():
+			for key,value in {"dot-1":"1","dot-2":"2","dot-3":"3","dot-4":"4","dot-5":"5",
+			"dot-6":"6","dot-7":"7","dot-8":"8","punctuation_key":"0","capitol_switch_key":"c",
+			"letter_deletion_key":"9","abbreviation_key":"a","one_hand_skip_key":"o"}.items():
 				self.keycode_map[int(Config.get('cfg',key))] = value
 			self.key_to_switch_between_languages = int(Config.get('cfg',"switch_between_languages"))
 			self.list_switch_key = int(Config.get('cfg',"list_switch_key"))
 			self.language_iter = int(Config.get('cfg',"default-language"))
-		
+			self.conventional_braille = int(Config.get('cfg',"conventional-braille"))
+			self.liblouis_mode = int(Config.get('cfg',"liblouis-mode"))
+			self.one_hand_mode = int(Config.get('cfg',"one-hand-mode"))
+			self.one_hand_conversion_delay = int(Config.get('cfg',"one-hand-conversion-delay"))*1/1000;
+			self.liblouis_table_list = Config.get('cfg',"liblouis-table-list").split(",")
+		except:
+			self.checked_languages = ["english-en","hindi-hi"]
+			self.simple_mode =  0
+			self.keycode_map = {33:"1",32:"2",31:"3",36:"4",37:"5",38:"6",44:"7",52:"8",30:"a",34:"c",35:"9",39:"0"}
+			self.key_to_switch_between_languages = 119
+			self.list_switch_key = 56
+			self.language_iter = 0
+			self.conventional_braille = False;
+			self.one_hand_mode = False
+			self.one_hand_conversion_delay = 0.5
+			self.liblouis_mode = False;
+			self.liblouis_table_list = ['unicode.dis','en-us-g2.ctb'];
+
+
+		self.conventional_braille_dot_4 = False;
+		self.conventional_braille_dot_4_pass = False;
+		self.conventional_braille_dot_3 = False;
+
+		#Three dot braille
+		self.three_dot_pos = 1;
+
 		#Braille Iter's
 		self.braille_letter_map_pos = 0;
 		
@@ -137,10 +165,15 @@ class EngineSharadaBraille(IBus.Engine):
 		#Key Release
 		if not is_press:
 			ordered_pressed_keys = self.order_pressed_keys(self.pressed_keys);
-			self.pressed_keys = "";
 			
+			if (ordered_pressed_keys == "3" and self.conventional_braille):
+				self.conventional_braille_dot_3 = True;
+				self.old_braille_letter_map_pos = self.braille_letter_map_pos
+
 			#Move map position to contraction if any
-			if ordered_pressed_keys in self.contractions_dict.keys():
+			if (ordered_pressed_keys in self.contractions_dict.keys()
+			and self.liblouis_mode == False
+			and self.one_hand_mode == False):
 				self.braille_letter_map_pos = self.contractions_dict[ordered_pressed_keys];
 			
 			#Toggle Punctuation
@@ -148,7 +181,7 @@ class EngineSharadaBraille(IBus.Engine):
 				self.braille_letter_map_pos = 2;
 			
 			#Expand Abbreviation
-			elif (ordered_pressed_keys == "7" and self.simple_mode == 0):
+			elif (ordered_pressed_keys == "a" and self.simple_mode == 0):
 				#self.pressed_keys = "";
 				surrounding_text = self.get_surrounding_text()
 				text = surrounding_text[0].get_text()
@@ -167,7 +200,7 @@ class EngineSharadaBraille(IBus.Engine):
 					#self.__commit_string(self.abbreviations[last_word.decode('UTF-8')].decode('UTF-8'))
 
 			#Delete Last word
-			elif (ordered_pressed_keys == "89"):
+			elif (ordered_pressed_keys == "c9"):
 				surrounding_text = self.get_surrounding_text()
 				text = surrounding_text[0].get_text()
 				cursor_pos = surrounding_text[1]
@@ -202,7 +235,7 @@ class EngineSharadaBraille(IBus.Engine):
 				self.delete_surrounding_text(-1,1);	
 
 			#Toggle capital switch
-			elif (ordered_pressed_keys == "8" and self.language == "english"):
+			elif (ordered_pressed_keys == "c" and self.language == "english"):
 				if (self.capital_switch == 1):
 					if (self.capital == False):
 						self.capital = True
@@ -212,16 +245,46 @@ class EngineSharadaBraille(IBus.Engine):
 						speak("Caps Lock Off!")
 						self.capital_switch = 0;
 				self.capital_switch = 1;
-									
+
+			elif( self.conventional_braille == True and
+				ordered_pressed_keys == "4" and self.liblouis_mode == False):
+					self.conventional_braille_dot_4 = True;
 				
 			else:
 				if (len(ordered_pressed_keys) > 0):
-					value = self.map[ordered_pressed_keys][self.braille_letter_map_pos]
-					if (self.capital_switch == 1 or self.capital == 1):
-						value = value.upper()
-						self.capital_switch = 0;
-					self.__commit_string(value);
-					self.braille_letter_map_pos = 1;
+					if (self.liblouis_mode):
+						sum = 0
+						for i in ordered_pressed_keys:
+							sum = sum + pow(2,int(i)-1);
+						pressed_dots = 0x2800 + sum
+						#self.louis_current_typing_word = self.louis_current_typing_word + chr(pressed_dots)
+						self.__commit_string(chr(pressed_dots))
+					else:
+						if (self.one_hand_mode):
+							if (self.three_dot_pos == 1 and self.pressed_keys != ""):
+								if (self.pressed_keys == "o"):
+									self.pressed_keys = "";
+								self.three_dot_pos = 2;
+								t = Timer(self.one_hand_conversion_delay, self.three_dot_do_commit)
+								t.start()
+							return False
+
+						try:
+							value = self.map[ordered_pressed_keys][self.braille_letter_map_pos]
+						except:
+							value = "";
+						if (self.capital_switch == 1 or self.capital == 1):
+							value = value.upper()
+							self.capital_switch = 0;
+						self.__commit_string(value);
+						self.conventional_braille_dot_4_pass = False;
+						self.conventional_braille_dot_3 = False;
+						if (self.conventional_braille == 1 and self.conventional_braille_dot_4):
+							self.conventional_braille_dot_4 = False;
+							self.__commit_string(self.map["4"][self.braille_letter_map_pos]);
+							self.conventional_braille_dot_4_pass = True;
+						self.braille_letter_map_pos = 1;
+			self.pressed_keys = "";
 			return False
 
 
@@ -230,11 +293,40 @@ class EngineSharadaBraille(IBus.Engine):
 			self.get_surrounding_text()
 			if keycode in self.keycode_map.keys():
 				#Store the letters
-				self.pressed_keys  += self.keycode_map[keycode];
+				if (self.one_hand_mode):
+					if (self.three_dot_pos == 1):
+						self.pressed_keys  += self.keycode_map[keycode];
+					else:
+						self.pressed_keys  += str(int(self.keycode_map[keycode])+3);
+				else:
+					self.pressed_keys  += self.keycode_map[keycode];
 				return True
 			else:
-				if keyval == keysyms.space:
+				if (keyval == keysyms.space):
 					self.braille_letter_map_pos = 0;
+					if(self.liblouis_mode):
+						surrounding_text = self.get_surrounding_text()
+						text = surrounding_text[0].get_text()
+						cursor_pos = surrounding_text[1]
+						string_up_to_cursor = text[:cursor_pos];
+						count = len(string_up_to_cursor.split()[-1])
+						last_word = string_up_to_cursor.split()[-1]
+						if (string_up_to_cursor[-1] != " "):
+							word = louis.backTranslate(self.liblouis_table_list,last_word,None,0)
+							self.delete_surrounding_text(-(count),count);
+							self.__commit_string(word[0])
+					else:
+						if (self.conventional_braille == True ):
+							if(self.conventional_braille_dot_3):
+								self.__commit_string(self.map["3"][self.old_braille_letter_map_pos]);
+								self.conventional_braille_dot_3 = False;
+							if(self.conventional_braille_dot_4):
+								self.conventional_braille_dot_4 = False;
+								self.__commit_string(self.map["4"][self.braille_letter_map_pos]);
+							elif (self.conventional_braille_dot_4_pass == True):
+								self.conventional_braille_dot_4_pass = False
+								self.__commit_string(self.map["8"][self.braille_letter_map_pos]);
+								return True
 				else:
 					if (keycode == self.key_to_switch_between_languages):
 						if (len(self.checked_languages)-1 == self.language_iter):
@@ -309,7 +401,7 @@ class EngineSharadaBraille(IBus.Engine):
 	def order_pressed_keys(self,pressed_keys):
 		ordered = ""
 		#["g","f","d","s","h","j","k","l","a",";"]
-		for key in ["1","2","3","4","5","6","7","8","9","0"]:
+		for key in ["1","2","3","4","5","6","7","8","a","c","9","0","o"]:
 			if key in pressed_keys:
 				ordered += key;
 		return ordered;    
@@ -318,4 +410,15 @@ class EngineSharadaBraille(IBus.Engine):
 		self.commit_text(IBus.Text.new_from_string(text))
 		if (len(text) > 1):
 			speak(text)
-        
+
+	def three_dot_do_commit(self):
+		print("Commiting and Reverting")
+		self.three_dot_pos = 1;
+		ordered_pressed_keys = self.order_pressed_keys(self.pressed_keys);
+		self.pressed_keys = ""
+		try:
+			value = self.map[ordered_pressed_keys][self.braille_letter_map_pos]
+			self.__commit_string(value);
+			self.braille_letter_map_pos = 1
+		except:
+			pass


=====================================
language-editor/main.py
=====================================
--- a/language-editor/main.py
+++ b/language-editor/main.py
@@ -74,7 +74,7 @@ class page(Gtk.ScrolledWindow):
 	def kbKeyReleased(self, editable, event):
 		if (self.pressed_keys != ""):
 			orderd = ""
-			for item in ["1","2","3","4","5","6","7"]:
+			for item in ["1","2","3","4","5","6","7","8"]:
 				if item in self.pressed_keys:
 					orderd = orderd + item
 			editable.set_text(orderd)
@@ -169,7 +169,7 @@ class ibus_sharada_braille_le():
 		self.key_dict = {}
 		self.config = configparser.ConfigParser()
 		if (self.config.read("{}/isb.cfg".format(home_dir)) == []):
-			self.key_dict = { 33:"1",32:"2",31:"3",36:"4",37:"5",38:"6",34:"7"}
+			self.key_dict = { 33:"1",32:"2",31:"3",36:"4",37:"5",38:"6",44:"7",52:"8"}
 		else:
 			self.key_dict[int(self.config.get('cfg',"dot-1"))] = "1"
 			self.key_dict[int(self.config.get('cfg',"dot-2"))] = "2"
@@ -177,7 +177,8 @@ class ibus_sharada_braille_le():
 			self.key_dict[int(self.config.get('cfg',"dot-4"))] = "4"
 			self.key_dict[int(self.config.get('cfg',"dot-5"))] = "5"
 			self.key_dict[int(self.config.get('cfg',"dot-6"))] = "6"
-			self.key_dict[int(self.config.get('cfg',"capitol_switch_key"))] = "7"				
+			self.key_dict[int(self.config.get('cfg',"dot-7"))] = "7"
+			self.key_dict[int(self.config.get('cfg',"dot-8"))] = "8"
 
 		self.lang_liststore = Gtk.ListStore(str)
 		for line in open("{}/languages.txt".format(data_dir)):
@@ -309,7 +310,7 @@ class ibus_sharada_braille_le():
 		def kbKeyReleased(editable, event):
 			if (self.pressed_keys != ""):
 				orderd = ""
-				for item in ["1","2","3","4","5","6","7"]:
+				for item in ["1","2","3","4","5","6","7","8"]:
 					if item in self.pressed_keys:
 						orderd = orderd + item
 				editable.set_text(orderd)
@@ -369,7 +370,7 @@ class ibus_sharada_braille_le():
 		def kbKeyReleased(editable, event):
 			if (self.pressed_keys != ""):
 				orderd = ""
-				for item in ["1","2","3","4","5","6","7"]:
+				for item in ["1","2","3","4","5","6","7","8"]:
 					if item in self.pressed_keys:
 						orderd = orderd + item
 				editable.set_text(orderd)


=====================================
preferences/main.py
=====================================
--- a/preferences/main.py
+++ b/preferences/main.py
@@ -26,7 +26,7 @@ from gi.repository import Gdk
 from gi.repository import IBus
 home_dir = os.environ['HOME']
 data_dir = "/usr/share/ibus-braille/braille"
-
+liblouis_table_dir = "/usr/share/liblouis/tables/"
 
 #Key code map #{30:"a",31:"s",32:"d",33:"f",34:"g",35:"h",36:"j",37:"k",38:"l",39:";"}
 
@@ -36,27 +36,56 @@ class ibus_sharada_braille_preferences():
 		self.guibuilder.add_from_file("/usr/share/ibus-braille-preferences/ui.glade")
 		self.window = self.guibuilder.get_object("window")
 		self.combobox_default_languge = self.guibuilder.get_object("combobox_default_languge")
-		self.box_general = self.guibuilder.get_object("box_general")		
-
+		self.box_ibus_table = self.guibuilder.get_object("box_ibus_table")
+		self.entry_liblouis_table_list = self.guibuilder.get_object("entry_liblouis_table_list")
+		self.combobox_liblouis_table_list = self.guibuilder.get_object("combobox_liblouis_table_list")
 
+		self.liblouis_table_liststore = Gtk.ListStore(str)
+		for item in sorted(os.listdir(liblouis_table_dir)):
+			if(".ctb" in item or ".utb" in item):
+				self.liblouis_table_liststore.append([item])
+		self.combobox_liblouis_table_list.set_model(self.liblouis_table_liststore)
 		
 		self.config = configparser.ConfigParser()
-		self.default_key_dict = { "dot-1":33,"dot-2":32,"dot-3":31,"dot-4":36,"dot-5":37,"dot-6":38,"punctuation_key":39,"capitol_switch_key":34,"letter_deletion_key":35,"switch_between_languages":119,"list_switch_key":56,"abbreviation_key":30 }
+		self.default_key_dict = { "dot-1":33,"dot-2":32,"dot-3":31,"dot-4":36,"dot-5":37,"dot-6":38,
+		"dot-7":44,"dot-8":52,"punctuation_key":39,"capitol_switch_key":34,"letter_deletion_key":35,
+		"switch_between_languages":119,"list_switch_key":56,"abbreviation_key":30,"one_hand_skip_key":20 }
 		
-		if (self.config.read("{}/isb.cfg".format(home_dir)) == []):
+		try:
+			self.config.read("{}/isb.cfg".format(home_dir))
+			self.checked_languages = self.config.get('cfg',"checked_languages").split(",")
+			self.key_dict = {}
+			default_language = int(self.config.get('cfg',"default-language"))
+			one_hand_conversion_delay = int(self.config.get('cfg',"one-hand-conversion-delay"))
+			liblouis_table_list = self.config.get('cfg',"liblouis-table-list")
+			print(liblouis_table_list)
+			for key in self.default_key_dict.keys():
+				self.key_dict[key] =  int(self.config.get('cfg',key))
+			# The following are for a try only
+			self.config.get('cfg',"conventional-braille")
+			self.config.get('cfg',"one-hand-mode")
+			self.config.get('cfg',"simple-mode")
+			self.config.get('cfg',"liblouis-mode")
+
+		except:
+			# To avoid duplication of cfg section
+			try:
+				self.config.remove_section('cfg')
+			except:
+				pass
 			self.config.add_section('cfg')
 			self.checked_languages = ["english-en","hindi-hi","numerical-en"]
 			self.reset_keys_and_shorcuts(None,None)
 			self.config.set('cfg',"simple-mode",str(0))
+			self.config.set('cfg',"conventional-braille",str(0))
+			self.config.set('cfg',"one-hand-mode",str(0))
+			self.config.set('cfg',"one-hand-conversion-delay",str(500))
+			self.config.set('cfg',"liblouis-mode",str(0))
 			self.config.set('cfg',"default-language",str(0))
 			default_language = 0;
+			liblouis_table_list = "unicode.dis,en-us-g2.ctb";
+			self.config.set('cfg',"liblouis-table-list",str(liblouis_table_list))
 			self.key_dict = self.default_key_dict.copy()
-		else:
-			self.checked_languages = self.config.get('cfg',"checked_languages").split(",")
-			self.key_dict = {}
-			default_language = int(self.config.get('cfg',"default-language"))
-			for key in self.default_key_dict.keys():
-				self.key_dict[key] =  int(self.config.get('cfg',key))			
 			
 		self.checked_languages_liststore = Gtk.ListStore(str)
 		for item in self.checked_languages:
@@ -82,15 +111,39 @@ class ibus_sharada_braille_preferences():
 			if item[:-1] in self.checked_languages:
 				widget.set_active(True) 
 			widget.connect("clicked",self.language_toggled)
-			self.box_general.pack_start(widget,0,0,0);
+			self.box_ibus_table.pack_start(widget,0,0,0);
 			widget.show()						
-		self.box_general.show()
+		self.box_ibus_table.show()
 
 		self.set_keys_and_shortcuts_to_ui(None,None)
 		
 		#Set Simple mode checkbox
 		checkbutton_simple_mode = self.guibuilder.get_object("checkbutton_simple_mode")
 		checkbutton_simple_mode.set_active(int(self.config.get('cfg',"simple-mode")))
+
+		#Set Simple conventional-braille checkbox
+		checkbutton_conventional_braille = self.guibuilder.get_object("checkbutton_conventional_braille")
+		checkbutton_conventional_braille.set_active(int(self.config.get('cfg',"conventional-braille")))
+
+		#Set TableType combobox
+		combobox_table_type = self.guibuilder.get_object("combobox_table_type")
+		self.box_ibus_table = self.guibuilder.get_object("box_ibus_table")
+		self.box_liblouis = self.guibuilder.get_object("box_liblouis")
+		value = int(self.config.get('cfg',"liblouis-mode"))
+		combobox_table_type.set_active(value)
+		self.box_liblouis.set_visible(value)
+		self.box_ibus_table.set_visible(not value)
+
+		#set liblouis_table_list entry
+		self.entry_liblouis_table_list.set_text(liblouis_table_list)
+
+		#Set one-hand-mode checkbox
+		checkbutton_one_hand_mode = self.guibuilder.get_object("checkbutton_one_hand_mode")
+		checkbutton_one_hand_mode.set_active(int(self.config.get('cfg',"one-hand-mode")))
+
+		#Set one-hand-mode conversion delay
+		scale_one_hand_conversion_delay = self.guibuilder.get_object("scale_one_hand_conversion_delay")
+		scale_one_hand_conversion_delay.set_value(int(self.config.get('cfg',"one-hand-conversion-delay")))
 		
 		self.guibuilder.connect_signals(self)
 		self.window.show()
@@ -100,6 +153,37 @@ class ibus_sharada_braille_preferences():
 	
 	def simple_mode_toggled(self,widget,data=None):
 		self.config.set('cfg',"simple-mode",str(int(widget.get_active())))
+
+	def conventional_braille_toggled(self,widget,data=None):
+		self.config.set('cfg',"conventional-braille",str(int(widget.get_active())))
+
+	def one_hand_mode_toggled(self,widget,data=None):
+		self.config.set('cfg',"one-hand-mode",str(int(widget.get_active())))
+
+	def one_hand_conversion_delay_changed(self,widget):
+		self.config.set('cfg',"one-hand-conversion-delay",str(int(widget.get_value())))
+
+	def table_type_changed(self,widget,data=None):
+		value = int(widget.get_active())
+		self.config.set('cfg',"liblouis-mode",str(value))
+		self.box_liblouis.set_visible(value)
+		self.box_ibus_table.set_visible(not value)
+
+	def liblouis_add_to_list_button_clicked(self,widget,data=None):
+		cur_list = self.entry_liblouis_table_list.get_text()
+		active = self.combobox_liblouis_table_list.get_active()
+		new_item = self.liblouis_table_liststore[active][0]
+		table_list = cur_list+","+new_item
+		self.entry_liblouis_table_list.set_text(table_list)
+		self.config.set('cfg',"liblouis-table-list",str(table_list))
+
+	def liblouis_clear_list_button_clicked(self,widget,data=None):
+		self.entry_liblouis_table_list.set_text("unicode.dis")
+
+	def liblouis_reset_list_button_clicked(self,widget,data=None):
+		table_list = "unicode.dis,en-us-g2.ctb";
+		self.entry_liblouis_table_list.set_text(table_list)
+		self.config.set('cfg',"liblouis-table-list",str(table_list))
 		
 	
 	def reset_keys_and_shorcuts(self,widget,data=None):


=====================================
preferences/ui.glade
=====================================
--- a/preferences/ui.glade
+++ b/preferences/ui.glade
@@ -1,7 +1,54 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.16.1 -->
+<!-- Generated with glade 3.18.3 
+
+Copyright (C) 
+
+This file is part of .
+
+ is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+ 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 General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with .  If not, see <http://www.gnu.org/licenses/>.
+
+-->
 <interface>
-  <requires lib="gtk+" version="3.10"/>
+  <requires lib="gtk+" version="3.8"/>
+  <!-- interface-license-type gplv3 -->
+  <object class="GtkAdjustment" id="adjustment_one_hand_conversion_delay">
+    <property name="upper">1000</property>
+    <property name="value">500</property>
+    <property name="step_increment">1</property>
+    <property name="page_increment">10</property>
+    <signal name="value-changed" handler="one_hand_conversion_delay_changed" swapped="no"/>
+  </object>
+  <object class="GtkListStore" id="liststore1">
+    <columns>
+      <!-- column-name Text -->
+      <column type="gchararray"/>
+    </columns>
+    <data>
+      <row>
+        <col id="0" translatable="yes">IBus-Braille Builtin</col>
+      </row>
+      <row>
+        <col id="0" translatable="yes">Liblouis</col>
+      </row>
+    </data>
+  </object>
+  <object class="GtkListStore" id="liststore2">
+    <columns>
+      <!-- column-name table -->
+      <column type="gchararray"/>
+    </columns>
+  </object>
   <object class="GtkWindow" id="window">
     <property name="can_focus">False</property>
     <property name="title" translatable="yes">IBus-Sharada-Braille Preferences</property>
@@ -20,15 +67,43 @@
                 <property name="can_focus">False</property>
                 <property name="orientation">vertical</property>
                 <child>
-                  <object class="GtkCheckButton" id="checkbutton_simple_mode">
-                    <property name="label" translatable="yes">Simple Mode</property>
-                    <property name="use_action_appearance">False</property>
+                  <object class="GtkBox" id="box7">
                     <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">False</property>
-                    <property name="xalign">0</property>
-                    <property name="draw_indicator">True</property>
-                    <signal name="toggled" handler="simple_mode_toggled" swapped="no"/>
+                    <property name="can_focus">False</property>
+                    <property name="margin_top">10</property>
+                    <property name="margin_bottom">10</property>
+                    <property name="border_width">10</property>
+                    <child>
+                      <object class="GtkLabel" id="label19">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="label" translatable="yes">Table Type</property>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">True</property>
+                        <property name="position">0</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkComboBox" id="combobox_table_type">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="model">liststore1</property>
+                        <signal name="changed" handler="table_type_changed" swapped="no"/>
+                        <child>
+                          <object class="GtkCellRendererText" id="cellrenderertext1"/>
+                          <attributes>
+                            <attribute name="text">0</attribute>
+                          </attributes>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="expand">True</property>
+                        <property name="fill">True</property>
+                        <property name="position">1</property>
+                      </packing>
+                    </child>
                   </object>
                   <packing>
                     <property name="expand">False</property>
@@ -37,35 +112,136 @@
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkBox" id="box4">
+                  <object class="GtkBox" id="box_ibus_table">
                     <property name="visible">True</property>
                     <property name="can_focus">False</property>
+                    <property name="border_width">10</property>
+                    <property name="orientation">vertical</property>
                     <child>
-                      <object class="GtkLabel" id="label_default_language">
+                      <object class="GtkCheckButton" id="checkbutton_simple_mode">
+                        <property name="label" translatable="yes">Simple Mode</property>
+                        <property name="use_action_appearance">False</property>
                         <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="label" translatable="yes">Default Language</property>
-                        <property name="use_underline">True</property>
-                        <property name="mnemonic_widget">combobox_default_languge</property>
+                        <property name="can_focus">True</property>
+                        <property name="receives_default">False</property>
+                        <property name="xalign">0</property>
+                        <property name="draw_indicator">True</property>
+                        <signal name="toggled" handler="simple_mode_toggled" swapped="no"/>
                       </object>
                       <packing>
-                        <property name="expand">True</property>
+                        <property name="expand">False</property>
                         <property name="fill">True</property>
                         <property name="position">0</property>
                       </packing>
                     </child>
                     <child>
-                      <object class="GtkComboBox" id="combobox_default_languge">
+                      <object class="GtkCheckButton" id="checkbutton_conventional_braille">
+                        <property name="label" translatable="yes">Conventional Braille</property>
                         <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <signal name="changed" handler="combobox_default_languge_changed" swapped="no"/>
+                        <property name="can_focus">True</property>
+                        <property name="receives_default">False</property>
+                        <property name="xalign">0</property>
+                        <property name="draw_indicator">True</property>
+                        <signal name="toggled" handler="conventional_braille_toggled" swapped="no"/>
                       </object>
                       <packing>
-                        <property name="expand">True</property>
+                        <property name="expand">False</property>
                         <property name="fill">True</property>
                         <property name="position">1</property>
                       </packing>
                     </child>
+                    <child>
+                      <object class="GtkCheckButton" id="checkbutton_one_hand_mode">
+                        <property name="label" translatable="yes">One-Hand-Mode</property>
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="receives_default">False</property>
+                        <property name="xalign">0</property>
+                        <property name="draw_indicator">True</property>
+                        <signal name="toggled" handler="one_hand_mode_toggled" swapped="no"/>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">True</property>
+                        <property name="position">2</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkBox" id="box2">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <child>
+                          <object class="GtkLabel" id="label22">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="halign">end</property>
+                            <property name="label" translatable="yes">One Hand Conversion Delay </property>
+                            <property name="use_underline">True</property>
+                            <property name="mnemonic_widget">scale_one_hand_conversion_delay</property>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">True</property>
+                            <property name="position">0</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkScale" id="scale_one_hand_conversion_delay">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="adjustment">adjustment_one_hand_conversion_delay</property>
+                            <property name="round_digits">1</property>
+                          </object>
+                          <packing>
+                            <property name="expand">True</property>
+                            <property name="fill">True</property>
+                            <property name="position">1</property>
+                          </packing>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">True</property>
+                        <property name="position">3</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkBox" id="box4">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <child>
+                          <object class="GtkLabel" id="label_default_language">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="label" translatable="yes">Default Language</property>
+                            <property name="use_underline">True</property>
+                            <property name="mnemonic_widget">combobox_default_languge</property>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                            <property name="position">0</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkComboBox" id="combobox_default_languge">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <signal name="changed" handler="combobox_default_languge_changed" swapped="no"/>
+                          </object>
+                          <packing>
+                            <property name="expand">True</property>
+                            <property name="fill">True</property>
+                            <property name="position">1</property>
+                          </packing>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">True</property>
+                        <property name="position">4</property>
+                      </packing>
+                    </child>
                   </object>
                   <packing>
                     <property name="expand">False</property>
@@ -73,6 +249,142 @@
                     <property name="position">1</property>
                   </packing>
                 </child>
+                <child>
+                  <object class="GtkBox" id="box_liblouis">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="border_width">10</property>
+                    <property name="orientation">vertical</property>
+                    <child>
+                      <object class="GtkBox" id="box8">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="orientation">vertical</property>
+                        <child>
+                          <object class="GtkBox" id="box5">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <child>
+                              <object class="GtkLabel" id="label20">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="label" translatable="yes">Table List</property>
+                              </object>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">True</property>
+                                <property name="position">0</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkEntry" id="entry_liblouis_table_list">
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="margin_top">5</property>
+                                <property name="margin_bottom">5</property>
+                                <property name="editable">False</property>
+                              </object>
+                              <packing>
+                                <property name="expand">True</property>
+                                <property name="fill">True</property>
+                                <property name="position">1</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkButton" id="button_clear_list">
+                                <property name="label" translatable="yes">Clear List</property>
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">True</property>
+                                <signal name="clicked" handler="liblouis_clear_list_button_clicked" swapped="no"/>
+                              </object>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">True</property>
+                                <property name="position">2</property>
+                              </packing>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">True</property>
+                            <property name="position">0</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkBox" id="box9">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <child>
+                              <object class="GtkComboBox" id="combobox_liblouis_table_list">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="margin_top">5</property>
+                                <property name="margin_bottom">5</property>
+                                <property name="model">liststore2</property>
+                                <child>
+                                  <object class="GtkCellRendererText" id="cellrenderertext2"/>
+                                  <attributes>
+                                    <attribute name="text">0</attribute>
+                                  </attributes>
+                                </child>
+                              </object>
+                              <packing>
+                                <property name="expand">True</property>
+                                <property name="fill">True</property>
+                                <property name="position">0</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkButton" id="button4">
+                                <property name="label" translatable="yes">Add to List</property>
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">True</property>
+                                <property name="image_position">right</property>
+                                <signal name="clicked" handler="liblouis_add_to_list_button_clicked" swapped="no"/>
+                              </object>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">True</property>
+                                <property name="position">1</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkButton" id="button5">
+                                <property name="label" translatable="yes">Reset to default</property>
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">True</property>
+                                <signal name="clicked" handler="liblouis_reset_list_button_clicked" swapped="no"/>
+                              </object>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">True</property>
+                                <property name="position">2</property>
+                              </packing>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">True</property>
+                            <property name="position">1</property>
+                          </packing>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">True</property>
+                        <property name="position">1</property>
+                      </packing>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">True</property>
+                    <property name="position">2</property>
+                  </packing>
+                </child>
               </object>
             </child>
             <child type="tab">
@@ -116,8 +428,6 @@
                               <packing>
                                 <property name="left_attach">0</property>
                                 <property name="top_attach">0</property>
-                                <property name="width">1</property>
-                                <property name="height">1</property>
                               </packing>
                             </child>
                             <child>
@@ -131,8 +441,6 @@
                               <packing>
                                 <property name="left_attach">0</property>
                                 <property name="top_attach">1</property>
-                                <property name="width">1</property>
-                                <property name="height">1</property>
                               </packing>
                             </child>
                             <child>
@@ -146,8 +454,6 @@
                               <packing>
                                 <property name="left_attach">0</property>
                                 <property name="top_attach">2</property>
-                                <property name="width">1</property>
-                                <property name="height">1</property>
                               </packing>
                             </child>
                             <child>
@@ -161,8 +467,6 @@
                               <packing>
                                 <property name="left_attach">0</property>
                                 <property name="top_attach">3</property>
-                                <property name="width">1</property>
-                                <property name="height">1</property>
                               </packing>
                             </child>
                             <child>
@@ -176,8 +480,6 @@
                               <packing>
                                 <property name="left_attach">0</property>
                                 <property name="top_attach">4</property>
-                                <property name="width">1</property>
-                                <property name="height">1</property>
                               </packing>
                             </child>
                             <child>
@@ -191,8 +493,6 @@
                               <packing>
                                 <property name="left_attach">0</property>
                                 <property name="top_attach">5</property>
-                                <property name="width">1</property>
-                                <property name="height">1</property>
                               </packing>
                             </child>
                             <child>
@@ -205,9 +505,7 @@
                               </object>
                               <packing>
                                 <property name="left_attach">0</property>
-                                <property name="top_attach">6</property>
-                                <property name="width">1</property>
-                                <property name="height">1</property>
+                                <property name="top_attach">8</property>
                               </packing>
                             </child>
                             <child>
@@ -220,9 +518,7 @@
                               </object>
                               <packing>
                                 <property name="left_attach">0</property>
-                                <property name="top_attach">7</property>
-                                <property name="width">1</property>
-                                <property name="height">1</property>
+                                <property name="top_attach">9</property>
                               </packing>
                             </child>
                             <child>
@@ -235,9 +531,7 @@
                               </object>
                               <packing>
                                 <property name="left_attach">0</property>
-                                <property name="top_attach">8</property>
-                                <property name="width">1</property>
-                                <property name="height">1</property>
+                                <property name="top_attach">10</property>
                               </packing>
                             </child>
                             <child>
@@ -250,9 +544,7 @@
                               </object>
                               <packing>
                                 <property name="left_attach">0</property>
-                                <property name="top_attach">9</property>
-                                <property name="width">1</property>
-                                <property name="height">1</property>
+                                <property name="top_attach">11</property>
                               </packing>
                             </child>
                             <child>
@@ -265,8 +557,6 @@
                               <packing>
                                 <property name="left_attach">1</property>
                                 <property name="top_attach">0</property>
-                                <property name="width">1</property>
-                                <property name="height">1</property>
                               </packing>
                             </child>
                             <child>
@@ -279,8 +569,6 @@
                               <packing>
                                 <property name="left_attach">1</property>
                                 <property name="top_attach">1</property>
-                                <property name="width">1</property>
-                                <property name="height">1</property>
                               </packing>
                             </child>
                             <child>
@@ -293,8 +581,6 @@
                               <packing>
                                 <property name="left_attach">1</property>
                                 <property name="top_attach">2</property>
-                                <property name="width">1</property>
-                                <property name="height">1</property>
                               </packing>
                             </child>
                             <child>
@@ -307,8 +593,6 @@
                               <packing>
                                 <property name="left_attach">1</property>
                                 <property name="top_attach">3</property>
-                                <property name="width">1</property>
-                                <property name="height">1</property>
                               </packing>
                             </child>
                             <child>
@@ -321,8 +605,6 @@
                               <packing>
                                 <property name="left_attach">1</property>
                                 <property name="top_attach">4</property>
-                                <property name="width">1</property>
-                                <property name="height">1</property>
                               </packing>
                             </child>
                             <child>
@@ -335,8 +617,6 @@
                               <packing>
                                 <property name="left_attach">1</property>
                                 <property name="top_attach">5</property>
-                                <property name="width">1</property>
-                                <property name="height">1</property>
                               </packing>
                             </child>
                             <child>
@@ -348,9 +628,7 @@
                               </object>
                               <packing>
                                 <property name="left_attach">1</property>
-                                <property name="top_attach">6</property>
-                                <property name="width">1</property>
-                                <property name="height">1</property>
+                                <property name="top_attach">8</property>
                               </packing>
                             </child>
                             <child>
@@ -362,9 +640,7 @@
                               </object>
                               <packing>
                                 <property name="left_attach">1</property>
-                                <property name="top_attach">7</property>
-                                <property name="width">1</property>
-                                <property name="height">1</property>
+                                <property name="top_attach">9</property>
                               </packing>
                             </child>
                             <child>
@@ -376,9 +652,7 @@
                               </object>
                               <packing>
                                 <property name="left_attach">1</property>
-                                <property name="top_attach">8</property>
-                                <property name="width">1</property>
-                                <property name="height">1</property>
+                                <property name="top_attach">10</property>
                               </packing>
                             </child>
                             <child>
@@ -390,9 +664,82 @@
                               </object>
                               <packing>
                                 <property name="left_attach">1</property>
-                                <property name="top_attach">9</property>
-                                <property name="width">1</property>
-                                <property name="height">1</property>
+                                <property name="top_attach">11</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkLabel" id="label1">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="label" translatable="yes">Braille-Dot-7</property>
+                                <property name="use_underline">True</property>
+                                <property name="mnemonic_widget">dot-7</property>
+                              </object>
+                              <packing>
+                                <property name="left_attach">0</property>
+                                <property name="top_attach">6</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkLabel" id="label18">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="label" translatable="yes">Braille-Dot-8</property>
+                                <property name="use_underline">True</property>
+                                <property name="mnemonic_widget">dot-8</property>
+                              </object>
+                              <packing>
+                                <property name="left_attach">0</property>
+                                <property name="top_attach">7</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkEntry" id="dot-7">
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="editable">False</property>
+                                <signal name="key-press-event" handler="key_press" swapped="no"/>
+                              </object>
+                              <packing>
+                                <property name="left_attach">1</property>
+                                <property name="top_attach">6</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkEntry" id="dot-8">
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="editable">False</property>
+                                <signal name="key-press-event" handler="key_press" swapped="no"/>
+                              </object>
+                              <packing>
+                                <property name="left_attach">1</property>
+                                <property name="top_attach">7</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkEntry" id="one_hand_skip_key">
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="editable">False</property>
+                                <signal name="key-press-event" handler="key_press" swapped="no"/>
+                              </object>
+                              <packing>
+                                <property name="left_attach">1</property>
+                                <property name="top_attach">12</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkLabel" id="label21">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="label" translatable="yes">One-Hand-Skip</property>
+                                <property name="use_underline">True</property>
+                                <property name="mnemonic_widget">one_hand_skip_key</property>
+                              </object>
+                              <packing>
+                                <property name="left_attach">0</property>
+                                <property name="top_attach">12</property>
                               </packing>
                             </child>
                           </object>
@@ -440,8 +787,6 @@
                               <packing>
                                 <property name="left_attach">0</property>
                                 <property name="top_attach">1</property>
-                                <property name="width">1</property>
-                                <property name="height">1</property>
                               </packing>
                             </child>
                             <child>
@@ -454,8 +799,6 @@
                               <packing>
                                 <property name="left_attach">1</property>
                                 <property name="top_attach">0</property>
-                                <property name="width">1</property>
-                                <property name="height">1</property>
                               </packing>
                             </child>
                             <child>
@@ -468,8 +811,6 @@
                               <packing>
                                 <property name="left_attach">1</property>
                                 <property name="top_attach">1</property>
-                                <property name="width">1</property>
-                                <property name="height">1</property>
                               </packing>
                             </child>
                             <child>
@@ -483,8 +824,6 @@
                               <packing>
                                 <property name="left_attach">0</property>
                                 <property name="top_attach">0</property>
-                                <property name="width">1</property>
-                                <property name="height">1</property>
                               </packing>
                             </child>
                           </object>



View it on GitLab: https://gitlab.com/smc/ibus-braille/compare/3b2c22fb00548eb6d855e0a4292092b7ad6a21dd...d94b7c096e184be3e76802e77562a0e5088e119d
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.smc.org.in/pipermail/discuss-smc.org.in/attachments/20160904/3d24c68e/attachment.html>


More information about the discuss mailing list