From: Roman Moravcik Date: Sat, 31 Oct 2009 18:06:38 +0000 (+0100) Subject: Removed ukeyboard. Package splited to slovak-l10n and posix-locales-sksk X-Git-Tag: v0.5~1 X-Git-Url: http://vcs.maemo.org/git/?p=slovak-l10n;a=commitdiff_plain;h=a17bfeecfff4ca70cf4b9a08e145d50ddc6e8850 Removed ukeyboard. Package splited to slovak-l10n and posix-locales-sksk --- diff --git a/LICENSE b/LICENSE deleted file mode 100644 index 5b6e7c6..0000000 --- a/LICENSE +++ /dev/null @@ -1,340 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc. - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Library General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - 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 of the License, 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) year name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - , 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Library General -Public License instead of this License. diff --git a/Makefile b/Makefile index 42e60ce..eb45f57 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,6 @@ locale_set = sk_SK LOCALES_DIR = posix-locales -UKEYBOARD_DIR = ukeyboard all: mkdir -p $(LOCALES_DIR)/build @@ -12,19 +11,16 @@ all: done $(MAKE) -C po - CFLAGS="$(CFLAGS) -DHAVE_MAEMO5" $(MAKE) -C $(UKEYBOARD_DIR) install: all install -d $(DESTDIR)/usr/lib/locale/ mv $(LOCALES_DIR)/build/* $(DESTDIR)/usr/lib/locale/ $(MAKE) -C po DESTDIR=$(DESTDIR) install - CFLAGS="$(CFLAGS) -DHAVE_MAEMO5" $(MAKE) -C $(UKEYBOARD_DIR) DESTDIR=$(DESTDIR) install clean: rm -rf $(LOCALES_DIR)/build $(MAKE) -C po clean - $(MAKE) -C $(UKEYBOARD_DIR) clean distclean: $(MAKE) clean diff --git a/debian/control b/debian/control index 464b16b..df5c0eb 100644 --- a/debian/control +++ b/debian/control @@ -1,17 +1,16 @@ Source: slovak-l10n -Section: user/other +Section: user/system Priority: optional Maintainer: Roman Moravcik Build-Depends: debhelper (>= 4.0.0), libosso-dev, libosso-gnomevfs2-dev, libhildonfm2-dev, hildon-control-panel-dev, libc6 (>> 2.5.0), locales (>= 2.5.0) Standards-Version: 3.6.1 Package: slovak-l10n -Architecture: any -Depends: ${shlibs:Depends} -Replaces: ukeyboard +Architecture: all +Depends: ${shlibs:Depends}, ukeyboard (>= 2.0), posix-locales-sksk Description: Unofficial slovak support for Maemo5 - Unofficial slovak support for Maemo5 including on-screen, - HW keyboard layouts, Slovak locale and transation of UI. + Unofficial slovak support for Maemo5 including Slovak locale + and transation of UI. XB-Maemo-Display-Name: Slovak localization XB-Maemo-Icon-26: iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAAXNSR0IArs4c @@ -45,3 +44,9 @@ XB-Maemo-Icon-26: VzfPYeXmNvrCwoKHvLw7pZPipYvhXEfGldgNA+AyEFMnE31lFS2xIqbu2wEf f5rzhl8XAAy79MRpQTSe6SE3OoDhEPJl568rgHyW/nNUA9AANAANQAPQ0tLS 0tLS0tLSGnH6B9nT06h6DhFlAAAAAElFTkSuQmCC + +Package: posix-locales-sksk +Architecture: all +Depends: libc6 (>> 2.5.0) +Description: Slovak POSIX locales for Fremantle + Package provides Slovak locales for Fremantle. diff --git a/debian/copyright b/debian/copyright index e068978..5e1cf3e 100644 --- a/debian/copyright +++ b/debian/copyright @@ -1,7 +1,3 @@ -This package was debianized by Roman Moravcik on Thu, -3 Sep 2009 17:38:11 +0200. - -po: # Copyright (C) 2006-2007 Nokia Corporation. All rights reserved. # # Contact: Mohammed Hassan @@ -29,19 +25,3 @@ po: # POSSIBILITY OF SUCH DAMAGE. # # - -posix-locales: ---------------------------------------------------------------------- -Copyright (c) 2005 Nokia Corporation. - -posix-locales data is licensed under the terms of the GNU LGPL. ---------------------------------------------------------------------- - -ukeyboard: -Copyright: - -2007-2008, Jiri Benc - -License: - -GPLv2 diff --git a/debian/patches/00list b/debian/patches/00list index e530454..0a9cea5 100644 --- a/debian/patches/00list +++ b/debian/patches/00list @@ -1,3 +1 @@ 01_posix-locales_sk.dpatch -02_ukeyboard_installonly_sk.dpatch - diff --git a/debian/patches/02_ukeyboard_installonly_sk.dpatch b/debian/patches/02_ukeyboard_installonly_sk.dpatch deleted file mode 100755 index 8291e7e..0000000 --- a/debian/patches/02_ukeyboard_installonly_sk.dpatch +++ /dev/null @@ -1,40 +0,0 @@ -#! /bin/sh /usr/share/dpatch/dpatch-run -## 02_ukeyboard_installonly_sk.dpatch -## -## All lines beginning with `## DP:' are a description of the patch. -## DP: No description. - -@DPATCH@ -diff -Naur slovak-l10n/ukeyboard/keyboards/Makefile slovak-l10n/ukeyboard/keyboards/Makefile ---- slovak-l10n/ukeyboard/keyboards/Makefile 2008-12-30 13:49:12.000000000 +0100 -+++ slovak-l10n/ukeyboard/keyboards/Makefile 2009-10-09 14:03:31.000000000 +0200 -@@ -1,16 +1,5 @@ - layouts = \ -- ar-lebanon.vkb \ -- be-by.vkb \ -- bg-bds.vkb \ -- bg-phonetic.vkb \ -- en-dvorak.vkb \ -- eo-qwerty.vkb \ -- he-qwerty.vkb \ -- hr-qwerty.vkb hr-qwertz.vkb \ -- hu-qwertz.vkb \ -- sk-qwerty.vkb sk-qwertz.vkb \ -- th-kedmanee.vkb \ -- tr-qwerty.vkb -+ sk-qwerty.vkb sk-qwertz.vkb - - all: $(layouts) - -diff -Naur slovak-l10n/ukeyboard/Makefile slovak-l10n/ukeyboard/Makefile ---- slovak-l10n/ukeyboard/Makefile 2009-10-09 11:14:35.000000000 +0200 -+++ slovak-l10n/ukeyboard/Makefile 2009-10-09 14:03:15.000000000 +0200 -@@ -25,8 +25,6 @@ - $(MAKE) -C cpanel DESTDIR=$(DESTDIR) install - $(MAKE) -C keyboards DESTDIR=$(DESTDIR) install - $(MAKE) -C keyboards-scv DESTDIR=$(DESTDIR) install -- install -d $(DESTDIR)/usr/share/icons/hicolor/26x26/apps -- install -m 0644 ukeyboard.png $(DESTDIR)/usr/share/icons/hicolor/26x26/apps/ - install -d $(DESTDIR)/usr/share/X11/xkb/symbols/nokia_vndr - install -m 0644 xkb/ukeyboard $(DESTDIR)/usr/share/X11/xkb/symbols/nokia_vndr/ - diff --git a/debian/posix-locales-sksk.install b/debian/posix-locales-sksk.install new file mode 100644 index 0000000..e987667 --- /dev/null +++ b/debian/posix-locales-sksk.install @@ -0,0 +1 @@ +usr/lib/locale/sk_SK/* \ No newline at end of file diff --git a/debian/posix-locales-sksk.postinst b/debian/posix-locales-sksk.postinst new file mode 100755 index 0000000..ad919c9 --- /dev/null +++ b/debian/posix-locales-sksk.postinst @@ -0,0 +1,5 @@ +#!/bin/sh + +add_remove_language add sk_SK + +exit 0 diff --git a/debian/posix-locales-sksk.postrm b/debian/posix-locales-sksk.postrm new file mode 100755 index 0000000..c18fd10 --- /dev/null +++ b/debian/posix-locales-sksk.postrm @@ -0,0 +1,5 @@ +#!/bin/sh + +add_remove_language remove sk_SK + +exit 0 diff --git a/debian/rules b/debian/rules index 504af1f..ba9744a 100755 --- a/debian/rules +++ b/debian/rules @@ -11,7 +11,7 @@ include /usr/share/dpatch/dpatch.make -DESTDIR=$(CURDIR)/debian/slovak-l10n +DESTDIR=$(CURDIR)/debian/tmp configure: configure-stamp configure-stamp: @@ -58,6 +58,9 @@ binary-arch: build install dh_testroot dh_installchangelogs dh_installdocs + dh_install --sourcedir=debian/tmp + cp ./posix-locales/debian/copyright ./debian/posix-locales-sksk/usr/share/doc/posix-locales-sksk/copyright + dh_compress dh_fixperms dh_installdeb dh_gencontrol diff --git a/debian/slovak-l10n.install b/debian/slovak-l10n.install new file mode 100644 index 0000000..1e489c6 --- /dev/null +++ b/debian/slovak-l10n.install @@ -0,0 +1 @@ +usr/share/locale/sk_SK/LC_MESSAGES/*.mo \ No newline at end of file diff --git a/debian/slovak-l10n.postinst b/debian/slovak-l10n.postinst deleted file mode 100755 index 813f837..0000000 --- a/debian/slovak-l10n.postinst +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/sh - -if ! grep -q ukeyboard /usr/share/X11/xkb/rules/base; then - sed -i 's/^.*nokiarx44.*$/\0\n ukeyboard * = nokia_vndr\/ukeyboard(%l)/' /usr/share/X11/xkb/rules/base -fi - -if [ -f /usr/share/applications/hildon-control-panel/cptextinput.desktop ]; then - mv -f /usr/share/applications/hildon-control-panel/cptextinput.desktop /usr/share/applications/hildon-control-panel/cptextinput.desktop.removed -fi - -add_remove_language add sk_SK -update-sudoers - -exit 0 diff --git a/debian/slovak-l10n.postrm b/debian/slovak-l10n.postrm deleted file mode 100755 index 53ebd3f..0000000 --- a/debian/slovak-l10n.postrm +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh - -sed -ni '/ukeyboard/!p' /usr/share/X11/xkb/rules/base - -if [ -f /usr/share/applications/hildon-control-panel/cptextinput.desktop.removed ]; then - mv -f /usr/share/applications/hildon-control-panel/cptextinput.desktop.removed /usr/share/applications/hildon-control-panel/cptextinput.desktop -fi - -add_remove_language remove sk_SK -update-sudoers - -exit 0 diff --git a/ukeyboard/CREDITS b/ukeyboard/CREDITS deleted file mode 100644 index da6bcd5..0000000 --- a/ukeyboard/CREDITS +++ /dev/null @@ -1,17 +0,0 @@ -Hámorszky Balázs -Nickola Trupcheff -Paul Sweeney -Michal Příhoda -Marcin Juszkiewicz -Roman Moravčík -Ali Khadra -Ognian Samokovliyski -Panu Tangchalermkul -Lovro Orešković -Jan Yenya Kasprzak -Matan Ziv-Av -Paweł Dyś -Darafei Praliaskouski -Ethan S. -Burak Ilgicioglu -Porfyras diff --git a/ukeyboard/LICENSE b/ukeyboard/LICENSE deleted file mode 100644 index 5b6e7c6..0000000 --- a/ukeyboard/LICENSE +++ /dev/null @@ -1,340 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc. - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Library General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - 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 of the License, 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) year name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - , 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Library General -Public License instead of this License. diff --git a/ukeyboard/Makefile b/ukeyboard/Makefile deleted file mode 100644 index 7696a3f..0000000 --- a/ukeyboard/Makefile +++ /dev/null @@ -1,44 +0,0 @@ -all: vkb_compiler ukeyboard-prefs keyboards keyboards-scv ukbdcreator - -ukeyboard-prefs: - $(MAKE) -C cpanel - -vkb_compiler: vkb_compiler.o vkb_compiler_lib.o - $(CC) -o $@ $+ - -vkb_compiler.o: vkb_compiler.c vkb_compiler.h - $(CC) -W -Wall -c -o $@ $< - -vkb_compiler_lib.o: vkb_compiler_lib.c vkb_compiler.h - $(CC) -W -Wall -c -o $@ $< - -keyboards: vkb_compiler - $(MAKE) -C keyboards - -keyboards-scv: vkb_compiler - $(MAKE) -C keyboards-scv - -ukbdcreator: vkb_compiler_lib.o - $(MAKE) -C ukbdcreator - -install: ukeyboard-prefs keyboards-scv - $(MAKE) -C cpanel DESTDIR=$(DESTDIR) install - $(MAKE) -C keyboards DESTDIR=$(DESTDIR) install - $(MAKE) -C keyboards-scv DESTDIR=$(DESTDIR) install - install -d $(DESTDIR)/usr/share/icons/hicolor/26x26/apps - install -m 0644 ukeyboard.png $(DESTDIR)/usr/share/icons/hicolor/26x26/apps/ - install -d $(DESTDIR)/usr/share/X11/xkb/symbols/nokia_vndr - install -m 0644 xkb/ukeyboard $(DESTDIR)/usr/share/X11/xkb/symbols/nokia_vndr/ - -clean: - $(MAKE) -C cpanel clean - $(MAKE) -C keyboards clean - $(MAKE) -C keyboards-scv clean - $(MAKE) -C ukbdcreator clean - rm -f vkb_compiler *.o core - rm -rf build - -distclean: - $(MAKE) clean - rm -f *-stamp - rm -rf debian/ukeyboard debian/ukbdcreator debian/files diff --git a/ukeyboard/README b/ukeyboard/README deleted file mode 100644 index 9ffec64..0000000 --- a/ukeyboard/README +++ /dev/null @@ -1,16 +0,0 @@ -** Keyboard layout compiler for Nokia N800 and N810 (OS2008) ** - -Distributed under GPLv2. -(Except doc/vkb-format-v3, which is placed into public domain; see the file -for more info.) - -Based on the following sources: -- source code of gen_vkb tool for Nokia 770 -- reverse engineering of .vkb data files from Nokia N800 and N810 - -Note that the input format is different than the one used by the gen_vkb -tool. This tool uses a plain text file which is (contrary to XML) much more -easier to write when creating the layout by hand. - -See doc/howto for instructions how to create a custom on-screen keyboard layout. -Look at xkb/ukeyboard if you want to create a custom sliding keyboard layout. diff --git a/ukeyboard/VERSION b/ukeyboard/VERSION deleted file mode 100644 index cd5ac03..0000000 --- a/ukeyboard/VERSION +++ /dev/null @@ -1 +0,0 @@ -2.0 diff --git a/ukeyboard/cpanel/Makefile b/ukeyboard/cpanel/Makefile deleted file mode 100644 index 98895b0..0000000 --- a/ukeyboard/cpanel/Makefile +++ /dev/null @@ -1,44 +0,0 @@ -libukeyboard-prefs.so: prefs.o hw.o onscreen.o lang.o langset.o about.o - $(CC) -shared -o $@ $+ - -add_cflags = `pkg-config --cflags gtk+-2.0 hildon-1 gconf-2.0 libosso` - -prefs.o: prefs.c - $(CC) -c -W -Wall `pkg-config --cflags gtk+-2.0 gconf-2.0 hildon-control-panel libosso` -o $@ $< - -hw.o: hw.c - $(CC) -c -W -Wall $(add_cflags) -o $@ $< - -onscreen.o: onscreen.c - $(CC) -c -W -Wall $(add_cflags) -o $@ $< - -lang.o: lang.c - $(CC) -c -W -Wall $(add_cflags) -o $@ $< - -langset.o: langset.c - $(CC) -c -W -Wall $(add_cflags) -o $@ $< - -about.o: about.c about.inc - $(CC) -c -W -Wall $(add_cflags) -o $@ $< - -about.inc: about.inc.in -# for f in ../keyboards/*; do \ -# grep '^[ \t]*#[ \t]*\(title:\|author:\)' $$f | \ -# sed -e 's//\>/g' -e 's/^.*title:[ \t]*\(.*\)/\1:<\/i>\\n\\/' -e 's/^.*author:[ \t]*\(.*\)/\t\1\\n\\/' ; \ -# done > about.data - sed -e 's//\>/g' -e 's/$$/\\n\\/' < ../CREDITS > about.data - sed -e s/@@VERSION@@/`cat ../VERSION`/g -e '/@@CONTRIB@@/r about.data' -e '/@@CONTRIB@@/d' < about.inc.in > about.inc - -cppluginlibdir = $(DESTDIR)`pkg-config hildon-control-panel --variable=pluginlibdir` -cpplugindeskdir = $(DESTDIR)`pkg-config hildon-control-panel --variable=plugindesktopentrydir` - -install: libukeyboard-prefs.so - install -d $(cppluginlibdir) $(cpplugindeskdir) - install libukeyboard-prefs.so $(cppluginlibdir) - install -m 644 ukeyboard-prefs.desktop $(cpplugindeskdir) - install -d $(DESTDIR)/usr/libexec $(DESTDIR)/etc/sudoers.d - install ukeyboard-set $(DESTDIR)/usr/libexec - install -m 644 ukeyboard.sudoers $(DESTDIR)/etc/sudoers.d - -clean: - rm -f *.o libukeyboard-prefs.so about.inc about.data core diff --git a/ukeyboard/cpanel/about.c b/ukeyboard/cpanel/about.c deleted file mode 100644 index c3c9e9e..0000000 --- a/ukeyboard/cpanel/about.c +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright (c) 2008 Jiri Benc - * Copyright (c) 2009 Roman Moravcik - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include "prefs.h" -#include "hw.h" - -static GtkWidget *start(GConfClient *client, GtkWidget *win, void **data) -{ - GtkWidget *scroll; - GtkWidget *label; - - (void)client; (void)win; - - scroll = hildon_pannable_area_new(); - - label = gtk_label_new(NULL); - gtk_label_set_markup(GTK_LABEL(label), -#include "about.inc" - ); - hildon_pannable_area_add_with_viewport (HILDON_PANNABLE_AREA(scroll), label); - *data = NULL; - return GTK_WIDGET(scroll); -} - -void prefs_about_init(struct prefs *prefs) -{ - prefs->start = start; - prefs->action = NULL; - prefs->stop = NULL; - prefs->name = "About"; -} diff --git a/ukeyboard/cpanel/about.h b/ukeyboard/cpanel/about.h deleted file mode 100644 index 614ab65..0000000 --- a/ukeyboard/cpanel/about.h +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Copyright (c) 2008 Jiri Benc - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#ifndef _ABOUT_H -#define _ABOUT_H - -void prefs_about_init(struct prefs *prefs); - -#endif diff --git a/ukeyboard/cpanel/about.inc.in b/ukeyboard/cpanel/about.inc.in deleted file mode 100644 index bc22ca4..0000000 --- a/ukeyboard/cpanel/about.inc.in +++ /dev/null @@ -1,10 +0,0 @@ -"\ -ukeyboard @@VERSION@@\n\ -http://upir.cz/maemo/keyboards\n\ -Distributed under GPLv2.\n\ -Author: Jiří Benc <jbenc@upir.cz>\n\ - Roman Moravčík <roman.moravcik@gmail.com>\n\ -\n\ -Contributors:\n\ -@@CONTRIB@@ -" diff --git a/ukeyboard/cpanel/hw.c b/ukeyboard/cpanel/hw.c deleted file mode 100644 index 15c40d4..0000000 --- a/ukeyboard/cpanel/hw.c +++ /dev/null @@ -1,213 +0,0 @@ -/* - * Copyright (c) 2008 Jiri Benc - * Copyright (c) 2009 Roman Moravcik - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "prefs.h" -#include "hw.h" - -#define GETTEXT_PACKAGE "osso-applet-textinput" -#include - -struct layout { - gchar *model; - gchar *layout; - gchar *name; -}; - -struct data { - GList *layouts; - HildonTouchSelector *combo; -}; - -static char *strip(char *s) -{ - while (*s == ' ' || *s == '\t' || *s == '\n' || *s == '\r') - s++; - return s; -} - -static GList *get_layouts(gchar *path, gchar *model, GList *list) -{ - FILE *f; - char *buf, *s, *s2; - gchar *layout = NULL; - struct layout *lay; - - f = fopen(path, "r"); - if (!f) - return list; - buf = g_malloc(512); - if (!buf) { - fclose(f); - return list; - } - while (fgets(buf, 512, f)) { - s = strip(buf); - if (!strncmp(s, "xkb_symbols", 11)) { - if (layout) { - g_free(layout); - layout = NULL; - } - s = strip(s + 11); - if (*s != '"') - continue; - s++; - s2 = strchr(s, '"'); - if (!s2) - continue; - *s2 = '\0'; - layout = g_strdup(s); - } else if (!strncmp(s, "name", 4) && layout) { - s = strip(s + 4); - if (*s != '[') - continue; - s2 = strchr(s, ']'); - if (!s2) - continue; - s = strip(s2 + 1); - if (*s != '=') - continue; - s = strip(s + 1); - if (*s != '"') - continue; - s++; - s2 = strchr(s, '"'); - if (!s2) - continue; - *s2 = '\0'; - lay = g_malloc(sizeof(struct layout)); - lay->model = g_strdup(model); - lay->layout = layout; - lay->name = g_strdup(s); - layout = NULL; - list = g_list_append(list, lay); - } - } - fclose(f); - return list; -} - -static void free_layouts(GList *list) -{ - GList *item; - struct layout *lay; - - for (item = list; item; item = g_list_next(item)) { - lay = item->data; - g_free(lay->model); - g_free(lay->layout); - g_free(lay->name); - g_free(lay); - } - g_list_free(list); -} - -static GtkWidget *start(GConfClient *client, GtkWidget *win, void **data) -{ - struct data *d; - GList *item; - gchar *omodel, *olayout; - struct layout *lay; - unsigned i; - - GtkWidget *button; - - (void)win; - - if (!internal_kbd) { - *data = NULL; - return NULL; - } - - d = g_malloc(sizeof(struct data)); - - omodel = get_str(client, "int_kb_model"); - olayout = get_str(client, "int_kb_layout"); - d->layouts = get_layouts("/usr/share/X11/xkb/symbols/nokia_vndr/rx-51", "nokiarx51", NULL); - d->layouts = get_layouts("/usr/share/X11/xkb/symbols/nokia_vndr/ukeyboard", "ukeyboard", d->layouts); - - d->combo = HILDON_TOUCH_SELECTOR(hildon_touch_selector_new_text()); - - button = hildon_picker_button_new(HILDON_SIZE_FINGER_HEIGHT, HILDON_BUTTON_ARRANGEMENT_VERTICAL); - hildon_button_set_title(HILDON_BUTTON(button), _("tein_fi_keyboard_layout")); - hildon_picker_button_set_selector(HILDON_PICKER_BUTTON (button), d->combo); - hildon_button_set_alignment (HILDON_BUTTON (button), 0.0, 0.5, 1.0, 0.0); - hildon_button_set_title_alignment(HILDON_BUTTON(button), 0.0, 0.5); - hildon_button_set_value_alignment (HILDON_BUTTON (button), 0.0, 0.5); - - for (item = d->layouts, i = 0; item; item = g_list_next(item), i++) { - lay = item->data; - hildon_touch_selector_append_text(d->combo, lay->name); - if (omodel && olayout && !strcmp(lay->model, omodel) && !strcmp(lay->layout, olayout)) - hildon_touch_selector_set_active(d->combo, 0, i); - } - - g_free(olayout); - g_free(omodel); - - *data = d; - - gtk_widget_show(button); - - return button; -} - -static void action(GConfClient *client, void *data) -{ - struct data *d = data; - struct layout *lay; - int res; - - if (!d) - return; - res = hildon_touch_selector_get_active(d->combo, 0); - if (res >= 0) { - lay = g_list_nth_data(d->layouts, res); - if (lay) { - set_str(client, "int_kb_model", lay->model); - set_str(client, "int_kb_layout", lay->layout); - } - } -} - -static void stop(GConfClient *client, void *data) -{ - struct data *d = data; - - (void)client; - if (d) { - free_layouts(d->layouts); - g_free(d); - } -} - -void prefs_hw_init(struct prefs *prefs) -{ - prefs->start = start; - prefs->action = action; - prefs->stop = stop; - prefs->name = "Hardware"; -} diff --git a/ukeyboard/cpanel/hw.h b/ukeyboard/cpanel/hw.h deleted file mode 100644 index 1c110d3..0000000 --- a/ukeyboard/cpanel/hw.h +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Copyright (c) 2008 Jiri Benc - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#ifndef _HW_H -#define _HW_H - -void prefs_hw_init(struct prefs *prefs); - -#endif diff --git a/ukeyboard/cpanel/lang.c b/ukeyboard/cpanel/lang.c deleted file mode 100644 index 828088f..0000000 --- a/ukeyboard/cpanel/lang.c +++ /dev/null @@ -1,447 +0,0 @@ -/* - * Copyright (c) 2008 Jiri Benc - * Copyright (c) 2009 Roman Moravcik - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "prefs.h" -#include "lang.h" -#include "langset.h" - -#define GETTEXT_PACKAGE "osso-applet-textinput" -#include - -struct langlink { - gchar *src; - gchar *dest; -}; - -struct data { - GConfClient *client; - GtkWidget *win; - GList *langs; - GList *langlinks; - HildonCheckButton *word_compl; - HildonCheckButton *auto_cap; - HildonCheckButton *sp_after; - HildonPickerButton *sec_dictsel; - HildonTouchSelector *langsel[2]; - HildonTouchSelector *dictsel[2]; - HildonCheckButton *dual; - int num_langs; -}; - -static gchar *get_lang(GConfClient *client, int n) -{ - char *tmp = g_strdup_printf("/apps/osso/inputmethod/hildon-im-languages/language-%d", n); - gchar *res; - - res = gconf_client_get_string(client, tmp, NULL); - g_free(tmp); - return res; -} - -static void set_lang(GConfClient *client, int n, gchar *val) -{ - char *tmp = g_strdup_printf("/apps/osso/inputmethod/hildon-im-languages/language-%d", n); - - gconf_client_set_string(client, tmp, val, NULL); - g_free(tmp); -} - -static gchar *read_vkb_str(FILE *f) -{ - gchar *res; - uint8_t len; - - if (!fread(&len, 1, 1, f) || !len) - return NULL; - res = g_malloc(len + 1); - if (fread(res, 1, len, f) != len) { - g_free(res); - return NULL; - } - res[len] = '\0'; - return res; -} - -static struct lang *read_vkb(gchar *path) -{ - FILE *f; - struct lang *res = NULL; - uint8_t ver; - gchar *desc, *code; - - f = fopen(path, "r"); - if (!f) - return NULL; - /* version */ - if (!fread(&ver, 1, 1, f) || ver != 1) - goto no; - /* number of sections */ - if (!fread(&ver, 1, 1, f)) - goto no; - /* descriptive name */ - desc = read_vkb_str(f); - if (!desc) - goto no; - /* locale name */ - code = read_vkb_str(f); - if (!code) { - g_free(desc); - goto no; - } - - res = g_malloc(sizeof(struct lang)); - res->desc = desc; - res->code = code; -no: - fclose(f); - return res; -} - -static GList *add_lang_link(gchar *path, gchar *dest, GList *list) -/* 'dest' has to be allocated; it's eaten by this function! */ -{ - struct langlink *langlink; - gchar *link, *tmp; - - link = g_file_read_link(path, NULL); - if (link) { - langlink = g_malloc(sizeof(struct langlink)); - langlink->dest = dest; - tmp = strrchr(link, '/'); - langlink->src = tmp ? tmp + 1 : link; - tmp = strrchr(link, '.'); - if (tmp) - *tmp = '\0'; - langlink->src = g_strdup(langlink->src); - g_free(link); - list = g_list_append(list, langlink); - } - return list; -} - -static GList *get_langs(gchar *path, GList **langlinks, GList *list) -{ - GDir *d; - const gchar *fname; - gchar *fullpath, *shortpath, *tmp; - struct lang *lang; - - d = g_dir_open(path, 0, NULL); - if (!d) - return list; - while ((fname = g_dir_read_name(d))) { - if (!g_str_has_suffix(fname, ".vkb")) - continue; - fullpath = g_strjoin("/", path, fname, NULL); - shortpath = g_strdup(fname); - tmp = strrchr(shortpath, '.'); - if (tmp) - *tmp = '\0'; - if (langlinks && g_file_test(fullpath, G_FILE_TEST_IS_SYMLINK)) { - *langlinks = add_lang_link(fullpath, shortpath, *langlinks); - g_free(fullpath); - continue; - } - lang = read_vkb(fullpath); - if (lang) { - lang->fname = shortpath; - lang->ext = !langlinks; - list = g_list_append(list, lang); - } else - g_free(shortpath); - g_free(fullpath); - } - g_dir_close(d); - return list; -} - -static struct lang *get_def_lang(gchar *code, GList *langs, GList *langlinks) -{ - GList *item; - struct lang *lang; - struct langlink *langlink; - - if (!code || !*code) - return NULL; - for (item = langs; item; item = g_list_next(item)) { - lang = item->data; - if (!strcmp(lang->fname, code)) - return lang; - } - if (langlinks) - for (item = langlinks; item; item = g_list_next(item)) { - langlink = item->data; - if (!strcmp(langlink->dest, code)) - return get_def_lang(langlink->src, langs, NULL); - } - return NULL; -} - -static void free_langs(GList *list) -{ - GList *item; - struct lang *lang; - - for (item = list; item; item = g_list_next(item)) { - lang = item->data; - g_free(lang->fname); - g_free(lang->desc); - g_free(lang->code); - g_free(lang); - } - g_list_free(list); -} - -static void free_langlinks(GList *list) -{ - GList *item; - struct langlink *langlink; - - for (item = list; item; item = g_list_next(item)) { - langlink = item->data; - g_free(langlink->src); - g_free(langlink->dest); - g_free(langlink); - } - g_list_free(list); -} - -static void fill_langsel(HildonTouchSelector *combo, GList *langs, struct lang *deflang, gboolean empty) -{ - GList *item; - struct lang *lang; - unsigned i; - - for (item = langs, i = 0; item; item = g_list_next(item), i++) { - lang = item->data; - hildon_touch_selector_append_text(combo, lang->desc); - if (lang == deflang) - hildon_touch_selector_set_active(combo, 0, i); - } - if (empty) { - hildon_touch_selector_append_text(combo, _("tein_fi_not_in_use")); - if (!deflang) - hildon_touch_selector_set_active(combo, 0, i); - } -} - -static void sensitivity_langsel(struct data *d) -{ - gboolean sens; - - sens = (hildon_touch_selector_get_active(d->langsel[1], 0) < d->num_langs); - gtk_widget_set_sensitive(GTK_WIDGET(d->dual), sens); - - if (sens) - gtk_widget_show(GTK_WIDGET(d->sec_dictsel)); - else - gtk_widget_hide(GTK_WIDGET(d->sec_dictsel)); -} - -static void verify_langsel(HildonTouchSelector *combo, gint column, struct data *d) -{ - struct lang *lang[2]; - int res; - unsigned i; - - (void)combo; - for (i = 0; i < 2; i++) { - res = hildon_touch_selector_get_active(d->langsel[i], column); - lang[i] = (res >= 0) ? g_list_nth_data(d->langs, res) : NULL; - } - if (lang[0] && lang[1] && !strcmp(lang[0]->code, lang[1]->code)) { - hildon_banner_show_information(d->win, "gtk-dialog-error", - "Impossible combination of languages"); - hildon_touch_selector_set_active(d->langsel[1], column, d->num_langs); - } - sensitivity_langsel(d); -} - -static GtkWidget *start(GConfClient *client, GtkWidget *win, void **data) -{ - struct data *d; - gchar *tmp; - GtkWidget *vbox, *table; - struct lang *lang; - unsigned i; - - d = g_new0(struct data, 1); - d->client = client; - d->win = win; - - d->langs = get_langs("/usr/share/keyboards", &d->langlinks, NULL); - d->langs = get_langs("/usr/share/ukeyboard", NULL, d->langs); - d->num_langs = g_list_length(d->langs); - - vbox = gtk_vbox_new(FALSE, 0); - - d->word_compl = HILDON_CHECK_BUTTON(hildon_check_button_new(HILDON_SIZE_FINGER_HEIGHT)); - gtk_button_set_label (GTK_BUTTON (d->word_compl), _("tein_fi_settings_word_completion")); - gtk_box_pack_start(GTK_BOX(vbox), GTK_WIDGET(d->word_compl), TRUE, TRUE, 0); - - d->auto_cap = HILDON_CHECK_BUTTON(hildon_check_button_new(HILDON_SIZE_FINGER_HEIGHT)); - gtk_button_set_label (GTK_BUTTON (d->auto_cap), _("tein_fi_settings_auto_capitalization")); - gtk_box_pack_start(GTK_BOX(vbox), GTK_WIDGET(d->auto_cap), TRUE, TRUE, 0); - - d->sp_after = HILDON_CHECK_BUTTON(hildon_check_button_new(HILDON_SIZE_FINGER_HEIGHT)); - gtk_button_set_label (GTK_BUTTON (d->sp_after), _("tein_fi_settings_space_after_word")); - gtk_box_pack_start(GTK_BOX(vbox), GTK_WIDGET(d->sp_after), TRUE, TRUE, 0); - - table = gtk_table_new(2, 2, TRUE); - gtk_box_pack_start(GTK_BOX(vbox), table, TRUE, TRUE, 0); - - for (i = 0; i < 2; i++) { - GtkWidget *button; - gchar *code; - - d->langsel[i] = HILDON_TOUCH_SELECTOR(hildon_touch_selector_new_text()); - code = get_lang(client, i); - fill_langsel(d->langsel[i], d->langs, get_def_lang(code, d->langs, d->langlinks), i == 1); - g_signal_connect(G_OBJECT(d->langsel[i]), "changed", G_CALLBACK(verify_langsel), d); - - button = hildon_picker_button_new(HILDON_SIZE_FINGER_HEIGHT, HILDON_BUTTON_ARRANGEMENT_VERTICAL); - hildon_button_set_title(HILDON_BUTTON(button), i == 0 ? _("tein_fi_primary_language") : _("tein_fi_secondary_language")); - hildon_picker_button_set_selector(HILDON_PICKER_BUTTON (button), d->langsel[i]); - hildon_button_set_alignment (HILDON_BUTTON (button), 0.0, 0.5, 1.0, 0.0); - hildon_button_set_title_alignment(HILDON_BUTTON(button), 0.0, 0.5); - hildon_button_set_value_alignment (HILDON_BUTTON (button), 0.0, 0.5); - gtk_table_attach_defaults(GTK_TABLE(table), button, 0, 1, i, i + 1); - - d->dictsel[i] = HILDON_TOUCH_SELECTOR(hildon_touch_selector_new_text()); - tmp = get_l_str(client, code, "dictionary"); - lang = get_def_lang(code, d->langs, d->langlinks); - - /* If tmp is NULL (i.e. the gconf key is unset), try to use the same - * dictionary as the keyboard. But don't do this if the keyboard is - * from our package. */ - fill_dict(d->dictsel[i], d->langs, (tmp || (lang && lang->ext)) ? tmp : code); - if (tmp) - g_free(tmp); - - button = hildon_picker_button_new(HILDON_SIZE_FINGER_HEIGHT, HILDON_BUTTON_ARRANGEMENT_VERTICAL); - hildon_button_set_title(HILDON_BUTTON(button), _("tein_fi_settings_dictionary")); - hildon_picker_button_set_selector(HILDON_PICKER_BUTTON (button), d->dictsel[i]); - hildon_button_set_alignment (HILDON_BUTTON (button), 0.0, 0.5, 1.0, 0.0); - hildon_button_set_title_alignment(HILDON_BUTTON(button), 0.0, 0.5); - hildon_button_set_value_alignment (HILDON_BUTTON (button), 0.0, 0.5); - gtk_table_attach_defaults(GTK_TABLE(table), button, 1, 2, i, i + 1); - - if (i == 1) - d->sec_dictsel = HILDON_PICKER_BUTTON(button); - else { - hildon_check_button_set_active(d->word_compl, get_l_bool(client, code, "word-completion")); - hildon_check_button_set_active(d->auto_cap, get_l_bool(client, code, "auto-capitalisation")); - hildon_check_button_set_active(d->sp_after, get_l_bool(client, code, "insert-space-after-word")); - } - - if (code) - g_free(code); - } - - d->dual = HILDON_CHECK_BUTTON(hildon_check_button_new(HILDON_SIZE_FINGER_HEIGHT)); - hildon_check_button_set_active(d->dual, get_bool(client, "dual-dictionary")); - gtk_button_set_label (GTK_BUTTON (d->dual), _("tein_fi_dual_dictionary_use")); - gtk_box_pack_start(GTK_BOX(vbox), GTK_WIDGET(d->dual), TRUE, TRUE, 0); - - gtk_widget_show_all(vbox); - - sensitivity_langsel(d); - - *data = d; - - return vbox; -} - -static void action(GConfClient *client, void *data) -{ - struct data *d = data; - struct lang *lang; - gchar *tmp; - int res; - unsigned i; - - for (i = 0; i < 2; i++) { - struct lang *dict; - - res = hildon_touch_selector_get_active(d->langsel[i], 0); - if (res < 0) - continue; - lang = g_list_nth_data(d->langs, res); - if (lang) { - if (lang->ext) { - tmp = g_strdup_printf("sudo /usr/libexec/ukeyboard-set %s %s", lang->fname, lang->code); - if (system(tmp)) - hildon_banner_show_information(d->win, "gtk-dialog-warning", - "Setting failed"); - g_free(tmp); - } - /* When the newly set layout has the same lang code as the - * previous one (but the underlaying file changed), setting - * the same value won't trigger layout reload. Workaround - * that by setting "en_GB" lang code first. */ - set_lang(client, i, "en_GB"); - set_lang(client, i, lang->code); - - set_l_bool(client, lang->code, "auto-capitalisation", hildon_check_button_get_active(d->auto_cap)); - set_l_bool(client, lang->code, "word-completion", hildon_check_button_get_active(d->word_compl)); - set_l_bool(client, lang->code, "insert-space-after-word", hildon_check_button_get_active(d->sp_after)); - - res = hildon_touch_selector_get_active(d->dictsel[i], 0); - if (res >= 0) - dict = g_list_nth_data(d->langs, res); - - if (dict && !dict->ext) - set_l_str(client, lang->code, "dictionary", dict->code); - else - set_l_str(client, lang->code, "dictionary", ""); - } else - set_lang(client, i, ""); - } - set_bool(client, "dual-dictionary", hildon_check_button_get_active(d->dual)); -} - -static void stop(GConfClient *client, void *data) -{ - struct data *d = data; - - (void)client; - - free_langs(d->langs); - free_langlinks(d->langlinks); - g_free(d); -} - -void prefs_lang_init(struct prefs *prefs) -{ - prefs->start = start; - prefs->action = action; - prefs->stop = stop; - prefs->name = "Languages"; -} diff --git a/ukeyboard/cpanel/lang.h b/ukeyboard/cpanel/lang.h deleted file mode 100644 index 8619906..0000000 --- a/ukeyboard/cpanel/lang.h +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright (c) 2008 Jiri Benc - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#ifndef _LANG_H -#define _LANG_H - -void prefs_lang_init(struct prefs *prefs); - -struct lang { - gchar *fname; - gchar *desc; - gchar *code; - gboolean ext; -}; - -#endif diff --git a/ukeyboard/cpanel/langset.c b/ukeyboard/cpanel/langset.c deleted file mode 100644 index d001e2b..0000000 --- a/ukeyboard/cpanel/langset.c +++ /dev/null @@ -1,102 +0,0 @@ -/* - * Copyright (c) 2008 Jiri Benc - * Copyright (c) 2009 Roman Moravcik - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "prefs.h" -#include "lang.h" -#include "langset.h" - -#define GETTEXT_PACKAGE "osso-applet-textinput" -#include - -#define L_CONF_DIR "/apps/osso/inputmethod/hildon-im-languages" - -gboolean get_l_bool(GConfClient *client, char *lang, char *key) -{ - char *tmp = g_strjoin("/", L_CONF_DIR, lang, key, NULL); - gboolean res; - - res = gconf_client_get_bool(client, tmp, NULL); - g_free(tmp); - return res; -} - -void set_l_bool(GConfClient *client, char *lang, char *key, gboolean val) -{ - char *tmp = g_strjoin("/", L_CONF_DIR, lang, key, NULL); - - g_debug("%s %d\n", tmp, val); - - gconf_client_set_bool(client, tmp, val, NULL); - g_free(tmp); -} - -gchar *get_l_str(GConfClient *client, char *lang, char *key) -{ - char *tmp = g_strjoin("/", L_CONF_DIR, lang, key, NULL); - GConfValue *val; - gchar *res; - - val = gconf_client_get_without_default(client, tmp, NULL); - g_free(tmp); - if (!val) - return NULL; - if (val->type != GCONF_VALUE_STRING) { - gconf_value_free(val); - return NULL; - } - res = g_strdup(gconf_value_get_string(val)); - gconf_value_free(val); - return res; -} - -void set_l_str(GConfClient *client, char *lang, char *key, gchar *val) -{ - char *tmp = g_strjoin("/", L_CONF_DIR, lang, key, NULL); - - gconf_client_set_string(client, tmp, val, NULL); - g_free(tmp); -} - -void fill_dict(HildonTouchSelector *combo, GList *langs, gchar *deflang) -{ - GList *item; - struct lang *lang; - unsigned i; - - for (item = langs, i = 0; item; item = g_list_next(item)) { - lang = item->data; - if (lang->ext) - continue; - hildon_touch_selector_append_text(combo, lang->desc); - if (deflang && !strcmp(lang->code, deflang)) - hildon_touch_selector_set_active(combo, 0, i); - i++; - } - hildon_touch_selector_append_text(combo, _("tein_fi_word_completion_language_empty")); - if (!deflang || !*deflang) - hildon_touch_selector_set_active(combo, 0, i); -} diff --git a/ukeyboard/cpanel/langset.h b/ukeyboard/cpanel/langset.h deleted file mode 100644 index 93b7f29..0000000 --- a/ukeyboard/cpanel/langset.h +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Copyright (c) 2008 Jiri Benc - * Copyright (c) 2009 Roman Moravcik - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#ifndef _LANGSET_H -#define _LANGSET_H - -gboolean get_l_bool(GConfClient *client, char *lang, char *key); -void set_l_bool(GConfClient *client, char *lang, char *key, gboolean val); -gchar *get_l_str(GConfClient *client, char *lang, char *key); -void set_l_str(GConfClient *client, char *lang, char *key, gchar *val); -void fill_dict(HildonTouchSelector *combo, GList *langs, gchar *deflang); - -#endif diff --git a/ukeyboard/cpanel/onscreen.c b/ukeyboard/cpanel/onscreen.c deleted file mode 100644 index 6e1df6c..0000000 --- a/ukeyboard/cpanel/onscreen.c +++ /dev/null @@ -1,75 +0,0 @@ -/* - * Copyright (c) 2008 Jiri Benc - * Copyright (c) 2009 Roman Moravcik - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "prefs.h" -#include "onscreen.h" - -#define GETTEXT_PACKAGE "osso-applet-textinput" -#include - -struct data { - HildonCheckButton *use_finger; -}; - -static GtkWidget *start(GConfClient *client, GtkWidget *win, void **data) -{ - struct data *d; - GtkWidget *vbox; - - (void)win; - d = g_new0(struct data, 1); - - vbox = gtk_vbox_new(FALSE, 0); - - d->use_finger = HILDON_CHECK_BUTTON(hildon_check_button_new(HILDON_SIZE_FINGER_HEIGHT)); - hildon_check_button_set_active(d->use_finger, get_bool(client, "use_finger_kb")); - gtk_button_set_label (GTK_BUTTON (d->use_finger), _("tein_fi_use_virtual_keyboard")); - gtk_box_pack_start(GTK_BOX(vbox), GTK_WIDGET(d->use_finger), TRUE, TRUE, 0); - - *data = d; - - gtk_widget_show_all(vbox); - - return vbox; -} - -static void action(GConfClient *client, void *data) -{ - struct data *d = data; - - set_bool(client, "use_finger_kb", hildon_check_button_get_active(d->use_finger)); -} - -void prefs_onscreen_init(struct prefs *prefs) -{ - prefs->start = start; - prefs->action = action; - prefs->stop = NULL; - prefs->name = internal_kbd ? "On-screen" : "General"; -} diff --git a/ukeyboard/cpanel/onscreen.h b/ukeyboard/cpanel/onscreen.h deleted file mode 100644 index d83a1eb..0000000 --- a/ukeyboard/cpanel/onscreen.h +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Copyright (c) 2008 Jiri Benc - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#ifndef _ONSCREEN_H -#define _ONSCREEN_H - -void prefs_onscreen_init(struct prefs *prefs); - -#endif diff --git a/ukeyboard/cpanel/prefs.c b/ukeyboard/cpanel/prefs.c deleted file mode 100644 index d71ec25..0000000 --- a/ukeyboard/cpanel/prefs.c +++ /dev/null @@ -1,192 +0,0 @@ -/* - * Copyright (c) 2008 Jiri Benc - * Copyright (c) 2009 Roman Moravcik - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "prefs.h" -#include "hw.h" -#include "onscreen.h" -#include "lang.h" -#include "about.h" - -#define GETTEXT_PACKAGE "osso-applet-textinput" -#include - -static init_func inits[] = { prefs_hw_init, prefs_onscreen_init, prefs_lang_init, prefs_about_init }; -#define PLUGINS (sizeof(inits) / sizeof(init_func)) -static struct prefs prefs[PLUGINS]; - -gboolean internal_kbd; - -#define IM_CONF_DIR "/apps/osso/inputmethod" - -gboolean get_bool(GConfClient *client, char *key) -{ - char *tmp = g_strjoin("/", IM_CONF_DIR, key, NULL); - gboolean res; - - res = gconf_client_get_bool(client, tmp, NULL); - g_free(tmp); - return res; -} - -void set_bool(GConfClient *client, char *key, gboolean val) -{ - char *tmp = g_strjoin("/", IM_CONF_DIR, key, NULL); - - gconf_client_set_bool(client, tmp, val, NULL); - g_free(tmp); -} - -gint get_int(GConfClient *client, char *key) -{ - char *tmp = g_strjoin("/", IM_CONF_DIR, key, NULL); - gint res; - - res = gconf_client_get_int(client, tmp, NULL); - g_free(tmp); - return res; -} - -void set_int(GConfClient *client, char *key, gint val) -{ - char *tmp = g_strjoin("/", IM_CONF_DIR, key, NULL); - - gconf_client_set_int(client, tmp, val, NULL); - g_free(tmp); -} - -gchar *get_str(GConfClient *client, char *key) -{ - char *tmp = g_strjoin("/", IM_CONF_DIR, key, NULL); - gchar *res; - - res = gconf_client_get_string(client, tmp, NULL); - g_free(tmp); - return res; -} - -void set_str(GConfClient *client, char *key, gchar *val) -{ - char *tmp = g_strjoin("/", IM_CONF_DIR, key, NULL); - - gconf_client_set_string(client, tmp, val, NULL); - g_free(tmp); -} - -static GConfClient *init_conf(void) -{ - GConfClient *client; - - client = gconf_client_get_default(); - if (!client) - return NULL; - gconf_client_add_dir(client, IM_CONF_DIR, GCONF_CLIENT_PRELOAD_RECURSIVE, NULL); - internal_kbd = get_bool(client, "have-internal-keyboard"); - return client; -} - -static void deinit_conf(GConfClient *client) -{ - g_object_unref(G_OBJECT(client)); -} - -osso_return_t execute(osso_context_t *osso, gpointer data, gboolean user_activated) -{ - GConfClient *conf; - GtkDialog *dialog, *about; - GtkWidget *scroll, *widget, *vbox; - gchar *title; - void *plugin_data[PLUGINS]; - unsigned i; - int res; - - (void)osso; (void)user_activated; /* shut up, GCC */ - - conf = init_conf(); - if (!conf) - return OSSO_ERROR; - - for (i = 0; i < PLUGINS; i++) { - inits[i](prefs + i); - } - - dialog = GTK_DIALOG(gtk_dialog_new()); - if (!dialog) { - deinit_conf(conf); - return OSSO_ERROR; - } - gtk_window_set_transient_for(GTK_WINDOW(dialog), GTK_WINDOW(data)); - - title = g_strdup_printf("%s (ukeyboard)", _("tein_ti_text_input_title")); - gtk_window_set_title(GTK_WINDOW(dialog), title); - g_free(title); - - - gtk_dialog_add_button(GTK_DIALOG(dialog), "About", GTK_RESPONSE_HELP); - gtk_dialog_add_button(GTK_DIALOG(dialog), _HL("wdgt_bd_save"), GTK_RESPONSE_ACCEPT); - - scroll = hildon_pannable_area_new(); - gtk_widget_set_size_request(GTK_WIDGET (scroll), -1, 345); - gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), scroll); - - vbox = gtk_vbox_new(FALSE, 0); - hildon_pannable_area_add_with_viewport (HILDON_PANNABLE_AREA(scroll), vbox); - - gtk_widget_show_all(GTK_WIDGET(dialog)); - - for (i = 0; i < PLUGINS - 1; i++) { - widget = prefs[i].start(conf, GTK_WIDGET(dialog), &plugin_data[i]); - if (widget) - gtk_box_pack_start(GTK_BOX(vbox), widget, FALSE, TRUE, 0); - } - - while ((res = gtk_dialog_run(GTK_DIALOG(dialog))) == GTK_RESPONSE_HELP) { - about = GTK_DIALOG(gtk_dialog_new()); - gtk_window_set_title(GTK_WINDOW(about), _HL("ecdg_ti_aboutdialog_title")); - gtk_widget_set_size_request (GTK_WIDGET (about), -1, 300); - - widget = prefs[3].start(conf, GTK_WIDGET(about), &plugin_data[3]); - gtk_container_add(GTK_CONTAINER(GTK_DIALOG(about)->vbox), widget); - - gtk_widget_show_all(GTK_WIDGET(about)); - gtk_dialog_run(GTK_DIALOG(about)); - gtk_widget_destroy(GTK_WIDGET(about)); - - } - if (res == GTK_RESPONSE_ACCEPT) { - for (i = 0; i < PLUGINS; i++) - if (prefs[i].action) - prefs[i].action(conf, plugin_data[i]); - } - gtk_widget_destroy(GTK_WIDGET(dialog)); - - for (i = 0; i < PLUGINS; i++) - if (prefs[i].stop) - prefs[i].stop(conf, plugin_data[i]); - - deinit_conf(conf); - return OSSO_OK; -} diff --git a/ukeyboard/cpanel/prefs.h b/ukeyboard/cpanel/prefs.h deleted file mode 100644 index 8bddb59..0000000 --- a/ukeyboard/cpanel/prefs.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright (c) 2008 Jiri Benc - * Copyright (c) 2009 Roman Moravcik - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#ifndef _PREFS_H -#define _PREFS_H - -#define _HL(str) dgettext("hildon-libs",str) - -struct prefs { - GtkWidget *(*start)(GConfClient *, GtkWidget *, void **); - void (*action)(GConfClient *, void *); - void (*stop)(GConfClient *, void *); - char *name; -}; - -typedef void (*init_func)(struct prefs *); - -extern gboolean internal_kbd; - -gboolean get_bool(GConfClient *client, char *key); -void set_bool(GConfClient *client, char *key, gboolean val); -gint get_int(GConfClient *client, char *key); -void set_int(GConfClient *client, char *key, gint val); -gchar *get_str(GConfClient *client, char *key); -void set_str(GConfClient *client, char *key, gchar *val); - -#endif diff --git a/ukeyboard/cpanel/ukeyboard-prefs.desktop b/ukeyboard/cpanel/ukeyboard-prefs.desktop deleted file mode 100644 index 3310437..0000000 --- a/ukeyboard/cpanel/ukeyboard-prefs.desktop +++ /dev/null @@ -1,8 +0,0 @@ -[Desktop Entry] -Name=tein_ti_text_input_title -Comment=Advanced input settings configuration -Type=HildonControlPanelPlugin -Icon=control_pen_input -Categories=personalisation -X-control-panel-plugin=libukeyboard-prefs.so -X-Text-Domain=osso-applet-textinput diff --git a/ukeyboard/cpanel/ukeyboard-set b/ukeyboard/cpanel/ukeyboard-set deleted file mode 100755 index ccbce8f..0000000 --- a/ukeyboard/cpanel/ukeyboard-set +++ /dev/null @@ -1,48 +0,0 @@ -#!/bin/sh -store= -if [ "x$1" = "x-s" ]; then - store=1 - shift -fi - -if [ "x$1" = x -o "x$2" = x ]; then - echo "ukeyboard-set: Missing parameters." - exit 1 -fi -dest="/usr/share/keyboards/$2.vkb" - -if [ "x$1" = "x-r" -a ! -f "$dest-saved" -a ! -f "$dest-empty" ]; then - echo "ukeyboard-set: No previous file stored." - exit 4 -fi - -if [ -f "$dest" ]; then - if [ ! -h "$dest" ]; then - echo "ukeyboard-set: Destination $dest exists and is not a symlink." - exit 2 - fi - if [ "$store" != 1 -o -f "$dest-saved" ]; then - rm "$dest" - if [ -f "$dest" ]; then - echo "ukeyboard-set: Cannot delete current symlink $dest." - exit 3 - fi - else - mv "$dest" "$dest-saved" - fi -elif [ "$store" = 1 ]; then - touch "$dest-empty" -fi - -if [ "x$1" = "x-r" ]; then - if [ -f "$dest-saved" ]; then - mv "$dest-saved" "$dest" - else - rm "$dest" "$dest-empty" - fi -elif [ "$store" = 1 ]; then - ln -s "$1" "$dest" -else - ln -s "../ukeyboard/$1.vkb" "$dest" -fi -exit 0 diff --git a/ukeyboard/cpanel/ukeyboard.sudoers b/ukeyboard/cpanel/ukeyboard.sudoers deleted file mode 100644 index 17625b3..0000000 --- a/ukeyboard/cpanel/ukeyboard.sudoers +++ /dev/null @@ -1 +0,0 @@ -user ALL = NOPASSWD: /usr/libexec/ukeyboard-set diff --git a/ukeyboard/debian/changelog b/ukeyboard/debian/changelog deleted file mode 100644 index d6124c0..0000000 --- a/ukeyboard/debian/changelog +++ /dev/null @@ -1,123 +0,0 @@ -ukeyboard (2.0) unstable; urgency=low - - * Added support for Maemo5 (Fremantle). - * Dropped Czech and Polish keyboard support, because they are officially - supported now. - * OS2008 (Diablo/Chinook) is no longer supported. - - -- Roman Moravcik Wed, 29 Oct 2009 22:08:12 +0100 - -ukeyboard (1.9) unstable; urgency=low - - * Added Greek hw layouts for devices with US keyboard by Porfyras. - * Added Turkish on-screen keyboard layout by Burak Ilgicioglu. - * Minor fixes in Slovak on-screen keyboard layouts. - - -- Roman Moravcik Wed, 21 Oct 2009 10:24:37 +0200 - -ukeyboard (1.8) unstable; urgency=low - - * Added Belarusian on-screen layout by Darafei Praliaskouski. - * Modified US Dvorak layout. - - -- Jiri Benc Tue, 30 Dec 2008 12:31:10 +0100 - -ukeyboard (1.7) unstable; urgency=low - - * Fixed Czech hw keyboard, added more characters (typed by - Fn+Shift). Thanks to Jan "Yenya" Kasprzak. - * Added Hebrew on-screen keyboard layout by Matan Ziv-Av. - * Added Polish QWERTZ and QWERTY sliding keyboard layouts - for DE hardware by Pawel Dys. - - -- Jiri Benc Wed, 01 Oct 2008 00:35:26 +0200 - -ukeyboard (1.6) unstable; urgency=low - - * Added Croatian on-screen keyboard layout by Lovro Oreskovic. - * Introduced Ukeyboard Creator (ukbdcreator). - - -- Jiri Benc Sun, 29 Jun 2008 22:05:19 +0200 - -ukeyboard (1.5) unstable; urgency=low - - * Added Bulgarian phonetic sliding keyboard layout by Ognian - Samokovliyski. - * Added Thai Kedmanee on-screen layout by Panu Tangchalermkul. - - -- Jiri Benc Sun, 25 May 2008 14:46:59 +0200 - -ukeyboard (1.4) unstable; urgency=low - - * Added Polish sliding keyboard layout by Marcin Juszkiewicz. - - -- Jiri Benc Sat, 05 Apr 2008 13:23:50 +0200 - -ukeyboard (1.3) unstable; urgency=low - - * Added Slovak on-screen and sliding keyboard layouts by Roman Moravcik. - * Added Arabic (Lebanon) on-screen layout by Ali Khadra. - * Fixed US Dvorak layout. - - -- Jiri Benc Sun, 16 Mar 2008 23:02:58 +0100 - -ukeyboard (1.2) unstable; urgency=low - - * Added US Dvorak layout by Paul Sweeney. - * Added Czech hw layouts for devices with US keyboard by Michal Prihoda. - * Fixed howto to reflect changes made in ukeyboard for OS2008. - * Fixed build with OpenEmbedded. - - -- Jiri Benc Fri, 29 Feb 2008 21:42:36 +0100 - -ukeyboard (1.1) unstable; urgency=low - - * Fixed wrong label ("Launch finger keyboard with select") in the - control panel applet on N800. - - -- Jiri Benc Tue, 12 Feb 2008 21:48:56 +0100 - -ukeyboard (1.0) unstable; urgency=low - - * Added support for OS2008 on-screen keyboards. - * Added support for N810 sliding keyboard layouts and small on-screen - keyboards (scv). - * Added control panel applet that replaces the default one. - * Enhanced vkb format documentation. - * Added Czech QWERTY and QWERTZ layouts for the sliding keyboard. - * OS2007 is no longer supported. - - -- Jiri Benc Sun, 10 Feb 2008 03:17:35 +0100 - -ukeyboard (0.3.1) unstable; urgency=low - - * Added Hungarian layout by Hamorszky Balazs. - - -- Jiri Benc Fri, 4 Jan 2008 21:18:26 +0000 - -ukeyboard (0.3) unstable; urgency=low - - * Renamed to ukeyboard. - * Added Bulgarin phonetic and BDS layouts by Nickola Trupcheff. - * Fixed Esperanto layout (swapped by mistake with Xeelee's layout). - * Added support for comments in the compiler. - * Reworked creating of .deb packages (all info is in .def files now). - * Added instructions how to create a custom keyboard layout. - - -- Jiri Benc Tue, 13 Nov 2007 20:23:57 +0000 - -czkeyboard (0.2-1) unstable; urgency=low - - * Fixed and enhanced the file format documentation. - * Added support for special keyboards (&!e). - * Added support for generating of multiple .deb files with different - keyboard layouts. - - -- Jiri Benc Sun, 11 Nov 2007 19:19:23 +0000 - -czkeyboard (0.1-1) unstable; urgency=low - - * Initial Release. - - -- Jiri Benc Tue, 26 Jun 2007 21:08:47 +0000 - diff --git a/ukeyboard/debian/compat b/ukeyboard/debian/compat deleted file mode 100644 index b8626c4..0000000 --- a/ukeyboard/debian/compat +++ /dev/null @@ -1 +0,0 @@ -4 diff --git a/ukeyboard/debian/control b/ukeyboard/debian/control deleted file mode 100644 index 986fa90..0000000 --- a/ukeyboard/debian/control +++ /dev/null @@ -1,18 +0,0 @@ -Source: ukeyboard -Section: user/other -Priority: optional -Maintainer: Roman Moravcik -Build-Depends: debhelper (>= 4.0.0), libosso-dev, libosso-gnomevfs2-dev, libhildonfm2-dev, hildon-control-panel-dev -Standards-Version: 3.6.1 - -Package: ukeyboard -Architecture: any -Depends: ${shlibs:Depends} -Description: Additional keyboard layouts - Additional keyboard layouts for both on-screen and sliding keyboard. - -Package: ukbdcreator -Architecture: any -Depends: ${shlibs:Depends}, ukeyboard (>= 1.7) -Description: Ukeyboard Creator - Simple IDE for creating and testing on-screen keyboard layouts. diff --git a/ukeyboard/debian/copyright b/ukeyboard/debian/copyright deleted file mode 100644 index a00de16..0000000 --- a/ukeyboard/debian/copyright +++ /dev/null @@ -1,7 +0,0 @@ -Copyright: - -2007-2008, Jiri Benc - -License: - -GPLv2 diff --git a/ukeyboard/debian/rules b/ukeyboard/debian/rules deleted file mode 100755 index 6948cb4..0000000 --- a/ukeyboard/debian/rules +++ /dev/null @@ -1,68 +0,0 @@ -#!/usr/bin/make -f -# -*- makefile -*- -# Sample debian/rules that uses debhelper. -# This file was originally written by Joey Hess and Craig Small. -# As a special exception, when this file is copied by dh-make into a -# dh-make output file, you may use that output file without restriction. -# This special exception was added by Craig Small in version 0.37 of dh-make. - -# Uncomment this to turn on verbose mode. -#export DH_VERBOSE=1 - -DESTDIR=$(CURDIR)/debian/ukeyboard -DESTDIR_CREATOR=$(CURDIR)/debian/ukbdcreator - -configure: configure-stamp -configure-stamp: - dh_testdir - - touch configure-stamp - - -build: build-stamp - -build-stamp: configure-stamp - dh_testdir - - $(MAKE) - - touch build-stamp - -clean: - dh_testdir - dh_testroot - rm -f build-stamp configure-stamp - - # Add here commands to clean up after the build process. - $(MAKE) clean - - dh_clean - -install: build - dh_testdir - dh_testroot - dh_clean -k - dh_installdirs - - # Add here commands to install the package into $(DESTDIR) - $(MAKE) DESTDIR=$(DESTDIR) install - $(MAKE) -C ukbdcreator DESTDIR=$(DESTDIR_CREATOR)/usr install - - -# Build architecture-independent files here. -binary-indep: build install -# We have nothing to do by default. - -# Build architecture-dependent files here. -binary-arch: build install - dh_testdir - dh_testroot -# dh_installchangelogs - dh_fixperms - dh_installdeb - dh_gencontrol - dh_md5sums - dh_builddeb - -binary: binary-indep binary-arch -.PHONY: build clean binary-indep binary-arch binary install configure diff --git a/ukeyboard/debian/ukeyboard.postinst b/ukeyboard/debian/ukeyboard.postinst deleted file mode 100755 index 4869db5..0000000 --- a/ukeyboard/debian/ukeyboard.postinst +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh -if ! grep -q ukeyboard /usr/share/X11/xkb/rules/base; then - sed -i 's/^.*nokiarx44.*$/\0\n ukeyboard * = nokia_vndr\/ukeyboard(%l)/' /usr/share/X11/xkb/rules/base -fi - -if [ -f /usr/share/applications/hildon-control-panel/cptextinput.desktop ]; then - mv -f /usr/share/applications/hildon-control-panel/cptextinput.desktop /usr/share/applications/hildon-control-panel/cptextinput.desktop.removed -fi - -gtk-update-icon-cache -f /usr/share/icons/hicolor -update-sudoers -exit 0 diff --git a/ukeyboard/debian/ukeyboard.postrm b/ukeyboard/debian/ukeyboard.postrm deleted file mode 100755 index aae9521..0000000 --- a/ukeyboard/debian/ukeyboard.postrm +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/sh -sed -ni '/ukeyboard/!p' /usr/share/X11/xkb/rules/base - -if [ -f /usr/share/applications/hildon-control-panel/cptextinput.desktop.removed ]; then - mv -f /usr/share/applications/hildon-control-panel/cptextinput.desktop.removed /usr/share/applications/hildon-control-panel/cptextinput.desktop -fi - -gtk-update-icon-cache -f /usr/share/icons/hicolor -update-sudoers -exit 0 diff --git a/ukeyboard/doc/howto b/ukeyboard/doc/howto deleted file mode 100644 index e0d9d8f..0000000 --- a/ukeyboard/doc/howto +++ /dev/null @@ -1,360 +0,0 @@ -How to create a custom keyboard layout for Nokia internet tablets -================================================================= - -1. Making a layout compiler ---------------------------- - -First, you need to compile a compiler. You don't need the scratchbox (an -environment used for Maemo development) to do that - any Linux distribution -would do. For creating a .deb package the scratchbox is needed, though. - -Simply unpack the ukeyboard package and run "make" in the ukeyboard -directory: - tar -xjf ukeyboard-VERSION.tar.bz2 - cd ukeyboard-VERSION - make -(replace VERSION by the version you've downloaded) - -2. Using the layout compiler ----------------------------- - -Run vkb_compiler created in the previous step. As parameters, supply -a layout source file and name of the destination file. The name of the -destination file must have a .vkb extension. - ./vkb_compiler my_layout.def xx_XX.vkb - -For rules for naming of destination files, see the section 4.1. - -3. Testing the layout ---------------------- - -Make sure ukeyboard package is installed on the device. It does not have to -include your new layout. - -Copy the compiled .vkb file to the /usr/share/ukeyboard/ directory on the -device. Ukeyboard will pick up the new layout automatically. Just go to -Text input settings in the Control panel and set your layout in the -Languages tab. - -If you update the .vkb file, just go to Text input settings again and -confirm the dialog without changing anything. - -4. Limitation of the maemo keyboard layouts -------------------------------------------- - -4.1 Allowed names of .vkb files -------------------------------- - -The system limits the name of the compiled (.vkb) file in a way that it has -to match the name defined in the "lang" clause in the source (.def) file -(see section 6.2). You do not need to worry about that if you put your -layout into /usr/share/ukeyboard/, ukeyboard will do the necessary magic for -you. Just be sure the name of the file has the .vkb extension. - -4.2 Allowed language codes --------------------------- - -The name specified in the "lang" clause in the source file cannot be one of -da_DK, de_DE, el_GR, en_GB, en_US, es_ES, es_MX, fi_FI, fr_CA, fr_FR, it_IT, -nl_NL, no_NO, pt_BR, pt_PT, ru_RU and sv_SE. This is a limitation of -ukeyboard and may be relaxed in the future. If you put one of these codes -into the "lang" clause, ukeyboard will give you a warning. - -In general, the name in the "lang" clause should be a valid language code. -Ukeyboard permits the country code part to be anything (e.g. you can specify -en_DV for a Dvorak layout). To be safe, it's better to specify exactly two -letters in the country code part, though. - -5. Different types of keyboards and layouts -------------------------------------------- - -There are three types of .vkb files. The first one is an on-screen keyboard -corresponding to a selected language, the second one is a special keyboard -activated by pressing the "&!e" button, the third one is a "scv" keyboard, -which is displayed by pressing the "Chr" key on the sliding keyboard. -Although vkb_compiler is able to compile all of them, this document covers -the first type only. By a "keyboard" or "keyboard layout" the first type of -the keyboard is meant through the whole document. For a "scv" type, read -this document and then look at the examples in keyboards-scv/ directory. - -Each keyboard file contains two keyboard layouts - one for a normal (stylus) -and one for a thumb keyboard. - -A normal layout has two parts, alpha and numeric keyboard, in two variants, -lowercase and uppercase. This gives four "sublayouts" for a normal layout. - -A thumb layout has two mandatory "sublayouts", lowercase and uppercase alpha -keyboard, and an arbitrary number of "special" sublayouts. They are -presented as tabs. - -Remember, both layouts (normal+thumb) have to be defined. - -6. Description of the .def file format --------------------------------------- - -6.1 Basics ----------- - -Every keyword, symbol, etc. has to be separated by a whitespace (a space, -a tab or a newline). Especially, be aware that a whitespace is required -before and after { and }. - -A # character starts a comment; everything following the # character is -ignored until the end of line. This has one exception, though. If -a character in a key definition is expected, # is considered a valid -character and doesn't have a special meaning. - - -6.2 The header --------------- - -A .def file has to start with a header section: - header { - ...header definition... - } - -Inside the header, few global things are defined: -- a descriptive name of the keyboard -- a language code -- default word completion dictionary -- dimensions of keys - -6.2.1 Descriptive name of the keyboard --------------------------------------- - -A descriptive name of the keyboard is defined by: - name "descriptive name" - -Ukeyboard uses this name in the list of kayboards in Text input settings -applet. The OS itself seems to just ignore the name, though. - -6.2.2 Language code -------------------- - -The locale name of the keyboard. See section 4.2 for allowed values of this -field and section 4.1 for a discussion about allowed .vkb file names. - -Example: - lang "en_GB" - -6.2.3 Word completion dictionary --------------------------------- - -When selecting the keyboard layout in the Control panel, a corresponding -word completion dictionary is preselected. This is specified by this clause. - -Example: - wc "en_GB" - -6.2.4 Key dimensions --------------------- - -Each key in the keyboard has its dimensions. These dimensions are not -specified in the key definition, though. Instead, each key has a single -"size number" assigned. The actual dimensions for the "size number" are -specified in the header. - -The header can contain an arbitrary number of key sizes. The key size -definition looks like this: - size 0 { width 35 height 35 textpos 26 left 0 top 0 } - -The number after the "size" keyword (0 in the example) specifies the size -number. You'll use this number in key definitions to specify the size of the -particular key. - -"width" and "height" specify the dimensions of the key in pixels. (Note that -if the sum of widths of keys in a row is more or less than the expected -width, it is proportionally enlarged/shrinked. The same applies to heights.) - -"texpos" denotes vertical position of the text on the key (the baseline). - -"left" and "top" specify left and top padding of the key (i.e. the empty -space between the previous and this key). - -6.3 Layouts and sublayouts --------------------------- - -After the header, layout sections are present. They are defined as: - kbd_normal { - ...normal keyboard layout definition... - } - - kbd_thumb { - ...thumb keyboard layout definition... - } - -Inside kbd_normal, the following sections are defined: - kbd_normal { - lowercase { - ...alpha lowercase keyboard... - } - lowercase_num { - ...numeric lowercase keyboard... - } - uppercase { - ...alpha uppercase keyboard... - } - uppercase_num { - ...numeric uppercase keyboard... - } - } - -Inside kbd_thumb section, the following sections are defined: - kbd_thumb { - lowercase { - ...alpha lowercase keyboard... - } - uppercase { - ...alpha uppercase keyboard... - } - special { - ...keyboard on the second tab... - } - special { - ...keyboard on the third tab... - } - ... - } - -Definitions in the sublayout sections are the same for normal and thumb -keyboard, except the "name" clause, which can be present only in the thumb -keyboard sublayouts. - -6.4 Sublayout definition ------------------------- - -A sublayout definition contains the following clauses (the numbers and -values are just examples): - name "abc" - margin 0 0 0 0 - default_size 3 - row { - ... - } - row { - ... - } - ... - -6.4.1 Name of the sublayout ---------------------------- - -The "name" clause can (and must) be present in thumb keyboard sublayouts -only. It specifies the name displayed on the corresponding tab. - -6.4.2 Margins -------------- - -Folowing the "margin" clause, four numbers are specified. They denotes -margins of the keyboard starting from top and going clock-wise (i.e. top, -right, bottom, left). - -The margins are used for separating of the numerical from alpha keyboard. - -6.4.3 Default size ------------------- - -The "default_size" clause specifies the default size number for keys in this -sublayout. By specifying this, you don't need to add the "size" attribute to -each of the keys. - -Remember, the value refers to the dimensions specified in the header. - -6.4.4 Row definitions ---------------------- - -An arbitrary number of rows of keys can be present in each sublayout. See -the section 6.5. - -6.5 Key rows ------------- - -Each key row consists of several keys. The number of keys can be different -for different rows. - -The row definition looks like this: - row { - ...key 1... - ...key 2... - ... - ...key n... - } - -There are several ways to define a key, depending on a type of the key: - key X - white - slide { key X key X key X } - -Independently on the type, each key can have attributes. The attributes are -given after the key definition, e.g.: - key c alpha hexa - -The order of the attributes is not important. The recognized attributes are: - alpha - num - hexa - tele - special - dead - size N - -6.5.1 Key types ---------------- - -There are three key types: -1. regular keys -2. a space key -3. slide keys (repeated pressing of the slide key cycles through a set of - characters) - -6.5.2 Key definition --------------------- - -After the "key" keyword, the whitespace is required, followed by a single, -UTF-8 encoded, character (*). This character will be displayed on the key -and printed when the key is pressed by user. - -After the "slide" keyword, a new section ({...}) has to be started, -containing a "key" keyword followed by a character, followed by a "key" -keyword, etc. A slide key can contain an arbitrary number of keys. - -After the "white" keyword, there is (of course) no character specified. - -(*) That's not exactly true. You can specify a bunch of characters, as long - as they don't contain a whitespace. It should work as expected, i.e. - outputting all the characters when the key is pressed. The author hasn't - tested it, though. - -6.5.3 Key attributes --------------------- - -The "alpha" attribute denotes an alpha key (i.e. letters A to Z plus -equivalents in other languages, including characters with a diacritic). - -The "num" attribute denotes a numeric key (i.e. 0 to 9 and the minus sign). - -The "hexa" attribute denotes a key that can be used in a hexadecimal input -(i.e. 0 to 9 and A to Z). - -The "tele" attribute denotes a key present on a telephone keypad (i.e. -0 to 9, *, #, and few other keys). - -The "special" attribute denotes a non-alphanumeric key (i.e. key that is -neither a letter nor a number). - -The "dead" attribute denotes the key is a combining diacritical mark -(a so-called "dead key"). - -The "size" attribute is used when the size of the key should be different -than the default size for this sublayout. Again, remember that the value -refers to the dimensions specified in the header. - -7 Contact, legal stuff ----------------------- - -The document is (c) Jiri Benc, . It is licensed under the -GPLv2. - -If you find an error in this document, please contact the author. - -maemo is an unregistered trademark of Nokia Corporation. diff --git a/ukeyboard/doc/vkb-format-v3 b/ukeyboard/doc/vkb-format-v3 deleted file mode 100644 index e3f5c27..0000000 --- a/ukeyboard/doc/vkb-format-v3 +++ /dev/null @@ -1,141 +0,0 @@ -vkb format for OS2007/OS2008 - -- released into public domain (Permission is granted, free of charge, to any - person obtaining a copy of this file, to deal with the file without - restriction, including without limitation the right to use, copy, modify, - merge, publish, distribute, sublicense, and/or sell copies of it. The file - is provided "as is", without warranty of any kind.) -- this is the third version of the document -- changelog: - - v1: initial version based on reverse engineering of vkb files - - v2: revised using the excellent work by Kimmo Jukarainen, - http://idoru.metadreams.net/~kimju/src/maemo/decode_vkb/ - - v3: added 0x80 key flag - -- multibyte fields are little endian -- everything is utf-8 encoded -- all numbers in the "description" column are written in hexadecimal -- some (all?) length fields can be zero -- strings are denoted as 1+n and are encoded as: - bytes description - 1 length of the next field, in bytes - n the string (utf-8 encoded) - -GLOBAL HEADER -bytes description -1 version (01) -1 number of sections (02 for normal and thumb kbd, 01 for special kbd) -1+n descriptive (human-visible) name of the locale -1+n locale name (e.g. en_GB) -1+n locale name of a word completion dictionary -1 number of screen modes supported by this keyboard (02) -n types of individual screen modes (1 byte each; types are: - 0 = normal, 1 = thumb, 2 = rotated) (00 01) -1 number of key sizes (05) -... KEY SIZE -... KEY SIZE - (default key sizes are: - 23 23 1a 00 00 32 23 1a 00 00 37 23 1a 00 00 48 37 29 00 00 8f 37 29 00 00 - that's: 00 normal key, 01 longer key used on the right side of odd - rows, 02 more longer key used on the left side of odd rows, 03 big - key used in thumb kbd, 04 double width big key used in thumb kbd) - (for special kbd, default key sizes are: 23 23 1a 00 00) -2 absolute offset in the file of the first section -2 absolute offset in the file of the second section - ... -20 zeros -... SECTION -... SECTION - -KEY SIZE -bytes description -1 width of a key (in pixels? rather seems to be percentage or something) -1 height of a key -1 offset of a text (from the top of the key to the bottom of the text) - - i.e. baseline -1 left padding (extra value, not included in the width) -1 top padding (extra value, not included in the height) - -SECTION HEADER -bytes description -1 type of the section (00 normal kbd, 01 special kbd, 04 thumb kbd; - other values: 03 large kbd, 05-07 east language kbds, 08 stroke kbd) -1 number of layouts (02 for normal kbd, 04 for thumb kbd, 06 for special kbd) -1 numeric kbd (00); the meaning of this field is unclear -1 default key size (00 for normal kbd, 03 for thumb kbd, 00 for special kbd) -... LAYOUT -... LAYOUT - -LAYOUT HEADER -bytes description -1 layout type (00 lowercase, 01 uppercase, 02 neither - i.e. special chars) - notes: - - in a special kbd, even tabs with letters are of the 02 type - - it seems to be hard-coded that the first two layouts in a special - kbd have the shift key disabled -1 corresponding other case layout number, counted from 0; ff for - a single case layout -1+n name of the layout (in normal kbd should be empty; in thumb kbd - should be 3 utf-8 chars; in special kbd corresponding lower/upper - layouts should have the same name) -1 number of sublayouts (normal kbd has 2 sublayouts, thumb kbd and - special kbd have 1 sublayout) -... SUBLAYOUT -... SUBLAYOUT - -SUBLAYOUT HEADER -bytes description -1 number of keys in the sublayout -1 number of rows of the sublayout -1 left margin (in pixels?) (9 for numeric kbd) -1 top margin -1 bottom margin -1 right margin (seems that setting of margins affects also other - sublayout margins in some strange way) -n number of keys in individual rows (1 byte for each row) -... KEY -... KEY - -KEY -bytes description -1 key type (00 normal key, 01 sliding key, 02 modifier key, 04 multiple key) -... these fields depend on the key type (KEY_NORMAL, KEY_SLIDING, etc.) - -KEY_NORMAL -bytes description -1 or 2 FIELD_KEY_FLAGS -1+n letter -1 key size - -KEY_SLIDING -bytes description -1 or 2 FIELD_KEY_FLAGS -1 number of keys on the sliding key | 0x80 -1+n letter -1+n letter - ... -1 key size - -KEY_MODIFIER -? - -KEY_MULTIPLE -bytes description -1 number of keys -... KEY -... KEY - -FIELD_KEY_FLAGS -bytes description -1 key flags (bitfield) - bits: 0 (0x01) alpha - 1 (0x02) numeric - 2 (0x04) hexa - 3 (0x08) telephone - 4 (0x10) special - 5 (0x20) dead - 6 (0x40) whitespace - 7 (0x80) next byte is continuation of the flags -1 present only if the previous field contains 0x80 flag: - more key flags (bitfield?) - bits: 2 (0x04) draw tab face over the key diff --git a/ukeyboard/keyboards-scv/Makefile b/ukeyboard/keyboards-scv/Makefile deleted file mode 100644 index 0fc71ae..0000000 --- a/ukeyboard/keyboards-scv/Makefile +++ /dev/null @@ -1,16 +0,0 @@ -layouts = \ - sk-qwerty.vkb sk-qwertz.vkb - -all: $(layouts) - -%.vkb: %.def - if [ -h $< ] ; then f=`readlink $< | sed 's/\.def/\.vkb/'` ; ln -s $$f $@ ; \ - else ../vkb_compiler $< $@ ; \ - fi - -install: - install -d $(DESTDIR)/usr/share/scv_layouts - install -m 0644 $(layouts) $(DESTDIR)/usr/share/scv_layouts/ - -clean: - rm -f *.vkb diff --git a/ukeyboard/keyboards-scv/sk-qwerty.def b/ukeyboard/keyboards-scv/sk-qwerty.def deleted file mode 100644 index b2d16fc..0000000 --- a/ukeyboard/keyboards-scv/sk-qwerty.def +++ /dev/null @@ -1,80 +0,0 @@ -# Slovak scv keyboard layout -# Created by Roman Moravčík - -header { -name "" -lang "Slovenčina" -wc "" - -size 0 { width 102 height 58 textpos 41 left 0 top 0 } -} - -kbd_special { -special { - name "" - margin 0 0 0 0 - default_size 0 - row { - key ^ special - key ` special - key $ special - key • special - key ‘ special - key [ special - key ] special - } - row { - tab - key ← special - key → special - key „ special - key “ special - key { special - key } special - } -} -lowercase { - margin 0 0 0 0 - default_size 0 - row { - key ß alpha - key ° special - key ± special - key ½ special - key ’ special - key § special - key £ special - } - row { - key ú alpha - key ä alpha - key ô alpha - key ň alpha - key ” special - key « special - key » special - } -} -uppercase { - margin 0 0 0 0 - default_size 0 - row { - key ß alpha - key ` special - key ± special - key ½ special - key ’ special - key § special - key £ special - } - row { - key Ú alpha - key Ä alpha - key Ô alpha - key Ň alpha - key ” special - key « special - key » special - } -} -} diff --git a/ukeyboard/keyboards-scv/sk-qwertz.def b/ukeyboard/keyboards-scv/sk-qwertz.def deleted file mode 120000 index 4925019..0000000 --- a/ukeyboard/keyboards-scv/sk-qwertz.def +++ /dev/null @@ -1 +0,0 @@ -sk-qwerty.def \ No newline at end of file diff --git a/ukeyboard/keyboards/Makefile b/ukeyboard/keyboards/Makefile deleted file mode 100644 index 1c29be9..0000000 --- a/ukeyboard/keyboards/Makefile +++ /dev/null @@ -1,25 +0,0 @@ -layouts = \ - ar-lebanon.vkb \ - be-by.vkb \ - bg-bds.vkb \ - bg-phonetic.vkb \ - en-dvorak.vkb \ - eo-qwerty.vkb \ - he-qwerty.vkb \ - hr-qwerty.vkb hr-qwertz.vkb \ - hu-qwertz.vkb \ - sk-qwerty.vkb sk-qwertz.vkb \ - th-kedmanee.vkb \ - tr-qwerty.vkb - -all: $(layouts) - -%.vkb: %.def - ../vkb_compiler $< $@ - -install: - install -d $(DESTDIR)/usr/share/ukeyboard - install -m 0644 $(layouts) $(DESTDIR)/usr/share/ukeyboard/ - -clean: - rm -f *.vkb diff --git a/ukeyboard/keyboards/ar-lebanon.def b/ukeyboard/keyboards/ar-lebanon.def deleted file mode 100644 index 1361f1c..0000000 --- a/ukeyboard/keyboards/ar-lebanon.def +++ /dev/null @@ -1,345 +0,0 @@ -# title: Arabic keyboard layout (Lebanon) -# author: Ali Khadra -# url: http://tyros.leb.net/nokia - -header { -name "Arabic (Lebanon)" -lang "ar_LB" -wc "ar_LB" - -size 0 { width 35 height 35 textpos 26 left 0 top 0 } -size 1 { width 35 height 35 textpos 26 left 0 top 0 } -size 2 { width 66 height 55 textpos 41 left 0 top 0 } -size 3 { width 131 height 55 textpos 41 left 0 top 0 } -} - -kbd_normal { -lowercase { - margin 0 0 0 0 - default_size 1 - row { - key ض alpha - key ص alpha - key ث alpha - key ق alpha - key ف alpha - key غ alpha - key ع alpha - key ه alpha - key خ alpha - key ح alpha - key ج alpha - key د alpha - } - row { - key ش alpha - key س alpha - key ي alpha - key ب alpha - key ل alpha - key ا alpha - key ت alpha - key ن alpha - key م alpha - key ك alpha - key ط alpha - key ذ alpha - } - row { - key ئ alpha - key ء alpha - key ؤ alpha - key ر alpha - key ﻻ alpha - key ى alpha - key ة alpha - key و alpha - key ز alpha - key ظ alpha - key ، special - key . special - } -} -lowercase_num { - margin 0 0 0 9 - default_size 0 - row { - key 1 num hexa tele - key 2 num hexa tele - key 3 num hexa tele - } - row { - key 4 num hexa tele - key 5 num hexa tele - key 6 num hexa tele - } - row { - key 7 num hexa tele - key 8 num hexa tele - key 9 num hexa tele - } - row { - key + special - key 0 num hexa tele - key = special - } -} -uppercase { - margin 0 0 0 0 - default_size 1 - row { - key َ special dead - key ً special dead - key ُ special dead - key ٌ special dead - key ﻹ alpha - key إ alpha - key ‘ special - key ÷ special - key × special - key ؛ special - key < special - key > special - } - row { - key \ special - key @ special - key ] special - key [ special - key ﻷ alpha - key أ alpha - key ـ special - key ، special - key / special - key : special - key " special - key ّ special dead - } - row { - key ~ special - key ْ special dead - key ِ special dead - key ٍ special dead - key ﻵ alpha - key آ alpha - key ’ special - key , special - key . special - key ؟ special - key ! special - key | special - } -} -uppercase_num { - margin 0 0 0 9 - default_size 0 - row { - key ١ num tele - key ٢ num tele - key ٣ num tele - } - row { - key ٤ num tele - key ٥ num tele - key ٦ num tele - } - row { - key ٧ num tele - key ٨ num tele - key ٩ num tele - } - row { - key - num special tele - key ٠ num tele - key = special - } -} -} - -kbd_thumb { -lowercase { - name "ا ب" - margin 0 0 0 0 - default_size 2 - row { - key ض alpha - key ص alpha - key ث alpha - key ق alpha - key ف alpha - key غ alpha - key ع alpha - key ه alpha - key خ alpha - key ح alpha - key ج alpha - key د alpha - } - row { - key ش alpha - key س alpha - key ي alpha - key ب alpha - key ل alpha - key ا alpha - key ت alpha - key ن alpha - key م alpha - key ك alpha - key ط alpha - key ذ alpha - } - row { - key ئ alpha - key ء alpha - key ؤ alpha - key ر alpha - key ﻻ alpha - key ى alpha - key ة alpha - key و alpha - key ز alpha - key ظ alpha - white size 3 - } -} -uppercase { - name "أ إ آ" - margin 0 0 0 0 - default_size 2 - row { - key َ special dead - key ً special dead - key ُ special dead - key ٌ special dead - key ﻹ alpha - key إ alpha - key ‘ special - key ’ special - key @ special - key ؛ special - key < special - key > special - } - row { - key \ special - key | special - key ] special - key [ special - key ﻷ alpha - key أ alpha - key ـ special - key ، special - key / special - key : special - key " special - key ّ special dead - } - row { - key ~ special - key ْ special dead - key ِ special dead - key ٍ special dead - key ﻵ alpha - key آ alpha - key , special - key . special - slide special { key ؟ key ! key ( key ) key { key } } size 3 - white size 3 - } -} -special { - name "؛؟١" - margin 0 0 0 0 - default_size 2 - row { - key ١ num tele - key ٢ num tele - key ٣ num tele - key ؛ special - key ، special - key , special - key | special - key # special - key % special - key € special - key ¥ special - key ^ special - } - row { - key ٤ num tele - key ٥ num tele - key ٦ num tele - key § special - key * special - key ½ special - key « special - key » special - key [ special - key ] special - key { special - key } special - } - row { - key ٧ num tele - key ٨ num tele - key ٩ num tele - key ٠ num tele - key ‘ special - key ’ special - key ؟ special - key „ special - key “ special - key ± special - key ™ special - key © special - } -} -special { - name "1!+" - margin 0 0 0 0 - default_size 2 - row { - key 1 num hexa tele - key 2 num hexa tele - key 3 num hexa tele - key " special - key + special - key - special - key = special - key _ special - key & special - key @ special - key ~ special - key ° special - } - row { - key 4 num hexa tele - key 5 num hexa tele - key 6 num hexa tele - key ' special - key : special - key ; special - key ! special - key ¡ special - key ( special - key ) special - key / special - key \ special - } - row { - key 7 num hexa tele - key 8 num hexa tele - key 9 num hexa tele - key 0 num hexa tele - key . special - key , special - key ? special - key ¿ special - key $ special - key £ special - key < special - key > special - } -} -} diff --git a/ukeyboard/keyboards/be-by.def b/ukeyboard/keyboards/be-by.def deleted file mode 100644 index c5a01d2..0000000 --- a/ukeyboard/keyboards/be-by.def +++ /dev/null @@ -1,334 +0,0 @@ -# title: Belarusian layout -# author: Darafei Praliaskouski - -header { -name "Беларуская" -lang "be_BY" -wc "be_BY" - -size 0 { width 35 height 35 textpos 26 left 0 top 0 } -size 1 { width 50 height 35 textpos 26 left 0 top 0 } -size 2 { width 55 height 35 textpos 26 left 0 top 0 } -size 3 { width 72 height 55 textpos 41 left 0 top 0 } -size 4 { width 143 height 55 textpos 41 left 0 top 0 } -size 5 { width 24 height 35 textpos 26 left 0 top 0 } -} - -kbd_normal { -lowercase { - margin 0 0 0 0 - default_size 0 - row { - key й alpha size 2 - key ц alpha - key у alpha - key к alpha - key е alpha - key н alpha - key г alpha - key ш alpha - key ў alpha - key з alpha - key х special size 1 - } - row { - key ф alpha - key ы alpha - key в alpha - key а alpha - key п alpha - key р alpha - key о alpha - key л alpha - key д alpha - key ж alpha - key э alpha - key ' special - } - row { - key я alpha size 2 - key ч alpha - key с alpha - key м alpha - key і alpha - key т alpha - key ь alpha - key б alpha - key ю alpha - key , special tele - key . special tele size 1 - } -} -lowercase_num { - margin 0 0 0 9 - default_size 0 - row { - key 1 num hexa tele - key 2 num hexa tele - key 3 num hexa tele - } - row { - key 4 num hexa tele - key 5 num hexa tele - key 6 num hexa tele - } - row { - key 7 num hexa tele - key 8 num hexa tele - key 9 num hexa tele - } - row { - key - num special tele - key 0 num hexa tele - key ё special - } -} -uppercase { - margin 0 0 0 0 - default_size 0 - row { - key Й alpha size 2 - key Ц alpha - key У alpha - key К alpha - key Е alpha - key Н alpha - key Г alpha - key Ш alpha - key Ў alpha - key З alpha - key Х special size 5 - key + special size 5 - } - row { - key Ф alpha - key Ы alpha - key В alpha - key А alpha - key П alpha - key Р alpha - key О alpha - key Л alpha - key Д alpha - key Ж alpha - key Э alpha - key " special - } - row { - key Я alpha size 2 - key Ч alpha - key С alpha - key М alpha - key І alpha - key Т alpha - key Ь alpha - key Б alpha - key Ю alpha - key ; special - key : special size 1 - } -} -uppercase_num { - margin 0 0 0 9 - default_size 0 - row { - key ' special - key ? special tele - key $ special - } - row { - key % special - key < special - key > special - } - row { - key ! special - key ( special tele - key ) special tele - } - row { - key _ special - key * special tele - key Ё special tele - } -} -} - -kbd_thumb { -lowercase { - name "aбв" - margin 0 0 0 0 - default_size 3 - row { - key й alpha - key ц alpha - key у alpha - key к alpha - key е alpha - key н alpha - key г alpha - key ш alpha - key ў alpha - key з alpha - key х alpha - } - row { - key ф alpha - key ы alpha - key в alpha - key а alpha - key п alpha - key р alpha - key о alpha - key л alpha - key д alpha - key ж alpha - key э alpha - } - row { - white - key я alpha - key ч alpha - key с alpha - key м alpha - key і alpha - key т alpha - key ь alpha - key б alpha - key ю alpha - slide special { key . key , key ? key ' key ! key @ key ( key ) } - } -} -uppercase { - name "AБВ" - margin 0 0 0 0 - default_size 3 - row { - key Й alpha - key Ц alpha - key У alpha - key К alpha - key Е alpha - key Н alpha - key Г alpha - key Ш alpha - key Ў alpha - key З alpha - key Х alpha - } - row { - key Ф alpha - key Ы alpha - key В alpha - key А alpha - key П alpha - key Р alpha - key О alpha - key Л alpha - key Д alpha - key Ж alpha - key Э alpha - } - row { - white - key Я alpha - key Ч alpha - key С alpha - key М alpha - key І alpha - key Т alpha - key Ь alpha - key Б alpha - key Ю alpha - slide special { key . key , key ? key ! key @ key ( key ) } - } -} -special { - name "1!+" - margin 0 0 0 0 - default_size 3 - row { - key 1 num hexa tele - key 2 num hexa tele - key 3 num hexa tele - key " special - key + special - key - special - key = special - key _ special - key & special - key @ special - key ~ special - } - row { - key 4 num hexa tele - key 5 num hexa tele - key 6 num hexa tele - key ' special - key : special - key ; special - key ! special - key ( special - key ) special - key / special - key \ special - } - row { - key 7 num hexa tele - key 8 num hexa tele - key 9 num hexa tele - key 0 num hexa tele - key . special - key , special - key ? special - key „ special - key “ special - key < special - key > special - } -} -special { - name "*§¿" - margin 0 0 0 0 - default_size 3 - row { - key # special - key % special - key € special - key £ special - key $ special - key ^ special - key | special - key [ special - key ] special - key { special - key } special - } - row { - key ¡ special - key ¿ special - key § special - key * special - key · special - key • special - key ° special - key ± special - key ½ special - key « special - key » special - } - row { - key ä alpha - key ë alpha - key ö alpha - key ü alpha - key Ä alpha - key Ë alpha - key Ö alpha - key Ü alpha - key ß alpha - key ™ special - key © special - } -} -} diff --git a/ukeyboard/keyboards/bg-bds.def b/ukeyboard/keyboards/bg-bds.def deleted file mode 100644 index 2910649..0000000 --- a/ukeyboard/keyboards/bg-bds.def +++ /dev/null @@ -1,330 +0,0 @@ -# title: Bulgarian BDS layout -# author: Nickola Trupcheff - -header { -name "Български БДС" -lang "bg_BG" -wc "bg_BG" - -size 0 { width 35 height 35 textpos 26 left 0 top 0 } -size 1 { width 50 height 35 textpos 26 left 0 top 0 } -size 2 { width 55 height 35 textpos 26 left 0 top 0 } -size 3 { width 72 height 55 textpos 41 left 0 top 0 } -size 4 { width 143 height 55 textpos 41 left 0 top 0 } -size 5 { width 24 height 35 textpos 26 left 0 top 0 } -} - -kbd_normal { -lowercase { - margin 0 0 0 0 - default_size 0 - row { - key у alpha size 2 - key е alpha - key и alpha - key ш alpha - key щ alpha - key к alpha - key с alpha - key д alpha - key з alpha - key ц alpha - key @ special size 1 - } - row { - key ь alpha - key я alpha - key а alpha - key о alpha - key ж alpha - key г alpha - key т alpha - key н alpha - key в alpha - key м alpha - key ч alpha - key / special - } - row { - key ю alpha size 2 - key й alpha - key ъ alpha - key ф alpha - key х alpha - key п alpha - key р alpha - key л alpha - key б alpha - key , special tele - key . special tele size 1 - } -} -lowercase_num { - margin 0 0 0 9 - default_size 0 - row { - key 1 num hexa tele - key 2 num hexa tele - key 3 num hexa tele - } - row { - key 4 num hexa tele - key 5 num hexa tele - key 6 num hexa tele - } - row { - key 7 num hexa tele - key 8 num hexa tele - key 9 num hexa tele - } - row { - key - num special tele - key 0 num hexa tele - key = special - } -} -uppercase { - margin 0 0 0 0 - default_size 0 - row { - key У alpha size 2 - key Е alpha - key И alpha - key Ш alpha - key Щ alpha - key К alpha - key С alpha - key Д alpha - key З alpha - key Ц alpha - key ~ special size 5 - key | special size 5 - } - row { - key Ь alpha - key Я alpha - key А alpha - key О alpha - key Ж alpha - key Г alpha - key Т alpha - key Н alpha - key В alpha - key М alpha - key Ч alpha - key " special - } - row { - key Ю alpha size 2 - key Й alpha - key Ъ alpha - key Ф alpha - key Х alpha - key П alpha - key Р alpha - key Л alpha - key Б alpha - key ; special - key : special size 1 - } -} -uppercase_num { - margin 0 0 0 9 - default_size 0 - row { - key ' special - key ? special tele - key $ special - } - row { - key % special - key < special - key > special - } - row { - key ! special - key ( special tele - key ) special tele - } - row { - key _ special - key * special tele - key + special tele - } -} -} - -kbd_thumb { -lowercase { - name "abc" - margin 0 0 0 0 - default_size 3 - row { - key у alpha - key е alpha - key и alpha - key ш alpha - key щ alpha - key к alpha - key с alpha - key д alpha - key з alpha - key ц alpha - key ч alpha - } - row { - key ь alpha - key я alpha - key а alpha - key о alpha - key ж alpha - key г alpha - key т alpha - key н alpha - key в alpha - key м alpha - key б alpha - } - row { - white size 4 - key ю alpha - key й alpha - key ъ alpha - key ф alpha - key х alpha - key п alpha - key р alpha - slide special size 4 { key л key . key , key ? key ! key @ key ( key ) } - } -} -uppercase { - name "ABC" - margin 0 0 0 0 - default_size 3 - row { - key у alpha - key Е alpha - key И alpha - key Ш alpha - key Щ alpha - key К alpha - key С alpha - key Д alpha - key З alpha - key Ц alpha - key Ч alpha - } - row { - key Ь alpha - key Я alpha - key А alpha - key О alpha - key Ж alpha - key Г alpha - key Т alpha - key Н alpha - key В alpha - key М alpha - key Б alpha - } - row { - white size 4 - key Ю alpha - key Й alpha - key Ъ alpha - key Ф alpha - key Х alpha - key П alpha - key Р alpha - slide special size 4 { key Л key . key , key ? key ! key @ key ( key ) } - } -} -special { - name "1!+" - margin 0 0 0 0 - default_size 3 - row { - key 1 num hexa tele - key 2 num hexa tele - key 3 num hexa tele - key " special - key + special - key - special - key = special - key _ special - key & special - key @ special - key ~ special - } - row { - key 4 num hexa tele - key 5 num hexa tele - key 6 num hexa tele - key ' special - key : special - key ; special - key ! special - key ( special - key ) special - key / special - key \ special - } - row { - key 7 num hexa tele - key 8 num hexa tele - key 9 num hexa tele - key 0 num hexa tele - key . special - key , special - key ? special - key „ special - key “ special - key < special - key > special - } -} -special { - name "*§¿" - margin 0 0 0 0 - default_size 3 - row { - key # special - key % special - key € special - key £ special - key $ special - key ^ special - key | special - key [ special - key ] special - key { special - key } special - } - row { - key ¡ special - key ¿ special - key § special - key * special - key · special - key • special - key ° special - key ± special - key ½ special - key « special - key » special - } - row { - key ä alpha - key ë alpha - key ö alpha - key ü alpha - key Ä alpha - key Ë alpha - key Ö alpha - key Ü alpha - key ß alpha - key ™ special - key © special - } -} -} diff --git a/ukeyboard/keyboards/bg-phonetic.def b/ukeyboard/keyboards/bg-phonetic.def deleted file mode 100644 index b331fcc..0000000 --- a/ukeyboard/keyboards/bg-phonetic.def +++ /dev/null @@ -1,330 +0,0 @@ -# title: Bulgarian phonetic layout -# author: Nickola Trupcheff - -header { -name "Български (phonetic)" -lang "bg_BG" -wc "bg_BG" - -size 0 { width 35 height 35 textpos 26 left 0 top 0 } -size 1 { width 50 height 35 textpos 26 left 0 top 0 } -size 2 { width 55 height 35 textpos 26 left 0 top 0 } -size 3 { width 72 height 55 textpos 41 left 0 top 0 } -size 4 { width 143 height 55 textpos 41 left 0 top 0 } -size 5 { width 24 height 35 textpos 26 left 0 top 0 } -} - -kbd_normal { -lowercase { - margin 0 0 0 0 - default_size 0 - row { - key я alpha size 2 - key в alpha tele - key е alpha hexa - key р alpha - key т alpha - key ъ alpha - key у alpha - key и alpha - key о alpha - key п alpha tele - key @ special size 1 - } - row { - key а alpha hexa - key с alpha - key д alpha hexa - key ф alpha hexa - key г alpha - key х alpha - key й alpha - key к alpha - key л alpha - key ш alpha - key щ alpha - key ю alpha - } - row { - key з alpha size 2 - key ь alpha - key ц alpha hexa - key ж alpha - key б alpha hexa - key н alpha - key м alpha - key , special tele - key . special tele - key / special tele - key ч alpha tele size 1 - } -} -lowercase_num { - margin 0 0 0 9 - default_size 0 - row { - key 1 num hexa tele - key 2 num hexa tele - key 3 num hexa tele - } - row { - key 4 num hexa tele - key 5 num hexa tele - key 6 num hexa tele - } - row { - key 7 num hexa tele - key 8 num hexa tele - key 9 num hexa tele - } - row { - key - num special tele - key 0 num hexa tele - key = special - } -} -uppercase { - margin 0 0 0 0 - default_size 0 - row { - key Я alpha size 2 - key В alpha tele - key Е alpha hexa - key Р alpha - key Т alpha - key Ъ alpha - key У alpha - key И alpha - key О alpha - key П alpha tele - key ~ special size 5 - key | special size 5 - } - row { - key А alpha hexa - key С alpha - key Д alpha hexa - key Ф alpha hexa - key Г alpha - key Х alpha - key Й alpha - key К alpha - key Л alpha - key Ш alpha - key Щ alpha - key Ю alpha - } - row { - key З alpha size 2 - key Ь alpha - key Ц alpha hexa - key Ж alpha - key Б alpha hexa - key Н alpha - key М alpha - key ; special - key : special - key " special - key Ч alpha size 1 - } -} -uppercase_num { - margin 0 0 0 9 - default_size 0 - row { - key ' special - key ? special tele - key $ special - } - row { - key % special - key < special - key > special - } - row { - key ! special - key ( special tele - key ) special tele - } - row { - key _ special - key * special tele - key + special tele - } -} -} - -kbd_thumb { -lowercase { - name "abc" - margin 0 0 0 0 - default_size 3 - row { - key я alpha - key в alpha tele - key е alpha hexa - key р alpha - key т alpha - key ъ alpha - key у alpha - key и alpha - key о alpha - key п alpha tele - key ю alpha - } - row { - key а alpha hexa - key с alpha - key д alpha hexa - key ф alpha hexa - key г alpha - key х alpha - key й alpha - key к alpha - key л alpha - key ш alpha - key щ alpha - } - row { - white size 4 - key з alpha - key ь alpha - key ц alpha hexa - key ж alpha - key б alpha hexa - key н alpha - key м alpha - slide special size 4 { key ч key . key , key ? key ! key @ key ( key ) } - } -} -uppercase { - name "ABC" - margin 0 0 0 0 - default_size 3 - row { - key Я alpha - key В alpha tele - key Е alpha hexa - key Р alpha - key Т alpha - key Ъ alpha - key У alpha - key И alpha - key О alpha - key П alpha tele - key Ю alpha - } - row { - key А alpha hexa - key С alpha - key Д alpha hexa - key Ф alpha hexa - key Г alpha - key Х alpha - key Й alpha - key К alpha - key Л alpha - key Ш alpha - key Щ alpha - } - row { - white size 4 - key З alpha - key Ь alpha - key Ц alpha hexa - key Ж alpha - key Б alpha hexa - key Н alpha - key М alpha - slide special size 4 { key Ч key . key , key ? key ! key @ key ( key ) } - } -} -special { - name "1!+" - margin 0 0 0 0 - default_size 3 - row { - key 1 num hexa tele - key 2 num hexa tele - key 3 num hexa tele - key " special - key + special - key - special - key = special - key _ special - key & special - key @ special - key ~ special - } - row { - key 4 num hexa tele - key 5 num hexa tele - key 6 num hexa tele - key ' special - key : special - key ; special - key ! special - key ( special - key ) special - key / special - key \ special - } - row { - key 7 num hexa tele - key 8 num hexa tele - key 9 num hexa tele - key 0 num hexa tele - key . special - key , special - key ? special - key „ special - key “ special - key < special - key > special - } -} -special { - name "*§¿" - margin 0 0 0 0 - default_size 3 - row { - key # special - key % special - key € special - key £ special - key $ special - key ^ special - key | special - key [ special - key ] special - key { special - key } special - } - row { - key ¡ special - key ¿ special - key § special - key * special - key · special - key • special - key ° special - key ± special - key ½ special - key « special - key » special - } - row { - key ä alpha - key ë alpha - key ö alpha - key ü alpha - key Ä alpha - key Ë alpha - key Ö alpha - key Ü alpha - key ß alpha - key ™ special - key © special - } -} -} diff --git a/ukeyboard/keyboards/en-dvorak.def b/ukeyboard/keyboards/en-dvorak.def deleted file mode 100644 index 6f927b0..0000000 --- a/ukeyboard/keyboards/en-dvorak.def +++ /dev/null @@ -1,334 +0,0 @@ -# title: US Dvorak layout -# author: Paul Sweeney -# modified by: Ethan S. -# license: GPLv2 - -header { -name "US Dvorak" -lang "en_DV" -wc "en_GB" - -size 0 { width 35 height 35 textpos 26 left 0 top 0 } -size 1 { width 50 height 35 textpos 26 left 0 top 0 } -size 2 { width 55 height 35 textpos 26 left 0 top 0 } -size 3 { width 72 height 55 textpos 41 left 0 top 0 } -size 4 { width 143 height 55 textpos 41 left 0 top 0 } -size 5 { width 24 height 35 textpos 26 left 0 top 0 } -} - -kbd_normal { -lowercase { - margin 0 0 0 0 - default_size 0 - row { - key ' special size 2 - key , special - key . special - key p alpha - key y alpha - key f alpha hexa - key g alpha - key c alpha hexa - key r alpha - key l alpha - key / special size 1 - } - row { - key ~ special - key a alpha hexa - key o alpha - key e alpha hexa - key u alpha - key i alpha - key d alpha hexa - key h alpha - key t alpha - key n alpha - key s alpha - key - special - } - row { - key ; special size 2 - key q alpha - key j alpha - key k alpha - key x alpha - key b alpha hexa - key m alpha - key w alpha - key v alpha - key z alpha - key @ special size 1 - } -} -lowercase_num { - margin 0 0 0 9 - default_size 0 - row { - key 1 num hexa tele - key 2 num hexa tele - key 3 num hexa tele - } - row { - key 4 num hexa tele - key 5 num hexa tele - key 6 num hexa tele - } - row { - key 7 num hexa tele - key 8 num hexa tele - key 9 num hexa tele - } - row { - key ? num special tele - key 0 num hexa tele - key . special tele - } -} -uppercase { - margin 0 0 0 0 - default_size 0 - row { - key " special size 2 - key < special - key > special - key P alpha - key Y alpha - key F alpha hexa - key G alpha - key C alpha hexa - key R alpha - key L alpha - key \ special size 1 - } - row { - key | special - key A alpha hexa - key O alpha - key E alpha hexa - key U alpha - key I alpha - key D alpha hexa - key H alpha - key T alpha - key N alpha - key S alpha - key _ special - } - row { - key : special size 2 - key Q alpha - key J alpha - key K alpha - key X alpha - key B alpha hexa - key M alpha - key W alpha - key V alpha - key Z alpha - key * special tele size 1 - } -} -uppercase_num { - margin 0 0 0 9 - default_size 0 - row { - key ! special - key ` alpha dead - key # special tele - } - row { - key $ special - key % special - key & special - } - row { - key ^ special - key ( special - key ) special - } - row { - key + special - key = special - key ´ alpha dead - } -} -} - -kbd_thumb { -lowercase { - name "abc" - margin 0 0 0 0 - default_size 3 - row { - key ' special - key , special - key . special - key p alpha - key y alpha - key f alpha hexa - key g alpha - key c alpha hexa - key r alpha - key l alpha - key / special - } - row { - key a alpha hexa - key o alpha - key e alpha hexa - key u alpha - key i alpha - key d alpha hexa - key h alpha - key t alpha - key n alpha - key s alpha - key - special - } - row { - white size 4 - key q alpha - key j alpha - key k alpha - key x alpha - key b alpha hexa - key m alpha - key w alpha - key v alpha - key z alpha - } -} -uppercase { - name "ABC" - margin 0 0 0 0 - default_size 3 - row { - key " special - key < special - key > special - key P alpha - key Y alpha - key F alpha hexa - key G alpha - key C alpha hexa - key R alpha - key L alpha - key ? special - } - row { - key A alpha hexa - key O alpha - key E alpha hexa - key U alpha - key I alpha - key D alpha hexa - key H alpha - key T alpha - key N alpha - key S alpha - key _ special - } - row { - white size 4 - key Q alpha - key J alpha - key K alpha - key X alpha - key B alpha hexa - key M alpha - key W alpha - key V alpha - key Z alpha - } -} -special { - name "1!+" - margin 0 0 0 0 - default_size 3 - row { - key 1 num hexa tele - key 2 num hexa tele - key 3 num hexa tele - key " special - key + special - key - special - key = special - key ! special - key & special - key ` alpha dead - key ´ alpha dead - } - row { - key 4 num hexa tele - key 5 num hexa tele - key 6 num hexa tele - key ' special - key : special - key ; special - key ? special - key ( special - key ) special - key / special - key \ special - } - row { - key 7 num hexa tele - key 8 num hexa tele - key 9 num hexa tele - key 0 num hexa tele - key . special - key , special - key € special - key £ special - key $ special - key ~ special - key @ special - } -} - -special { - name "*§¿" - margin 0 0 0 0 - default_size 3 - row { - key # special tele - key % special - key ¤ special - key < special - key > special - key ^ special - key | special - key [ special - key ] special - key { special - key } special - } - row { - key ¡ special - key ¿ special - key § special - key * special tele - key · special - key • special - key ° special - key ± special - key ½ special - key « special - key » special - } - row { - key ¢ special - key ß alpha - key ç alpha - key ¥ special - key _ special - key “ special - key ” special - key ‘ special - key ’ special - key ™ special - key © special - } -} -} diff --git a/ukeyboard/keyboards/eo-qwerty.def b/ukeyboard/keyboards/eo-qwerty.def deleted file mode 100644 index 258daa3..0000000 --- a/ukeyboard/keyboards/eo-qwerty.def +++ /dev/null @@ -1,330 +0,0 @@ -# title: Esperanto layout -# author: Jiří Benc - -header { -name "Esperanto" -lang "eo_EO" -wc "eo_EO" - -size 0 { width 35 height 35 textpos 26 left 0 top 0 } -size 1 { width 50 height 35 textpos 26 left 0 top 0 } -size 2 { width 55 height 35 textpos 26 left 0 top 0 } -size 3 { width 72 height 55 textpos 41 left 0 top 0 } -size 4 { width 143 height 55 textpos 41 left 0 top 0 } -size 5 { width 24 height 35 textpos 26 left 0 top 0 } -} - -kbd_normal { -lowercase { - margin 0 0 0 0 - default_size 0 - row { - key q alpha size 2 - key w alpha tele - key e alpha hexa - key r alpha - key t alpha - key y alpha - key u alpha - key i alpha - key o alpha - key p alpha tele - key @ special size 1 - } - row { - key a alpha hexa - key s alpha - key d alpha hexa - key f alpha hexa - key g alpha - key h alpha - key j alpha - key k alpha - key l alpha - key " special - key ŭ alpha - key ^ alpha dead - } - row { - key z alpha size 2 - key x alpha - key c alpha hexa - key v alpha - key b alpha hexa - key n alpha - key m alpha - key , special tele - key . special tele - key / special tele - key ? special tele size 1 - } -} -lowercase_num { - margin 0 0 0 9 - default_size 0 - row { - key 1 num hexa tele - key 2 num hexa tele - key 3 num hexa tele - } - row { - key 4 num hexa tele - key 5 num hexa tele - key 6 num hexa tele - } - row { - key 7 num hexa tele - key 8 num hexa tele - key 9 num hexa tele - } - row { - key - num special tele - key 0 num hexa tele - key = special - } -} -uppercase { - margin 0 0 0 0 - default_size 0 - row { - key Q alpha size 2 - key W alpha tele - key E alpha hexa - key R alpha - key T alpha - key Y alpha - key U alpha - key I alpha - key O alpha - key P alpha tele - key ~ special size 5 - key | special size 5 - } - row { - key A alpha hexa - key S alpha - key D alpha hexa - key F alpha hexa - key G alpha - key H alpha - key J alpha - key K alpha - key L alpha - key ' special - key Ŭ alpha - key ^ alpha dead - } - row { - key Z alpha size 2 - key X alpha - key C alpha hexa - key V alpha - key B alpha hexa - key N alpha - key M alpha - key ; special - key : special - key & special - key ! special size 1 - } -} -uppercase_num { - margin 0 0 0 9 - default_size 0 - row { - key ' special - key # special tele - key % special - } - row { - key $ special - key < special - key > special - } - row { - key € special - key ( special tele - key ) special tele - } - row { - key _ special - key * special tele - key + special tele - } -} -} - -kbd_thumb { -lowercase { - name "abc" - margin 0 0 0 0 - default_size 3 - row { - key q alpha - key w alpha tele - key e alpha hexa - key r alpha - key t alpha - key y alpha - key u alpha - key i alpha - key o alpha - key p alpha tele - slide special { key : key ; key - key _ key / key < key > } - } - row { - key a alpha hexa - key s alpha - key d alpha hexa - key f alpha hexa - key g alpha - key h alpha - key j alpha - key k alpha - key l alpha - key ŭ alpha - key ^ alpha dead - } - row { - white size 4 - key z alpha - key x alpha - key c alpha hexa - key v alpha - key b alpha hexa - key n alpha - key m alpha - slide special { key . key , key ? key ! key @ key ( key ) } size 4 - } -} -uppercase { - name "ABC" - margin 0 0 0 0 - default_size 3 - row { - key Q alpha - key W alpha tele - key E alpha hexa - key R alpha - key T alpha - key Y alpha - key U alpha - key I alpha - key O alpha - key P alpha tele - slide special { key : key ; key - key _ key / key < key > } - } - row { - key A alpha hexa - key S alpha - key D alpha hexa - key F alpha hexa - key G alpha - key H alpha - key J alpha - key K alpha - key L alpha - key Ŭ alpha - key ^ alpha dead - } - row { - white size 4 - key Z alpha - key X alpha - key C alpha hexa - key V alpha - key B alpha hexa - key N alpha - key M alpha - slide special { key . key , key ? key ! key @ key ( key ) } size 4 - } -} -special { - name "1!+" - margin 0 0 0 0 - default_size 3 - row { - key 1 num hexa tele - key 2 num hexa tele - key 3 num hexa tele - key " special - key + special - key - special - key = special - key _ special - key & special - key @ special - key ~ special - } - row { - key 4 num hexa tele - key 5 num hexa tele - key 6 num hexa tele - key ' special - key : special - key ; special - key ! special - key ( special - key ) special - key / special - key \ special - } - row { - key 7 num hexa tele - key 8 num hexa tele - key 9 num hexa tele - key 0 num hexa tele - key . special - key , special - key ? special - key „ special - key “ special - key < special - key > special - } -} -special { - name "*§¿" - margin 0 0 0 0 - default_size 3 - row { - key # special - key % special - key € special - key £ special - key $ special - key ^ special - key | special - key [ special - key ] special - key { special - key } special - } - row { - key ¡ special - key ¿ special - key § special - key * special - key · special - key • special - key ° special - key ± special - key ½ special - key « special - key » special - } - row { - key ä alpha - key ë alpha - key ö alpha - key ü alpha - key Ä alpha - key Ë alpha - key Ö alpha - key Ü alpha - key ß alpha - key ™ special - key © special - } -} -} diff --git a/ukeyboard/keyboards/he-qwerty.def b/ukeyboard/keyboards/he-qwerty.def deleted file mode 100644 index f7e0ee1..0000000 --- a/ukeyboard/keyboards/he-qwerty.def +++ /dev/null @@ -1,332 +0,0 @@ -# title: Hebrew layout -# author: Matan Ziv-Av - -header { -name "Hebrew" -lang "he_IL" -wc "he_IL" - -size 0 { width 35 height 35 textpos 26 left 0 top 0 } -size 1 { width 50 height 35 textpos 26 left 0 top 0 } -size 2 { width 55 height 35 textpos 26 left 0 top 0 } -size 3 { width 72 height 55 textpos 41 left 0 top 0 } -size 4 { width 143 height 55 textpos 41 left 0 top 0 } -size 5 { width 24 height 35 textpos 26 left 0 top 0 } -} - -kbd_normal { -lowercase { - margin 0 0 0 0 - default_size 0 - row { - key / special size 2 - key ' special - key ק alpha - key ר alpha - key א alpha - key ט alpha - key ו alpha - key ן alpha - key ם alpha - key פ alpha - key = special size 1 - } - row { - key ! special - key ש alpha - key ד alpha - key ג alpha - key כ alpha - key ע alpha - key י alpha - key ח alpha - key ל alpha - key ך alpha - key ף special - key [ special - key ^ special - } - row { - key ? special size 2 - key ז alpha - key ס alpha - key ב alpha hexa - key ה alpha - key נ alpha hexa - key מ alpha - key צ alpha - key ת alpha - key ץ alpha - key . special - key , special size 1 - } -} -lowercase_num { - margin 0 0 0 9 - default_size 0 - row { - key 1 num hexa tele - key 2 num hexa tele - key 3 num hexa tele - } - row { - key 4 num hexa tele - key 5 num hexa tele - key 6 num hexa tele - } - row { - key 7 num hexa tele - key 8 num hexa tele - key 9 num hexa tele - } - row { - key - num special tele - key 0 num hexa tele - key + special - } -} -uppercase { - margin 0 0 0 0 - default_size 0 - row { - key q alpha size 2 - key w alpha tele - key e alpha hexa - key r alpha - key t alpha - key y alpha - key u alpha - key i alpha - key o alpha - key p alpha tele - key @ special size 1 - } - row { - key ~ special - key a alpha hexa - key s alpha - key d alpha hexa - key f alpha hexa - key g alpha - key h alpha - key j alpha - key k alpha - key l alpha - key " special - key | special - key ] alpha dead - } - row { - key ^ special size 2 - key z alpha - key x alpha hexa - key c alpha - key v alpha hexa - key b alpha - key n alpha - key m special - key < special - key > special - key : special size 1 - } -} -uppercase_num { - margin 0 0 0 9 - default_size 0 - row { - key ` special - key # special tele - key % special - } - row { - key $ special - key { special - key } special - } - row { - key \ special - key ( special tele - key ) special tele - } - row { - key _ special - key * special tele - key + special tele - } -} -} - -kbd_thumb { -lowercase { - name "abc" - margin 0 0 0 0 - default_size 3 - row { - key ת alpha - key ץ alpha - key ק alpha - key ר alpha - key א alpha - key ט alpha - key ו alpha - key ן alpha - key ם alpha - key פ alpha - slide special { key : key ; key - key _ key / key < key > } - } - row { - key ש alpha - key ד alpha - key ג alpha - key כ alpha - key ע alpha - key י alpha - key ח alpha - key ל alpha - key ך alpha - key ף­ alpha - key ^ alpha - } - row { - white size 4 - key ז alpha - key ס alpha - key ב alpha - key ה alpha - key נ alpha - key מ alpha - key צ alpha - slide special { key . key , key ? key ! key @ key ( key ) } size 4 - } -} -uppercase { - name "ABC" - margin 0 0 0 0 - default_size 3 - row { - key q alpha - key w alpha tele - key e alpha hexa - key r alpha - key t alpha - key y alpha - key u alpha - key i alpha - key o alpha - key p alpha tele - slide special { key : key ; key - key _ key / key < key > } - } - row { - key a alpha hexa - key s alpha - key d alpha hexa - key f alpha hexa - key g alpha - key h alpha - key j alpha - key k alpha - key l alpha - key " alpha - key ^ alpha dead - } - row { - white size 4 - key z alpha - key x alpha - key c alpha hexa - key v alpha - key b alpha hexa - key n alpha - key m alpha - slide special { key . key , key ? key ! key @ key ( key ) } size 4 - } -} -special { - name "1!+" - margin 0 0 0 0 - default_size 3 - row { - key 1 num hexa tele - key 2 num hexa tele - key 3 num hexa tele - key " special - key + special - key - special - key = special - key _ special - key & special - key @ special - key ~ special - } - row { - key 4 num hexa tele - key 5 num hexa tele - key 6 num hexa tele - key ' special - key : special - key ; special - key ! special - key ( special - key ) special - key / special - key \ special - } - row { - key 7 num hexa tele - key 8 num hexa tele - key 9 num hexa tele - key 0 num hexa tele - key . special - key , special - key ? special - key ג€ž special - key ג€œ special - key < special - key > special - } -} -special { - name "*�§��" - margin 0 0 0 0 - default_size 3 - row { - key # special - key % special - key ג‚¬ special - key �£ special - key $ special - key ^ special - key | special - key [ special - key ] special - key { special - key } special - } - row { - key �� special - key �� special - key �§ special - key * special - key �· special - key ג€¢ special - key �° special - key �± special - key �½ special - key �« special - key �» special - } - row { - key �¤ alpha - key �« alpha - key �¶ alpha - key �¼ alpha - key �„ alpha - key �‹ alpha - key �– alpha - key �œ alpha - key �Ÿ alpha - key ג„¢ special - key �© special - } -} -} diff --git a/ukeyboard/keyboards/hr-qwerty.def b/ukeyboard/keyboards/hr-qwerty.def deleted file mode 100644 index 5700338..0000000 --- a/ukeyboard/keyboards/hr-qwerty.def +++ /dev/null @@ -1,340 +0,0 @@ -# title: Croatian QWERTY layout -# author: Lovro Oreskovic - -header { -name "Hrvatski (QWERTY)" -lang "hr_HR" -wc "hr_HR" - -size 0 { width 35 height 35 textpos 26 left 0 top 0 } -size 1 { width 50 height 35 textpos 26 left 0 top 0 } -size 2 { width 55 height 35 textpos 26 left 0 top 0 } -size 3 { width 72 height 55 textpos 41 left 0 top 0 } -size 4 { width 143 height 55 textpos 41 left 0 top 0 } -size 5 { width 24 height 35 textpos 26 left 0 top 0 } -size 6 { width 35 height 35 textpos 26 left 15 top 0 } -} - -kbd_normal { -lowercase { - margin 0 0 0 0 - default_size 0 - row { - key q alpha - key w alpha tele - key e alpha hexa - key r alpha - key t alpha - key z alpha - key u alpha - key i alpha - key o alpha - key p alpha tele - key š alpha - key đ alpha - } - row { - key a alpha hexa size 6 - key s alpha - key d alpha hexa - key f alpha hexa - key g alpha - key h alpha - key j alpha - key k alpha - key l alpha - key č alpha - key ć alpha - key ž alpha - } - row { - key < special - key y alpha - key x alpha - key c alpha hexa - key v alpha - key b alpha hexa - key n alpha - key m alpha - key , special - key . special - key - special tele - key @ special - } -} -lowercase_num { - margin 0 0 0 9 - default_size 0 - row { - key 1 num hexa tele - key 2 num hexa tele - key 3 num hexa tele - } - row { - key 4 num hexa tele - key 5 num hexa tele - key 6 num hexa tele - } - row { - key 7 num hexa tele - key 8 num hexa tele - key 9 num hexa tele - } - row { - key ? num special tele - key 0 num hexa tele - key * special - } -} -uppercase { - margin 0 0 0 0 - default_size 0 - row { - key Q alpha - key W alpha tele - key E alpha hexa - key R alpha - key T alpha - key Y alpha - key U alpha - key I alpha - key O alpha - key P alpha tele - key Š alpha - key Đ alpha - } - row { - key A alpha hexa size 6 - key S alpha - key D alpha hexa - key F alpha hexa - key G alpha - key H alpha - key J alpha - key K alpha - key L alpha - key Č alpha - key Ć alpha - key Ž alpha - } - row { - key > special - key Z alpha - key X alpha - key C alpha hexa - key V alpha - key B alpha hexa - key N alpha - key M alpha - key ; special - key : special - key _ special - key @ special - } -} -uppercase_num { - margin 0 0 0 9 - default_size 0 - row { - key ! special - key " special - key # special tele - } - row { - key $ special - key % special - key & special - } - row { - key & special - key / special - key ( special tele - } - row { - key ) special tele - key = special - key ? special - } -} -} - -kbd_thumb { -lowercase { - name "abc" - margin 0 0 0 0 - default_size 3 - row { - key q alpha - key w alpha tele - key e alpha hexa - key r alpha - key t alpha - key z alpha - key u alpha - key i alpha - key o alpha - key p alpha tele - key š alpha - key đ alpha - } - row { - key a alpha hexa - key s alpha - key d alpha hexa - key f alpha hexa - key g alpha - key h alpha - key j alpha - key k alpha - key l alpha - key č alpha - key ć alpha - key ž alpha - } - row { - white size 4 - key y alpha - key x alpha - key c alpha hexa - key v alpha - key b alpha hexa - key n alpha - key m alpha - slide special { key . key , key ? key ! key @ key ( key ) } - slide special { key : key ; key - key _ key / key < key > } - } -} -uppercase { - name "ABC" - margin 0 0 0 0 - default_size 3 - row { - key Q alpha - key W alpha tele - key E alpha hexa - key R alpha - key T alpha - key Z alpha - key U alpha - key I alpha - key O alpha - key P alpha tele - key Š alpha - key Đ alpha - } - row { - key A alpha hexa - key S alpha - key D alpha hexa - key F alpha hexa - key G alpha - key H alpha - key J alpha - key K alpha - key L alpha - key Č alpha - key Ć alpha - key Ž alpha - } - row { - white size 4 - key Y alpha - key X alpha - key C alpha hexa - key V alpha - key B alpha hexa - key N alpha - key M alpha - slide special { key . key , key ? key ! key @ key ( key ) } - slide special { key : key ; key - key _ key / key < key > } - } -} -special { - name "1!+" - margin 0 0 0 0 - default_size 3 - row { - key 1 num hexa tele - key 2 num hexa tele - key 3 num hexa tele - key " special - key + special - key - special - key = special - key _ special - key & special - key @ special - key ~ special - } - row { - key 4 num hexa tele - key 5 num hexa tele - key 6 num hexa tele - key ' special - key : special - key ; special - key ! special - key ( special - key ) special - key / special - key \ special - } - row { - key 7 num hexa tele - key 8 num hexa tele - key 9 num hexa tele - key 0 num hexa tele - key . special - key , special - key ? special - key „ special - key “ special - key < special - key > special - } -} -special { - name "*§¿" - margin 0 0 0 0 - default_size 3 - row { - key # special - key % special - key € special - key £ special - key $ special - key ^ special - key | special - key [ special - key ] special - key { special - key } special - } - row { - key ¡ special - key ¿ special - key § special - key * special - key · special - key • special - key ° special - key ± special - key ½ special - key « special - key » special - } - row { - key ä alpha - key ë alpha - key ö alpha - key ü alpha - key Ä alpha - key Ë alpha - key Ö alpha - key Ü alpha - key ß alpha - key ™ special - key © special - } -} -} diff --git a/ukeyboard/keyboards/hr-qwertz.def b/ukeyboard/keyboards/hr-qwertz.def deleted file mode 100644 index 896373f..0000000 --- a/ukeyboard/keyboards/hr-qwertz.def +++ /dev/null @@ -1,340 +0,0 @@ -# title: Croatian QWERTZ layout -# author: Lovro Oreskovic - -header { -name "Hrvatski (QWERTZ)" -lang "hr_HR" -wc "hr_HR" - -size 0 { width 35 height 35 textpos 26 left 0 top 0 } -size 1 { width 50 height 35 textpos 26 left 0 top 0 } -size 2 { width 55 height 35 textpos 26 left 0 top 0 } -size 3 { width 72 height 55 textpos 41 left 0 top 0 } -size 4 { width 143 height 55 textpos 41 left 0 top 0 } -size 5 { width 24 height 35 textpos 26 left 0 top 0 } -size 6 { width 35 height 35 textpos 26 left 15 top 0 } -} - -kbd_normal { -lowercase { - margin 0 0 0 0 - default_size 0 - row { - key q alpha - key w alpha tele - key e alpha hexa - key r alpha - key t alpha - key z alpha - key u alpha - key i alpha - key o alpha - key p alpha tele - key š alpha - key đ alpha - } - row { - key a alpha hexa size 6 - key s alpha - key d alpha hexa - key f alpha hexa - key g alpha - key h alpha - key j alpha - key k alpha - key l alpha - key č alpha - key ć alpha - key ž alpha - } - row { - key < special - key y alpha - key x alpha - key c alpha hexa - key v alpha - key b alpha hexa - key n alpha - key m alpha - key , special - key . special - key - special tele - key @ special - } -} -lowercase_num { - margin 0 0 0 9 - default_size 0 - row { - key 1 num hexa tele - key 2 num hexa tele - key 3 num hexa tele - } - row { - key 4 num hexa tele - key 5 num hexa tele - key 6 num hexa tele - } - row { - key 7 num hexa tele - key 8 num hexa tele - key 9 num hexa tele - } - row { - key ? num special tele - key 0 num hexa tele - key * special - } -} -uppercase { - margin 0 0 0 0 - default_size 0 - row { - key Q alpha - key W alpha tele - key E alpha hexa - key R alpha - key T alpha - key Z alpha - key U alpha - key I alpha - key O alpha - key P alpha tele - key Š alpha - key Đ alpha - } - row { - key A alpha hexa size 6 - key S alpha - key D alpha hexa - key F alpha hexa - key G alpha - key H alpha - key J alpha - key K alpha - key L alpha - key Č alpha - key Ć alpha - key Ž alpha - } - row { - key > special - key Y alpha - key X alpha - key C alpha hexa - key V alpha - key B alpha hexa - key N alpha - key M alpha - key ; special - key : special - key _ special - key @ special - } -} -uppercase_num { - margin 0 0 0 9 - default_size 0 - row { - key ! special - key " special - key # special tele - } - row { - key $ special - key % special - key & special - } - row { - key & special - key / special - key ( special tele - } - row { - key ) special tele - key = special - key ? special - } -} -} - -kbd_thumb { -lowercase { - name "abc" - margin 0 0 0 0 - default_size 3 - row { - key q alpha - key w alpha tele - key e alpha hexa - key r alpha - key t alpha - key z alpha - key u alpha - key i alpha - key o alpha - key p alpha tele - key š alpha - key đ alpha - } - row { - key a alpha hexa - key s alpha - key d alpha hexa - key f alpha hexa - key g alpha - key h alpha - key j alpha - key k alpha - key l alpha - key č alpha - key ć alpha - key ž alpha - } - row { - white size 4 - key y alpha - key x alpha - key c alpha hexa - key v alpha - key b alpha hexa - key n alpha - key m alpha - slide special { key . key , key ? key ! key @ key ( key ) } - slide special { key : key ; key - key _ key / key < key > } - } -} -uppercase { - name "ABC" - margin 0 0 0 0 - default_size 3 - row { - key Q alpha - key W alpha tele - key E alpha hexa - key R alpha - key T alpha - key Z alpha - key U alpha - key I alpha - key O alpha - key P alpha tele - key Š alpha - key Đ alpha - } - row { - key A alpha hexa - key S alpha - key D alpha hexa - key F alpha hexa - key G alpha - key H alpha - key J alpha - key K alpha - key L alpha - key Č alpha - key Ć alpha - key Ž alpha - } - row { - white size 4 - key Y alpha - key X alpha - key C alpha hexa - key V alpha - key B alpha hexa - key N alpha - key M alpha - slide special { key . key , key ? key ! key @ key ( key ) } - slide special { key : key ; key - key _ key / key < key > } - } -} -special { - name "1!+" - margin 0 0 0 0 - default_size 3 - row { - key 1 num hexa tele - key 2 num hexa tele - key 3 num hexa tele - key " special - key + special - key - special - key = special - key _ special - key & special - key @ special - key ~ special - } - row { - key 4 num hexa tele - key 5 num hexa tele - key 6 num hexa tele - key ' special - key : special - key ; special - key ! special - key ( special - key ) special - key / special - key \ special - } - row { - key 7 num hexa tele - key 8 num hexa tele - key 9 num hexa tele - key 0 num hexa tele - key . special - key , special - key ? special - key „ special - key “ special - key < special - key > special - } -} -special { - name "*§¿" - margin 0 0 0 0 - default_size 3 - row { - key # special - key % special - key € special - key £ special - key $ special - key ^ special - key | special - key [ special - key ] special - key { special - key } special - } - row { - key ¡ special - key ¿ special - key § special - key * special - key · special - key • special - key ° special - key ± special - key ½ special - key « special - key » special - } - row { - key ä alpha - key ë alpha - key ö alpha - key ü alpha - key Ä alpha - key Ë alpha - key Ö alpha - key Ü alpha - key ß alpha - key ™ special - key © special - } -} -} diff --git a/ukeyboard/keyboards/hu-qwertz.def b/ukeyboard/keyboards/hu-qwertz.def deleted file mode 100644 index 8204112..0000000 --- a/ukeyboard/keyboards/hu-qwertz.def +++ /dev/null @@ -1,338 +0,0 @@ -# title: Hungarian QWERTZ layout -# author: Hámorszky Balázs - -header { -name "Magyar (QWERTZ)" -lang "hu_HU" -wc "hu_HU" - -size 0 { width 35 height 35 textpos 26 left 0 top 0 } -size 1 { width 50 height 35 textpos 26 left 0 top 0 } -size 2 { width 55 height 35 textpos 26 left 0 top 0 } -size 3 { width 72 height 55 textpos 41 left 0 top 0 } -size 4 { width 143 height 55 textpos 41 left 0 top 0 } -size 5 { width 24 height 35 textpos 26 left 0 top 0 } -} - -kbd_normal { -lowercase { - margin 0 0 0 0 - default_size 0 - row { - key q alpha - key w alpha tele - key e alpha hexa - key r alpha - key t alpha - key z alpha - key u alpha - key i alpha - key o alpha - key p alpha tele - key @ special size 5 - key : special size 5 - key ) special size 5 - } - row { - key a alpha hexa - key s alpha - key d alpha hexa - key f alpha hexa - key g alpha - key h alpha - key j alpha - key k alpha - key l alpha - key ´ alpha dead - key ¨ alpha dead - key ˝ alpha dead - } - row { - key ´ alpha dead size 5 - key y alpha - key x alpha - key c alpha hexa - key v alpha - key b alpha hexa - key n alpha - key m alpha - key , special tele - key . special tele - key / special tele - key ? special tele size 5 - key ! special size 5 - } -} -lowercase_num { - margin 0 0 0 9 - default_size 0 - row { - key 1 num hexa tele - key 2 num hexa tele - key 3 num hexa tele - } - row { - key 4 num hexa tele - key 5 num hexa tele - key 6 num hexa tele - } - row { - key 7 num hexa tele - key 8 num hexa tele - key 9 num hexa tele - } - row { - key - num special tele - key 0 num hexa tele - key = special - } -} -uppercase { - margin 0 0 0 0 - default_size 0 - row { - key Q alpha - key W alpha tele - key E alpha hexa - key R alpha - key T alpha - key Z alpha - key U alpha - key I alpha - key O alpha - key P alpha tele - key ~ special - key | special - } - row { - key A alpha hexa - key S alpha - key D alpha hexa - key F alpha hexa - key G alpha - key H alpha - key J alpha - key K alpha - key L alpha - key ´ alpha dead - key ¨ alpha dead - key ˝ alpha dead - } - row { - key ´ alpha dead size 5 - key Y alpha - key X alpha - key C alpha hexa - key V alpha - key B alpha hexa - key N alpha - key M alpha - key ; special size 5 - key : special - key " special size 5 - key ( special - key ) special - } -} -uppercase_num { - margin 0 0 0 9 - default_size 0 - row { - key ' special - key # special tele - key $ special - } - row { - key % special - key < special - key > special - } - row { - key & special - key { special tele - key } special tele - } - row { - key _ special - key * special tele - key + special tele - } -} -} - -kbd_thumb { -lowercase { - name "abc" - margin 0 0 0 0 - default_size 3 - row { - key q alpha - key w alpha tele - key e alpha hexa - key r alpha - key t alpha - key z alpha - key u alpha - key i alpha - key o alpha - key p alpha tele - key ¨ alpha dead - } - row { - key a alpha hexa - key s alpha - key d alpha hexa - key f alpha hexa - key g alpha - key h alpha - key j alpha - key k alpha - key l alpha - key ´ alpha dead - key ˝ alpha dead - } - row { - white size 4 - key y alpha - key x alpha - key c alpha hexa - key v alpha - key b alpha hexa - key n alpha - key m alpha - slide special { key . key , key ) key ( key @ key < key > } - slide special { key ? key ! key : key - key _ key / key ; } - } -} -uppercase { - name "ABC" - margin 0 0 0 0 - default_size 3 - row { - key Q alpha - key W alpha tele - key E alpha hexa - key R alpha - key T alpha - key Z alpha - key U alpha - key I alpha - key O alpha - key P alpha tele - key ¨ alpha dead - } - row { - key A alpha hexa - key S alpha - key D alpha hexa - key F alpha hexa - key G alpha - key H alpha - key J alpha - key K alpha - key L alpha - key ´ alpha dead - key ˝ alpha dead - } - row { - white size 4 - key Y alpha - key X alpha - key C alpha hexa - key V alpha - key B alpha hexa - key N alpha - key M alpha - slide special { key . key , key ) key ( key @ key < key > } - slide special { key ? key ! key : key - key _ key / key ; } - } -} -special { - name "1!+" - margin 0 0 0 0 - default_size 3 - row { - key 1 num hexa tele - key 2 num hexa tele - key 3 num hexa tele - key " special - key + special - key - special - key = special - key _ special - key & special - key @ special - key ~ special - } - row { - key 4 num hexa tele - key 5 num hexa tele - key 6 num hexa tele - key ' special - key : special - key ; special - key ! special - key ( special - key ) special - key / special - key \ special - } - row { - key 7 num hexa tele - key 8 num hexa tele - key 9 num hexa tele - key 0 num hexa tele - key . special - key , special - key ? special - key „ special - key “ special - key < special - key > special - } -} -special { - name "*§¿" - margin 0 0 0 0 - default_size 3 - row { - key # special - key % special - key € special - key £ special - key $ special - key ^ special - key | special - key [ special - key ] special - key { special - key } special - } - row { - key ¡ special - key ¿ special - key § special - key * special - key · special - key • special - key ° special - key ± special - key ½ special - key « special - key » special - } - row { - key ä alpha - key ë alpha - key ö alpha - key ü alpha - key Ä alpha - key Ë alpha - key Ö alpha - key Ü alpha - key ß alpha - key ™ special - key © special - } -} -} diff --git a/ukeyboard/keyboards/latin.special.def-template b/ukeyboard/keyboards/latin.special.def-template deleted file mode 100644 index 4ecf561..0000000 --- a/ukeyboard/keyboards/latin.special.def-template +++ /dev/null @@ -1,86 +0,0 @@ -header { -name "" -lang "en_GB" -wc "" - -size 0 { width 35 height 35 textpos 26 left 0 top 0 } -} - -kbd_special { -special { - name "test 1" - default_size 0 - row { - key a alpha - } - row { - key b alpha - } - row { - key c alpha - } -} -special { - name "test 2" - default_size 0 - row { - key d alpha - } - row { - key e alpha - } - row { - key f alpha - } -} -special_lowercase { - name "test 3" - default_size 0 - row { - key g alpha - } - row { - key h alpha - } - row { - key i alpha - } -} -special_uppercase { - default_size 0 - row { - key G alpha - } - row { - key H alpha - } - row { - key I alpha - } -} -special_lowercase { - name "test 4" - default_size 0 - row { - key j alpha - } - row { - key k alpha - } - row { - key l alpha - } -} -special_uppercase { - default_size 0 - row { - key J alpha - } - row { - key K alpha - } - row { - key L alpha - } -} -} diff --git a/ukeyboard/keyboards/sk-qwerty.def b/ukeyboard/keyboards/sk-qwerty.def deleted file mode 100644 index 3844b69..0000000 --- a/ukeyboard/keyboards/sk-qwerty.def +++ /dev/null @@ -1,332 +0,0 @@ -# title: Slovak QWERTY layout -# author: Roman Moravčík - -header { -name "Slovenčina (QWERTY)" -lang "sk_SK" -wc "sk_SK" - -size 0 { width 35 height 35 textpos 26 left 0 top 0 } -size 1 { width 50 height 35 textpos 26 left 0 top 0 } -size 2 { width 55 height 35 textpos 26 left 0 top 0 } -size 3 { width 72 height 55 textpos 41 left 0 top 0 } -size 4 { width 143 height 55 textpos 41 left 0 top 0 } -size 5 { width 24 height 35 textpos 26 left 0 top 0 } -} - -kbd_normal { -lowercase { - margin 0 0 0 0 - default_size 0 - row { - key q alpha size 2 - key w alpha tele - key e alpha hexa - key r alpha - key t alpha - key y alpha - key u alpha - key i alpha - key o alpha - key p alpha tele - key @ special size 1 - } - row { - key a alpha hexa - key s alpha - key d alpha hexa - key f alpha hexa - key g alpha - key h alpha - key j alpha - key k alpha - key l alpha - key ô alpha - key ´ alpha dead - key ˇ alpha dead - } - row { - key z alpha size 2 - key x alpha - key c alpha hexa - key v alpha - key b alpha hexa - key n alpha - key m alpha - key , special tele - key . special tele - key / special tele - key ? special tele size 1 - } -} -lowercase_num { - margin 0 0 0 9 - default_size 0 - row { - key 1 num hexa tele - key 2 num hexa tele - key 3 num hexa tele - } - row { - key 4 num hexa tele - key 5 num hexa tele - key 6 num hexa tele - } - row { - key 7 num hexa tele - key 8 num hexa tele - key 9 num hexa tele - } - row { - key - num special tele - key 0 num hexa tele - key = special - } -} -uppercase { - margin 0 0 0 0 - default_size 0 - row { - key Q alpha size 2 - key W alpha tele - key E alpha hexa - key R alpha - key T alpha - key Y alpha - key U alpha - key I alpha - key O alpha - key P alpha tele - key ~ special size 5 - key | special size 5 - } - row { - key A alpha hexa - key S alpha - key D alpha hexa - key F alpha hexa - key G alpha - key H alpha - key J alpha - key K alpha - key L alpha - key Ô alpha - key ´ alpha dead - key ˇ alpha dead - } - row { - key Z alpha size 2 - key X alpha - key C alpha hexa - key V alpha - key B alpha hexa - key N alpha - key M alpha - key ; special - key : special - key " special - key ! special size 1 - } -} -uppercase_num { - margin 0 0 0 9 - default_size 0 - row { - key ' special - key # special tele - key $ special - } - row { - key % special - key < special - key > special - } - row { - key & special - key ( special tele - key ) special tele - } - row { - key _ special - key * special tele - key + special tele - } -} -} - -kbd_thumb { -lowercase { - name "abc" - margin 0 0 0 0 - default_size 3 - row { - key q alpha - key w alpha tele - key e alpha hexa - key r alpha - key t alpha - key y alpha - key u alpha - key i alpha - key o alpha - key p alpha tele - key ä alpha - } - row { - key a alpha hexa - key s alpha - key d alpha hexa - key f alpha hexa - key g alpha - key h alpha - key j alpha - key k alpha - key l alpha - key ô alpha - key ´ alpha dead - } - row { - key z alpha - key x alpha - key c alpha hexa - key v alpha - key b alpha hexa - key n alpha - key m alpha - white size 4 - key ˇ alpha dead - slide special { key . key , key ? key ! key - key _ key & key | key \ key / key < key > } - } -} -uppercase { - name "ABC" - margin 0 0 0 0 - default_size 3 - row { - key Q alpha - key W alpha tele - key E alpha hexa - key R alpha - key T alpha - key Y alpha - key U alpha - key I alpha - key O alpha - key P alpha tele - key Ä alpha - } - row { - key A alpha hexa - key S alpha - key D alpha hexa - key F alpha hexa - key G alpha - key H alpha - key J alpha - key K alpha - key L alpha - key Ô alpha - key ´ alpha dead - } - row { - key Z alpha - key X alpha - key C alpha hexa - key V alpha - key B alpha hexa - key N alpha - key M alpha - white size 4 - key ˇ alpha dead - slide special { key . key , key ? key ! key - key _ key & key | key \ key / key < key > } - } -} -special { - name "1!+" - margin 0 0 0 0 - default_size 3 - row { - key 1 num hexa tele - key 2 num hexa tele - key 3 num hexa tele - key " special - key + special - key - special - key = special - key _ special - key & special - key @ special - key ~ special - } - row { - key 4 num hexa tele - key 5 num hexa tele - key 6 num hexa tele - key ' special - key : special - key ; special - key ! special - key ( special - key ) special - key / special - key \ special - } - row { - key 7 num hexa tele - key 8 num hexa tele - key 9 num hexa tele - key 0 num hexa tele - key . special - key , special - key ? special - key £ special - key € special - key < special - key > special - } -} -special { - name "*§¿" - margin 0 0 0 0 - default_size 3 - row { - key # special - key % special - key ¤ special - key $ special - key ¥ special - key ^ special - key | special - key [ special - key ] special - key { special - key } special - } - row { - key ¡ special - key ¿ special - key § special - key * special - key ¨ special - key ° special - key · special - key ± special - key ½ special - key « special - key » special - } - row { - key ¢ alpha - key ß alpha - key ç alpha - key ´ alpha - key ` alpha - key “ alpha - key ” alpha - key ‘ alpha - key ’ alpha - key ™ special - key © special - } -} -} diff --git a/ukeyboard/keyboards/sk-qwertz.def b/ukeyboard/keyboards/sk-qwertz.def deleted file mode 100644 index 4dfbb58..0000000 --- a/ukeyboard/keyboards/sk-qwertz.def +++ /dev/null @@ -1,332 +0,0 @@ -# title: Slovak QWERTZ layout -# author: Roman Moravčík - -header { -name "Slovenčina (QWERTZ)" -lang "sk_SK" -wc "sk_SK" - -size 0 { width 35 height 35 textpos 26 left 0 top 0 } -size 1 { width 50 height 35 textpos 26 left 0 top 0 } -size 2 { width 55 height 35 textpos 26 left 0 top 0 } -size 3 { width 72 height 55 textpos 41 left 0 top 0 } -size 4 { width 143 height 55 textpos 41 left 0 top 0 } -size 5 { width 24 height 35 textpos 26 left 0 top 0 } -} - -kbd_normal { -lowercase { - margin 0 0 0 0 - default_size 0 - row { - key q alpha size 2 - key w alpha tele - key e alpha hexa - key r alpha - key t alpha - key z alpha - key u alpha - key i alpha - key o alpha - key p alpha tele - key @ special size 1 - } - row { - key a alpha hexa - key s alpha - key d alpha hexa - key f alpha hexa - key g alpha - key h alpha - key j alpha - key k alpha - key l alpha - key ô alpha - key ´ alpha dead - key ˇ alpha dead - } - row { - key y alpha size 2 - key x alpha - key c alpha hexa - key v alpha - key b alpha hexa - key n alpha - key m alpha - key , special tele - key . special tele - key / special tele - key ? special tele size 1 - } -} -lowercase_num { - margin 0 0 0 9 - default_size 0 - row { - key 1 num hexa tele - key 2 num hexa tele - key 3 num hexa tele - } - row { - key 4 num hexa tele - key 5 num hexa tele - key 6 num hexa tele - } - row { - key 7 num hexa tele - key 8 num hexa tele - key 9 num hexa tele - } - row { - key - num special tele - key 0 num hexa tele - key = special - } -} -uppercase { - margin 0 0 0 0 - default_size 0 - row { - key Q alpha size 2 - key W alpha tele - key E alpha hexa - key R alpha - key T alpha - key Z alpha - key U alpha - key I alpha - key O alpha - key P alpha tele - key ~ special size 5 - key | special size 5 - } - row { - key A alpha hexa - key S alpha - key D alpha hexa - key F alpha hexa - key G alpha - key H alpha - key J alpha - key K alpha - key L alpha - key Ô alpha - key ´ alpha dead - key ˇ alpha dead - } - row { - key Y alpha size 2 - key X alpha - key C alpha hexa - key V alpha - key B alpha hexa - key N alpha - key M alpha - key ; special - key : special - key " special - key ! special size 1 - } -} -uppercase_num { - margin 0 0 0 9 - default_size 0 - row { - key ' special - key # special tele - key $ special - } - row { - key % special - key < special - key > special - } - row { - key & special - key ( special tele - key ) special tele - } - row { - key _ special - key * special tele - key + special tele - } -} -} - -kbd_thumb { -lowercase { - name "abc" - margin 0 0 0 0 - default_size 3 - row { - key q alpha - key w alpha tele - key e alpha hexa - key r alpha - key t alpha - key z alpha - key u alpha - key i alpha - key o alpha - key p alpha tele - key ä alpha - } - row { - key a alpha hexa - key s alpha - key d alpha hexa - key f alpha hexa - key g alpha - key h alpha - key j alpha - key k alpha - key l alpha - key ô alpha - key ´ alpha dead - } - row { - key y alpha - key x alpha - key c alpha hexa - key v alpha - key b alpha hexa - key n alpha - key m alpha - white size 4 - key ˇ alpha dead - slide special { key . key , key ? key ! key - key _ key & key | key \ key / key < key > } - } -} -uppercase { - name "ABC" - margin 0 0 0 0 - default_size 3 - row { - key Q alpha - key W alpha tele - key E alpha hexa - key R alpha - key T alpha - key Z alpha - key U alpha - key I alpha - key O alpha - key P alpha tele - key Ä alpha - } - row { - key A alpha hexa - key S alpha - key D alpha hexa - key F alpha hexa - key G alpha - key H alpha - key J alpha - key K alpha - key L alpha - key Ô alpha - key ´ alpha dead - } - row { - key Y alpha - key X alpha - key C alpha hexa - key V alpha - key B alpha hexa - key N alpha - key M alpha - white size 4 - key ˇ alpha dead - slide special { key . key , key ? key ! key - key _ key & key | key \ key / key < key > } - } -} -special { - name "1!+" - margin 0 0 0 0 - default_size 3 - row { - key 1 num hexa tele - key 2 num hexa tele - key 3 num hexa tele - key " special - key + special - key - special - key = special - key _ special - key & special - key @ special - key ~ special - } - row { - key 4 num hexa tele - key 5 num hexa tele - key 6 num hexa tele - key ' special - key : special - key ; special - key ! special - key ( special - key ) special - key / special - key \ special - } - row { - key 7 num hexa tele - key 8 num hexa tele - key 9 num hexa tele - key 0 num hexa tele - key . special - key , special - key ? special - key £ special - key € special - key < special - key > special - } -} -special { - name "*§¿" - margin 0 0 0 0 - default_size 3 - row { - key # special - key % special - key ¤ special - key $ special - key ¥ special - key ^ special - key | special - key [ special - key ] special - key { special - key } special - } - row { - key ¡ special - key ¿ special - key § special - key * special - key ¨ special - key ° special - key · special - key ± special - key ½ special - key « special - key » special - } - row { - key ¢ alpha - key ß alpha - key ç alpha - key ´ alpha - key ` alpha - key “ alpha - key ” alpha - key ‘ alpha - key ’ alpha - key ™ special - key © special - } -} -} diff --git a/ukeyboard/keyboards/th-kedmanee.def b/ukeyboard/keyboards/th-kedmanee.def deleted file mode 100644 index 8a9776e..0000000 --- a/ukeyboard/keyboards/th-kedmanee.def +++ /dev/null @@ -1,335 +0,0 @@ -# title: TH Kedmanee layout -# author: Panu Tangchalermkul -# license: GPLv2 - -header { -name "ไทย Kedmanee" -lang "th_TH" -wc "th_TH" - -size 0 { width 35 height 35 textpos 26 left 0 top 0 } -size 1 { width 50 height 35 textpos 26 left 0 top 0 } -size 2 { width 55 height 35 textpos 26 left 0 top 0 } -size 3 { width 72 height 55 textpos 41 left 0 top 0 } -size 4 { width 143 height 55 textpos 41 left 0 top 0 } -size 5 { width 24 height 35 textpos 26 left 0 top 0 } -} - -kbd_normal { -lowercase { - margin 0 0 0 0 - default_size 0 - row { - key ๆ special size 2 - key ไ special - key ำ special - key พ alpha - key ะ special - key ั special - key ี special - key ร alpha - key น alpha - key ย alpha - key บ alpha size 1 - } - row { - key ฟ alpha - key ห alpha - key ก alpha - key ด alpha - key เ special - key ้ special - key ่ special - key า special - key ส alpha - key ว alpha - key ง alpha - key ล alpha - } - row { - key ผ alpha size 2 - key ป alpha - key แ special - key อ alpha - key ิ special - key ื special - key ท alpha - key ม alpha - key ใ special - key ฝ alpha - key @ special size 1 - } -} -lowercase_num { - margin 0 0 0 9 - default_size 0 - row { - key ๅ special - key / special - key - special - } - row { - key ภ alpha - key ถ alpha - key ุ special - } - row { - key ึ special - key ค alpha - key ต alpha - } - row { - key จ alpha - key ข alpha - key ช alpha - } -} -uppercase { - margin 0 0 0 0 - default_size 0 - row { - key + special size 2 - key " special - key ฎ alpha - key ฑ alpha - key ธ alpha - key ํ special - key ๊ special - key ณ alpha - key ฯ special - key ญ alpha - key ฐ alpha size 1 - } - row { - key ฤ alpha - key ฆ alpha - key ฏ alpha - key โ special - key ฌ alpha - key ็ special - key ๋ special - key ษ alpha - key ศ alpha - key ซ alpha - key . special - key , special - } - row { - key ( special size 2 - key ) special - key ฉ alpha - key ฮ alpha - key ฺ special - key ์ special - key ? special - key ฒ alpha - key ฬ alpha - key ฦ alpha - key * special size 1 - } -} -uppercase_num { - margin 0 0 0 9 - default_size 0 - row { - key ๑ num - key ๒ num - key ๓ num - } - row { - key ๔ num - key ๕ num - key ๖ num - } - row { - key ๗ num - key ๘ num - key ๙ num - } - row { - key ู special - key ๐ num - key ฿ special - } -} -} - -kbd_thumb { -lowercase { - name "กขค" - margin 0 0 0 0 - default_size 3 - row { - key พ alpha - key ร alpha - key น alpha - key ย alpha - key บ alpha - key ล alpha - key ภ alpha - key ถ alpha - key ค alpha - slide special { key ิ key ี key ึ key ื } - slide special { key ่ key ้ key ๊ key ๋ } - } - row { - key ฟ alpha - key ห alpha - key ก alpha - key ด alpha - key ส alpha - key ว alpha - key ง alpha - key ต alpha - key จ alpha - slide special { key เ key แ key โ key ไ key ใ } - slide special { key ะ key า key ำ } - } - row { - white size 3 - key ผ alpha - key ป alpha - key อ alpha - key ท alpha - key ม alpha - key ฝ alpha - key ข alpha - key ช alpha - slide special { key ุ key ู } - slide special { key ั key ็ key ์ } - } -} -uppercase { - name "ฏฑธ" - margin 0 0 0 0 - default_size 3 - row { - key ฎ alpha - key ฑ alpha - key ธ alpha - key ณ alpha - key ฯ special - key ญ alpha - key ฐ alpha - key , special - key ฿ special - slide special { key ิ key ี key ึ key ื } - slide special { key ่ key ้ key ๊ key ๋ } - } - row { - key ฤ alpha - key ฆ alpha - key ฏ alpha - key ฌ alpha - key ็ special - key ษ alpha - key ศ alpha - key ซ alpha - key . special - slide special { key เ key แ key โ key ไ key ใ } - slide special { key ะ key า key ำ } - } - row { - white size 3 - key ( special - key ) special - key ฉ alpha - key ฮ alpha - key ์ special - key ฒ alpha - key ฬ alpha - key ฦ alpha - slide special { key ุ key ู } - slide special { key ั key ็ key ์ } - } -} -special { - name "๑!+" - margin 0 0 0 0 - default_size 3 - row { - key ๑ num tele - key ๒ num tele - key ๓ num tele - key " special - key + special - key - special - key = special - key ! special - key & special - key ` alpha dead - key ´ alpha dead - } - row { - key ๔ num tele - key ๕ num tele - key ๖ num tele - key ' special - key : special - key ; special - key ? special - key ( special - key ) special - key / special - key \ special - } - row { - key ๗ num tele - key ๘ num tele - key ๙ num tele - key ๐ num tele - key . special - key , special - key € special - key £ special - key $ special - key ~ special - key @ special - } -} - -special { - name "*§¿" - margin 0 0 0 0 - default_size 3 - row { - key # special tele - key % special - key ¤ special - key < special - key > special - key ^ special - key | special - key [ special - key ] special - key { special - key } special - } - row { - key ¡ special - key ¿ special - key § special - key * special tele - key · special - key • special - key ° special - key ± special - key ½ special - key « special - key » special - } - row { - key ¢ special - key ß alpha - key ç alpha - key ¥ special - key _ special - key “ special - key ” special - key ‘ special - key ’ special - key ™ special - key © special - } -} -} diff --git a/ukeyboard/keyboards/tr-qwerty.def b/ukeyboard/keyboards/tr-qwerty.def deleted file mode 100644 index e479f0d..0000000 --- a/ukeyboard/keyboards/tr-qwerty.def +++ /dev/null @@ -1,342 +0,0 @@ -# title: Turkish QWERTY layout -# author: Burak Ilgicioglu - -header { -name "Türkçe (QWERTY)" -lang "tr_TR" -wc "tr_TR" - -size 0 { width 35 height 35 textpos 26 left 0 top 0 } -size 1 { width 50 height 35 textpos 26 left 0 top 0 } -size 2 { width 55 height 35 textpos 26 left 0 top 0 } -size 3 { width 72 height 55 textpos 41 left 0 top 0 } -size 4 { width 143 height 55 textpos 41 left 0 top 0 } -size 5 { width 24 height 35 textpos 26 left 0 top 0 } -size 6 { width 35 height 35 textpos 26 left 15 top 0 } -} - -kbd_normal { -lowercase { - margin 0 0 0 0 - default_size 0 - row { - key q alpha - key w alpha tele - key e alpha hexa - key r alpha - key t alpha - key y alpha - key u alpha - key ı alpha - key o alpha - key p alpha tele - key ğ alpha - key ü alpha - } - row { - key a alpha hexa size 6 - key s alpha - key d alpha hexa - key f alpha hexa - key g alpha - key h alpha - key j alpha - key k alpha - key l alpha - key ş alpha - key i alpha - key ; special - } - row { - key < special - key z alpha - key x alpha - key c alpha hexa - key v alpha - key b alpha hexa - key n alpha - key m alpha - key ö special - key ç special - key . special tele - } -} -lowercase_num { - margin 0 0 0 9 - default_size 0 - row { - key 1 num hexa tele - key 2 num hexa tele - key 3 num hexa tele - } - row { - key 4 num hexa tele - key 5 num hexa tele - key 6 num hexa tele - } - row { - key 7 num hexa tele - key 8 num hexa tele - key 9 num hexa tele - } - row { - key ? num special tele - key 0 num hexa tele - key * special - } -} -uppercase { - margin 0 0 0 0 - default_size 0 - row { - key Q alpha - key W alpha tele - key E alpha hexa - key R alpha - key T alpha - key Y alpha - key U alpha - key I alpha - key O alpha - key P alpha tele - key Ğ alpha - key Ü alpha - } - row { - key A alpha hexa size 6 - key S alpha - key D alpha hexa - key F alpha hexa - key G alpha - key H alpha - key J alpha - key K alpha - key L alpha - key Ş alpha - key i alpha - key ; alpha - } - row { - key > special - key Z alpha - key X alpha - key C alpha hexa - key V alpha - key B alpha hexa - key N alpha - key M alpha - key Ö alpha - key Ç alpha - key . special - } -} -uppercase_num { - margin 0 0 0 9 - default_size 0 - row { - key ! special - key " special - key # special tele - } - row { - key $ special - key % special - key & special - } - row { - key & special - key / special - key ( special tele - } - row { - key ) special tele - key = special - key ? special - } -} -} - -kbd_thumb { -lowercase { - name "abc" - margin 0 0 0 0 - default_size 3 - row { - key q alpha - key w alpha tele - key e alpha hexa - key r alpha - key t alpha - key y alpha - key u alpha - key ı alpha - key o alpha - key p alpha tele - key ğ alpha - key ü alpha - } - row { - key a alpha hexa - key s alpha - key d alpha hexa - key f alpha hexa - key g alpha - key h alpha - key j alpha - key k alpha - key l alpha - key ş alpha - key i alpha - key ; special - } - row { - white size 4 - key z alpha - key x alpha - key c alpha hexa - key v alpha - key b alpha hexa - key n alpha - key m alpha - key ö alpha - key ç alpha - slide special { key . key , key ? key ! key @ key ( key ) } - slide special { key : key ; key - key _ key / key < key > } - } -} -uppercase { - name "ABC" - margin 0 0 0 0 - default_size 3 - row { - key Q alpha - key W alpha tele - key E alpha hexa - key R alpha - key T alpha - key Y alpha - key U alpha - key I alpha - key O alpha - key P alpha tele - key Ğ alpha - key Ü alpha - } - row { - key A alpha hexa - key S alpha - key D alpha hexa - key F alpha hexa - key G alpha - key H alpha - key J alpha - key K alpha - key L alpha - key Ş alpha - key İ alpha - key ; special - } - row { - white size 4 - key Z alpha - key X alpha - key C alpha hexa - key V alpha - key B alpha hexa - key N alpha - key M alpha - key Ö alpha - key Ç alpha - slide special { key . key , key ? key ! key @ key ( key ) } - slide special { key : key ; key - key _ key / key < key > } - } -} -special { - name "1!+" - margin 0 0 0 0 - default_size 3 - row { - key 1 num hexa tele - key 2 num hexa tele - key 3 num hexa tele - key " special - key + special - key - special - key = special - key _ special - key & special - key @ special - key ~ special - } - row { - key 4 num hexa tele - key 5 num hexa tele - key 6 num hexa tele - key ' special - key : special - key ; special - key ! special - key ( special - key ) special - key / special - key \ special - } - row { - key 7 num hexa tele - key 8 num hexa tele - key 9 num hexa tele - key 0 num hexa tele - key . special - key , special - key ? special - key „ special - key “ special - key < special - key > special - } -} -special { - name "*§¿" - margin 0 0 0 0 - default_size 3 - row { - key # special - key % special - key € special - key £ special - key $ special - key ^ special - key | special - key [ special - key ] special - key { special - key } special - } - row { - key ¡ special - key ¿ special - key § special - key * special - key · special - key • special - key ° special - key ± special - key ½ special - key « special - key » special - } - row { - key ä alpha - key ë alpha - key ö alpha - key ü alpha - key Ä alpha - key Ë alpha - key Ö alpha - key Ü alpha - key ß alpha - key ™ special - key © special - } -} -} diff --git a/ukeyboard/ukbdcreator/Makefile b/ukeyboard/ukbdcreator/Makefile deleted file mode 100644 index 50d463e..0000000 --- a/ukeyboard/ukbdcreator/Makefile +++ /dev/null @@ -1,27 +0,0 @@ -CFLAGS_ADD = -g -W -Wall `pkg-config --cflags gtk+-2.0 hildon-1 hildon-fm-2 libosso gnome-vfs-2.0` -LDFLAGS_ADD = `pkg-config --libs gtk+-2.0 hildon-1 hildon-fm-2 libosso libosso gnome-vfs-2.0` -LD = $(CC) - -all: ukbdcreator - -ukbdcreator.o: ukbdcreator.c version.h ukbdcreator.h - $(CC) $(CFLAGS_ADD) -c -o $@ $< - -compiler.o: compiler.c ukbdcreator.h ../vkb_compiler.h - $(CC) $(CFLAGS_ADD) -c -o $@ $< - -ukbdcreator: ukbdcreator.o compiler.o ../vkb_compiler_lib.o - $(LD) $(LDFLAGS_ADD) -o $@ $+ - -version.h: ../VERSION - echo '#define UKBD_VERSION "'`cat ../VERSION`'"' > version.h - -clean: - rm -f ukbdcreator *.o core version.h - -DESTDIR ?= /usr/local -install: - install -d $(DESTDIR)/bin $(DESTDIR)/share/applications/hildon $(DESTDIR)/share/dbus-1/services - install ukbdcreator $(DESTDIR)/bin - install -m 0644 ukbdcreator.desktop $(DESTDIR)/share/applications/hildon - install -m 0644 cz.upir.ukbdcreator.service $(DESTDIR)/share/dbus-1/services diff --git a/ukeyboard/ukbdcreator/compiler.c b/ukeyboard/ukbdcreator/compiler.c deleted file mode 100644 index de20ad5..0000000 --- a/ukeyboard/ukbdcreator/compiler.c +++ /dev/null @@ -1,221 +0,0 @@ -/* - * Copyright (c) 2008 Jiri Benc - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include "../vkb_compiler.h" -#include "ukbdcreator.h" - -static gchar *saved_layout = NULL; -static gchar *saved_lang = NULL; -static gchar *act_layout = NULL; - -struct priv { - char *buf; - size_t pos; - int fout; - gchar *lang; -}; - -static void error(void *p, int line, char *msg) -{ - (void)p; - disp_compile_error(line, msg); -} - -static int warning(void *p, int line, char *msg) -{ - (void)p; - disp_compile_error(line, msg); - return -1; -} - -static int get_line(void *p, void *buf, size_t size) -{ - struct priv *priv = p; - size_t dpos = 0; - char *dbuf = buf; - - while (priv->buf[priv->pos]) { - if (dpos + 1 < size) - dbuf[dpos++] = priv->buf[priv->pos]; - if (priv->buf[priv->pos++] == '\n') - break; - } - dbuf[dpos] = '\0'; - return (priv->buf[priv->pos] || dpos) ? 0 : -1; -} - -static int write_buf(void *p, void *buf, size_t size) -{ - struct priv *priv = p; - - if (write(priv->fout, buf, size) != (ssize_t)size) { - disp_error("Error writing temporary file"); - return -1; - } - return 0; -} - -static off_t tell_buf(void *p) -{ - struct priv *priv = p; - - return lseek(priv->fout, 0, SEEK_CUR); -} - -static void seek_buf(void *p, off_t pos) -{ - struct priv *priv = p; - - lseek(priv->fout, pos, SEEK_SET); -} - -static void return_lang(void *p, char *lang) -{ - struct priv *priv = p; - - priv->lang = g_strdup(lang); -} - -static struct compiler_ops ops = { - .get_line = get_line, - .write = write_buf, - .tell = tell_buf, - .seek = seek_buf, - .error = error, - .warning = warning, - .return_lang = return_lang, -}; - -gboolean compile_layout(gchar *buf, gchar **fname, gchar **lang) -{ - struct priv priv; - int res; - - priv.buf = buf; - priv.pos = 0; - priv.lang = NULL; - - *fname = g_build_filename(g_get_tmp_dir(), "ukbdXXXXXX", NULL); - priv.fout = g_mkstemp(*fname); - if (priv.fout < 0) { - g_free(*fname); - disp_error("Error creating temporary file"); - return FALSE; - } - res = compile(&ops, &priv); - close(priv.fout); - if (res < 0) { - g_unlink(*fname); - g_free(*fname); - g_free(priv.lang); - return FALSE; - } - *lang = priv.lang; - return TRUE; -} - -static gchar *get_lang(GConfClient *conf) -{ - return gconf_client_get_string(conf, - "/apps/osso/inputmethod/hildon-im-languages/language-0", NULL); -} - -static void set_lang(GConfClient *conf, gchar *val) -{ - gconf_client_set_string(conf, - "/apps/osso/inputmethod/hildon-im-languages/language-0", val, NULL); -} - -void test_layout(GConfClient *conf, gchar *fname, gchar *lang) -{ - gchar *cmd; - int res; - - if (saved_lang) - restore_layout(conf, FALSE); - cmd = g_strdup_printf("sudo /usr/libexec/ukeyboard-set -s %s %s", fname, lang); - res = system(cmd); - g_free(cmd); - if (!WIFEXITED(res)) { - disp_error("Cannot execute helper script"); - return; - } - res = WEXITSTATUS(res); - if (res == 2) { - disp_error("Redefining a system language is not possible"); - return; - } - if (res) { - disp_error("Activating of the layout failed"); - return; - } - saved_lang = g_strdup(lang); - saved_layout = get_lang(conf); - set_lang(conf, "en_GB"); - set_lang(conf, lang); - if (act_layout) { - g_unlink(act_layout); - g_free(act_layout); - } - act_layout = g_strdup(fname); - disp_info("Layout activated"); -} - -void restore_layout(GConfClient *conf, gboolean warn) -{ - gchar *cmd; - int res; - - if (!saved_lang) { - if (warn) - disp_info("No layout to restore"); - return; - } - cmd = g_strdup_printf("sudo /usr/libexec/ukeyboard-set -r %s", saved_lang); - res = system(cmd); - g_free(cmd); - if (!WIFEXITED(res)) { - disp_error("Cannot execute helper script"); - return; - } - res = WEXITSTATUS(res); - if (res) { - disp_error("Restoring of original layout failed"); - return; - } - set_lang(conf, "en_GB"); - set_lang(conf, saved_layout); - g_free(saved_lang); - g_free(saved_layout); - saved_lang = saved_layout = NULL; - if (act_layout) { - g_unlink(act_layout); - g_free(act_layout); - act_layout = NULL; - } - if (warn) - disp_info("Layout restored"); -} - diff --git a/ukeyboard/ukbdcreator/cz.upir.ukbdcreator.service b/ukeyboard/ukbdcreator/cz.upir.ukbdcreator.service deleted file mode 100644 index 3e996ee..0000000 --- a/ukeyboard/ukbdcreator/cz.upir.ukbdcreator.service +++ /dev/null @@ -1,3 +0,0 @@ -[D-BUS Service] -Name=cz.upir.ukbdcreator -Exec=/usr/bin/ukbdcreator diff --git a/ukeyboard/ukbdcreator/ukbdcreator.c b/ukeyboard/ukbdcreator/ukbdcreator.c deleted file mode 100644 index 9f75d51..0000000 --- a/ukeyboard/ukbdcreator/ukbdcreator.c +++ /dev/null @@ -1,472 +0,0 @@ -/* - * Copyright (c) 2008 Jiri Benc - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "version.h" -#include "ukbdcreator.h" - -static HildonWindow *window_main; -static GtkClipboard *clipboard; -static GtkTextView *view; -static GtkTextBuffer *buffer; -static gchar *filename = NULL; -static gboolean is_fullscreen = FALSE; -static gboolean is_modified = FALSE; - -static int last_error_line = 0; -static gchar *last_error_msg = NULL; - -static GConfClient *conf; - - -static void toggle_fullscreen(void) -{ - if (is_fullscreen) - gtk_window_unfullscreen(GTK_WINDOW(window_main)); - else - gtk_window_fullscreen(GTK_WINDOW(window_main)); - is_fullscreen = !is_fullscreen; -} - -static void set_modified(void) -{ - is_modified = TRUE; -} - -static void set_filename(gchar *fname) -{ - if (filename) - g_free(filename); - filename = fname; -} - -void disp_error(gchar *msg) -{ - hildon_banner_show_information(GTK_WIDGET(window_main), GTK_STOCK_DIALOG_ERROR, msg); -} - -void disp_info(gchar *msg) -{ - hildon_banner_show_information(GTK_WIDGET(window_main), GTK_STOCK_DIALOG_INFO, msg); -} - -static void __disp_compile_error(void) -{ - GtkTextIter iter; - - if (!last_error_msg) - return; - if (last_error_line > 0) { - gtk_text_buffer_get_iter_at_line(buffer, &iter, last_error_line - 1); - gtk_text_buffer_place_cursor(buffer, &iter); - gtk_text_view_scroll_mark_onscreen(view, gtk_text_buffer_get_mark(buffer, "insert")); - } - hildon_banner_show_information(GTK_WIDGET(window_main), GTK_STOCK_DIALOG_ERROR, last_error_msg); -} - -void disp_compile_error(int line, gchar *msg) -{ - g_free(last_error_msg); - last_error_msg = g_strdup(msg); - last_error_line = line; - __disp_compile_error(); -} - -static gboolean read_file(gchar *fname) -{ - GnomeVFSFileInfo finfo; - GnomeVFSHandle *handle = NULL; - GnomeVFSFileSize bytes; - gchar *buf; - - if (gnome_vfs_get_file_info(fname, &finfo, GNOME_VFS_FILE_INFO_DEFAULT) != GNOME_VFS_OK || - gnome_vfs_open(&handle, fname, GNOME_VFS_OPEN_READ) != GNOME_VFS_OK) { - disp_error("Error opening file"); - return FALSE; - } - buf = g_malloc0(finfo.size + 1); - if (!buf) { - gnome_vfs_close(handle); - disp_error("Not enough memory"); - return FALSE; - } - if (gnome_vfs_read(handle, buf, finfo.size, &bytes) != GNOME_VFS_OK || bytes != finfo.size) { - gnome_vfs_close(handle); - g_free(buf); - disp_error("Error reading file"); - return FALSE; - } - gnome_vfs_close(handle); - - gtk_text_buffer_set_text(buffer, buf, -1); - g_free(buf); - return TRUE; -} - -static gchar *get_buffer(void) -{ - GtkTextIter start, end; - - gtk_text_buffer_get_bounds(buffer, &start, &end); - return gtk_text_buffer_get_slice(buffer, &start, &end, TRUE); -} - -static gboolean write_file(gchar *fname) -{ - GnomeVFSHandle *handle = NULL; - GnomeVFSFileSize bytes; - gchar *buf; - size_t size; - - if (gnome_vfs_create(&handle, fname, GNOME_VFS_OPEN_WRITE, FALSE, 0644) != GNOME_VFS_OK) { - disp_error("Error creating file"); - return FALSE; - } - buf = get_buffer(); - size = strlen(buf); - if (gnome_vfs_write(handle, buf, size, &bytes) != GNOME_VFS_OK || bytes != size) { - gnome_vfs_close(handle); - g_free(buf); - disp_error("Error writing file"); - return FALSE; - } - gnome_vfs_close(handle); - g_free(buf); - disp_info("Saved"); - return TRUE; -} - -static gchar *file_chooser(gboolean open) -{ - GtkWidget *chooser; - GtkFileFilter *filter; - gchar *result = NULL; - - chooser = hildon_file_chooser_dialog_new(GTK_WINDOW(window_main), - open ? GTK_FILE_CHOOSER_ACTION_OPEN : GTK_FILE_CHOOSER_ACTION_SAVE); - filter = gtk_file_filter_new(); - gtk_file_filter_add_pattern(filter, "*.def"); - gtk_file_chooser_set_filter(GTK_FILE_CHOOSER(chooser), filter); - gtk_widget_show_all(chooser); - if (gtk_dialog_run(GTK_DIALOG(chooser)) == GTK_RESPONSE_OK) - result = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(chooser)); - gtk_widget_destroy(chooser); - if (!open && result && !g_str_has_suffix(result, ".def")) { - gchar *tmp = result; - - result = g_strconcat(result, ".def", NULL); - g_free(tmp); - } - return result; -} - -static void file_save_as(void) -{ - gchar *fname; - - fname = file_chooser(FALSE); - if (fname) { - if (write_file(fname)) { - set_filename(fname); - is_modified = FALSE; - } else - g_free(fname); - } -} - -static void file_save(void) -{ - if (!filename) { - file_save_as(); - return; - } - if (write_file(filename)) - is_modified = FALSE; -} - -static gboolean file_ask_save(void) -{ - GtkWidget *note; - gint res; - - if (!is_modified) - return TRUE; - note = hildon_note_new_confirmation_add_buttons(GTK_WINDOW(window_main), - "Save the file before closing?", "Yes", 1, "No", 2, "Cancel", 0, NULL); - res = gtk_dialog_run(GTK_DIALOG(note)); - gtk_widget_destroy(note); - if (res == 1) { - file_save_as(); - return !is_modified; - } - if (res == 2) - return TRUE; - return FALSE; -} - -static void file_open(void) -{ - gchar *fname; - - if (!file_ask_save()) - return; - fname = file_chooser(TRUE); - if (fname) { - if (read_file(fname)) { - set_filename(fname); - is_modified = FALSE; - g_free(last_error_msg); - last_error_msg = NULL; - } else - g_free(fname); - } -} - -static void file_new(void) -{ - if (!file_ask_save()) - return; - gtk_text_buffer_set_text(buffer, "", -1); - set_filename(NULL); - is_modified = FALSE; - g_free(last_error_msg); - last_error_msg = NULL; -} - -static gboolean file_quit(void) -{ - if (!file_ask_save()) - return TRUE; - restore_layout(conf, FALSE); - gtk_main_quit(); - return FALSE; -} - -static void edit_cut(void) -{ - gtk_text_buffer_cut_clipboard(buffer, clipboard, TRUE); -} - -static void edit_copy(void) -{ - gtk_text_buffer_copy_clipboard(buffer, clipboard); -} - -static void edit_paste(void) -{ - gtk_text_buffer_paste_clipboard(buffer, clipboard, NULL, TRUE); -} - -static void run_about(void) -{ - gtk_show_about_dialog(GTK_WINDOW(window_main), - "version", UKBD_VERSION, - "comments", "Licensed under GPLv2. Please send bug reports and feature requests to jbenc@upir.cz.", - "copyright", "(c) 2008 Jiri Benc", - "website", "http://upir.cz/maemo/keyboards/"); -} - -static void compile_and_test(void) -{ - gchar *buf, *fname, *lang; - gboolean res; - - buf = get_buffer(); - res = compile_layout(buf, &fname, &lang); - g_free(buf); - if (res) { - test_layout(conf, fname, lang); - g_free(fname); - g_free(lang); - } -} - -static void untest(void) -{ - restore_layout(conf, TRUE); -} - -static gboolean key_pressed(GtkWidget *widget, GdkEventKey *event) -{ - (void)widget; - switch (event->keyval) { - case GDK_F6: - toggle_fullscreen(); - return TRUE; - } - return FALSE; -} - -static GtkWidget *main_layout(void) -{ - GtkWidget *scroll; - - view = GTK_TEXT_VIEW(gtk_text_view_new()); - gtk_text_view_set_editable(view, TRUE); - gtk_text_view_set_left_margin(view, 10); - gtk_text_view_set_right_margin(view, 10); - - scroll = gtk_scrolled_window_new(NULL, NULL); - gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scroll), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); - gtk_container_add(GTK_CONTAINER(scroll), GTK_WIDGET(view)); - - buffer = gtk_text_view_get_buffer(view); - g_signal_connect(G_OBJECT(buffer), "changed", G_CALLBACK(set_modified), NULL); - g_signal_connect(G_OBJECT(buffer), "modified-changed", G_CALLBACK(set_modified), NULL); - - return scroll; -} - -static GtkMenu *main_menu(void) -{ - GtkMenuShell *menu, *submenu; - GtkWidget *item; - - menu = GTK_MENU_SHELL(gtk_menu_new()); - - submenu = GTK_MENU_SHELL(gtk_menu_new()); - item = gtk_menu_item_new_with_label("File"); - gtk_menu_item_set_submenu(GTK_MENU_ITEM(item), GTK_WIDGET(submenu)); - gtk_menu_shell_append(menu, item); - - item = gtk_menu_item_new_with_label("New"); - g_signal_connect(G_OBJECT(item), "activate", G_CALLBACK(file_new), NULL); - gtk_menu_shell_append(submenu, item); - item = gtk_menu_item_new_with_label("Open..."); - g_signal_connect(G_OBJECT(item), "activate", G_CALLBACK(file_open), NULL); - gtk_menu_shell_append(submenu, item); - item = gtk_menu_item_new_with_label("Save"); - g_signal_connect(G_OBJECT(item), "activate", G_CALLBACK(file_save), NULL); - gtk_menu_shell_append(submenu, item); - item = gtk_menu_item_new_with_label("Save as..."); - g_signal_connect(G_OBJECT(item), "activate", G_CALLBACK(file_save_as), NULL); - gtk_menu_shell_append(submenu, item); - - submenu = GTK_MENU_SHELL(gtk_menu_new()); - item = gtk_menu_item_new_with_label("Edit"); - gtk_menu_item_set_submenu(GTK_MENU_ITEM(item), GTK_WIDGET(submenu)); - gtk_menu_shell_append(menu, item); - - item = gtk_menu_item_new_with_label("Cut"); - g_signal_connect(G_OBJECT(item), "activate", G_CALLBACK(edit_cut), NULL); - gtk_menu_shell_append(submenu, item); - item = gtk_menu_item_new_with_label("Copy"); - g_signal_connect(G_OBJECT(item), "activate", G_CALLBACK(edit_copy), NULL); - gtk_menu_shell_append(submenu, item); - item = gtk_menu_item_new_with_label("Paste"); - g_signal_connect(G_OBJECT(item), "activate", G_CALLBACK(edit_paste), NULL); - gtk_menu_shell_append(submenu, item); - - gtk_menu_shell_append(menu, gtk_separator_menu_item_new()); - item = gtk_menu_item_new_with_label("Test layout"); - g_signal_connect(G_OBJECT(item), "activate", G_CALLBACK(compile_and_test), NULL); - gtk_menu_shell_append(menu, item); - item = gtk_menu_item_new_with_label("Restore original layout"); - g_signal_connect(G_OBJECT(item), "activate", G_CALLBACK(untest), NULL); - gtk_menu_shell_append(menu, item); - item = gtk_menu_item_new_with_label("Show last error"); - g_signal_connect(G_OBJECT(item), "activate", G_CALLBACK(__disp_compile_error), NULL); - gtk_menu_shell_append(menu, item); - - gtk_menu_shell_append(menu, gtk_separator_menu_item_new()); - item = gtk_menu_item_new_with_label("Fullscreen"); - g_signal_connect(G_OBJECT(item), "activate", G_CALLBACK(toggle_fullscreen), NULL); - gtk_menu_shell_append(menu, item); - item = gtk_menu_item_new_with_label("About"); - g_signal_connect(G_OBJECT(item), "activate", G_CALLBACK(run_about), NULL); - gtk_menu_shell_append(menu, item); - item = gtk_menu_item_new_with_label("Exit"); - g_signal_connect(G_OBJECT(item), "activate", G_CALLBACK(file_quit), NULL); - gtk_menu_shell_append(menu, item); - - return GTK_MENU(menu); -} - -static GtkToolbar *main_toolbar(void) -{ - GtkToolbar *bar; - GtkToolItem *item; - - bar = GTK_TOOLBAR(gtk_toolbar_new()); - gtk_toolbar_set_orientation(bar, GTK_ORIENTATION_HORIZONTAL); - gtk_toolbar_set_style(bar, GTK_TOOLBAR_BOTH_HORIZ); - - item = gtk_tool_button_new_from_stock(GTK_STOCK_OPEN); - g_signal_connect(G_OBJECT(item), "clicked", G_CALLBACK(file_open), NULL); - gtk_toolbar_insert(bar, item, -1); - item = gtk_tool_button_new_from_stock(GTK_STOCK_SAVE); - g_signal_connect(G_OBJECT(item), "clicked", G_CALLBACK(file_save), NULL); - gtk_toolbar_insert(bar, item, -1); - gtk_toolbar_insert(bar, gtk_separator_tool_item_new(), -1); - item = gtk_tool_button_new_from_stock(GTK_STOCK_CUT); - g_signal_connect(G_OBJECT(item), "clicked", G_CALLBACK(edit_cut), NULL); - gtk_toolbar_insert(bar, item, -1); - item = gtk_tool_button_new_from_stock(GTK_STOCK_COPY); - g_signal_connect(G_OBJECT(item), "clicked", G_CALLBACK(edit_copy), NULL); - gtk_toolbar_insert(bar, item, -1); - item = gtk_tool_button_new_from_stock(GTK_STOCK_PASTE); - g_signal_connect(G_OBJECT(item), "clicked", G_CALLBACK(edit_paste), NULL); - gtk_toolbar_insert(bar, item, -1); - gtk_toolbar_insert(bar, gtk_separator_tool_item_new(), -1); - item = gtk_tool_button_new_from_stock(GTK_STOCK_MEDIA_PLAY); - g_signal_connect(G_OBJECT(item), "clicked", G_CALLBACK(compile_and_test), NULL); - gtk_toolbar_insert(bar, item, -1); - item = gtk_tool_button_new_from_stock(GTK_STOCK_MEDIA_STOP); - g_signal_connect(G_OBJECT(item), "clicked", G_CALLBACK(untest), NULL); - gtk_toolbar_insert(bar, item, -1); - - return bar; -} - -int main(int argc, char **argv) -{ - HildonProgram *program; - - gtk_init(&argc, &argv); - program = hildon_program_get_instance(); - g_set_prgname("ukbdcreator"); - g_set_application_name("Ukeyboard Creator"); - osso_initialize("cz.upir.ukbdcreator", UKBD_VERSION, TRUE, NULL); - gnome_vfs_init(); - conf = gconf_client_get_default(); - gconf_client_add_dir(conf, "/apps/osso/inputmethod/hildon-im-languages", - GCONF_CLIENT_PRELOAD_NONE, NULL); - - window_main = HILDON_WINDOW(hildon_window_new()); - hildon_program_add_window(program, window_main); - clipboard = gtk_clipboard_get(GDK_SELECTION_CLIPBOARD); - gtk_clipboard_set_can_store(clipboard, NULL, 0); - - gtk_container_add(GTK_CONTAINER(window_main), main_layout()); - hildon_window_set_menu(window_main, main_menu()); - hildon_window_add_toolbar(window_main, main_toolbar()); - - g_signal_connect(G_OBJECT(window_main), "key_press_event", G_CALLBACK(key_pressed), NULL); - g_signal_connect(G_OBJECT(window_main), "delete_event", G_CALLBACK(file_quit), NULL); - - gtk_widget_show_all(GTK_WIDGET(window_main)); - gtk_main(); - return 0; -} diff --git a/ukeyboard/ukbdcreator/ukbdcreator.desktop b/ukeyboard/ukbdcreator/ukbdcreator.desktop deleted file mode 100644 index 8d6e433..0000000 --- a/ukeyboard/ukbdcreator/ukbdcreator.desktop +++ /dev/null @@ -1,8 +0,0 @@ -[Desktop Entry] -Encoding=UTF-8 -Type=Application -Name=Ukeyboard Creator -Exec=/usr/bin/ukbdcreator -X-Osso-Service=cz.upir.ukbdcreator -Icon=ukeyboard -StartupWMClass=ukbdcreator diff --git a/ukeyboard/ukbdcreator/ukbdcreator.h b/ukeyboard/ukbdcreator/ukbdcreator.h deleted file mode 100644 index 44eaa43..0000000 --- a/ukeyboard/ukbdcreator/ukbdcreator.h +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Copyright (c) 2008 Jiri Benc - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#ifndef _UKBDCREATOR_H -#define _UKBDCREATOR_H - -void disp_error(gchar *msg); -void disp_info(gchar *msg); -void disp_compile_error(int line, gchar *msg); - -gboolean compile_layout(gchar *buf, gchar **fname, gchar **lang); -void test_layout(GConfClient *conf, gchar *fname, gchar *lang); -void restore_layout(GConfClient *conf, gboolean warn); - -#endif diff --git a/ukeyboard/ukeyboard.png b/ukeyboard/ukeyboard.png deleted file mode 100644 index d956d34..0000000 Binary files a/ukeyboard/ukeyboard.png and /dev/null differ diff --git a/ukeyboard/vkb_compiler.c b/ukeyboard/vkb_compiler.c deleted file mode 100644 index 1d4b367..0000000 --- a/ukeyboard/vkb_compiler.c +++ /dev/null @@ -1,133 +0,0 @@ -/* - * Copyright (c) 2007-2008 Jiri Benc - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#include -#include -#include "vkb_compiler.h" - -struct priv { - FILE *fin; - FILE *fout; - char *fin_name; - char *fout_name; -}; - -static void error(void *p, int line, char *msg) -{ - struct priv *priv = p; - - if (line < 0) - fprintf(stderr, "%s: Error: %s.\n", priv->fin_name, msg); - else - fprintf(stderr, "%s:%d: Error: %s.\n", priv->fin_name, line, msg); -} - -static int warning(void *p, int line, char *msg) -{ - struct priv *priv = p; - - fprintf(stderr, "%s:%d: Warning: %s.\n", priv->fin_name, line, msg); - return 0; -} - -static int get_line(void *p, void *buf, size_t size) -{ - struct priv *priv = p; - - return fgets(buf, size, priv->fin) ? 0 : -1; -} - -static int write_buf(void *p, void *buf, size_t size) -{ - struct priv *priv = p; - - if (fwrite(buf, 1, size, priv->fout) != size) { - fprintf(stderr, "Error writing %s.\n", priv->fout_name); - return -1; - } - return 0; -} - -static off_t tell_buf(void *p) -{ - struct priv *priv = p; - - return ftell(priv->fout); -} - -static void seek_buf(void *p, off_t pos) -{ - struct priv *priv = p; - - fseek(priv->fout, pos, SEEK_SET); -} - -static void init_input(struct priv *priv, char *fname) -{ - priv->fin_name = fname; - priv->fin = fopen(fname, "r"); - if (!priv->fin) { - error(priv, -1, "Cannot open input file"); - exit(1); - } -} - -static void init_output(struct priv *priv, char *fname) -{ - priv->fout_name = fname; - priv->fout = fopen(fname, "w"); - if (!priv->fout) { - fprintf(stderr, "Error creating %s.\n", fname); - exit(1); - } -} - -static void close_input(struct priv *priv) -{ - fclose(priv->fin); -} - -static void close_output(struct priv *priv) -{ - fclose(priv->fout); -} - -static struct compiler_ops ops = { - .get_line = get_line, - .write = write_buf, - .tell = tell_buf, - .seek = seek_buf, - .error = error, - .warning = warning, -}; - -int main(int argc, char **argv) -{ - struct priv priv; - int res; - - if (argc < 3) { - fprintf(stderr, "Missing parameters (source and destination filename).\n"); - exit(1); - } - init_input(&priv, argv[1]); - init_output(&priv, argv[2]); - res = compile(&ops, &priv); - close_output(&priv); - close_input(&priv); - return res ? 1 : 0; -} diff --git a/ukeyboard/vkb_compiler.h b/ukeyboard/vkb_compiler.h deleted file mode 100644 index c2b59ea..0000000 --- a/ukeyboard/vkb_compiler.h +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright (c) 2007-2008 Jiri Benc - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#ifndef _VKB_COMPILER_H -#define _VKB_COMPILER_H - -struct compiler_ops { - /* return -1 on eof or if error occurred */ - int (*get_line)(void *priv, void *buf, size_t size); - /* return -1 if error occurred; error callback is not called for - * write errors */ - int (*write)(void *priv, void *buf, size_t size); - off_t (*tell)(void *priv); - void (*seek)(void *priv, off_t pos); - /* line is -1 if general error */ - void (*error)(void *priv, int line, char *msg); - /* return -1 if the warning should be fatal */ - int (*warning)(void *priv, int line, char *msg); - /* can be NULL; copy the string if you need it later */ - void (*return_lang)(void *priv, char *lang); -}; - -int compile(struct compiler_ops *ops, void *priv); - -#endif diff --git a/ukeyboard/vkb_compiler_lib.c b/ukeyboard/vkb_compiler_lib.c deleted file mode 100644 index c072e50..0000000 --- a/ukeyboard/vkb_compiler_lib.c +++ /dev/null @@ -1,1026 +0,0 @@ -/* - * Copyright (c) 2007-2008 Jiri Benc - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#include -#include -#include -#include "vkb_compiler.h" - -static struct compiler_ops *cops; -static void *cpriv; -static jmp_buf cjmp; - -#define BUF_SIZE 8192 - -/*** tokenizer ***/ - -struct tokenizer { - int line; - char *buf, *pos; - char *pushed; -}; - -static char keywords[][32] = { - "header", "name", "lang", "wc", "size", "width", "height", - "textpos", "left", "top", "kbd_normal", "kbd_thumb", "kbd_special", - "lowercase", "lowercase_num", "uppercase", "uppercase_num", - "special_lowercase", "special_uppercase", - "special", "margin", "default_size", "row", "key", "slide", - "white", "tab", "alpha", "num", "hexa", "tele", "dead" -}; -enum keywords_const { - TOK_HEADER, TOK_NAME, TOK_LANG, TOK_WC, TOK_SIZE, TOK_WIDTH, TOK_HEIGHT, - TOK_TEXTPOS, TOK_LEFT, TOK_TOP, TOK_KBD_NORMAL, TOK_KBD_THUMB, TOK_KBD_SPECIAL, - TOK_LOWERCASE, TOK_LOWERCASE_NUM, TOK_UPPERCASE, TOK_UPPERCASE_NUM, - TOK_SPEC_LOWERCASE, TOK_SPEC_UPPERCASE, - TOK_SPECIAL, TOK_MARGIN, TOK_DEFAULT_SIZE, TOK_ROW, TOK_KEY, TOK_SLIDE, - TOK_WHITE, TOK_TAB, TOK_ALPHA, TOK_NUM, TOK_HEXA, TOK_TELE, TOK_DEAD -}; - -enum tok_type { - TT_KEYWORD, TT_NUM, TT_STRING, TT_BEGIN, TT_END, TT_EOF -}; - -static void tok_error(struct tokenizer *tokenizer, char *msg) -{ - cops->error(cpriv, tokenizer->line, msg); - longjmp(cjmp, 1); -} - -static void tok_warning(struct tokenizer *tokenizer, char *msg) -{ - if (cops->warning(cpriv, tokenizer->line, msg)) - longjmp(cjmp, 1); -} - -static void *e_malloc(size_t size) -{ - void *p = calloc(1, size); - if (!p) { - cops->error(cpriv, -1, "Out of memory"); - longjmp(cjmp, 1); - } - return p; -} - -static void set_str(char **str, char *val) -{ - if (*str) - free(*str); - if (!val) { - *str = NULL; - return; - } - *str = e_malloc(strlen(val) + 1); - strcpy(*str, val); -} - -static char *ltrim(char *buf) -{ - while (buf && (*buf == ' ' || *buf == '\t' || *buf == '\n' || *buf == '\r')) - buf++; - return buf; -} - -static char *find_white(char *buf) -{ - while (buf && *buf && *buf != ' ' && *buf != '\t' && *buf != '\n' && *buf != '\r') - buf++; - return buf; -} - -static int read_raw(struct tokenizer *tokenizer, char *dest, size_t size, int no_ltrim) -{ - char *s; - char tmp; - - while (1) { - if (!no_ltrim) - tokenizer->pos = ltrim(tokenizer->pos); - if (!*tokenizer->pos) { - tokenizer->line++; - tokenizer->pos = tokenizer->buf; - if (cops->get_line(cpriv, tokenizer->buf, BUF_SIZE)) - return -1; - } else - break; - } - s = find_white(tokenizer->pos + 1); - tmp = *s; - *s = '\0'; - if (size) { - strncpy(dest, tokenizer->pos, size - 1); - dest[size - 1] = '\0'; - } - *s = tmp; - tokenizer->pos = s; - return 0; -} - -static void finish_read_string(struct tokenizer *tokenizer, char *dest, size_t size) -{ - char *s = dest + 1; - char *new = dest; - int special = 0; - - while (1) { - while (*s) { - if (special) { - *new++ = *s++; - special = 0; - continue; - } - if (*s == '\\') { - special = 1; - s++; - continue; - } - if (*s == '"') { - *new = '\0'; - if (s[1] != '\0') - tok_warning(tokenizer, "Ignored extra characters after the string"); - return; - } - *new++ = *s++; - } - if (read_raw(tokenizer, s, size - (s - dest), 1) < 0) - tok_error(tokenizer, "Unterminated (or too long) string"); - } -} - -static void skip_comment(struct tokenizer *tokenizer) -{ - while (*tokenizer->pos) - tokenizer->pos++; -} - -static int find_keyword(char *s) -{ - int i; - int max = (sizeof(keywords) / sizeof(*keywords)); - - for (i = 0; i < max; i++) { - if (!strcmp(s, keywords[i])) - return i; - } - return -1; -} - -static void unread_tok(struct tokenizer *tokenizer, char *tok) -{ - strncpy(tokenizer->pushed, tok, BUF_SIZE - 1); - tokenizer->pushed[BUF_SIZE - 1] = '\0'; -} - -static enum tok_type read_tok(struct tokenizer *tokenizer, char *dest, size_t size, int *parsed_int) -{ - int res; - - while (1) { - if (*tokenizer->pushed) { - strncpy(dest, tokenizer->pushed, size - 1); - dest[size - 1] = '\0'; - *tokenizer->pushed = '\0'; - } else { - res = read_raw(tokenizer, dest, size, 0); - if (res < 0) - return TT_EOF; - } - if (dest[0] == '#') - skip_comment(tokenizer); - else - break; - } - if ((dest[0] >= '0' && dest[0] <= '9') || dest[0] == '-') { - *parsed_int = atoi(dest); - return TT_NUM; - } - if (dest[0] == '"') { - finish_read_string(tokenizer, dest, size); - return TT_STRING; - } - if (dest[0] == '{') { - if (dest[1] != '\0') - tok_error(tokenizer, "Whitespace required after {"); - return TT_BEGIN; - } - if (dest[0] == '}') { - if (dest[1] != '\0') - tok_error(tokenizer, "Whitespace required after }"); - return TT_END; - } - res = find_keyword(dest); - if (res < 0) - tok_error(tokenizer, "Uknown keyword"); - *parsed_int = res; - return TT_KEYWORD; -} - -static void init_tokenizer(struct tokenizer *tokenizer) -{ - tokenizer->pos = tokenizer->buf = e_malloc(BUF_SIZE); - tokenizer->pushed = e_malloc(BUF_SIZE); -} - -static void close_tokenizer(struct tokenizer *tokenizer) -{ - if (!tokenizer) - return; - free(tokenizer->buf); - free(tokenizer->pushed); -} - -/*** parser structures ***/ - -struct slide_key { - char *name; - struct slide_key *next; -}; - -struct key { - int slides_cnt; - union { - char *name; - struct slide_key *slides; - } u; - int size; - int flags; - struct key *next; -}; - -#define KEY_ALPHA 0x01 -#define KEY_NUM 0x02 -#define KEY_HEXA 0x04 -#define KEY_TELE 0x08 -#define KEY_SPECIAL 0x10 -#define KEY_DEAD 0x20 -#define KEY_WHITE 0x40 -#define KEY_EXTEND 0x80 - -#define KEY_TAB (0x0400 | KEY_EXTEND) - -struct row { - int keys_cnt; - struct key *keys; - struct row *next; -}; - -struct layout { - int type; - char *name; - int margins[4]; - int default_size; - int rows_cnt; - struct row *rows; - struct layout *sublayout; - struct layout *next; -}; - -#define LAY_LOWERCASE 0 -#define LAY_UPPERCASE 1 -#define LAY_LOWERCASE_NUM 2 -#define LAY_UPPERCASE_NUM 3 -#define LAY_SPECIAL 4 -#define LAY_SPECIAL_LOWER 5 -#define LAY_SPECIAL_UPPER 6 - -struct kbd { - int type; - int layouts_cnt; - struct layout *layouts; - struct kbd *next; -}; - -struct size { - int dim[5]; - struct size *next; -}; - -#define KBD_NORMAL 0 -#define KBD_THUMB 4 -#define KBD_SPECIAL 1 - -struct global { - char *name; - char *lang; - char *wc; - int sizes_cnt; - struct size *sizes; - int kbds_cnt; - struct kbd *kbds; -}; - -static struct global *new_global(void) -{ - return e_malloc(sizeof(struct global)); -} - -static void free_sizes(struct size *size) -{ - struct size *next; - - while (size) { - next = size->next; - free(size); - size = next; - } -} - -static void free_slides(struct slide_key *sl) -{ - struct slide_key *next; - - while (sl) { - next = sl->next; - free(sl->name); - free(sl); - sl = next; - } -} - -static void free_keys(struct key *key) -{ - struct key *next; - - while (key) { - next = key->next; - if (key->slides_cnt) - free_slides(key->u.slides); - else - free(key->u.name); - free(key); - key = next; - } -} - -static void free_rows(struct row *row) -{ - struct row *next; - - while (row) { - next = row->next; - free_keys(row->keys); - free(row); - row = next; - } -} - -static void free_layouts(struct layout *lay) -{ - struct layout *next; - - while (lay) { - next = lay->next; - free_rows(lay->rows); - free_layouts(lay->sublayout); - free(lay->name); - free(lay); - lay = next; - } -} - -static void free_kbds(struct kbd *kbd) -{ - struct kbd *next; - - while (kbd) { - next = kbd->next; - free_layouts(kbd->layouts); - free(kbd); - kbd = next; - } -} - -static void free_global(struct global *glob) -{ - if (!glob) - return; - free_sizes(glob->sizes); - free_kbds(glob->kbds); - free(glob->name); - free(glob->lang); - free(glob->wc); - free(glob); -} - -/*** parser ***/ - -struct parser { - struct tokenizer *tokenizer; - struct global *global; - int ttype; - char *tstr; - int tint; -}; - -static void init_parser(struct parser *parser) -{ - parser->tokenizer = e_malloc(sizeof(struct tokenizer)); - init_tokenizer(parser->tokenizer); - parser->tstr = e_malloc(BUF_SIZE); - parser->global = new_global(); -} - -static void close_parser(struct parser *parser) -{ - if (!parser) - return; - free_global(parser->global); - free(parser->tstr); - close_tokenizer(parser->tokenizer); - free(parser->tokenizer); -} - -#define error(parser, msg) tok_error((parser)->tokenizer, msg) -#define warning(parser, msg) tok_warning((parser)->tokenizer, msg) -#define error_end(parser) error(parser, "} expected") - -static void get_tok(struct parser *parser) -{ - parser->ttype = read_tok(parser->tokenizer, parser->tstr, BUF_SIZE, &parser->tint); -} - -static void __get_raw(struct parser *parser) -{ - if (read_raw(parser->tokenizer, parser->tstr, BUF_SIZE, 0) < 0) - error(parser, "Unexpected end of file"); -} - -static void push_tok(struct parser *parser) -{ - unread_tok(parser->tokenizer, parser->tstr); -} - -#define is_type(parser, t) ((parser)->ttype == (t)) -#define is_keyword(parser, w) ((parser)->ttype == TT_KEYWORD && (parser)->tint == (w)) -#define is_begin(parser) ((parser)->ttype == TT_BEGIN) -#define is_end(parser) ((parser)->ttype == TT_END) -#define is_eof(parser) ((parser)->ttype == TT_EOF) - -static void get_tok_type(struct parser *parser, int tt) -{ - get_tok(parser); - if (!is_type(parser, tt)) { - switch (tt) { - case TT_NUM: error(parser, "Number expected"); - case TT_STRING: error(parser, "String expected"); - case TT_BEGIN: error(parser, "{ expected"); - case TT_END: error(parser, "} expected"); - default: error(parser, "Syntax error"); - } - } -} - -#define get_tok_num(parser) get_tok_type(parser, TT_NUM) -#define get_tok_string(parser) get_tok_type(parser, TT_STRING) -#define get_tok_begin(parser) get_tok_type(parser, TT_BEGIN) -#define get_tok_end(parser) get_tok_type(parser, TT_END) - -static void parse_sizes(struct parser *parser, struct global *glob) -{ - struct size *size; - - get_tok_num(parser); - if (parser->tint != glob->sizes_cnt) - error(parser, "size number out of order"); - size = e_malloc(sizeof(struct size)); - glob->sizes_cnt++; - if (!glob->sizes) - glob->sizes = size; - else { - struct size *last = glob->sizes; - while (last->next) - last = last->next; - last->next = size; - } - get_tok_begin(parser); - while (1) { - get_tok(parser); - if (is_keyword(parser, TOK_WIDTH)) { - get_tok_num(parser); - size->dim[0] = parser->tint; - } else if (is_keyword(parser, TOK_HEIGHT)) { - get_tok_num(parser); - size->dim[1] = parser->tint; - } else if (is_keyword(parser, TOK_TEXTPOS)) { - get_tok_num(parser); - size->dim[2] = parser->tint; - } else if (is_keyword(parser, TOK_LEFT)) { - get_tok_num(parser); - size->dim[3] = parser->tint; - } else if (is_keyword(parser, TOK_TOP)) { - get_tok_num(parser); - size->dim[4] = parser->tint; - } else if (is_end(parser)) { - return; - } else - error_end(parser); - } -} - -static void parse_header(struct parser *parser, struct global *glob) -{ - get_tok_begin(parser); - while (1) { - get_tok(parser); - if (is_keyword(parser, TOK_NAME)) { - get_tok_string(parser); - set_str(&glob->name, parser->tstr); - } else if (is_keyword(parser, TOK_LANG)) { - get_tok_string(parser); - set_str(&glob->lang, parser->tstr); - } else if (is_keyword(parser, TOK_WC)) { - get_tok_string(parser); - set_str(&glob->wc, parser->tstr); - } else if (is_keyword(parser, TOK_SIZE)) { - parse_sizes(parser, glob); - } else if (is_end(parser)) { - return; - } else - error_end(parser); - } -} - -static void parse_slide(struct parser *parser, struct key *key) -{ - while (1) { - get_tok(parser); - if (is_keyword(parser, TOK_KEY)) { - struct slide_key *skey = e_malloc(sizeof(struct slide_key)); - - key->slides_cnt++; - if (!key->u.slides) - key->u.slides = skey; - else { - struct slide_key *last = key->u.slides; - while (last->next) - last = last->next; - last->next = skey; - } - __get_raw(parser); - set_str(&skey->name, parser->tstr); - } else if (is_end(parser)) - return; - else - error_end(parser); - } -} - -static void parse_key(struct parser *parser, struct row *row, int type) -{ - struct key *key = e_malloc(sizeof(struct key)); - - key->size = -1; - row->keys_cnt++; - if (!row->keys) - row->keys = key; - else { - struct key *last = row->keys; - while (last->next) - last = last->next; - last->next = key; - } - if (type == TOK_KEY) { - __get_raw(parser); - set_str(&key->u.name, parser->tstr); - } else if (type == TOK_WHITE) { - set_str(&key->u.name, ""); - key->flags |= KEY_WHITE; - } else if (type == TOK_TAB) { - set_str(&key->u.name, ""); - key->flags |= KEY_TAB; - } - while (1) { - get_tok(parser); - if (is_keyword(parser, TOK_ALPHA)) - key->flags |= KEY_ALPHA; - else if (is_keyword(parser, TOK_NUM)) - key->flags |= KEY_NUM; - else if (is_keyword(parser, TOK_HEXA)) - key->flags |= KEY_HEXA; - else if (is_keyword(parser, TOK_TELE)) - key->flags |= KEY_TELE; - else if (is_keyword(parser, TOK_SPECIAL)) - key->flags |= KEY_SPECIAL; - else if (is_keyword(parser, TOK_DEAD)) - key->flags |= KEY_DEAD; - else if (is_keyword(parser, TOK_SIZE)) { - get_tok_num(parser); - key->size = parser->tint; - } else if (is_begin(parser) && type == TOK_SLIDE) - parse_slide(parser, key); - else if (is_keyword(parser, TOK_KEY) || - is_keyword(parser, TOK_WHITE) || - is_keyword(parser, TOK_TAB) || - is_keyword(parser, TOK_SLIDE) || - is_end(parser)) { - push_tok(parser); - if (type == TOK_SLIDE && !key->slides_cnt) - error(parser, "{ expected"); - return; - } else - error_end(parser); - } -} - -static void parse_row(struct parser *parser, struct layout *lay) -{ - struct row *row = e_malloc(sizeof(struct row)); - - lay->rows_cnt++; - if (!lay->rows) - lay->rows = row; - else { - struct row *last = lay->rows; - while (last->next) - last = last->next; - last->next = row; - } - get_tok_begin(parser); - while (1) { - get_tok(parser); - if (is_keyword(parser, TOK_KEY)) - parse_key(parser, row, TOK_KEY); - else if (is_keyword(parser, TOK_WHITE)) - parse_key(parser, row, TOK_WHITE); - else if (is_keyword(parser, TOK_TAB)) - parse_key(parser, row, TOK_TAB); - else if (is_keyword(parser, TOK_SLIDE)) - parse_key(parser, row, TOK_SLIDE); - else if (is_end(parser)) - return; - else - error_end(parser); - } -} - -static void parse_layout(struct parser *parser, struct kbd *kbd, int type) -{ - struct layout *lay = e_malloc(sizeof(struct layout)); - - if (type == LAY_LOWERCASE_NUM || type == LAY_UPPERCASE_NUM) { - /* numeric layout is a sublayout of a normal layout */ - struct layout *find = kbd->layouts; - while (find) { - if (find->type == type - 2) { - find->sublayout = lay; - break; - } - find = find->next; - } - if (!find) { - free(lay); - error(parser, "lowercase_num/uppercase_num has to follow lowercase/uppercase definition"); - } - } else { - struct layout *last = kbd->layouts; - - if (!last) - kbd->layouts = lay; - else { - while (last->next) - last = last->next; - last->next = lay; - } - kbd->layouts_cnt++; - if ((type == LAY_UPPERCASE && (!last || last->type != LAY_LOWERCASE)) || - (type == LAY_SPECIAL_UPPER && (!last || last->type != LAY_SPECIAL_LOWER))) - error(parser, "uppercase has to follow lowercase definition"); - if (type == LAY_SPECIAL_UPPER && last->name) - set_str(&lay->name, last->name); - } - lay->type = type; - get_tok_begin(parser); - while (1) { - get_tok(parser); - if (is_keyword(parser, TOK_NAME)) { - get_tok_string(parser); - if (lay->name) - error(parser, "name must not be specified for uppercase layout in kbd_special section"); - set_str(&lay->name, parser->tstr); - } else if (is_keyword(parser, TOK_MARGIN)) { - int i; - for (i = 0; i < 4; i++) { - get_tok_num(parser); - lay->margins[i] = parser->tint; - } - } else if (is_keyword(parser, TOK_DEFAULT_SIZE)) { - get_tok_num(parser); - lay->default_size = parser->tint; - } else if (is_keyword(parser, TOK_ROW)) - parse_row(parser, lay); - else if (is_end(parser)) - return; - else - error_end(parser); - } -} - -static void parse_kbd(struct parser *parser, struct global *glob, int type) -{ - struct kbd *kbd = e_malloc(sizeof(struct kbd)); - - if (!glob->kbds) - glob->kbds = kbd; - else { - struct kbd *last = glob->kbds; - while (last->next) - last = last->next; - last->next = kbd; - } - glob->kbds_cnt++; - kbd->type = type; - get_tok_begin(parser); - while (1) { - get_tok(parser); - if (is_keyword(parser, TOK_LOWERCASE)) - parse_layout(parser, kbd, LAY_LOWERCASE); - else if (is_keyword(parser, TOK_UPPERCASE)) - parse_layout(parser, kbd, LAY_UPPERCASE); - else if (is_keyword(parser, TOK_SPEC_LOWERCASE)) { - if (type != KBD_SPECIAL) - error(parser, "special_lowercase allowed only in kbd_special section"); - parse_layout(parser, kbd, LAY_SPECIAL_LOWER); - } else if (is_keyword(parser, TOK_SPEC_UPPERCASE)) { - if (type != KBD_SPECIAL) - error(parser, "special_uppercase allowed only in kbd_special section"); - parse_layout(parser, kbd, LAY_SPECIAL_UPPER); - } else if (is_keyword(parser, TOK_LOWERCASE_NUM)) { - if (type != KBD_NORMAL) - error(parser, "lowercase_num allowed only in kbd_normal section"); - parse_layout(parser, kbd, LAY_LOWERCASE_NUM); - } else if (is_keyword(parser, TOK_UPPERCASE_NUM)) { - if (type != KBD_NORMAL) - error(parser, "uppercase_num allowed only in kbd_normal section"); - parse_layout(parser, kbd, LAY_UPPERCASE_NUM); - } else if (is_keyword(parser, TOK_SPECIAL)) { - if (type != KBD_THUMB && type != KBD_SPECIAL) - error(parser, "special allowed only in kbd_thumb and kbd_special sections"); - parse_layout(parser, kbd, LAY_SPECIAL); - } else if (is_end(parser)) { - if (!kbd->layouts_cnt) - error(parser, "no keyboard layouts defined"); - return; - } else - error_end(parser); - } -} - -static void parse_global(struct parser *parser) -{ - struct global *glob = parser->global; - - while (1) { - get_tok(parser); - if (is_keyword(parser, TOK_HEADER)) - parse_header(parser, glob); - else if (is_keyword(parser, TOK_KBD_NORMAL)) - parse_kbd(parser, glob, KBD_NORMAL); - else if (is_keyword(parser, TOK_KBD_THUMB)) - parse_kbd(parser, glob, KBD_THUMB); - else if (is_keyword(parser, TOK_KBD_SPECIAL)) - parse_kbd(parser, glob, KBD_SPECIAL); - else if (is_eof(parser)) { - if (!glob->kbds_cnt) - error(parser, "no keyboards defined"); - return; - } else - error(parser, "header, kbd_normal, kbd_thumb or kbd_special expected"); - } -} - -/*** writer ***/ - -struct writer { - struct global *global; - int start_table; - int *starts; -}; - -static void werror(struct writer *writer) -{ - (void)writer; - longjmp(cjmp, 1); -} - -static void init_writer(struct writer *writer, struct global *global) -{ - writer->global = global; - writer->starts = e_malloc(sizeof(int) * global->kbds_cnt); -} - -static void close_writer(struct writer *writer) -{ - if (!writer) - return; - free(writer->starts); -} - -static void writer_byte(struct writer *writer, unsigned char b) -{ - if (cops->write(cpriv, &b, 1)) - werror(writer); -} - -static void writer_word(struct writer *writer, unsigned int w) -{ - unsigned char a[2]; - - a[0] = w & 0xff; - a[1] = (w >> 8) & 0xff; - if (cops->write(cpriv, a, 2)) - werror(writer); -} - -static void writer_string(struct writer *writer, char *s) -{ - int len; - - if (!s) - len = 0; - else - len = strlen(s); - writer_byte(writer, len); - if (len) { - if (cops->write(cpriv, s, len)) - werror(writer); - } -} - -static void writer_sizes(struct writer *writer, struct size *sizes) -{ - int i; - - while (sizes) { - for (i = 0; i < 5; i++) - writer_byte(writer, sizes->dim[i]); - sizes = sizes->next; - } -} - -static void writer_keys(struct writer *writer, struct key *key, int default_size) -{ - struct slide_key *skey; - - while (key) { - writer_byte(writer, key->slides_cnt ? 1 : 0); - writer_byte(writer, key->flags & 0xff); - if (key->flags & KEY_EXTEND) - writer_byte(writer, (key->flags >> 8) & 0xff); - if (!key->slides_cnt) - writer_string(writer, key->u.name); - else { - writer_byte(writer, key->slides_cnt | 0x80); - skey = key->u.slides; - while (skey) { - writer_string(writer, skey->name); - skey = skey->next; - } - } - writer_byte(writer, key->size >= 0 ? key->size : default_size); - key = key->next; - } -} - -static void writer_sublayout(struct writer *writer, struct layout *lay) -{ - int cnt; - struct row *tmp; - - cnt = 0; - for (tmp = lay->rows; tmp; tmp = tmp->next) - cnt += tmp->keys_cnt; - writer_byte(writer, cnt); - writer_byte(writer, lay->rows_cnt); - writer_byte(writer, lay->margins[3]); - writer_byte(writer, lay->margins[0]); - writer_byte(writer, lay->margins[2]); - writer_byte(writer, lay->margins[1]); - for (tmp = lay->rows; tmp; tmp = tmp->next) - writer_byte(writer, tmp->keys_cnt); - for (tmp = lay->rows; tmp; tmp = tmp->next) - writer_keys(writer, tmp->keys, lay->default_size); -} - -static void writer_layouts(struct writer *writer, struct layout *lay, int idx) -{ - int type, other; - - switch (lay->type) { - case LAY_LOWERCASE: - type = 0; - break; - case LAY_UPPERCASE: - type = 1; - break; - default: - type = 2; - break; - } - switch (lay->type) { - case LAY_LOWERCASE: - case LAY_SPECIAL_LOWER: - other = idx + 1; - break; - case LAY_UPPERCASE: - case LAY_SPECIAL_UPPER: - other = idx - 1; - break; - default: - other = 0xff; - break; - } - writer_byte(writer, type); - writer_byte(writer, other); - writer_string(writer, lay->name); - writer_byte(writer, lay->sublayout ? 2 : 1); - writer_sublayout(writer, lay); - if (lay->sublayout) - writer_sublayout(writer, lay->sublayout); -} - -static void writer_kbd(struct writer *writer, struct kbd *kbd) -{ - struct layout *lay; - int i; - - writer_byte(writer, kbd->type); - writer_byte(writer, kbd->layouts_cnt); - writer_byte(writer, 0); - writer_byte(writer, kbd->layouts->default_size); /* use the default size of the first layout */ - for (lay = kbd->layouts, i = 0; lay; lay = lay->next, i++) - writer_layouts(writer, lay, i); -} - -static void writer_global(struct writer *writer) -{ - struct global *glob = writer->global; - struct kbd *kbd; - int i; - - writer_byte(writer, 1); /* version */ - writer_byte(writer, glob->kbds_cnt); - writer_string(writer, glob->name); - writer_string(writer, glob->lang); - writer_string(writer, glob->wc); - writer_byte(writer, 2); /* always use the default screen modes */ - writer_byte(writer, 0); - writer_byte(writer, 1); - writer_byte(writer, glob->sizes_cnt); - writer_sizes(writer, glob->sizes); - writer->start_table = cops->tell(cpriv); - for (i = 0; i < glob->kbds_cnt; i++) - writer_word(writer, 0); - for (i = 0; i < 20; i++) - writer_byte(writer, 0); - for (kbd = glob->kbds, i = 0; kbd; kbd = kbd->next, i++) { - writer->starts[i] = cops->tell(cpriv); - writer_kbd(writer, kbd); - } - cops->seek(cpriv, writer->start_table); - for (i = 0; i < glob->kbds_cnt; i++) - writer_word(writer, writer->starts[i]); -} - -/*** main ***/ - -int compile(struct compiler_ops *ops, void *priv) -{ - struct parser *parser = NULL; - struct writer *writer = NULL; - int res; - - cops = ops; - cpriv = priv; - - res = setjmp(cjmp); - if (!res) { - parser = e_malloc(sizeof(struct parser)); - writer = e_malloc(sizeof(struct writer)); - init_parser(parser); - parse_global(parser); - init_writer(writer, parser->global); - writer_global(writer); - if (cops->return_lang) - cops->return_lang(cpriv, parser->global->lang); - } - close_writer(writer); - close_parser(parser); - free(writer); - free(parser); - return res ? -1 : 0; -} diff --git a/ukeyboard/xkb/ukeyboard b/ukeyboard/xkb/ukeyboard deleted file mode 100644 index b820c96..0000000 --- a/ukeyboard/xkb/ukeyboard +++ /dev/null @@ -1,40 +0,0 @@ -// author: Roman Moravcik -xkb_symbols "sk" { - name[Group1] = "Slovak QWERTZ (CZ HW)"; - - include "nokia_vndr/rx-51(english_base)" - include "nokia_vndr/rx-51(arrows_2btns)" - - // 1. row - key { [ z, Z, 6, 6 ] }; - key { [ dead_acute, dead_acute, sterling, sterling ] }; - - // 2. row - key { [ k, K, semicolon, semicolon ] }; - key { [ l, L, colon, colon ] }; - key { [ ocircumflex, adiaeresis, EuroSign, EuroSign ] }; - key { [ dead_caron, dead_caron, dollar, dollar ] }; - - // 3. row - key { [ y, Y, percent, percent ] }; - key { [ x, X, slash, slash ] }; - key { [ c, C, backslash, backslash ] }; - key { [ v, V, apostrophe, apostrophe ] }; - key { [ b, B, quotedbl, quotedbl ] }; - key { [ n, N, exclam, exclam ] }; - key { [ m, M, question, question ] }; - key { [ period, comma, Tab, bar ] }; -}; - -xkb_symbols "sk_qwerty" { - name[Group1] = "Slovak QWERTY (CZ hw)"; - - include "nokia_vndr/rx-51(sk)" - - // 1. row - key { [ y, Y, 6, 6 ] }; - - // 3. row - key { [ z, Z, percent, percent ] }; -}; -